fsevents 1.0.15 → 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.

Files changed (361) hide show
  1. package/lib/binding/Release/node-v48-darwin-x64/fse.node +0 -0
  2. package/node_modules/abbrev/package.json +16 -8
  3. package/node_modules/ansi-regex/package.json +31 -23
  4. package/node_modules/ansi-styles/package.json +27 -19
  5. package/node_modules/aproba/package.json +16 -8
  6. package/node_modules/are-we-there-yet/package.json +14 -6
  7. package/node_modules/asn1/package.json +16 -8
  8. package/node_modules/assert-plus/package.json +16 -8
  9. package/node_modules/{node-uuid/LICENSE.md → asynckit/LICENSE} +1 -1
  10. package/node_modules/asynckit/README.md +233 -0
  11. package/node_modules/asynckit/bench.js +76 -0
  12. package/node_modules/asynckit/index.js +6 -0
  13. package/node_modules/asynckit/lib/abort.js +29 -0
  14. package/node_modules/asynckit/lib/async.js +34 -0
  15. package/node_modules/asynckit/lib/defer.js +26 -0
  16. package/node_modules/asynckit/lib/iterate.js +75 -0
  17. package/node_modules/asynckit/lib/readable_asynckit.js +91 -0
  18. package/node_modules/asynckit/lib/readable_parallel.js +25 -0
  19. package/node_modules/asynckit/lib/readable_serial.js +25 -0
  20. package/node_modules/asynckit/lib/readable_serial_ordered.js +29 -0
  21. package/node_modules/asynckit/lib/state.js +37 -0
  22. package/node_modules/asynckit/lib/streamify.js +141 -0
  23. package/node_modules/asynckit/lib/terminator.js +29 -0
  24. package/node_modules/asynckit/package.json +126 -0
  25. package/node_modules/asynckit/parallel.js +43 -0
  26. package/node_modules/asynckit/serial.js +17 -0
  27. package/node_modules/asynckit/serialOrdered.js +75 -0
  28. package/node_modules/asynckit/stream.js +21 -0
  29. package/node_modules/aws-sign2/package.json +15 -7
  30. package/node_modules/aws4/README.md +9 -0
  31. package/node_modules/aws4/aws4.js +8 -3
  32. package/node_modules/aws4/package.json +62 -54
  33. package/node_modules/balanced-match/package.json +27 -19
  34. package/node_modules/bcrypt-pbkdf/README.md +39 -0
  35. package/node_modules/bcrypt-pbkdf/index.js +559 -0
  36. package/node_modules/bcrypt-pbkdf/package.json +72 -0
  37. package/node_modules/block-stream/package.json +15 -7
  38. package/node_modules/boom/package.json +14 -6
  39. package/node_modules/brace-expansion/index.js +10 -0
  40. package/node_modules/brace-expansion/package.json +35 -27
  41. package/node_modules/buffer-shims/package.json +16 -7
  42. package/node_modules/caseless/package.json +18 -10
  43. package/node_modules/chalk/node_modules/supports-color/index.js +50 -0
  44. package/node_modules/{supports-color → chalk/node_modules/supports-color}/license +0 -0
  45. package/node_modules/chalk/node_modules/supports-color/package.json +113 -0
  46. package/node_modules/chalk/node_modules/supports-color/readme.md +36 -0
  47. package/node_modules/chalk/package.json +30 -22
  48. package/node_modules/code-point-at/index.js +3 -4
  49. package/node_modules/code-point-at/package.json +40 -30
  50. package/node_modules/code-point-at/readme.md +2 -4
  51. package/node_modules/combined-stream/package.json +15 -7
  52. package/node_modules/commander/package.json +16 -8
  53. package/node_modules/concat-map/package.json +30 -22
  54. package/node_modules/console-control-strings/package.json +15 -7
  55. package/node_modules/core-util-is/package.json +22 -14
  56. package/node_modules/cryptiles/package.json +14 -6
  57. package/node_modules/dashdash/CHANGES.md +364 -0
  58. package/node_modules/dashdash/LICENSE.txt +24 -0
  59. package/node_modules/dashdash/etc/dashdash.bash_completion.in +4 -3
  60. package/node_modules/dashdash/node_modules/assert-plus/package.json +16 -8
  61. package/node_modules/dashdash/package.json +33 -24
  62. package/node_modules/debug/package.json +20 -12
  63. package/node_modules/deep-extend/package.json +23 -15
  64. package/node_modules/delayed-stream/package.json +15 -7
  65. package/node_modules/delegates/package.json +14 -6
  66. package/node_modules/ecc-jsbn/package.json +17 -9
  67. package/node_modules/escape-string-regexp/package.json +20 -12
  68. package/node_modules/extend/package.json +16 -8
  69. package/node_modules/extsprintf/package.json +14 -6
  70. package/node_modules/forever-agent/package.json +15 -7
  71. package/node_modules/form-data/README.md +7 -8
  72. package/node_modules/form-data/lib/browser.js +1 -1
  73. package/node_modules/form-data/lib/form_data.js +101 -72
  74. package/node_modules/form-data/lib/populate.js +6 -5
  75. package/node_modules/form-data/package.json +68 -52
  76. package/node_modules/fs.realpath/package.json +19 -11
  77. package/node_modules/fstream/package.json +15 -7
  78. package/node_modules/fstream-ignore/package.json +15 -7
  79. package/node_modules/gauge/CHANGELOG.md +14 -0
  80. package/node_modules/gauge/README.md +4 -0
  81. package/node_modules/gauge/index.js +7 -3
  82. package/node_modules/gauge/package.json +37 -28
  83. package/node_modules/generate-function/package.json +16 -8
  84. package/node_modules/generate-object-property/package.json +14 -6
  85. package/node_modules/getpass/node_modules/assert-plus/package.json +16 -8
  86. package/node_modules/getpass/package.json +16 -8
  87. package/node_modules/glob/README.md +3 -0
  88. package/node_modules/glob/common.js +6 -1
  89. package/node_modules/glob/glob.js +23 -14
  90. package/node_modules/glob/package.json +29 -21
  91. package/node_modules/glob/sync.js +29 -11
  92. package/node_modules/graceful-fs/README.md +1 -1
  93. package/node_modules/graceful-fs/graceful-fs.js +23 -14
  94. package/node_modules/graceful-fs/package.json +35 -27
  95. package/node_modules/graceful-fs/polyfills.js +99 -21
  96. package/node_modules/graceful-readlink/package.json +14 -6
  97. package/node_modules/har-validator/package.json +16 -8
  98. package/node_modules/has-ansi/package.json +29 -21
  99. package/node_modules/has-unicode/package.json +18 -10
  100. package/node_modules/hawk/package.json +18 -10
  101. package/node_modules/hoek/package.json +14 -6
  102. package/node_modules/http-signature/package.json +14 -6
  103. package/node_modules/inflight/inflight.js +22 -12
  104. package/node_modules/inflight/package.json +28 -20
  105. package/node_modules/inherits/inherits.js +7 -1
  106. package/node_modules/inherits/package.json +41 -21
  107. package/node_modules/ini/package.json +15 -7
  108. package/node_modules/is-fullwidth-code-point/package.json +27 -19
  109. package/node_modules/is-my-json-valid/index.js +10 -0
  110. package/node_modules/is-my-json-valid/package.json +36 -20
  111. package/node_modules/is-my-json-valid/test/misc.js +24 -0
  112. package/node_modules/is-property/package.json +19 -11
  113. package/node_modules/is-typedarray/package.json +16 -8
  114. package/node_modules/isarray/package.json +28 -20
  115. package/node_modules/isstream/package.json +19 -11
  116. package/node_modules/jodid25519/package.json +18 -10
  117. package/node_modules/jsbn/package.json +15 -7
  118. package/node_modules/json-schema/lib/links.js +17 -3
  119. package/node_modules/json-schema/lib/validate.js +18 -5
  120. package/node_modules/json-schema/package.json +32 -18
  121. package/node_modules/json-stringify-safe/package.json +18 -10
  122. package/node_modules/{async/LICENSE → jsonpointer/LICENSE.md} +3 -1
  123. package/node_modules/jsonpointer/README.md +17 -10
  124. package/node_modules/jsonpointer/jsonpointer.js +73 -56
  125. package/node_modules/jsonpointer/package.json +47 -26
  126. package/node_modules/jsprim/CHANGES.md +4 -0
  127. package/node_modules/jsprim/package.json +25 -17
  128. package/node_modules/mime-db/HISTORY.md +34 -0
  129. package/node_modules/mime-db/db.json +86 -1
  130. package/node_modules/mime-db/package.json +43 -31
  131. package/node_modules/mime-types/HISTORY.md +13 -0
  132. package/node_modules/mime-types/index.js +8 -8
  133. package/node_modules/mime-types/package.json +31 -19
  134. package/node_modules/minimatch/minimatch.js +19 -20
  135. package/node_modules/minimatch/package.json +25 -17
  136. package/node_modules/minimist/package.json +24 -16
  137. package/node_modules/mkdirp/package.json +21 -13
  138. package/node_modules/ms/package.json +14 -6
  139. package/node_modules/node-pre-gyp/CHANGELOG.md +16 -0
  140. package/node_modules/node-pre-gyp/README.md +574 -0
  141. package/node_modules/node-pre-gyp/appveyor.yml +19 -9
  142. package/node_modules/node-pre-gyp/lib/install.js +31 -7
  143. package/node_modules/node-pre-gyp/lib/node-pre-gyp.js +2 -0
  144. package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +88 -0
  145. package/node_modules/node-pre-gyp/package.json +48 -40
  146. package/node_modules/nopt/package.json +19 -11
  147. package/node_modules/npmlog/CHANGELOG.md +9 -0
  148. package/node_modules/npmlog/README.md +7 -1
  149. package/node_modules/npmlog/log.js +12 -8
  150. package/node_modules/npmlog/package.json +30 -22
  151. package/node_modules/number-is-nan/package.json +39 -30
  152. package/node_modules/number-is-nan/readme.md +1 -3
  153. package/node_modules/oauth-sign/package.json +15 -7
  154. package/node_modules/object-assign/package.json +22 -14
  155. package/node_modules/once/README.md +28 -0
  156. package/node_modules/once/once.js +21 -0
  157. package/node_modules/once/package.json +31 -20
  158. package/node_modules/path-is-absolute/index.js +5 -5
  159. package/node_modules/path-is-absolute/package.json +45 -31
  160. package/node_modules/path-is-absolute/readme.md +19 -11
  161. package/node_modules/pinkie/package.json +18 -10
  162. package/node_modules/pinkie-promise/package.json +18 -10
  163. package/node_modules/process-nextick-args/package.json +16 -8
  164. package/node_modules/punycode/LICENSE-MIT.txt +20 -0
  165. package/node_modules/punycode/README.md +176 -0
  166. package/node_modules/punycode/package.json +127 -0
  167. package/node_modules/punycode/punycode.js +533 -0
  168. package/node_modules/qs/.eslintrc +15 -15
  169. package/node_modules/qs/CHANGELOG.md +24 -0
  170. package/node_modules/qs/README.md +398 -0
  171. package/node_modules/qs/dist/qs.js +138 -51
  172. package/node_modules/qs/lib/formats.js +18 -0
  173. package/node_modules/qs/lib/index.js +6 -4
  174. package/node_modules/qs/lib/parse.js +23 -24
  175. package/node_modules/qs/lib/stringify.js +63 -13
  176. package/node_modules/qs/lib/utils.js +22 -6
  177. package/node_modules/qs/package.json +40 -30
  178. package/node_modules/qs/test/.eslintrc +9 -0
  179. package/node_modules/qs/test/index.js +2 -0
  180. package/node_modules/qs/test/parse.js +81 -45
  181. package/node_modules/qs/test/stringify.js +260 -27
  182. package/node_modules/qs/test/utils.js +13 -0
  183. package/node_modules/rc/node_modules/minimist/package.json +24 -16
  184. package/node_modules/rc/package.json +21 -13
  185. package/node_modules/readable-stream/.npmignore +1 -0
  186. package/node_modules/readable-stream/.travis.yml +2 -7
  187. package/node_modules/readable-stream/README.md +6 -2
  188. package/node_modules/readable-stream/lib/_stream_readable.js +158 -110
  189. package/node_modules/readable-stream/lib/_stream_transform.js +7 -5
  190. package/node_modules/readable-stream/lib/_stream_writable.js +35 -7
  191. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +64 -0
  192. package/node_modules/readable-stream/package.json +34 -26
  193. package/node_modules/request/CHANGELOG.md +49 -18
  194. package/node_modules/request/README.md +3 -2
  195. package/node_modules/request/index.js +2 -3
  196. package/node_modules/request/lib/auth.js +1 -1
  197. package/node_modules/request/lib/helpers.js +4 -13
  198. package/node_modules/request/lib/multipart.js +1 -1
  199. package/node_modules/request/lib/oauth.js +1 -1
  200. package/node_modules/request/lib/redirect.js +5 -1
  201. package/node_modules/request/package.json +50 -31
  202. package/node_modules/request/request.js +84 -43
  203. package/node_modules/rimraf/package.json +28 -20
  204. package/node_modules/rimraf/rimraf.js +2 -2
  205. package/node_modules/semver/README.md +4 -0
  206. package/node_modules/semver/package.json +27 -19
  207. package/node_modules/semver/semver.js +14 -5
  208. package/node_modules/set-blocking/package.json +21 -13
  209. package/node_modules/signal-exit/CHANGELOG.md +10 -0
  210. package/node_modules/signal-exit/LICENSE.txt +2 -0
  211. package/node_modules/signal-exit/index.js +9 -0
  212. package/node_modules/signal-exit/package.json +32 -24
  213. package/node_modules/signal-exit/signals.js +5 -4
  214. package/node_modules/sntp/package.json +16 -8
  215. package/node_modules/sshpk/README.md +214 -3
  216. package/node_modules/sshpk/bin/sshpk-conv +6 -0
  217. package/node_modules/sshpk/lib/certificate.js +291 -0
  218. package/node_modules/sshpk/lib/errors.js +14 -1
  219. package/node_modules/sshpk/lib/fingerprint.js +28 -7
  220. package/node_modules/sshpk/lib/formats/openssh-cert.js +289 -0
  221. package/node_modules/sshpk/lib/formats/pem.js +2 -2
  222. package/node_modules/sshpk/lib/formats/pkcs8.js +2 -7
  223. package/node_modules/sshpk/lib/formats/ssh-private.js +140 -17
  224. package/node_modules/sshpk/lib/formats/x509-pem.js +77 -0
  225. package/node_modules/sshpk/lib/formats/x509.js +484 -0
  226. package/node_modules/sshpk/lib/identity.js +255 -0
  227. package/node_modules/sshpk/lib/index.js +13 -1
  228. package/node_modules/sshpk/lib/key.js +1 -0
  229. package/node_modules/sshpk/lib/signature.js +14 -6
  230. package/node_modules/sshpk/lib/ssh-buffer.js +24 -0
  231. package/node_modules/sshpk/lib/utils.js +43 -1
  232. package/node_modules/sshpk/node_modules/assert-plus/package.json +16 -8
  233. package/node_modules/sshpk/package.json +31 -21
  234. package/node_modules/string-width/index.js +5 -0
  235. package/node_modules/string-width/package.json +49 -36
  236. package/node_modules/string-width/readme.md +4 -3
  237. package/node_modules/string_decoder/package.json +19 -11
  238. package/node_modules/stringstream/package.json +18 -10
  239. package/node_modules/strip-ansi/package.json +29 -21
  240. package/node_modules/strip-json-comments/package.json +27 -19
  241. package/node_modules/supports-color/cli.js +28 -0
  242. package/node_modules/supports-color/index.js +2 -20
  243. package/node_modules/supports-color/package.json +52 -45
  244. package/node_modules/supports-color/readme.md +14 -6
  245. package/node_modules/tar/package.json +19 -11
  246. package/node_modules/tar-pack/README.md +4 -1
  247. package/node_modules/tar-pack/index.js +17 -12
  248. package/node_modules/tar-pack/node_modules/once/LICENSE +15 -0
  249. package/node_modules/tar-pack/node_modules/once/README.md +51 -0
  250. package/node_modules/tar-pack/node_modules/once/once.js +21 -0
  251. package/node_modules/tar-pack/node_modules/once/package.json +96 -0
  252. package/node_modules/tar-pack/node_modules/readable-stream/.npmignore +8 -0
  253. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/.travis.yml +4 -7
  254. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/LICENSE +0 -0
  255. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/README.md +2 -2
  256. package/node_modules/tar-pack/node_modules/readable-stream/doc/stream.md +2015 -0
  257. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -0
  258. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/duplex.js +0 -0
  259. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/lib/_stream_duplex.js +0 -0
  260. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/lib/_stream_passthrough.js +0 -0
  261. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/lib/_stream_readable.js +164 -107
  262. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/lib/_stream_transform.js +3 -3
  263. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/lib/_stream_writable.js +25 -15
  264. package/node_modules/tar-pack/node_modules/readable-stream/lib/internal/streams/BufferList.js +64 -0
  265. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/package.json +50 -30
  266. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/passthrough.js +0 -0
  267. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/readable.js +4 -0
  268. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/transform.js +0 -0
  269. package/node_modules/{bl → tar-pack}/node_modules/readable-stream/writable.js +0 -0
  270. package/node_modules/tar-pack/package.json +39 -22
  271. package/node_modules/tar-pack/test/index.js +43 -1
  272. package/node_modules/tough-cookie/README.md +17 -3
  273. package/node_modules/tough-cookie/lib/cookie.js +6 -12
  274. package/node_modules/tough-cookie/package.json +50 -35
  275. package/node_modules/tunnel-agent/package.json +15 -7
  276. package/node_modules/tweetnacl/AUTHORS.md +28 -0
  277. package/node_modules/tweetnacl/CHANGELOG.md +93 -0
  278. package/node_modules/tweetnacl/LICENSE +24 -0
  279. package/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md +20 -0
  280. package/node_modules/tweetnacl/README.md +57 -61
  281. package/node_modules/tweetnacl/nacl-fast.js +22 -52
  282. package/node_modules/tweetnacl/nacl-fast.min.js +2 -2
  283. package/node_modules/tweetnacl/nacl.d.ts +98 -0
  284. package/node_modules/tweetnacl/nacl.js +21 -51
  285. package/node_modules/tweetnacl/nacl.min.js +1 -1
  286. package/node_modules/tweetnacl/package.json +47 -46
  287. package/node_modules/uid-number/package.json +15 -7
  288. package/node_modules/util-deprecate/package.json +21 -13
  289. package/node_modules/uuid/.npmignore +8 -0
  290. package/node_modules/uuid/.travis.yml +5 -0
  291. package/node_modules/uuid/AUTHORS +5 -0
  292. package/node_modules/uuid/HISTORY.md +28 -0
  293. package/node_modules/uuid/LICENSE.md +21 -0
  294. package/node_modules/uuid/README.md +132 -0
  295. package/node_modules/{node-uuid → uuid}/bin/uuid +0 -0
  296. package/node_modules/uuid/index.js +8 -0
  297. package/node_modules/uuid/lib/bytesToUuid.js +23 -0
  298. package/node_modules/uuid/lib/rng-browser.js +33 -0
  299. package/node_modules/uuid/lib/rng.js +10 -0
  300. package/node_modules/uuid/package.json +122 -0
  301. package/node_modules/uuid/test/mocha.opts +3 -0
  302. package/node_modules/uuid/test/test.js +96 -0
  303. package/node_modules/uuid/v1.js +103 -0
  304. package/node_modules/uuid/v4.js +29 -0
  305. package/node_modules/verror/package.json +14 -6
  306. package/node_modules/wide-align/package.json +19 -11
  307. package/node_modules/wrappy/package.json +17 -8
  308. package/node_modules/xtend/package.json +29 -21
  309. package/package.json +1 -1
  310. package/node_modules/async/CHANGELOG.md +0 -125
  311. package/node_modules/async/README.md +0 -1877
  312. package/node_modules/async/dist/async.js +0 -1265
  313. package/node_modules/async/dist/async.min.js +0 -2
  314. package/node_modules/async/lib/async.js +0 -1265
  315. package/node_modules/async/package.json +0 -149
  316. package/node_modules/bl/.jshintrc +0 -59
  317. package/node_modules/bl/.npmignore +0 -1
  318. package/node_modules/bl/.travis.yml +0 -13
  319. package/node_modules/bl/LICENSE.md +0 -13
  320. package/node_modules/bl/README.md +0 -200
  321. package/node_modules/bl/bl.js +0 -243
  322. package/node_modules/bl/node_modules/readable-stream/.npmignore +0 -5
  323. package/node_modules/bl/node_modules/readable-stream/.zuul.yml +0 -1
  324. package/node_modules/bl/node_modules/readable-stream/doc/stream.markdown +0 -1760
  325. package/node_modules/bl/package.json +0 -96
  326. package/node_modules/bl/test/test.js +0 -640
  327. package/node_modules/form-data/.dockerignore +0 -7
  328. package/node_modules/form-data/.editorconfig +0 -10
  329. package/node_modules/form-data/.eslintignore +0 -1
  330. package/node_modules/form-data/.eslintrc +0 -64
  331. package/node_modules/form-data/wercker.yml +0 -36
  332. package/node_modules/gauge/CHANGELOG.md~ +0 -123
  333. package/node_modules/gauge/README.md~ +0 -393
  334. package/node_modules/has-color/index.js +0 -32
  335. package/node_modules/has-color/package.json +0 -97
  336. package/node_modules/has-color/readme.md +0 -30
  337. package/node_modules/inherits/test.js +0 -25
  338. package/node_modules/jsonpointer/.travis.yml +0 -10
  339. package/node_modules/jsonpointer/test.js +0 -98
  340. package/node_modules/node-uuid/.npmignore +0 -4
  341. package/node_modules/node-uuid/README.md +0 -254
  342. package/node_modules/node-uuid/benchmark/README.md +0 -53
  343. package/node_modules/node-uuid/benchmark/bench.gnu +0 -174
  344. package/node_modules/node-uuid/benchmark/bench.sh +0 -34
  345. package/node_modules/node-uuid/benchmark/benchmark-native.c +0 -34
  346. package/node_modules/node-uuid/benchmark/benchmark.js +0 -84
  347. package/node_modules/node-uuid/bower.json +0 -23
  348. package/node_modules/node-uuid/component.json +0 -25
  349. package/node_modules/node-uuid/package.json +0 -105
  350. package/node_modules/node-uuid/test/compare_v1.js +0 -63
  351. package/node_modules/node-uuid/test/test.html +0 -17
  352. package/node_modules/node-uuid/test/test.js +0 -231
  353. package/node_modules/node-uuid/uuid.js +0 -272
  354. package/node_modules/npmlog/CHANGELOG.md~ +0 -31
  355. package/node_modules/qs/.jscs.json +0 -176
  356. package/node_modules/readable-stream/doc/stream.md +0 -1772
  357. package/node_modules/request/.eslintrc +0 -45
  358. package/node_modules/request/.npmignore +0 -6
  359. package/node_modules/request/.travis.yml +0 -21
  360. package/node_modules/request/CONTRIBUTING.md +0 -81
  361. package/node_modules/request/codecov.yml +0 -2
