fsevents 1.2.0 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fsevents might be problematic. Click here for more details.

Files changed (954) hide show
  1. package/node_modules/abbrev/LICENSE +31 -0
  2. package/node_modules/abbrev/package.json +18 -18
  3. package/node_modules/ansi-regex/package.json +13 -14
  4. package/node_modules/aproba/README.md +16 -11
  5. package/node_modules/aproba/index.js +11 -9
  6. package/node_modules/aproba/package.json +19 -20
  7. package/node_modules/are-we-there-yet/package.json +13 -14
  8. package/node_modules/balanced-match/index.js +1 -0
  9. package/node_modules/balanced-match/package.json +19 -18
  10. package/node_modules/{asynckit → brace-expansion}/LICENSE +2 -2
  11. package/node_modules/brace-expansion/README.md +7 -1
  12. package/node_modules/brace-expansion/package.json +18 -19
  13. package/node_modules/{block-stream → chownr}/LICENSE +0 -0
  14. package/node_modules/chownr/README.md +3 -0
  15. package/node_modules/chownr/chownr.js +52 -0
  16. package/node_modules/chownr/package.json +56 -0
  17. package/node_modules/code-point-at/package.json +13 -14
  18. package/node_modules/concat-map/package.json +8 -9
  19. package/node_modules/console-control-strings/package.json +14 -14
  20. package/node_modules/core-util-is/package.json +13 -14
  21. package/node_modules/debug/CHANGELOG.md +5 -0
  22. package/node_modules/debug/component.json +1 -1
  23. package/node_modules/debug/package.json +17 -18
  24. package/node_modules/debug/src/inspector-log.js +15 -0
  25. package/node_modules/debug/src/node.js +3 -1
  26. package/node_modules/deep-extend/package.json +13 -14
  27. package/node_modules/delegates/package.json +13 -14
  28. package/node_modules/detect-libc/lib/detect-libc.js +21 -14
  29. package/node_modules/detect-libc/package.json +17 -18
  30. package/node_modules/{fstream-ignore → fs-minipass}/LICENSE +0 -0
  31. package/node_modules/fs-minipass/README.md +70 -0
  32. package/node_modules/fs-minipass/index.js +386 -0
  33. package/node_modules/fs-minipass/package.json +62 -0
  34. package/node_modules/fs.realpath/package.json +13 -14
  35. package/node_modules/gauge/package.json +13 -14
  36. package/node_modules/glob/package.json +13 -14
  37. package/node_modules/has-unicode/package.json +13 -14
  38. package/node_modules/iconv-lite/.travis.yml +23 -0
  39. package/node_modules/iconv-lite/Changelog.md +146 -0
  40. package/node_modules/{punycode/LICENSE-MIT.txt → iconv-lite/LICENSE} +2 -1
  41. package/node_modules/iconv-lite/README.md +156 -0
  42. package/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
  43. package/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  44. package/node_modules/iconv-lite/encodings/index.js +22 -0
  45. package/node_modules/iconv-lite/encodings/internal.js +188 -0
  46. package/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  47. package/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  48. package/node_modules/iconv-lite/encodings/sbcs-data.js +169 -0
  49. package/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  50. package/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  51. package/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  52. package/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  53. package/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  54. package/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  55. package/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  56. package/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  57. package/node_modules/iconv-lite/encodings/utf16.js +177 -0
  58. package/node_modules/iconv-lite/encodings/utf7.js +290 -0
  59. package/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  60. package/node_modules/iconv-lite/lib/extend-node.js +217 -0
  61. package/node_modules/iconv-lite/lib/index.d.ts +24 -0
  62. package/node_modules/iconv-lite/lib/index.js +153 -0
  63. package/node_modules/iconv-lite/lib/streams.js +121 -0
  64. package/node_modules/iconv-lite/package.json +76 -0
  65. package/node_modules/{fstream → ignore-walk}/LICENSE +0 -0
  66. package/node_modules/ignore-walk/README.md +60 -0
  67. package/node_modules/ignore-walk/index.js +265 -0
  68. package/node_modules/ignore-walk/package.json +71 -0
  69. package/node_modules/inflight/package.json +13 -14
  70. package/node_modules/inherits/package.json +16 -14
  71. package/node_modules/ini/ini.js +66 -62
  72. package/node_modules/ini/package.json +24 -20
  73. package/node_modules/is-fullwidth-code-point/package.json +13 -14
  74. package/node_modules/isarray/package.json +13 -14
  75. package/node_modules/minimatch/package.json +14 -14
  76. package/node_modules/minimist/package.json +8 -9
  77. package/node_modules/minipass/README.md +46 -0
  78. package/node_modules/minipass/index.js +304 -0
  79. package/node_modules/minipass/package.json +69 -0
  80. package/node_modules/minizlib/LICENSE +26 -0
  81. package/node_modules/minizlib/README.md +44 -0
  82. package/node_modules/minizlib/constants.js +46 -0
  83. package/node_modules/minizlib/index.js +364 -0
  84. package/node_modules/minizlib/package.json +71 -0
  85. package/node_modules/mkdirp/package.json +15 -14
  86. package/node_modules/ms/package.json +8 -9
  87. package/node_modules/needle/README.md +593 -0
  88. package/node_modules/needle/bin/needle +40 -0
  89. package/node_modules/needle/examples/deflated-stream.js +22 -0
  90. package/node_modules/needle/examples/digest-auth.js +16 -0
  91. package/node_modules/needle/examples/download-to-file.js +18 -0
  92. package/node_modules/needle/examples/multipart-stream.js +25 -0
  93. package/node_modules/needle/examples/parsed-stream.js +23 -0
  94. package/node_modules/needle/examples/parsed-stream2.js +21 -0
  95. package/node_modules/needle/examples/stream-events.js +23 -0
  96. package/node_modules/needle/examples/stream-to-file.js +14 -0
  97. package/node_modules/needle/examples/upload-image.js +51 -0
  98. package/node_modules/needle/lib/auth.js +110 -0
  99. package/node_modules/needle/lib/cookies.js +77 -0
  100. package/node_modules/needle/lib/decoder.js +53 -0
  101. package/node_modules/needle/lib/multipart.js +98 -0
  102. package/node_modules/needle/lib/needle.js +783 -0
  103. package/node_modules/needle/lib/parsers.js +120 -0
  104. package/node_modules/needle/lib/querystring.js +49 -0
  105. package/node_modules/{delayed-stream/License → needle/license.txt} +2 -2
  106. package/node_modules/needle/package.json +102 -0
  107. package/node_modules/needle/test/basic_auth_spec.js +196 -0
  108. package/node_modules/needle/test/compression_spec.js +94 -0
  109. package/node_modules/needle/test/cookies_spec.js +305 -0
  110. package/node_modules/needle/test/decoder_spec.js +86 -0
  111. package/node_modules/needle/test/errors_spec.js +286 -0
  112. package/node_modules/needle/test/headers_spec.js +198 -0
  113. package/node_modules/needle/test/helpers.js +72 -0
  114. package/node_modules/needle/test/long_string_spec.js +34 -0
  115. package/node_modules/needle/test/output_spec.js +254 -0
  116. package/node_modules/needle/test/parsing_spec.js +494 -0
  117. package/node_modules/needle/test/post_data_spec.js +1021 -0
  118. package/node_modules/needle/test/proxy_spec.js +202 -0
  119. package/node_modules/needle/test/querystring_spec.js +128 -0
  120. package/node_modules/needle/test/redirect_spec.js +392 -0
  121. package/node_modules/needle/test/redirect_with_timeout.js +45 -0
  122. package/node_modules/needle/test/request_stream_spec.js +202 -0
  123. package/node_modules/needle/test/response_stream_spec.js +139 -0
  124. package/node_modules/needle/test/socket_pool_spec.js +66 -0
  125. package/node_modules/needle/test/url_spec.js +147 -0
  126. package/node_modules/needle/test/utils/formidable.js +17 -0
  127. package/node_modules/needle/test/utils/proxy.js +62 -0
  128. package/node_modules/needle/test/utils/test.js +104 -0
  129. package/node_modules/node-pre-gyp/CHANGELOG.md +25 -0
  130. package/node_modules/node-pre-gyp/README.md +83 -8
  131. package/node_modules/node-pre-gyp/appveyor.yml +4 -13
  132. package/node_modules/node-pre-gyp/lib/build.js +8 -0
  133. package/node_modules/node-pre-gyp/lib/clean.js +17 -8
  134. package/node_modules/node-pre-gyp/lib/configure.js +4 -0
  135. package/node_modules/node-pre-gyp/lib/install.js +58 -34
  136. package/node_modules/node-pre-gyp/lib/node-pre-gyp.js +9 -0
  137. package/node_modules/node-pre-gyp/lib/package.js +20 -13
  138. package/node_modules/node-pre-gyp/lib/pre-binding.js +6 -1
  139. package/node_modules/node-pre-gyp/lib/publish.js +3 -1
  140. package/node_modules/node-pre-gyp/lib/rebuild.js +12 -4
  141. package/node_modules/node-pre-gyp/lib/reinstall.js +8 -1
  142. package/node_modules/node-pre-gyp/lib/reveal.js +4 -2
  143. package/node_modules/node-pre-gyp/lib/testbinary.js +3 -1
  144. package/node_modules/node-pre-gyp/lib/testpackage.js +22 -16
  145. package/node_modules/node-pre-gyp/lib/unpublish.js +3 -1
  146. package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +104 -0
  147. package/node_modules/node-pre-gyp/lib/util/handle_gyp_opts.js +8 -2
  148. package/node_modules/node-pre-gyp/lib/util/napi.js +156 -0
  149. package/node_modules/node-pre-gyp/lib/util/versioning.js +7 -2
  150. package/node_modules/node-pre-gyp/package.json +19 -22
  151. package/node_modules/nopt/package.json +13 -14
  152. package/node_modules/npm-bundled/README.md +46 -0
  153. package/node_modules/npm-bundled/index.js +227 -0
  154. package/node_modules/npm-bundled/package.json +60 -0
  155. package/node_modules/{json-stringify-safe → npm-packlist}/LICENSE +0 -0
  156. package/node_modules/npm-packlist/README.md +68 -0
  157. package/node_modules/npm-packlist/index.js +220 -0
  158. package/node_modules/npm-packlist/package.json +66 -0
  159. package/node_modules/npmlog/log.js +6 -1
  160. package/node_modules/npmlog/package.json +17 -18
  161. package/node_modules/number-is-nan/package.json +13 -14
  162. package/node_modules/object-assign/package.json +13 -14
  163. package/node_modules/once/package.json +14 -14
  164. package/node_modules/os-homedir/package.json +13 -14
  165. package/node_modules/os-tmpdir/package.json +13 -14
  166. package/node_modules/osenv/package.json +24 -19
  167. package/node_modules/path-is-absolute/package.json +13 -14
  168. package/node_modules/process-nextick-args/index.js +3 -2
  169. package/node_modules/process-nextick-args/package.json +20 -18
  170. package/node_modules/process-nextick-args/readme.md +2 -2
  171. package/node_modules/rc/README.md +80 -2
  172. package/node_modules/rc/cli.js +4 -0
  173. package/node_modules/rc/index.js +0 -7
  174. package/node_modules/rc/node_modules/minimist/package.json +13 -14
  175. package/node_modules/rc/package.json +19 -20
  176. package/node_modules/readable-stream/.travis.yml +26 -20
  177. package/node_modules/readable-stream/README.md +3 -2
  178. package/node_modules/readable-stream/lib/_stream_duplex.js +69 -13
  179. package/node_modules/readable-stream/lib/_stream_passthrough.js +21 -0
  180. package/node_modules/readable-stream/lib/_stream_readable.js +194 -110
  181. package/node_modules/readable-stream/lib/_stream_transform.js +64 -32
  182. package/node_modules/readable-stream/lib/_stream_writable.js +198 -55
  183. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +68 -53
  184. package/node_modules/readable-stream/lib/internal/streams/destroy.js +74 -0
  185. package/node_modules/readable-stream/package.json +27 -30
  186. package/node_modules/readable-stream/writable.js +2 -2
  187. package/node_modules/rimraf/package.json +17 -18
  188. package/node_modules/rimraf/rimraf.js +3 -2
  189. package/node_modules/safe-buffer/README.md +12 -9
  190. package/node_modules/safe-buffer/index.js +10 -6
  191. package/node_modules/safe-buffer/package.json +21 -20
  192. package/node_modules/safe-buffer/test.js +2 -0
  193. package/node_modules/{ajv → safer-buffer}/LICENSE +2 -3
  194. package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  195. package/node_modules/safer-buffer/Readme.md +156 -0
  196. package/node_modules/safer-buffer/dangerous.js +58 -0
  197. package/node_modules/safer-buffer/package.json +60 -0
  198. package/node_modules/safer-buffer/safer.js +77 -0
  199. package/node_modules/safer-buffer/tests.js +406 -0
  200. package/node_modules/sax/LICENSE +41 -0
  201. package/node_modules/sax/README.md +225 -0
  202. package/node_modules/sax/lib/sax.js +1565 -0
  203. package/node_modules/sax/package.json +61 -0
  204. package/node_modules/semver/README.md +75 -37
  205. package/node_modules/semver/bin/semver +12 -2
  206. package/node_modules/semver/package.json +19 -20
  207. package/node_modules/semver/range.bnf +2 -2
  208. package/node_modules/semver/semver.js +134 -13
  209. package/node_modules/set-blocking/package.json +13 -14
  210. package/node_modules/signal-exit/package.json +13 -14
  211. package/node_modules/string-width/package.json +14 -14
  212. package/node_modules/string_decoder/.travis.yml +50 -0
  213. package/node_modules/string_decoder/README.md +22 -3
  214. package/node_modules/string_decoder/lib/string_decoder.js +35 -11
  215. package/node_modules/string_decoder/package.json +25 -23
  216. package/node_modules/strip-ansi/package.json +14 -14
  217. package/node_modules/strip-json-comments/package.json +13 -14
  218. package/node_modules/tar/LICENSE +3 -0
  219. package/node_modules/tar/README.md +929 -30
  220. package/node_modules/tar/index.js +18 -0
  221. package/node_modules/tar/lib/buffer.js +11 -0
  222. package/node_modules/tar/lib/create.js +105 -0
  223. package/node_modules/tar/lib/extract.js +97 -79
  224. package/node_modules/tar/lib/header.js +236 -348
  225. package/node_modules/tar/lib/high-level-opt.js +29 -0
  226. package/node_modules/tar/lib/large-numbers.js +92 -0
  227. package/node_modules/tar/lib/list.js +130 -0
  228. package/node_modules/tar/lib/mkdir.js +206 -0
  229. package/node_modules/tar/lib/pack.js +354 -187
  230. package/node_modules/tar/lib/parse.js +393 -246
  231. package/node_modules/tar/lib/pax.js +146 -0
  232. package/node_modules/tar/lib/read-entry.js +94 -0
  233. package/node_modules/tar/lib/replace.js +220 -0
  234. package/node_modules/tar/lib/types.js +44 -0
  235. package/node_modules/tar/lib/unpack.js +560 -0
  236. package/node_modules/tar/lib/update.js +36 -0
  237. package/node_modules/tar/lib/warn-mixin.js +14 -0
  238. package/node_modules/tar/lib/winchars.js +23 -0
  239. package/node_modules/tar/lib/write-entry.js +403 -0
  240. package/node_modules/tar/package.json +48 -30
  241. package/node_modules/util-deprecate/package.json +13 -14
  242. package/node_modules/wide-align/package.json +13 -14
  243. package/node_modules/wrappy/package.json +14 -14
  244. package/node_modules/yallist/LICENSE +15 -0
  245. package/node_modules/yallist/README.md +204 -0
  246. package/node_modules/yallist/iterator.js +8 -0
  247. package/node_modules/yallist/package.json +63 -0
  248. package/node_modules/yallist/yallist.js +376 -0
  249. package/package.json +1 -1
  250. package/node_modules/ajv/.tonic_example.js +0 -20
  251. package/node_modules/ajv/README.md +0 -1213
  252. package/node_modules/ajv/dist/ajv.bundle.js +0 -8023
  253. package/node_modules/ajv/dist/ajv.min.js +0 -6
  254. package/node_modules/ajv/dist/ajv.min.js.map +0 -1
  255. package/node_modules/ajv/dist/nodent.min.js +0 -8
  256. package/node_modules/ajv/dist/regenerator.min.js +0 -32
  257. package/node_modules/ajv/lib/ajv.d.ts +0 -284
  258. package/node_modules/ajv/lib/ajv.js +0 -420
  259. package/node_modules/ajv/lib/async.js +0 -218
  260. package/node_modules/ajv/lib/cache.js +0 -26
  261. package/node_modules/ajv/lib/compile/_rules.js +0 -28
  262. package/node_modules/ajv/lib/compile/equal.js +0 -45
  263. package/node_modules/ajv/lib/compile/formats.js +0 -164
  264. package/node_modules/ajv/lib/compile/index.js +0 -390
  265. package/node_modules/ajv/lib/compile/resolve.js +0 -267
  266. package/node_modules/ajv/lib/compile/rules.js +0 -40
  267. package/node_modules/ajv/lib/compile/schema_obj.js +0 -9
  268. package/node_modules/ajv/lib/compile/ucs2length.js +0 -20
  269. package/node_modules/ajv/lib/compile/util.js +0 -257
  270. package/node_modules/ajv/lib/compile/validation_error.js +0 -14
  271. package/node_modules/ajv/lib/dot/_limit.jst +0 -49
  272. package/node_modules/ajv/lib/dot/_limitItems.jst +0 -10
  273. package/node_modules/ajv/lib/dot/_limitLength.jst +0 -10
  274. package/node_modules/ajv/lib/dot/_limitProperties.jst +0 -10
  275. package/node_modules/ajv/lib/dot/allOf.jst +0 -34
  276. package/node_modules/ajv/lib/dot/anyOf.jst +0 -48
  277. package/node_modules/ajv/lib/dot/coerce.def +0 -61
  278. package/node_modules/ajv/lib/dot/custom.jst +0 -184
  279. package/node_modules/ajv/lib/dot/defaults.def +0 -32
  280. package/node_modules/ajv/lib/dot/definitions.def +0 -182
  281. package/node_modules/ajv/lib/dot/dependencies.jst +0 -69
  282. package/node_modules/ajv/lib/dot/enum.jst +0 -30
  283. package/node_modules/ajv/lib/dot/errors.def +0 -185
  284. package/node_modules/ajv/lib/dot/format.jst +0 -100
  285. package/node_modules/ajv/lib/dot/items.jst +0 -101
  286. package/node_modules/ajv/lib/dot/missing.def +0 -34
  287. package/node_modules/ajv/lib/dot/multipleOf.jst +0 -20
  288. package/node_modules/ajv/lib/dot/not.jst +0 -43
  289. package/node_modules/ajv/lib/dot/oneOf.jst +0 -44
  290. package/node_modules/ajv/lib/dot/pattern.jst +0 -14
  291. package/node_modules/ajv/lib/dot/properties.jst +0 -319
  292. package/node_modules/ajv/lib/dot/ref.jst +0 -86
  293. package/node_modules/ajv/lib/dot/required.jst +0 -96
  294. package/node_modules/ajv/lib/dot/uniqueItems.jst +0 -38
  295. package/node_modules/ajv/lib/dot/v5/_formatLimit.jst +0 -116
  296. package/node_modules/ajv/lib/dot/v5/constant.jst +0 -10
  297. package/node_modules/ajv/lib/dot/v5/patternRequired.jst +0 -28
  298. package/node_modules/ajv/lib/dot/v5/switch.jst +0 -73
  299. package/node_modules/ajv/lib/dot/validate.jst +0 -210
  300. package/node_modules/ajv/lib/dotjs/README.md +0 -3
  301. package/node_modules/ajv/lib/dotjs/_formatLimit.js +0 -176
  302. package/node_modules/ajv/lib/dotjs/_limit.js +0 -124
  303. package/node_modules/ajv/lib/dotjs/_limitItems.js +0 -76
  304. package/node_modules/ajv/lib/dotjs/_limitLength.js +0 -81
  305. package/node_modules/ajv/lib/dotjs/_limitProperties.js +0 -76
  306. package/node_modules/ajv/lib/dotjs/allOf.js +0 -43
  307. package/node_modules/ajv/lib/dotjs/anyOf.js +0 -65
  308. package/node_modules/ajv/lib/dotjs/constant.js +0 -52
  309. package/node_modules/ajv/lib/dotjs/custom.js +0 -220
  310. package/node_modules/ajv/lib/dotjs/dependencies.js +0 -147
  311. package/node_modules/ajv/lib/dotjs/enum.js +0 -65
  312. package/node_modules/ajv/lib/dotjs/format.js +0 -138
  313. package/node_modules/ajv/lib/dotjs/items.js +0 -144
  314. package/node_modules/ajv/lib/dotjs/multipleOf.js +0 -76
  315. package/node_modules/ajv/lib/dotjs/not.js +0 -83
  316. package/node_modules/ajv/lib/dotjs/oneOf.js +0 -76
  317. package/node_modules/ajv/lib/dotjs/pattern.js +0 -74
  318. package/node_modules/ajv/lib/dotjs/patternRequired.js +0 -51
  319. package/node_modules/ajv/lib/dotjs/properties.js +0 -445
  320. package/node_modules/ajv/lib/dotjs/ref.js +0 -119
  321. package/node_modules/ajv/lib/dotjs/required.js +0 -249
  322. package/node_modules/ajv/lib/dotjs/switch.js +0 -128
  323. package/node_modules/ajv/lib/dotjs/uniqueItems.js +0 -71
  324. package/node_modules/ajv/lib/dotjs/validate.js +0 -375
  325. package/node_modules/ajv/lib/keyword.js +0 -129
  326. package/node_modules/ajv/lib/refs/json-schema-draft-04.json +0 -150
  327. package/node_modules/ajv/lib/refs/json-schema-v5.json +0 -328
  328. package/node_modules/ajv/lib/v5.js +0 -52
  329. package/node_modules/ajv/package.json +0 -132
  330. package/node_modules/ajv/scripts/.eslintrc.yml +0 -3
  331. package/node_modules/ajv/scripts/bundle.js +0 -54
  332. package/node_modules/ajv/scripts/compile-dots.js +0 -73
  333. package/node_modules/ajv/scripts/info +0 -10
  334. package/node_modules/ajv/scripts/prepare-tests +0 -9
  335. package/node_modules/ajv/scripts/travis-gh-pages +0 -23
  336. package/node_modules/asn1/.npmignore +0 -2
  337. package/node_modules/asn1/.travis.yml +0 -4
  338. package/node_modules/asn1/LICENSE +0 -19
  339. package/node_modules/asn1/README.md +0 -50
  340. package/node_modules/asn1/lib/ber/errors.js +0 -13
  341. package/node_modules/asn1/lib/ber/index.js +0 -27
  342. package/node_modules/asn1/lib/ber/reader.js +0 -261
  343. package/node_modules/asn1/lib/ber/types.js +0 -36
  344. package/node_modules/asn1/lib/ber/writer.js +0 -316
  345. package/node_modules/asn1/lib/index.js +0 -20
  346. package/node_modules/asn1/package.json +0 -66
  347. package/node_modules/asn1/tst/ber/reader.test.js +0 -208
  348. package/node_modules/asn1/tst/ber/writer.test.js +0 -370
  349. package/node_modules/assert-plus/AUTHORS +0 -6
  350. package/node_modules/assert-plus/CHANGES.md +0 -8
  351. package/node_modules/assert-plus/README.md +0 -155
  352. package/node_modules/assert-plus/assert.js +0 -206
  353. package/node_modules/assert-plus/package.json +0 -83
  354. package/node_modules/asynckit/README.md +0 -233
  355. package/node_modules/asynckit/bench.js +0 -76
  356. package/node_modules/asynckit/index.js +0 -6
  357. package/node_modules/asynckit/lib/abort.js +0 -29
  358. package/node_modules/asynckit/lib/async.js +0 -34
  359. package/node_modules/asynckit/lib/defer.js +0 -26
  360. package/node_modules/asynckit/lib/iterate.js +0 -75
  361. package/node_modules/asynckit/lib/readable_asynckit.js +0 -91
  362. package/node_modules/asynckit/lib/readable_parallel.js +0 -25
  363. package/node_modules/asynckit/lib/readable_serial.js +0 -25
  364. package/node_modules/asynckit/lib/readable_serial_ordered.js +0 -29
  365. package/node_modules/asynckit/lib/state.js +0 -37
  366. package/node_modules/asynckit/lib/streamify.js +0 -141
  367. package/node_modules/asynckit/lib/terminator.js +0 -29
  368. package/node_modules/asynckit/package.json +0 -92
  369. package/node_modules/asynckit/parallel.js +0 -43
  370. package/node_modules/asynckit/serial.js +0 -17
  371. package/node_modules/asynckit/serialOrdered.js +0 -75
  372. package/node_modules/asynckit/stream.js +0 -21
  373. package/node_modules/aws-sign2/LICENSE +0 -55
  374. package/node_modules/aws-sign2/README.md +0 -4
  375. package/node_modules/aws-sign2/index.js +0 -212
  376. package/node_modules/aws-sign2/package.json +0 -51
  377. package/node_modules/aws4/.npmignore +0 -4
  378. package/node_modules/aws4/.tern-port +0 -1
  379. package/node_modules/aws4/.travis.yml +0 -5
  380. package/node_modules/aws4/LICENSE +0 -19
  381. package/node_modules/aws4/README.md +0 -523
  382. package/node_modules/aws4/aws4.js +0 -332
  383. package/node_modules/aws4/lru.js +0 -96
  384. package/node_modules/aws4/package.json +0 -105
  385. package/node_modules/bcrypt-pbkdf/README.md +0 -39
  386. package/node_modules/bcrypt-pbkdf/index.js +0 -556
  387. package/node_modules/bcrypt-pbkdf/package.json +0 -38
  388. package/node_modules/block-stream/LICENCE +0 -25
  389. package/node_modules/block-stream/README.md +0 -14
  390. package/node_modules/block-stream/block-stream.js +0 -209
  391. package/node_modules/block-stream/package.json +0 -61
  392. package/node_modules/boom/.npmignore +0 -18
  393. package/node_modules/boom/.travis.yml +0 -8
  394. package/node_modules/boom/CONTRIBUTING.md +0 -1
  395. package/node_modules/boom/LICENSE +0 -28
  396. package/node_modules/boom/README.md +0 -652
  397. package/node_modules/boom/images/boom.png +0 -0
  398. package/node_modules/boom/lib/index.js +0 -318
  399. package/node_modules/boom/package.json +0 -59
  400. package/node_modules/boom/test/index.js +0 -654
  401. package/node_modules/buffer-shims/index.js +0 -108
  402. package/node_modules/buffer-shims/license.md +0 -19
  403. package/node_modules/buffer-shims/package.json +0 -50
  404. package/node_modules/buffer-shims/readme.md +0 -21
  405. package/node_modules/caseless/LICENSE +0 -28
  406. package/node_modules/caseless/README.md +0 -45
  407. package/node_modules/caseless/index.js +0 -67
  408. package/node_modules/caseless/package.json +0 -57
  409. package/node_modules/caseless/test.js +0 -67
  410. package/node_modules/co/History.md +0 -172
  411. package/node_modules/co/LICENSE +0 -22
  412. package/node_modules/co/Readme.md +0 -212
  413. package/node_modules/co/index.js +0 -237
  414. package/node_modules/co/package.json +0 -67
  415. package/node_modules/combined-stream/License +0 -19
  416. package/node_modules/combined-stream/Readme.md +0 -138
  417. package/node_modules/combined-stream/lib/combined_stream.js +0 -188
  418. package/node_modules/combined-stream/package.json +0 -58
  419. package/node_modules/cryptiles/.npmignore +0 -18
  420. package/node_modules/cryptiles/.travis.yml +0 -8
  421. package/node_modules/cryptiles/LICENSE +0 -28
  422. package/node_modules/cryptiles/README.md +0 -16
  423. package/node_modules/cryptiles/lib/index.js +0 -68
  424. package/node_modules/cryptiles/package.json +0 -60
  425. package/node_modules/cryptiles/test/index.js +0 -102
  426. package/node_modules/dashdash/CHANGES.md +0 -364
  427. package/node_modules/dashdash/LICENSE.txt +0 -24
  428. package/node_modules/dashdash/README.md +0 -574
  429. package/node_modules/dashdash/etc/dashdash.bash_completion.in +0 -389
  430. package/node_modules/dashdash/lib/dashdash.js +0 -1055
  431. package/node_modules/dashdash/node_modules/assert-plus/AUTHORS +0 -6
  432. package/node_modules/dashdash/node_modules/assert-plus/CHANGES.md +0 -14
  433. package/node_modules/dashdash/node_modules/assert-plus/README.md +0 -162
  434. package/node_modules/dashdash/node_modules/assert-plus/assert.js +0 -211
  435. package/node_modules/dashdash/node_modules/assert-plus/package.json +0 -83
  436. package/node_modules/dashdash/package.json +0 -68
  437. package/node_modules/delayed-stream/.npmignore +0 -1
  438. package/node_modules/delayed-stream/Makefile +0 -7
  439. package/node_modules/delayed-stream/Readme.md +0 -141
  440. package/node_modules/delayed-stream/lib/delayed_stream.js +0 -107
  441. package/node_modules/delayed-stream/package.json +0 -63
  442. package/node_modules/ecc-jsbn/.npmignore +0 -15
  443. package/node_modules/ecc-jsbn/LICENSE +0 -21
  444. package/node_modules/ecc-jsbn/README.md +0 -8
  445. package/node_modules/ecc-jsbn/index.js +0 -57
  446. package/node_modules/ecc-jsbn/lib/LICENSE-jsbn +0 -40
  447. package/node_modules/ecc-jsbn/lib/ec.js +0 -561
  448. package/node_modules/ecc-jsbn/lib/sec.js +0 -170
  449. package/node_modules/ecc-jsbn/package.json +0 -66
  450. package/node_modules/ecc-jsbn/test.js +0 -14
  451. package/node_modules/extend/.eslintrc +0 -17
  452. package/node_modules/extend/.jscs.json +0 -175
  453. package/node_modules/extend/.npmignore +0 -1
  454. package/node_modules/extend/.travis.yml +0 -179
  455. package/node_modules/extend/CHANGELOG.md +0 -77
  456. package/node_modules/extend/LICENSE +0 -23
  457. package/node_modules/extend/README.md +0 -81
  458. package/node_modules/extend/component.json +0 -32
  459. package/node_modules/extend/index.js +0 -86
  460. package/node_modules/extend/package.json +0 -76
  461. package/node_modules/extsprintf/.gitmodules +0 -6
  462. package/node_modules/extsprintf/LICENSE +0 -19
  463. package/node_modules/extsprintf/Makefile +0 -23
  464. package/node_modules/extsprintf/Makefile.deps +0 -39
  465. package/node_modules/extsprintf/Makefile.targ +0 -285
  466. package/node_modules/extsprintf/README.md +0 -39
  467. package/node_modules/extsprintf/examples/simple.js +0 -2
  468. package/node_modules/extsprintf/jsl.node.conf +0 -137
  469. package/node_modules/extsprintf/lib/extsprintf.js +0 -166
  470. package/node_modules/extsprintf/package.json +0 -43
  471. package/node_modules/forever-agent/LICENSE +0 -55
  472. package/node_modules/forever-agent/README.md +0 -4
  473. package/node_modules/forever-agent/index.js +0 -138
  474. package/node_modules/forever-agent/package.json +0 -51
  475. package/node_modules/form-data/License +0 -19
  476. package/node_modules/form-data/README.md +0 -217
  477. package/node_modules/form-data/lib/browser.js +0 -2
  478. package/node_modules/form-data/lib/form_data.js +0 -444
  479. package/node_modules/form-data/lib/populate.js +0 -10
  480. package/node_modules/form-data/package.json +0 -99
  481. package/node_modules/fstream/.npmignore +0 -5
  482. package/node_modules/fstream/.travis.yml +0 -9
  483. package/node_modules/fstream/README.md +0 -76
  484. package/node_modules/fstream/examples/filter-pipe.js +0 -134
  485. package/node_modules/fstream/examples/pipe.js +0 -118
  486. package/node_modules/fstream/examples/reader.js +0 -68
  487. package/node_modules/fstream/examples/symlink-write.js +0 -27
  488. package/node_modules/fstream/fstream.js +0 -35
  489. package/node_modules/fstream/lib/abstract.js +0 -85
  490. package/node_modules/fstream/lib/collect.js +0 -70
  491. package/node_modules/fstream/lib/dir-reader.js +0 -252
  492. package/node_modules/fstream/lib/dir-writer.js +0 -174
  493. package/node_modules/fstream/lib/file-reader.js +0 -150
  494. package/node_modules/fstream/lib/file-writer.js +0 -107
  495. package/node_modules/fstream/lib/get-type.js +0 -33
  496. package/node_modules/fstream/lib/link-reader.js +0 -53
  497. package/node_modules/fstream/lib/link-writer.js +0 -95
  498. package/node_modules/fstream/lib/proxy-reader.js +0 -95
  499. package/node_modules/fstream/lib/proxy-writer.js +0 -111
  500. package/node_modules/fstream/lib/reader.js +0 -255
  501. package/node_modules/fstream/lib/socket-reader.js +0 -36
  502. package/node_modules/fstream/lib/writer.js +0 -390
  503. package/node_modules/fstream/package.json +0 -62
  504. package/node_modules/fstream-ignore/README.md +0 -22
  505. package/node_modules/fstream-ignore/ignore.js +0 -275
  506. package/node_modules/fstream-ignore/package.json +0 -62
  507. package/node_modules/getpass/.npmignore +0 -8
  508. package/node_modules/getpass/.travis.yml +0 -9
  509. package/node_modules/getpass/LICENSE +0 -18
  510. package/node_modules/getpass/README.md +0 -32
  511. package/node_modules/getpass/lib/index.js +0 -123
  512. package/node_modules/getpass/node_modules/assert-plus/AUTHORS +0 -6
  513. package/node_modules/getpass/node_modules/assert-plus/CHANGES.md +0 -14
  514. package/node_modules/getpass/node_modules/assert-plus/README.md +0 -162
  515. package/node_modules/getpass/node_modules/assert-plus/assert.js +0 -211
  516. package/node_modules/getpass/node_modules/assert-plus/package.json +0 -83
  517. package/node_modules/getpass/package.json +0 -51
  518. package/node_modules/graceful-fs/LICENSE +0 -15
  519. package/node_modules/graceful-fs/README.md +0 -133
  520. package/node_modules/graceful-fs/fs.js +0 -21
  521. package/node_modules/graceful-fs/graceful-fs.js +0 -262
  522. package/node_modules/graceful-fs/legacy-streams.js +0 -118
  523. package/node_modules/graceful-fs/package.json +0 -77
  524. package/node_modules/graceful-fs/polyfills.js +0 -330
  525. package/node_modules/har-schema/LICENSE +0 -13
  526. package/node_modules/har-schema/README.md +0 -49
  527. package/node_modules/har-schema/lib/afterRequest.json +0 -29
  528. package/node_modules/har-schema/lib/beforeRequest.json +0 -29
  529. package/node_modules/har-schema/lib/browser.json +0 -19
  530. package/node_modules/har-schema/lib/cache.json +0 -20
  531. package/node_modules/har-schema/lib/content.json +0 -28
  532. package/node_modules/har-schema/lib/cookie.json +0 -35
  533. package/node_modules/har-schema/lib/creator.json +0 -19
  534. package/node_modules/har-schema/lib/entry.json +0 -52
  535. package/node_modules/har-schema/lib/har.json +0 -12
  536. package/node_modules/har-schema/lib/header.json +0 -19
  537. package/node_modules/har-schema/lib/index.js +0 -22
  538. package/node_modules/har-schema/lib/log.json +0 -35
  539. package/node_modules/har-schema/lib/page.json +0 -31
  540. package/node_modules/har-schema/lib/pageTimings.json +0 -17
  541. package/node_modules/har-schema/lib/postData.json +0 -42
  542. package/node_modules/har-schema/lib/query.json +0 -19
  543. package/node_modules/har-schema/lib/request.json +0 -56
  544. package/node_modules/har-schema/lib/response.json +0 -53
  545. package/node_modules/har-schema/lib/timings.json +0 -41
  546. package/node_modules/har-schema/package.json +0 -87
  547. package/node_modules/har-validator/LICENSE +0 -13
  548. package/node_modules/har-validator/README.md +0 -75
  549. package/node_modules/har-validator/lib/browser/async.js +0 -96
  550. package/node_modules/har-validator/lib/browser/error.js +0 -15
  551. package/node_modules/har-validator/lib/browser/promise.js +0 -93
  552. package/node_modules/har-validator/lib/node4/async.js +0 -136
  553. package/node_modules/har-validator/lib/node4/error.js +0 -22
  554. package/node_modules/har-validator/lib/node4/promise.js +0 -132
  555. package/node_modules/har-validator/lib/node6/async.js +0 -133
  556. package/node_modules/har-validator/lib/node6/error.js +0 -22
  557. package/node_modules/har-validator/lib/node6/promise.js +0 -130
  558. package/node_modules/har-validator/lib/node7/async.js +0 -133
  559. package/node_modules/har-validator/lib/node7/error.js +0 -22
  560. package/node_modules/har-validator/lib/node7/promise.js +0 -130
  561. package/node_modules/har-validator/package.json +0 -102
  562. package/node_modules/har-validator/src/async.js +0 -96
  563. package/node_modules/har-validator/src/error.js +0 -15
  564. package/node_modules/har-validator/src/promise.js +0 -93
  565. package/node_modules/hawk/.npmignore +0 -20
  566. package/node_modules/hawk/.travis.yml +0 -5
  567. package/node_modules/hawk/LICENSE +0 -28
  568. package/node_modules/hawk/README.md +0 -634
  569. package/node_modules/hawk/bower.json +0 -24
  570. package/node_modules/hawk/component.json +0 -19
  571. package/node_modules/hawk/dist/client.js +0 -343
  572. package/node_modules/hawk/example/usage.js +0 -78
  573. package/node_modules/hawk/images/hawk.png +0 -0
  574. package/node_modules/hawk/images/logo.png +0 -0
  575. package/node_modules/hawk/lib/browser.js +0 -637
  576. package/node_modules/hawk/lib/client.js +0 -369
  577. package/node_modules/hawk/lib/crypto.js +0 -126
  578. package/node_modules/hawk/lib/index.js +0 -15
  579. package/node_modules/hawk/lib/server.js +0 -548
  580. package/node_modules/hawk/lib/utils.js +0 -184
  581. package/node_modules/hawk/package.json +0 -71
  582. package/node_modules/hawk/test/browser.js +0 -1492
  583. package/node_modules/hawk/test/client.js +0 -440
  584. package/node_modules/hawk/test/crypto.js +0 -70
  585. package/node_modules/hawk/test/index.js +0 -378
  586. package/node_modules/hawk/test/readme.js +0 -95
  587. package/node_modules/hawk/test/server.js +0 -1329
  588. package/node_modules/hawk/test/uri.js +0 -838
  589. package/node_modules/hawk/test/utils.js +0 -149
  590. package/node_modules/hoek/.npmignore +0 -18
  591. package/node_modules/hoek/.travis.yml +0 -7
  592. package/node_modules/hoek/CONTRIBUTING.md +0 -1
  593. package/node_modules/hoek/LICENSE +0 -31
  594. package/node_modules/hoek/README.md +0 -584
  595. package/node_modules/hoek/images/hoek.png +0 -0
  596. package/node_modules/hoek/lib/escape.js +0 -132
  597. package/node_modules/hoek/lib/index.js +0 -993
  598. package/node_modules/hoek/package.json +0 -56
  599. package/node_modules/hoek/test/escaper.js +0 -88
  600. package/node_modules/hoek/test/index.js +0 -2513
  601. package/node_modules/hoek/test/modules/ignore.txt +0 -0
  602. package/node_modules/hoek/test/modules/test1.js +0 -1
  603. package/node_modules/hoek/test/modules/test2.js +0 -1
  604. package/node_modules/hoek/test/modules/test3.js +0 -1
  605. package/node_modules/http-signature/.dir-locals.el +0 -6
  606. package/node_modules/http-signature/.npmignore +0 -7
  607. package/node_modules/http-signature/CHANGES.md +0 -46
  608. package/node_modules/http-signature/LICENSE +0 -18
  609. package/node_modules/http-signature/README.md +0 -79
  610. package/node_modules/http-signature/http_signing.md +0 -363
  611. package/node_modules/http-signature/lib/index.js +0 -29
  612. package/node_modules/http-signature/lib/parser.js +0 -318
  613. package/node_modules/http-signature/lib/signer.js +0 -399
  614. package/node_modules/http-signature/lib/utils.js +0 -112
  615. package/node_modules/http-signature/lib/verify.js +0 -88
  616. package/node_modules/http-signature/package.json +0 -78
  617. package/node_modules/is-typedarray/LICENSE.md +0 -18
  618. package/node_modules/is-typedarray/README.md +0 -16
  619. package/node_modules/is-typedarray/index.js +0 -41
  620. package/node_modules/is-typedarray/package.json +0 -60
  621. package/node_modules/is-typedarray/test.js +0 -34
  622. package/node_modules/isstream/.jshintrc +0 -59
  623. package/node_modules/isstream/.npmignore +0 -1
  624. package/node_modules/isstream/.travis.yml +0 -12
  625. package/node_modules/isstream/LICENSE.md +0 -11
  626. package/node_modules/isstream/README.md +0 -66
  627. package/node_modules/isstream/isstream.js +0 -27
  628. package/node_modules/isstream/package.json +0 -62
  629. package/node_modules/isstream/test.js +0 -168
  630. package/node_modules/jodid25519/.npmignore +0 -11
  631. package/node_modules/jodid25519/.travis.yml +0 -7
  632. package/node_modules/jodid25519/AUTHORS.md +0 -3
  633. package/node_modules/jodid25519/LICENSE +0 -23
  634. package/node_modules/jodid25519/README.md +0 -51
  635. package/node_modules/jodid25519/almond.0 +0 -42
  636. package/node_modules/jodid25519/almond.1 +0 -13
  637. package/node_modules/jodid25519/index.js +0 -35
  638. package/node_modules/jodid25519/jsdoc.json +0 -19
  639. package/node_modules/jodid25519/lib/core.js +0 -481
  640. package/node_modules/jodid25519/lib/curve255.js +0 -221
  641. package/node_modules/jodid25519/lib/dh.js +0 -111
  642. package/node_modules/jodid25519/lib/eddsa.js +0 -573
  643. package/node_modules/jodid25519/lib/utils.js +0 -198
  644. package/node_modules/jodid25519/package.json +0 -76
  645. package/node_modules/jsbn/.npmignore +0 -2
  646. package/node_modules/jsbn/LICENSE +0 -40
  647. package/node_modules/jsbn/README.md +0 -175
  648. package/node_modules/jsbn/example.html +0 -12
  649. package/node_modules/jsbn/example.js +0 -3
  650. package/node_modules/jsbn/index.js +0 -1357
  651. package/node_modules/jsbn/package.json +0 -54
  652. package/node_modules/json-schema/README.md +0 -5
  653. package/node_modules/json-schema/draft-00/hyper-schema +0 -68
  654. package/node_modules/json-schema/draft-00/json-ref +0 -26
  655. package/node_modules/json-schema/draft-00/links +0 -33
  656. package/node_modules/json-schema/draft-00/schema +0 -155
  657. package/node_modules/json-schema/draft-01/hyper-schema +0 -68
  658. package/node_modules/json-schema/draft-01/json-ref +0 -26
  659. package/node_modules/json-schema/draft-01/links +0 -33
  660. package/node_modules/json-schema/draft-01/schema +0 -155
  661. package/node_modules/json-schema/draft-02/hyper-schema +0 -68
  662. package/node_modules/json-schema/draft-02/json-ref +0 -26
  663. package/node_modules/json-schema/draft-02/links +0 -35
  664. package/node_modules/json-schema/draft-02/schema +0 -166
  665. package/node_modules/json-schema/draft-03/examples/address +0 -20
  666. package/node_modules/json-schema/draft-03/examples/calendar +0 -53
  667. package/node_modules/json-schema/draft-03/examples/card +0 -105
  668. package/node_modules/json-schema/draft-03/examples/geo +0 -8
  669. package/node_modules/json-schema/draft-03/examples/interfaces +0 -23
  670. package/node_modules/json-schema/draft-03/hyper-schema +0 -60
  671. package/node_modules/json-schema/draft-03/json-ref +0 -26
  672. package/node_modules/json-schema/draft-03/links +0 -35
  673. package/node_modules/json-schema/draft-03/schema +0 -174
  674. package/node_modules/json-schema/draft-04/hyper-schema +0 -60
  675. package/node_modules/json-schema/draft-04/links +0 -41
  676. package/node_modules/json-schema/draft-04/schema +0 -189
  677. package/node_modules/json-schema/draft-zyp-json-schema-03.xml +0 -1120
  678. package/node_modules/json-schema/draft-zyp-json-schema-04.xml +0 -1072
  679. package/node_modules/json-schema/lib/links.js +0 -66
  680. package/node_modules/json-schema/lib/validate.js +0 -273
  681. package/node_modules/json-schema/package.json +0 -72
  682. package/node_modules/json-schema/test/tests.js +0 -95
  683. package/node_modules/json-stable-stringify/.npmignore +0 -1
  684. package/node_modules/json-stable-stringify/.travis.yml +0 -4
  685. package/node_modules/json-stable-stringify/LICENSE +0 -18
  686. package/node_modules/json-stable-stringify/example/key_cmp.js +0 -7
  687. package/node_modules/json-stable-stringify/example/nested.js +0 -3
  688. package/node_modules/json-stable-stringify/example/str.js +0 -3
  689. package/node_modules/json-stable-stringify/example/value_cmp.js +0 -7
  690. package/node_modules/json-stable-stringify/index.js +0 -84
  691. package/node_modules/json-stable-stringify/package.json +0 -75
  692. package/node_modules/json-stable-stringify/readme.markdown +0 -130
  693. package/node_modules/json-stable-stringify/test/cmp.js +0 -11
  694. package/node_modules/json-stable-stringify/test/nested.js +0 -35
  695. package/node_modules/json-stable-stringify/test/replacer.js +0 -74
  696. package/node_modules/json-stable-stringify/test/space.js +0 -59
  697. package/node_modules/json-stable-stringify/test/str.js +0 -32
  698. package/node_modules/json-stable-stringify/test/to-json.js +0 -20
  699. package/node_modules/json-stringify-safe/.npmignore +0 -1
  700. package/node_modules/json-stringify-safe/CHANGELOG.md +0 -14
  701. package/node_modules/json-stringify-safe/Makefile +0 -35
  702. package/node_modules/json-stringify-safe/README.md +0 -52
  703. package/node_modules/json-stringify-safe/package.json +0 -67
  704. package/node_modules/json-stringify-safe/stringify.js +0 -27
  705. package/node_modules/json-stringify-safe/test/mocha.opts +0 -2
  706. package/node_modules/json-stringify-safe/test/stringify_test.js +0 -246
  707. package/node_modules/jsonify/README.markdown +0 -34
  708. package/node_modules/jsonify/index.js +0 -2
  709. package/node_modules/jsonify/lib/parse.js +0 -273
  710. package/node_modules/jsonify/lib/stringify.js +0 -154
  711. package/node_modules/jsonify/package.json +0 -60
  712. package/node_modules/jsonify/test/parse.js +0 -16
  713. package/node_modules/jsonify/test/stringify.js +0 -15
  714. package/node_modules/jsprim/CHANGES.md +0 -43
  715. package/node_modules/jsprim/LICENSE +0 -19
  716. package/node_modules/jsprim/README.md +0 -292
  717. package/node_modules/jsprim/lib/jsprim.js +0 -735
  718. package/node_modules/jsprim/node_modules/assert-plus/AUTHORS +0 -6
  719. package/node_modules/jsprim/node_modules/assert-plus/CHANGES.md +0 -14
  720. package/node_modules/jsprim/node_modules/assert-plus/README.md +0 -162
  721. package/node_modules/jsprim/node_modules/assert-plus/assert.js +0 -211
  722. package/node_modules/jsprim/node_modules/assert-plus/package.json +0 -83
  723. package/node_modules/jsprim/package.json +0 -50
  724. package/node_modules/mime-db/HISTORY.md +0 -412
  725. package/node_modules/mime-db/LICENSE +0 -22
  726. package/node_modules/mime-db/README.md +0 -82
  727. package/node_modules/mime-db/db.json +0 -6805
  728. package/node_modules/mime-db/index.js +0 -11
  729. package/node_modules/mime-db/package.json +0 -99
  730. package/node_modules/mime-types/HISTORY.md +0 -223
  731. package/node_modules/mime-types/LICENSE +0 -23
  732. package/node_modules/mime-types/README.md +0 -108
  733. package/node_modules/mime-types/index.js +0 -188
  734. package/node_modules/mime-types/package.json +0 -85
  735. package/node_modules/oauth-sign/LICENSE +0 -55
  736. package/node_modules/oauth-sign/README.md +0 -4
  737. package/node_modules/oauth-sign/index.js +0 -136
  738. package/node_modules/oauth-sign/package.json +0 -57
  739. package/node_modules/osenv/.npmignore +0 -13
  740. package/node_modules/osenv/.travis.yml +0 -9
  741. package/node_modules/osenv/test/unix.js +0 -71
  742. package/node_modules/osenv/test/windows.js +0 -74
  743. package/node_modules/osenv/x.tap +0 -39
  744. package/node_modules/performance-now/.npmignore +0 -1
  745. package/node_modules/performance-now/.tm_properties +0 -7
  746. package/node_modules/performance-now/.travis.yml +0 -4
  747. package/node_modules/performance-now/Makefile +0 -25
  748. package/node_modules/performance-now/README.md +0 -30
  749. package/node_modules/performance-now/lib/performance-now.js +0 -32
  750. package/node_modules/performance-now/license.txt +0 -7
  751. package/node_modules/performance-now/package.json +0 -58
  752. package/node_modules/performance-now/src/performance-now.coffee +0 -15
  753. package/node_modules/performance-now/test/mocha.opts +0 -3
  754. package/node_modules/performance-now/test/performance-now.coffee +0 -38
  755. package/node_modules/process-nextick-args/.travis.yml +0 -12
  756. package/node_modules/process-nextick-args/test.js +0 -24
  757. package/node_modules/punycode/README.md +0 -176
  758. package/node_modules/punycode/package.json +0 -88
  759. package/node_modules/punycode/punycode.js +0 -533
  760. package/node_modules/qs/.eslintignore +0 -1
  761. package/node_modules/qs/.eslintrc +0 -18
  762. package/node_modules/qs/.jscs.json +0 -176
  763. package/node_modules/qs/CHANGELOG.md +0 -175
  764. package/node_modules/qs/LICENSE +0 -28
  765. package/node_modules/qs/README.md +0 -440
  766. package/node_modules/qs/dist/qs.js +0 -597
  767. package/node_modules/qs/lib/formats.js +0 -18
  768. package/node_modules/qs/lib/index.js +0 -11
  769. package/node_modules/qs/lib/parse.js +0 -167
  770. package/node_modules/qs/lib/stringify.js +0 -207
  771. package/node_modules/qs/lib/utils.js +0 -182
  772. package/node_modules/qs/package.json +0 -79
  773. package/node_modules/qs/test/.eslintrc +0 -11
  774. package/node_modules/qs/test/index.js +0 -7
  775. package/node_modules/qs/test/parse.js +0 -519
  776. package/node_modules/qs/test/stringify.js +0 -567
  777. package/node_modules/qs/test/utils.js +0 -22
  778. package/node_modules/readable-stream/.npmignore +0 -9
  779. package/node_modules/request/CHANGELOG.md +0 -674
  780. package/node_modules/request/LICENSE +0 -55
  781. package/node_modules/request/README.md +0 -1115
  782. package/node_modules/request/index.js +0 -156
  783. package/node_modules/request/lib/auth.js +0 -168
  784. package/node_modules/request/lib/cookies.js +0 -39
  785. package/node_modules/request/lib/getProxyFromURI.js +0 -79
  786. package/node_modules/request/lib/har.js +0 -215
  787. package/node_modules/request/lib/helpers.js +0 -66
  788. package/node_modules/request/lib/multipart.js +0 -113
  789. package/node_modules/request/lib/oauth.js +0 -148
  790. package/node_modules/request/lib/querystring.js +0 -51
  791. package/node_modules/request/lib/redirect.js +0 -157
  792. package/node_modules/request/lib/tunnel.js +0 -176
  793. package/node_modules/request/package.json +0 -119
  794. package/node_modules/request/request.js +0 -1565
  795. package/node_modules/safe-buffer/browser.js +0 -1
  796. package/node_modules/sntp/.npmignore +0 -18
  797. package/node_modules/sntp/.travis.yml +0 -5
  798. package/node_modules/sntp/LICENSE +0 -28
  799. package/node_modules/sntp/Makefile +0 -9
  800. package/node_modules/sntp/README.md +0 -68
  801. package/node_modules/sntp/examples/offset.js +0 -16
  802. package/node_modules/sntp/examples/time.js +0 -25
  803. package/node_modules/sntp/index.js +0 -1
  804. package/node_modules/sntp/lib/index.js +0 -412
  805. package/node_modules/sntp/package.json +0 -69
  806. package/node_modules/sntp/test/index.js +0 -435
  807. package/node_modules/sshpk/.npmignore +0 -9
  808. package/node_modules/sshpk/.travis.yml +0 -11
  809. package/node_modules/sshpk/LICENSE +0 -18
  810. package/node_modules/sshpk/README.md +0 -698
  811. package/node_modules/sshpk/bin/sshpk-conv +0 -201
  812. package/node_modules/sshpk/bin/sshpk-sign +0 -191
  813. package/node_modules/sshpk/bin/sshpk-verify +0 -166
  814. package/node_modules/sshpk/lib/algs.js +0 -168
  815. package/node_modules/sshpk/lib/certificate.js +0 -377
  816. package/node_modules/sshpk/lib/dhe.js +0 -410
  817. package/node_modules/sshpk/lib/ed-compat.js +0 -96
  818. package/node_modules/sshpk/lib/errors.js +0 -84
  819. package/node_modules/sshpk/lib/fingerprint.js +0 -161
  820. package/node_modules/sshpk/lib/formats/auto.js +0 -73
  821. package/node_modules/sshpk/lib/formats/openssh-cert.js +0 -322
  822. package/node_modules/sshpk/lib/formats/pem.js +0 -186
  823. package/node_modules/sshpk/lib/formats/pkcs1.js +0 -320
  824. package/node_modules/sshpk/lib/formats/pkcs8.js +0 -505
  825. package/node_modules/sshpk/lib/formats/rfc4253.js +0 -146
  826. package/node_modules/sshpk/lib/formats/ssh-private.js +0 -261
  827. package/node_modules/sshpk/lib/formats/ssh.js +0 -114
  828. package/node_modules/sshpk/lib/formats/x509-pem.js +0 -77
  829. package/node_modules/sshpk/lib/formats/x509.js +0 -726
  830. package/node_modules/sshpk/lib/identity.js +0 -277
  831. package/node_modules/sshpk/lib/index.js +0 -39
  832. package/node_modules/sshpk/lib/key.js +0 -274
  833. package/node_modules/sshpk/lib/private-key.js +0 -255
  834. package/node_modules/sshpk/lib/signature.js +0 -313
  835. package/node_modules/sshpk/lib/ssh-buffer.js +0 -148
  836. package/node_modules/sshpk/lib/utils.js +0 -288
  837. package/node_modules/sshpk/man/man1/sshpk-conv.1 +0 -135
  838. package/node_modules/sshpk/man/man1/sshpk-sign.1 +0 -81
  839. package/node_modules/sshpk/man/man1/sshpk-verify.1 +0 -68
  840. package/node_modules/sshpk/node_modules/assert-plus/AUTHORS +0 -6
  841. package/node_modules/sshpk/node_modules/assert-plus/CHANGES.md +0 -14
  842. package/node_modules/sshpk/node_modules/assert-plus/README.md +0 -162
  843. package/node_modules/sshpk/node_modules/assert-plus/assert.js +0 -211
  844. package/node_modules/sshpk/node_modules/assert-plus/package.json +0 -83
  845. package/node_modules/sshpk/package.json +0 -103
  846. package/node_modules/string_decoder/.npmignore +0 -2
  847. package/node_modules/stringstream/.npmignore +0 -15
  848. package/node_modules/stringstream/.travis.yml +0 -4
  849. package/node_modules/stringstream/LICENSE.txt +0 -22
  850. package/node_modules/stringstream/README.md +0 -38
  851. package/node_modules/stringstream/example.js +0 -27
  852. package/node_modules/stringstream/package.json +0 -52
  853. package/node_modules/stringstream/stringstream.js +0 -102
  854. package/node_modules/tar/.npmignore +0 -5
  855. package/node_modules/tar/.travis.yml +0 -4
  856. package/node_modules/tar/examples/extracter.js +0 -19
  857. package/node_modules/tar/examples/packer.js +0 -24
  858. package/node_modules/tar/examples/reader.js +0 -36
  859. package/node_modules/tar/lib/buffer-entry.js +0 -30
  860. package/node_modules/tar/lib/entry-writer.js +0 -169
  861. package/node_modules/tar/lib/entry.js +0 -220
  862. package/node_modules/tar/lib/extended-header-writer.js +0 -191
  863. package/node_modules/tar/lib/extended-header.js +0 -140
  864. package/node_modules/tar/lib/global-header-writer.js +0 -14
  865. package/node_modules/tar/tar.js +0 -173
  866. package/node_modules/tar/test/00-setup-fixtures.js +0 -53
  867. package/node_modules/tar/test/cb-never-called-1.0.1.tgz +0 -0
  868. package/node_modules/tar/test/dir-normalization.js +0 -177
  869. package/node_modules/tar/test/dir-normalization.tar +0 -0
  870. package/node_modules/tar/test/error-on-broken.js +0 -33
  871. package/node_modules/tar/test/extract-move.js +0 -132
  872. package/node_modules/tar/test/extract.js +0 -367
  873. package/node_modules/tar/test/fixtures.tgz +0 -0
  874. package/node_modules/tar/test/header.js +0 -183
  875. package/node_modules/tar/test/pack-no-proprietary.js +0 -886
  876. package/node_modules/tar/test/pack.js +0 -952
  877. package/node_modules/tar/test/parse-discard.js +0 -29
  878. package/node_modules/tar/test/parse.js +0 -359
  879. package/node_modules/tar/test/zz-cleanup.js +0 -20
  880. package/node_modules/tar-pack/.npmignore +0 -14
  881. package/node_modules/tar-pack/.travis.yml +0 -7
  882. package/node_modules/tar-pack/LICENSE +0 -23
  883. package/node_modules/tar-pack/README.md +0 -84
  884. package/node_modules/tar-pack/index.js +0 -245
  885. package/node_modules/tar-pack/package.json +0 -58
  886. package/node_modules/tar-pack/test/fixtures/packed-file.txt +0 -1
  887. package/node_modules/tar-pack/test/fixtures/packed.tar +0 -0
  888. package/node_modules/tar-pack/test/fixtures/packed.tar.gz +0 -0
  889. package/node_modules/tar-pack/test/fixtures/to-pack/bar.txt +0 -1
  890. package/node_modules/tar-pack/test/fixtures/to-pack/foo.txt +0 -1
  891. package/node_modules/tar-pack/test/index.js +0 -109
  892. package/node_modules/tough-cookie/LICENSE +0 -27
  893. package/node_modules/tough-cookie/README.md +0 -506
  894. package/node_modules/tough-cookie/lib/cookie.js +0 -1336
  895. package/node_modules/tough-cookie/lib/memstore.js +0 -170
  896. package/node_modules/tough-cookie/lib/pathMatch.js +0 -61
  897. package/node_modules/tough-cookie/lib/permuteDomain.js +0 -56
  898. package/node_modules/tough-cookie/lib/pubsuffix.js +0 -98
  899. package/node_modules/tough-cookie/lib/store.js +0 -71
  900. package/node_modules/tough-cookie/package.json +0 -93
  901. package/node_modules/tunnel-agent/LICENSE +0 -55
  902. package/node_modules/tunnel-agent/README.md +0 -4
  903. package/node_modules/tunnel-agent/index.js +0 -244
  904. package/node_modules/tunnel-agent/package.json +0 -56
  905. package/node_modules/tweetnacl/.npmignore +0 -4
  906. package/node_modules/tweetnacl/AUTHORS.md +0 -28
  907. package/node_modules/tweetnacl/CHANGELOG.md +0 -221
  908. package/node_modules/tweetnacl/LICENSE +0 -24
  909. package/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md +0 -20
  910. package/node_modules/tweetnacl/README.md +0 -459
  911. package/node_modules/tweetnacl/nacl-fast.js +0 -2388
  912. package/node_modules/tweetnacl/nacl-fast.min.js +0 -2
  913. package/node_modules/tweetnacl/nacl.d.ts +0 -98
  914. package/node_modules/tweetnacl/nacl.js +0 -1175
  915. package/node_modules/tweetnacl/nacl.min.js +0 -1
  916. package/node_modules/tweetnacl/package.json +0 -87
  917. package/node_modules/uid-number/LICENSE +0 -15
  918. package/node_modules/uid-number/README.md +0 -17
  919. package/node_modules/uid-number/get-uid-gid.js +0 -24
  920. package/node_modules/uid-number/package.json +0 -52
  921. package/node_modules/uid-number/uid-number.js +0 -59
  922. package/node_modules/uuid/.npmignore +0 -8
  923. package/node_modules/uuid/.travis.yml +0 -5
  924. package/node_modules/uuid/AUTHORS +0 -5
  925. package/node_modules/uuid/HISTORY.md +0 -28
  926. package/node_modules/uuid/LICENSE.md +0 -21
  927. package/node_modules/uuid/README.md +0 -132
  928. package/node_modules/uuid/bin/uuid +0 -26
  929. package/node_modules/uuid/index.js +0 -8
  930. package/node_modules/uuid/lib/bytesToUuid.js +0 -23
  931. package/node_modules/uuid/lib/rng-browser.js +0 -33
  932. package/node_modules/uuid/lib/rng.js +0 -10
  933. package/node_modules/uuid/package.json +0 -79
  934. package/node_modules/uuid/test/mocha.opts +0 -3
  935. package/node_modules/uuid/test/test.js +0 -96
  936. package/node_modules/uuid/v1.js +0 -103
  937. package/node_modules/uuid/v4.js +0 -29
  938. package/node_modules/verror/.gitmodules +0 -0
  939. package/node_modules/verror/.npmignore +0 -1
  940. package/node_modules/verror/LICENSE +0 -19
  941. package/node_modules/verror/Makefile +0 -35
  942. package/node_modules/verror/Makefile.targ +0 -285
  943. package/node_modules/verror/README.md +0 -120
  944. package/node_modules/verror/examples/levels-verror.js +0 -36
  945. package/node_modules/verror/examples/levels-werror.js +0 -34
  946. package/node_modules/verror/examples/varargs.js +0 -6
  947. package/node_modules/verror/examples/verror.js +0 -13
  948. package/node_modules/verror/examples/werror.js +0 -14
  949. package/node_modules/verror/jsl.node.conf +0 -139
  950. package/node_modules/verror/lib/verror.js +0 -157
  951. package/node_modules/verror/package.json +0 -49
  952. package/node_modules/verror/tests/tst.inherit.js +0 -100
  953. package/node_modules/verror/tests/tst.verror.js +0 -156
  954. package/node_modules/verror/tests/tst.werror.js +0 -179
