fsevents 1.0.11 → 1.0.17
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.
Potentially problematic release.
This version of fsevents might be problematic. Click here for more details.
- package/.npmignore +1 -3
- package/.travis.yml +7 -5
- package/ISSUE_TEMPLATE.md +8 -0
- package/build/.target.mk +49 -0
- package/build/Makefile +352 -0
- package/build/action_after_build.target.mk +32 -0
- package/build/binding.Makefile +6 -0
- package/build/fse.target.mk +169 -0
- package/build/gyp-mac-tool +612 -0
- package/fsevents.cc +2 -2
- package/lib/binding/Release/node-v11-darwin-x64/fse.node +0 -0
- package/lib/binding/Release/node-v46-darwin-x64/fse.node +0 -0
- package/lib/binding/Release/node-v47-darwin-x64/fse.node +0 -0
- package/lib/binding/Release/node-v48-darwin-x64/fse.node +0 -0
- package/node_modules/{aws4/node_modules/lru-cache/node_modules/pseudomap → abbrev}/LICENSE +0 -0
- package/node_modules/{node-pre-gyp/node_modules/nopt/node_modules/abbrev → abbrev}/README.md +0 -0
- package/node_modules/{node-pre-gyp/node_modules/nopt/node_modules/abbrev → abbrev}/abbrev.js +0 -0
- package/node_modules/abbrev/package.json +90 -0
- package/node_modules/{lodash.repeat/LICENSE → ansi-regex/license} +5 -7
- package/node_modules/ansi-regex/package.json +47 -21
- package/node_modules/{lodash.padstart/LICENSE → ansi-styles/license} +5 -7
- package/node_modules/ansi-styles/package.json +44 -19
- package/node_modules/aproba/LICENSE +14 -0
- package/node_modules/aproba/README.md +59 -0
- package/node_modules/aproba/index.js +62 -0
- package/node_modules/aproba/package.json +96 -0
- package/node_modules/are-we-there-yet/package.json +31 -6
- package/node_modules/asn1/package.json +31 -5
- package/node_modules/assert-plus/package.json +33 -8
- package/node_modules/{node-uuid/LICENSE.md → asynckit/LICENSE} +1 -1
- package/node_modules/asynckit/README.md +233 -0
- package/node_modules/asynckit/bench.js +76 -0
- package/node_modules/asynckit/index.js +6 -0
- package/node_modules/asynckit/lib/abort.js +29 -0
- package/node_modules/asynckit/lib/async.js +34 -0
- package/node_modules/asynckit/lib/defer.js +26 -0
- package/node_modules/asynckit/lib/iterate.js +75 -0
- package/node_modules/asynckit/lib/readable_asynckit.js +91 -0
- package/node_modules/asynckit/lib/readable_parallel.js +25 -0
- package/node_modules/asynckit/lib/readable_serial.js +25 -0
- package/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
- package/node_modules/asynckit/lib/state.js +37 -0
- package/node_modules/asynckit/lib/streamify.js +141 -0
- package/node_modules/asynckit/lib/terminator.js +29 -0
- package/node_modules/asynckit/package.json +126 -0
- package/node_modules/asynckit/parallel.js +43 -0
- package/node_modules/asynckit/serial.js +17 -0
- package/node_modules/asynckit/serialOrdered.js +75 -0
- package/node_modules/asynckit/stream.js +21 -0
- package/node_modules/aws-sign2/package.json +31 -5
- package/node_modules/aws4/README.md +9 -0
- package/node_modules/aws4/aws4.js +9 -4
- package/node_modules/aws4/lru.js +96 -0
- package/node_modules/aws4/package.json +79 -56
- package/node_modules/{fstream-ignore/node_modules/minimatch/node_modules/brace-expansion → balanced-match}/.npmignore +2 -0
- package/node_modules/{fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/LICENSE.md +0 -0
- package/node_modules/{rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/README.md +5 -3
- package/node_modules/{fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match → balanced-match}/index.js +9 -1
- package/node_modules/balanced-match/package.json +110 -0
- package/node_modules/bcrypt-pbkdf/README.md +39 -0
- package/node_modules/bcrypt-pbkdf/index.js +559 -0
- package/node_modules/bcrypt-pbkdf/package.json +72 -0
- package/node_modules/block-stream/package.json +47 -14
- package/node_modules/boom/package.json +30 -4
- package/node_modules/{fstream-ignore/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/README.md +0 -0
- package/node_modules/{rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion → brace-expansion}/index.js +10 -0
- package/node_modules/brace-expansion/package.json +112 -0
- package/node_modules/buffer-shims/index.js +108 -0
- package/node_modules/buffer-shims/license.md +19 -0
- package/node_modules/buffer-shims/package.json +86 -0
- package/node_modules/buffer-shims/readme.md +21 -0
- package/node_modules/caseless/package.json +34 -8
- package/node_modules/{lodash.pad/LICENSE → chalk/license} +5 -7
- package/node_modules/chalk/node_modules/supports-color/index.js +50 -0
- package/node_modules/chalk/node_modules/supports-color/license +21 -0
- package/node_modules/chalk/node_modules/supports-color/package.json +113 -0
- package/node_modules/chalk/node_modules/supports-color/readme.md +36 -0
- package/node_modules/chalk/package.json +47 -22
- package/node_modules/code-point-at/index.js +32 -0
- package/node_modules/code-point-at/license +21 -0
- package/node_modules/code-point-at/package.json +106 -0
- package/node_modules/code-point-at/readme.md +32 -0
- package/node_modules/combined-stream/package.json +31 -5
- package/node_modules/commander/History.md +261 -0
- package/node_modules/commander/LICENSE +22 -0
- package/node_modules/commander/package.json +32 -6
- package/node_modules/{fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/.travis.yml +0 -0
- package/node_modules/{fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/LICENSE +0 -0
- package/node_modules/{fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/README.markdown +0 -0
- package/node_modules/{fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/example/map.js +0 -0
- package/node_modules/{fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/index.js +0 -0
- package/node_modules/{rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/package.json +47 -21
- package/node_modules/{fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → concat-map}/test/map.js +0 -0
- package/node_modules/console-control-strings/LICENSE +13 -0
- package/node_modules/console-control-strings/README.md +145 -0
- package/node_modules/console-control-strings/README.md~ +140 -0
- package/node_modules/console-control-strings/index.js +125 -0
- package/node_modules/console-control-strings/package.json +96 -0
- package/node_modules/core-util-is/package.json +38 -11
- package/node_modules/cryptiles/package.json +30 -4
- package/node_modules/dashdash/CHANGES.md +364 -0
- package/node_modules/dashdash/LICENSE.txt +24 -0
- package/node_modules/dashdash/etc/dashdash.bash_completion.in +4 -3
- package/node_modules/dashdash/lib/dashdash.js +34 -1
- package/node_modules/dashdash/node_modules/assert-plus/package.json +33 -8
- package/node_modules/dashdash/package.json +49 -23
- package/node_modules/debug/package.json +36 -10
- package/node_modules/deep-extend/CHANGELOG.md +21 -0
- package/node_modules/{rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map → deep-extend}/LICENSE +3 -1
- package/node_modules/deep-extend/package.json +40 -15
- package/node_modules/delayed-stream/package.json +31 -5
- package/node_modules/delegates/package.json +31 -6
- package/node_modules/ecc-jsbn/package.json +33 -7
- package/node_modules/escape-string-regexp/license +21 -0
- package/node_modules/escape-string-regexp/package.json +37 -12
- package/node_modules/extend/package.json +32 -6
- package/node_modules/extsprintf/package.json +30 -5
- package/node_modules/forever-agent/package.json +31 -5
- package/node_modules/form-data/README.md +7 -8
- package/node_modules/form-data/lib/browser.js +1 -1
- package/node_modules/form-data/lib/form_data.js +101 -72
- package/node_modules/form-data/lib/populate.js +6 -5
- package/node_modules/form-data/package.json +80 -47
- package/node_modules/fs.realpath/LICENSE +43 -0
- package/node_modules/fs.realpath/README.md +33 -0
- package/node_modules/fs.realpath/index.js +66 -0
- package/node_modules/fs.realpath/old.js +303 -0
- package/node_modules/fs.realpath/package.json +94 -0
- package/node_modules/fstream/.travis.yml +4 -4
- package/node_modules/fstream/lib/collect.js +2 -0
- package/node_modules/fstream/package.json +46 -16
- package/node_modules/fstream-ignore/package.json +54 -18
- package/node_modules/gauge/CHANGELOG.md +145 -0
- package/node_modules/gauge/README.md +321 -88
- package/node_modules/gauge/base-theme.js +14 -0
- package/node_modules/gauge/error.js +24 -0
- package/node_modules/gauge/has-color.js +12 -0
- package/node_modules/gauge/index.js +230 -0
- package/node_modules/gauge/package.json +82 -27
- package/node_modules/gauge/plumbing.js +47 -0
- package/node_modules/gauge/process.js +3 -0
- package/node_modules/gauge/progress-bar.js +29 -219
- package/node_modules/gauge/render-template.js +181 -0
- package/node_modules/gauge/set-immediate.js +7 -0
- package/node_modules/gauge/set-interval.js +3 -0
- package/node_modules/gauge/spin.js +5 -0
- package/node_modules/gauge/template-item.js +73 -0
- package/node_modules/gauge/theme-set.js +115 -0
- package/node_modules/gauge/themes.js +54 -0
- package/node_modules/gauge/wide-truncate.js +25 -0
- package/node_modules/generate-function/package.json +32 -6
- package/node_modules/generate-object-property/package.json +30 -4
- package/node_modules/getpass/.npmignore +8 -0
- package/node_modules/getpass/.travis.yml +9 -0
- package/node_modules/getpass/LICENSE +18 -0
- package/node_modules/getpass/README.md +32 -0
- package/node_modules/getpass/lib/index.js +123 -0
- package/node_modules/getpass/node_modules/assert-plus/AUTHORS +6 -0
- package/node_modules/getpass/node_modules/assert-plus/CHANGES.md +14 -0
- package/node_modules/getpass/node_modules/assert-plus/README.md +162 -0
- package/node_modules/getpass/node_modules/assert-plus/assert.js +211 -0
- package/node_modules/getpass/node_modules/assert-plus/package.json +115 -0
- package/node_modules/getpass/package.json +90 -0
- package/node_modules/{aws4/node_modules/lru-cache/node_modules/yallist → glob}/LICENSE +0 -0
- package/node_modules/{rimraf/node_modules/glob → glob}/README.md +3 -0
- package/node_modules/glob/changelog.md +67 -0
- package/node_modules/{rimraf/node_modules/glob → glob}/common.js +6 -1
- package/node_modules/{rimraf/node_modules/glob → glob}/glob.js +25 -15
- package/node_modules/glob/package.json +111 -0
- package/node_modules/{rimraf/node_modules/glob → glob}/sync.js +31 -12
- package/node_modules/graceful-fs/LICENSE +15 -0
- package/node_modules/graceful-fs/README.md +83 -3
- package/node_modules/graceful-fs/graceful-fs.js +23 -14
- package/node_modules/graceful-fs/package.json +50 -24
- package/node_modules/graceful-fs/polyfills.js +99 -21
- package/node_modules/graceful-readlink/package.json +30 -4
- package/node_modules/har-validator/LICENSE +13 -0
- package/node_modules/har-validator/package.json +32 -6
- package/node_modules/has-ansi/license +21 -0
- package/node_modules/has-ansi/package.json +45 -19
- package/node_modules/has-unicode/index.js +3 -8
- package/node_modules/has-unicode/package.json +50 -18
- package/node_modules/hawk/package.json +34 -8
- package/node_modules/hoek/package.json +30 -4
- package/node_modules/http-signature/package.json +30 -4
- package/node_modules/{rimraf/node_modules/glob/node_modules/inflight → inflight}/LICENSE +0 -0
- package/node_modules/{rimraf/node_modules/glob/node_modules/inflight → inflight}/README.md +0 -0
- package/node_modules/inflight/inflight.js +54 -0
- package/node_modules/inflight/package.json +105 -0
- package/node_modules/inherits/inherits.js +7 -1
- package/node_modules/inherits/package.json +53 -26
- package/node_modules/{node-pre-gyp/node_modules/nopt → ini}/LICENSE +0 -0
- package/node_modules/ini/package.json +32 -7
- package/node_modules/is-fullwidth-code-point/index.js +46 -0
- package/node_modules/is-fullwidth-code-point/license +21 -0
- package/node_modules/is-fullwidth-code-point/package.json +108 -0
- package/node_modules/is-fullwidth-code-point/readme.md +39 -0
- package/node_modules/is-my-json-valid/index.js +10 -0
- package/node_modules/is-my-json-valid/package.json +52 -19
- package/node_modules/is-my-json-valid/test/misc.js +24 -0
- package/node_modules/is-property/package.json +35 -9
- package/node_modules/is-typedarray/package.json +32 -6
- package/node_modules/isarray/package.json +44 -17
- package/node_modules/isstream/package.json +35 -9
- package/node_modules/jodid25519/package.json +33 -7
- package/node_modules/jsbn/package.json +30 -4
- package/node_modules/json-schema/lib/links.js +17 -3
- package/node_modules/json-schema/lib/validate.js +18 -5
- package/node_modules/json-schema/package.json +44 -12
- package/node_modules/json-stringify-safe/package.json +34 -8
- package/node_modules/jsonpointer/LICENSE.md +21 -0
- package/node_modules/jsonpointer/README.md +17 -10
- package/node_modules/jsonpointer/jsonpointer.js +73 -56
- package/node_modules/jsonpointer/package.json +57 -18
- package/node_modules/jsprim/CHANGES.md +9 -0
- package/node_modules/jsprim/README.md +13 -4
- package/node_modules/jsprim/lib/jsprim.js +12 -2
- package/node_modules/jsprim/package.json +44 -14
- package/node_modules/mime-db/HISTORY.md +55 -0
- package/node_modules/mime-db/db.json +139 -2
- package/node_modules/mime-db/package.json +56 -27
- package/node_modules/mime-types/HISTORY.md +19 -0
- package/node_modules/mime-types/index.js +8 -8
- package/node_modules/mime-types/package.json +48 -19
- package/node_modules/{node-pre-gyp/node_modules/nopt/node_modules/abbrev → minimatch}/LICENSE +0 -0
- package/node_modules/{fstream-ignore/node_modules/minimatch → minimatch}/README.md +2 -9
- package/node_modules/{rimraf/node_modules/glob/node_modules/minimatch → minimatch}/minimatch.js +34 -23
- package/node_modules/minimatch/package.json +98 -0
- package/node_modules/minimist/package.json +24 -16
- package/node_modules/mkdirp/package.json +25 -15
- package/node_modules/ms/History.md +66 -0
- package/node_modules/ms/package.json +29 -3
- package/node_modules/node-pre-gyp/CHANGELOG.md +37 -0
- package/node_modules/node-pre-gyp/README.md +34 -30
- package/node_modules/node-pre-gyp/appveyor.yml +20 -10
- package/node_modules/node-pre-gyp/lib/install.js +42 -8
- package/node_modules/node-pre-gyp/lib/node-pre-gyp.js +2 -0
- package/node_modules/node-pre-gyp/lib/testbinary.js +9 -9
- package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +172 -0
- package/node_modules/node-pre-gyp/package.json +55 -57
- package/node_modules/{ansi → nopt}/.npmignore +0 -0
- package/node_modules/{node-pre-gyp/node_modules/nopt → nopt}/.travis.yml +0 -0
- package/node_modules/{rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy → nopt}/LICENSE +0 -0
- package/node_modules/{node-pre-gyp/node_modules/nopt → nopt}/README.md +0 -0
- package/node_modules/{node-pre-gyp/node_modules/nopt → nopt}/bin/nopt.js +0 -0
- package/node_modules/{node-pre-gyp/node_modules/nopt → nopt}/examples/my-program.js +0 -0
- package/node_modules/{node-pre-gyp/node_modules/nopt → nopt}/lib/nopt.js +0 -0
- package/node_modules/{node-pre-gyp/node_modules/nopt → nopt}/package.json +32 -6
- package/node_modules/{node-pre-gyp/node_modules/nopt → nopt}/test/basic.js +0 -0
- package/node_modules/npmlog/CHANGELOG.md +45 -0
- package/node_modules/npmlog/README.md +23 -2
- package/node_modules/npmlog/log.js +109 -58
- package/node_modules/npmlog/package.json +54 -20
- package/node_modules/number-is-nan/index.js +4 -0
- package/node_modules/number-is-nan/license +21 -0
- package/node_modules/number-is-nan/package.json +103 -0
- package/node_modules/number-is-nan/readme.md +28 -0
- package/node_modules/oauth-sign/package.json +47 -15
- package/node_modules/object-assign/index.js +83 -0
- package/node_modules/object-assign/license +21 -0
- package/node_modules/object-assign/package.json +114 -0
- package/node_modules/object-assign/readme.md +56 -0
- package/node_modules/{rimraf/node_modules/glob/node_modules/once/node_modules/wrappy → once}/LICENSE +0 -0
- package/node_modules/once/README.md +28 -0
- package/node_modules/once/once.js +21 -0
- package/node_modules/once/package.json +47 -16
- package/node_modules/{rimraf/node_modules/glob/node_modules/path-is-absolute → path-is-absolute}/index.js +5 -5
- package/node_modules/path-is-absolute/license +21 -0
- package/node_modules/path-is-absolute/package.json +111 -0
- package/node_modules/{rimraf/node_modules/glob/node_modules/path-is-absolute → path-is-absolute}/readme.md +19 -11
- package/node_modules/pinkie/license +21 -0
- package/node_modules/pinkie/package.json +35 -10
- package/node_modules/pinkie-promise/index.js +1 -1
- package/node_modules/pinkie-promise/license +21 -0
- package/node_modules/pinkie-promise/package.json +46 -16
- package/node_modules/process-nextick-args/index.js +31 -8
- package/node_modules/process-nextick-args/package.json +44 -13
- package/node_modules/punycode/LICENSE-MIT.txt +20 -0
- package/node_modules/punycode/README.md +176 -0
- package/node_modules/punycode/package.json +127 -0
- package/node_modules/punycode/punycode.js +533 -0
- package/node_modules/qs/.eslintrc +15 -13
- package/node_modules/qs/CHANGELOG.md +34 -0
- package/node_modules/qs/README.md +66 -3
- package/node_modules/qs/dist/qs.js +196 -97
- package/node_modules/qs/lib/formats.js +18 -0
- package/node_modules/qs/lib/index.js +6 -4
- package/node_modules/qs/lib/parse.js +48 -46
- package/node_modules/qs/lib/stringify.js +90 -33
- package/node_modules/qs/lib/utils.js +28 -10
- package/node_modules/qs/package.json +57 -24
- package/node_modules/qs/test/.eslintrc +9 -0
- package/node_modules/qs/test/index.js +2 -0
- package/node_modules/qs/test/parse.js +100 -34
- package/node_modules/qs/test/stringify.js +315 -12
- package/node_modules/qs/test/utils.js +13 -0
- package/node_modules/rc/node_modules/minimist/package.json +40 -14
- package/node_modules/rc/package.json +34 -9
- package/node_modules/readable-stream/.npmignore +5 -1
- package/node_modules/readable-stream/.travis.yml +4 -7
- package/node_modules/readable-stream/README.md +6 -2
- package/node_modules/readable-stream/lib/_stream_readable.js +173 -112
- package/node_modules/readable-stream/lib/_stream_transform.js +9 -7
- package/node_modules/readable-stream/lib/_stream_writable.js +57 -19
- package/node_modules/readable-stream/lib/internal/streams/BufferList.js +64 -0
- package/node_modules/readable-stream/package.json +59 -22
- package/node_modules/readable-stream/readable.js +4 -0
- package/node_modules/request/CHANGELOG.md +93 -24
- package/node_modules/request/README.md +12 -8
- package/node_modules/request/index.js +8 -8
- package/node_modules/request/lib/auth.js +1 -1
- package/node_modules/request/lib/helpers.js +7 -16
- package/node_modules/request/lib/multipart.js +1 -1
- package/node_modules/request/lib/oauth.js +1 -1
- package/node_modules/request/lib/redirect.js +5 -1
- package/node_modules/request/package.json +79 -38
- package/node_modules/request/request.js +140 -84
- package/node_modules/rimraf/package.json +44 -19
- package/node_modules/rimraf/rimraf.js +12 -4
- package/node_modules/semver/README.md +31 -8
- package/node_modules/semver/package.json +48 -14
- package/node_modules/semver/range.bnf +1 -1
- package/node_modules/semver/semver.js +21 -6
- package/node_modules/set-blocking/CHANGELOG.md +26 -0
- package/node_modules/set-blocking/LICENSE.txt +14 -0
- package/node_modules/set-blocking/README.md +31 -0
- package/node_modules/set-blocking/index.js +7 -0
- package/node_modules/set-blocking/package.json +106 -0
- package/node_modules/signal-exit/CHANGELOG.md +27 -0
- package/node_modules/signal-exit/LICENSE.txt +16 -0
- package/node_modules/signal-exit/README.md +40 -0
- package/node_modules/signal-exit/index.js +157 -0
- package/node_modules/signal-exit/package.json +106 -0
- package/node_modules/signal-exit/signals.js +53 -0
- package/node_modules/sntp/package.json +32 -6
- package/node_modules/sshpk/.travis.yml +3 -3
- package/node_modules/sshpk/README.md +237 -7
- package/node_modules/sshpk/bin/sshpk-conv +20 -2
- package/node_modules/sshpk/bin/sshpk-sign +16 -1
- package/node_modules/sshpk/lib/certificate.js +291 -0
- package/node_modules/sshpk/lib/errors.js +27 -1
- package/node_modules/sshpk/lib/fingerprint.js +28 -7
- package/node_modules/sshpk/lib/formats/auto.js +8 -8
- package/node_modules/sshpk/lib/formats/openssh-cert.js +289 -0
- package/node_modules/sshpk/lib/formats/pem.js +41 -7
- package/node_modules/sshpk/lib/formats/pkcs1.js +4 -4
- package/node_modules/sshpk/lib/formats/pkcs8.js +6 -11
- package/node_modules/sshpk/lib/formats/rfc4253.js +2 -2
- package/node_modules/sshpk/lib/formats/ssh-private.js +143 -20
- package/node_modules/sshpk/lib/formats/ssh.js +2 -2
- package/node_modules/sshpk/lib/formats/x509-pem.js +77 -0
- package/node_modules/sshpk/lib/formats/x509.js +484 -0
- package/node_modules/sshpk/lib/identity.js +255 -0
- package/node_modules/sshpk/lib/index.js +14 -1
- package/node_modules/sshpk/lib/key.js +21 -17
- package/node_modules/sshpk/lib/private-key.js +19 -12
- package/node_modules/sshpk/lib/signature.js +14 -6
- package/node_modules/sshpk/lib/ssh-buffer.js +24 -0
- package/node_modules/sshpk/lib/utils.js +82 -1
- package/node_modules/sshpk/node_modules/assert-plus/AUTHORS +6 -0
- package/node_modules/sshpk/node_modules/assert-plus/CHANGES.md +14 -0
- package/node_modules/sshpk/node_modules/assert-plus/README.md +162 -0
- package/node_modules/sshpk/node_modules/assert-plus/assert.js +211 -0
- package/node_modules/sshpk/node_modules/assert-plus/package.json +115 -0
- package/node_modules/sshpk/package.json +63 -35
- package/node_modules/string-width/index.js +37 -0
- package/node_modules/string-width/license +21 -0
- package/node_modules/string-width/package.json +124 -0
- package/node_modules/string-width/readme.md +42 -0
- package/node_modules/string_decoder/package.json +35 -8
- package/node_modules/stringstream/package.json +34 -8
- package/node_modules/strip-ansi/license +21 -0
- package/node_modules/strip-ansi/package.json +49 -22
- package/node_modules/strip-json-comments/license +21 -0
- package/node_modules/strip-json-comments/package.json +43 -17
- package/node_modules/supports-color/cli.js +28 -0
- package/node_modules/supports-color/index.js +2 -20
- package/node_modules/supports-color/package.json +61 -36
- package/node_modules/supports-color/readme.md +14 -6
- package/node_modules/tar/package.json +31 -5
- package/node_modules/tar-pack/README.md +4 -1
- package/node_modules/tar-pack/index.js +17 -12
- package/node_modules/tar-pack/node_modules/once/LICENSE +15 -0
- package/node_modules/{rimraf/node_modules/glob → tar-pack}/node_modules/once/README.md +0 -0
- package/node_modules/{rimraf/node_modules/glob → tar-pack}/node_modules/once/once.js +0 -0
- package/node_modules/{rimraf/node_modules/glob → tar-pack}/node_modules/once/package.json +34 -9
- package/node_modules/tar-pack/node_modules/readable-stream/.npmignore +8 -0
- package/node_modules/tar-pack/node_modules/readable-stream/.travis.yml +49 -0
- package/node_modules/tar-pack/node_modules/readable-stream/LICENSE +18 -0
- package/node_modules/tar-pack/node_modules/readable-stream/README.md +36 -0
- package/node_modules/tar-pack/node_modules/readable-stream/doc/stream.md +2015 -0
- package/node_modules/tar-pack/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
- package/node_modules/tar-pack/node_modules/readable-stream/duplex.js +1 -0
- package/node_modules/tar-pack/node_modules/readable-stream/lib/_stream_duplex.js +75 -0
- package/node_modules/tar-pack/node_modules/readable-stream/lib/_stream_passthrough.js +26 -0
- package/node_modules/tar-pack/node_modules/readable-stream/lib/_stream_readable.js +937 -0
- package/node_modules/tar-pack/node_modules/readable-stream/lib/_stream_transform.js +180 -0
- package/node_modules/tar-pack/node_modules/readable-stream/lib/_stream_writable.js +526 -0
- package/node_modules/tar-pack/node_modules/readable-stream/lib/internal/streams/BufferList.js +64 -0
- package/node_modules/tar-pack/node_modules/readable-stream/package.json +125 -0
- package/node_modules/tar-pack/node_modules/readable-stream/passthrough.js +1 -0
- package/node_modules/tar-pack/node_modules/readable-stream/readable.js +16 -0
- package/node_modules/tar-pack/node_modules/readable-stream/transform.js +1 -0
- package/node_modules/tar-pack/node_modules/readable-stream/writable.js +1 -0
- package/node_modules/tar-pack/package.json +54 -20
- package/node_modules/tar-pack/test/index.js +43 -1
- package/node_modules/tough-cookie/LICENSE +27 -0
- package/node_modules/tough-cookie/README.md +17 -3
- package/node_modules/tough-cookie/lib/cookie.js +6 -12
- package/node_modules/tough-cookie/package.json +62 -30
- package/node_modules/tunnel-agent/package.json +46 -13
- package/node_modules/tweetnacl/AUTHORS.md +28 -0
- package/node_modules/tweetnacl/CHANGELOG.md +40 -0
- package/node_modules/tweetnacl/LICENSE +24 -0
- package/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md +20 -0
- package/node_modules/tweetnacl/README.md +33 -19
- package/node_modules/tweetnacl/nacl-fast.min.js +2 -2
- package/node_modules/tweetnacl/nacl.d.ts +98 -0
- package/node_modules/tweetnacl/nacl.min.js +1 -1
- package/node_modules/tweetnacl/package.json +44 -17
- package/node_modules/uid-number/package.json +32 -7
- package/node_modules/util-deprecate/package.json +37 -10
- package/node_modules/uuid/.npmignore +8 -0
- package/node_modules/uuid/.travis.yml +5 -0
- package/node_modules/uuid/AUTHORS +5 -0
- package/node_modules/uuid/HISTORY.md +28 -0
- package/node_modules/{lodash.padend/LICENSE → uuid/LICENSE.md} +1 -3
- package/node_modules/uuid/README.md +132 -0
- package/node_modules/{node-uuid → uuid}/bin/uuid +0 -0
- package/node_modules/uuid/index.js +8 -0
- package/node_modules/uuid/lib/bytesToUuid.js +23 -0
- package/node_modules/uuid/lib/rng-browser.js +33 -0
- package/node_modules/uuid/lib/rng.js +10 -0
- package/node_modules/uuid/package.json +122 -0
- package/node_modules/uuid/test/mocha.opts +3 -0
- package/node_modules/uuid/test/test.js +96 -0
- package/node_modules/uuid/v1.js +103 -0
- package/node_modules/uuid/v4.js +29 -0
- package/node_modules/verror/package.json +30 -5
- package/node_modules/wide-align/.npmignore +5 -0
- package/node_modules/wide-align/LICENSE +14 -0
- package/node_modules/wide-align/README.md +47 -0
- package/node_modules/wide-align/align.js +65 -0
- package/node_modules/wide-align/package.json +93 -0
- package/node_modules/wide-align/test/align.js +37 -0
- package/node_modules/wrappy/package.json +55 -16
- package/node_modules/xtend/package.json +45 -19
- package/package.json +3 -3
- package/node_modules/ansi/.jshintrc +0 -4
- package/node_modules/ansi/History.md +0 -23
- package/node_modules/ansi/LICENSE +0 -24
- package/node_modules/ansi/README.md +0 -98
- package/node_modules/ansi/examples/beep/index.js +0 -16
- package/node_modules/ansi/examples/clear/index.js +0 -15
- package/node_modules/ansi/examples/cursorPosition.js +0 -32
- package/node_modules/ansi/examples/progress/index.js +0 -87
- package/node_modules/ansi/lib/ansi.js +0 -405
- package/node_modules/ansi/lib/newlines.js +0 -71
- package/node_modules/ansi/package.json +0 -69
- package/node_modules/async/README.md +0 -1877
- package/node_modules/async/dist/async.js +0 -1265
- package/node_modules/async/dist/async.min.js +0 -2
- package/node_modules/async/lib/async.js +0 -1265
- package/node_modules/async/package.json +0 -131
- package/node_modules/aws4/node_modules/lru-cache/README.md +0 -142
- package/node_modules/aws4/node_modules/lru-cache/lib/lru-cache.js +0 -469
- package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/README.md +0 -60
- package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/map.js +0 -9
- package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/package.json +0 -60
- package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/pseudomap.js +0 -113
- package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/test/basic.js +0 -86
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/.npmignore +0 -4
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/.travis.yml +0 -7
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/CONTRIBUTING.md +0 -4
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/README.md +0 -204
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/package.json +0 -60
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/test/basic.js +0 -188
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/yallist.js +0 -360
- package/node_modules/aws4/node_modules/lru-cache/package.json +0 -78
- package/node_modules/bl/.jshintrc +0 -59
- package/node_modules/bl/.npmignore +0 -1
- package/node_modules/bl/.travis.yml +0 -13
- package/node_modules/bl/LICENSE.md +0 -13
- package/node_modules/bl/README.md +0 -200
- package/node_modules/bl/bl.js +0 -227
- package/node_modules/bl/package.json +0 -72
- package/node_modules/bl/test/test.js +0 -571
- package/node_modules/block-stream/bench/block-stream-pause.js +0 -70
- package/node_modules/block-stream/bench/block-stream.js +0 -68
- package/node_modules/block-stream/bench/dropper-pause.js +0 -70
- package/node_modules/block-stream/bench/dropper.js +0 -68
- package/node_modules/block-stream/test/basic.js +0 -27
- package/node_modules/block-stream/test/nopad-thorough.js +0 -68
- package/node_modules/block-stream/test/nopad.js +0 -57
- package/node_modules/block-stream/test/pause-resume.js +0 -73
- package/node_modules/block-stream/test/thorough.js +0 -68
- package/node_modules/block-stream/test/two-stream.js +0 -59
- package/node_modules/form-data/.dockerignore +0 -7
- package/node_modules/form-data/.editorconfig +0 -10
- package/node_modules/form-data/.eslintignore +0 -1
- package/node_modules/form-data/.eslintrc +0 -64
- package/node_modules/form-data/wercker.yml +0 -36
- package/node_modules/fstream-ignore/.npmignore +0 -1
- package/node_modules/fstream-ignore/example/basic.js +0 -13
- package/node_modules/fstream-ignore/node_modules/minimatch/minimatch.js +0 -912
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/example.js +0 -8
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/index.js +0 -191
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +0 -2
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +0 -3
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +0 -6
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +0 -89
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +0 -5
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +0 -80
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +0 -84
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +0 -91
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/package.json +0 -86
- package/node_modules/fstream-ignore/node_modules/minimatch/package.json +0 -67
- package/node_modules/fstream-ignore/test/.ignore +0 -2
- package/node_modules/fstream-ignore/test/.npmignore +0 -1
- package/node_modules/fstream-ignore/test/00-setup.js +0 -71
- package/node_modules/fstream-ignore/test/basic.js +0 -28
- package/node_modules/fstream-ignore/test/common.js +0 -40
- package/node_modules/fstream-ignore/test/ignore-most.js +0 -41
- package/node_modules/fstream-ignore/test/nested-ignores.js +0 -51
- package/node_modules/fstream-ignore/test/read-file-order.js +0 -81
- package/node_modules/fstream-ignore/test/unignore-child.js +0 -38
- package/node_modules/fstream-ignore/test/zz-cleanup.js +0 -10
- package/node_modules/gauge/.npmignore +0 -32
- package/node_modules/gauge/example.png +0 -0
- package/node_modules/gauge/test/progress-bar.js +0 -176
- package/node_modules/has-unicode/.npmignore +0 -32
- package/node_modules/has-unicode/test/index.js +0 -26
- package/node_modules/inherits/test.js +0 -25
- package/node_modules/jsonpointer/.travis.yml +0 -10
- package/node_modules/jsonpointer/test.js +0 -98
- package/node_modules/lodash.pad/README.md +0 -18
- package/node_modules/lodash.pad/index.js +0 -296
- package/node_modules/lodash.pad/package.json +0 -91
- package/node_modules/lodash.padend/README.md +0 -18
- package/node_modules/lodash.padend/index.js +0 -285
- package/node_modules/lodash.padend/package.json +0 -91
- package/node_modules/lodash.padstart/README.md +0 -18
- package/node_modules/lodash.padstart/index.js +0 -285
- package/node_modules/lodash.padstart/package.json +0 -91
- package/node_modules/lodash.repeat/README.md +0 -18
- package/node_modules/lodash.repeat/index.js +0 -215
- package/node_modules/lodash.repeat/package.json +0 -92
- package/node_modules/lodash.tostring/LICENSE +0 -23
- package/node_modules/lodash.tostring/README.md +0 -18
- package/node_modules/lodash.tostring/index.js +0 -164
- package/node_modules/lodash.tostring/package.json +0 -91
- package/node_modules/node-pre-gyp/node_modules/nopt/.npmignore +0 -1
- package/node_modules/node-pre-gyp/node_modules/nopt/node_modules/abbrev/.npmignore +0 -4
- package/node_modules/node-pre-gyp/node_modules/nopt/node_modules/abbrev/.travis.yml +0 -5
- package/node_modules/node-pre-gyp/node_modules/nopt/node_modules/abbrev/CONTRIBUTING.md +0 -3
- package/node_modules/node-pre-gyp/node_modules/nopt/node_modules/abbrev/package.json +0 -56
- package/node_modules/node-pre-gyp/node_modules/nopt/node_modules/abbrev/test.js +0 -47
- package/node_modules/node-uuid/.npmignore +0 -4
- package/node_modules/node-uuid/README.md +0 -254
- package/node_modules/node-uuid/benchmark/README.md +0 -53
- package/node_modules/node-uuid/benchmark/bench.gnu +0 -174
- package/node_modules/node-uuid/benchmark/bench.sh +0 -34
- package/node_modules/node-uuid/benchmark/benchmark-native.c +0 -34
- package/node_modules/node-uuid/benchmark/benchmark.js +0 -84
- package/node_modules/node-uuid/bower.json +0 -23
- package/node_modules/node-uuid/component.json +0 -25
- package/node_modules/node-uuid/package.json +0 -87
- package/node_modules/node-uuid/test/compare_v1.js +0 -63
- package/node_modules/node-uuid/test/test.html +0 -17
- package/node_modules/node-uuid/test/test.js +0 -231
- package/node_modules/node-uuid/uuid.js +0 -272
- package/node_modules/npmlog/.nyc_output/64996.json +0 -1
- package/node_modules/npmlog/.nyc_output/64998.json +0 -1
- package/node_modules/npmlog/.nyc_output/65000.json +0 -1
- package/node_modules/npmlog/.travis.yml +0 -14
- package/node_modules/npmlog/example.js +0 -39
- package/node_modules/npmlog/test/basic.js +0 -235
- package/node_modules/npmlog/test/progress.js +0 -131
- package/node_modules/oauth-sign/test.js +0 -89
- package/node_modules/qs/.npmignore +0 -18
- package/node_modules/qs/.travis.yml +0 -69
- package/node_modules/qs/bower.json +0 -22
- package/node_modules/qs/component.json +0 -15
- package/node_modules/readable-stream/.zuul.yml +0 -1
- package/node_modules/readable-stream/doc/stream.markdown +0 -1760
- package/node_modules/request/.eslintrc +0 -45
- package/node_modules/request/.npmignore +0 -6
- package/node_modules/request/.travis.yml +0 -15
- package/node_modules/request/CONTRIBUTING.md +0 -44
- package/node_modules/rimraf/node_modules/glob/node_modules/inflight/.eslintrc +0 -17
- package/node_modules/rimraf/node_modules/glob/node_modules/inflight/inflight.js +0 -44
- package/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/README.md +0 -36
- package/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/package.json +0 -59
- package/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/test/basic.js +0 -51
- package/node_modules/rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy/wrappy.js +0 -33
- package/node_modules/rimraf/node_modules/glob/node_modules/inflight/package.json +0 -68
- package/node_modules/rimraf/node_modules/glob/node_modules/inflight/test.js +0 -97
- package/node_modules/rimraf/node_modules/glob/node_modules/inherits/LICENSE +0 -16
- package/node_modules/rimraf/node_modules/glob/node_modules/inherits/README.md +0 -42
- package/node_modules/rimraf/node_modules/glob/node_modules/inherits/inherits.js +0 -1
- package/node_modules/rimraf/node_modules/glob/node_modules/inherits/inherits_browser.js +0 -23
- package/node_modules/rimraf/node_modules/glob/node_modules/inherits/package.json +0 -59
- package/node_modules/rimraf/node_modules/glob/node_modules/inherits/test.js +0 -25
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/README.md +0 -216
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +0 -3
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +0 -122
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +0 -8
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +0 -2
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +0 -3
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md +0 -21
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +0 -6
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +0 -5
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +0 -50
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +0 -80
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +0 -84
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml +0 -4
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +0 -62
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +0 -6
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +0 -13
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +0 -39
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +0 -86
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/package.json +0 -67
- package/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +0 -36
- package/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +0 -59
- package/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +0 -51
- package/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +0 -33
- package/node_modules/rimraf/node_modules/glob/node_modules/path-is-absolute/package.json +0 -79
- package/node_modules/rimraf/node_modules/glob/package.json +0 -85
- package/node_modules/semver/.npmignore +0 -4
- package/node_modules/semver/.travis.yml +0 -5
- package/node_modules/semver/test/big-numbers.js +0 -31
- package/node_modules/semver/test/clean.js +0 -29
- package/node_modules/semver/test/gtr.js +0 -173
- package/node_modules/semver/test/index.js +0 -698
- package/node_modules/semver/test/ltr.js +0 -181
- package/node_modules/semver/test/major-minor-patch.js +0 -72
- package/node_modules/tunnel-agent/.jshintrc +0 -5
- package/node_modules/tweetnacl/COPYING.txt +0 -9
- package/node_modules/wrappy/test/basic.js +0 -51
- package/test/fsevents.js +0 -27
- package/test/function.js +0 -93
@@ -2,10 +2,11 @@
|
|
2
2
|
|
3
3
|
var test = require('tape');
|
4
4
|
var qs = require('../');
|
5
|
+
var iconv = require('iconv-lite');
|
5
6
|
|
6
7
|
test('parse()', function (t) {
|
7
8
|
t.test('parses a simple string', function (st) {
|
8
|
-
st.deepEqual(qs.parse('0=foo'), {
|
9
|
+
st.deepEqual(qs.parse('0=foo'), { 0: 'foo' });
|
9
10
|
st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' });
|
10
11
|
st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } });
|
11
12
|
st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } });
|
@@ -63,8 +64,15 @@ test('parse()', function (t) {
|
|
63
64
|
st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
|
64
65
|
st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] });
|
65
66
|
st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] });
|
66
|
-
|
67
|
-
st.deepEqual(qs.parse('a=b&a
|
67
|
+
|
68
|
+
st.deepEqual(qs.parse('a[1]=b&a=c', { arrayLimit: 20 }), { a: ['b', 'c'] });
|
69
|
+
st.deepEqual(qs.parse('a[]=b&a=c', { arrayLimit: 0 }), { a: ['b', 'c'] });
|
70
|
+
st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
|
71
|
+
|
72
|
+
st.deepEqual(qs.parse('a=b&a[1]=c', { arrayLimit: 20 }), { a: ['b', 'c'] });
|
73
|
+
st.deepEqual(qs.parse('a=b&a[]=c', { arrayLimit: 0 }), { a: ['b', 'c'] });
|
74
|
+
st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] });
|
75
|
+
|
68
76
|
st.end();
|
69
77
|
});
|
70
78
|
|
@@ -77,13 +85,15 @@ test('parse()', function (t) {
|
|
77
85
|
t.test('allows to specify array indices', function (st) {
|
78
86
|
st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] });
|
79
87
|
st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] });
|
88
|
+
st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 20 }), { a: ['c'] });
|
89
|
+
st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 0 }), { a: { 1: 'c' } });
|
80
90
|
st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] });
|
81
91
|
st.end();
|
82
92
|
});
|
83
93
|
|
84
|
-
t.test('limits specific array indices to
|
85
|
-
st.deepEqual(qs.parse('a[20]=a'), { a: ['a'] });
|
86
|
-
st.deepEqual(qs.parse('a[21]=a'), { a: {
|
94
|
+
t.test('limits specific array indices to arrayLimit', function (st) {
|
95
|
+
st.deepEqual(qs.parse('a[20]=a', { arrayLimit: 20 }), { a: ['a'] });
|
96
|
+
st.deepEqual(qs.parse('a[21]=a', { arrayLimit: 20 }), { a: { 21: 'a' } });
|
87
97
|
st.end();
|
88
98
|
});
|
89
99
|
|
@@ -114,14 +124,17 @@ test('parse()', function (t) {
|
|
114
124
|
});
|
115
125
|
|
116
126
|
t.test('transforms arrays to objects', function (st) {
|
117
|
-
st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: {
|
118
|
-
st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz',
|
119
|
-
st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz',
|
120
|
-
st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: {
|
121
|
-
st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz',
|
127
|
+
st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } });
|
128
|
+
st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', 0: 'bar' } });
|
129
|
+
st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', 0: 'bar' } });
|
130
|
+
st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } });
|
131
|
+
st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } });
|
122
132
|
st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
|
123
|
-
|
124
|
-
st.deepEqual(qs.parse('a[]=b&a[
|
133
|
+
|
134
|
+
st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: false }), { a: { 0: 'b', c: true, t: 'u' } });
|
135
|
+
st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: true }), { a: { 0: 'b', t: 'u', hasOwnProperty: 'c' } });
|
136
|
+
st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: false }), { a: { 0: 'b', 1: 'c', x: 'y' } });
|
137
|
+
st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: true }), { a: { 0: 'b', hasOwnProperty: 'c', x: 'y' } });
|
125
138
|
st.end();
|
126
139
|
});
|
127
140
|
|
@@ -131,10 +144,10 @@ test('parse()', function (t) {
|
|
131
144
|
st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } });
|
132
145
|
st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] });
|
133
146
|
st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] });
|
134
|
-
st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz',
|
135
|
-
st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz',
|
136
|
-
st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: {
|
137
|
-
st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz',
|
147
|
+
st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } });
|
148
|
+
st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } });
|
149
|
+
st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { 0: 'bar', bad: 'baz' } });
|
150
|
+
st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } });
|
138
151
|
st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
|
139
152
|
st.end();
|
140
153
|
});
|
@@ -142,7 +155,7 @@ test('parse()', function (t) {
|
|
142
155
|
t.deepEqual(qs.parse('a[b]=c&a=d'), { a: { b: 'c', d: true } }, 'can add keys to objects');
|
143
156
|
|
144
157
|
t.test('correctly prunes undefined values when converting an array to an object', function (st) {
|
145
|
-
st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: {
|
158
|
+
st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { 2: 'b', 99999999: 'c' } });
|
146
159
|
st.end();
|
147
160
|
});
|
148
161
|
|
@@ -154,7 +167,7 @@ test('parse()', function (t) {
|
|
154
167
|
});
|
155
168
|
|
156
169
|
t.test('doesn\'t produce empty keys', function (st) {
|
157
|
-
st.deepEqual(qs.parse('_r=1&'), {
|
170
|
+
st.deepEqual(qs.parse('_r=1&'), { _r: '1' });
|
158
171
|
st.end();
|
159
172
|
});
|
160
173
|
|
@@ -173,14 +186,42 @@ test('parse()', function (t) {
|
|
173
186
|
|
174
187
|
t.test('allows for empty strings in arrays', function (st) {
|
175
188
|
st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] });
|
176
|
-
|
177
|
-
st.deepEqual(
|
178
|
-
|
189
|
+
|
190
|
+
st.deepEqual(
|
191
|
+
qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true, arrayLimit: 20 }),
|
192
|
+
{ a: ['b', null, 'c', ''] },
|
193
|
+
'with arrayLimit 20 + array indices: null then empty string works'
|
194
|
+
);
|
195
|
+
st.deepEqual(
|
196
|
+
qs.parse('a[]=b&a[]&a[]=c&a[]=', { strictNullHandling: true, arrayLimit: 0 }),
|
197
|
+
{ a: ['b', null, 'c', ''] },
|
198
|
+
'with arrayLimit 0 + array brackets: null then empty string works'
|
199
|
+
);
|
200
|
+
|
201
|
+
st.deepEqual(
|
202
|
+
qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true, arrayLimit: 20 }),
|
203
|
+
{ a: ['b', '', 'c', null] },
|
204
|
+
'with arrayLimit 20 + array indices: empty string then null works'
|
205
|
+
);
|
206
|
+
st.deepEqual(
|
207
|
+
qs.parse('a[]=b&a[]=&a[]=c&a[]', { strictNullHandling: true, arrayLimit: 0 }),
|
208
|
+
{ a: ['b', '', 'c', null] },
|
209
|
+
'with arrayLimit 0 + array brackets: empty string then null works'
|
210
|
+
);
|
211
|
+
|
212
|
+
st.deepEqual(
|
213
|
+
qs.parse('a[]=&a[]=b&a[]=c'),
|
214
|
+
{ a: ['', 'b', 'c'] },
|
215
|
+
'array brackets: empty strings work'
|
216
|
+
);
|
179
217
|
st.end();
|
180
218
|
});
|
181
219
|
|
182
220
|
t.test('compacts sparse arrays', function (st) {
|
183
|
-
st.deepEqual(qs.parse('a[10]=1&a[2]=2'), { a: ['2', '1'] });
|
221
|
+
st.deepEqual(qs.parse('a[10]=1&a[2]=2', { arrayLimit: 20 }), { a: ['2', '1'] });
|
222
|
+
st.deepEqual(qs.parse('a[1][b][2][c]=1', { arrayLimit: 20 }), { a: [{ b: [{ c: '1' }] }] });
|
223
|
+
st.deepEqual(qs.parse('a[1][2][3][c]=1', { arrayLimit: 20 }), { a: [[[{ c: '1' }]]] });
|
224
|
+
st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { arrayLimit: 20 }), { a: [[[{ c: ['1'] }]]] });
|
184
225
|
st.end();
|
185
226
|
});
|
186
227
|
|
@@ -197,8 +238,8 @@ test('parse()', function (t) {
|
|
197
238
|
});
|
198
239
|
|
199
240
|
t.test('continues parsing when no parent is found', function (st) {
|
200
|
-
st.deepEqual(qs.parse('[]=&a=b'), {
|
201
|
-
st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), {
|
241
|
+
st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' });
|
242
|
+
st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' });
|
202
243
|
st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' });
|
203
244
|
st.end();
|
204
245
|
});
|
@@ -209,7 +250,9 @@ test('parse()', function (t) {
|
|
209
250
|
str = str + '&' + str;
|
210
251
|
}
|
211
252
|
|
212
|
-
st.doesNotThrow(function () {
|
253
|
+
st.doesNotThrow(function () {
|
254
|
+
qs.parse(str);
|
255
|
+
});
|
213
256
|
|
214
257
|
st.end();
|
215
258
|
});
|
@@ -252,14 +295,14 @@ test('parse()', function (t) {
|
|
252
295
|
});
|
253
296
|
|
254
297
|
t.test('allows overriding array limit', function (st) {
|
255
|
-
st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: {
|
298
|
+
st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { 0: 'b' } });
|
256
299
|
st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } });
|
257
|
-
st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: {
|
300
|
+
st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } });
|
258
301
|
st.end();
|
259
302
|
});
|
260
303
|
|
261
304
|
t.test('allows disabling array parsing', function (st) {
|
262
|
-
st.deepEqual(qs.parse('a[0]=b&a[1]=c', { parseArrays: false }), { a: {
|
305
|
+
st.deepEqual(qs.parse('a[0]=b&a[1]=c', { parseArrays: false }), { a: { 0: 'b', 1: 'c' } });
|
263
306
|
st.end();
|
264
307
|
});
|
265
308
|
|
@@ -303,13 +346,13 @@ test('parse()', function (t) {
|
|
303
346
|
|
304
347
|
t.test('parses an object and not child values', function (st) {
|
305
348
|
var input = {
|
306
|
-
'user[name]': { 'pop[bob]': {
|
349
|
+
'user[name]': { 'pop[bob]': { test: 3 } },
|
307
350
|
'user[email]': null
|
308
351
|
};
|
309
352
|
|
310
353
|
var expected = {
|
311
354
|
user: {
|
312
|
-
name: { 'pop[bob]': {
|
355
|
+
name: { 'pop[bob]': { test: 3 } },
|
313
356
|
email: null
|
314
357
|
}
|
315
358
|
};
|
@@ -347,7 +390,7 @@ test('parse()', function (t) {
|
|
347
390
|
st.end();
|
348
391
|
});
|
349
392
|
|
350
|
-
t.test('parses
|
393
|
+
t.test('parses null objects correctly', { skip: !Object.create }, function (st) {
|
351
394
|
var a = Object.create(null);
|
352
395
|
a.b = 'c';
|
353
396
|
|
@@ -376,7 +419,7 @@ test('parse()', function (t) {
|
|
376
419
|
st.end();
|
377
420
|
});
|
378
421
|
|
379
|
-
t.test('can return
|
422
|
+
t.test('can return null objects', { skip: !Object.create }, function (st) {
|
380
423
|
var expected = Object.create(null);
|
381
424
|
expected.a = Object.create(null);
|
382
425
|
expected.a.b = 'c';
|
@@ -385,9 +428,32 @@ test('parse()', function (t) {
|
|
385
428
|
st.deepEqual(qs.parse(null, { plainObjects: true }), Object.create(null));
|
386
429
|
var expectedArray = Object.create(null);
|
387
430
|
expectedArray.a = Object.create(null);
|
388
|
-
expectedArray.a[
|
431
|
+
expectedArray.a[0] = 'b';
|
389
432
|
expectedArray.a.c = 'd';
|
390
433
|
st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray);
|
391
434
|
st.end();
|
392
435
|
});
|
436
|
+
|
437
|
+
t.test('can parse with custom encoding', function (st) {
|
438
|
+
st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', {
|
439
|
+
decoder: function (str) {
|
440
|
+
var reg = /%([0-9A-F]{2})/ig;
|
441
|
+
var result = [];
|
442
|
+
var parts = reg.exec(str);
|
443
|
+
while (parts) {
|
444
|
+
result.push(parseInt(parts[1], 16));
|
445
|
+
parts = reg.exec(str);
|
446
|
+
}
|
447
|
+
return iconv.decode(new Buffer(result), 'shift_jis').toString();
|
448
|
+
}
|
449
|
+
}), { 県: '大阪府' });
|
450
|
+
st.end();
|
451
|
+
});
|
452
|
+
|
453
|
+
t.test('throws error with wrong decoder', function (st) {
|
454
|
+
st.throws(function () {
|
455
|
+
qs.parse({}, { decoder: 'string' });
|
456
|
+
}, new TypeError('Decoder has to be a function.'));
|
457
|
+
st.end();
|
458
|
+
});
|
393
459
|
});
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
var test = require('tape');
|
4
4
|
var qs = require('../');
|
5
|
+
var iconv = require('iconv-lite');
|
5
6
|
|
6
7
|
test('stringify()', function (t) {
|
7
8
|
t.test('stringifies a querystring object', function (st) {
|
@@ -22,8 +23,28 @@ test('stringify()', function (t) {
|
|
22
23
|
st.end();
|
23
24
|
});
|
24
25
|
|
26
|
+
t.test('stringifies a nested object with dots notation', function (st) {
|
27
|
+
st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c');
|
28
|
+
st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e');
|
29
|
+
st.end();
|
30
|
+
});
|
31
|
+
|
25
32
|
t.test('stringifies an array value', function (st) {
|
26
|
-
st.equal(
|
33
|
+
st.equal(
|
34
|
+
qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'indices' }),
|
35
|
+
'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d',
|
36
|
+
'indices => indices'
|
37
|
+
);
|
38
|
+
st.equal(
|
39
|
+
qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'brackets' }),
|
40
|
+
'a%5B%5D=b&a%5B%5D=c&a%5B%5D=d',
|
41
|
+
'brackets => brackets'
|
42
|
+
);
|
43
|
+
st.equal(
|
44
|
+
qs.stringify({ a: ['b', 'c', 'd'] }),
|
45
|
+
'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d',
|
46
|
+
'default => indices'
|
47
|
+
);
|
27
48
|
st.end();
|
28
49
|
});
|
29
50
|
|
@@ -32,7 +53,6 @@ test('stringify()', function (t) {
|
|
32
53
|
st.end();
|
33
54
|
});
|
34
55
|
|
35
|
-
|
36
56
|
t.test('omits nested nulls when asked', function (st) {
|
37
57
|
st.equal(qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), 'a%5Bb%5D=c');
|
38
58
|
st.end();
|
@@ -44,13 +64,149 @@ test('stringify()', function (t) {
|
|
44
64
|
});
|
45
65
|
|
46
66
|
t.test('stringifies a nested array value', function (st) {
|
67
|
+
st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'indices' }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d');
|
68
|
+
st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'brackets' }), 'a%5Bb%5D%5B%5D=c&a%5Bb%5D%5B%5D=d');
|
47
69
|
st.equal(qs.stringify({ a: { b: ['c', 'd'] } }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d');
|
48
70
|
st.end();
|
49
71
|
});
|
50
72
|
|
73
|
+
t.test('stringifies a nested array value with dots notation', function (st) {
|
74
|
+
st.equal(
|
75
|
+
qs.stringify(
|
76
|
+
{ a: { b: ['c', 'd'] } },
|
77
|
+
{ allowDots: true, encode: false, arrayFormat: 'indices' }
|
78
|
+
),
|
79
|
+
'a.b[0]=c&a.b[1]=d',
|
80
|
+
'indices: stringifies with dots + indices'
|
81
|
+
);
|
82
|
+
st.equal(
|
83
|
+
qs.stringify(
|
84
|
+
{ a: { b: ['c', 'd'] } },
|
85
|
+
{ allowDots: true, encode: false, arrayFormat: 'brackets' }
|
86
|
+
),
|
87
|
+
'a.b[]=c&a.b[]=d',
|
88
|
+
'brackets: stringifies with dots + brackets'
|
89
|
+
);
|
90
|
+
st.equal(
|
91
|
+
qs.stringify(
|
92
|
+
{ a: { b: ['c', 'd'] } },
|
93
|
+
{ allowDots: true, encode: false }
|
94
|
+
),
|
95
|
+
'a.b[0]=c&a.b[1]=d',
|
96
|
+
'default: stringifies with dots + indices'
|
97
|
+
);
|
98
|
+
st.end();
|
99
|
+
});
|
100
|
+
|
51
101
|
t.test('stringifies an object inside an array', function (st) {
|
52
|
-
st.equal(
|
53
|
-
|
102
|
+
st.equal(
|
103
|
+
qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices' }),
|
104
|
+
'a%5B0%5D%5Bb%5D=c',
|
105
|
+
'indices => brackets'
|
106
|
+
);
|
107
|
+
st.equal(
|
108
|
+
qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets' }),
|
109
|
+
'a%5B%5D%5Bb%5D=c',
|
110
|
+
'brackets => brackets'
|
111
|
+
);
|
112
|
+
st.equal(
|
113
|
+
qs.stringify({ a: [{ b: 'c' }] }),
|
114
|
+
'a%5B0%5D%5Bb%5D=c',
|
115
|
+
'default => indices'
|
116
|
+
);
|
117
|
+
|
118
|
+
st.equal(
|
119
|
+
qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'indices' }),
|
120
|
+
'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1',
|
121
|
+
'indices => indices'
|
122
|
+
);
|
123
|
+
|
124
|
+
st.equal(
|
125
|
+
qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'brackets' }),
|
126
|
+
'a%5B%5D%5Bb%5D%5Bc%5D%5B%5D=1',
|
127
|
+
'brackets => brackets'
|
128
|
+
);
|
129
|
+
|
130
|
+
st.equal(
|
131
|
+
qs.stringify({ a: [{ b: { c: [1] } }] }),
|
132
|
+
'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1',
|
133
|
+
'default => indices'
|
134
|
+
);
|
135
|
+
|
136
|
+
st.end();
|
137
|
+
});
|
138
|
+
|
139
|
+
t.test('stringifies an array with mixed objects and primitives', function (st) {
|
140
|
+
st.equal(
|
141
|
+
qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false, arrayFormat: 'indices' }),
|
142
|
+
'a[0][b]=1&a[1]=2&a[2]=3',
|
143
|
+
'indices => indices'
|
144
|
+
);
|
145
|
+
st.equal(
|
146
|
+
qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false, arrayFormat: 'brackets' }),
|
147
|
+
'a[][b]=1&a[]=2&a[]=3',
|
148
|
+
'brackets => brackets'
|
149
|
+
);
|
150
|
+
st.equal(
|
151
|
+
qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false }),
|
152
|
+
'a[0][b]=1&a[1]=2&a[2]=3',
|
153
|
+
'default => indices'
|
154
|
+
);
|
155
|
+
|
156
|
+
st.end();
|
157
|
+
});
|
158
|
+
|
159
|
+
t.test('stringifies an object inside an array with dots notation', function (st) {
|
160
|
+
st.equal(
|
161
|
+
qs.stringify(
|
162
|
+
{ a: [{ b: 'c' }] },
|
163
|
+
{ allowDots: true, encode: false, arrayFormat: 'indices' }
|
164
|
+
),
|
165
|
+
'a[0].b=c',
|
166
|
+
'indices => indices'
|
167
|
+
);
|
168
|
+
st.equal(
|
169
|
+
qs.stringify(
|
170
|
+
{ a: [{ b: 'c' }] },
|
171
|
+
{ allowDots: true, encode: false, arrayFormat: 'brackets' }
|
172
|
+
),
|
173
|
+
'a[].b=c',
|
174
|
+
'brackets => brackets'
|
175
|
+
);
|
176
|
+
st.equal(
|
177
|
+
qs.stringify(
|
178
|
+
{ a: [{ b: 'c' }] },
|
179
|
+
{ allowDots: true, encode: false }
|
180
|
+
),
|
181
|
+
'a[0].b=c',
|
182
|
+
'default => indices'
|
183
|
+
);
|
184
|
+
|
185
|
+
st.equal(
|
186
|
+
qs.stringify(
|
187
|
+
{ a: [{ b: { c: [1] } }] },
|
188
|
+
{ allowDots: true, encode: false, arrayFormat: 'indices' }
|
189
|
+
),
|
190
|
+
'a[0].b.c[0]=1',
|
191
|
+
'indices => indices'
|
192
|
+
);
|
193
|
+
st.equal(
|
194
|
+
qs.stringify(
|
195
|
+
{ a: [{ b: { c: [1] } }] },
|
196
|
+
{ allowDots: true, encode: false, arrayFormat: 'brackets' }
|
197
|
+
),
|
198
|
+
'a[].b.c[]=1',
|
199
|
+
'brackets => brackets'
|
200
|
+
);
|
201
|
+
st.equal(
|
202
|
+
qs.stringify(
|
203
|
+
{ a: [{ b: { c: [1] } }] },
|
204
|
+
{ allowDots: true, encode: false }
|
205
|
+
),
|
206
|
+
'a[0].b.c[0]=1',
|
207
|
+
'default => indices'
|
208
|
+
);
|
209
|
+
|
54
210
|
st.end();
|
55
211
|
});
|
56
212
|
|
@@ -103,7 +259,7 @@ test('stringify()', function (t) {
|
|
103
259
|
st.end();
|
104
260
|
});
|
105
261
|
|
106
|
-
t.test('stringifies
|
262
|
+
t.test('stringifies a null object', { skip: !Object.create }, function (st) {
|
107
263
|
var obj = Object.create(null);
|
108
264
|
obj.a = 'b';
|
109
265
|
st.equal(qs.stringify(obj), 'a=b');
|
@@ -118,10 +274,8 @@ test('stringify()', function (t) {
|
|
118
274
|
st.end();
|
119
275
|
});
|
120
276
|
|
121
|
-
t.test('stringifies an object with
|
122
|
-
var obj = {
|
123
|
-
a: Object.create(null)
|
124
|
-
};
|
277
|
+
t.test('stringifies an object with a null object as a child', { skip: !Object.create }, function (st) {
|
278
|
+
var obj = { a: Object.create(null) };
|
125
279
|
|
126
280
|
obj.a.b = 'c';
|
127
281
|
st.equal(qs.stringify(obj), 'a%5Bb%5D=c');
|
@@ -193,7 +347,32 @@ test('stringify()', function (t) {
|
|
193
347
|
t.test('selects properties when filter=array', function (st) {
|
194
348
|
st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b');
|
195
349
|
st.equal(qs.stringify({ a: 1 }, { filter: [] }), '');
|
196
|
-
|
350
|
+
|
351
|
+
st.equal(
|
352
|
+
qs.stringify(
|
353
|
+
{ a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
|
354
|
+
{ filter: ['a', 'b', 0, 2], arrayFormat: 'indices' }
|
355
|
+
),
|
356
|
+
'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3',
|
357
|
+
'indices => indices'
|
358
|
+
);
|
359
|
+
st.equal(
|
360
|
+
qs.stringify(
|
361
|
+
{ a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
|
362
|
+
{ filter: ['a', 'b', 0, 2], arrayFormat: 'brackets' }
|
363
|
+
),
|
364
|
+
'a%5Bb%5D%5B%5D=1&a%5Bb%5D%5B%5D=3',
|
365
|
+
'brackets => brackets'
|
366
|
+
);
|
367
|
+
st.equal(
|
368
|
+
qs.stringify(
|
369
|
+
{ a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
|
370
|
+
{ filter: ['a', 'b', 0, 2] }
|
371
|
+
),
|
372
|
+
'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3',
|
373
|
+
'default => indices'
|
374
|
+
);
|
375
|
+
|
197
376
|
st.end();
|
198
377
|
});
|
199
378
|
|
@@ -201,7 +380,7 @@ test('stringify()', function (t) {
|
|
201
380
|
var calls = 0;
|
202
381
|
var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } };
|
203
382
|
var filterFunc = function (prefix, value) {
|
204
|
-
calls
|
383
|
+
calls += 1;
|
205
384
|
if (calls === 1) {
|
206
385
|
st.equal(prefix, '', 'prefix is empty');
|
207
386
|
st.equal(value, obj);
|
@@ -227,9 +406,133 @@ test('stringify()', function (t) {
|
|
227
406
|
});
|
228
407
|
|
229
408
|
t.test('can sort the keys', function (st) {
|
230
|
-
var sort = function (a, b) {
|
409
|
+
var sort = function (a, b) {
|
410
|
+
return a.localeCompare(b);
|
411
|
+
};
|
231
412
|
st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y');
|
232
413
|
st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a');
|
233
414
|
st.end();
|
234
415
|
});
|
416
|
+
|
417
|
+
t.test('can sort the keys at depth 3 or more too', function (st) {
|
418
|
+
var sort = function (a, b) {
|
419
|
+
return a.localeCompare(b);
|
420
|
+
};
|
421
|
+
st.equal(
|
422
|
+
qs.stringify(
|
423
|
+
{ a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' },
|
424
|
+
{ sort: sort, encode: false }
|
425
|
+
),
|
426
|
+
'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb'
|
427
|
+
);
|
428
|
+
st.equal(
|
429
|
+
qs.stringify(
|
430
|
+
{ a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' },
|
431
|
+
{ sort: null, encode: false }
|
432
|
+
),
|
433
|
+
'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b'
|
434
|
+
);
|
435
|
+
st.end();
|
436
|
+
});
|
437
|
+
|
438
|
+
t.test('can stringify with custom encoding', function (st) {
|
439
|
+
st.equal(qs.stringify({ 県: '大阪府', '': '' }, {
|
440
|
+
encoder: function (str) {
|
441
|
+
if (str.length === 0) {
|
442
|
+
return '';
|
443
|
+
}
|
444
|
+
var buf = iconv.encode(str, 'shiftjis');
|
445
|
+
var result = [];
|
446
|
+
for (var i = 0; i < buf.length; ++i) {
|
447
|
+
result.push(buf.readUInt8(i).toString(16));
|
448
|
+
}
|
449
|
+
return '%' + result.join('%');
|
450
|
+
}
|
451
|
+
}), '%8c%a7=%91%e5%8d%e3%95%7b&=');
|
452
|
+
st.end();
|
453
|
+
});
|
454
|
+
|
455
|
+
t.test('throws error with wrong encoder', function (st) {
|
456
|
+
st.throws(function () {
|
457
|
+
qs.stringify({}, { encoder: 'string' });
|
458
|
+
}, new TypeError('Encoder has to be a function.'));
|
459
|
+
st.end();
|
460
|
+
});
|
461
|
+
|
462
|
+
t.test('can use custom encoder for a buffer object', { skip: typeof Buffer === 'undefined' }, function (st) {
|
463
|
+
st.equal(qs.stringify({ a: new Buffer([1]) }, {
|
464
|
+
encoder: function (buffer) {
|
465
|
+
if (typeof buffer === 'string') {
|
466
|
+
return buffer;
|
467
|
+
}
|
468
|
+
return String.fromCharCode(buffer.readUInt8(0) + 97);
|
469
|
+
}
|
470
|
+
}), 'a=b');
|
471
|
+
st.end();
|
472
|
+
});
|
473
|
+
|
474
|
+
t.test('serializeDate option', function (st) {
|
475
|
+
var date = new Date();
|
476
|
+
st.equal(
|
477
|
+
qs.stringify({ a: date }),
|
478
|
+
'a=' + date.toISOString().replace(/:/g, '%3A'),
|
479
|
+
'default is toISOString'
|
480
|
+
);
|
481
|
+
|
482
|
+
var mutatedDate = new Date();
|
483
|
+
mutatedDate.toISOString = function () {
|
484
|
+
throw new SyntaxError();
|
485
|
+
};
|
486
|
+
st.throws(function () {
|
487
|
+
mutatedDate.toISOString();
|
488
|
+
}, SyntaxError);
|
489
|
+
st.equal(
|
490
|
+
qs.stringify({ a: mutatedDate }),
|
491
|
+
'a=' + Date.prototype.toISOString.call(mutatedDate).replace(/:/g, '%3A'),
|
492
|
+
'toISOString works even when method is not locally present'
|
493
|
+
);
|
494
|
+
|
495
|
+
var specificDate = new Date(6);
|
496
|
+
st.equal(
|
497
|
+
qs.stringify(
|
498
|
+
{ a: specificDate },
|
499
|
+
{ serializeDate: function (d) { return d.getTime() * 7; } }
|
500
|
+
),
|
501
|
+
'a=42',
|
502
|
+
'custom serializeDate function called'
|
503
|
+
);
|
504
|
+
|
505
|
+
st.end();
|
506
|
+
});
|
507
|
+
|
508
|
+
t.test('RFC 1738 spaces serialization', function (st) {
|
509
|
+
st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC1738 }), 'a=b+c');
|
510
|
+
st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC1738 }), 'a+b=c+d');
|
511
|
+
st.end();
|
512
|
+
});
|
513
|
+
|
514
|
+
t.test('RFC 3986 spaces serialization', function (st) {
|
515
|
+
st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC3986 }), 'a=b%20c');
|
516
|
+
st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC3986 }), 'a%20b=c%20d');
|
517
|
+
st.end();
|
518
|
+
});
|
519
|
+
|
520
|
+
t.test('Backward compatibility to RFC 3986', function (st) {
|
521
|
+
st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c');
|
522
|
+
st.end();
|
523
|
+
});
|
524
|
+
|
525
|
+
t.test('Edge cases and unknown formats', function (st) {
|
526
|
+
['UFO1234', false, 1234, null, {}, []].forEach(
|
527
|
+
function (format) {
|
528
|
+
st.throws(
|
529
|
+
function () {
|
530
|
+
qs.stringify({ a: 'b c' }, { format: format });
|
531
|
+
},
|
532
|
+
new TypeError('Unknown format option provided.')
|
533
|
+
);
|
534
|
+
}
|
535
|
+
);
|
536
|
+
st.end();
|
537
|
+
});
|
235
538
|
});
|
@@ -5,5 +5,18 @@ var utils = require('../lib/utils');
|
|
5
5
|
|
6
6
|
test('merge()', function (t) {
|
7
7
|
t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key');
|
8
|
+
|
9
|
+
var oneMerged = utils.merge({ foo: 'bar' }, { foo: { first: '123' } });
|
10
|
+
t.deepEqual(oneMerged, { foo: ['bar', { first: '123' }] }, 'merges a standalone and an object into an array');
|
11
|
+
|
12
|
+
var twoMerged = utils.merge({ foo: ['bar', { first: '123' }] }, { foo: { second: '456' } });
|
13
|
+
t.deepEqual(twoMerged, { foo: { 0: 'bar', 1: { first: '123' }, second: '456' } }, 'merges a standalone and two objects into an array');
|
14
|
+
|
15
|
+
var sandwiched = utils.merge({ foo: ['bar', { first: '123', second: '456' }] }, { foo: 'baz' });
|
16
|
+
t.deepEqual(sandwiched, { foo: ['bar', { first: '123', second: '456' }, 'baz'] }, 'merges an object sandwiched by two standalones into an array');
|
17
|
+
|
18
|
+
var nestedArrays = utils.merge({ foo: ['baz'] }, { foo: ['bar', 'xyzzy'] });
|
19
|
+
t.deepEqual(nestedArrays, { foo: ['baz', 'bar', 'xyzzy'] });
|
20
|
+
|
8
21
|
t.end();
|
9
22
|
});
|