youtube-downloader-by-ahmad 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.bin/sshpk-conv +12 -0
- package/.bin/sshpk-conv.cmd +17 -0
- package/.bin/sshpk-conv.ps1 +28 -0
- package/.bin/sshpk-sign +12 -0
- package/.bin/sshpk-sign.cmd +17 -0
- package/.bin/sshpk-sign.ps1 +28 -0
- package/.bin/sshpk-verify +12 -0
- package/.bin/sshpk-verify.cmd +17 -0
- package/.bin/sshpk-verify.ps1 +28 -0
- package/.bin/uuid +12 -0
- package/.bin/uuid.cmd +17 -0
- package/.bin/uuid.ps1 +28 -0
- package/ajv/.tonic_example.js +20 -0
- package/ajv/LICENSE +22 -0
- package/ajv/README.md +1497 -0
- package/ajv/dist/ajv.bundle.js +7189 -0
- package/ajv/dist/ajv.min.js +3 -0
- package/ajv/dist/ajv.min.js.map +1 -0
- package/ajv/lib/ajv.d.ts +397 -0
- package/ajv/lib/ajv.js +506 -0
- package/ajv/lib/cache.js +26 -0
- package/ajv/lib/compile/async.js +90 -0
- package/ajv/lib/compile/equal.js +5 -0
- package/ajv/lib/compile/error_classes.js +34 -0
- package/ajv/lib/compile/formats.js +142 -0
- package/ajv/lib/compile/index.js +387 -0
- package/ajv/lib/compile/resolve.js +270 -0
- package/ajv/lib/compile/rules.js +66 -0
- package/ajv/lib/compile/schema_obj.js +9 -0
- package/ajv/lib/compile/ucs2length.js +20 -0
- package/ajv/lib/compile/util.js +239 -0
- package/ajv/lib/data.js +49 -0
- package/ajv/lib/definition_schema.js +37 -0
- package/ajv/lib/dot/_limit.jst +113 -0
- package/ajv/lib/dot/_limitItems.jst +12 -0
- package/ajv/lib/dot/_limitLength.jst +12 -0
- package/ajv/lib/dot/_limitProperties.jst +12 -0
- package/ajv/lib/dot/allOf.jst +32 -0
- package/ajv/lib/dot/anyOf.jst +46 -0
- package/ajv/lib/dot/coerce.def +51 -0
- package/ajv/lib/dot/comment.jst +9 -0
- package/ajv/lib/dot/const.jst +11 -0
- package/ajv/lib/dot/contains.jst +55 -0
- package/ajv/lib/dot/custom.jst +191 -0
- package/ajv/lib/dot/defaults.def +47 -0
- package/ajv/lib/dot/definitions.def +203 -0
- package/ajv/lib/dot/dependencies.jst +79 -0
- package/ajv/lib/dot/enum.jst +30 -0
- package/ajv/lib/dot/errors.def +194 -0
- package/ajv/lib/dot/format.jst +106 -0
- package/ajv/lib/dot/if.jst +73 -0
- package/ajv/lib/dot/items.jst +98 -0
- package/ajv/lib/dot/missing.def +39 -0
- package/ajv/lib/dot/multipleOf.jst +22 -0
- package/ajv/lib/dot/not.jst +43 -0
- package/ajv/lib/dot/oneOf.jst +54 -0
- package/ajv/lib/dot/pattern.jst +14 -0
- package/ajv/lib/dot/properties.jst +245 -0
- package/ajv/lib/dot/propertyNames.jst +52 -0
- package/ajv/lib/dot/ref.jst +85 -0
- package/ajv/lib/dot/required.jst +108 -0
- package/ajv/lib/dot/uniqueItems.jst +62 -0
- package/ajv/lib/dot/validate.jst +276 -0
- package/ajv/lib/dotjs/README.md +3 -0
- package/ajv/lib/dotjs/_limit.js +163 -0
- package/ajv/lib/dotjs/_limitItems.js +80 -0
- package/ajv/lib/dotjs/_limitLength.js +85 -0
- package/ajv/lib/dotjs/_limitProperties.js +80 -0
- package/ajv/lib/dotjs/allOf.js +42 -0
- package/ajv/lib/dotjs/anyOf.js +73 -0
- package/ajv/lib/dotjs/comment.js +14 -0
- package/ajv/lib/dotjs/const.js +56 -0
- package/ajv/lib/dotjs/contains.js +81 -0
- package/ajv/lib/dotjs/custom.js +228 -0
- package/ajv/lib/dotjs/dependencies.js +168 -0
- package/ajv/lib/dotjs/enum.js +66 -0
- package/ajv/lib/dotjs/format.js +150 -0
- package/ajv/lib/dotjs/if.js +103 -0
- package/ajv/lib/dotjs/index.js +33 -0
- package/ajv/lib/dotjs/items.js +140 -0
- package/ajv/lib/dotjs/multipleOf.js +80 -0
- package/ajv/lib/dotjs/not.js +84 -0
- package/ajv/lib/dotjs/oneOf.js +73 -0
- package/ajv/lib/dotjs/pattern.js +75 -0
- package/ajv/lib/dotjs/properties.js +335 -0
- package/ajv/lib/dotjs/propertyNames.js +81 -0
- package/ajv/lib/dotjs/ref.js +124 -0
- package/ajv/lib/dotjs/required.js +270 -0
- package/ajv/lib/dotjs/uniqueItems.js +86 -0
- package/ajv/lib/dotjs/validate.js +482 -0
- package/ajv/lib/keyword.js +146 -0
- package/ajv/lib/refs/data.json +17 -0
- package/ajv/lib/refs/json-schema-draft-04.json +149 -0
- package/ajv/lib/refs/json-schema-draft-06.json +154 -0
- package/ajv/lib/refs/json-schema-draft-07.json +168 -0
- package/ajv/lib/refs/json-schema-secure.json +94 -0
- package/ajv/package.json +81 -0
- package/ajv/scripts/.eslintrc.yml +3 -0
- package/ajv/scripts/bundle.js +61 -0
- package/ajv/scripts/compile-dots.js +73 -0
- package/ajv/scripts/info +10 -0
- package/ajv/scripts/prepare-tests +12 -0
- package/ajv/scripts/publish-built-version +32 -0
- package/ajv/scripts/travis-gh-pages +23 -0
- package/asn1/Jenkinsfile +65 -0
- package/asn1/LICENSE +19 -0
- package/asn1/README.md +50 -0
- package/asn1/lib/ber/errors.js +13 -0
- package/asn1/lib/ber/index.js +27 -0
- package/asn1/lib/ber/reader.js +262 -0
- package/asn1/lib/ber/types.js +36 -0
- package/asn1/lib/ber/writer.js +317 -0
- package/asn1/lib/index.js +20 -0
- package/asn1/package.json +26 -0
- package/assert-plus/AUTHORS +6 -0
- package/assert-plus/CHANGES.md +14 -0
- package/assert-plus/README.md +162 -0
- package/assert-plus/assert.js +211 -0
- package/assert-plus/package.json +21 -0
- package/asynckit/LICENSE +21 -0
- package/asynckit/README.md +233 -0
- package/asynckit/bench.js +76 -0
- package/asynckit/index.js +6 -0
- package/asynckit/lib/abort.js +29 -0
- package/asynckit/lib/async.js +34 -0
- package/asynckit/lib/defer.js +26 -0
- package/asynckit/lib/iterate.js +75 -0
- package/asynckit/lib/readable_asynckit.js +91 -0
- package/asynckit/lib/readable_parallel.js +25 -0
- package/asynckit/lib/readable_serial.js +25 -0
- package/asynckit/lib/readable_serial_ordered.js +29 -0
- package/asynckit/lib/state.js +37 -0
- package/asynckit/lib/streamify.js +141 -0
- package/asynckit/lib/terminator.js +29 -0
- package/asynckit/package.json +50 -0
- package/asynckit/parallel.js +43 -0
- package/asynckit/serial.js +17 -0
- package/asynckit/serialOrdered.js +75 -0
- package/asynckit/stream.js +21 -0
- package/aws-sign2/LICENSE +55 -0
- package/aws-sign2/README.md +4 -0
- package/aws-sign2/index.js +212 -0
- package/aws-sign2/package.json +17 -0
- package/aws4/.github/FUNDING.yml +3 -0
- package/aws4/.travis.yml +9 -0
- package/aws4/LICENSE +19 -0
- package/aws4/README.md +183 -0
- package/aws4/aws4.js +373 -0
- package/aws4/lru.js +96 -0
- package/aws4/package.json +16 -0
- package/axios/CHANGELOG.md +775 -0
- package/axios/LICENSE +19 -0
- package/axios/README.md +868 -0
- package/axios/SECURITY.md +5 -0
- package/axios/UPGRADE_GUIDE.md +162 -0
- package/axios/dist/axios.js +2193 -0
- package/axios/dist/axios.map +1 -0
- package/axios/dist/axios.min.js +3 -0
- package/axios/dist/axios.min.map +1 -0
- package/axios/index.d.ts +168 -0
- package/axios/index.js +1 -0
- package/axios/lib/adapters/README.md +37 -0
- package/axios/lib/adapters/http.js +331 -0
- package/axios/lib/adapters/xhr.js +189 -0
- package/axios/lib/axios.js +56 -0
- package/axios/lib/cancel/Cancel.js +19 -0
- package/axios/lib/cancel/CancelToken.js +57 -0
- package/axios/lib/cancel/isCancel.js +5 -0
- package/axios/lib/core/Axios.js +148 -0
- package/axios/lib/core/InterceptorManager.js +54 -0
- package/axios/lib/core/README.md +8 -0
- package/axios/lib/core/buildFullPath.js +20 -0
- package/axios/lib/core/createError.js +18 -0
- package/axios/lib/core/dispatchRequest.js +82 -0
- package/axios/lib/core/enhanceError.js +42 -0
- package/axios/lib/core/mergeConfig.js +87 -0
- package/axios/lib/core/settle.js +25 -0
- package/axios/lib/core/transformData.js +22 -0
- package/axios/lib/defaults.js +134 -0
- package/axios/lib/helpers/README.md +7 -0
- package/axios/lib/helpers/bind.js +11 -0
- package/axios/lib/helpers/buildURL.js +70 -0
- package/axios/lib/helpers/combineURLs.js +14 -0
- package/axios/lib/helpers/cookies.js +53 -0
- package/axios/lib/helpers/deprecatedMethod.js +24 -0
- package/axios/lib/helpers/isAbsoluteURL.js +14 -0
- package/axios/lib/helpers/isAxiosError.js +11 -0
- package/axios/lib/helpers/isURLSameOrigin.js +68 -0
- package/axios/lib/helpers/normalizeHeaderName.js +12 -0
- package/axios/lib/helpers/parseHeaders.js +53 -0
- package/axios/lib/helpers/spread.js +27 -0
- package/axios/lib/helpers/validator.js +105 -0
- package/axios/lib/utils.js +349 -0
- package/axios/package.json +52 -0
- package/bcrypt-pbkdf/CONTRIBUTING.md +13 -0
- package/bcrypt-pbkdf/LICENSE +66 -0
- package/bcrypt-pbkdf/README.md +45 -0
- package/bcrypt-pbkdf/index.js +556 -0
- package/bcrypt-pbkdf/package.json +15 -0
- package/caseless/LICENSE +28 -0
- package/caseless/README.md +45 -0
- package/caseless/index.js +67 -0
- package/caseless/package.json +27 -0
- package/caseless/test.js +67 -0
- package/combined-stream/License +19 -0
- package/combined-stream/Readme.md +138 -0
- package/combined-stream/lib/combined_stream.js +208 -0
- package/combined-stream/package.json +24 -0
- package/combined-stream/yarn.lock +17 -0
- package/core-util-is/LICENSE +19 -0
- package/core-util-is/README.md +3 -0
- package/core-util-is/float.patch +604 -0
- package/core-util-is/lib/util.js +107 -0
- package/core-util-is/package.json +32 -0
- package/core-util-is/test.js +68 -0
- package/dashdash/CHANGES.md +364 -0
- package/dashdash/LICENSE.txt +24 -0
- package/dashdash/README.md +574 -0
- package/dashdash/etc/dashdash.bash_completion.in +389 -0
- package/dashdash/lib/dashdash.js +1055 -0
- package/dashdash/package.json +26 -0
- package/delayed-stream/License +19 -0
- package/delayed-stream/Makefile +7 -0
- package/delayed-stream/Readme.md +141 -0
- package/delayed-stream/lib/delayed_stream.js +107 -0
- package/delayed-stream/package.json +26 -0
- package/ecc-jsbn/LICENSE +21 -0
- package/ecc-jsbn/README.md +8 -0
- package/ecc-jsbn/index.js +58 -0
- package/ecc-jsbn/lib/LICENSE-jsbn +40 -0
- package/ecc-jsbn/lib/ec.js +561 -0
- package/ecc-jsbn/lib/sec.js +170 -0
- package/ecc-jsbn/package.json +39 -0
- package/ecc-jsbn/test.js +14 -0
- package/extend/.editorconfig +20 -0
- package/extend/.eslintrc +17 -0
- package/extend/.jscs.json +175 -0
- package/extend/.travis.yml +230 -0
- package/extend/CHANGELOG.md +83 -0
- package/extend/LICENSE +23 -0
- package/extend/README.md +81 -0
- package/extend/component.json +32 -0
- package/extend/index.js +117 -0
- package/extend/package.json +38 -0
- package/extsprintf/.gitmodules +0 -0
- package/extsprintf/LICENSE +19 -0
- package/extsprintf/Makefile +24 -0
- package/extsprintf/Makefile.targ +285 -0
- package/extsprintf/README.md +46 -0
- package/extsprintf/jsl.node.conf +137 -0
- package/extsprintf/lib/extsprintf.js +183 -0
- package/extsprintf/package.json +14 -0
- package/fast-deep-equal/LICENSE +21 -0
- package/fast-deep-equal/README.md +96 -0
- package/fast-deep-equal/es6/index.d.ts +2 -0
- package/fast-deep-equal/es6/index.js +72 -0
- package/fast-deep-equal/es6/react.d.ts +2 -0
- package/fast-deep-equal/es6/react.js +79 -0
- package/fast-deep-equal/index.d.ts +4 -0
- package/fast-deep-equal/index.js +46 -0
- package/fast-deep-equal/package.json +52 -0
- package/fast-deep-equal/react.d.ts +2 -0
- package/fast-deep-equal/react.js +53 -0
- package/fast-json-stable-stringify/.eslintrc.yml +26 -0
- package/fast-json-stable-stringify/.github/FUNDING.yml +1 -0
- package/fast-json-stable-stringify/.travis.yml +8 -0
- package/fast-json-stable-stringify/LICENSE +21 -0
- package/fast-json-stable-stringify/README.md +131 -0
- package/fast-json-stable-stringify/benchmark/index.js +31 -0
- package/fast-json-stable-stringify/benchmark/test.json +137 -0
- package/fast-json-stable-stringify/example/key_cmp.js +7 -0
- package/fast-json-stable-stringify/example/nested.js +3 -0
- package/fast-json-stable-stringify/example/str.js +3 -0
- package/fast-json-stable-stringify/example/value_cmp.js +7 -0
- package/fast-json-stable-stringify/index.d.ts +4 -0
- package/fast-json-stable-stringify/index.js +59 -0
- package/fast-json-stable-stringify/package.json +44 -0
- package/fast-json-stable-stringify/test/cmp.js +13 -0
- package/fast-json-stable-stringify/test/nested.js +44 -0
- package/fast-json-stable-stringify/test/str.js +46 -0
- package/fast-json-stable-stringify/test/to-json.js +22 -0
- package/follow-redirects/LICENSE +18 -0
- package/follow-redirects/README.md +155 -0
- package/follow-redirects/debug.js +15 -0
- package/follow-redirects/http.js +1 -0
- package/follow-redirects/https.js +1 -0
- package/follow-redirects/index.js +598 -0
- package/follow-redirects/package.json +54 -0
- package/forever-agent/LICENSE +55 -0
- package/forever-agent/README.md +4 -0
- package/forever-agent/index.js +138 -0
- package/forever-agent/package.json +17 -0
- package/form-data/License +19 -0
- package/form-data/README.md +234 -0
- package/form-data/README.md.bak +234 -0
- package/form-data/lib/browser.js +2 -0
- package/form-data/lib/form_data.js +457 -0
- package/form-data/lib/populate.js +10 -0
- package/form-data/package.json +46 -0
- package/form-data/yarn.lock +2662 -0
- package/getpass/.travis.yml +9 -0
- package/getpass/LICENSE +18 -0
- package/getpass/README.md +32 -0
- package/getpass/lib/index.js +123 -0
- package/getpass/package.json +18 -0
- package/har-schema/LICENSE +13 -0
- package/har-schema/README.md +49 -0
- package/har-schema/lib/afterRequest.json +30 -0
- package/har-schema/lib/beforeRequest.json +30 -0
- package/har-schema/lib/browser.json +20 -0
- package/har-schema/lib/cache.json +21 -0
- package/har-schema/lib/content.json +29 -0
- package/har-schema/lib/cookie.json +36 -0
- package/har-schema/lib/creator.json +20 -0
- package/har-schema/lib/entry.json +53 -0
- package/har-schema/lib/har.json +13 -0
- package/har-schema/lib/header.json +20 -0
- package/har-schema/lib/index.js +22 -0
- package/har-schema/lib/log.json +36 -0
- package/har-schema/lib/page.json +32 -0
- package/har-schema/lib/pageTimings.json +18 -0
- package/har-schema/lib/postData.json +43 -0
- package/har-schema/lib/query.json +20 -0
- package/har-schema/lib/request.json +57 -0
- package/har-schema/lib/response.json +54 -0
- package/har-schema/lib/timings.json +42 -0
- package/har-schema/package.json +48 -0
- package/har-validator/LICENSE +9 -0
- package/har-validator/README.md +43 -0
- package/har-validator/lib/async.js +105 -0
- package/har-validator/lib/error.js +17 -0
- package/har-validator/lib/promise.js +102 -0
- package/har-validator/package.json +42 -0
- package/http-signature/.dir-locals.el +6 -0
- package/http-signature/CHANGES.md +46 -0
- package/http-signature/LICENSE +18 -0
- package/http-signature/README.md +79 -0
- package/http-signature/http_signing.md +363 -0
- package/http-signature/lib/index.js +29 -0
- package/http-signature/lib/parser.js +315 -0
- package/http-signature/lib/signer.js +401 -0
- package/http-signature/lib/utils.js +112 -0
- package/http-signature/lib/verify.js +88 -0
- package/http-signature/package.json +36 -0
- package/is-typedarray/LICENSE.md +18 -0
- package/is-typedarray/README.md +16 -0
- package/is-typedarray/index.js +41 -0
- package/is-typedarray/package.json +30 -0
- package/is-typedarray/test.js +34 -0
- package/isstream/.jshintrc +59 -0
- package/isstream/.travis.yml +12 -0
- package/isstream/LICENSE.md +11 -0
- package/isstream/README.md +66 -0
- package/isstream/isstream.js +27 -0
- package/isstream/package.json +29 -0
- package/isstream/test.js +168 -0
- package/jsbn/LICENSE +40 -0
- package/jsbn/README.md +175 -0
- package/jsbn/example.html +12 -0
- package/jsbn/example.js +3 -0
- package/jsbn/index.js +1357 -0
- package/jsbn/package.json +21 -0
- package/json-schema/LICENSE +195 -0
- package/json-schema/README.md +3 -0
- package/json-schema/lib/links.js +65 -0
- package/json-schema/lib/validate.js +271 -0
- package/json-schema/package.json +24 -0
- package/json-schema-traverse/.eslintrc.yml +27 -0
- package/json-schema-traverse/.travis.yml +8 -0
- package/json-schema-traverse/LICENSE +21 -0
- package/json-schema-traverse/README.md +83 -0
- package/json-schema-traverse/index.js +89 -0
- package/json-schema-traverse/package.json +39 -0
- package/json-schema-traverse/spec/.eslintrc.yml +6 -0
- package/json-schema-traverse/spec/fixtures/schema.js +125 -0
- package/json-schema-traverse/spec/index.spec.js +171 -0
- package/json-stringify-safe/CHANGELOG.md +14 -0
- package/json-stringify-safe/LICENSE +15 -0
- package/json-stringify-safe/Makefile +35 -0
- package/json-stringify-safe/README.md +52 -0
- package/json-stringify-safe/package.json +29 -0
- package/json-stringify-safe/stringify.js +27 -0
- package/json-stringify-safe/test/mocha.opts +2 -0
- package/json-stringify-safe/test/stringify_test.js +246 -0
- package/jsprim/CHANGES.md +53 -0
- package/jsprim/CONTRIBUTING.md +19 -0
- package/jsprim/LICENSE +19 -0
- package/jsprim/README.md +287 -0
- package/jsprim/lib/jsprim.js +735 -0
- package/jsprim/package.json +17 -0
- package/m3u8stream/LICENSE +21 -0
- package/m3u8stream/README.md +81 -0
- package/m3u8stream/dist/dash-mpd-parser.d.ts +11 -0
- package/m3u8stream/dist/dash-mpd-parser.js +183 -0
- package/m3u8stream/dist/dash-mpd-parser.js.map +1 -0
- package/m3u8stream/dist/index.d.ts +31 -0
- package/m3u8stream/dist/index.js +180 -0
- package/m3u8stream/dist/index.js.map +1 -0
- package/m3u8stream/dist/m3u8-parser.d.ts +18 -0
- package/m3u8stream/dist/m3u8-parser.js +111 -0
- package/m3u8stream/dist/m3u8-parser.js.map +1 -0
- package/m3u8stream/dist/parse-time.d.ts +16 -0
- package/m3u8stream/dist/parse-time.js +59 -0
- package/m3u8stream/dist/parse-time.js.map +1 -0
- package/m3u8stream/dist/parser.d.ts +19 -0
- package/m3u8stream/dist/parser.js +3 -0
- package/m3u8stream/dist/parser.js.map +1 -0
- package/m3u8stream/dist/queue.d.ts +39 -0
- package/m3u8stream/dist/queue.js +58 -0
- package/m3u8stream/dist/queue.js.map +1 -0
- package/m3u8stream/node_modules/sax/LICENSE +41 -0
- package/m3u8stream/node_modules/sax/README.md +225 -0
- package/m3u8stream/node_modules/sax/lib/sax.js +1565 -0
- package/m3u8stream/node_modules/sax/package.json +25 -0
- package/m3u8stream/package.json +41 -0
- package/mime-db/HISTORY.md +507 -0
- package/mime-db/LICENSE +23 -0
- package/mime-db/README.md +100 -0
- package/mime-db/db.json +8519 -0
- package/mime-db/index.js +12 -0
- package/mime-db/package.json +44 -0
- package/mime-types/HISTORY.md +397 -0
- package/mime-types/LICENSE +23 -0
- package/mime-types/README.md +113 -0
- package/mime-types/index.js +188 -0
- package/mime-types/package.json +36 -0
- package/miniget/LICENSE +21 -0
- package/miniget/README.md +111 -0
- package/miniget/dist/index.d.ts +65 -0
- package/miniget/dist/index.js +281 -0
- package/miniget/dist/index.js.map +1 -0
- package/miniget/package.json +36 -0
- package/oauth-sign/LICENSE +55 -0
- package/oauth-sign/README.md +11 -0
- package/oauth-sign/index.js +146 -0
- package/oauth-sign/package.json +23 -0
- package/package.json +11 -0
- package/performance-now/.tm_properties +7 -0
- package/performance-now/.travis.yml +6 -0
- package/performance-now/README.md +30 -0
- package/performance-now/lib/performance-now.js +36 -0
- package/performance-now/lib/performance-now.js.map +10 -0
- package/performance-now/license.txt +7 -0
- package/performance-now/package.json +29 -0
- package/performance-now/src/index.d.ts +8 -0
- package/performance-now/src/performance-now.coffee +17 -0
- package/performance-now/test/mocha.opts +3 -0
- package/performance-now/test/performance-now.coffee +43 -0
- package/performance-now/test/scripts/delayed-call.coffee +11 -0
- package/performance-now/test/scripts/delayed-require.coffee +12 -0
- package/performance-now/test/scripts/difference.coffee +6 -0
- package/performance-now/test/scripts/initial-value.coffee +10 -0
- package/performance-now/test/scripts.coffee +27 -0
- package/psl/.env +0 -0
- package/psl/LICENSE +9 -0
- package/psl/README.md +211 -0
- package/psl/browserstack-logo.svg +90 -0
- package/psl/data/rules.json +9376 -0
- package/psl/dist/psl.js +10187 -0
- package/psl/dist/psl.min.js +1 -0
- package/psl/index.js +269 -0
- package/psl/package.json +30 -0
- package/punycode/LICENSE-MIT.txt +20 -0
- package/punycode/README.md +122 -0
- package/punycode/package.json +56 -0
- package/punycode/punycode.es6.js +441 -0
- package/punycode/punycode.js +440 -0
- package/qs/.editorconfig +43 -0
- package/qs/.eslintrc +37 -0
- package/qs/.github/FUNDING.yml +12 -0
- package/qs/.nycrc +13 -0
- package/qs/CHANGELOG.md +250 -0
- package/qs/LICENSE.md +29 -0
- package/qs/README.md +510 -0
- package/qs/bower.json +21 -0
- package/qs/component.json +15 -0
- package/qs/dist/qs.js +648 -0
- package/qs/lib/formats.js +18 -0
- package/qs/lib/index.js +11 -0
- package/qs/lib/parse.js +175 -0
- package/qs/lib/stringify.js +217 -0
- package/qs/lib/utils.js +215 -0
- package/qs/package.json +41 -0
- package/qs/test/index.js +7 -0
- package/qs/test/parse.js +649 -0
- package/qs/test/stringify.js +642 -0
- package/qs/test/utils.js +65 -0
- package/request/CHANGELOG.md +717 -0
- package/request/LICENSE +55 -0
- package/request/README.md +1133 -0
- package/request/index.js +155 -0
- package/request/lib/auth.js +167 -0
- package/request/lib/cookies.js +38 -0
- package/request/lib/getProxyFromURI.js +79 -0
- package/request/lib/har.js +205 -0
- package/request/lib/hawk.js +89 -0
- package/request/lib/helpers.js +66 -0
- package/request/lib/multipart.js +112 -0
- package/request/lib/oauth.js +148 -0
- package/request/lib/querystring.js +50 -0
- package/request/lib/redirect.js +154 -0
- package/request/lib/tunnel.js +175 -0
- package/request/package.json +48 -0
- package/request/request.js +1553 -0
- package/safe-buffer/LICENSE +21 -0
- package/safe-buffer/README.md +584 -0
- package/safe-buffer/index.d.ts +187 -0
- package/safe-buffer/index.js +65 -0
- package/safe-buffer/package.json +50 -0
- package/safer-buffer/LICENSE +21 -0
- package/safer-buffer/Porting-Buffer.md +268 -0
- package/safer-buffer/Readme.md +156 -0
- package/safer-buffer/dangerous.js +58 -0
- package/safer-buffer/package.json +33 -0
- package/safer-buffer/safer.js +77 -0
- package/safer-buffer/tests.js +406 -0
- package/sax/AUTHORS +10 -0
- package/sax/LICENSE +32 -0
- package/sax/LICENSE-W3C.html +188 -0
- package/sax/README.md +216 -0
- package/sax/component.json +12 -0
- package/sax/examples/big-not-pretty.xml +8002 -0
- package/sax/examples/example.js +29 -0
- package/sax/examples/get-products.js +58 -0
- package/sax/examples/hello-world.js +4 -0
- package/sax/examples/not-pretty.xml +8 -0
- package/sax/examples/pretty-print.js +74 -0
- package/sax/examples/shopping.xml +2 -0
- package/sax/examples/strict.dtd +870 -0
- package/sax/examples/test.html +15 -0
- package/sax/examples/test.xml +1254 -0
- package/sax/lib/sax.js +1355 -0
- package/sax/package.json +12 -0
- package/sax/test/attribute-name.js +33 -0
- package/sax/test/attribute-no-space.js +75 -0
- package/sax/test/buffer-overrun.js +26 -0
- package/sax/test/case.js +50 -0
- package/sax/test/cdata-chunked.js +11 -0
- package/sax/test/cdata-end-split.js +15 -0
- package/sax/test/cdata-fake-end.js +28 -0
- package/sax/test/cdata-multiple.js +15 -0
- package/sax/test/cdata.js +10 -0
- package/sax/test/cyrillic.js +8 -0
- package/sax/test/duplicate-attribute.js +13 -0
- package/sax/test/end_empty_stream.js +5 -0
- package/sax/test/entities.js +10 -0
- package/sax/test/entity-mega.js +16 -0
- package/sax/test/flush.js +13 -0
- package/sax/test/index.js +86 -0
- package/sax/test/issue-23.js +43 -0
- package/sax/test/issue-30.js +24 -0
- package/sax/test/issue-35.js +15 -0
- package/sax/test/issue-47.js +12 -0
- package/sax/test/issue-49.js +31 -0
- package/sax/test/issue-84.js +13 -0
- package/sax/test/parser-position.js +28 -0
- package/sax/test/script-close-better.js +12 -0
- package/sax/test/script.js +12 -0
- package/sax/test/self-closing-child-strict.js +44 -0
- package/sax/test/self-closing-child.js +44 -0
- package/sax/test/self-closing-tag.js +25 -0
- package/sax/test/stray-ending.js +17 -0
- package/sax/test/trailing-attribute-no-value.js +10 -0
- package/sax/test/trailing-non-whitespace.js +18 -0
- package/sax/test/unclosed-root.js +11 -0
- package/sax/test/unquoted.js +18 -0
- package/sax/test/utf8-split.js +32 -0
- package/sax/test/xmlns-as-tag-name.js +15 -0
- package/sax/test/xmlns-issue-41.js +68 -0
- package/sax/test/xmlns-rebinding.js +63 -0
- package/sax/test/xmlns-strict.js +74 -0
- package/sax/test/xmlns-unbound-element.js +33 -0
- package/sax/test/xmlns-unbound.js +15 -0
- package/sax/test/xmlns-xml-default-ns.js +31 -0
- package/sax/test/xmlns-xml-default-prefix-attribute.js +36 -0
- package/sax/test/xmlns-xml-default-prefix.js +21 -0
- package/sax/test/xmlns-xml-default-redefine.js +41 -0
- package/simple-csv-reader/.editorconfig +8 -0
- package/simple-csv-reader/LICENSE +21 -0
- package/simple-csv-reader/README.md +32 -0
- package/simple-csv-reader/dist/simple-csv-reader.min.js +2 -0
- package/simple-csv-reader/dist/simple-csv-reader.min.js.map +1 -0
- package/simple-csv-reader/gulpfile.js +26 -0
- package/simple-csv-reader/index.js +131 -0
- package/simple-csv-reader/package.json +30 -0
- package/sshpk/.travis.yml +11 -0
- package/sshpk/Jenkinsfile +86 -0
- package/sshpk/LICENSE +18 -0
- package/sshpk/README.md +804 -0
- package/sshpk/bin/sshpk-conv +243 -0
- package/sshpk/bin/sshpk-sign +191 -0
- package/sshpk/bin/sshpk-verify +167 -0
- package/sshpk/lib/algs.js +168 -0
- package/sshpk/lib/certificate.js +410 -0
- package/sshpk/lib/dhe.js +397 -0
- package/sshpk/lib/ed-compat.js +92 -0
- package/sshpk/lib/errors.js +84 -0
- package/sshpk/lib/fingerprint.js +220 -0
- package/sshpk/lib/formats/auto.js +124 -0
- package/sshpk/lib/formats/dnssec.js +287 -0
- package/sshpk/lib/formats/openssh-cert.js +352 -0
- package/sshpk/lib/formats/pem.js +290 -0
- package/sshpk/lib/formats/pkcs1.js +373 -0
- package/sshpk/lib/formats/pkcs8.js +631 -0
- package/sshpk/lib/formats/putty.js +194 -0
- package/sshpk/lib/formats/rfc4253.js +166 -0
- package/sshpk/lib/formats/ssh-private.js +262 -0
- package/sshpk/lib/formats/ssh.js +115 -0
- package/sshpk/lib/formats/x509-pem.js +88 -0
- package/sshpk/lib/formats/x509.js +752 -0
- package/sshpk/lib/identity.js +373 -0
- package/sshpk/lib/index.js +40 -0
- package/sshpk/lib/key.js +294 -0
- package/sshpk/lib/private-key.js +247 -0
- package/sshpk/lib/signature.js +314 -0
- package/sshpk/lib/ssh-buffer.js +149 -0
- package/sshpk/lib/utils.js +404 -0
- package/sshpk/man/man1/sshpk-conv.1 +135 -0
- package/sshpk/man/man1/sshpk-sign.1 +81 -0
- package/sshpk/man/man1/sshpk-verify.1 +68 -0
- package/sshpk/package.json +49 -0
- package/tough-cookie/LICENSE +12 -0
- package/tough-cookie/README.md +527 -0
- package/tough-cookie/lib/cookie.js +1482 -0
- package/tough-cookie/lib/memstore.js +181 -0
- package/tough-cookie/lib/pathMatch.js +61 -0
- package/tough-cookie/lib/permuteDomain.js +56 -0
- package/tough-cookie/lib/pubsuffix-psl.js +38 -0
- package/tough-cookie/lib/store.js +75 -0
- package/tough-cookie/lib/version.js +2 -0
- package/tough-cookie/package.json +73 -0
- package/tunnel-agent/LICENSE +55 -0
- package/tunnel-agent/README.md +4 -0
- package/tunnel-agent/index.js +244 -0
- package/tunnel-agent/package.json +22 -0
- package/tweetnacl/AUTHORS.md +28 -0
- package/tweetnacl/CHANGELOG.md +221 -0
- package/tweetnacl/LICENSE +24 -0
- package/tweetnacl/PULL_REQUEST_TEMPLATE.md +20 -0
- package/tweetnacl/README.md +459 -0
- package/tweetnacl/nacl-fast.js +2388 -0
- package/tweetnacl/nacl-fast.min.js +2 -0
- package/tweetnacl/nacl.d.ts +98 -0
- package/tweetnacl/nacl.js +1175 -0
- package/tweetnacl/nacl.min.js +1 -0
- package/tweetnacl/package.json +51 -0
- package/uri-js/LICENSE +11 -0
- package/uri-js/README.md +203 -0
- package/uri-js/dist/es5/uri.all.d.ts +59 -0
- package/uri-js/dist/es5/uri.all.js +1443 -0
- package/uri-js/dist/es5/uri.all.js.map +1 -0
- package/uri-js/dist/es5/uri.all.min.d.ts +59 -0
- package/uri-js/dist/es5/uri.all.min.js +3 -0
- package/uri-js/dist/es5/uri.all.min.js.map +1 -0
- package/uri-js/dist/esnext/index.d.ts +1 -0
- package/uri-js/dist/esnext/index.js +17 -0
- package/uri-js/dist/esnext/index.js.map +1 -0
- package/uri-js/dist/esnext/regexps-iri.d.ts +3 -0
- package/uri-js/dist/esnext/regexps-iri.js +3 -0
- package/uri-js/dist/esnext/regexps-iri.js.map +1 -0
- package/uri-js/dist/esnext/regexps-uri.d.ts +4 -0
- package/uri-js/dist/esnext/regexps-uri.js +42 -0
- package/uri-js/dist/esnext/regexps-uri.js.map +1 -0
- package/uri-js/dist/esnext/schemes/http.d.ts +3 -0
- package/uri-js/dist/esnext/schemes/http.js +28 -0
- package/uri-js/dist/esnext/schemes/http.js.map +1 -0
- package/uri-js/dist/esnext/schemes/https.d.ts +3 -0
- package/uri-js/dist/esnext/schemes/https.js +9 -0
- package/uri-js/dist/esnext/schemes/https.js.map +1 -0
- package/uri-js/dist/esnext/schemes/mailto.d.ts +12 -0
- package/uri-js/dist/esnext/schemes/mailto.js +148 -0
- package/uri-js/dist/esnext/schemes/mailto.js.map +1 -0
- package/uri-js/dist/esnext/schemes/urn-uuid.d.ts +7 -0
- package/uri-js/dist/esnext/schemes/urn-uuid.js +23 -0
- package/uri-js/dist/esnext/schemes/urn-uuid.js.map +1 -0
- package/uri-js/dist/esnext/schemes/urn.d.ts +10 -0
- package/uri-js/dist/esnext/schemes/urn.js +49 -0
- package/uri-js/dist/esnext/schemes/urn.js.map +1 -0
- package/uri-js/dist/esnext/schemes/ws.d.ts +7 -0
- package/uri-js/dist/esnext/schemes/ws.js +41 -0
- package/uri-js/dist/esnext/schemes/ws.js.map +1 -0
- package/uri-js/dist/esnext/schemes/wss.d.ts +3 -0
- package/uri-js/dist/esnext/schemes/wss.js +9 -0
- package/uri-js/dist/esnext/schemes/wss.js.map +1 -0
- package/uri-js/dist/esnext/uri.d.ts +59 -0
- package/uri-js/dist/esnext/uri.js +480 -0
- package/uri-js/dist/esnext/uri.js.map +1 -0
- package/uri-js/dist/esnext/util.d.ts +6 -0
- package/uri-js/dist/esnext/util.js +36 -0
- package/uri-js/dist/esnext/util.js.map +1 -0
- package/uri-js/package.json +67 -0
- package/uri-js/yarn.lock +2558 -0
- package/uuid/AUTHORS +5 -0
- package/uuid/CHANGELOG.md +119 -0
- package/uuid/LICENSE.md +21 -0
- package/uuid/README.md +276 -0
- package/uuid/bin/uuid +65 -0
- package/uuid/index.js +8 -0
- package/uuid/lib/bytesToUuid.js +26 -0
- package/uuid/lib/md5-browser.js +216 -0
- package/uuid/lib/md5.js +25 -0
- package/uuid/lib/rng-browser.js +34 -0
- package/uuid/lib/rng.js +8 -0
- package/uuid/lib/sha1-browser.js +89 -0
- package/uuid/lib/sha1.js +25 -0
- package/uuid/lib/v35.js +57 -0
- package/uuid/package.json +43 -0
- package/uuid/v1.js +109 -0
- package/uuid/v3.js +4 -0
- package/uuid/v4.js +29 -0
- package/uuid/v5.js +3 -0
- package/verror/CHANGES.md +28 -0
- package/verror/CONTRIBUTING.md +19 -0
- package/verror/LICENSE +19 -0
- package/verror/README.md +528 -0
- package/verror/lib/verror.js +451 -0
- package/verror/package.json +20 -0
- package/xml2js/.travis.yml +5 -0
- package/xml2js/83.coffee +6 -0
- package/xml2js/LICENSE +19 -0
- package/xml2js/README.md +248 -0
- package/xml2js/canon.xml +482 -0
- package/xml2js/lib/xml2js.js +299 -0
- package/xml2js/package.json +45 -0
- package/xml2js/text.coffee +11 -0
- package/xml2js/text.xml +485 -0
- package/youtube-downloader-by-ahmad/LICENSE +21 -0
- package/youtube-downloader-by-ahmad/README.md +238 -0
- package/youtube-downloader-by-ahmad/lib/cache.js +54 -0
- package/youtube-downloader-by-ahmad/lib/format-utils.js +250 -0
- package/youtube-downloader-by-ahmad/lib/formats.js +524 -0
- package/youtube-downloader-by-ahmad/lib/index.js +214 -0
- package/youtube-downloader-by-ahmad/lib/info-extras.js +365 -0
- package/youtube-downloader-by-ahmad/lib/info.js +495 -0
- package/youtube-downloader-by-ahmad/lib/sig.js +122 -0
- package/youtube-downloader-by-ahmad/lib/url-utils.js +91 -0
- package/youtube-downloader-by-ahmad/lib/utils.js +286 -0
- package/youtube-downloader-by-ahmad/node_modules/sax/LICENSE +41 -0
- package/youtube-downloader-by-ahmad/node_modules/sax/README.md +225 -0
- package/youtube-downloader-by-ahmad/node_modules/sax/lib/sax.js +1565 -0
- package/youtube-downloader-by-ahmad/node_modules/sax/package.json +25 -0
- package/youtube-downloader-by-ahmad/package.json +61 -0
- package/youtube-downloader-by-ahmad/typings/index.d.ts +426 -0
- package/youtube-search/.travis.yml +5 -0
- package/youtube-search/README.md +61 -0
- package/youtube-search/index.d.ts +77 -0
- package/youtube-search/index.js +111 -0
- package/youtube-search/package.json +26 -0
- package/youtube-search/tests/test-search.js +32 -0
- package/ytdl-getinfo/.travis.yml +3 -0
- package/ytdl-getinfo/README.md +77 -0
- package/ytdl-getinfo/index.js +105 -0
- package/ytdl-getinfo/package.json +30 -0
- package/ytdl-getinfo/playlist.js +50 -0
- package/ytdl-getinfo/test/test.js +68 -0
- package/ytdl-getinfo/updater.js +42 -0
- package/ytdl-getinfo/yarn.lock +533 -0
- package/ytdl-getinfo/ytdl/.gitkeep +0 -0
- package/ytdl-getinfo/ytdl/youtube-dl.exe +0 -0
@@ -0,0 +1,188 @@
|
|
1
|
+
/*!
|
2
|
+
* mime-types
|
3
|
+
* Copyright(c) 2014 Jonathan Ong
|
4
|
+
* Copyright(c) 2015 Douglas Christopher Wilson
|
5
|
+
* MIT Licensed
|
6
|
+
*/
|
7
|
+
|
8
|
+
'use strict'
|
9
|
+
|
10
|
+
/**
|
11
|
+
* Module dependencies.
|
12
|
+
* @private
|
13
|
+
*/
|
14
|
+
|
15
|
+
var db = require('mime-db')
|
16
|
+
var extname = require('path').extname
|
17
|
+
|
18
|
+
/**
|
19
|
+
* Module variables.
|
20
|
+
* @private
|
21
|
+
*/
|
22
|
+
|
23
|
+
var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/
|
24
|
+
var TEXT_TYPE_REGEXP = /^text\//i
|
25
|
+
|
26
|
+
/**
|
27
|
+
* Module exports.
|
28
|
+
* @public
|
29
|
+
*/
|
30
|
+
|
31
|
+
exports.charset = charset
|
32
|
+
exports.charsets = { lookup: charset }
|
33
|
+
exports.contentType = contentType
|
34
|
+
exports.extension = extension
|
35
|
+
exports.extensions = Object.create(null)
|
36
|
+
exports.lookup = lookup
|
37
|
+
exports.types = Object.create(null)
|
38
|
+
|
39
|
+
// Populate the extensions/types maps
|
40
|
+
populateMaps(exports.extensions, exports.types)
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Get the default charset for a MIME type.
|
44
|
+
*
|
45
|
+
* @param {string} type
|
46
|
+
* @return {boolean|string}
|
47
|
+
*/
|
48
|
+
|
49
|
+
function charset (type) {
|
50
|
+
if (!type || typeof type !== 'string') {
|
51
|
+
return false
|
52
|
+
}
|
53
|
+
|
54
|
+
// TODO: use media-typer
|
55
|
+
var match = EXTRACT_TYPE_REGEXP.exec(type)
|
56
|
+
var mime = match && db[match[1].toLowerCase()]
|
57
|
+
|
58
|
+
if (mime && mime.charset) {
|
59
|
+
return mime.charset
|
60
|
+
}
|
61
|
+
|
62
|
+
// default text/* to utf-8
|
63
|
+
if (match && TEXT_TYPE_REGEXP.test(match[1])) {
|
64
|
+
return 'UTF-8'
|
65
|
+
}
|
66
|
+
|
67
|
+
return false
|
68
|
+
}
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Create a full Content-Type header given a MIME type or extension.
|
72
|
+
*
|
73
|
+
* @param {string} str
|
74
|
+
* @return {boolean|string}
|
75
|
+
*/
|
76
|
+
|
77
|
+
function contentType (str) {
|
78
|
+
// TODO: should this even be in this module?
|
79
|
+
if (!str || typeof str !== 'string') {
|
80
|
+
return false
|
81
|
+
}
|
82
|
+
|
83
|
+
var mime = str.indexOf('/') === -1
|
84
|
+
? exports.lookup(str)
|
85
|
+
: str
|
86
|
+
|
87
|
+
if (!mime) {
|
88
|
+
return false
|
89
|
+
}
|
90
|
+
|
91
|
+
// TODO: use content-type or other module
|
92
|
+
if (mime.indexOf('charset') === -1) {
|
93
|
+
var charset = exports.charset(mime)
|
94
|
+
if (charset) mime += '; charset=' + charset.toLowerCase()
|
95
|
+
}
|
96
|
+
|
97
|
+
return mime
|
98
|
+
}
|
99
|
+
|
100
|
+
/**
|
101
|
+
* Get the default extension for a MIME type.
|
102
|
+
*
|
103
|
+
* @param {string} type
|
104
|
+
* @return {boolean|string}
|
105
|
+
*/
|
106
|
+
|
107
|
+
function extension (type) {
|
108
|
+
if (!type || typeof type !== 'string') {
|
109
|
+
return false
|
110
|
+
}
|
111
|
+
|
112
|
+
// TODO: use media-typer
|
113
|
+
var match = EXTRACT_TYPE_REGEXP.exec(type)
|
114
|
+
|
115
|
+
// get extensions
|
116
|
+
var exts = match && exports.extensions[match[1].toLowerCase()]
|
117
|
+
|
118
|
+
if (!exts || !exts.length) {
|
119
|
+
return false
|
120
|
+
}
|
121
|
+
|
122
|
+
return exts[0]
|
123
|
+
}
|
124
|
+
|
125
|
+
/**
|
126
|
+
* Lookup the MIME type for a file path/extension.
|
127
|
+
*
|
128
|
+
* @param {string} path
|
129
|
+
* @return {boolean|string}
|
130
|
+
*/
|
131
|
+
|
132
|
+
function lookup (path) {
|
133
|
+
if (!path || typeof path !== 'string') {
|
134
|
+
return false
|
135
|
+
}
|
136
|
+
|
137
|
+
// get the extension ("ext" or ".ext" or full path)
|
138
|
+
var extension = extname('x.' + path)
|
139
|
+
.toLowerCase()
|
140
|
+
.substr(1)
|
141
|
+
|
142
|
+
if (!extension) {
|
143
|
+
return false
|
144
|
+
}
|
145
|
+
|
146
|
+
return exports.types[extension] || false
|
147
|
+
}
|
148
|
+
|
149
|
+
/**
|
150
|
+
* Populate the extensions and types maps.
|
151
|
+
* @private
|
152
|
+
*/
|
153
|
+
|
154
|
+
function populateMaps (extensions, types) {
|
155
|
+
// source preference (least -> most)
|
156
|
+
var preference = ['nginx', 'apache', undefined, 'iana']
|
157
|
+
|
158
|
+
Object.keys(db).forEach(function forEachMimeType (type) {
|
159
|
+
var mime = db[type]
|
160
|
+
var exts = mime.extensions
|
161
|
+
|
162
|
+
if (!exts || !exts.length) {
|
163
|
+
return
|
164
|
+
}
|
165
|
+
|
166
|
+
// mime -> extensions
|
167
|
+
extensions[type] = exts
|
168
|
+
|
169
|
+
// extension -> mime
|
170
|
+
for (var i = 0; i < exts.length; i++) {
|
171
|
+
var extension = exts[i]
|
172
|
+
|
173
|
+
if (types[extension]) {
|
174
|
+
var from = preference.indexOf(db[types[extension]].source)
|
175
|
+
var to = preference.indexOf(mime.source)
|
176
|
+
|
177
|
+
if (types[extension] !== 'application/octet-stream' &&
|
178
|
+
(from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {
|
179
|
+
// skip the remapping
|
180
|
+
continue
|
181
|
+
}
|
182
|
+
}
|
183
|
+
|
184
|
+
// set the extension -> mime
|
185
|
+
types[extension] = type
|
186
|
+
}
|
187
|
+
})
|
188
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
{
|
2
|
+
"name": "mime-types",
|
3
|
+
"description": "The ultimate javascript content-type utility.",
|
4
|
+
"version": "2.1.35",
|
5
|
+
"contributors": [
|
6
|
+
"Douglas Christopher Wilson <doug@somethingdoug.com>",
|
7
|
+
"Jeremiah Senkpiel <fishrock123@rocketmail.com> (https://searchbeam.jit.su)",
|
8
|
+
"Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)"
|
9
|
+
],
|
10
|
+
"license": "MIT",
|
11
|
+
"keywords": [
|
12
|
+
"mime",
|
13
|
+
"types"
|
14
|
+
],
|
15
|
+
"repository": "jshttp/mime-types",
|
16
|
+
"dependencies": {
|
17
|
+
"mime-db": "1.52.0"
|
18
|
+
},
|
19
|
+
"devDependencies": {
|
20
|
+
|
21
|
+
},
|
22
|
+
"files": [
|
23
|
+
"HISTORY.md",
|
24
|
+
"LICENSE",
|
25
|
+
"index.js"
|
26
|
+
],
|
27
|
+
"engines": {
|
28
|
+
"node": ">= 0.6"
|
29
|
+
},
|
30
|
+
"scripts": {
|
31
|
+
"lint": "eslint .",
|
32
|
+
"test": "mocha --reporter spec test/test.js",
|
33
|
+
"test-ci": "nyc --reporter=lcov --reporter=text npm test",
|
34
|
+
"test-cov": "nyc --reporter=html --reporter=text npm test"
|
35
|
+
}
|
36
|
+
}
|
package/miniget/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (C) 2017 by fent
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
@@ -0,0 +1,111 @@
|
|
1
|
+
# node-miniget
|
2
|
+
|
3
|
+
A small http(s) GET library with redirects, retries, reconnects, concatenating or streaming, and no dependencies. This keeps filesize small for potential browser use.
|
4
|
+
|
5
|
+

|
6
|
+
[](https://codecov.io/gh/fent/node-miniget)
|
7
|
+
|
8
|
+
|
9
|
+
# Usage
|
10
|
+
|
11
|
+
Concatenates a response
|
12
|
+
|
13
|
+
```js
|
14
|
+
const miniget = require('miniget');
|
15
|
+
|
16
|
+
miniget('http://mywebsite.com', (err, res, body) => {
|
17
|
+
console.log('webpage contents: ', body);
|
18
|
+
});
|
19
|
+
|
20
|
+
// with await
|
21
|
+
let body = await miniget('http://yourwebsite.com').text();
|
22
|
+
```
|
23
|
+
|
24
|
+
Request can be streamed right away
|
25
|
+
|
26
|
+
```js
|
27
|
+
miniget('http://api.mywebsite.com/v1/messages.json')
|
28
|
+
.pipe(someWritableStream());
|
29
|
+
```
|
30
|
+
|
31
|
+
|
32
|
+
# API
|
33
|
+
|
34
|
+
### miniget(url, [options])
|
35
|
+
|
36
|
+
Makes a GET request. `url` can be a string or a `URL` object. `options` can have any properties from the [`http.request()` function](https://nodejs.org/api/http.html#http_http_request_options_callback), in addition to
|
37
|
+
|
38
|
+
* `maxRedirects` - Default is `10`.
|
39
|
+
* `maxRetries` - Number of times to retry the request if there is a 500 or connection error. Default is `2`.
|
40
|
+
* `maxReconnects` - During a big download, if there is a disconnect, miniget can try to reconnect and continue the download where it left off. Default is `0`.
|
41
|
+
* `backoff` - An object with `inc` and `max` used to calculate how long to wait to retry a request. Default is `{ inc: 100, max: 10000 }`.
|
42
|
+
* `highWaterMark` - Amount of data to buffer when in stream mode.
|
43
|
+
* `transform` - Use this to add additional features. Called with the object that `http.get()` or `https.get()` would be called with. Must return a transformed object.
|
44
|
+
* `acceptEncoding` - An object with encoding name as the key, and the value as a function that returns a decoding stream.
|
45
|
+
```js
|
46
|
+
acceptEncoding: { gzip: () => require('zlip').createGunzip(stream) }
|
47
|
+
```
|
48
|
+
Given encodings will be added to the `Accept-Encoding` header, and the response will be decoded if the server responds with encoded content.
|
49
|
+
|
50
|
+
Defaults are held in `miniget.defaultOptions` and can be adjusted globally.
|
51
|
+
|
52
|
+
Miniget returns a readable stream, errors will then be emitted on the stream. Returned stream has additional methods added, and can emit the following events.
|
53
|
+
|
54
|
+
### Stream#destroy([error])
|
55
|
+
|
56
|
+
Destroys the request.
|
57
|
+
|
58
|
+
### Stream#destroyed
|
59
|
+
|
60
|
+
Set to `true` after `Stream#destroy()` has been called.
|
61
|
+
|
62
|
+
### Stream#text()
|
63
|
+
|
64
|
+
Returns a promise that resolves to the concatenated contents of the response.
|
65
|
+
|
66
|
+
```js
|
67
|
+
let body = await miniget('http://yourwebsite.com').text();
|
68
|
+
```
|
69
|
+
|
70
|
+
#### Event: redirect
|
71
|
+
* `string` - URL redirected to.
|
72
|
+
|
73
|
+
Emitted when the request was redirected with a redirection status code.
|
74
|
+
|
75
|
+
#### Event: retry
|
76
|
+
* `number` - Number of retry.
|
77
|
+
* `Error` - Request or status code error.
|
78
|
+
|
79
|
+
Emitted when the request fails, or the response has a status code >= 500.
|
80
|
+
|
81
|
+
#### Event: reconnect
|
82
|
+
* `number` - Number of reconnect.
|
83
|
+
* `Error` - Request or response error.
|
84
|
+
|
85
|
+
Emitted when the request or response fails after download has started.
|
86
|
+
|
87
|
+
#### Event: request
|
88
|
+
* [`http.ClientRequest`](https://nodejs.org/api/http.html#http_class_http_clientrequest) - Request.
|
89
|
+
|
90
|
+
Emitted when a video request is made, including after any redirects, retries, and reconnects.
|
91
|
+
|
92
|
+
#### Event: response
|
93
|
+
* [`http.ServerResponse`](https://nodejs.org/api/http.html#http_class_http_serverresponse) - Response.
|
94
|
+
|
95
|
+
Emitted when a video response has been found and has started downloading, including after any successful reconnects.
|
96
|
+
|
97
|
+
#### Forwarded events
|
98
|
+
|
99
|
+
Any events emitted from the [request](https://nodejs.org/api/http.html#http_class_http_clientrequest) or [response](https://nodejs.org/api/http.html#http_class_http_serverresponse) objects will be forwarded to the miniget stream.
|
100
|
+
|
101
|
+
# Install
|
102
|
+
|
103
|
+
npm install miniget
|
104
|
+
|
105
|
+
|
106
|
+
# Tests
|
107
|
+
Tests are written with [mocha](https://mochajs.org)
|
108
|
+
|
109
|
+
```bash
|
110
|
+
npm test
|
111
|
+
```
|
@@ -0,0 +1,65 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { RequestOptions } from 'http';
|
3
|
+
import { PassThrough, Transform } from 'stream';
|
4
|
+
declare namespace Miniget {
|
5
|
+
interface Options extends RequestOptions {
|
6
|
+
maxRedirects?: number;
|
7
|
+
maxRetries?: number;
|
8
|
+
maxReconnects?: number;
|
9
|
+
backoff?: {
|
10
|
+
inc: number;
|
11
|
+
max: number;
|
12
|
+
};
|
13
|
+
highWaterMark?: number;
|
14
|
+
transform?: (parsedUrl: RequestOptions) => RequestOptions;
|
15
|
+
acceptEncoding?: {
|
16
|
+
[key: string]: () => Transform;
|
17
|
+
};
|
18
|
+
}
|
19
|
+
interface DefaultOptions extends Options {
|
20
|
+
maxRedirects: number;
|
21
|
+
maxRetries: number;
|
22
|
+
maxReconnects: number;
|
23
|
+
backoff: {
|
24
|
+
inc: number;
|
25
|
+
max: number;
|
26
|
+
};
|
27
|
+
}
|
28
|
+
type defaultOptions = Miniget.Options;
|
29
|
+
type MinigetError = Error;
|
30
|
+
interface Stream extends PassThrough {
|
31
|
+
abort: (err?: Error) => void;
|
32
|
+
aborted: boolean;
|
33
|
+
destroy: (err?: Error) => this;
|
34
|
+
destroyed: boolean;
|
35
|
+
text: () => Promise<string>;
|
36
|
+
on(event: 'reconnect', listener: (attempt: number, err?: Miniget.MinigetError) => void): this;
|
37
|
+
on(event: 'retry', listener: (attempt: number, err?: Miniget.MinigetError) => void): this;
|
38
|
+
on(event: 'redirect', listener: (url: string) => void): this;
|
39
|
+
on(event: string | symbol, listener: (...args: any) => void): this;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
declare function Miniget(url: string | URL, options?: Miniget.Options): Miniget.Stream;
|
43
|
+
declare namespace Miniget {
|
44
|
+
var defaultOptions: {
|
45
|
+
maxRedirects: number;
|
46
|
+
maxRetries: number;
|
47
|
+
maxReconnects: number;
|
48
|
+
backoff: {
|
49
|
+
inc: number;
|
50
|
+
max: number;
|
51
|
+
};
|
52
|
+
};
|
53
|
+
var MinigetError: {
|
54
|
+
new (message: string, statusCode?: number | undefined): {
|
55
|
+
statusCode?: number | undefined;
|
56
|
+
name: string;
|
57
|
+
message: string;
|
58
|
+
stack?: string | undefined;
|
59
|
+
};
|
60
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function | undefined): void;
|
61
|
+
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
62
|
+
stackTraceLimit: number;
|
63
|
+
};
|
64
|
+
}
|
65
|
+
export = Miniget;
|
@@ -0,0 +1,281 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
const http_1 = __importDefault(require("http"));
|
6
|
+
const https_1 = __importDefault(require("https"));
|
7
|
+
const stream_1 = require("stream");
|
8
|
+
const httpLibs = { 'http:': http_1.default, 'https:': https_1.default };
|
9
|
+
const redirectStatusCodes = new Set([301, 302, 303, 307, 308]);
|
10
|
+
const retryStatusCodes = new Set([429, 503]);
|
11
|
+
// `request`, `response`, `abort`, left out, miniget will emit these.
|
12
|
+
const requestEvents = ['connect', 'continue', 'information', 'socket', 'timeout', 'upgrade'];
|
13
|
+
const responseEvents = ['aborted'];
|
14
|
+
Miniget.MinigetError = class MinigetError extends Error {
|
15
|
+
constructor(message, statusCode) {
|
16
|
+
super(message);
|
17
|
+
this.statusCode = statusCode;
|
18
|
+
}
|
19
|
+
};
|
20
|
+
Miniget.defaultOptions = {
|
21
|
+
maxRedirects: 10,
|
22
|
+
maxRetries: 2,
|
23
|
+
maxReconnects: 0,
|
24
|
+
backoff: { inc: 100, max: 10000 },
|
25
|
+
};
|
26
|
+
function Miniget(url, options = {}) {
|
27
|
+
var _a;
|
28
|
+
const opts = Object.assign({}, Miniget.defaultOptions, options);
|
29
|
+
const stream = new stream_1.PassThrough({ highWaterMark: opts.highWaterMark });
|
30
|
+
stream.destroyed = stream.aborted = false;
|
31
|
+
let activeRequest;
|
32
|
+
let activeResponse;
|
33
|
+
let activeDecodedStream;
|
34
|
+
let redirects = 0;
|
35
|
+
let retries = 0;
|
36
|
+
let retryTimeout;
|
37
|
+
let reconnects = 0;
|
38
|
+
let contentLength;
|
39
|
+
let acceptRanges = false;
|
40
|
+
let rangeStart = 0, rangeEnd;
|
41
|
+
let downloaded = 0;
|
42
|
+
// Check if this is a ranged request.
|
43
|
+
if ((_a = opts.headers) === null || _a === void 0 ? void 0 : _a.Range) {
|
44
|
+
let r = /bytes=(\d+)-(\d+)?/.exec(`${opts.headers.Range}`);
|
45
|
+
if (r) {
|
46
|
+
rangeStart = parseInt(r[1], 10);
|
47
|
+
rangeEnd = parseInt(r[2], 10);
|
48
|
+
}
|
49
|
+
}
|
50
|
+
// Add `Accept-Encoding` header.
|
51
|
+
if (opts.acceptEncoding) {
|
52
|
+
opts.headers = Object.assign({
|
53
|
+
'Accept-Encoding': Object.keys(opts.acceptEncoding).join(', '),
|
54
|
+
}, opts.headers);
|
55
|
+
}
|
56
|
+
const downloadHasStarted = () => activeDecodedStream && downloaded > 0;
|
57
|
+
const downloadComplete = () => !acceptRanges || downloaded === contentLength;
|
58
|
+
const reconnect = (err) => {
|
59
|
+
activeDecodedStream = null;
|
60
|
+
retries = 0;
|
61
|
+
let inc = opts.backoff.inc;
|
62
|
+
let ms = Math.min(inc, opts.backoff.max);
|
63
|
+
retryTimeout = setTimeout(doDownload, ms);
|
64
|
+
stream.emit('reconnect', reconnects, err);
|
65
|
+
};
|
66
|
+
const reconnectIfEndedEarly = (err) => {
|
67
|
+
if (options.method !== 'HEAD' && !downloadComplete() && reconnects++ < opts.maxReconnects) {
|
68
|
+
reconnect(err);
|
69
|
+
return true;
|
70
|
+
}
|
71
|
+
return false;
|
72
|
+
};
|
73
|
+
const retryRequest = (retryOptions) => {
|
74
|
+
if (stream.destroyed) {
|
75
|
+
return false;
|
76
|
+
}
|
77
|
+
if (downloadHasStarted()) {
|
78
|
+
return reconnectIfEndedEarly(retryOptions.err);
|
79
|
+
}
|
80
|
+
else if ((!retryOptions.err || retryOptions.err.message === 'ENOTFOUND') &&
|
81
|
+
retries++ < opts.maxRetries) {
|
82
|
+
let ms = retryOptions.retryAfter ||
|
83
|
+
Math.min(retries * opts.backoff.inc, opts.backoff.max);
|
84
|
+
retryTimeout = setTimeout(doDownload, ms);
|
85
|
+
stream.emit('retry', retries, retryOptions.err);
|
86
|
+
return true;
|
87
|
+
}
|
88
|
+
return false;
|
89
|
+
};
|
90
|
+
const forwardEvents = (ee, events) => {
|
91
|
+
for (let event of events) {
|
92
|
+
ee.on(event, stream.emit.bind(stream, event));
|
93
|
+
}
|
94
|
+
};
|
95
|
+
const doDownload = () => {
|
96
|
+
let parsed = {}, httpLib;
|
97
|
+
try {
|
98
|
+
let urlObj = typeof url === 'string' ? new URL(url) : url;
|
99
|
+
parsed = Object.assign({}, {
|
100
|
+
host: urlObj.host,
|
101
|
+
hostname: urlObj.hostname,
|
102
|
+
path: urlObj.pathname + urlObj.search + urlObj.hash,
|
103
|
+
port: urlObj.port,
|
104
|
+
protocol: urlObj.protocol,
|
105
|
+
});
|
106
|
+
if (urlObj.username) {
|
107
|
+
parsed.auth = `${urlObj.username}:${urlObj.password}`;
|
108
|
+
}
|
109
|
+
httpLib = httpLibs[String(parsed.protocol)];
|
110
|
+
}
|
111
|
+
catch (err) {
|
112
|
+
// Let the error be caught by the if statement below.
|
113
|
+
}
|
114
|
+
if (!httpLib) {
|
115
|
+
stream.emit('error', new Miniget.MinigetError(`Invalid URL: ${url}`));
|
116
|
+
return;
|
117
|
+
}
|
118
|
+
Object.assign(parsed, opts);
|
119
|
+
if (acceptRanges && downloaded > 0) {
|
120
|
+
let start = downloaded + rangeStart;
|
121
|
+
let end = rangeEnd || '';
|
122
|
+
parsed.headers = Object.assign({}, parsed.headers, {
|
123
|
+
Range: `bytes=${start}-${end}`,
|
124
|
+
});
|
125
|
+
}
|
126
|
+
if (opts.transform) {
|
127
|
+
try {
|
128
|
+
parsed = opts.transform(parsed);
|
129
|
+
}
|
130
|
+
catch (err) {
|
131
|
+
stream.emit('error', err);
|
132
|
+
return;
|
133
|
+
}
|
134
|
+
if (!parsed || parsed.protocol) {
|
135
|
+
httpLib = httpLibs[String(parsed === null || parsed === void 0 ? void 0 : parsed.protocol)];
|
136
|
+
if (!httpLib) {
|
137
|
+
stream.emit('error', new Miniget.MinigetError('Invalid URL object from `transform` function'));
|
138
|
+
return;
|
139
|
+
}
|
140
|
+
}
|
141
|
+
}
|
142
|
+
const onError = (err) => {
|
143
|
+
if (stream.destroyed || stream.readableEnded) {
|
144
|
+
return;
|
145
|
+
}
|
146
|
+
cleanup();
|
147
|
+
if (!retryRequest({ err })) {
|
148
|
+
stream.emit('error', err);
|
149
|
+
}
|
150
|
+
else {
|
151
|
+
activeRequest.removeListener('close', onRequestClose);
|
152
|
+
}
|
153
|
+
};
|
154
|
+
const onRequestClose = () => {
|
155
|
+
cleanup();
|
156
|
+
retryRequest({});
|
157
|
+
};
|
158
|
+
const cleanup = () => {
|
159
|
+
activeRequest.removeListener('close', onRequestClose);
|
160
|
+
activeResponse === null || activeResponse === void 0 ? void 0 : activeResponse.removeListener('data', onData);
|
161
|
+
activeDecodedStream === null || activeDecodedStream === void 0 ? void 0 : activeDecodedStream.removeListener('end', onEnd);
|
162
|
+
};
|
163
|
+
const onData = (chunk) => { downloaded += chunk.length; };
|
164
|
+
const onEnd = () => {
|
165
|
+
cleanup();
|
166
|
+
if (!reconnectIfEndedEarly()) {
|
167
|
+
stream.end();
|
168
|
+
}
|
169
|
+
};
|
170
|
+
activeRequest = httpLib.request(parsed, (res) => {
|
171
|
+
// Needed for node v10, v12.
|
172
|
+
// istanbul ignore next
|
173
|
+
if (stream.destroyed) {
|
174
|
+
return;
|
175
|
+
}
|
176
|
+
if (redirectStatusCodes.has(res.statusCode)) {
|
177
|
+
if (redirects++ >= opts.maxRedirects) {
|
178
|
+
stream.emit('error', new Miniget.MinigetError('Too many redirects'));
|
179
|
+
}
|
180
|
+
else {
|
181
|
+
if (res.headers.location) {
|
182
|
+
url = res.headers.location;
|
183
|
+
}
|
184
|
+
else {
|
185
|
+
let err = new Miniget.MinigetError('Redirect status code given with no location', res.statusCode);
|
186
|
+
stream.emit('error', err);
|
187
|
+
cleanup();
|
188
|
+
return;
|
189
|
+
}
|
190
|
+
setTimeout(doDownload, parseInt(res.headers['retry-after'] || '0', 10) * 1000);
|
191
|
+
stream.emit('redirect', url);
|
192
|
+
}
|
193
|
+
cleanup();
|
194
|
+
return;
|
195
|
+
// Check for rate limiting.
|
196
|
+
}
|
197
|
+
else if (retryStatusCodes.has(res.statusCode)) {
|
198
|
+
if (!retryRequest({ retryAfter: parseInt(res.headers['retry-after'] || '0', 10) })) {
|
199
|
+
let err = new Miniget.MinigetError(`Status code: ${res.statusCode}`, res.statusCode);
|
200
|
+
stream.emit('error', err);
|
201
|
+
}
|
202
|
+
cleanup();
|
203
|
+
return;
|
204
|
+
}
|
205
|
+
else if (res.statusCode && (res.statusCode < 200 || res.statusCode >= 400)) {
|
206
|
+
let err = new Miniget.MinigetError(`Status code: ${res.statusCode}`, res.statusCode);
|
207
|
+
if (res.statusCode >= 500) {
|
208
|
+
onError(err);
|
209
|
+
}
|
210
|
+
else {
|
211
|
+
stream.emit('error', err);
|
212
|
+
}
|
213
|
+
cleanup();
|
214
|
+
return;
|
215
|
+
}
|
216
|
+
activeDecodedStream = res;
|
217
|
+
if (opts.acceptEncoding && res.headers['content-encoding']) {
|
218
|
+
for (let enc of res.headers['content-encoding'].split(', ').reverse()) {
|
219
|
+
let fn = opts.acceptEncoding[enc];
|
220
|
+
if (fn) {
|
221
|
+
activeDecodedStream = activeDecodedStream.pipe(fn());
|
222
|
+
activeDecodedStream.on('error', onError);
|
223
|
+
}
|
224
|
+
}
|
225
|
+
}
|
226
|
+
if (!contentLength) {
|
227
|
+
contentLength = parseInt(`${res.headers['content-length']}`, 10);
|
228
|
+
acceptRanges = res.headers['accept-ranges'] === 'bytes' &&
|
229
|
+
contentLength > 0 && opts.maxReconnects > 0;
|
230
|
+
}
|
231
|
+
res.on('data', onData);
|
232
|
+
activeDecodedStream.on('end', onEnd);
|
233
|
+
activeDecodedStream.pipe(stream, { end: !acceptRanges });
|
234
|
+
activeResponse = res;
|
235
|
+
stream.emit('response', res);
|
236
|
+
res.on('error', onError);
|
237
|
+
forwardEvents(res, responseEvents);
|
238
|
+
});
|
239
|
+
activeRequest.on('error', onError);
|
240
|
+
activeRequest.on('close', onRequestClose);
|
241
|
+
forwardEvents(activeRequest, requestEvents);
|
242
|
+
if (stream.destroyed) {
|
243
|
+
streamDestroy(...destroyArgs);
|
244
|
+
}
|
245
|
+
stream.emit('request', activeRequest);
|
246
|
+
activeRequest.end();
|
247
|
+
};
|
248
|
+
stream.abort = (err) => {
|
249
|
+
console.warn('`MinigetStream#abort()` has been deprecated in favor of `MinigetStream#destroy()`');
|
250
|
+
stream.aborted = true;
|
251
|
+
stream.emit('abort');
|
252
|
+
stream.destroy(err);
|
253
|
+
};
|
254
|
+
let destroyArgs;
|
255
|
+
const streamDestroy = (err) => {
|
256
|
+
activeRequest.destroy(err);
|
257
|
+
activeDecodedStream === null || activeDecodedStream === void 0 ? void 0 : activeDecodedStream.unpipe(stream);
|
258
|
+
activeDecodedStream === null || activeDecodedStream === void 0 ? void 0 : activeDecodedStream.destroy();
|
259
|
+
clearTimeout(retryTimeout);
|
260
|
+
};
|
261
|
+
stream._destroy = (...args) => {
|
262
|
+
stream.destroyed = true;
|
263
|
+
if (activeRequest) {
|
264
|
+
streamDestroy(...args);
|
265
|
+
}
|
266
|
+
else {
|
267
|
+
destroyArgs = args;
|
268
|
+
}
|
269
|
+
};
|
270
|
+
stream.text = () => new Promise((resolve, reject) => {
|
271
|
+
let body = '';
|
272
|
+
stream.setEncoding('utf8');
|
273
|
+
stream.on('data', chunk => body += chunk);
|
274
|
+
stream.on('end', () => resolve(body));
|
275
|
+
stream.on('error', reject);
|
276
|
+
});
|
277
|
+
process.nextTick(doDownload);
|
278
|
+
return stream;
|
279
|
+
}
|
280
|
+
module.exports = Miniget;
|
281
|
+
//# sourceMappingURL=index.js.map
|