dcs8 1.1.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/index.html +314 -0
- package/mod/douban-proxy.js +98 -0
- package/mod/node_modules/.package-lock.json +845 -0
- package/mod/node_modules/accepts/HISTORY.md +250 -0
- package/mod/node_modules/accepts/LICENSE +23 -0
- package/mod/node_modules/accepts/README.md +140 -0
- package/mod/node_modules/accepts/index.js +238 -0
- package/mod/node_modules/accepts/package.json +47 -0
- package/mod/node_modules/body-parser/LICENSE +23 -0
- package/mod/node_modules/body-parser/README.md +494 -0
- package/mod/node_modules/body-parser/index.js +71 -0
- package/mod/node_modules/body-parser/lib/read.js +247 -0
- package/mod/node_modules/body-parser/lib/types/json.js +158 -0
- package/mod/node_modules/body-parser/lib/types/raw.js +42 -0
- package/mod/node_modules/body-parser/lib/types/text.js +36 -0
- package/mod/node_modules/body-parser/lib/types/urlencoded.js +142 -0
- package/mod/node_modules/body-parser/lib/utils.js +98 -0
- package/mod/node_modules/body-parser/package.json +52 -0
- package/mod/node_modules/bytes/History.md +97 -0
- package/mod/node_modules/bytes/LICENSE +23 -0
- package/mod/node_modules/bytes/Readme.md +152 -0
- package/mod/node_modules/bytes/index.js +170 -0
- package/mod/node_modules/bytes/package.json +42 -0
- package/mod/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
- package/mod/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
- package/mod/node_modules/call-bind-apply-helpers/.nycrc +9 -0
- package/mod/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
- package/mod/node_modules/call-bind-apply-helpers/LICENSE +21 -0
- package/mod/node_modules/call-bind-apply-helpers/README.md +62 -0
- package/mod/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
- package/mod/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
- package/mod/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
- package/mod/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
- package/mod/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
- package/mod/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
- package/mod/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
- package/mod/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
- package/mod/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
- package/mod/node_modules/call-bind-apply-helpers/index.js +15 -0
- package/mod/node_modules/call-bind-apply-helpers/package.json +85 -0
- package/mod/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
- package/mod/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
- package/mod/node_modules/call-bind-apply-helpers/test/index.js +63 -0
- package/mod/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
- package/mod/node_modules/call-bound/.eslintrc +13 -0
- package/mod/node_modules/call-bound/.github/FUNDING.yml +12 -0
- package/mod/node_modules/call-bound/.nycrc +9 -0
- package/mod/node_modules/call-bound/CHANGELOG.md +42 -0
- package/mod/node_modules/call-bound/LICENSE +21 -0
- package/mod/node_modules/call-bound/README.md +53 -0
- package/mod/node_modules/call-bound/index.d.ts +94 -0
- package/mod/node_modules/call-bound/index.js +19 -0
- package/mod/node_modules/call-bound/package.json +99 -0
- package/mod/node_modules/call-bound/test/index.js +61 -0
- package/mod/node_modules/call-bound/tsconfig.json +10 -0
- package/mod/node_modules/content-disposition/HISTORY.md +72 -0
- package/mod/node_modules/content-disposition/LICENSE +22 -0
- package/mod/node_modules/content-disposition/README.md +142 -0
- package/mod/node_modules/content-disposition/index.js +458 -0
- package/mod/node_modules/content-disposition/package.json +43 -0
- package/mod/node_modules/content-type/HISTORY.md +29 -0
- package/mod/node_modules/content-type/LICENSE +22 -0
- package/mod/node_modules/content-type/README.md +94 -0
- package/mod/node_modules/content-type/index.js +225 -0
- package/mod/node_modules/content-type/package.json +42 -0
- package/mod/node_modules/cookie/LICENSE +24 -0
- package/mod/node_modules/cookie/README.md +317 -0
- package/mod/node_modules/cookie/SECURITY.md +25 -0
- package/mod/node_modules/cookie/index.js +335 -0
- package/mod/node_modules/cookie/package.json +44 -0
- package/mod/node_modules/cookie-signature/History.md +70 -0
- package/mod/node_modules/cookie-signature/LICENSE +22 -0
- package/mod/node_modules/cookie-signature/Readme.md +23 -0
- package/mod/node_modules/cookie-signature/index.js +47 -0
- package/mod/node_modules/cookie-signature/package.json +24 -0
- package/mod/node_modules/cors/LICENSE +22 -0
- package/mod/node_modules/cors/README.md +277 -0
- package/mod/node_modules/cors/lib/index.js +238 -0
- package/mod/node_modules/cors/package.json +42 -0
- package/mod/node_modules/debug/LICENSE +20 -0
- package/mod/node_modules/debug/README.md +481 -0
- package/mod/node_modules/debug/package.json +64 -0
- package/mod/node_modules/debug/src/browser.js +272 -0
- package/mod/node_modules/debug/src/common.js +292 -0
- package/mod/node_modules/debug/src/index.js +10 -0
- package/mod/node_modules/debug/src/node.js +263 -0
- package/mod/node_modules/depd/History.md +103 -0
- package/mod/node_modules/depd/LICENSE +22 -0
- package/mod/node_modules/depd/Readme.md +280 -0
- package/mod/node_modules/depd/index.js +538 -0
- package/mod/node_modules/depd/lib/browser/index.js +77 -0
- package/mod/node_modules/depd/package.json +45 -0
- package/mod/node_modules/dunder-proto/.eslintrc +5 -0
- package/mod/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
- package/mod/node_modules/dunder-proto/.nycrc +13 -0
- package/mod/node_modules/dunder-proto/CHANGELOG.md +24 -0
- package/mod/node_modules/dunder-proto/LICENSE +21 -0
- package/mod/node_modules/dunder-proto/README.md +54 -0
- package/mod/node_modules/dunder-proto/get.d.ts +5 -0
- package/mod/node_modules/dunder-proto/get.js +30 -0
- package/mod/node_modules/dunder-proto/package.json +76 -0
- package/mod/node_modules/dunder-proto/set.d.ts +5 -0
- package/mod/node_modules/dunder-proto/set.js +35 -0
- package/mod/node_modules/dunder-proto/test/get.js +34 -0
- package/mod/node_modules/dunder-proto/test/index.js +4 -0
- package/mod/node_modules/dunder-proto/test/set.js +50 -0
- package/mod/node_modules/dunder-proto/tsconfig.json +9 -0
- package/mod/node_modules/ee-first/LICENSE +22 -0
- package/mod/node_modules/ee-first/README.md +80 -0
- package/mod/node_modules/ee-first/index.js +95 -0
- package/mod/node_modules/ee-first/package.json +29 -0
- package/mod/node_modules/encodeurl/LICENSE +22 -0
- package/mod/node_modules/encodeurl/README.md +109 -0
- package/mod/node_modules/encodeurl/index.js +60 -0
- package/mod/node_modules/encodeurl/package.json +40 -0
- package/mod/node_modules/es-define-property/.eslintrc +13 -0
- package/mod/node_modules/es-define-property/.github/FUNDING.yml +12 -0
- package/mod/node_modules/es-define-property/.nycrc +9 -0
- package/mod/node_modules/es-define-property/CHANGELOG.md +29 -0
- package/mod/node_modules/es-define-property/LICENSE +21 -0
- package/mod/node_modules/es-define-property/README.md +49 -0
- package/mod/node_modules/es-define-property/index.d.ts +3 -0
- package/mod/node_modules/es-define-property/index.js +14 -0
- package/mod/node_modules/es-define-property/package.json +81 -0
- package/mod/node_modules/es-define-property/test/index.js +56 -0
- package/mod/node_modules/es-define-property/tsconfig.json +10 -0
- package/mod/node_modules/es-errors/.eslintrc +5 -0
- package/mod/node_modules/es-errors/.github/FUNDING.yml +12 -0
- package/mod/node_modules/es-errors/CHANGELOG.md +40 -0
- package/mod/node_modules/es-errors/LICENSE +21 -0
- package/mod/node_modules/es-errors/README.md +55 -0
- package/mod/node_modules/es-errors/eval.d.ts +3 -0
- package/mod/node_modules/es-errors/eval.js +4 -0
- package/mod/node_modules/es-errors/index.d.ts +3 -0
- package/mod/node_modules/es-errors/index.js +4 -0
- package/mod/node_modules/es-errors/package.json +80 -0
- package/mod/node_modules/es-errors/range.d.ts +3 -0
- package/mod/node_modules/es-errors/range.js +4 -0
- package/mod/node_modules/es-errors/ref.d.ts +3 -0
- package/mod/node_modules/es-errors/ref.js +4 -0
- package/mod/node_modules/es-errors/syntax.d.ts +3 -0
- package/mod/node_modules/es-errors/syntax.js +4 -0
- package/mod/node_modules/es-errors/test/index.js +19 -0
- package/mod/node_modules/es-errors/tsconfig.json +49 -0
- package/mod/node_modules/es-errors/type.d.ts +3 -0
- package/mod/node_modules/es-errors/type.js +4 -0
- package/mod/node_modules/es-errors/uri.d.ts +3 -0
- package/mod/node_modules/es-errors/uri.js +4 -0
- package/mod/node_modules/es-object-atoms/.eslintrc +16 -0
- package/mod/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
- package/mod/node_modules/es-object-atoms/CHANGELOG.md +37 -0
- package/mod/node_modules/es-object-atoms/LICENSE +21 -0
- package/mod/node_modules/es-object-atoms/README.md +63 -0
- package/mod/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
- package/mod/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
- package/mod/node_modules/es-object-atoms/ToObject.d.ts +7 -0
- package/mod/node_modules/es-object-atoms/ToObject.js +10 -0
- package/mod/node_modules/es-object-atoms/index.d.ts +3 -0
- package/mod/node_modules/es-object-atoms/index.js +4 -0
- package/mod/node_modules/es-object-atoms/isObject.d.ts +3 -0
- package/mod/node_modules/es-object-atoms/isObject.js +6 -0
- package/mod/node_modules/es-object-atoms/package.json +80 -0
- package/mod/node_modules/es-object-atoms/test/index.js +38 -0
- package/mod/node_modules/es-object-atoms/tsconfig.json +6 -0
- package/mod/node_modules/escape-html/LICENSE +24 -0
- package/mod/node_modules/escape-html/Readme.md +43 -0
- package/mod/node_modules/escape-html/index.js +78 -0
- package/mod/node_modules/escape-html/package.json +24 -0
- package/mod/node_modules/etag/HISTORY.md +83 -0
- package/mod/node_modules/etag/LICENSE +22 -0
- package/mod/node_modules/etag/README.md +159 -0
- package/mod/node_modules/etag/index.js +131 -0
- package/mod/node_modules/etag/package.json +47 -0
- package/mod/node_modules/express/LICENSE +24 -0
- package/mod/node_modules/express/Readme.md +276 -0
- package/mod/node_modules/express/index.js +11 -0
- package/mod/node_modules/express/lib/application.js +631 -0
- package/mod/node_modules/express/lib/express.js +81 -0
- package/mod/node_modules/express/lib/request.js +514 -0
- package/mod/node_modules/express/lib/response.js +1053 -0
- package/mod/node_modules/express/lib/utils.js +271 -0
- package/mod/node_modules/express/lib/view.js +205 -0
- package/mod/node_modules/express/package.json +99 -0
- package/mod/node_modules/finalhandler/HISTORY.md +239 -0
- package/mod/node_modules/finalhandler/LICENSE +22 -0
- package/mod/node_modules/finalhandler/README.md +150 -0
- package/mod/node_modules/finalhandler/index.js +293 -0
- package/mod/node_modules/finalhandler/package.json +47 -0
- package/mod/node_modules/forwarded/HISTORY.md +21 -0
- package/mod/node_modules/forwarded/LICENSE +22 -0
- package/mod/node_modules/forwarded/README.md +57 -0
- package/mod/node_modules/forwarded/index.js +90 -0
- package/mod/node_modules/forwarded/package.json +45 -0
- package/mod/node_modules/fresh/HISTORY.md +80 -0
- package/mod/node_modules/fresh/LICENSE +23 -0
- package/mod/node_modules/fresh/README.md +117 -0
- package/mod/node_modules/fresh/index.js +136 -0
- package/mod/node_modules/fresh/package.json +46 -0
- package/mod/node_modules/function-bind/.eslintrc +21 -0
- package/mod/node_modules/function-bind/.github/FUNDING.yml +12 -0
- package/mod/node_modules/function-bind/.github/SECURITY.md +3 -0
- package/mod/node_modules/function-bind/.nycrc +13 -0
- package/mod/node_modules/function-bind/CHANGELOG.md +136 -0
- package/mod/node_modules/function-bind/LICENSE +20 -0
- package/mod/node_modules/function-bind/README.md +46 -0
- package/mod/node_modules/function-bind/implementation.js +84 -0
- package/mod/node_modules/function-bind/index.js +5 -0
- package/mod/node_modules/function-bind/package.json +87 -0
- package/mod/node_modules/function-bind/test/.eslintrc +9 -0
- package/mod/node_modules/function-bind/test/index.js +252 -0
- package/mod/node_modules/get-intrinsic/.eslintrc +42 -0
- package/mod/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
- package/mod/node_modules/get-intrinsic/.nycrc +9 -0
- package/mod/node_modules/get-intrinsic/CHANGELOG.md +186 -0
- package/mod/node_modules/get-intrinsic/LICENSE +21 -0
- package/mod/node_modules/get-intrinsic/README.md +71 -0
- package/mod/node_modules/get-intrinsic/index.js +378 -0
- package/mod/node_modules/get-intrinsic/package.json +97 -0
- package/mod/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
- package/mod/node_modules/get-proto/.eslintrc +10 -0
- package/mod/node_modules/get-proto/.github/FUNDING.yml +12 -0
- package/mod/node_modules/get-proto/.nycrc +9 -0
- package/mod/node_modules/get-proto/CHANGELOG.md +21 -0
- package/mod/node_modules/get-proto/LICENSE +21 -0
- package/mod/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
- package/mod/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
- package/mod/node_modules/get-proto/README.md +50 -0
- package/mod/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
- package/mod/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
- package/mod/node_modules/get-proto/index.d.ts +5 -0
- package/mod/node_modules/get-proto/index.js +27 -0
- package/mod/node_modules/get-proto/package.json +81 -0
- package/mod/node_modules/get-proto/test/index.js +68 -0
- package/mod/node_modules/get-proto/tsconfig.json +9 -0
- package/mod/node_modules/gopd/.eslintrc +16 -0
- package/mod/node_modules/gopd/.github/FUNDING.yml +12 -0
- package/mod/node_modules/gopd/CHANGELOG.md +45 -0
- package/mod/node_modules/gopd/LICENSE +21 -0
- package/mod/node_modules/gopd/README.md +40 -0
- package/mod/node_modules/gopd/gOPD.d.ts +1 -0
- package/mod/node_modules/gopd/gOPD.js +4 -0
- package/mod/node_modules/gopd/index.d.ts +5 -0
- package/mod/node_modules/gopd/index.js +15 -0
- package/mod/node_modules/gopd/package.json +77 -0
- package/mod/node_modules/gopd/test/index.js +36 -0
- package/mod/node_modules/gopd/tsconfig.json +9 -0
- package/mod/node_modules/has-symbols/.eslintrc +11 -0
- package/mod/node_modules/has-symbols/.github/FUNDING.yml +12 -0
- package/mod/node_modules/has-symbols/.nycrc +9 -0
- package/mod/node_modules/has-symbols/CHANGELOG.md +91 -0
- package/mod/node_modules/has-symbols/LICENSE +21 -0
- package/mod/node_modules/has-symbols/README.md +46 -0
- package/mod/node_modules/has-symbols/index.d.ts +3 -0
- package/mod/node_modules/has-symbols/index.js +14 -0
- package/mod/node_modules/has-symbols/package.json +111 -0
- package/mod/node_modules/has-symbols/shams.d.ts +3 -0
- package/mod/node_modules/has-symbols/shams.js +45 -0
- package/mod/node_modules/has-symbols/test/index.js +22 -0
- package/mod/node_modules/has-symbols/test/shams/core-js.js +29 -0
- package/mod/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
- package/mod/node_modules/has-symbols/test/tests.js +58 -0
- package/mod/node_modules/has-symbols/tsconfig.json +10 -0
- package/mod/node_modules/hasown/.eslintrc +5 -0
- package/mod/node_modules/hasown/.github/FUNDING.yml +12 -0
- package/mod/node_modules/hasown/.nycrc +13 -0
- package/mod/node_modules/hasown/CHANGELOG.md +40 -0
- package/mod/node_modules/hasown/LICENSE +21 -0
- package/mod/node_modules/hasown/README.md +40 -0
- package/mod/node_modules/hasown/index.d.ts +3 -0
- package/mod/node_modules/hasown/index.js +8 -0
- package/mod/node_modules/hasown/package.json +92 -0
- package/mod/node_modules/hasown/tsconfig.json +6 -0
- package/mod/node_modules/http-errors/HISTORY.md +186 -0
- package/mod/node_modules/http-errors/LICENSE +23 -0
- package/mod/node_modules/http-errors/README.md +169 -0
- package/mod/node_modules/http-errors/index.js +290 -0
- package/mod/node_modules/http-errors/package.json +54 -0
- package/mod/node_modules/iconv-lite/LICENSE +21 -0
- package/mod/node_modules/iconv-lite/README.md +138 -0
- package/mod/node_modules/iconv-lite/encodings/dbcs-codec.js +532 -0
- package/mod/node_modules/iconv-lite/encodings/dbcs-data.js +185 -0
- package/mod/node_modules/iconv-lite/encodings/index.js +23 -0
- package/mod/node_modules/iconv-lite/encodings/internal.js +218 -0
- package/mod/node_modules/iconv-lite/encodings/sbcs-codec.js +75 -0
- package/mod/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
- package/mod/node_modules/iconv-lite/encodings/sbcs-data.js +178 -0
- package/mod/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
- package/mod/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
- package/mod/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
- package/mod/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
- package/mod/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
- package/mod/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
- package/mod/node_modules/iconv-lite/encodings/tables/gbk-added.json +56 -0
- package/mod/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
- package/mod/node_modules/iconv-lite/encodings/utf16.js +187 -0
- package/mod/node_modules/iconv-lite/encodings/utf32.js +307 -0
- package/mod/node_modules/iconv-lite/encodings/utf7.js +283 -0
- package/mod/node_modules/iconv-lite/lib/bom-handling.js +48 -0
- package/mod/node_modules/iconv-lite/lib/helpers/merge-exports.js +13 -0
- package/mod/node_modules/iconv-lite/lib/index.d.ts +129 -0
- package/mod/node_modules/iconv-lite/lib/index.js +182 -0
- package/mod/node_modules/iconv-lite/lib/streams.js +105 -0
- package/mod/node_modules/iconv-lite/package.json +70 -0
- package/mod/node_modules/iconv-lite/types/encodings.d.ts +423 -0
- package/mod/node_modules/inherits/LICENSE +16 -0
- package/mod/node_modules/inherits/README.md +42 -0
- package/mod/node_modules/inherits/inherits.js +9 -0
- package/mod/node_modules/inherits/inherits_browser.js +27 -0
- package/mod/node_modules/inherits/package.json +29 -0
- package/mod/node_modules/ipaddr.js/LICENSE +19 -0
- package/mod/node_modules/ipaddr.js/README.md +233 -0
- package/mod/node_modules/ipaddr.js/ipaddr.min.js +1 -0
- package/mod/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
- package/mod/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
- package/mod/node_modules/ipaddr.js/package.json +35 -0
- package/mod/node_modules/is-promise/LICENSE +19 -0
- package/mod/node_modules/is-promise/index.d.ts +2 -0
- package/mod/node_modules/is-promise/index.js +6 -0
- package/mod/node_modules/is-promise/index.mjs +3 -0
- package/mod/node_modules/is-promise/package.json +30 -0
- package/mod/node_modules/is-promise/readme.md +33 -0
- package/mod/node_modules/math-intrinsics/.eslintrc +16 -0
- package/mod/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
- package/mod/node_modules/math-intrinsics/CHANGELOG.md +24 -0
- package/mod/node_modules/math-intrinsics/LICENSE +21 -0
- package/mod/node_modules/math-intrinsics/README.md +50 -0
- package/mod/node_modules/math-intrinsics/abs.d.ts +1 -0
- package/mod/node_modules/math-intrinsics/abs.js +4 -0
- package/mod/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
- package/mod/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
- package/mod/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
- package/mod/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
- package/mod/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
- package/mod/node_modules/math-intrinsics/constants/maxValue.js +5 -0
- package/mod/node_modules/math-intrinsics/floor.d.ts +1 -0
- package/mod/node_modules/math-intrinsics/floor.js +4 -0
- package/mod/node_modules/math-intrinsics/isFinite.d.ts +3 -0
- package/mod/node_modules/math-intrinsics/isFinite.js +12 -0
- package/mod/node_modules/math-intrinsics/isInteger.d.ts +3 -0
- package/mod/node_modules/math-intrinsics/isInteger.js +16 -0
- package/mod/node_modules/math-intrinsics/isNaN.d.ts +1 -0
- package/mod/node_modules/math-intrinsics/isNaN.js +6 -0
- package/mod/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
- package/mod/node_modules/math-intrinsics/isNegativeZero.js +6 -0
- package/mod/node_modules/math-intrinsics/max.d.ts +1 -0
- package/mod/node_modules/math-intrinsics/max.js +4 -0
- package/mod/node_modules/math-intrinsics/min.d.ts +1 -0
- package/mod/node_modules/math-intrinsics/min.js +4 -0
- package/mod/node_modules/math-intrinsics/mod.d.ts +3 -0
- package/mod/node_modules/math-intrinsics/mod.js +9 -0
- package/mod/node_modules/math-intrinsics/package.json +86 -0
- package/mod/node_modules/math-intrinsics/pow.d.ts +1 -0
- package/mod/node_modules/math-intrinsics/pow.js +4 -0
- package/mod/node_modules/math-intrinsics/round.d.ts +1 -0
- package/mod/node_modules/math-intrinsics/round.js +4 -0
- package/mod/node_modules/math-intrinsics/sign.d.ts +3 -0
- package/mod/node_modules/math-intrinsics/sign.js +11 -0
- package/mod/node_modules/math-intrinsics/test/index.js +192 -0
- package/mod/node_modules/math-intrinsics/tsconfig.json +3 -0
- package/mod/node_modules/media-typer/HISTORY.md +50 -0
- package/mod/node_modules/media-typer/LICENSE +22 -0
- package/mod/node_modules/media-typer/README.md +93 -0
- package/mod/node_modules/media-typer/index.js +143 -0
- package/mod/node_modules/media-typer/package.json +33 -0
- package/mod/node_modules/merge-descriptors/index.d.ts +11 -0
- package/mod/node_modules/merge-descriptors/index.js +26 -0
- package/mod/node_modules/merge-descriptors/license +11 -0
- package/mod/node_modules/merge-descriptors/package.json +50 -0
- package/mod/node_modules/merge-descriptors/readme.md +55 -0
- package/mod/node_modules/mime-db/HISTORY.md +541 -0
- package/mod/node_modules/mime-db/LICENSE +23 -0
- package/mod/node_modules/mime-db/README.md +109 -0
- package/mod/node_modules/mime-db/db.json +9342 -0
- package/mod/node_modules/mime-db/index.js +12 -0
- package/mod/node_modules/mime-db/package.json +56 -0
- package/mod/node_modules/mime-types/HISTORY.md +428 -0
- package/mod/node_modules/mime-types/LICENSE +23 -0
- package/mod/node_modules/mime-types/README.md +126 -0
- package/mod/node_modules/mime-types/index.js +211 -0
- package/mod/node_modules/mime-types/mimeScore.js +57 -0
- package/mod/node_modules/mime-types/package.json +49 -0
- package/mod/node_modules/ms/index.js +162 -0
- package/mod/node_modules/ms/license.md +21 -0
- package/mod/node_modules/ms/package.json +38 -0
- package/mod/node_modules/ms/readme.md +59 -0
- package/mod/node_modules/negotiator/HISTORY.md +114 -0
- package/mod/node_modules/negotiator/LICENSE +24 -0
- package/mod/node_modules/negotiator/README.md +212 -0
- package/mod/node_modules/negotiator/index.js +83 -0
- package/mod/node_modules/negotiator/lib/charset.js +169 -0
- package/mod/node_modules/negotiator/lib/encoding.js +205 -0
- package/mod/node_modules/negotiator/lib/language.js +179 -0
- package/mod/node_modules/negotiator/lib/mediaType.js +294 -0
- package/mod/node_modules/negotiator/package.json +43 -0
- package/mod/node_modules/object-assign/index.js +90 -0
- package/mod/node_modules/object-assign/license +21 -0
- package/mod/node_modules/object-assign/package.json +42 -0
- package/mod/node_modules/object-assign/readme.md +61 -0
- package/mod/node_modules/object-inspect/.eslintrc +53 -0
- package/mod/node_modules/object-inspect/.github/FUNDING.yml +12 -0
- package/mod/node_modules/object-inspect/.nycrc +13 -0
- package/mod/node_modules/object-inspect/CHANGELOG.md +424 -0
- package/mod/node_modules/object-inspect/LICENSE +21 -0
- package/mod/node_modules/object-inspect/example/all.js +23 -0
- package/mod/node_modules/object-inspect/example/circular.js +6 -0
- package/mod/node_modules/object-inspect/example/fn.js +5 -0
- package/mod/node_modules/object-inspect/example/inspect.js +10 -0
- package/mod/node_modules/object-inspect/index.js +544 -0
- package/mod/node_modules/object-inspect/package-support.json +20 -0
- package/mod/node_modules/object-inspect/package.json +105 -0
- package/mod/node_modules/object-inspect/readme.markdown +84 -0
- package/mod/node_modules/object-inspect/test/bigint.js +58 -0
- package/mod/node_modules/object-inspect/test/browser/dom.js +15 -0
- package/mod/node_modules/object-inspect/test/circular.js +16 -0
- package/mod/node_modules/object-inspect/test/deep.js +12 -0
- package/mod/node_modules/object-inspect/test/element.js +53 -0
- package/mod/node_modules/object-inspect/test/err.js +48 -0
- package/mod/node_modules/object-inspect/test/fakes.js +29 -0
- package/mod/node_modules/object-inspect/test/fn.js +76 -0
- package/mod/node_modules/object-inspect/test/global.js +17 -0
- package/mod/node_modules/object-inspect/test/has.js +15 -0
- package/mod/node_modules/object-inspect/test/holes.js +15 -0
- package/mod/node_modules/object-inspect/test/indent-option.js +271 -0
- package/mod/node_modules/object-inspect/test/inspect.js +139 -0
- package/mod/node_modules/object-inspect/test/lowbyte.js +12 -0
- package/mod/node_modules/object-inspect/test/number.js +58 -0
- package/mod/node_modules/object-inspect/test/quoteStyle.js +26 -0
- package/mod/node_modules/object-inspect/test/toStringTag.js +40 -0
- package/mod/node_modules/object-inspect/test/undef.js +12 -0
- package/mod/node_modules/object-inspect/test/values.js +261 -0
- package/mod/node_modules/object-inspect/test-core-js.js +26 -0
- package/mod/node_modules/object-inspect/util.inspect.js +1 -0
- package/mod/node_modules/on-finished/HISTORY.md +98 -0
- package/mod/node_modules/on-finished/LICENSE +23 -0
- package/mod/node_modules/on-finished/README.md +162 -0
- package/mod/node_modules/on-finished/index.js +234 -0
- package/mod/node_modules/on-finished/package.json +39 -0
- package/mod/node_modules/once/LICENSE +15 -0
- package/mod/node_modules/once/README.md +79 -0
- package/mod/node_modules/once/once.js +42 -0
- package/mod/node_modules/once/package.json +33 -0
- package/mod/node_modules/parseurl/HISTORY.md +58 -0
- package/mod/node_modules/parseurl/LICENSE +24 -0
- package/mod/node_modules/parseurl/README.md +133 -0
- package/mod/node_modules/parseurl/index.js +158 -0
- package/mod/node_modules/parseurl/package.json +40 -0
- package/mod/node_modules/path-to-regexp/LICENSE +21 -0
- package/mod/node_modules/path-to-regexp/Readme.md +224 -0
- package/mod/node_modules/path-to-regexp/dist/index.d.ts +144 -0
- package/mod/node_modules/path-to-regexp/dist/index.js +409 -0
- package/mod/node_modules/path-to-regexp/dist/index.js.map +1 -0
- package/mod/node_modules/path-to-regexp/package.json +64 -0
- package/mod/node_modules/proxy-addr/HISTORY.md +161 -0
- package/mod/node_modules/proxy-addr/LICENSE +22 -0
- package/mod/node_modules/proxy-addr/README.md +139 -0
- package/mod/node_modules/proxy-addr/index.js +327 -0
- package/mod/node_modules/proxy-addr/package.json +47 -0
- package/mod/node_modules/qs/.editorconfig +46 -0
- package/mod/node_modules/qs/.github/FUNDING.yml +12 -0
- package/mod/node_modules/qs/.github/SECURITY.md +11 -0
- package/mod/node_modules/qs/.github/THREAT_MODEL.md +78 -0
- package/mod/node_modules/qs/.nycrc +13 -0
- package/mod/node_modules/qs/CHANGELOG.md +631 -0
- package/mod/node_modules/qs/LICENSE.md +29 -0
- package/mod/node_modules/qs/README.md +733 -0
- package/mod/node_modules/qs/dist/qs.js +141 -0
- package/mod/node_modules/qs/eslint.config.mjs +56 -0
- package/mod/node_modules/qs/lib/formats.js +23 -0
- package/mod/node_modules/qs/lib/index.js +11 -0
- package/mod/node_modules/qs/lib/parse.js +360 -0
- package/mod/node_modules/qs/lib/stringify.js +356 -0
- package/mod/node_modules/qs/lib/utils.js +320 -0
- package/mod/node_modules/qs/package.json +94 -0
- package/mod/node_modules/qs/test/empty-keys-cases.js +267 -0
- package/mod/node_modules/qs/test/parse.js +1396 -0
- package/mod/node_modules/qs/test/stringify.js +1310 -0
- package/mod/node_modules/qs/test/utils.js +381 -0
- package/mod/node_modules/range-parser/HISTORY.md +56 -0
- package/mod/node_modules/range-parser/LICENSE +23 -0
- package/mod/node_modules/range-parser/README.md +84 -0
- package/mod/node_modules/range-parser/index.js +162 -0
- package/mod/node_modules/range-parser/package.json +44 -0
- package/mod/node_modules/raw-body/LICENSE +22 -0
- package/mod/node_modules/raw-body/README.md +223 -0
- package/mod/node_modules/raw-body/index.d.ts +85 -0
- package/mod/node_modules/raw-body/index.js +336 -0
- package/mod/node_modules/raw-body/package.json +46 -0
- package/mod/node_modules/router/HISTORY.md +228 -0
- package/mod/node_modules/router/LICENSE +23 -0
- package/mod/node_modules/router/README.md +416 -0
- package/mod/node_modules/router/index.js +748 -0
- package/mod/node_modules/router/lib/layer.js +247 -0
- package/mod/node_modules/router/lib/route.js +242 -0
- package/mod/node_modules/router/package.json +44 -0
- package/mod/node_modules/safer-buffer/LICENSE +21 -0
- package/mod/node_modules/safer-buffer/Porting-Buffer.md +268 -0
- package/mod/node_modules/safer-buffer/Readme.md +156 -0
- package/mod/node_modules/safer-buffer/dangerous.js +58 -0
- package/mod/node_modules/safer-buffer/package.json +34 -0
- package/mod/node_modules/safer-buffer/safer.js +77 -0
- package/mod/node_modules/safer-buffer/tests.js +406 -0
- package/mod/node_modules/send/LICENSE +23 -0
- package/mod/node_modules/send/README.md +317 -0
- package/mod/node_modules/send/index.js +997 -0
- package/mod/node_modules/send/package.json +63 -0
- package/mod/node_modules/serve-static/LICENSE +25 -0
- package/mod/node_modules/serve-static/README.md +253 -0
- package/mod/node_modules/serve-static/index.js +208 -0
- package/mod/node_modules/serve-static/package.json +44 -0
- package/mod/node_modules/setprototypeof/LICENSE +13 -0
- package/mod/node_modules/setprototypeof/README.md +31 -0
- package/mod/node_modules/setprototypeof/index.d.ts +2 -0
- package/mod/node_modules/setprototypeof/index.js +17 -0
- package/mod/node_modules/setprototypeof/package.json +38 -0
- package/mod/node_modules/setprototypeof/test/index.js +24 -0
- package/mod/node_modules/side-channel/.editorconfig +9 -0
- package/mod/node_modules/side-channel/.eslintrc +12 -0
- package/mod/node_modules/side-channel/.github/FUNDING.yml +12 -0
- package/mod/node_modules/side-channel/.nycrc +13 -0
- package/mod/node_modules/side-channel/CHANGELOG.md +110 -0
- package/mod/node_modules/side-channel/LICENSE +21 -0
- package/mod/node_modules/side-channel/README.md +61 -0
- package/mod/node_modules/side-channel/index.d.ts +14 -0
- package/mod/node_modules/side-channel/index.js +43 -0
- package/mod/node_modules/side-channel/package.json +85 -0
- package/mod/node_modules/side-channel/test/index.js +104 -0
- package/mod/node_modules/side-channel/tsconfig.json +9 -0
- package/mod/node_modules/side-channel-list/.editorconfig +9 -0
- package/mod/node_modules/side-channel-list/.eslintrc +11 -0
- package/mod/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
- package/mod/node_modules/side-channel-list/.nycrc +13 -0
- package/mod/node_modules/side-channel-list/CHANGELOG.md +15 -0
- package/mod/node_modules/side-channel-list/LICENSE +21 -0
- package/mod/node_modules/side-channel-list/README.md +62 -0
- package/mod/node_modules/side-channel-list/index.d.ts +13 -0
- package/mod/node_modules/side-channel-list/index.js +113 -0
- package/mod/node_modules/side-channel-list/list.d.ts +14 -0
- package/mod/node_modules/side-channel-list/package.json +77 -0
- package/mod/node_modules/side-channel-list/test/index.js +104 -0
- package/mod/node_modules/side-channel-list/tsconfig.json +9 -0
- package/mod/node_modules/side-channel-map/.editorconfig +9 -0
- package/mod/node_modules/side-channel-map/.eslintrc +11 -0
- package/mod/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
- package/mod/node_modules/side-channel-map/.nycrc +13 -0
- package/mod/node_modules/side-channel-map/CHANGELOG.md +22 -0
- package/mod/node_modules/side-channel-map/LICENSE +21 -0
- package/mod/node_modules/side-channel-map/README.md +62 -0
- package/mod/node_modules/side-channel-map/index.d.ts +15 -0
- package/mod/node_modules/side-channel-map/index.js +68 -0
- package/mod/node_modules/side-channel-map/package.json +80 -0
- package/mod/node_modules/side-channel-map/test/index.js +114 -0
- package/mod/node_modules/side-channel-map/tsconfig.json +9 -0
- package/mod/node_modules/side-channel-weakmap/.editorconfig +9 -0
- package/mod/node_modules/side-channel-weakmap/.eslintrc +12 -0
- package/mod/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
- package/mod/node_modules/side-channel-weakmap/.nycrc +13 -0
- package/mod/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
- package/mod/node_modules/side-channel-weakmap/LICENSE +21 -0
- package/mod/node_modules/side-channel-weakmap/README.md +62 -0
- package/mod/node_modules/side-channel-weakmap/index.d.ts +15 -0
- package/mod/node_modules/side-channel-weakmap/index.js +84 -0
- package/mod/node_modules/side-channel-weakmap/package.json +87 -0
- package/mod/node_modules/side-channel-weakmap/test/index.js +114 -0
- package/mod/node_modules/side-channel-weakmap/tsconfig.json +9 -0
- package/mod/node_modules/statuses/HISTORY.md +87 -0
- package/mod/node_modules/statuses/LICENSE +23 -0
- package/mod/node_modules/statuses/README.md +139 -0
- package/mod/node_modules/statuses/codes.json +65 -0
- package/mod/node_modules/statuses/index.js +146 -0
- package/mod/node_modules/statuses/package.json +49 -0
- package/mod/node_modules/toidentifier/HISTORY.md +9 -0
- package/mod/node_modules/toidentifier/LICENSE +21 -0
- package/mod/node_modules/toidentifier/README.md +61 -0
- package/mod/node_modules/toidentifier/index.js +32 -0
- package/mod/node_modules/toidentifier/package.json +38 -0
- package/mod/node_modules/type-is/HISTORY.md +292 -0
- package/mod/node_modules/type-is/LICENSE +23 -0
- package/mod/node_modules/type-is/README.md +198 -0
- package/mod/node_modules/type-is/index.js +250 -0
- package/mod/node_modules/type-is/package.json +47 -0
- package/mod/node_modules/unpipe/HISTORY.md +4 -0
- package/mod/node_modules/unpipe/LICENSE +22 -0
- package/mod/node_modules/unpipe/README.md +43 -0
- package/mod/node_modules/unpipe/index.js +69 -0
- package/mod/node_modules/unpipe/package.json +27 -0
- package/mod/node_modules/vary/HISTORY.md +39 -0
- package/mod/node_modules/vary/LICENSE +22 -0
- package/mod/node_modules/vary/README.md +101 -0
- package/mod/node_modules/vary/index.js +149 -0
- package/mod/node_modules/vary/package.json +43 -0
- package/mod/node_modules/wrappy/LICENSE +15 -0
- package/mod/node_modules/wrappy/README.md +36 -0
- package/mod/node_modules/wrappy/package.json +29 -0
- package/mod/node_modules/wrappy/wrappy.js +33 -0
- package/mod/package-lock.json +854 -0
- package/mod/package.json +16 -0
- package/package.json +19 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "range-parser",
|
|
3
|
+
"author": "TJ Holowaychuk <tj@vision-media.ca> (http://tjholowaychuk.com)",
|
|
4
|
+
"description": "Range header field string parser",
|
|
5
|
+
"version": "1.2.1",
|
|
6
|
+
"contributors": [
|
|
7
|
+
"Douglas Christopher Wilson <doug@somethingdoug.com>",
|
|
8
|
+
"James Wyatt Cready <wyatt.cready@lanetix.com>",
|
|
9
|
+
"Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"
|
|
10
|
+
],
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"range",
|
|
14
|
+
"parser",
|
|
15
|
+
"http"
|
|
16
|
+
],
|
|
17
|
+
"repository": "jshttp/range-parser",
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"deep-equal": "1.0.1",
|
|
20
|
+
"eslint": "5.16.0",
|
|
21
|
+
"eslint-config-standard": "12.0.0",
|
|
22
|
+
"eslint-plugin-markdown": "1.0.0",
|
|
23
|
+
"eslint-plugin-import": "2.17.2",
|
|
24
|
+
"eslint-plugin-node": "8.0.1",
|
|
25
|
+
"eslint-plugin-promise": "4.1.1",
|
|
26
|
+
"eslint-plugin-standard": "4.0.0",
|
|
27
|
+
"mocha": "6.1.4",
|
|
28
|
+
"nyc": "14.1.1"
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"HISTORY.md",
|
|
32
|
+
"LICENSE",
|
|
33
|
+
"index.js"
|
|
34
|
+
],
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">= 0.6"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"lint": "eslint --plugin markdown --ext js,md .",
|
|
40
|
+
"test": "mocha --reporter spec",
|
|
41
|
+
"test-cov": "nyc --reporter=html --reporter=text npm test",
|
|
42
|
+
"test-travis": "nyc --reporter=text npm test"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2013-2014 Jonathan Ong <me@jongleberry.com>
|
|
4
|
+
Copyright (c) 2014-2022 Douglas Christopher Wilson <doug@somethingdoug.com>
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in
|
|
14
|
+
all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
22
|
+
THE SOFTWARE.
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
# raw-body
|
|
2
|
+
|
|
3
|
+
[![NPM Version][npm-image]][npm-url]
|
|
4
|
+
[![NPM Downloads][downloads-image]][downloads-url]
|
|
5
|
+
[![Node.js Version][node-version-image]][node-version-url]
|
|
6
|
+
[![Build status][github-actions-ci-image]][github-actions-ci-url]
|
|
7
|
+
[![Test coverage][coveralls-image]][coveralls-url]
|
|
8
|
+
|
|
9
|
+
Gets the entire buffer of a stream either as a `Buffer` or a string.
|
|
10
|
+
Validates the stream's length against an expected length and maximum limit.
|
|
11
|
+
Ideal for parsing request bodies.
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
This is a [Node.js](https://nodejs.org/en/) module available through the
|
|
16
|
+
[npm registry](https://www.npmjs.com/). Installation is done using the
|
|
17
|
+
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
$ npm install raw-body
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### TypeScript
|
|
24
|
+
|
|
25
|
+
This module includes a [TypeScript](https://www.typescriptlang.org/)
|
|
26
|
+
declaration file to enable auto complete in compatible editors and type
|
|
27
|
+
information for TypeScript projects. This module depends on the Node.js
|
|
28
|
+
types, so install `@types/node`:
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
$ npm install @types/node
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## API
|
|
35
|
+
|
|
36
|
+
```js
|
|
37
|
+
var getRawBody = require('raw-body')
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### getRawBody(stream, [options], [callback])
|
|
41
|
+
|
|
42
|
+
**Returns a promise if no callback specified and global `Promise` exists.**
|
|
43
|
+
|
|
44
|
+
Options:
|
|
45
|
+
|
|
46
|
+
- `length` - The length of the stream.
|
|
47
|
+
If the contents of the stream do not add up to this length,
|
|
48
|
+
an `400` error code is returned.
|
|
49
|
+
- `limit` - The byte limit of the body.
|
|
50
|
+
This is the number of bytes or any string format supported by
|
|
51
|
+
[bytes](https://www.npmjs.com/package/bytes),
|
|
52
|
+
for example `1000`, `'500kb'` or `'3mb'`.
|
|
53
|
+
If the body ends up being larger than this limit,
|
|
54
|
+
a `413` error code is returned.
|
|
55
|
+
- `encoding` - The encoding to use to decode the body into a string.
|
|
56
|
+
By default, a `Buffer` instance will be returned when no encoding is specified.
|
|
57
|
+
Most likely, you want `utf-8`, so setting `encoding` to `true` will decode as `utf-8`.
|
|
58
|
+
You can use any type of encoding supported by [iconv-lite](https://www.npmjs.org/package/iconv-lite#readme).
|
|
59
|
+
|
|
60
|
+
You can also pass a string in place of options to just specify the encoding.
|
|
61
|
+
|
|
62
|
+
If an error occurs, the stream will be paused, everything unpiped,
|
|
63
|
+
and you are responsible for correctly disposing the stream.
|
|
64
|
+
For HTTP requests, you may need to finish consuming the stream if
|
|
65
|
+
you want to keep the socket open for future requests. For streams
|
|
66
|
+
that use file descriptors, you should `stream.destroy()` or
|
|
67
|
+
`stream.close()` to prevent leaks.
|
|
68
|
+
|
|
69
|
+
## Errors
|
|
70
|
+
|
|
71
|
+
This module creates errors depending on the error condition during reading.
|
|
72
|
+
The error may be an error from the underlying Node.js implementation, but is
|
|
73
|
+
otherwise an error created by this module, which has the following attributes:
|
|
74
|
+
|
|
75
|
+
* `limit` - the limit in bytes
|
|
76
|
+
* `length` and `expected` - the expected length of the stream
|
|
77
|
+
* `received` - the received bytes
|
|
78
|
+
* `encoding` - the invalid encoding
|
|
79
|
+
* `status` and `statusCode` - the corresponding status code for the error
|
|
80
|
+
* `type` - the error type
|
|
81
|
+
|
|
82
|
+
### Types
|
|
83
|
+
|
|
84
|
+
The errors from this module have a `type` property which allows for the programmatic
|
|
85
|
+
determination of the type of error returned.
|
|
86
|
+
|
|
87
|
+
#### encoding.unsupported
|
|
88
|
+
|
|
89
|
+
This error will occur when the `encoding` option is specified, but the value does
|
|
90
|
+
not map to an encoding supported by the [iconv-lite](https://www.npmjs.org/package/iconv-lite#readme)
|
|
91
|
+
module.
|
|
92
|
+
|
|
93
|
+
#### entity.too.large
|
|
94
|
+
|
|
95
|
+
This error will occur when the `limit` option is specified, but the stream has
|
|
96
|
+
an entity that is larger.
|
|
97
|
+
|
|
98
|
+
#### request.aborted
|
|
99
|
+
|
|
100
|
+
This error will occur when the request stream is aborted by the client before
|
|
101
|
+
reading the body has finished.
|
|
102
|
+
|
|
103
|
+
#### request.size.invalid
|
|
104
|
+
|
|
105
|
+
This error will occur when the `length` option is specified, but the stream has
|
|
106
|
+
emitted more bytes.
|
|
107
|
+
|
|
108
|
+
#### stream.encoding.set
|
|
109
|
+
|
|
110
|
+
This error will occur when the given stream has an encoding set on it, making it
|
|
111
|
+
a decoded stream. The stream should not have an encoding set and is expected to
|
|
112
|
+
emit `Buffer` objects.
|
|
113
|
+
|
|
114
|
+
#### stream.not.readable
|
|
115
|
+
|
|
116
|
+
This error will occur when the given stream is not readable.
|
|
117
|
+
|
|
118
|
+
## Examples
|
|
119
|
+
|
|
120
|
+
### Simple Express example
|
|
121
|
+
|
|
122
|
+
```js
|
|
123
|
+
var contentType = require('content-type')
|
|
124
|
+
var express = require('express')
|
|
125
|
+
var getRawBody = require('raw-body')
|
|
126
|
+
|
|
127
|
+
var app = express()
|
|
128
|
+
|
|
129
|
+
app.use(function (req, res, next) {
|
|
130
|
+
getRawBody(req, {
|
|
131
|
+
length: req.headers['content-length'],
|
|
132
|
+
limit: '1mb',
|
|
133
|
+
encoding: contentType.parse(req).parameters.charset
|
|
134
|
+
}, function (err, string) {
|
|
135
|
+
if (err) return next(err)
|
|
136
|
+
req.text = string
|
|
137
|
+
next()
|
|
138
|
+
})
|
|
139
|
+
})
|
|
140
|
+
|
|
141
|
+
// now access req.text
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Simple Koa example
|
|
145
|
+
|
|
146
|
+
```js
|
|
147
|
+
var contentType = require('content-type')
|
|
148
|
+
var getRawBody = require('raw-body')
|
|
149
|
+
var koa = require('koa')
|
|
150
|
+
|
|
151
|
+
var app = koa()
|
|
152
|
+
|
|
153
|
+
app.use(function * (next) {
|
|
154
|
+
this.text = yield getRawBody(this.req, {
|
|
155
|
+
length: this.req.headers['content-length'],
|
|
156
|
+
limit: '1mb',
|
|
157
|
+
encoding: contentType.parse(this.req).parameters.charset
|
|
158
|
+
})
|
|
159
|
+
yield next
|
|
160
|
+
})
|
|
161
|
+
|
|
162
|
+
// now access this.text
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Using as a promise
|
|
166
|
+
|
|
167
|
+
To use this library as a promise, simply omit the `callback` and a promise is
|
|
168
|
+
returned, provided that a global `Promise` is defined.
|
|
169
|
+
|
|
170
|
+
```js
|
|
171
|
+
var getRawBody = require('raw-body')
|
|
172
|
+
var http = require('http')
|
|
173
|
+
|
|
174
|
+
var server = http.createServer(function (req, res) {
|
|
175
|
+
getRawBody(req)
|
|
176
|
+
.then(function (buf) {
|
|
177
|
+
res.statusCode = 200
|
|
178
|
+
res.end(buf.length + ' bytes submitted')
|
|
179
|
+
})
|
|
180
|
+
.catch(function (err) {
|
|
181
|
+
res.statusCode = 500
|
|
182
|
+
res.end(err.message)
|
|
183
|
+
})
|
|
184
|
+
})
|
|
185
|
+
|
|
186
|
+
server.listen(3000)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Using with TypeScript
|
|
190
|
+
|
|
191
|
+
```ts
|
|
192
|
+
import * as getRawBody from 'raw-body';
|
|
193
|
+
import * as http from 'http';
|
|
194
|
+
|
|
195
|
+
const server = http.createServer((req, res) => {
|
|
196
|
+
getRawBody(req)
|
|
197
|
+
.then((buf) => {
|
|
198
|
+
res.statusCode = 200;
|
|
199
|
+
res.end(buf.length + ' bytes submitted');
|
|
200
|
+
})
|
|
201
|
+
.catch((err) => {
|
|
202
|
+
res.statusCode = err.statusCode;
|
|
203
|
+
res.end(err.message);
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
server.listen(3000);
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## License
|
|
211
|
+
|
|
212
|
+
[MIT](LICENSE)
|
|
213
|
+
|
|
214
|
+
[npm-image]: https://img.shields.io/npm/v/raw-body.svg
|
|
215
|
+
[npm-url]: https://npmjs.org/package/raw-body
|
|
216
|
+
[node-version-image]: https://img.shields.io/node/v/raw-body.svg
|
|
217
|
+
[node-version-url]: https://nodejs.org/en/download/
|
|
218
|
+
[coveralls-image]: https://img.shields.io/coveralls/stream-utils/raw-body/master.svg
|
|
219
|
+
[coveralls-url]: https://coveralls.io/r/stream-utils/raw-body?branch=master
|
|
220
|
+
[downloads-image]: https://img.shields.io/npm/dm/raw-body.svg
|
|
221
|
+
[downloads-url]: https://npmjs.org/package/raw-body
|
|
222
|
+
[github-actions-ci-image]: https://img.shields.io/github/actions/workflow/status/stream-utils/raw-body/ci.yml?branch=master&label=ci
|
|
223
|
+
[github-actions-ci-url]: https://github.com/jshttp/stream-utils/raw-body?query=workflow%3Aci
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
declare namespace getRawBody {
|
|
2
|
+
export type Encoding = string | true;
|
|
3
|
+
|
|
4
|
+
export interface Options {
|
|
5
|
+
/**
|
|
6
|
+
* The expected length of the stream.
|
|
7
|
+
*/
|
|
8
|
+
length?: number | string | null;
|
|
9
|
+
/**
|
|
10
|
+
* The byte limit of the body. This is the number of bytes or any string
|
|
11
|
+
* format supported by `bytes`, for example `1000`, `'500kb'` or `'3mb'`.
|
|
12
|
+
*/
|
|
13
|
+
limit?: number | string | null;
|
|
14
|
+
/**
|
|
15
|
+
* The encoding to use to decode the body into a string. By default, a
|
|
16
|
+
* `Buffer` instance will be returned when no encoding is specified. Most
|
|
17
|
+
* likely, you want `utf-8`, so setting encoding to `true` will decode as
|
|
18
|
+
* `utf-8`. You can use any type of encoding supported by `iconv-lite`.
|
|
19
|
+
*/
|
|
20
|
+
encoding?: Encoding | null;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface RawBodyError extends Error {
|
|
24
|
+
/**
|
|
25
|
+
* The limit in bytes.
|
|
26
|
+
*/
|
|
27
|
+
limit?: number;
|
|
28
|
+
/**
|
|
29
|
+
* The expected length of the stream.
|
|
30
|
+
*/
|
|
31
|
+
length?: number;
|
|
32
|
+
expected?: number;
|
|
33
|
+
/**
|
|
34
|
+
* The received bytes.
|
|
35
|
+
*/
|
|
36
|
+
received?: number;
|
|
37
|
+
/**
|
|
38
|
+
* The encoding.
|
|
39
|
+
*/
|
|
40
|
+
encoding?: string;
|
|
41
|
+
/**
|
|
42
|
+
* The corresponding status code for the error.
|
|
43
|
+
*/
|
|
44
|
+
status: number;
|
|
45
|
+
statusCode: number;
|
|
46
|
+
/**
|
|
47
|
+
* The error type.
|
|
48
|
+
*/
|
|
49
|
+
type: string;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Gets the entire buffer of a stream either as a `Buffer` or a string.
|
|
55
|
+
* Validates the stream's length against an expected length and maximum
|
|
56
|
+
* limit. Ideal for parsing request bodies.
|
|
57
|
+
*/
|
|
58
|
+
declare function getRawBody(
|
|
59
|
+
stream: NodeJS.ReadableStream,
|
|
60
|
+
callback: (err: getRawBody.RawBodyError, body: Buffer) => void
|
|
61
|
+
): void;
|
|
62
|
+
|
|
63
|
+
declare function getRawBody(
|
|
64
|
+
stream: NodeJS.ReadableStream,
|
|
65
|
+
options: (getRawBody.Options & { encoding: getRawBody.Encoding }) | getRawBody.Encoding,
|
|
66
|
+
callback: (err: getRawBody.RawBodyError, body: string) => void
|
|
67
|
+
): void;
|
|
68
|
+
|
|
69
|
+
declare function getRawBody(
|
|
70
|
+
stream: NodeJS.ReadableStream,
|
|
71
|
+
options: getRawBody.Options,
|
|
72
|
+
callback: (err: getRawBody.RawBodyError, body: Buffer) => void
|
|
73
|
+
): void;
|
|
74
|
+
|
|
75
|
+
declare function getRawBody(
|
|
76
|
+
stream: NodeJS.ReadableStream,
|
|
77
|
+
options: (getRawBody.Options & { encoding: getRawBody.Encoding }) | getRawBody.Encoding
|
|
78
|
+
): Promise<string>;
|
|
79
|
+
|
|
80
|
+
declare function getRawBody(
|
|
81
|
+
stream: NodeJS.ReadableStream,
|
|
82
|
+
options?: getRawBody.Options
|
|
83
|
+
): Promise<Buffer>;
|
|
84
|
+
|
|
85
|
+
export = getRawBody;
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* raw-body
|
|
3
|
+
* Copyright(c) 2013-2014 Jonathan Ong
|
|
4
|
+
* Copyright(c) 2014-2022 Douglas Christopher Wilson
|
|
5
|
+
* MIT Licensed
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
'use strict'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Module dependencies.
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
var asyncHooks = tryRequireAsyncHooks()
|
|
16
|
+
var bytes = require('bytes')
|
|
17
|
+
var createError = require('http-errors')
|
|
18
|
+
var iconv = require('iconv-lite')
|
|
19
|
+
var unpipe = require('unpipe')
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Module exports.
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
module.exports = getRawBody
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Module variables.
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
var ICONV_ENCODING_MESSAGE_REGEXP = /^Encoding not recognized: /
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Get the decoder for a given encoding.
|
|
37
|
+
*
|
|
38
|
+
* @param {string} encoding
|
|
39
|
+
* @private
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
function getDecoder (encoding) {
|
|
43
|
+
if (!encoding) return null
|
|
44
|
+
|
|
45
|
+
try {
|
|
46
|
+
return iconv.getDecoder(encoding)
|
|
47
|
+
} catch (e) {
|
|
48
|
+
// error getting decoder
|
|
49
|
+
if (!ICONV_ENCODING_MESSAGE_REGEXP.test(e.message)) throw e
|
|
50
|
+
|
|
51
|
+
// the encoding was not found
|
|
52
|
+
throw createError(415, 'specified encoding unsupported', {
|
|
53
|
+
encoding: encoding,
|
|
54
|
+
type: 'encoding.unsupported'
|
|
55
|
+
})
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Get the raw body of a stream (typically HTTP).
|
|
61
|
+
*
|
|
62
|
+
* @param {object} stream
|
|
63
|
+
* @param {object|string|function} [options]
|
|
64
|
+
* @param {function} [callback]
|
|
65
|
+
* @public
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
function getRawBody (stream, options, callback) {
|
|
69
|
+
var done = callback
|
|
70
|
+
var opts = options || {}
|
|
71
|
+
|
|
72
|
+
// light validation
|
|
73
|
+
if (stream === undefined) {
|
|
74
|
+
throw new TypeError('argument stream is required')
|
|
75
|
+
} else if (typeof stream !== 'object' || stream === null || typeof stream.on !== 'function') {
|
|
76
|
+
throw new TypeError('argument stream must be a stream')
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (options === true || typeof options === 'string') {
|
|
80
|
+
// short cut for encoding
|
|
81
|
+
opts = {
|
|
82
|
+
encoding: options
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (typeof options === 'function') {
|
|
87
|
+
done = options
|
|
88
|
+
opts = {}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// validate callback is a function, if provided
|
|
92
|
+
if (done !== undefined && typeof done !== 'function') {
|
|
93
|
+
throw new TypeError('argument callback must be a function')
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// require the callback without promises
|
|
97
|
+
if (!done && !global.Promise) {
|
|
98
|
+
throw new TypeError('argument callback is required')
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// get encoding
|
|
102
|
+
var encoding = opts.encoding !== true
|
|
103
|
+
? opts.encoding
|
|
104
|
+
: 'utf-8'
|
|
105
|
+
|
|
106
|
+
// convert the limit to an integer
|
|
107
|
+
var limit = bytes.parse(opts.limit)
|
|
108
|
+
|
|
109
|
+
// convert the expected length to an integer
|
|
110
|
+
var length = opts.length != null && !isNaN(opts.length)
|
|
111
|
+
? parseInt(opts.length, 10)
|
|
112
|
+
: null
|
|
113
|
+
|
|
114
|
+
if (done) {
|
|
115
|
+
// classic callback style
|
|
116
|
+
return readStream(stream, encoding, length, limit, wrap(done))
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return new Promise(function executor (resolve, reject) {
|
|
120
|
+
readStream(stream, encoding, length, limit, function onRead (err, buf) {
|
|
121
|
+
if (err) return reject(err)
|
|
122
|
+
resolve(buf)
|
|
123
|
+
})
|
|
124
|
+
})
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Halt a stream.
|
|
129
|
+
*
|
|
130
|
+
* @param {Object} stream
|
|
131
|
+
* @private
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
function halt (stream) {
|
|
135
|
+
// unpipe everything from the stream
|
|
136
|
+
unpipe(stream)
|
|
137
|
+
|
|
138
|
+
// pause stream
|
|
139
|
+
if (typeof stream.pause === 'function') {
|
|
140
|
+
stream.pause()
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Read the data from the stream.
|
|
146
|
+
*
|
|
147
|
+
* @param {object} stream
|
|
148
|
+
* @param {string} encoding
|
|
149
|
+
* @param {number} length
|
|
150
|
+
* @param {number} limit
|
|
151
|
+
* @param {function} callback
|
|
152
|
+
* @public
|
|
153
|
+
*/
|
|
154
|
+
|
|
155
|
+
function readStream (stream, encoding, length, limit, callback) {
|
|
156
|
+
var complete = false
|
|
157
|
+
var sync = true
|
|
158
|
+
|
|
159
|
+
// check the length and limit options.
|
|
160
|
+
// note: we intentionally leave the stream paused,
|
|
161
|
+
// so users should handle the stream themselves.
|
|
162
|
+
if (limit !== null && length !== null && length > limit) {
|
|
163
|
+
return done(createError(413, 'request entity too large', {
|
|
164
|
+
expected: length,
|
|
165
|
+
length: length,
|
|
166
|
+
limit: limit,
|
|
167
|
+
type: 'entity.too.large'
|
|
168
|
+
}))
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// streams1: assert request encoding is buffer.
|
|
172
|
+
// streams2+: assert the stream encoding is buffer.
|
|
173
|
+
// stream._decoder: streams1
|
|
174
|
+
// state.encoding: streams2
|
|
175
|
+
// state.decoder: streams2, specifically < 0.10.6
|
|
176
|
+
var state = stream._readableState
|
|
177
|
+
if (stream._decoder || (state && (state.encoding || state.decoder))) {
|
|
178
|
+
// developer error
|
|
179
|
+
return done(createError(500, 'stream encoding should not be set', {
|
|
180
|
+
type: 'stream.encoding.set'
|
|
181
|
+
}))
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if (typeof stream.readable !== 'undefined' && !stream.readable) {
|
|
185
|
+
return done(createError(500, 'stream is not readable', {
|
|
186
|
+
type: 'stream.not.readable'
|
|
187
|
+
}))
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
var received = 0
|
|
191
|
+
var decoder
|
|
192
|
+
|
|
193
|
+
try {
|
|
194
|
+
decoder = getDecoder(encoding)
|
|
195
|
+
} catch (err) {
|
|
196
|
+
return done(err)
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
var buffer = decoder
|
|
200
|
+
? ''
|
|
201
|
+
: []
|
|
202
|
+
|
|
203
|
+
// attach listeners
|
|
204
|
+
stream.on('aborted', onAborted)
|
|
205
|
+
stream.on('close', cleanup)
|
|
206
|
+
stream.on('data', onData)
|
|
207
|
+
stream.on('end', onEnd)
|
|
208
|
+
stream.on('error', onEnd)
|
|
209
|
+
|
|
210
|
+
// mark sync section complete
|
|
211
|
+
sync = false
|
|
212
|
+
|
|
213
|
+
function done () {
|
|
214
|
+
var args = new Array(arguments.length)
|
|
215
|
+
|
|
216
|
+
// copy arguments
|
|
217
|
+
for (var i = 0; i < args.length; i++) {
|
|
218
|
+
args[i] = arguments[i]
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// mark complete
|
|
222
|
+
complete = true
|
|
223
|
+
|
|
224
|
+
if (sync) {
|
|
225
|
+
process.nextTick(invokeCallback)
|
|
226
|
+
} else {
|
|
227
|
+
invokeCallback()
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
function invokeCallback () {
|
|
231
|
+
cleanup()
|
|
232
|
+
|
|
233
|
+
if (args[0]) {
|
|
234
|
+
// halt the stream on error
|
|
235
|
+
halt(stream)
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
callback.apply(null, args)
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function onAborted () {
|
|
243
|
+
if (complete) return
|
|
244
|
+
|
|
245
|
+
done(createError(400, 'request aborted', {
|
|
246
|
+
code: 'ECONNABORTED',
|
|
247
|
+
expected: length,
|
|
248
|
+
length: length,
|
|
249
|
+
received: received,
|
|
250
|
+
type: 'request.aborted'
|
|
251
|
+
}))
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
function onData (chunk) {
|
|
255
|
+
if (complete) return
|
|
256
|
+
|
|
257
|
+
received += chunk.length
|
|
258
|
+
|
|
259
|
+
if (limit !== null && received > limit) {
|
|
260
|
+
done(createError(413, 'request entity too large', {
|
|
261
|
+
limit: limit,
|
|
262
|
+
received: received,
|
|
263
|
+
type: 'entity.too.large'
|
|
264
|
+
}))
|
|
265
|
+
} else if (decoder) {
|
|
266
|
+
buffer += decoder.write(chunk)
|
|
267
|
+
} else {
|
|
268
|
+
buffer.push(chunk)
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
function onEnd (err) {
|
|
273
|
+
if (complete) return
|
|
274
|
+
if (err) return done(err)
|
|
275
|
+
|
|
276
|
+
if (length !== null && received !== length) {
|
|
277
|
+
done(createError(400, 'request size did not match content length', {
|
|
278
|
+
expected: length,
|
|
279
|
+
length: length,
|
|
280
|
+
received: received,
|
|
281
|
+
type: 'request.size.invalid'
|
|
282
|
+
}))
|
|
283
|
+
} else {
|
|
284
|
+
var string = decoder
|
|
285
|
+
? buffer + (decoder.end() || '')
|
|
286
|
+
: Buffer.concat(buffer)
|
|
287
|
+
done(null, string)
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
function cleanup () {
|
|
292
|
+
buffer = null
|
|
293
|
+
|
|
294
|
+
stream.removeListener('aborted', onAborted)
|
|
295
|
+
stream.removeListener('data', onData)
|
|
296
|
+
stream.removeListener('end', onEnd)
|
|
297
|
+
stream.removeListener('error', onEnd)
|
|
298
|
+
stream.removeListener('close', cleanup)
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* Try to require async_hooks
|
|
304
|
+
* @private
|
|
305
|
+
*/
|
|
306
|
+
|
|
307
|
+
function tryRequireAsyncHooks () {
|
|
308
|
+
try {
|
|
309
|
+
return require('async_hooks')
|
|
310
|
+
} catch (e) {
|
|
311
|
+
return {}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Wrap function with async resource, if possible.
|
|
317
|
+
* AsyncResource.bind static method backported.
|
|
318
|
+
* @private
|
|
319
|
+
*/
|
|
320
|
+
|
|
321
|
+
function wrap (fn) {
|
|
322
|
+
var res
|
|
323
|
+
|
|
324
|
+
// create anonymous resource
|
|
325
|
+
if (asyncHooks.AsyncResource) {
|
|
326
|
+
res = new asyncHooks.AsyncResource(fn.name || 'bound-anonymous-fn')
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// incompatible node.js
|
|
330
|
+
if (!res || !res.runInAsyncScope) {
|
|
331
|
+
return fn
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
// return bound function
|
|
335
|
+
return res.runInAsyncScope.bind(res, fn, null)
|
|
336
|
+
}
|