@@ -1,29 +1,53 @@
1
1
  (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
2
2
  'use strict';
3
3
 
4
- var Stringify = require('./stringify');
5
- var Parse = require('./parse');
4
+ var replace = String.prototype.replace;
5
+ var percentTwenties = /%20/g;
6
6
 
7
7
  module.exports = {
8
- stringify: Stringify,
9
- parse: Parse
8
+ 'default': 'RFC3986',
9
+ formatters: {
10
+ RFC1738: function (value) {
11
+ return replace.call(value, percentTwenties, '+');
12
+ },
13
+ RFC3986: function (value) {
14
+ return value;
15
+ }
16
+ },
17
+ RFC1738: 'RFC1738',
18
+ RFC3986: 'RFC3986'
19
+ };
20
+
21
+ },{}],2:[function(require,module,exports){
22
+ 'use strict';
23
+
24
+ var stringify = require('./stringify');
25
+ var parse = require('./parse');
26
+ var formats = require('./formats');
27
+
28
+ module.exports = {
29
+ formats: formats,
30
+ parse: parse,
31
+ stringify: stringify
10
32
  };
11
33
 
12
- },{"./parse":2,"./stringify":3}],2:[function(require,module,exports){
34
+ },{"./formats":1,"./parse":3,"./stringify":4}],3:[function(require,module,exports){
13
35
  'use strict';
14
36
 
15
- var Utils = require('./utils');
37
+ var utils = require('./utils');
38
+
39
+ var has = Object.prototype.hasOwnProperty;
16
40
 
17
41
  var defaults = {
42
+ allowDots: false,
43
+ allowPrototypes: false,
44
+ arrayLimit: 20,
45
+ decoder: utils.decode,
18
46
  delimiter: '&',
19
47
  depth: 5,
20
- arrayLimit: 20,
21
48
  parameterLimit: 1000,
22
- strictNullHandling: false,
23
49
  plainObjects: false,
24
- allowPrototypes: false,
25
- allowDots: false,
26
- decoder: Utils.decode
50
+ strictNullHandling: false
27
51
  };
28
52
 
29
53
  var parseValues = function parseValues(str, options) {
@@ -34,21 +58,18 @@ var parseValues = function parseValues(str, options) {
34
58
  var part = parts[i];
35
59
  var pos = part.indexOf(']=') === -1 ? part.indexOf('=') : part.indexOf(']=') + 1;
36
60
 
61
+ var key, val;
37
62
  if (pos === -1) {
38
- obj[options.decoder(part)] = '';
39
-
40
- if (options.strictNullHandling) {
41
- obj[options.decoder(part)] = null;
42
- }
63
+ key = options.decoder(part);
64
+ val = options.strictNullHandling ? null : '';
43
65
  } else {
44
- var key = options.decoder(part.slice(0, pos));
45
- var val = options.decoder(part.slice(pos + 1));
46
-
47
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
48
- obj[key] = [].concat(obj[key]).concat(val);
49
- } else {
50
- obj[key] = val;
51
- }
66
+ key = options.decoder(part.slice(0, pos));
67
+ val = options.decoder(part.slice(pos + 1));
68
+ }
69
+ if (has.call(obj, key)) {
70
+ obj[key] = [].concat(obj[key]).concat(val);
71
+ } else {
72
+ obj[key] = val;
52
73
  }
53
74
  }
54
75
 
@@ -110,7 +131,7 @@ var parseKeys = function parseKeys(givenKey, val, options) {
110
131
  if (segment[1]) {
111
132
  // If we aren't using plain objects, optionally prefix keys
112
133
  // that would overwrite object prototype properties
113
- if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1])) {
134
+ if (!options.plainObjects && has.call(Object.prototype, segment[1])) {
114
135
  if (!options.allowPrototypes) {
115
136
  return;
116
137
  }
@@ -124,7 +145,7 @@ var parseKeys = function parseKeys(givenKey, val, options) {
124
145
  var i = 0;
125
146
  while ((segment = child.exec(key)) !== null && i < options.depth) {
126
147
  i += 1;
127
- if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1].replace(/\[|\]/g, ''))) {
148
+ if (!options.plainObjects && has.call(Object.prototype, segment[1].replace(/\[|\]/g, ''))) {
128
149
  if (!options.allowPrototypes) {
129
150
  continue;
130
151
  }
@@ -148,7 +169,7 @@ module.exports = function (str, opts) {
148
169
  throw new TypeError('Decoder has to be a function.');
149
170
  }
150
171
 
151
- options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
172
+ options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
152
173
  options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;
153
174
  options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;
154
175
  options.parseArrays = options.parseArrays !== false;
@@ -172,16 +193,17 @@ module.exports = function (str, opts) {
172
193
  for (var i = 0; i < keys.length; ++i) {
173
194
  var key = keys[i];
174
195
  var newObj = parseKeys(key, tempObj[key], options);
175
- obj = Utils.merge(obj, newObj, options);
196
+ obj = utils.merge(obj, newObj, options);
176
197
  }
177
198
 
178
- return Utils.compact(obj);
199
+ return utils.compact(obj);
179
200
  };
180
201
 
181
- },{"./utils":4}],3:[function(require,module,exports){
202
+ },{"./utils":5}],4:[function(require,module,exports){
182
203
  'use strict';
183
204
 
184
- var Utils = require('./utils');
205
+ var utils = require('./utils');
206
+ var formats = require('./formats');
185
207
 
186
208
  var arrayPrefixGenerators = {
187
209
  brackets: function brackets(prefix) {
@@ -195,20 +217,25 @@ var arrayPrefixGenerators = {
195
217
  }
196
218
  };
197
219
 
220
+ var toISO = Date.prototype.toISOString;
221
+
198
222
  var defaults = {
199
223
  delimiter: '&',
200
- strictNullHandling: false,
201
- skipNulls: false,
202
224
  encode: true,
203
- encoder: Utils.encode
225
+ encoder: utils.encode,
226
+ serializeDate: function serializeDate(date) {
227
+ return toISO.call(date);
228
+ },
229
+ skipNulls: false,
230
+ strictNullHandling: false
204
231
  };
205
232
 
206
- var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots) {
233
+ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter) {
207
234
  var obj = object;
208
235
  if (typeof filter === 'function') {
209
236
  obj = filter(prefix, obj);
210
237
  } else if (obj instanceof Date) {
211
- obj = obj.toISOString();
238
+ obj = serializeDate(obj);
212
239
  } else if (obj === null) {
213
240
  if (strictNullHandling) {
214
241
  return encoder ? encoder(prefix) : prefix;
@@ -217,11 +244,11 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu
217
244
  obj = '';
218
245
  }
219
246
 
220
- if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || Utils.isBuffer(obj)) {
247
+ if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {
221
248
  if (encoder) {
222
- return [encoder(prefix) + '=' + encoder(obj)];
249
+ return [formatter(encoder(prefix)) + '=' + formatter(encoder(obj))];
223
250
  }
224
- return [prefix + '=' + String(obj)];
251
+ return [formatter(prefix) + '=' + formatter(String(obj))];
225
252
  }
226
253
 
227
254
  var values = [];
@@ -246,9 +273,33 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu
246
273
  }
247
274
 
248
275
  if (Array.isArray(obj)) {
249
- values = values.concat(stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
276
+ values = values.concat(stringify(
277
+ obj[key],
278
+ generateArrayPrefix(prefix, key),
279
+ generateArrayPrefix,
280
+ strictNullHandling,
281
+ skipNulls,
282
+ encoder,
283
+ filter,
284
+ sort,
285
+ allowDots,
286
+ serializeDate,
287
+ formatter
288
+ ));
250
289
  } else {
251
- values = values.concat(stringify(obj[key], prefix + (allowDots ? '.' + key : '[' + key + ']'), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
290
+ values = values.concat(stringify(
291
+ obj[key],
292
+ prefix + (allowDots ? '.' + key : '[' + key + ']'),
293
+ generateArrayPrefix,
294
+ strictNullHandling,
295
+ skipNulls,
296
+ encoder,
297
+ filter,
298
+ sort,
299
+ allowDots,
300
+ serializeDate,
301
+ formatter
302
+ ));
252
303
  }
253
304
  }
254
305
 
@@ -265,6 +316,13 @@ module.exports = function (object, opts) {
265
316
  var encoder = encode ? (typeof options.encoder === 'function' ? options.encoder : defaults.encoder) : null;
266
317
  var sort = typeof options.sort === 'function' ? options.sort : null;
267
318
  var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;
319
+ var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;
320
+ if (typeof options.format === 'undefined') {
321
+ options.format = formats.default;
322
+ } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {
323
+ throw new TypeError('Unknown format option provided.');
324
+ }
325
+ var formatter = formats.formatters[options.format];
268
326
  var objKeys;
269
327
  var filter;
270
328
 
@@ -276,7 +334,8 @@ module.exports = function (object, opts) {
276
334
  filter = options.filter;
277
335
  obj = filter('', obj);
278
336
  } else if (Array.isArray(options.filter)) {
279
- objKeys = filter = options.filter;
337
+ filter = options.filter;
338
+ objKeys = filter;
280
339
  }
281
340
 
282
341
  var keys = [];
@@ -311,26 +370,40 @@ module.exports = function (object, opts) {
311
370
  continue;
312
371
  }
313
372
 
314
- keys = keys.concat(stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
373
+ keys = keys.concat(stringify(
374
+ obj[key],
375
+ key,
376
+ generateArrayPrefix,
377
+ strictNullHandling,
378
+ skipNulls,
379
+ encoder,
380
+ filter,
381
+ sort,
382
+ allowDots,
383
+ serializeDate,
384
+ formatter
385
+ ));
315
386
  }
316
387
 
317
388
  return keys.join(delimiter);
318
389
  };
319
390
 
320
- },{"./utils":4}],4:[function(require,module,exports){
391
+ },{"./formats":1,"./utils":5}],5:[function(require,module,exports){
321
392
  'use strict';
322
393
 
394
+ var has = Object.prototype.hasOwnProperty;
395
+
323
396
  var hexTable = (function () {
324
- var array = new Array(256);
397
+ var array = [];
325
398
  for (var i = 0; i < 256; ++i) {
326
- array[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();
399
+ array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
327
400
  }
328
401
 
329
402
  return array;
330
403
  }());
331
404
 
332
405
  exports.arrayToObject = function (source, options) {
333
- var obj = options.plainObjects ? Object.create(null) : {};
406
+ var obj = options && options.plainObjects ? Object.create(null) : {};
334
407
  for (var i = 0; i < source.length; ++i) {
335
408
  if (typeof source[i] !== 'undefined') {
336
409
  obj[i] = source[i];
@@ -366,6 +439,21 @@ exports.merge = function (target, source, options) {
366
439
  mergeTarget = exports.arrayToObject(target, options);
367
440
  }
368
441
 
442
+ if (Array.isArray(target) && Array.isArray(source)) {
443
+ source.forEach(function (item, i) {
444
+ if (has.call(target, i)) {
445
+ if (target[i] && typeof target[i] === 'object') {
446
+ target[i] = exports.merge(target[i], item, options);
447
+ } else {
448
+ target.push(item);
449
+ }
450
+ } else {
451
+ target[i] = item;
452
+ }
453
+ });
454
+ return target;
455
+ }
456
+
369
457
  return Object.keys(source).reduce(function (acc, key) {
370
458
  var value = source[key];
371
459
 
@@ -463,10 +551,9 @@ exports.compact = function (obj, references) {
463
551
  }
464
552
 
465
553
  var keys = Object.keys(obj);
466
- for (var j = 0; j < keys.length; ++j) {
467
- var key = keys[j];
554
+ keys.forEach(function (key) {
468
555
  obj[key] = exports.compact(obj[key], refs);
469
- }
556
+ });
470
557
 
471
558
  return obj;
472
559
  };
@@ -483,5 +570,5 @@ exports.isBuffer = function (obj) {
483
570
  return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
484
571
  };
485
572
 
486
- },{}]},{},[1])(1)
573
+ },{}]},{},[2])(2)
487
574
  });
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var replace = String.prototype.replace;
4
+ var percentTwenties = /%20/g;
5
+
6
+ module.exports = {
7
+ 'default': 'RFC3986',
8
+ formatters: {
9
+ RFC1738: function (value) {
10
+ return replace.call(value, percentTwenties, '+');
11
+ },
12
+ RFC3986: function (value) {
13
+ return value;
14
+ }
15
+ },
16
+ RFC1738: 'RFC1738',
17
+ RFC3986: 'RFC3986'
18
+ };
@@ -1,9 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var Stringify = require('./stringify');
4
- var Parse = require('./parse');
3
+ var stringify = require('./stringify');
4
+ var parse = require('./parse');
5
+ var formats = require('./formats');
5
6
 
6
7
  module.exports = {
7
- stringify: Stringify,
8
- parse: Parse
8
+ formats: formats,
9
+ parse: parse,
10
+ stringify: stringify
9
11
  };
@@ -1,17 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var Utils = require('./utils');
3
+ var utils = require('./utils');
4
+
5
+ var has = Object.prototype.hasOwnProperty;
4
6
 
5
7
  var defaults = {
8
+ allowDots: false,
9
+ allowPrototypes: false,
10
+ arrayLimit: 20,
11
+ decoder: utils.decode,
6
12
  delimiter: '&',
7
13
  depth: 5,
8
- arrayLimit: 20,
9
14
  parameterLimit: 1000,
10
- strictNullHandling: false,
11
15
  plainObjects: false,
12
- allowPrototypes: false,
13
- allowDots: false,
14
- decoder: Utils.decode
16
+ strictNullHandling: false
15
17
  };
16
18
 
17
19
  var parseValues = function parseValues(str, options) {
@@ -22,21 +24,18 @@ var parseValues = function parseValues(str, options) {
22
24
  var part = parts[i];
23
25
  var pos = part.indexOf(']=') === -1 ? part.indexOf('=') : part.indexOf(']=') + 1;
24
26
 
27
+ var key, val;
25
28
  if (pos === -1) {
26
- obj[options.decoder(part)] = '';
27
-
28
- if (options.strictNullHandling) {
29
- obj[options.decoder(part)] = null;
30
- }
29
+ key = options.decoder(part);
30
+ val = options.strictNullHandling ? null : '';
31
31
  } else {
32
- var key = options.decoder(part.slice(0, pos));
33
- var val = options.decoder(part.slice(pos + 1));
34
-
35
- if (Object.prototype.hasOwnProperty.call(obj, key)) {
36
- obj[key] = [].concat(obj[key]).concat(val);
37
- } else {
38
- obj[key] = val;
39
- }
32
+ key = options.decoder(part.slice(0, pos));
33
+ val = options.decoder(part.slice(pos + 1));
34
+ }
35
+ if (has.call(obj, key)) {
36
+ obj[key] = [].concat(obj[key]).concat(val);
37
+ } else {
38
+ obj[key] = val;
40
39
  }
41
40
  }
42
41
 
@@ -98,7 +97,7 @@ var parseKeys = function parseKeys(givenKey, val, options) {
98
97
  if (segment[1]) {
99
98
  // If we aren't using plain objects, optionally prefix keys
100
99
  // that would overwrite object prototype properties
101
- if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1])) {
100
+ if (!options.plainObjects && has.call(Object.prototype, segment[1])) {
102
101
  if (!options.allowPrototypes) {
103
102
  return;
104
103
  }
@@ -112,7 +111,7 @@ var parseKeys = function parseKeys(givenKey, val, options) {
112
111
  var i = 0;
113
112
  while ((segment = child.exec(key)) !== null && i < options.depth) {
114
113
  i += 1;
115
- if (!options.plainObjects && Object.prototype.hasOwnProperty(segment[1].replace(/\[|\]/g, ''))) {
114
+ if (!options.plainObjects && has.call(Object.prototype, segment[1].replace(/\[|\]/g, ''))) {
116
115
  if (!options.allowPrototypes) {
117
116
  continue;
118
117
  }
@@ -136,7 +135,7 @@ module.exports = function (str, opts) {
136
135
  throw new TypeError('Decoder has to be a function.');
137
136
  }
138
137
 
139
- options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
138
+ options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
140
139
  options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;
141
140
  options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;
142
141
  options.parseArrays = options.parseArrays !== false;
@@ -160,8 +159,8 @@ module.exports = function (str, opts) {
160
159
  for (var i = 0; i < keys.length; ++i) {
161
160
  var key = keys[i];
162
161
  var newObj = parseKeys(key, tempObj[key], options);
163
- obj = Utils.merge(obj, newObj, options);
162
+ obj = utils.merge(obj, newObj, options);
164
163
  }
165
164
 
166
- return Utils.compact(obj);
165
+ return utils.compact(obj);
167
166
  };
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var Utils = require('./utils');
3
+ var utils = require('./utils');
4
+ var formats = require('./formats');
4
5
 
5
6
  var arrayPrefixGenerators = {
6
7
  brackets: function brackets(prefix) {
@@ -14,20 +15,25 @@ var arrayPrefixGenerators = {
14
15
  }
15
16
  };
16
17
 
18
+ var toISO = Date.prototype.toISOString;
19
+
17
20
  var defaults = {
18
21
  delimiter: '&',
19
- strictNullHandling: false,
20
- skipNulls: false,
21
22
  encode: true,
22
- encoder: Utils.encode
23
+ encoder: utils.encode,
24
+ serializeDate: function serializeDate(date) {
25
+ return toISO.call(date);
26
+ },
27
+ skipNulls: false,
28
+ strictNullHandling: false
23
29
  };
24
30
 
25
- var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots) {
31
+ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots, serializeDate, formatter) {
26
32
  var obj = object;
27
33
  if (typeof filter === 'function') {
28
34
  obj = filter(prefix, obj);
29
35
  } else if (obj instanceof Date) {
30
- obj = obj.toISOString();
36
+ obj = serializeDate(obj);
31
37
  } else if (obj === null) {
32
38
  if (strictNullHandling) {
33
39
  return encoder ? encoder(prefix) : prefix;
@@ -36,11 +42,11 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu
36
42
  obj = '';
37
43
  }
38
44
 
39
- if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || Utils.isBuffer(obj)) {
45
+ if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {
40
46
  if (encoder) {
41
- return [encoder(prefix) + '=' + encoder(obj)];
47
+ return [formatter(encoder(prefix)) + '=' + formatter(encoder(obj))];
42
48
  }
43
- return [prefix + '=' + String(obj)];
49
+ return [formatter(prefix) + '=' + formatter(String(obj))];
44
50
  }
45
51
 
46
52
  var values = [];
@@ -65,9 +71,33 @@ var stringify = function stringify(object, prefix, generateArrayPrefix, strictNu
65
71
  }
66
72
 
67
73
  if (Array.isArray(obj)) {
68
- values = values.concat(stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
74
+ values = values.concat(stringify(
75
+ obj[key],
76
+ generateArrayPrefix(prefix, key),
77
+ generateArrayPrefix,
78
+ strictNullHandling,
79
+ skipNulls,
80
+ encoder,
81
+ filter,
82
+ sort,
83
+ allowDots,
84
+ serializeDate,
85
+ formatter
86
+ ));
69
87
  } else {
70
- values = values.concat(stringify(obj[key], prefix + (allowDots ? '.' + key : '[' + key + ']'), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
88
+ values = values.concat(stringify(
89
+ obj[key],
90
+ prefix + (allowDots ? '.' + key : '[' + key + ']'),
91
+ generateArrayPrefix,
92
+ strictNullHandling,
93
+ skipNulls,
94
+ encoder,
95
+ filter,
96
+ sort,
97
+ allowDots,
98
+ serializeDate,
99
+ formatter
100
+ ));
71
101
  }
72
102
  }
73
103
 
@@ -84,6 +114,13 @@ module.exports = function (object, opts) {
84
114
  var encoder = encode ? (typeof options.encoder === 'function' ? options.encoder : defaults.encoder) : null;
85
115
  var sort = typeof options.sort === 'function' ? options.sort : null;
86
116
  var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;
117
+ var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;
118
+ if (typeof options.format === 'undefined') {
119
+ options.format = formats.default;
120
+ } else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {
121
+ throw new TypeError('Unknown format option provided.');
122
+ }
123
+ var formatter = formats.formatters[options.format];
87
124
  var objKeys;
88
125
  var filter;
89
126
 
@@ -95,7 +132,8 @@ module.exports = function (object, opts) {
95
132
  filter = options.filter;
96
133
  obj = filter('', obj);
97
134
  } else if (Array.isArray(options.filter)) {
98
- objKeys = filter = options.filter;
135
+ filter = options.filter;
136
+ objKeys = filter;
99
137
  }
100
138
 
101
139
  var keys = [];
@@ -130,7 +168,19 @@ module.exports = function (object, opts) {
130
168
  continue;
131
169
  }
132
170
 
133
- keys = keys.concat(stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
171
+ keys = keys.concat(stringify(
172
+ obj[key],
173
+ key,
174
+ generateArrayPrefix,
175
+ strictNullHandling,
176
+ skipNulls,
177
+ encoder,
178
+ filter,
179
+ sort,
180
+ allowDots,
181
+ serializeDate,
182
+ formatter
183
+ ));
134
184
  }
135
185
 
136
186
  return keys.join(delimiter);
@@ -1,16 +1,18 @@
1
1
  'use strict';
2
2
 
3
+ var has = Object.prototype.hasOwnProperty;
4
+
3
5
  var hexTable = (function () {
4
- var array = new Array(256);
6
+ var array = [];
5
7
  for (var i = 0; i < 256; ++i) {
6
- array[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();
8
+ array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
7
9
  }
8
10
 
9
11
  return array;
10
12
  }());
11
13
 
12
14
  exports.arrayToObject = function (source, options) {
13
- var obj = options.plainObjects ? Object.create(null) : {};
15
+ var obj = options && options.plainObjects ? Object.create(null) : {};
14
16
  for (var i = 0; i < source.length; ++i) {
15
17
  if (typeof source[i] !== 'undefined') {
16
18
  obj[i] = source[i];
@@ -46,6 +48,21 @@ exports.merge = function (target, source, options) {
46
48
  mergeTarget = exports.arrayToObject(target, options);
47
49
  }
48
50
 
51
+ if (Array.isArray(target) && Array.isArray(source)) {
52
+ source.forEach(function (item, i) {
53
+ if (has.call(target, i)) {
54
+ if (target[i] && typeof target[i] === 'object') {
55
+ target[i] = exports.merge(target[i], item, options);
56
+ } else {
57
+ target.push(item);
58
+ }
59
+ } else {
60
+ target[i] = item;
61
+ }
62
+ });
63
+ return target;
64
+ }
65
+
49
66
  return Object.keys(source).reduce(function (acc, key) {
50
67
  var value = source[key];
51
68
 
@@ -143,10 +160,9 @@ exports.compact = function (obj, references) {
143
160
  }
144
161
 
145
162
  var keys = Object.keys(obj);
146
- for (var j = 0; j < keys.length; ++j) {
147
- var key = keys[j];
163
+ keys.forEach(function (key) {
148
164
  obj[key] = exports.compact(obj[key], refs);
149
- }
165
+ });
150
166
 
151
167
  return obj;
152
168
  };