@@ -1,2513 +0,0 @@
1
- // Load modules
2
-
3
- var Fs = require('fs');
4
- var Path = require('path');
5
- var Code = require('code');
6
- var Hoek = require('../lib');
7
- var Lab = require('lab');
8
-
9
-
10
- // Declare internals
11
-
12
- var internals = {};
13
-
14
-
15
- // Test shortcuts
16
-
17
- var lab = exports.lab = Lab.script();
18
- var describe = lab.experiment;
19
- var it = lab.test;
20
- var expect = Code.expect;
21
-
22
-
23
- var nestedObj = {
24
- v: [7, 8, 9],
25
- w: /^something$/igm,
26
- x: {
27
- a: [1, 2, 3],
28
- b: 123456,
29
- c: new Date(),
30
- d: /hi/igm,
31
- e: /hello/
32
- },
33
- y: 'y',
34
- z: new Date(1378775452757)
35
- };
36
-
37
- var dupsArray = [nestedObj, { z: 'z' }, nestedObj];
38
- var reducedDupsArray = [nestedObj, { z: 'z' }];
39
-
40
- describe('clone()', function () {
41
-
42
- it('clones a nested object', function (done) {
43
-
44
- var a = nestedObj;
45
- var b = Hoek.clone(a);
46
-
47
- expect(a).to.deep.equal(b);
48
- expect(a.z.getTime()).to.equal(b.z.getTime());
49
- done();
50
- });
51
-
52
- it('clones a null object', function (done) {
53
-
54
- var b = Hoek.clone(null);
55
-
56
- expect(b).to.equal(null);
57
- done();
58
- });
59
-
60
- it('should not convert undefined properties to null', function (done) {
61
-
62
- var obj = { something: undefined };
63
- var b = Hoek.clone(obj);
64
-
65
- expect(typeof b.something).to.equal('undefined');
66
- done();
67
- });
68
-
69
- it('should not throw on circular reference', function (done) {
70
-
71
- var a = {};
72
- a.x = a;
73
-
74
- var test = function () {
75
-
76
- var b = Hoek.clone(a);
77
- };
78
-
79
- expect(test).to.not.throw();
80
- done();
81
- });
82
-
83
- it('clones circular reference', function (done) {
84
-
85
- var x = {
86
- 'z': new Date()
87
- };
88
- x.y = x;
89
-
90
- var b = Hoek.clone(x);
91
- expect(Object.keys(b.y)).to.deep.equal(Object.keys(x));
92
- expect(b.z).to.not.equal(x.z);
93
- expect(b.y).to.not.equal(x.y);
94
- expect(b.y.z).to.not.equal(x.y.z);
95
- expect(b.y).to.equal(b);
96
- expect(b.y.y.y.y).to.equal(b);
97
- done();
98
- });
99
-
100
- it('clones an object with a null prototype', function (done) {
101
-
102
- var obj = Object.create(null);
103
- var b = Hoek.clone(obj);
104
-
105
- expect(b).to.deep.equal(obj);
106
- done();
107
- });
108
-
109
- it('clones deeply nested object', function (done) {
110
-
111
- var a = {
112
- x: {
113
- y: {
114
- a: [1, 2, 3],
115
- b: 123456,
116
- c: new Date(),
117
- d: /hi/igm,
118
- e: /hello/
119
- }
120
- }
121
- };
122
-
123
- var b = Hoek.clone(a);
124
-
125
- expect(a).to.deep.equal(b);
126
- expect(a.x.y.c.getTime()).to.equal(b.x.y.c.getTime());
127
- done();
128
- });
129
-
130
- it('clones arrays', function (done) {
131
-
132
- var a = [1, 2, 3];
133
-
134
- var b = Hoek.clone(a);
135
-
136
- expect(a).to.deep.equal(b);
137
- done();
138
- });
139
-
140
- it('performs actual copy for shallow keys (no pass by reference)', function (done) {
141
-
142
- var x = Hoek.clone(nestedObj);
143
- var y = Hoek.clone(nestedObj);
144
-
145
- // Date
146
- expect(x.z).to.not.equal(nestedObj.z);
147
- expect(x.z).to.not.equal(y.z);
148
-
149
- // Regex
150
- expect(x.w).to.not.equal(nestedObj.w);
151
- expect(x.w).to.not.equal(y.w);
152
-
153
- // Array
154
- expect(x.v).to.not.equal(nestedObj.v);
155
- expect(x.v).to.not.equal(y.v);
156
-
157
- // Immutable(s)
158
- x.y = 5;
159
- expect(x.y).to.not.equal(nestedObj.y);
160
- expect(x.y).to.not.equal(y.y);
161
-
162
- done();
163
- });
164
-
165
- it('performs actual copy for deep keys (no pass by reference)', function (done) {
166
-
167
- var x = Hoek.clone(nestedObj);
168
- var y = Hoek.clone(nestedObj);
169
-
170
- expect(x.x.c).to.not.equal(nestedObj.x.c);
171
- expect(x.x.c).to.not.equal(y.x.c);
172
-
173
- expect(x.x.c.getTime()).to.equal(nestedObj.x.c.getTime());
174
- expect(x.x.c.getTime()).to.equal(y.x.c.getTime());
175
- done();
176
- });
177
-
178
- it('copies functions with properties', function (done) {
179
-
180
- var a = {
181
- x: function () {
182
-
183
- return 1;
184
- },
185
- y: {}
186
- };
187
- a.x.z = 'string in function';
188
- a.x.v = function () {
189
-
190
- return 2;
191
- };
192
- a.y.u = a.x;
193
-
194
- var b = Hoek.clone(a);
195
- expect(b.x()).to.equal(1);
196
- expect(b.x.v()).to.equal(2);
197
- expect(b.y.u).to.equal(b.x);
198
- expect(b.x.z).to.equal('string in function');
199
- done();
200
- });
201
-
202
- it('should copy a buffer', function (done) {
203
-
204
- var tls = {
205
- key: new Buffer([1, 2, 3, 4, 5]),
206
- cert: new Buffer([1, 2, 3, 4, 5, 6, 10])
207
- };
208
-
209
- var copiedTls = Hoek.clone(tls);
210
- expect(Buffer.isBuffer(copiedTls.key)).to.equal(true);
211
- expect(JSON.stringify(copiedTls.key)).to.equal(JSON.stringify(tls.key));
212
- expect(Buffer.isBuffer(copiedTls.cert)).to.equal(true);
213
- expect(JSON.stringify(copiedTls.cert)).to.equal(JSON.stringify(tls.cert));
214
- done();
215
- });
216
-
217
- it('clones an object with a prototype', function (done) {
218
-
219
- var Obj = function () {
220
-
221
- this.a = 5;
222
- };
223
-
224
- Obj.prototype.b = function () {
225
-
226
- return 'c';
227
- };
228
-
229
- var a = new Obj();
230
- var b = Hoek.clone(a);
231
-
232
- expect(b.a).to.equal(5);
233
- expect(b.b()).to.equal('c');
234
- expect(a).to.deep.equal(b);
235
- done();
236
- });
237
-
238
- it('reuses cloned Date object', function (done) {
239
-
240
- var obj = {
241
- a: new Date()
242
- };
243
-
244
- obj.b = obj.a;
245
-
246
- var copy = Hoek.clone(obj);
247
- expect(copy.a).to.equal(copy.b);
248
- done();
249
- });
250
-
251
- it('shallow copies an object with a prototype and isImmutable flag', function (done) {
252
-
253
- var Obj = function () {
254
-
255
- this.value = 5;
256
- };
257
-
258
- Obj.prototype.b = function () {
259
-
260
- return 'c';
261
- };
262
-
263
- Obj.prototype.isImmutable = true;
264
-
265
- var obj = {
266
- a: new Obj()
267
- };
268
-
269
- var copy = Hoek.clone(obj);
270
-
271
- expect(obj.a.value).to.equal(5);
272
- expect(copy.a.value).to.equal(5);
273
- expect(copy.a.b()).to.equal('c');
274
- expect(obj.a).to.equal(copy.a);
275
- done();
276
- });
277
-
278
- it('clones an object with property getter without executing it', function (done) {
279
-
280
- var obj = {};
281
- var value = 1;
282
- var execCount = 0;
283
-
284
- Object.defineProperty(obj, 'test', {
285
- enumerable: true,
286
- configurable: true,
287
- get: function () {
288
-
289
- ++execCount;
290
- return value;
291
- }
292
- });
293
-
294
- var copy = Hoek.clone(obj);
295
- expect(execCount).to.equal(0);
296
- expect(copy.test).to.equal(1);
297
- expect(execCount).to.equal(1);
298
- done();
299
- });
300
-
301
- it('clones an object with property getter and setter', function (done) {
302
-
303
- var obj = {
304
- _test: 0
305
- };
306
-
307
- Object.defineProperty(obj, 'test', {
308
- enumerable: true,
309
- configurable: true,
310
- get: function () {
311
-
312
- return this._test;
313
- },
314
- set: function (value) {
315
-
316
- this._test = value - 1;
317
- }
318
- });
319
-
320
- var copy = Hoek.clone(obj);
321
- expect(copy.test).to.equal(0);
322
- copy.test = 5;
323
- expect(copy.test).to.equal(4);
324
- done();
325
- });
326
-
327
- it('clones an object with only property setter', function (done) {
328
-
329
- var obj = {
330
- _test: 0
331
- };
332
-
333
- Object.defineProperty(obj, 'test', {
334
- enumerable: true,
335
- configurable: true,
336
- set: function (value) {
337
-
338
- this._test = value - 1;
339
- }
340
- });
341
-
342
- var copy = Hoek.clone(obj);
343
- expect(copy._test).to.equal(0);
344
- copy.test = 5;
345
- expect(copy._test).to.equal(4);
346
- done();
347
- });
348
-
349
- it('clones an object with non-enumerable properties', function (done) {
350
-
351
- var obj = {
352
- _test: 0
353
- };
354
-
355
- Object.defineProperty(obj, 'test', {
356
- enumerable: false,
357
- configurable: true,
358
- set: function (value) {
359
-
360
- this._test = value - 1;
361
- }
362
- });
363
-
364
- var copy = Hoek.clone(obj);
365
- expect(copy._test).to.equal(0);
366
- copy.test = 5;
367
- expect(copy._test).to.equal(4);
368
- done();
369
- });
370
-
371
- it('clones an object where getOwnPropertyDescriptor returns undefined', function (done) {
372
-
373
- var oldGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
374
- var obj = { a: 'b' };
375
- Object.getOwnPropertyDescriptor = function () {
376
-
377
- return undefined;
378
- };
379
-
380
- var copy = Hoek.clone(obj);
381
- Object.getOwnPropertyDescriptor = oldGetOwnPropertyDescriptor;
382
- expect(copy).to.deep.equal(obj);
383
- done();
384
- });
385
- });
386
-
387
- describe('merge()', function () {
388
-
389
- it('deep copies source items', function (done) {
390
-
391
- var target = {
392
- b: 3,
393
- d: []
394
- };
395
-
396
- var source = {
397
- c: {
398
- d: 1
399
- },
400
- d: [{ e: 1 }]
401
- };
402
-
403
- Hoek.merge(target, source);
404
- expect(target.c).to.not.equal(source.c);
405
- expect(target.c).to.deep.equal(source.c);
406
- expect(target.d).to.not.equal(source.d);
407
- expect(target.d[0]).to.not.equal(source.d[0]);
408
- expect(target.d).to.deep.equal(source.d);
409
- done();
410
- });
411
-
412
- it('merges array over an object', function (done) {
413
-
414
- var a = {
415
- x: ['n', 'm']
416
- };
417
-
418
- var b = {
419
- x: {
420
- n: '1',
421
- m: '2'
422
- }
423
- };
424
-
425
- Hoek.merge(b, a);
426
- expect(a.x[0]).to.equal('n');
427
- expect(a.x.n).to.not.exist();
428
- done();
429
- });
430
-
431
- it('merges object over an array', function (done) {
432
-
433
- var a = {
434
- x: ['n', 'm']
435
- };
436
-
437
- var b = {
438
- x: {
439
- n: '1',
440
- m: '2'
441
- }
442
- };
443
-
444
- Hoek.merge(a, b);
445
- expect(a.x.n).to.equal('1');
446
- expect(a.x[0]).to.not.exist();
447
- done();
448
- });
449
-
450
- it('does not throw if source is null', function (done) {
451
-
452
- var a = {};
453
- var b = null;
454
- var c = null;
455
-
456
- expect(function () {
457
-
458
- c = Hoek.merge(a, b);
459
- }).to.not.throw();
460
-
461
- expect(c).to.equal(a);
462
- done();
463
- });
464
-
465
- it('does not throw if source is undefined', function (done) {
466
-
467
- var a = {};
468
- var b;
469
- var c = null;
470
-
471
- expect(function () {
472
-
473
- c = Hoek.merge(a, b);
474
- }).to.not.throw();
475
-
476
- expect(c).to.equal(a);
477
- done();
478
- });
479
-
480
- it('throws if source is not an object', function (done) {
481
-
482
- expect(function () {
483
-
484
- var a = {};
485
- var b = 0;
486
-
487
- Hoek.merge(a, b);
488
- }).to.throw('Invalid source value: must be null, undefined, or an object');
489
- done();
490
- });
491
-
492
- it('throws if target is not an object', function (done) {
493
-
494
- expect(function () {
495
-
496
- var a = 0;
497
- var b = {};
498
-
499
- Hoek.merge(a, b);
500
- }).to.throw('Invalid target value: must be an object');
501
- done();
502
- });
503
-
504
- it('throws if target is not an array and source is', function (done) {
505
-
506
- expect(function () {
507
-
508
- var a = {};
509
- var b = [1, 2];
510
-
511
- Hoek.merge(a, b);
512
- }).to.throw('Cannot merge array onto an object');
513
- done();
514
- });
515
-
516
- it('returns the same object when merging arrays', function (done) {
517
-
518
- var a = [];
519
- var b = [1, 2];
520
-
521
- expect(Hoek.merge(a, b)).to.equal(a);
522
- done();
523
- });
524
-
525
- it('combines an empty object with a non-empty object', function (done) {
526
-
527
- var a = {};
528
- var b = nestedObj;
529
-
530
- var c = Hoek.merge(a, b);
531
- expect(a).to.deep.equal(b);
532
- expect(c).to.deep.equal(b);
533
- done();
534
- });
535
-
536
- it('overrides values in target', function (done) {
537
-
538
- var a = { x: 1, y: 2, z: 3, v: 5, t: 'test', m: 'abc' };
539
- var b = { x: null, z: 4, v: 0, t: { u: 6 }, m: '123' };
540
-
541
- var c = Hoek.merge(a, b);
542
- expect(c.x).to.equal(null);
543
- expect(c.y).to.equal(2);
544
- expect(c.z).to.equal(4);
545
- expect(c.v).to.equal(0);
546
- expect(c.m).to.equal('123');
547
- expect(c.t).to.deep.equal({ u: 6 });
548
- done();
549
- });
550
-
551
- it('overrides values in target (flip)', function (done) {
552
-
553
- var a = { x: 1, y: 2, z: 3, v: 5, t: 'test', m: 'abc' };
554
- var b = { x: null, z: 4, v: 0, t: { u: 6 }, m: '123' };
555
-
556
- var d = Hoek.merge(b, a);
557
- expect(d.x).to.equal(1);
558
- expect(d.y).to.equal(2);
559
- expect(d.z).to.equal(3);
560
- expect(d.v).to.equal(5);
561
- expect(d.m).to.equal('abc');
562
- expect(d.t).to.deep.equal('test');
563
- done();
564
- });
565
-
566
- it('retains Date properties', function (done) {
567
-
568
- var a = { x: new Date(1378776452757) };
569
-
570
- var b = Hoek.merge({}, a);
571
- expect(a.x.getTime()).to.equal(b.x.getTime());
572
- done();
573
- });
574
-
575
- it('retains Date properties when merging keys', function (done) {
576
-
577
- var a = { x: new Date(1378776452757) };
578
-
579
- var b = Hoek.merge({ x: {} }, a);
580
- expect(a.x.getTime()).to.equal(b.x.getTime());
581
- done();
582
- });
583
-
584
- it('overrides Buffer', function (done) {
585
-
586
- var a = { x: new Buffer('abc') };
587
-
588
- var b = Hoek.merge({ x: {} }, a);
589
- expect(a.x.toString()).to.equal('abc');
590
- done();
591
- });
592
- });
593
-
594
- describe('applyToDefaults()', function () {
595
-
596
- var defaults = {
597
- a: 1,
598
- b: 2,
599
- c: {
600
- d: 3,
601
- e: [5, 6]
602
- },
603
- f: 6,
604
- g: 'test'
605
- };
606
-
607
- it('throws when target is null', function (done) {
608
-
609
- expect(function () {
610
-
611
- Hoek.applyToDefaults(null, {});
612
- }).to.throw('Invalid defaults value: must be an object');
613
- done();
614
- });
615
-
616
- it('returns null if options is false', function (done) {
617
-
618
- var result = Hoek.applyToDefaults(defaults, false);
619
- expect(result).to.equal(null);
620
- done();
621
- });
622
-
623
- it('returns null if options is null', function (done) {
624
-
625
- var result = Hoek.applyToDefaults(defaults, null);
626
- expect(result).to.equal(null);
627
- done();
628
- });
629
-
630
- it('returns null if options is undefined', function (done) {
631
-
632
- var result = Hoek.applyToDefaults(defaults, undefined);
633
- expect(result).to.equal(null);
634
- done();
635
- });
636
-
637
- it('returns a copy of defaults if options is true', function (done) {
638
-
639
- var result = Hoek.applyToDefaults(defaults, true);
640
- expect(result).to.deep.equal(defaults);
641
- done();
642
- });
643
-
644
- it('applies object to defaults', function (done) {
645
-
646
- var obj = {
647
- a: null,
648
- c: {
649
- e: [4]
650
- },
651
- f: 0,
652
- g: {
653
- h: 5
654
- }
655
- };
656
-
657
- var result = Hoek.applyToDefaults(defaults, obj);
658
- expect(result.c.e).to.deep.equal([4]);
659
- expect(result.a).to.equal(1);
660
- expect(result.b).to.equal(2);
661
- expect(result.f).to.equal(0);
662
- expect(result.g).to.deep.equal({ h: 5 });
663
- done();
664
- });
665
-
666
- it('applies object to defaults with null', function (done) {
667
-
668
- var obj = {
669
- a: null,
670
- c: {
671
- e: [4]
672
- },
673
- f: 0,
674
- g: {
675
- h: 5
676
- }
677
- };
678
-
679
- var result = Hoek.applyToDefaults(defaults, obj, true);
680
- expect(result.c.e).to.deep.equal([4]);
681
- expect(result.a).to.equal(null);
682
- expect(result.b).to.equal(2);
683
- expect(result.f).to.equal(0);
684
- expect(result.g).to.deep.equal({ h: 5 });
685
- done();
686
- });
687
- });
688
-
689
- describe('cloneWithShallow()', function () {
690
-
691
- it('deep clones except for listed keys', function (done) {
692
-
693
- var source = {
694
- a: {
695
- b: 5
696
- },
697
- c: {
698
- d: 6
699
- }
700
- };
701
-
702
- var copy = Hoek.cloneWithShallow(source, ['c']);
703
- expect(copy).to.deep.equal(source);
704
- expect(copy).to.not.equal(source);
705
- expect(copy.a).to.not.equal(source.a);
706
- expect(copy.b).to.equal(source.b);
707
- done();
708
- });
709
-
710
- it('returns immutable value', function (done) {
711
-
712
- expect(Hoek.cloneWithShallow(5)).to.equal(5);
713
- done();
714
- });
715
-
716
- it('returns null value', function (done) {
717
-
718
- expect(Hoek.cloneWithShallow(null)).to.equal(null);
719
- done();
720
- });
721
-
722
- it('returns undefined value', function (done) {
723
-
724
- expect(Hoek.cloneWithShallow(undefined)).to.equal(undefined);
725
- done();
726
- });
727
-
728
- it('deep clones except for listed keys (including missing keys)', function (done) {
729
-
730
- var source = {
731
- a: {
732
- b: 5
733
- },
734
- c: {
735
- d: 6
736
- }
737
- };
738
-
739
- var copy = Hoek.cloneWithShallow(source, ['c', 'v']);
740
- expect(copy).to.deep.equal(source);
741
- expect(copy).to.not.equal(source);
742
- expect(copy.a).to.not.equal(source.a);
743
- expect(copy.b).to.equal(source.b);
744
- done();
745
- });
746
- });
747
-
748
- describe('applyToDefaultsWithShallow()', function () {
749
-
750
- it('shallow copies the listed keys from options without merging', function (done) {
751
-
752
- var defaults = {
753
- a: {
754
- b: 5,
755
- e: 3
756
- },
757
- c: {
758
- d: 7,
759
- g: 1
760
- }
761
- };
762
-
763
- var options = {
764
- a: {
765
- b: 4
766
- },
767
- c: {
768
- d: 6,
769
- f: 7
770
- }
771
- };
772
-
773
- var merged = Hoek.applyToDefaultsWithShallow(defaults, options, ['a']);
774
- expect(merged).to.deep.equal({ a: { b: 4 }, c: { d: 6, g: 1, f: 7 } });
775
- expect(merged.a).to.equal(options.a);
776
- expect(merged.a).to.not.equal(defaults.a);
777
- expect(merged.c).to.not.equal(options.c);
778
- expect(merged.c).to.not.equal(defaults.c);
779
- done();
780
- });
781
-
782
- it('shallow copies the nested keys (override)', function (done) {
783
-
784
- var defaults = {
785
- a: {
786
- b: 5
787
- },
788
- c: {
789
- d: 7,
790
- g: 1
791
- }
792
- };
793
-
794
- var options = {
795
- a: {
796
- b: 4
797
- },
798
- c: {
799
- d: 6,
800
- g: {
801
- h: 8
802
- }
803
- }
804
- };
805
-
806
- var merged = Hoek.applyToDefaultsWithShallow(defaults, options, ['c.g']);
807
- expect(merged).to.deep.equal({ a: { b: 4 }, c: { d: 6, g: { h: 8 } } });
808
- expect(merged.c.g).to.equal(options.c.g);
809
- done();
810
- });
811
-
812
- it('shallow copies the nested keys (missing)', function (done) {
813
-
814
- var defaults = {
815
- a: {
816
- b: 5
817
- }
818
- };
819
-
820
- var options = {
821
- a: {
822
- b: 4
823
- },
824
- c: {
825
- g: {
826
- h: 8
827
- }
828
- }
829
- };
830
-
831
- var merged = Hoek.applyToDefaultsWithShallow(defaults, options, ['c.g']);
832
- expect(merged).to.deep.equal({ a: { b: 4 }, c: { g: { h: 8 } } });
833
- expect(merged.c.g).to.equal(options.c.g);
834
- done();
835
- });
836
-
837
- it('shallow copies the nested keys (override)', function (done) {
838
-
839
- var defaults = {
840
- a: {
841
- b: 5
842
- },
843
- c: {
844
- g: {
845
- d: 7
846
- }
847
- }
848
- };
849
-
850
- var options = {
851
- a: {
852
- b: 4
853
- },
854
- c: {
855
- g: {
856
- h: 8
857
- }
858
- }
859
- };
860
-
861
- var merged = Hoek.applyToDefaultsWithShallow(defaults, options, ['c.g']);
862
- expect(merged).to.deep.equal({ a: { b: 4 }, c: { g: { h: 8 } } });
863
- expect(merged.c.g).to.equal(options.c.g);
864
- done();
865
- });
866
-
867
- it('shallow copies the nested keys (deeper)', function (done) {
868
-
869
- var defaults = {
870
- a: {
871
- b: 5
872
- }
873
- };
874
-
875
- var options = {
876
- a: {
877
- b: 4
878
- },
879
- c: {
880
- g: {
881
- r: {
882
- h: 8
883
- }
884
- }
885
- }
886
- };
887
-
888
- var merged = Hoek.applyToDefaultsWithShallow(defaults, options, ['c.g.r']);
889
- expect(merged).to.deep.equal({ a: { b: 4 }, c: { g: { r: { h: 8 } } } });
890
- expect(merged.c.g.r).to.equal(options.c.g.r);
891
- done();
892
- });
893
-
894
- it('shallow copies the nested keys (not present)', function (done) {
895
-
896
- var defaults = {
897
- a: {
898
- b: 5
899
- }
900
- };
901
-
902
- var options = {
903
- a: {
904
- b: 4
905
- },
906
- c: {
907
- g: {
908
- r: {
909
- h: 8
910
- }
911
- }
912
- }
913
- };
914
-
915
- var merged = Hoek.applyToDefaultsWithShallow(defaults, options, ['x.y']);
916
- expect(merged).to.deep.equal({ a: { b: 4 }, c: { g: { r: { h: 8 } } } });
917
- done();
918
- });
919
-
920
- it('shallow copies the listed keys in the defaults', function (done) {
921
-
922
- var defaults = {
923
- a: {
924
- b: 1
925
- }
926
- };
927
-
928
- var merged = Hoek.applyToDefaultsWithShallow(defaults, {}, ['a']);
929
- expect(merged.a).to.equal(defaults.a);
930
- done();
931
- });
932
-
933
- it('shallow copies the listed keys in the defaults (true)', function (done) {
934
-
935
- var defaults = {
936
- a: {
937
- b: 1
938
- }
939
- };
940
-
941
- var merged = Hoek.applyToDefaultsWithShallow(defaults, true, ['a']);
942
- expect(merged.a).to.equal(defaults.a);
943
- done();
944
- });
945
-
946
- it('returns null on false', function (done) {
947
-
948
- var defaults = {
949
- a: {
950
- b: 1
951
- }
952
- };
953
-
954
- var merged = Hoek.applyToDefaultsWithShallow(defaults, false, ['a']);
955
- expect(merged).to.equal(null);
956
- done();
957
- });
958
-
959
- it('throws on missing defaults', function (done) {
960
-
961
- expect(function () {
962
-
963
- Hoek.applyToDefaultsWithShallow(null, {}, ['a']);
964
- }).to.throw('Invalid defaults value: must be an object');
965
- done();
966
- });
967
-
968
- it('throws on invalid defaults', function (done) {
969
-
970
- expect(function () {
971
-
972
- Hoek.applyToDefaultsWithShallow('abc', {}, ['a']);
973
- }).to.throw('Invalid defaults value: must be an object');
974
- done();
975
- });
976
-
977
- it('throws on invalid options', function (done) {
978
-
979
- expect(function () {
980
-
981
- Hoek.applyToDefaultsWithShallow({}, 'abc', ['a']);
982
- }).to.throw('Invalid options value: must be true, falsy or an object');
983
- done();
984
- });
985
-
986
- it('throws on missing keys', function (done) {
987
-
988
- expect(function () {
989
-
990
- Hoek.applyToDefaultsWithShallow({}, true);
991
- }).to.throw('Invalid keys');
992
- done();
993
- });
994
-
995
- it('throws on invalid keys', function (done) {
996
-
997
- expect(function () {
998
-
999
- Hoek.applyToDefaultsWithShallow({}, true, 'a');
1000
- }).to.throw('Invalid keys');
1001
- done();
1002
- });
1003
- });
1004
-
1005
- describe('deepEqual()', function () {
1006
-
1007
- it('compares simple values', function (done) {
1008
-
1009
- expect(Hoek.deepEqual('x', 'x')).to.be.true();
1010
- expect(Hoek.deepEqual('x', 'y')).to.be.false();
1011
- expect(Hoek.deepEqual('x1', 'x')).to.be.false();
1012
- expect(Hoek.deepEqual(-0, +0)).to.be.false();
1013
- expect(Hoek.deepEqual(-0, -0)).to.be.true();
1014
- expect(Hoek.deepEqual(+0, +0)).to.be.true();
1015
- expect(Hoek.deepEqual(+0, -0)).to.be.false();
1016
- expect(Hoek.deepEqual(1, 1)).to.be.true();
1017
- expect(Hoek.deepEqual(0, 0)).to.be.true();
1018
- expect(Hoek.deepEqual(-1, 1)).to.be.false();
1019
- expect(Hoek.deepEqual(NaN, 0)).to.be.false();
1020
- expect(Hoek.deepEqual(NaN, NaN)).to.be.true();
1021
- done();
1022
- });
1023
-
1024
- it('compares different types', function (done) {
1025
-
1026
- expect(Hoek.deepEqual([], 5)).to.be.false();
1027
- expect(Hoek.deepEqual(5, [])).to.be.false();
1028
- expect(Hoek.deepEqual({}, null)).to.be.false();
1029
- expect(Hoek.deepEqual(null, {})).to.be.false();
1030
- expect(Hoek.deepEqual('abc', {})).to.be.false();
1031
- expect(Hoek.deepEqual({}, 'abc')).to.be.false();
1032
- done();
1033
- });
1034
-
1035
- it('compares empty structures', function (done) {
1036
-
1037
- expect(Hoek.deepEqual([], [])).to.be.true();
1038
- expect(Hoek.deepEqual({}, {})).to.be.true();
1039
- expect(Hoek.deepEqual([], {})).to.be.false();
1040
- done();
1041
- });
1042
-
1043
- it('compares empty arguments object', function (done) {
1044
-
1045
- var compare = function () {
1046
-
1047
- expect(Hoek.deepEqual([], arguments)).to.be.false();
1048
- };
1049
-
1050
- compare();
1051
- done();
1052
- });
1053
-
1054
- it('compares empty arguments objects', function (done) {
1055
-
1056
- var compare = function () {
1057
-
1058
- var arg1 = arguments;
1059
-
1060
- var inner = function () {
1061
-
1062
- expect(Hoek.deepEqual(arg1, arguments)).to.be.false(); // callee is not the same
1063
- };
1064
-
1065
- inner();
1066
- };
1067
-
1068
- compare();
1069
- done();
1070
- });
1071
-
1072
- it('compares dates', function (done) {
1073
-
1074
- expect(Hoek.deepEqual(new Date(2015, 1, 1), new Date(2015, 1, 1))).to.be.true();
1075
- expect(Hoek.deepEqual(new Date(100), new Date(101))).to.be.false();
1076
- expect(Hoek.deepEqual(new Date(), {})).to.be.false();
1077
- done();
1078
- });
1079
-
1080
- it('compares regular expressions', function (done) {
1081
-
1082
- expect(Hoek.deepEqual(/\s/, new RegExp('\\\s'))).to.be.true();
1083
- expect(Hoek.deepEqual(/\s/g, /\s/g)).to.be.true();
1084
- expect(Hoek.deepEqual(/a/, {})).to.be.false();
1085
- expect(Hoek.deepEqual(/\s/g, /\s/i)).to.be.false();
1086
- expect(Hoek.deepEqual(/a/g, /b/g)).to.be.false();
1087
- done();
1088
- });
1089
-
1090
- it('compares arrays', function (done) {
1091
-
1092
- expect(Hoek.deepEqual([[1]], [[1]])).to.be.true();
1093
- expect(Hoek.deepEqual([1, 2, 3], [1, 2, 3])).to.be.true();
1094
- expect(Hoek.deepEqual([1, 2, 3], [1, 3, 2])).to.be.false();
1095
- expect(Hoek.deepEqual([1, 2, 3], [1, 2])).to.be.false();
1096
- expect(Hoek.deepEqual([1], [1])).to.be.true();
1097
- done();
1098
- });
1099
-
1100
- it('compares buffers', function (done) {
1101
-
1102
- expect(Hoek.deepEqual(new Buffer([1, 2, 3]), new Buffer([1, 2, 3]))).to.be.true();
1103
- expect(Hoek.deepEqual(new Buffer([1, 2, 3]), new Buffer([1, 3, 2]))).to.be.false();
1104
- expect(Hoek.deepEqual(new Buffer([1, 2, 3]), new Buffer([1, 2]))).to.be.false();
1105
- expect(Hoek.deepEqual(new Buffer([1, 2, 3]), {})).to.be.false();
1106
- expect(Hoek.deepEqual(new Buffer([1, 2, 3]), [1, 2, 3])).to.be.false();
1107
- done();
1108
- });
1109
-
1110
- it('compares objects', function (done) {
1111
-
1112
- expect(Hoek.deepEqual({ a: 1, b: 2, c: 3 }, { a: 1, b: 2, c: 3 })).to.be.true();
1113
- expect(Hoek.deepEqual({ foo: 'bar' }, { foo: 'baz' })).to.be.false();
1114
- expect(Hoek.deepEqual({ foo: { bar: 'foo' } }, { foo: { bar: 'baz' } })).to.be.false();
1115
- done();
1116
- });
1117
-
1118
- it('handles circular dependency', function (done) {
1119
-
1120
- var a = {};
1121
- a.x = a;
1122
-
1123
- var b = Hoek.clone(a);
1124
- expect(Hoek.deepEqual(a, b)).to.be.true();
1125
- done();
1126
- });
1127
-
1128
- it('compares an object with property getter without executing it', function (done) {
1129
-
1130
- var obj = {};
1131
- var value = 1;
1132
- var execCount = 0;
1133
-
1134
- Object.defineProperty(obj, 'test', {
1135
- enumerable: true,
1136
- configurable: true,
1137
- get: function () {
1138
-
1139
- ++execCount;
1140
- return value;
1141
- }
1142
- });
1143
-
1144
- var copy = Hoek.clone(obj);
1145
- expect(Hoek.deepEqual(obj, copy)).to.be.true();
1146
- expect(execCount).to.equal(0);
1147
- expect(copy.test).to.equal(1);
1148
- expect(execCount).to.equal(1);
1149
- done();
1150
- });
1151
-
1152
- it('compares objects with property getters', function (done) {
1153
-
1154
- var obj = {};
1155
- Object.defineProperty(obj, 'test', {
1156
- enumerable: true,
1157
- configurable: true,
1158
- get: function () {
1159
-
1160
- return 1;
1161
- }
1162
- });
1163
-
1164
- var ref = {};
1165
- Object.defineProperty(ref, 'test', {
1166
- enumerable: true,
1167
- configurable: true,
1168
- get: function () {
1169
-
1170
- return 2;
1171
- }
1172
- });
1173
-
1174
- expect(Hoek.deepEqual(obj, ref)).to.be.false();
1175
- done();
1176
- });
1177
-
1178
- it('compares object prototypes', function (done) {
1179
-
1180
- var Obj = function () {
1181
-
1182
- this.a = 5;
1183
- };
1184
-
1185
- Obj.prototype.b = function () {
1186
-
1187
- return this.a;
1188
- };
1189
-
1190
- var Ref = function () {
1191
-
1192
- this.a = 5;
1193
- };
1194
-
1195
- Ref.prototype.b = function () {
1196
-
1197
- return this.a;
1198
- };
1199
-
1200
- expect(Hoek.deepEqual(new Obj(), new Ref())).to.be.false();
1201
- expect(Hoek.deepEqual(new Obj(), new Obj())).to.be.true();
1202
- expect(Hoek.deepEqual(new Ref(), new Ref())).to.be.true();
1203
- done();
1204
- });
1205
-
1206
- it('compares plain objects', function (done) {
1207
-
1208
- var a = Object.create(null);
1209
- var b = Object.create(null);
1210
-
1211
- a.b = 'c';
1212
- b.b = 'c';
1213
-
1214
- expect(Hoek.deepEqual(a, b)).to.be.true();
1215
- expect(Hoek.deepEqual(a, { b: 'c' })).to.be.false();
1216
- done();
1217
- });
1218
-
1219
- it('compares an object with an empty object', function (done) {
1220
-
1221
- var a = { a: 1, b: 2 };
1222
-
1223
- expect(Hoek.deepEqual({}, a)).to.be.false();
1224
- expect(Hoek.deepEqual(a, {})).to.be.false();
1225
- done();
1226
- });
1227
-
1228
- it('compares an object ignoring the prototype', function (done) {
1229
-
1230
- var a = Object.create(null);
1231
- var b = {};
1232
-
1233
- expect(Hoek.deepEqual(a, b, { prototype: false })).to.be.true();
1234
- done();
1235
- });
1236
-
1237
- it('compares an object ignoring the prototype recursively', function (done) {
1238
-
1239
- var a = [Object.create(null)];
1240
- var b = [{}];
1241
-
1242
- expect(Hoek.deepEqual(a, b, { prototype: false })).to.be.true();
1243
- done();
1244
- });
1245
- });
1246
-
1247
- describe('unique()', function () {
1248
-
1249
- it('ensures uniqueness within array of objects based on subkey', function (done) {
1250
-
1251
- var a = Hoek.unique(dupsArray, 'x');
1252
- expect(a).to.deep.equal(reducedDupsArray);
1253
- done();
1254
- });
1255
-
1256
- it('removes duplicated without key', function (done) {
1257
-
1258
- expect(Hoek.unique([1, 2, 3, 4, 2, 1, 5])).to.deep.equal([1, 2, 3, 4, 5]);
1259
- done();
1260
- });
1261
- });
1262
-
1263
- describe('mapToObject()', function () {
1264
-
1265
- it('returns null on null array', function (done) {
1266
-
1267
- var a = Hoek.mapToObject(null);
1268
- expect(a).to.equal(null);
1269
- done();
1270
- });
1271
-
1272
- it('converts basic array to existential object', function (done) {
1273
-
1274
- var keys = [1, 2, 3, 4];
1275
- var a = Hoek.mapToObject(keys);
1276
- for (var i in keys) {
1277
- expect(a[keys[i]]).to.equal(true);
1278
- }
1279
- done();
1280
- });
1281
-
1282
- it('converts array of objects to existential object', function (done) {
1283
-
1284
- var keys = [{ x: 1 }, { x: 2 }, { x: 3 }, { y: 4 }];
1285
- var subkey = 'x';
1286
- var a = Hoek.mapToObject(keys, subkey);
1287
- expect(a).to.deep.equal({ 1: true, 2: true, 3: true });
1288
- done();
1289
- });
1290
- });
1291
-
1292
- describe('intersect()', function () {
1293
-
1294
- it('returns the common objects of two arrays', function (done) {
1295
-
1296
- var array1 = [1, 2, 3, 4, 4, 5, 5];
1297
- var array2 = [5, 4, 5, 6, 7];
1298
- var common = Hoek.intersect(array1, array2);
1299
- expect(common.length).to.equal(2);
1300
- done();
1301
- });
1302
-
1303
- it('returns just the first common object of two arrays', function (done) {
1304
-
1305
- var array1 = [1, 2, 3, 4, 4, 5, 5];
1306
- var array2 = [5, 4, 5, 6, 7];
1307
- var common = Hoek.intersect(array1, array2, true);
1308
- expect(common).to.equal(5);
1309
- done();
1310
- });
1311
-
1312
- it('returns null when no common and returning just the first common object of two arrays', function (done) {
1313
-
1314
- var array1 = [1, 2, 3, 4, 4, 5, 5];
1315
- var array2 = [6, 7];
1316
- var common = Hoek.intersect(array1, array2, true);
1317
- expect(common).to.equal(null);
1318
- done();
1319
- });
1320
-
1321
- it('returns an empty array if either input is null', function (done) {
1322
-
1323
- expect(Hoek.intersect([1], null).length).to.equal(0);
1324
- expect(Hoek.intersect(null, [1]).length).to.equal(0);
1325
- done();
1326
- });
1327
-
1328
- it('returns the common objects of object and array', function (done) {
1329
-
1330
- var array1 = [1, 2, 3, 4, 4, 5, 5];
1331
- var array2 = [5, 4, 5, 6, 7];
1332
- var common = Hoek.intersect(Hoek.mapToObject(array1), array2);
1333
- expect(common.length).to.equal(2);
1334
- done();
1335
- });
1336
- });
1337
-
1338
- describe('contain()', function () {
1339
-
1340
- it('tests strings', function (done) {
1341
-
1342
- expect(Hoek.contain('abc', 'ab')).to.be.true();
1343
- expect(Hoek.contain('abc', 'abc', { only: true })).to.be.true();
1344
- expect(Hoek.contain('aaa', 'a', { only: true })).to.be.true();
1345
- expect(Hoek.contain('abc', 'b', { once: true })).to.be.true();
1346
- expect(Hoek.contain('abc', ['a', 'c'])).to.be.true();
1347
- expect(Hoek.contain('abc', ['a', 'd'], { part: true })).to.be.true();
1348
-
1349
- expect(Hoek.contain('abc', 'ac')).to.be.false();
1350
- expect(Hoek.contain('abcd', 'abc', { only: true })).to.be.false();
1351
- expect(Hoek.contain('aab', 'a', { only: true })).to.be.false();
1352
- expect(Hoek.contain('abb', 'b', { once: true })).to.be.false();
1353
- expect(Hoek.contain('abc', ['a', 'd'])).to.be.false();
1354
- expect(Hoek.contain('abc', ['ab', 'bc'])).to.be.false(); // Overlapping values not supported
1355
- done();
1356
- });
1357
-
1358
- it('tests arrays', function (done) {
1359
-
1360
- expect(Hoek.contain([1, 2, 3], 1)).to.be.true();
1361
- expect(Hoek.contain([{ a: 1 }], { a: 1 }, { deep: true })).to.be.true();
1362
- expect(Hoek.contain([1, 2, 3], [1, 2])).to.be.true();
1363
- expect(Hoek.contain([{ a: 1 }], [{ a: 1 }], { deep: true })).to.be.true();
1364
- expect(Hoek.contain([1, 1, 2], [1, 2], { only: true })).to.be.true();
1365
- expect(Hoek.contain([1, 2], [1, 2], { once: true })).to.be.true();
1366
- expect(Hoek.contain([1, 2, 3], [1, 4], { part: true })).to.be.true();
1367
- expect(Hoek.contain([[1], [2]], [[1]], { deep: true })).to.be.true();
1368
-
1369
- expect(Hoek.contain([1, 2, 3], 4)).to.be.false();
1370
- expect(Hoek.contain([{ a: 1 }], { a: 2 }, { deep: true })).to.be.false();
1371
- expect(Hoek.contain([{ a: 1 }], { a: 1 })).to.be.false();
1372
- expect(Hoek.contain([1, 2, 3], [4, 5])).to.be.false();
1373
- expect(Hoek.contain([[3], [2]], [[1]])).to.be.false();
1374
- expect(Hoek.contain([[1], [2]], [[1]])).to.be.false();
1375
- expect(Hoek.contain([{ a: 1 }], [{ a: 2 }], { deep: true })).to.be.false();
1376
- expect(Hoek.contain([1, 3, 2], [1, 2], { only: true })).to.be.false();
1377
- expect(Hoek.contain([1, 2, 2], [1, 2], { once: true })).to.be.false();
1378
- expect(Hoek.contain([0, 2, 3], [1, 4], { part: true })).to.be.false();
1379
- done();
1380
- });
1381
-
1382
- it('tests objects', function (done) {
1383
-
1384
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, 'a')).to.be.true();
1385
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, ['a', 'c'])).to.be.true();
1386
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, ['a', 'b', 'c'], { only: true })).to.be.true();
1387
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, { a: 1 })).to.be.true();
1388
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, { a: 1, c: 3 })).to.be.true();
1389
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, { a: 1, d: 4 }, { part: true })).to.be.true();
1390
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, { a: 1, b: 2, c: 3 }, { only: true })).to.be.true();
1391
- expect(Hoek.contain({ a: [1], b: [2], c: [3] }, { a: [1], c: [3] }, { deep: true })).to.be.true();
1392
- expect(Hoek.contain({ a: [{ b: 1 }, { c: 2 }, { d: 3, e: 4 }] }, { a: [{ b: 1 }, { d: 3 }] }, { deep: true })).to.be.true();
1393
- expect(Hoek.contain({ a: [{ b: 1 }, { c: 2 }, { d: 3, e: 4 }] }, { a: [{ b: 1 }, { d: 3 }] }, { deep: true, part: true })).to.be.true();
1394
- expect(Hoek.contain({ a: [{ b: 1 }, { c: 2 }, { d: 3, e: 4 }] }, { a: [{ b: 1 }, { d: 3 }] }, { deep: true, part: false })).to.be.false();
1395
- expect(Hoek.contain({ a: [{ b: 1 }, { c: 2 }, { d: 3, e: 4 }] }, { a: [{ b: 1 }, { d: 3 }] }, { deep: true, only: true })).to.be.false();
1396
- expect(Hoek.contain({ a: [{ b: 1 }, { c: 2 }, { d: 3, e: 4 }] }, { a: [{ b: 1 }, { d: 3 }] }, { deep: true, only: false })).to.be.true();
1397
-
1398
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, 'd')).to.be.false();
1399
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, ['a', 'd'])).to.be.false();
1400
- expect(Hoek.contain({ a: 1, b: 2, c: 3, d: 4 }, ['a', 'b', 'c'], { only: true })).to.be.false();
1401
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, { a: 2 })).to.be.false();
1402
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, { a: 2, b: 2 }, { part: true })).to.be.false(); // part does not ignore bad value
1403
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, { a: 1, d: 3 })).to.be.false();
1404
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, { a: 1, d: 4 })).to.be.false();
1405
- expect(Hoek.contain({ a: 1, b: 2, c: 3 }, { a: 1, b: 2 }, { only: true })).to.be.false();
1406
- expect(Hoek.contain({ a: [1], b: [2], c: [3] }, { a: [1], c: [3] })).to.be.false();
1407
- expect(Hoek.contain({ a: { b: { c: 1, d: 2 } } }, { a: { b: { c: 1 } } })).to.be.false();
1408
- expect(Hoek.contain({ a: { b: { c: 1, d: 2 } } }, { a: { b: { c: 1 } } }, { deep: true })).to.be.true();
1409
- expect(Hoek.contain({ a: { b: { c: 1, d: 2 } } }, { a: { b: { c: 1 } } }, { deep: true, only: true })).to.be.false();
1410
- expect(Hoek.contain({ a: { b: { c: 1, d: 2 } } }, { a: { b: { c: 1 } } }, { deep: true, only: false })).to.be.true();
1411
- expect(Hoek.contain({ a: { b: { c: 1, d: 2 } } }, { a: { b: { c: 1 } } }, { deep: true, part: true })).to.be.true();
1412
- expect(Hoek.contain({ a: { b: { c: 1, d: 2 } } }, { a: { b: { c: 1 } } }, { deep: true, part: false })).to.be.false();
1413
-
1414
- // Getter check
1415
- var Foo = function (bar) {
1416
-
1417
- this.bar = bar;
1418
- };
1419
-
1420
- Object.defineProperty(Foo.prototype, 'baz', {
1421
- enumerable: true,
1422
- get: function () {
1423
-
1424
- return this.bar;
1425
- }
1426
- });
1427
-
1428
- expect(Hoek.contain({ a: new Foo('b') }, { a: new Foo('b') }, { deep: true })).to.be.true();
1429
- expect(Hoek.contain({ a: new Foo('b') }, { a: new Foo('b') }, { deep: true, part: true })).to.be.true();
1430
- expect(Hoek.contain({ a: new Foo('b') }, { a: { baz: 'b' } }, { deep: true })).to.be.true();
1431
- expect(Hoek.contain({ a: new Foo('b') }, { a: { baz: 'b' } }, { deep: true, only: true })).to.be.false();
1432
- expect(Hoek.contain({ a: new Foo('b') }, { a: { baz: 'b' } }, { deep: true, part: false })).to.be.false();
1433
- expect(Hoek.contain({ a: new Foo('b') }, { a: { baz: 'b' } }, { deep: true, part: true })).to.be.true();
1434
-
1435
- done();
1436
- });
1437
- });
1438
-
1439
- describe('flatten()', function () {
1440
-
1441
- it('returns a flat array', function (done) {
1442
-
1443
- var result = Hoek.flatten([1, 2, [3, 4, [5, 6], [7], 8], [9], [10, [11, 12]], 13]);
1444
- expect(result.length).to.equal(13);
1445
- expect(result).to.deep.equal([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]);
1446
- done();
1447
- });
1448
- });
1449
-
1450
- describe('reach()', function () {
1451
-
1452
- var obj = {
1453
- a: {
1454
- b: {
1455
- c: {
1456
- d: 1,
1457
- e: 2
1458
- },
1459
- f: 'hello'
1460
- },
1461
- g: {
1462
- h: 3
1463
- }
1464
- },
1465
- i: function () { },
1466
- j: null,
1467
- k: [4, 8, 9, 1]
1468
- };
1469
-
1470
- obj.i.x = 5;
1471
-
1472
- it('returns object itself', function (done) {
1473
-
1474
- expect(Hoek.reach(obj, null)).to.equal(obj);
1475
- expect(Hoek.reach(obj, false)).to.equal(obj);
1476
- expect(Hoek.reach(obj)).to.equal(obj);
1477
- done();
1478
- });
1479
-
1480
- it('returns first value of array', function (done) {
1481
-
1482
- expect(Hoek.reach(obj, 'k.0')).to.equal(4);
1483
- done();
1484
- });
1485
-
1486
- it('returns last value of array using negative index', function (done) {
1487
-
1488
- expect(Hoek.reach(obj, 'k.-2')).to.equal(9);
1489
- done();
1490
- });
1491
-
1492
- it('returns a valid member', function (done) {
1493
-
1494
- expect(Hoek.reach(obj, 'a.b.c.d')).to.equal(1);
1495
- done();
1496
- });
1497
-
1498
- it('returns a valid member with separator override', function (done) {
1499
-
1500
- expect(Hoek.reach(obj, 'a/b/c/d', '/')).to.equal(1);
1501
- done();
1502
- });
1503
-
1504
- it('returns undefined on null object', function (done) {
1505
-
1506
- expect(Hoek.reach(null, 'a.b.c.d')).to.equal(undefined);
1507
- done();
1508
- });
1509
-
1510
- it('returns undefined on missing object member', function (done) {
1511
-
1512
- expect(Hoek.reach(obj, 'a.b.c.d.x')).to.equal(undefined);
1513
- done();
1514
- });
1515
-
1516
- it('returns undefined on missing function member', function (done) {
1517
-
1518
- expect(Hoek.reach(obj, 'i.y', { functions: true })).to.equal(undefined);
1519
- done();
1520
- });
1521
-
1522
- it('throws on missing member in strict mode', function (done) {
1523
-
1524
- expect(function () {
1525
-
1526
- Hoek.reach(obj, 'a.b.c.o.x', { strict: true });
1527
- }).to.throw('Missing segment o in reach path a.b.c.o.x');
1528
-
1529
- done();
1530
- });
1531
-
1532
- it('returns undefined on invalid member', function (done) {
1533
-
1534
- expect(Hoek.reach(obj, 'a.b.c.d-.x')).to.equal(undefined);
1535
- done();
1536
- });
1537
-
1538
- it('returns function member', function (done) {
1539
-
1540
- expect(typeof Hoek.reach(obj, 'i')).to.equal('function');
1541
- done();
1542
- });
1543
-
1544
- it('returns function property', function (done) {
1545
-
1546
- expect(Hoek.reach(obj, 'i.x')).to.equal(5);
1547
- done();
1548
- });
1549
-
1550
- it('returns null', function (done) {
1551
-
1552
- expect(Hoek.reach(obj, 'j')).to.equal(null);
1553
- done();
1554
- });
1555
-
1556
- it('throws on function property when functions not allowed', function (done) {
1557
-
1558
- expect(function () {
1559
-
1560
- Hoek.reach(obj, 'i.x', { functions: false });
1561
- }).to.throw('Invalid segment x in reach path i.x');
1562
-
1563
- done();
1564
- });
1565
-
1566
- it('will return a default value if property is not found', function (done) {
1567
-
1568
- expect(Hoek.reach(obj, 'a.b.q', { default: 'defaultValue' })).to.equal('defaultValue');
1569
- done();
1570
- });
1571
-
1572
- it('will return a default value if path is not found', function (done) {
1573
-
1574
- expect(Hoek.reach(obj, 'q', { default: 'defaultValue' })).to.equal('defaultValue');
1575
- done();
1576
- });
1577
-
1578
- it('allows a falsey value to be used as the default value', function (done) {
1579
-
1580
- expect(Hoek.reach(obj, 'q', { default: '' })).to.equal('');
1581
- done();
1582
- });
1583
- });
1584
-
1585
- describe('reachTemplate()', function () {
1586
-
1587
- it('applies object to template', function (done) {
1588
-
1589
- var obj = {
1590
- a: {
1591
- b: {
1592
- c: {
1593
- d: 1
1594
- }
1595
- }
1596
- },
1597
- j: null,
1598
- k: [4, 8, 9, 1]
1599
- };
1600
-
1601
- var template = '{k.0}:{k.-2}:{a.b.c.d}:{x.y}:{j}';
1602
-
1603
- expect(Hoek.reachTemplate(obj, template)).to.equal('4:9:1::');
1604
- done();
1605
- });
1606
-
1607
- it('applies object to template (options)', function (done) {
1608
-
1609
- var obj = {
1610
- a: {
1611
- b: {
1612
- c: {
1613
- d: 1
1614
- }
1615
- }
1616
- },
1617
- j: null,
1618
- k: [4, 8, 9, 1]
1619
- };
1620
-
1621
- var template = '{k/0}:{k/-2}:{a/b/c/d}:{x/y}:{j}';
1622
-
1623
- expect(Hoek.reachTemplate(obj, template, '/')).to.equal('4:9:1::');
1624
- done();
1625
- });
1626
- });
1627
-
1628
- describe('callStack()', function () {
1629
-
1630
- it('returns the full call stack', function (done) {
1631
-
1632
- var stack = Hoek.callStack();
1633
- expect(stack[0][0]).to.contain('index.js');
1634
- expect(stack[0][2]).to.equal(26);
1635
- done();
1636
- });
1637
- });
1638
-
1639
- describe('displayStack ()', function () {
1640
-
1641
- it('returns the full call stack for display', function (done) {
1642
-
1643
- var stack = Hoek.displayStack();
1644
- expect(stack[0]).to.contain(Path.normalize('/test/index.js') + ':');
1645
- done();
1646
- });
1647
-
1648
- it('includes constructor functions correctly', function (done) {
1649
-
1650
- var Something = function (next) {
1651
-
1652
- next();
1653
- };
1654
-
1655
- var something = new Something(function () {
1656
-
1657
- var stack = Hoek.displayStack();
1658
- expect(stack[1]).to.contain('new Something');
1659
- done();
1660
- });
1661
- });
1662
- });
1663
-
1664
- describe('abort()', function () {
1665
-
1666
- it('exits process when not in test mode', function (done) {
1667
-
1668
- var env = process.env.NODE_ENV;
1669
- var write = process.stdout.write;
1670
- var exit = process.exit;
1671
-
1672
- process.env.NODE_ENV = 'nottatest';
1673
- process.stdout.write = function () { };
1674
- process.exit = function (state) {
1675
-
1676
- process.exit = exit;
1677
- process.env.NODE_ENV = env;
1678
- process.stdout.write = write;
1679
-
1680
- expect(state).to.equal(1);
1681
- done();
1682
- };
1683
-
1684
- Hoek.abort('Boom');
1685
- });
1686
-
1687
- it('throws when not in test mode and abortThrow is true', function (done) {
1688
-
1689
- var env = process.env.NODE_ENV;
1690
- process.env.NODE_ENV = 'nottatest';
1691
- Hoek.abortThrow = true;
1692
-
1693
- var fn = function () {
1694
-
1695
- Hoek.abort('my error message');
1696
- };
1697
-
1698
- expect(fn).to.throw('my error message');
1699
- Hoek.abortThrow = false;
1700
- process.env.NODE_ENV = env;
1701
-
1702
- done();
1703
- });
1704
-
1705
- it('respects hideStack argument', function (done) {
1706
-
1707
- var env = process.env.NODE_ENV;
1708
- var write = process.stdout.write;
1709
- var exit = process.exit;
1710
- var output = '';
1711
-
1712
- process.exit = function () { };
1713
- process.env.NODE_ENV = '';
1714
- process.stdout.write = function (message) {
1715
-
1716
- output = message;
1717
- };
1718
-
1719
- Hoek.abort('my error message', true);
1720
-
1721
- process.env.NODE_ENV = env;
1722
- process.stdout.write = write;
1723
- process.exit = exit;
1724
-
1725
- expect(output).to.equal('ABORT: my error message\n\t\n');
1726
-
1727
- done();
1728
- });
1729
-
1730
- it('throws in test mode', function (done) {
1731
-
1732
- var env = process.env.NODE_ENV;
1733
- process.env.NODE_ENV = 'test';
1734
-
1735
- expect(function () {
1736
-
1737
- Hoek.abort('my error message', true);
1738
- }).to.throw('my error message');
1739
-
1740
- process.env.NODE_ENV = env;
1741
- done();
1742
- });
1743
-
1744
- it('throws in test mode with default message', function (done) {
1745
-
1746
- var env = process.env.NODE_ENV;
1747
- process.env.NODE_ENV = 'test';
1748
-
1749
- expect(function () {
1750
-
1751
- Hoek.abort('', true);
1752
- }).to.throw('Unknown error');
1753
-
1754
- process.env.NODE_ENV = env;
1755
- done();
1756
- });
1757
-
1758
- it('defaults to showing stack', function (done) {
1759
-
1760
- var env = process.env.NODE_ENV;
1761
- var write = process.stdout.write;
1762
- var exit = process.exit;
1763
- var output = '';
1764
-
1765
- process.exit = function () { };
1766
- process.env.NODE_ENV = '';
1767
- process.stdout.write = function (message) {
1768
-
1769
- output = message;
1770
- };
1771
-
1772
- Hoek.abort('my error message');
1773
-
1774
- process.env.NODE_ENV = env;
1775
- process.stdout.write = write;
1776
- process.exit = exit;
1777
-
1778
- expect(output).to.contain('index.js');
1779
-
1780
- done();
1781
- });
1782
- });
1783
-
1784
- describe('assert()', function () {
1785
-
1786
- it('throws an Error when using assert in a test', function (done) {
1787
-
1788
- var fn = function () {
1789
-
1790
- Hoek.assert(false, 'my error message');
1791
- };
1792
-
1793
- expect(fn).to.throw('my error message');
1794
- done();
1795
- });
1796
-
1797
- it('throws an Error when using assert in a test with no message', function (done) {
1798
-
1799
- var fn = function () {
1800
-
1801
- Hoek.assert(false);
1802
- };
1803
-
1804
- expect(fn).to.throw('Unknown error');
1805
- done();
1806
- });
1807
-
1808
- it('throws an Error when using assert in a test with multipart message', function (done) {
1809
-
1810
- var fn = function () {
1811
-
1812
- Hoek.assert(false, 'This', 'is', 'my message');
1813
- };
1814
-
1815
- expect(fn).to.throw('This is my message');
1816
- done();
1817
- });
1818
-
1819
- it('throws an Error when using assert in a test with multipart message (empty)', function (done) {
1820
-
1821
- var fn = function () {
1822
-
1823
- Hoek.assert(false, 'This', 'is', '', 'my message');
1824
- };
1825
-
1826
- expect(fn).to.throw('This is my message');
1827
- done();
1828
- });
1829
-
1830
- it('throws an Error when using assert in a test with object message', function (done) {
1831
-
1832
- var fn = function () {
1833
-
1834
- Hoek.assert(false, 'This', 'is', { spinal: 'tap' });
1835
- };
1836
-
1837
- expect(fn).to.throw('This is {"spinal":"tap"}');
1838
- done();
1839
- });
1840
-
1841
- it('throws an Error when using assert in a test with multipart string and error messages', function (done) {
1842
-
1843
- var fn = function () {
1844
-
1845
- Hoek.assert(false, 'This', 'is', new Error('spinal'), new Error('tap'));
1846
- };
1847
-
1848
- expect(fn).to.throw('This is spinal tap');
1849
- done();
1850
- });
1851
-
1852
- it('throws an Error when using assert in a test with error object message', function (done) {
1853
-
1854
- var fn = function () {
1855
-
1856
- Hoek.assert(false, new Error('This is spinal tap'));
1857
- };
1858
-
1859
- expect(fn).to.throw('This is spinal tap');
1860
- done();
1861
- });
1862
-
1863
- it('throws the same Error that is passed to it if there is only one error passed', function (done) {
1864
-
1865
- var error = new Error('ruh roh');
1866
- var error2 = new Error('ruh roh');
1867
-
1868
- var fn = function () {
1869
-
1870
- Hoek.assert(false, error);
1871
- };
1872
-
1873
- try {
1874
- fn();
1875
- } catch (err) {
1876
- expect(error).to.equal(error); // should be the same reference
1877
- expect(error).to.not.equal(error2); // error with the same message should not match
1878
- }
1879
-
1880
- done();
1881
- });
1882
- });
1883
-
1884
- describe('Timer', function () {
1885
-
1886
- it('returns time elapsed', function (done) {
1887
-
1888
- var timer = new Hoek.Timer();
1889
- setTimeout(function () {
1890
-
1891
- expect(timer.elapsed()).to.be.above(9);
1892
- done();
1893
- }, 12);
1894
- });
1895
- });
1896
-
1897
- describe('Bench', function () {
1898
-
1899
- it('returns time elapsed', function (done) {
1900
-
1901
- var timer = new Hoek.Bench();
1902
- setTimeout(function () {
1903
-
1904
- expect(timer.elapsed()).to.be.above(9);
1905
- done();
1906
- }, 12);
1907
- });
1908
- });
1909
-
1910
- describe('escapeRegex()', function () {
1911
-
1912
- it('escapes all special regular expression characters', function (done) {
1913
-
1914
- var a = Hoek.escapeRegex('4^f$s.4*5+-_?%=#!:@|~\\/`"(>)[<]d{}s,');
1915
- expect(a).to.equal('4\\^f\\$s\\.4\\*5\\+\\-_\\?%\\=#\\!\\:@\\|~\\\\\\/`"\\(>\\)\\[<\\]d\\{\\}s\\,');
1916
- done();
1917
- });
1918
- });
1919
-
1920
- describe('Base64Url', function () {
1921
-
1922
- var base64str = 'AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0-P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn-AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq-wsbKztLW2t7i5uru8vb6_wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t_g4eLj5OXm5-jp6uvs7e7v8PHy8_T19vf4-fr7_P3-_w';
1923
- var str = unescape('%00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20%21%22%23%24%25%26%27%28%29*+%2C-./0123456789%3A%3B%3C%3D%3E%3F@ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D%7E%7F%80%81%82%83%84%85%86%87%88%89%8A%8B%8C%8D%8E%8F%90%91%92%93%94%95%96%97%98%99%9A%9B%9C%9D%9E%9F%A0%A1%A2%A3%A4%A5%A6%A7%A8%A9%AA%AB%AC%AD%AE%AF%B0%B1%B2%B3%B4%B5%B6%B7%B8%B9%BA%BB%BC%BD%BE%BF%C0%C1%C2%C3%C4%C5%C6%C7%C8%C9%CA%CB%CC%CD%CE%CF%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DA%DB%DC%DD%DE%DF%E0%E1%E2%E3%E4%E5%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF%F0%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FB%FC%FD%FE%FF');
1924
-
1925
- describe('base64urlEncode()', function () {
1926
-
1927
- it('should base64 URL-safe a string', function (done) {
1928
-
1929
- expect(Hoek.base64urlEncode(str)).to.equal(base64str);
1930
- done();
1931
- });
1932
-
1933
- it('encodes a buffer', function (done) {
1934
-
1935
- expect(Hoek.base64urlEncode(new Buffer(str, 'binary'))).to.equal(base64str);
1936
- done();
1937
- });
1938
-
1939
- it('should base64 URL-safe a hex string', function (done) {
1940
-
1941
- var buffer = new Buffer(str, 'binary');
1942
- expect(Hoek.base64urlEncode(buffer.toString('hex'), 'hex')).to.equal(base64str);
1943
- done();
1944
- });
1945
-
1946
- it('works on larger input strings', function (done) {
1947
-
1948
- var input = Fs.readFileSync(Path.join(__dirname, 'index.js')).toString();
1949
- var encoded = Hoek.base64urlEncode(input);
1950
-
1951
- expect(encoded).to.not.contain('+');
1952
- expect(encoded).to.not.contain('/');
1953
-
1954
- var decoded = Hoek.base64urlDecode(encoded);
1955
-
1956
- expect(decoded).to.equal(input);
1957
- done();
1958
- });
1959
- });
1960
-
1961
- describe('base64urlDecode()', function () {
1962
-
1963
- it('should un-base64 URL-safe a string', function (done) {
1964
-
1965
- expect(Hoek.base64urlDecode(base64str)).to.equal(str);
1966
- done();
1967
- });
1968
-
1969
- it('should un-base64 URL-safe a string into hex', function (done) {
1970
-
1971
- expect(Hoek.base64urlDecode(base64str, 'hex')).to.equal(new Buffer(str, 'binary').toString('hex'));
1972
- done();
1973
- });
1974
-
1975
- it('should un-base64 URL-safe a string and return a buffer', function (done) {
1976
-
1977
- var buf = Hoek.base64urlDecode(base64str, 'buffer');
1978
- expect(buf instanceof Buffer).to.equal(true);
1979
- expect(buf.toString('binary')).to.equal(str);
1980
- done();
1981
- });
1982
-
1983
- it('returns error on undefined input', function (done) {
1984
-
1985
- expect(Hoek.base64urlDecode().message).to.exist();
1986
- done();
1987
- });
1988
-
1989
- it('returns error on invalid input', function (done) {
1990
-
1991
- expect(Hoek.base64urlDecode('*').message).to.exist();
1992
- done();
1993
- });
1994
- });
1995
- });
1996
-
1997
- describe('escapeHeaderAttribute()', function () {
1998
-
1999
- it('should not alter ascii values', function (done) {
2000
-
2001
- var a = Hoek.escapeHeaderAttribute('My Value');
2002
- expect(a).to.equal('My Value');
2003
- done();
2004
- });
2005
-
2006
- it('escapes all special HTTP header attribute characters', function (done) {
2007
-
2008
- var a = Hoek.escapeHeaderAttribute('I said go!!!#"' + String.fromCharCode(92));
2009
- expect(a).to.equal('I said go!!!#\\"\\\\');
2010
- done();
2011
- });
2012
-
2013
- it('throws on large unicode characters', function (done) {
2014
-
2015
- var fn = function () {
2016
-
2017
- Hoek.escapeHeaderAttribute('this is a test' + String.fromCharCode(500) + String.fromCharCode(300));
2018
- };
2019
-
2020
- expect(fn).to.throw(Error);
2021
- done();
2022
- });
2023
-
2024
- it('throws on CRLF to prevent response splitting', function (done) {
2025
-
2026
- var fn = function () {
2027
-
2028
- Hoek.escapeHeaderAttribute('this is a test\r\n');
2029
- };
2030
-
2031
- expect(fn).to.throw(Error);
2032
- done();
2033
- });
2034
- });
2035
-
2036
- describe('escapeHtml()', function () {
2037
-
2038
- it('escapes all special HTML characters', function (done) {
2039
-
2040
- var a = Hoek.escapeHtml('&<>"\'`');
2041
- expect(a).to.equal('&amp;&lt;&gt;&quot;&#x27;&#x60;');
2042
- done();
2043
- });
2044
-
2045
- it('returns empty string on falsy input', function (done) {
2046
-
2047
- var a = Hoek.escapeHtml('');
2048
- expect(a).to.equal('');
2049
- done();
2050
- });
2051
-
2052
- it('returns unchanged string on no reserved input', function (done) {
2053
-
2054
- var a = Hoek.escapeHtml('abc');
2055
- expect(a).to.equal('abc');
2056
- done();
2057
- });
2058
- });
2059
-
2060
- describe('nextTick()', function () {
2061
-
2062
- it('calls the provided callback on nextTick', function (done) {
2063
-
2064
- var a = 0;
2065
-
2066
- var inc = function (step, next) {
2067
-
2068
- a += step;
2069
- next();
2070
- };
2071
-
2072
- var ticked = Hoek.nextTick(inc);
2073
-
2074
- ticked(5, function () {
2075
-
2076
- expect(a).to.equal(6);
2077
- done();
2078
- });
2079
-
2080
- expect(a).to.equal(0);
2081
- inc(1, function () {
2082
-
2083
- expect(a).to.equal(1);
2084
- });
2085
- });
2086
- });
2087
-
2088
- describe('once()', function () {
2089
-
2090
- it('allows function to only execute once', function (done) {
2091
-
2092
- var gen = 0;
2093
- var add = function (x) {
2094
-
2095
- gen += x;
2096
- };
2097
-
2098
- add(5);
2099
- expect(gen).to.equal(5);
2100
- add = Hoek.once(add);
2101
- add(5);
2102
- expect(gen).to.equal(10);
2103
- add(5);
2104
- expect(gen).to.equal(10);
2105
- done();
2106
- });
2107
-
2108
- it('double once wraps one time', function (done) {
2109
-
2110
- var method = function () { };
2111
- method = Hoek.once(method);
2112
- method.x = 1;
2113
- method = Hoek.once(method);
2114
- expect(method.x).to.equal(1);
2115
- done();
2116
- });
2117
- });
2118
-
2119
- describe('isAbsoltePath()', function () {
2120
-
2121
- it('identifies if path is absolute on Unix without node support', { parallel: false }, function (done) {
2122
-
2123
- var orig = Path.isAbsolute;
2124
- Path.isAbsolute = undefined;
2125
-
2126
- expect(Hoek.isAbsolutePath('')).to.equal(false);
2127
- expect(Hoek.isAbsolutePath('a')).to.equal(false);
2128
- expect(Hoek.isAbsolutePath('./a')).to.equal(false);
2129
- expect(Hoek.isAbsolutePath('/a')).to.equal(true);
2130
- expect(Hoek.isAbsolutePath('/')).to.equal(true);
2131
-
2132
- Path.isAbsolute = orig;
2133
-
2134
- done();
2135
- });
2136
-
2137
- it('identifies if path is absolute with fake node support', { parallel: false }, function (done) {
2138
-
2139
- var orig = Path.isAbsolute;
2140
- Path.isAbsolute = function (path) {
2141
-
2142
- return path[0] === '/';
2143
- };
2144
-
2145
- expect(Hoek.isAbsolutePath('', 'linux')).to.equal(false);
2146
- expect(Hoek.isAbsolutePath('a', 'linux')).to.equal(false);
2147
- expect(Hoek.isAbsolutePath('./a', 'linux')).to.equal(false);
2148
- expect(Hoek.isAbsolutePath('/a', 'linux')).to.equal(true);
2149
- expect(Hoek.isAbsolutePath('/', 'linux')).to.equal(true);
2150
-
2151
- Path.isAbsolute = orig;
2152
-
2153
- done();
2154
- });
2155
-
2156
- it('identifies if path is absolute on Windows without node support', { parallel: false }, function (done) {
2157
-
2158
- var orig = Path.isAbsolute;
2159
- Path.isAbsolute = undefined;
2160
-
2161
- expect(Hoek.isAbsolutePath('//server/file', 'win32')).to.equal(true);
2162
- expect(Hoek.isAbsolutePath('//server/file', 'win32')).to.equal(true);
2163
- expect(Hoek.isAbsolutePath('\\\\server\\file', 'win32')).to.equal(true);
2164
- expect(Hoek.isAbsolutePath('C:/Users/', 'win32')).to.equal(true);
2165
- expect(Hoek.isAbsolutePath('C:\\Users\\', 'win32')).to.equal(true);
2166
- expect(Hoek.isAbsolutePath('C:cwd/another', 'win32')).to.equal(false);
2167
- expect(Hoek.isAbsolutePath('C:cwd\\another', 'win32')).to.equal(false);
2168
- expect(Hoek.isAbsolutePath('directory/directory', 'win32')).to.equal(false);
2169
- expect(Hoek.isAbsolutePath('directory\\directory', 'win32')).to.equal(false);
2170
-
2171
- Path.isAbsolute = orig;
2172
-
2173
- done();
2174
- });
2175
- });
2176
-
2177
- describe('isInteger()', function () {
2178
-
2179
- it('validates integers', function (done) {
2180
-
2181
- expect(Hoek.isInteger(0)).to.equal(true);
2182
- expect(Hoek.isInteger(1)).to.equal(true);
2183
- expect(Hoek.isInteger(1394035612500)).to.equal(true);
2184
- expect(Hoek.isInteger('0')).to.equal(false);
2185
- expect(Hoek.isInteger(1.0)).to.equal(true);
2186
- expect(Hoek.isInteger(1.1)).to.equal(false);
2187
- done();
2188
- });
2189
- });
2190
-
2191
- describe('ignore()', function () {
2192
-
2193
- it('exists', function (done) {
2194
-
2195
- expect(Hoek.ignore).to.exist();
2196
- expect(typeof Hoek.ignore).to.equal('function');
2197
- done();
2198
- });
2199
- });
2200
-
2201
- describe('inherits()', function () {
2202
-
2203
- it('exists', function (done) {
2204
-
2205
- expect(Hoek.inherits).to.exist();
2206
- expect(typeof Hoek.inherits).to.equal('function');
2207
- done();
2208
- });
2209
- });
2210
-
2211
- describe('format()', function () {
2212
-
2213
- it('exists', function (done) {
2214
-
2215
- expect(Hoek.format).to.exist();
2216
- expect(typeof Hoek.format).to.equal('function');
2217
- done();
2218
- });
2219
-
2220
- it('is a reference to Util.format', function (done) {
2221
-
2222
- expect(Hoek.format('hello %s', 'world')).to.equal('hello world');
2223
- done();
2224
- });
2225
- });
2226
-
2227
- describe('transform()', function () {
2228
-
2229
- var source = {
2230
- address: {
2231
- one: '123 main street',
2232
- two: 'PO Box 1234'
2233
- },
2234
- zip: {
2235
- code: 3321232,
2236
- province: null
2237
- },
2238
- title: 'Warehouse',
2239
- state: 'CA'
2240
- };
2241
-
2242
- var sourcesArray = [{
2243
- address: {
2244
- one: '123 main street',
2245
- two: 'PO Box 1234'
2246
- },
2247
- zip: {
2248
- code: 3321232,
2249
- province: null
2250
- },
2251
- title: 'Warehouse',
2252
- state: 'CA'
2253
- }, {
2254
- address: {
2255
- one: '456 market street',
2256
- two: 'PO Box 5678'
2257
- },
2258
- zip: {
2259
- code: 9876,
2260
- province: null
2261
- },
2262
- title: 'Garage',
2263
- state: 'NY'
2264
- }];
2265
-
2266
- it('transforms an object based on the input object', function (done) {
2267
-
2268
- var result = Hoek.transform(source, {
2269
- 'person.address.lineOne': 'address.one',
2270
- 'person.address.lineTwo': 'address.two',
2271
- 'title': 'title',
2272
- 'person.address.region': 'state',
2273
- 'person.address.zip': 'zip.code',
2274
- 'person.address.location': 'zip.province'
2275
- });
2276
-
2277
- expect(result).to.deep.equal({
2278
- person: {
2279
- address: {
2280
- lineOne: '123 main street',
2281
- lineTwo: 'PO Box 1234',
2282
- region: 'CA',
2283
- zip: 3321232,
2284
- location: null
2285
- }
2286
- },
2287
- title: 'Warehouse'
2288
- });
2289
-
2290
- done();
2291
- });
2292
-
2293
- it('transforms an array of objects based on the input object', function (done) {
2294
-
2295
- var result = Hoek.transform(sourcesArray, {
2296
- 'person.address.lineOne': 'address.one',
2297
- 'person.address.lineTwo': 'address.two',
2298
- 'title': 'title',
2299
- 'person.address.region': 'state',
2300
- 'person.address.zip': 'zip.code',
2301
- 'person.address.location': 'zip.province'
2302
- });
2303
-
2304
- expect(result).to.deep.equal([
2305
- {
2306
- person: {
2307
- address: {
2308
- lineOne: '123 main street',
2309
- lineTwo: 'PO Box 1234',
2310
- region: 'CA',
2311
- zip: 3321232,
2312
- location: null
2313
- }
2314
- },
2315
- title: 'Warehouse'
2316
- },
2317
- {
2318
- person: {
2319
- address: {
2320
- lineOne: '456 market street',
2321
- lineTwo: 'PO Box 5678',
2322
- region: 'NY',
2323
- zip: 9876,
2324
- location: null
2325
- }
2326
- },
2327
- title: 'Garage'
2328
- }
2329
- ]);
2330
-
2331
- done();
2332
- });
2333
-
2334
- it('uses the reach options passed into it', function (done) {
2335
-
2336
- var schema = {
2337
- 'person.address.lineOne': 'address-one',
2338
- 'person.address.lineTwo': 'address-two',
2339
- 'title': 'title',
2340
- 'person.address.region': 'state',
2341
- 'person.prefix': 'person-title',
2342
- 'person.zip': 'zip-code'
2343
- };
2344
- var options = {
2345
- separator: '-',
2346
- default: 'unknown'
2347
- };
2348
- var result = Hoek.transform(source, schema, options);
2349
-
2350
- expect(result).to.deep.equal({
2351
- person: {
2352
- address: {
2353
- lineOne: '123 main street',
2354
- lineTwo: 'PO Box 1234',
2355
- region: 'CA'
2356
- },
2357
- prefix: 'unknown',
2358
- zip: 3321232
2359
- },
2360
- title: 'Warehouse'
2361
- });
2362
-
2363
- done();
2364
- });
2365
-
2366
- it('works to create shallow objects', function (done) {
2367
-
2368
- var result = Hoek.transform(source, {
2369
- lineOne: 'address.one',
2370
- lineTwo: 'address.two',
2371
- title: 'title',
2372
- region: 'state',
2373
- province: 'zip.province'
2374
- });
2375
-
2376
- expect(result).to.deep.equal({
2377
- lineOne: '123 main street',
2378
- lineTwo: 'PO Box 1234',
2379
- title: 'Warehouse',
2380
- region: 'CA',
2381
- province: null
2382
- });
2383
-
2384
- done();
2385
- });
2386
-
2387
- it('only allows strings in the map', function (done) {
2388
-
2389
- expect(function () {
2390
-
2391
- var result = Hoek.transform(source, {
2392
- lineOne: {}
2393
- });
2394
- }).to.throw('All mappings must be "." delineated strings');
2395
-
2396
- done();
2397
- });
2398
-
2399
- it('throws an error on invalid arguments', function (done) {
2400
-
2401
- expect(function () {
2402
-
2403
- var result = Hoek.transform(NaN, {});
2404
- }).to.throw('Invalid source object: must be null, undefined, an object, or an array');
2405
-
2406
- done();
2407
- });
2408
-
2409
- it('is safe to pass null', function (done) {
2410
-
2411
- var result = Hoek.transform(null, {});
2412
- expect(result).to.deep.equal({});
2413
-
2414
- done();
2415
- });
2416
-
2417
- it('is safe to pass undefined', function (done) {
2418
-
2419
- var result = Hoek.transform(undefined, {});
2420
- expect(result).to.deep.equal({});
2421
-
2422
- done();
2423
- });
2424
- });
2425
-
2426
- describe('uniqueFilename()', function () {
2427
-
2428
- it('generates a random file path', function (done) {
2429
-
2430
- var result = Hoek.uniqueFilename('./test/modules');
2431
-
2432
- expect(result).to.exist();
2433
- expect(result).to.be.a.string();
2434
- expect(result).to.contain('test/modules');
2435
- done();
2436
- });
2437
-
2438
- it('is random enough to use in fast loops', function (done) {
2439
-
2440
- var results = [];
2441
-
2442
- for (var i = 0; i < 10; ++i) {
2443
- results[i] = Hoek.uniqueFilename('./test/modules');
2444
- }
2445
-
2446
- var filter = results.filter(function (item, index, array) {
2447
-
2448
- return array.indexOf(item) === index;
2449
- });
2450
-
2451
- expect(filter.length).to.equal(10);
2452
- expect(results.length).to.equal(10);
2453
- done();
2454
-
2455
- });
2456
-
2457
- it('combines the random elements with a supplied character', function (done) {
2458
-
2459
- var result = Hoek.uniqueFilename('./test', 'txt');
2460
-
2461
- expect(result).to.contain('test/');
2462
- expect(result).to.contain('.txt');
2463
-
2464
- done();
2465
- });
2466
-
2467
- it('accepts extensions with a "." in it', function (done) {
2468
-
2469
- var result = Hoek.uniqueFilename('./test', '.mp3');
2470
-
2471
- expect(result).to.contain('test/');
2472
- expect(result).to.contain('.mp3');
2473
-
2474
- done();
2475
- });
2476
- });
2477
-
2478
- describe('stringify()', function (done) {
2479
-
2480
- it('converts object to string', function (done) {
2481
-
2482
- var obj = { a: 1 };
2483
- expect(Hoek.stringify(obj)).to.equal('{"a":1}');
2484
- done();
2485
- });
2486
-
2487
- it('returns error in result string', function (done) {
2488
-
2489
- var obj = { a: 1 };
2490
- obj.b = obj;
2491
- expect(Hoek.stringify(obj)).to.equal('[Cannot display object: Converting circular structure to JSON]');
2492
- done();
2493
- });
2494
- });
2495
-
2496
- describe('shallow()', function (done) {
2497
-
2498
- it('shallow copies an object', function (done) {
2499
-
2500
- var obj = {
2501
- a: 5,
2502
- b: {
2503
- c: 6
2504
- }
2505
- };
2506
-
2507
- var shallow = Hoek.shallow(obj);
2508
- expect(shallow).to.not.equal(obj);
2509
- expect(shallow).to.deep.equal(obj);
2510
- expect(shallow.b).to.equal(obj.b);
2511
- done();
2512
- });
2513
- });