new file: node_modules/.bin/mime new file: node_modules/.bin/mime.cmd new file: node_modules/.bin/mime.ps1 new file: node_modules/.package-lock.json new file: node_modules/accepts/HISTORY.md new file: node_modules/accepts/LICENSE new file: node_modules/accepts/README.md new file: node_modules/accepts/index.js new file: node_modules/accepts/package.json new file: node_modules/array-flatten/LICENSE new file: node_modules/array-flatten/README.md new file: node_modules/array-flatten/array-flatten.js new file: node_modules/array-flatten/package.json new file: node_modules/bignumber.js/CHANGELOG.md new file: node_modules/bignumber.js/LICENCE new file: node_modules/bignumber.js/README.md new file: node_modules/bignumber.js/bignumber.d.ts new file: node_modules/bignumber.js/bignumber.js new file: node_modules/bignumber.js/bignumber.min.js new file: node_modules/bignumber.js/bignumber.min.js.map new file: node_modules/bignumber.js/bignumber.mjs new file: node_modules/bignumber.js/doc/API.html new file: node_modules/bignumber.js/package.json new file: node_modules/body-parser/HISTORY.md new file: node_modules/body-parser/LICENSE new file: node_modules/body-parser/README.md new file: node_modules/body-parser/SECURITY.md new file: node_modules/body-parser/index.js new file: node_modules/body-parser/lib/read.js new file: node_modules/body-parser/lib/types/json.js new file: node_modules/body-parser/lib/types/raw.js new file: node_modules/body-parser/lib/types/text.js new file: node_modules/body-parser/lib/types/urlencoded.js new file: node_modules/body-parser/package.json new file: node_modules/bytes/History.md new file: node_modules/bytes/LICENSE new file: node_modules/bytes/Readme.md new file: node_modules/bytes/index.js new file: node_modules/bytes/package.json new file: node_modules/call-bind/.eslintignore new file: node_modules/call-bind/.eslintrc new file: node_modules/call-bind/.github/FUNDING.yml new file: node_modules/call-bind/.nycrc new file: node_modules/call-bind/CHANGELOG.md new file: node_modules/call-bind/LICENSE new file: node_modules/call-bind/README.md new file: node_modules/call-bind/callBound.js new file: node_modules/call-bind/index.js new file: node_modules/call-bind/package.json new file: node_modules/call-bind/test/callBound.js new file: node_modules/call-bind/test/index.js new file: node_modules/content-disposition/HISTORY.md new file: node_modules/content-disposition/LICENSE new file: node_modules/content-disposition/README.md new file: node_modules/content-disposition/index.js new file: node_modules/content-disposition/package.json new file: node_modules/content-type/HISTORY.md new file: node_modules/content-type/LICENSE new file: node_modules/content-type/README.md new file: node_modules/content-type/index.js new file: node_modules/content-type/package.json new file: node_modules/cookie-signature/.npmignore new file: node_modules/cookie-signature/History.md new file: node_modules/cookie-signature/Readme.md new file: node_modules/cookie-signature/index.js new file: node_modules/cookie-signature/package.json new file: node_modules/cookie/HISTORY.md new file: node_modules/cookie/LICENSE new file: node_modules/cookie/README.md new file: node_modules/cookie/SECURITY.md new file: node_modules/cookie/index.js new file: node_modules/cookie/package.json new file: node_modules/core-util-is/LICENSE new file: node_modules/core-util-is/README.md new file: node_modules/core-util-is/lib/util.js new file: node_modules/core-util-is/package.json new file: node_modules/cors/CONTRIBUTING.md new file: node_modules/cors/HISTORY.md new file: node_modules/cors/LICENSE new file: node_modules/cors/README.md new file: node_modules/cors/lib/index.js new file: node_modules/cors/package.json new file: node_modules/debug/.coveralls.yml new file: node_modules/debug/.eslintrc new file: node_modules/debug/.npmignore new file: node_modules/debug/.travis.yml new file: node_modules/debug/CHANGELOG.md new file: node_modules/debug/LICENSE new file: node_modules/debug/Makefile new file: node_modules/debug/README.md new file: node_modules/debug/component.json new file: node_modules/debug/karma.conf.js new file: node_modules/debug/node.js new file: node_modules/debug/package.json new file: node_modules/debug/src/browser.js new file: node_modules/debug/src/debug.js new file: node_modules/debug/src/index.js new file: node_modules/debug/src/inspector-log.js new file: node_modules/debug/src/node.js new file: node_modules/define-data-property/.eslintrc new file: node_modules/define-data-property/.github/FUNDING.yml new file: node_modules/define-data-property/.nycrc new file: node_modules/define-data-property/CHANGELOG.md new file: node_modules/define-data-property/LICENSE new file: node_modules/define-data-property/README.md new file: node_modules/define-data-property/index.d.ts new file: node_modules/define-data-property/index.js new file: node_modules/define-data-property/package.json new file: node_modules/define-data-property/test/index.js new file: node_modules/define-data-property/tsconfig.json new file: node_modules/depd/History.md new file: node_modules/depd/LICENSE new file: node_modules/depd/Readme.md new file: node_modules/depd/index.js new file: node_modules/depd/lib/browser/index.js new file: node_modules/depd/package.json new file: node_modules/destroy/LICENSE new file: node_modules/destroy/README.md new file: node_modules/destroy/index.js new file: node_modules/destroy/package.json new file: node_modules/ee-first/LICENSE new file: node_modules/ee-first/README.md new file: node_modules/ee-first/index.js new file: node_modules/ee-first/package.json new file: node_modules/encodeurl/HISTORY.md new file: node_modules/encodeurl/LICENSE new file: node_modules/encodeurl/README.md new file: node_modules/encodeurl/index.js new file: node_modules/encodeurl/package.json new file: node_modules/es-define-property/.eslintrc new file: node_modules/es-define-property/.github/FUNDING.yml new file: node_modules/es-define-property/.nycrc new file: node_modules/es-define-property/CHANGELOG.md new file: node_modules/es-define-property/LICENSE new file: node_modules/es-define-property/README.md new file: node_modules/es-define-property/index.d.ts new file: node_modules/es-define-property/index.js new file: node_modules/es-define-property/package.json new file: node_modules/es-define-property/test/index.js new file: node_modules/es-define-property/tsconfig.json new file: node_modules/es-errors/.eslintrc new file: node_modules/es-errors/.github/FUNDING.yml new file: node_modules/es-errors/CHANGELOG.md new file: node_modules/es-errors/LICENSE new file: node_modules/es-errors/README.md new file: node_modules/es-errors/eval.d.ts new file: node_modules/es-errors/eval.js new file: node_modules/es-errors/index.d.ts new file: node_modules/es-errors/index.js new file: node_modules/es-errors/package.json new file: node_modules/es-errors/range.d.ts new file: node_modules/es-errors/range.js new file: node_modules/es-errors/ref.d.ts new file: node_modules/es-errors/ref.js new file: node_modules/es-errors/syntax.d.ts new file: node_modules/es-errors/syntax.js new file: node_modules/es-errors/test/index.js new file: node_modules/es-errors/tsconfig.json new file: node_modules/es-errors/type.d.ts new file: node_modules/es-errors/type.js new file: node_modules/es-errors/uri.d.ts new file: node_modules/es-errors/uri.js new file: node_modules/escape-html/LICENSE new file: node_modules/escape-html/Readme.md new file: node_modules/escape-html/index.js new file: node_modules/escape-html/package.json new file: node_modules/etag/HISTORY.md new file: node_modules/etag/LICENSE new file: node_modules/etag/README.md new file: node_modules/etag/index.js new file: node_modules/etag/package.json new file: node_modules/express/History.md new file: node_modules/express/LICENSE new file: node_modules/express/Readme.md new file: node_modules/express/index.js new file: node_modules/express/lib/application.js new file: node_modules/express/lib/express.js new file: node_modules/express/lib/middleware/init.js new file: node_modules/express/lib/middleware/query.js new file: node_modules/express/lib/request.js new file: node_modules/express/lib/response.js new file: node_modules/express/lib/router/index.js new file: node_modules/express/lib/router/layer.js new file: node_modules/express/lib/router/route.js new file: node_modules/express/lib/utils.js new file: node_modules/express/lib/view.js new file: node_modules/express/package.json new file: node_modules/finalhandler/HISTORY.md new file: node_modules/finalhandler/LICENSE new file: node_modules/finalhandler/README.md new file: node_modules/finalhandler/SECURITY.md new file: node_modules/finalhandler/index.js new file: node_modules/finalhandler/package.json new file: node_modules/forwarded/HISTORY.md new file: node_modules/forwarded/LICENSE new file: node_modules/forwarded/README.md new file: node_modules/forwarded/index.js new file: node_modules/forwarded/package.json new file: node_modules/fresh/HISTORY.md new file: node_modules/fresh/LICENSE new file: node_modules/fresh/README.md new file: node_modules/fresh/index.js new file: node_modules/fresh/package.json new file: node_modules/function-bind/.eslintrc new file: node_modules/function-bind/.github/FUNDING.yml new file: node_modules/function-bind/.github/SECURITY.md new file: node_modules/function-bind/.nycrc new file: node_modules/function-bind/CHANGELOG.md new file: node_modules/function-bind/LICENSE new file: node_modules/function-bind/README.md new file: node_modules/function-bind/implementation.js new file: node_modules/function-bind/index.js new file: node_modules/function-bind/package.json new file: node_modules/function-bind/test/.eslintrc new file: node_modules/function-bind/test/index.js new file: node_modules/get-intrinsic/.eslintrc new file: node_modules/get-intrinsic/.github/FUNDING.yml new file: node_modules/get-intrinsic/.nycrc new file: node_modules/get-intrinsic/CHANGELOG.md new file: node_modules/get-intrinsic/LICENSE new file: node_modules/get-intrinsic/README.md new file: node_modules/get-intrinsic/index.js new file: node_modules/get-intrinsic/package.json new file: node_modules/get-intrinsic/test/GetIntrinsic.js new file: node_modules/gopd/.eslintrc new file: node_modules/gopd/.github/FUNDING.yml new file: node_modules/gopd/CHANGELOG.md new file: node_modules/gopd/LICENSE new file: node_modules/gopd/README.md new file: node_modules/gopd/index.js new file: node_modules/gopd/package.json new file: node_modules/gopd/test/index.js new file: node_modules/has-property-descriptors/.eslintrc new file: node_modules/has-property-descriptors/.github/FUNDING.yml new file: node_modules/has-property-descriptors/.nycrc new file: node_modules/has-property-descriptors/CHANGELOG.md new file: node_modules/has-property-descriptors/LICENSE new file: node_modules/has-property-descriptors/README.md new file: node_modules/has-property-descriptors/index.js new file: node_modules/has-property-descriptors/package.json new file: node_modules/has-property-descriptors/test/index.js new file: node_modules/has-proto/.eslintrc new file: node_modules/has-proto/.github/FUNDING.yml new file: node_modules/has-proto/CHANGELOG.md new file: node_modules/has-proto/LICENSE new file: node_modules/has-proto/README.md new file: node_modules/has-proto/index.d.ts new file: node_modules/has-proto/index.js new file: node_modules/has-proto/package.json new file: node_modules/has-proto/test/index.js new file: node_modules/has-proto/tsconfig.json new file: node_modules/has-symbols/.eslintrc new file: node_modules/has-symbols/.github/FUNDING.yml new file: node_modules/has-symbols/.nycrc new file: node_modules/has-symbols/CHANGELOG.md new file: node_modules/has-symbols/LICENSE new file: node_modules/has-symbols/README.md new file: node_modules/has-symbols/index.js new file: node_modules/has-symbols/package.json new file: node_modules/has-symbols/shams.js new file: node_modules/has-symbols/test/index.js new file: node_modules/has-symbols/test/shams/core-js.js new file: node_modules/has-symbols/test/shams/get-own-property-symbols.js new file: node_modules/has-symbols/test/tests.js new file: node_modules/hasown/.eslintrc new file: node_modules/hasown/.github/FUNDING.yml new file: node_modules/hasown/.nycrc new file: node_modules/hasown/CHANGELOG.md new file: node_modules/hasown/LICENSE new file: node_modules/hasown/README.md new file: node_modules/hasown/index.d.ts new file: node_modules/hasown/index.js new file: node_modules/hasown/package.json new file: node_modules/hasown/tsconfig.json new file: node_modules/http-errors/HISTORY.md new file: node_modules/http-errors/LICENSE new file: node_modules/http-errors/README.md new file: node_modules/http-errors/index.js new file: node_modules/http-errors/package.json new file: node_modules/iconv-lite/Changelog.md new file: node_modules/iconv-lite/LICENSE new file: node_modules/iconv-lite/README.md new file: node_modules/iconv-lite/encodings/dbcs-codec.js new file: node_modules/iconv-lite/encodings/dbcs-data.js new file: node_modules/iconv-lite/encodings/index.js new file: node_modules/iconv-lite/encodings/internal.js new file: node_modules/iconv-lite/encodings/sbcs-codec.js new file: node_modules/iconv-lite/encodings/sbcs-data-generated.js new file: node_modules/iconv-lite/encodings/sbcs-data.js new file: node_modules/iconv-lite/encodings/tables/big5-added.json new file: node_modules/iconv-lite/encodings/tables/cp936.json new file: node_modules/iconv-lite/encodings/tables/cp949.json new file: node_modules/iconv-lite/encodings/tables/cp950.json new file: node_modules/iconv-lite/encodings/tables/eucjp.json new file: node_modules/iconv-lite/encodings/tables/gb18030-ranges.json new file: node_modules/iconv-lite/encodings/tables/gbk-added.json new file: node_modules/iconv-lite/encodings/tables/shiftjis.json new file: node_modules/iconv-lite/encodings/utf16.js new file: node_modules/iconv-lite/encodings/utf7.js new file: node_modules/iconv-lite/lib/bom-handling.js new file: node_modules/iconv-lite/lib/extend-node.js new file: node_modules/iconv-lite/lib/index.d.ts new file: node_modules/iconv-lite/lib/index.js new file: node_modules/iconv-lite/lib/streams.js new file: node_modules/iconv-lite/package.json new file: node_modules/inherits/LICENSE new file: node_modules/inherits/README.md new file: node_modules/inherits/inherits.js new file: node_modules/inherits/inherits_browser.js new file: node_modules/inherits/package.json new file: node_modules/ipaddr.js/LICENSE new file: node_modules/ipaddr.js/README.md new file: node_modules/ipaddr.js/ipaddr.min.js new file: node_modules/ipaddr.js/lib/ipaddr.js new file: node_modules/ipaddr.js/lib/ipaddr.js.d.ts new file: node_modules/ipaddr.js/package.json new file: node_modules/isarray/.npmignore new file: node_modules/isarray/.travis.yml new file: node_modules/isarray/Makefile new file: node_modules/isarray/README.md new file: node_modules/isarray/component.json new file: node_modules/isarray/index.js new file: node_modules/isarray/package.json new file: node_modules/isarray/test.js new file: node_modules/media-typer/HISTORY.md new file: node_modules/media-typer/LICENSE new file: node_modules/media-typer/README.md new file: node_modules/media-typer/index.js new file: node_modules/media-typer/package.json new file: node_modules/merge-descriptors/HISTORY.md new file: node_modules/merge-descriptors/LICENSE new file: node_modules/merge-descriptors/README.md new file: node_modules/merge-descriptors/index.js new file: node_modules/merge-descriptors/package.json new file: node_modules/methods/HISTORY.md new file: node_modules/methods/LICENSE new file: node_modules/methods/README.md new file: node_modules/methods/index.js new file: node_modules/methods/package.json new file: node_modules/mime-db/HISTORY.md new file: node_modules/mime-db/LICENSE new file: node_modules/mime-db/README.md new file: node_modules/mime-db/db.json new file: node_modules/mime-db/index.js new file: node_modules/mime-db/package.json new file: node_modules/mime-types/HISTORY.md new file: node_modules/mime-types/LICENSE new file: node_modules/mime-types/README.md new file: node_modules/mime-types/index.js new file: node_modules/mime-types/package.json new file: node_modules/mime/.npmignore new file: node_modules/mime/CHANGELOG.md new file: node_modules/mime/LICENSE new file: node_modules/mime/README.md new file: node_modules/mime/cli.js new file: node_modules/mime/mime.js new file: node_modules/mime/package.json new file: node_modules/mime/src/build.js new file: node_modules/mime/src/test.js new file: node_modules/mime/types.json new file: node_modules/ms/index.js new file: node_modules/ms/license.md new file: node_modules/ms/package.json new file: node_modules/ms/readme.md new file: node_modules/mysql/Changes.md new file: node_modules/mysql/License new file: node_modules/mysql/Readme.md new file: node_modules/mysql/index.js new file: node_modules/mysql/lib/Connection.js new file: node_modules/mysql/lib/ConnectionConfig.js new file: node_modules/mysql/lib/Pool.js new file: node_modules/mysql/lib/PoolCluster.js new file: node_modules/mysql/lib/PoolConfig.js new file: node_modules/mysql/lib/PoolConnection.js new file: node_modules/mysql/lib/PoolNamespace.js new file: node_modules/mysql/lib/PoolSelector.js new file: node_modules/mysql/lib/protocol/Auth.js new file: node_modules/mysql/lib/protocol/BufferList.js new file: node_modules/mysql/lib/protocol/PacketHeader.js new file: node_modules/mysql/lib/protocol/PacketWriter.js new file: node_modules/mysql/lib/protocol/Parser.js new file: node_modules/mysql/lib/protocol/Protocol.js new file: node_modules/mysql/lib/protocol/ResultSet.js new file: node_modules/mysql/lib/protocol/SqlString.js new file: node_modules/mysql/lib/protocol/Timer.js new file: node_modules/mysql/lib/protocol/constants/charsets.js new file: node_modules/mysql/lib/protocol/constants/client.js new file: node_modules/mysql/lib/protocol/constants/errors.js new file: node_modules/mysql/lib/protocol/constants/field_flags.js new file: node_modules/mysql/lib/protocol/constants/server_status.js new file: node_modules/mysql/lib/protocol/constants/ssl_profiles.js new file: node_modules/mysql/lib/protocol/constants/types.js new file: node_modules/mysql/lib/protocol/packets/AuthSwitchRequestPacket.js new file: node_modules/mysql/lib/protocol/packets/AuthSwitchResponsePacket.js new file: node_modules/mysql/lib/protocol/packets/ClientAuthenticationPacket.js new file: node_modules/mysql/lib/protocol/packets/ComChangeUserPacket.js new file: node_modules/mysql/lib/protocol/packets/ComPingPacket.js new file: node_modules/mysql/lib/protocol/packets/ComQueryPacket.js new file: node_modules/mysql/lib/protocol/packets/ComQuitPacket.js new file: node_modules/mysql/lib/protocol/packets/ComStatisticsPacket.js new file: node_modules/mysql/lib/protocol/packets/EmptyPacket.js new file: node_modules/mysql/lib/protocol/packets/EofPacket.js new file: node_modules/mysql/lib/protocol/packets/ErrorPacket.js new file: node_modules/mysql/lib/protocol/packets/Field.js new file: node_modules/mysql/lib/protocol/packets/FieldPacket.js new file: node_modules/mysql/lib/protocol/packets/HandshakeInitializationPacket.js new file: node_modules/mysql/lib/protocol/packets/LocalDataFilePacket.js new file: node_modules/mysql/lib/protocol/packets/LocalInfileRequestPacket.js new file: node_modules/mysql/lib/protocol/packets/OkPacket.js new file: node_modules/mysql/lib/protocol/packets/OldPasswordPacket.js new file: node_modules/mysql/lib/protocol/packets/ResultSetHeaderPacket.js new file: node_modules/mysql/lib/protocol/packets/RowDataPacket.js new file: node_modules/mysql/lib/protocol/packets/SSLRequestPacket.js new file: node_modules/mysql/lib/protocol/packets/StatisticsPacket.js new file: node_modules/mysql/lib/protocol/packets/UseOldPasswordPacket.js new file: node_modules/mysql/lib/protocol/packets/index.js new file: node_modules/mysql/lib/protocol/sequences/ChangeUser.js new file: node_modules/mysql/lib/protocol/sequences/Handshake.js new file: node_modules/mysql/lib/protocol/sequences/Ping.js new file: node_modules/mysql/lib/protocol/sequences/Query.js new file: node_modules/mysql/lib/protocol/sequences/Quit.js new file: node_modules/mysql/lib/protocol/sequences/Sequence.js new file: node_modules/mysql/lib/protocol/sequences/Statistics.js new file: node_modules/mysql/lib/protocol/sequences/index.js new file: node_modules/mysql/node_modules/safe-buffer/LICENSE new file: node_modules/mysql/node_modules/safe-buffer/README.md new file: node_modules/mysql/node_modules/safe-buffer/index.d.ts new file: node_modules/mysql/node_modules/safe-buffer/index.js new file: node_modules/mysql/node_modules/safe-buffer/package.json new file: node_modules/mysql/package.json new file: node_modules/negotiator/HISTORY.md new file: node_modules/negotiator/LICENSE new file: node_modules/negotiator/README.md new file: node_modules/negotiator/index.js new file: node_modules/negotiator/lib/charset.js new file: node_modules/negotiator/lib/encoding.js new file: node_modules/negotiator/lib/language.js new file: node_modules/negotiator/lib/mediaType.js new file: node_modules/negotiator/package.json new file: node_modules/object-assign/index.js new file: node_modules/object-assign/license new file: node_modules/object-assign/package.json new file: node_modules/object-assign/readme.md new file: node_modules/object-inspect/.eslintrc new file: node_modules/object-inspect/.github/FUNDING.yml new file: node_modules/object-inspect/.nycrc new file: node_modules/object-inspect/CHANGELOG.md new file: node_modules/object-inspect/LICENSE new file: node_modules/object-inspect/example/all.js new file: node_modules/object-inspect/example/circular.js new file: node_modules/object-inspect/example/fn.js new file: node_modules/object-inspect/example/inspect.js new file: node_modules/object-inspect/index.js new file: node_modules/object-inspect/package-support.json new file: node_modules/object-inspect/package.json new file: node_modules/object-inspect/readme.markdown new file: node_modules/object-inspect/test-core-js.js new file: node_modules/object-inspect/test/bigint.js new file: node_modules/object-inspect/test/browser/dom.js new file: node_modules/object-inspect/test/circular.js new file: node_modules/object-inspect/test/deep.js new file: node_modules/object-inspect/test/element.js new file: node_modules/object-inspect/test/err.js new file: node_modules/object-inspect/test/fakes.js new file: node_modules/object-inspect/test/fn.js new file: node_modules/object-inspect/test/global.js new file: node_modules/object-inspect/test/has.js new file: node_modules/object-inspect/test/holes.js new file: node_modules/object-inspect/test/indent-option.js new file: node_modules/object-inspect/test/inspect.js new file: node_modules/object-inspect/test/lowbyte.js new file: node_modules/object-inspect/test/number.js new file: node_modules/object-inspect/test/quoteStyle.js new file: node_modules/object-inspect/test/toStringTag.js new file: node_modules/object-inspect/test/undef.js new file: node_modules/object-inspect/test/values.js new file: node_modules/object-inspect/util.inspect.js new file: node_modules/on-finished/HISTORY.md new file: node_modules/on-finished/LICENSE new file: node_modules/on-finished/README.md new file: node_modules/on-finished/index.js new file: node_modules/on-finished/package.json new file: node_modules/parseurl/HISTORY.md new file: node_modules/parseurl/LICENSE new file: node_modules/parseurl/README.md new file: node_modules/parseurl/index.js new file: node_modules/parseurl/package.json new file: node_modules/path-to-regexp/History.md new file: node_modules/path-to-regexp/LICENSE new file: node_modules/path-to-regexp/Readme.md new file: node_modules/path-to-regexp/index.js new file: node_modules/path-to-regexp/package.json new file: node_modules/process-nextick-args/index.js new file: node_modules/process-nextick-args/license.md new file: node_modules/process-nextick-args/package.json new file: node_modules/process-nextick-args/readme.md new file: node_modules/proxy-addr/HISTORY.md new file: node_modules/proxy-addr/LICENSE new file: node_modules/proxy-addr/README.md new file: node_modules/proxy-addr/index.js new file: node_modules/proxy-addr/package.json new file: node_modules/qs/.editorconfig new file: node_modules/qs/.eslintrc new file: node_modules/qs/.github/FUNDING.yml new file: node_modules/qs/.nycrc new file: node_modules/qs/CHANGELOG.md new file: node_modules/qs/LICENSE.md new file: node_modules/qs/README.md new file: node_modules/qs/dist/qs.js new file: node_modules/qs/lib/formats.js new file: node_modules/qs/lib/index.js new file: node_modules/qs/lib/parse.js new file: node_modules/qs/lib/stringify.js new file: node_modules/qs/lib/utils.js new file: node_modules/qs/package.json new file: node_modules/qs/test/parse.js new file: node_modules/qs/test/stringify.js new file: node_modules/qs/test/utils.js new file: node_modules/range-parser/HISTORY.md new file: node_modules/range-parser/LICENSE new file: node_modules/range-parser/README.md new file: node_modules/range-parser/index.js new file: node_modules/range-parser/package.json new file: node_modules/raw-body/HISTORY.md new file: node_modules/raw-body/LICENSE new file: node_modules/raw-body/README.md new file: node_modules/raw-body/SECURITY.md new file: node_modules/raw-body/index.d.ts new file: node_modules/raw-body/index.js new file: node_modules/raw-body/package.json new file: node_modules/readable-stream/.travis.yml new file: node_modules/readable-stream/CONTRIBUTING.md new file: node_modules/readable-stream/GOVERNANCE.md new file: node_modules/readable-stream/LICENSE new file: node_modules/readable-stream/README.md new file: node_modules/readable-stream/doc/wg-meetings/2015-01-30.md new file: node_modules/readable-stream/duplex-browser.js new file: node_modules/readable-stream/duplex.js new file: node_modules/readable-stream/lib/_stream_duplex.js new file: node_modules/readable-stream/lib/_stream_passthrough.js new file: node_modules/readable-stream/lib/_stream_readable.js new file: node_modules/readable-stream/lib/_stream_transform.js new file: node_modules/readable-stream/lib/_stream_writable.js new file: node_modules/readable-stream/lib/internal/streams/BufferList.js new file: node_modules/readable-stream/lib/internal/streams/destroy.js new file: node_modules/readable-stream/lib/internal/streams/stream-browser.js new file: node_modules/readable-stream/lib/internal/streams/stream.js new file: node_modules/readable-stream/node_modules/safe-buffer/LICENSE new file: node_modules/readable-stream/node_modules/safe-buffer/README.md new file: node_modules/readable-stream/node_modules/safe-buffer/index.d.ts new file: node_modules/readable-stream/node_modules/safe-buffer/index.js new file: node_modules/readable-stream/node_modules/safe-buffer/package.json new file: node_modules/readable-stream/package.json new file: node_modules/readable-stream/passthrough.js new file: node_modules/readable-stream/readable-browser.js new file: node_modules/readable-stream/readable.js new file: node_modules/readable-stream/transform.js new file: node_modules/readable-stream/writable-browser.js new file: node_modules/readable-stream/writable.js new file: node_modules/safe-buffer/LICENSE new file: node_modules/safe-buffer/README.md new file: node_modules/safe-buffer/index.d.ts new file: node_modules/safe-buffer/index.js new file: node_modules/safe-buffer/package.json new file: node_modules/safer-buffer/LICENSE new file: node_modules/safer-buffer/Porting-Buffer.md new file: node_modules/safer-buffer/Readme.md new file: node_modules/safer-buffer/dangerous.js new file: node_modules/safer-buffer/package.json new file: node_modules/safer-buffer/safer.js new file: node_modules/safer-buffer/tests.js new file: node_modules/send/HISTORY.md new file: node_modules/send/LICENSE new file: node_modules/send/README.md new file: node_modules/send/SECURITY.md new file: node_modules/send/index.js new file: node_modules/send/node_modules/ms/index.js new file: node_modules/send/node_modules/ms/license.md new file: node_modules/send/node_modules/ms/package.json new file: node_modules/send/node_modules/ms/readme.md new file: node_modules/send/package.json new file: node_modules/serve-static/HISTORY.md new file: node_modules/serve-static/LICENSE new file: node_modules/serve-static/README.md new file: node_modules/serve-static/index.js new file: node_modules/serve-static/package.json new file: node_modules/set-function-length/.eslintrc new file: node_modules/set-function-length/.github/FUNDING.yml new file: node_modules/set-function-length/.nycrc new file: node_modules/set-function-length/CHANGELOG.md new file: node_modules/set-function-length/LICENSE new file: node_modules/set-function-length/README.md new file: node_modules/set-function-length/env.d.ts new file: node_modules/set-function-length/env.js new file: node_modules/set-function-length/index.d.ts new file: node_modules/set-function-length/index.js new file: node_modules/set-function-length/package.json new file: node_modules/set-function-length/tsconfig.json new file: node_modules/setprototypeof/LICENSE new file: node_modules/setprototypeof/README.md new file: node_modules/setprototypeof/index.d.ts new file: node_modules/setprototypeof/index.js new file: node_modules/setprototypeof/package.json new file: node_modules/setprototypeof/test/index.js new file: node_modules/side-channel/.editorconfig new file: node_modules/side-channel/.eslintrc new file: node_modules/side-channel/.github/FUNDING.yml new file: node_modules/side-channel/.nycrc new file: node_modules/side-channel/CHANGELOG.md new file: node_modules/side-channel/LICENSE new file: node_modules/side-channel/README.md new file: node_modules/side-channel/index.d.ts new file: node_modules/side-channel/index.js new file: node_modules/side-channel/package.json new file: node_modules/side-channel/test/index.js new file: node_modules/side-channel/tsconfig.json new file: node_modules/sqlstring/HISTORY.md new file: node_modules/sqlstring/LICENSE new file: node_modules/sqlstring/README.md new file: node_modules/sqlstring/index.js new file: node_modules/sqlstring/lib/SqlString.js new file: node_modules/sqlstring/package.json new file: node_modules/statuses/HISTORY.md new file: node_modules/statuses/LICENSE new file: node_modules/statuses/README.md new file: node_modules/statuses/codes.json new file: node_modules/statuses/index.js new file: node_modules/statuses/package.json new file: node_modules/string_decoder/.travis.yml new file: node_modules/string_decoder/LICENSE new file: node_modules/string_decoder/README.md new file: node_modules/string_decoder/lib/string_decoder.js new file: node_modules/string_decoder/node_modules/safe-buffer/LICENSE new file: node_modules/string_decoder/node_modules/safe-buffer/README.md new file: node_modules/string_decoder/node_modules/safe-buffer/index.d.ts new file: node_modules/string_decoder/node_modules/safe-buffer/index.js new file: node_modules/string_decoder/node_modules/safe-buffer/package.json new file: node_modules/string_decoder/package.json new file: node_modules/toidentifier/HISTORY.md new file: node_modules/toidentifier/LICENSE new file: node_modules/toidentifier/README.md new file: node_modules/toidentifier/index.js new file: node_modules/toidentifier/package.json new file: node_modules/type-is/HISTORY.md new file: node_modules/type-is/LICENSE new file: node_modules/type-is/README.md new file: node_modules/type-is/index.js new file: node_modules/type-is/package.json new file: node_modules/unpipe/HISTORY.md new file: node_modules/unpipe/LICENSE new file: node_modules/unpipe/README.md new file: node_modules/unpipe/index.js new file: node_modules/unpipe/package.json new file: node_modules/util-deprecate/History.md new file: node_modules/util-deprecate/LICENSE new file: node_modules/util-deprecate/README.md new file: node_modules/util-deprecate/browser.js new file: node_modules/util-deprecate/node.js new file: node_modules/util-deprecate/package.json new file: node_modules/utils-merge/.npmignore new file: node_modules/utils-merge/LICENSE new file: node_modules/utils-merge/README.md new file: node_modules/utils-merge/index.js new file: node_modules/utils-merge/package.json new file: node_modules/vary/HISTORY.md new file: node_modules/vary/LICENSE new file: node_modules/vary/README.md new file: node_modules/vary/index.js new file: node_modules/vary/package.json new file: package-lock.json new file: package.json new file: public/bg.png new file: public/date.html new file: public/index.html new file: public/jpg/1.jpg new file: public/jpg/10.jpg new file: public/jpg/11.jpg new file: public/jpg/12.jpg new file: public/jpg/13.jpg new file: public/jpg/14.jpg new file: public/jpg/15.jpg new file: public/jpg/2.jpg new file: public/jpg/3.jpg new file: public/jpg/4.jpg new file: public/jpg/5.jpg new file: public/jpg/6.jpg new file: public/jpg/7.jpg new file: public/jpg/8.jpg new file: public/jpg/9.jpg new file: public/jquery-3.7.1.min.js new file: public/main.html new file: public/normalize.min.css new file: public/script-main.js new file: public/script.js new file: public/style.css new file: public/styles-main.css new file: public/vue.js new file: server.js
3.3 KiB
fresh
HTTP response freshness testing
Installation
This is a Node.js module available through the
npm registry. Installation is done using the
npm install
command:
$ npm install fresh
API
var fresh = require('fresh')
fresh(reqHeaders, resHeaders)
Check freshness of the response using request and response headers.
When the response is still "fresh" in the client's cache true
is
returned, otherwise false
is returned to indicate that the client
cache is now stale and the full response should be sent.
When a client sends the Cache-Control: no-cache
request header to
indicate an end-to-end reload request, this module will return false
to make handling these requests transparent.
Known Issues
This module is designed to only follow the HTTP specifications, not to work-around all kinda of client bugs (especially since this module typically does not recieve enough information to understand what the client actually is).
There is a known issue that in certain versions of Safari, Safari will incorrectly make a request that allows this module to validate freshness of the resource even when Safari does not have a representation of the resource in the cache. The module jumanji can be used in an Express application to work-around this issue and also provides links to further reading on this Safari bug.
Example
API usage
var reqHeaders = { 'if-none-match': '"foo"' }
var resHeaders = { 'etag': '"bar"' }
fresh(reqHeaders, resHeaders)
// => false
var reqHeaders = { 'if-none-match': '"foo"' }
var resHeaders = { 'etag': '"foo"' }
fresh(reqHeaders, resHeaders)
// => true
Using with Node.js http server
var fresh = require('fresh')
var http = require('http')
var server = http.createServer(function (req, res) {
// perform server logic
// ... including adding ETag / Last-Modified response headers
if (isFresh(req, res)) {
// client has a fresh copy of resource
res.statusCode = 304
res.end()
return
}
// send the resource
res.statusCode = 200
res.end('hello, world!')
})
function isFresh (req, res) {
return fresh(req.headers, {
'etag': res.getHeader('ETag'),
'last-modified': res.getHeader('Last-Modified')
})
}
server.listen(3000)