fsevents 1.1.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (929) hide show
  1. package/.travis.yml +2 -1
  2. package/fsevents.cc +5 -7
  3. package/install.js +2 -2
  4. package/node_modules/abbrev/LICENSE +31 -0
  5. package/node_modules/abbrev/package.json +10 -10
  6. package/node_modules/aproba/README.md +16 -11
  7. package/node_modules/aproba/index.js +11 -9
  8. package/node_modules/aproba/package.json +12 -12
  9. package/node_modules/balanced-match/index.js +1 -0
  10. package/node_modules/balanced-match/package.json +12 -10
  11. package/node_modules/{asynckit → brace-expansion}/LICENSE +2 -2
  12. package/node_modules/brace-expansion/README.md +7 -1
  13. package/node_modules/brace-expansion/package.json +11 -11
  14. package/node_modules/{block-stream → chownr}/LICENSE +0 -0
  15. package/node_modules/chownr/README.md +3 -0
  16. package/node_modules/chownr/chownr.js +52 -0
  17. package/node_modules/chownr/package.json +57 -0
  18. package/node_modules/debug/CHANGELOG.md +5 -0
  19. package/node_modules/debug/component.json +1 -1
  20. package/node_modules/debug/package.json +10 -10
  21. package/node_modules/debug/src/inspector-log.js +15 -0
  22. package/node_modules/debug/src/node.js +3 -1
  23. package/node_modules/detect-libc/.npmignore +7 -0
  24. package/node_modules/detect-libc/LICENSE +201 -0
  25. package/node_modules/detect-libc/README.md +78 -0
  26. package/node_modules/detect-libc/bin/detect-libc.js +18 -0
  27. package/node_modules/detect-libc/lib/detect-libc.js +92 -0
  28. package/node_modules/detect-libc/package.json +71 -0
  29. package/node_modules/{fstream-ignore → fs-minipass}/LICENSE +0 -0
  30. package/node_modules/fs-minipass/README.md +70 -0
  31. package/node_modules/fs-minipass/index.js +386 -0
  32. package/node_modules/fs-minipass/package.json +63 -0
  33. package/node_modules/iconv-lite/.travis.yml +23 -0
  34. package/node_modules/iconv-lite/Changelog.md +146 -0
  35. package/node_modules/{punycode/LICENSE-MIT.txt → iconv-lite/LICENSE} +2 -1
  36. package/node_modules/iconv-lite/README.md +156 -0
  37. package/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
  38. package/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  39. package/node_modules/iconv-lite/encodings/index.js +22 -0
  40. package/node_modules/iconv-lite/encodings/internal.js +188 -0
  41. package/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  42. package/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  43. package/node_modules/iconv-lite/encodings/sbcs-data.js +169 -0
  44. package/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  45. package/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  46. package/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  47. package/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  48. package/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  49. package/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  50. package/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  51. package/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  52. package/node_modules/iconv-lite/encodings/utf16.js +177 -0
  53. package/node_modules/iconv-lite/encodings/utf7.js +290 -0
  54. package/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  55. package/node_modules/iconv-lite/lib/extend-node.js +217 -0
  56. package/node_modules/iconv-lite/lib/index.d.ts +24 -0
  57. package/node_modules/iconv-lite/lib/index.js +153 -0
  58. package/node_modules/iconv-lite/lib/streams.js +121 -0
  59. package/node_modules/iconv-lite/package.json +77 -0
  60. package/node_modules/{fstream → ignore-walk}/LICENSE +0 -0
  61. package/node_modules/ignore-walk/README.md +60 -0
  62. package/node_modules/ignore-walk/index.js +265 -0
  63. package/node_modules/ignore-walk/package.json +72 -0
  64. package/node_modules/ini/ini.js +66 -62
  65. package/node_modules/ini/package.json +17 -12
  66. package/node_modules/minipass/README.md +46 -0
  67. package/node_modules/minipass/index.js +304 -0
  68. package/node_modules/minipass/package.json +68 -0
  69. package/node_modules/minizlib/LICENSE +26 -0
  70. package/node_modules/minizlib/README.md +44 -0
  71. package/node_modules/minizlib/constants.js +46 -0
  72. package/node_modules/minizlib/index.js +364 -0
  73. package/node_modules/minizlib/package.json +72 -0
  74. package/node_modules/needle/README.md +593 -0
  75. package/node_modules/needle/bin/needle +40 -0
  76. package/node_modules/needle/examples/deflated-stream.js +22 -0
  77. package/node_modules/needle/examples/digest-auth.js +16 -0
  78. package/node_modules/needle/examples/download-to-file.js +18 -0
  79. package/node_modules/needle/examples/multipart-stream.js +25 -0
  80. package/node_modules/needle/examples/parsed-stream.js +23 -0
  81. package/node_modules/needle/examples/parsed-stream2.js +21 -0
  82. package/node_modules/needle/examples/stream-events.js +23 -0
  83. package/node_modules/needle/examples/stream-to-file.js +14 -0
  84. package/node_modules/needle/examples/upload-image.js +51 -0
  85. package/node_modules/needle/lib/auth.js +110 -0
  86. package/node_modules/needle/lib/cookies.js +77 -0
  87. package/node_modules/needle/lib/decoder.js +53 -0
  88. package/node_modules/needle/lib/multipart.js +98 -0
  89. package/node_modules/needle/lib/needle.js +783 -0
  90. package/node_modules/needle/lib/parsers.js +120 -0
  91. package/node_modules/needle/lib/querystring.js +49 -0
  92. package/node_modules/{delayed-stream/License → needle/license.txt} +2 -2
  93. package/node_modules/needle/package.json +103 -0
  94. package/node_modules/needle/test/basic_auth_spec.js +196 -0
  95. package/node_modules/needle/test/compression_spec.js +94 -0
  96. package/node_modules/needle/test/cookies_spec.js +305 -0
  97. package/node_modules/needle/test/decoder_spec.js +86 -0
  98. package/node_modules/needle/test/errors_spec.js +286 -0
  99. package/node_modules/needle/test/headers_spec.js +198 -0
  100. package/node_modules/needle/test/helpers.js +72 -0
  101. package/node_modules/needle/test/long_string_spec.js +34 -0
  102. package/node_modules/needle/test/output_spec.js +254 -0
  103. package/node_modules/needle/test/parsing_spec.js +494 -0
  104. package/node_modules/needle/test/post_data_spec.js +1021 -0
  105. package/node_modules/needle/test/proxy_spec.js +202 -0
  106. package/node_modules/needle/test/querystring_spec.js +128 -0
  107. package/node_modules/needle/test/redirect_spec.js +392 -0
  108. package/node_modules/needle/test/redirect_with_timeout.js +45 -0
  109. package/node_modules/needle/test/request_stream_spec.js +202 -0
  110. package/node_modules/needle/test/response_stream_spec.js +139 -0
  111. package/node_modules/needle/test/socket_pool_spec.js +66 -0
  112. package/node_modules/needle/test/url_spec.js +147 -0
  113. package/node_modules/needle/test/utils/formidable.js +17 -0
  114. package/node_modules/needle/test/utils/proxy.js +62 -0
  115. package/node_modules/needle/test/utils/test.js +104 -0
  116. package/node_modules/node-pre-gyp/CHANGELOG.md +43 -0
  117. package/node_modules/node-pre-gyp/README.md +85 -9
  118. package/node_modules/node-pre-gyp/appveyor.yml +9 -7
  119. package/node_modules/node-pre-gyp/bin/node-pre-gyp +5 -2
  120. package/node_modules/node-pre-gyp/lib/build.js +8 -0
  121. package/node_modules/node-pre-gyp/lib/clean.js +17 -8
  122. package/node_modules/node-pre-gyp/lib/configure.js +4 -0
  123. package/node_modules/node-pre-gyp/lib/install.js +58 -34
  124. package/node_modules/node-pre-gyp/lib/node-pre-gyp.js +9 -0
  125. package/node_modules/node-pre-gyp/lib/package.js +20 -13
  126. package/node_modules/node-pre-gyp/lib/pre-binding.js +6 -1
  127. package/node_modules/node-pre-gyp/lib/publish.js +3 -1
  128. package/node_modules/node-pre-gyp/lib/rebuild.js +12 -4
  129. package/node_modules/node-pre-gyp/lib/reinstall.js +8 -1
  130. package/node_modules/node-pre-gyp/lib/reveal.js +4 -2
  131. package/node_modules/node-pre-gyp/lib/testbinary.js +3 -1
  132. package/node_modules/node-pre-gyp/lib/testpackage.js +22 -16
  133. package/node_modules/node-pre-gyp/lib/unpublish.js +3 -1
  134. package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +196 -0
  135. package/node_modules/node-pre-gyp/lib/util/handle_gyp_opts.js +8 -2
  136. package/node_modules/node-pre-gyp/lib/util/napi.js +156 -0
  137. package/node_modules/node-pre-gyp/lib/util/versioning.js +24 -2
  138. package/node_modules/node-pre-gyp/package.json +28 -25
  139. package/node_modules/npm-bundled/README.md +46 -0
  140. package/node_modules/npm-bundled/index.js +227 -0
  141. package/node_modules/npm-bundled/package.json +61 -0
  142. package/node_modules/{json-stringify-safe → npm-packlist}/LICENSE +0 -0
  143. package/node_modules/npm-packlist/README.md +68 -0
  144. package/node_modules/npm-packlist/index.js +220 -0
  145. package/node_modules/npm-packlist/package.json +67 -0
  146. package/node_modules/npmlog/log.js +6 -1
  147. package/node_modules/npmlog/package.json +10 -10
  148. package/node_modules/osenv/package.json +17 -11
  149. package/node_modules/process-nextick-args/index.js +3 -2
  150. package/node_modules/process-nextick-args/package.json +13 -10
  151. package/node_modules/process-nextick-args/readme.md +2 -2
  152. package/node_modules/rc/README.md +80 -2
  153. package/node_modules/rc/cli.js +4 -0
  154. package/node_modules/rc/index.js +0 -7
  155. package/node_modules/rc/package.json +12 -12
  156. package/node_modules/readable-stream/.travis.yml +26 -20
  157. package/node_modules/readable-stream/README.md +3 -2
  158. package/node_modules/readable-stream/lib/_stream_duplex.js +69 -13
  159. package/node_modules/readable-stream/lib/_stream_passthrough.js +21 -0
  160. package/node_modules/readable-stream/lib/_stream_readable.js +194 -110
  161. package/node_modules/readable-stream/lib/_stream_transform.js +64 -32
  162. package/node_modules/readable-stream/lib/_stream_writable.js +198 -55
  163. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +68 -53
  164. package/node_modules/readable-stream/lib/internal/streams/destroy.js +74 -0
  165. package/node_modules/readable-stream/package.json +20 -22
  166. package/node_modules/readable-stream/writable.js +2 -2
  167. package/node_modules/rimraf/package.json +10 -10
  168. package/node_modules/rimraf/rimraf.js +3 -2
  169. package/node_modules/safe-buffer/README.md +12 -9
  170. package/node_modules/safe-buffer/index.js +10 -6
  171. package/node_modules/safe-buffer/package.json +11 -12
  172. package/node_modules/safe-buffer/test.js +2 -0
  173. package/node_modules/{ajv → safer-buffer}/LICENSE +2 -3
  174. package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  175. package/node_modules/safer-buffer/Readme.md +156 -0
  176. package/node_modules/safer-buffer/dangerous.js +58 -0
  177. package/node_modules/safer-buffer/package.json +61 -0
  178. package/node_modules/safer-buffer/safer.js +77 -0
  179. package/node_modules/safer-buffer/tests.js +406 -0
  180. package/node_modules/sax/LICENSE +41 -0
  181. package/node_modules/sax/README.md +225 -0
  182. package/node_modules/sax/lib/sax.js +1565 -0
  183. package/node_modules/sax/package.json +62 -0
  184. package/node_modules/semver/README.md +75 -37
  185. package/node_modules/semver/bin/semver +12 -2
  186. package/node_modules/semver/package.json +12 -12
  187. package/node_modules/semver/range.bnf +2 -2
  188. package/node_modules/semver/semver.js +134 -13
  189. package/node_modules/string_decoder/.travis.yml +50 -0
  190. package/node_modules/string_decoder/README.md +22 -3
  191. package/node_modules/string_decoder/lib/string_decoder.js +35 -11
  192. package/node_modules/string_decoder/package.json +18 -15
  193. package/node_modules/tar/LICENSE +3 -0
  194. package/node_modules/tar/README.md +929 -30
  195. package/node_modules/tar/index.js +18 -0
  196. package/node_modules/tar/lib/buffer.js +11 -0
  197. package/node_modules/tar/lib/create.js +105 -0
  198. package/node_modules/tar/lib/extract.js +97 -79
  199. package/node_modules/tar/lib/header.js +236 -348
  200. package/node_modules/tar/lib/high-level-opt.js +29 -0
  201. package/node_modules/tar/lib/large-numbers.js +92 -0
  202. package/node_modules/tar/lib/list.js +130 -0
  203. package/node_modules/tar/lib/mkdir.js +206 -0
  204. package/node_modules/tar/lib/pack.js +354 -187
  205. package/node_modules/tar/lib/parse.js +393 -246
  206. package/node_modules/tar/lib/pax.js +146 -0
  207. package/node_modules/tar/lib/read-entry.js +94 -0
  208. package/node_modules/tar/lib/replace.js +220 -0
  209. package/node_modules/tar/lib/types.js +44 -0
  210. package/node_modules/tar/lib/unpack.js +560 -0
  211. package/node_modules/tar/lib/update.js +36 -0
  212. package/node_modules/tar/lib/warn-mixin.js +14 -0
  213. package/node_modules/tar/lib/winchars.js +23 -0
  214. package/node_modules/tar/lib/write-entry.js +403 -0
  215. package/node_modules/tar/package.json +41 -22
  216. package/node_modules/yallist/LICENSE +15 -0
  217. package/node_modules/yallist/README.md +204 -0
  218. package/node_modules/yallist/iterator.js +8 -0
  219. package/node_modules/yallist/package.json +63 -0
  220. package/node_modules/yallist/yallist.js +376 -0
  221. package/package.json +3 -3
  222. package/src/methods.cc +9 -7
  223. package/node_modules/ajv/.tonic_example.js +0 -20
  224. package/node_modules/ajv/README.md +0 -1213
  225. package/node_modules/ajv/dist/ajv.bundle.js +0 -8023
  226. package/node_modules/ajv/dist/ajv.min.js +0 -6
  227. package/node_modules/ajv/dist/ajv.min.js.map +0 -1
  228. package/node_modules/ajv/dist/nodent.min.js +0 -8
  229. package/node_modules/ajv/dist/regenerator.min.js +0 -32
  230. package/node_modules/ajv/lib/ajv.d.ts +0 -284
  231. package/node_modules/ajv/lib/ajv.js +0 -420
  232. package/node_modules/ajv/lib/async.js +0 -218
  233. package/node_modules/ajv/lib/cache.js +0 -26
  234. package/node_modules/ajv/lib/compile/_rules.js +0 -28
  235. package/node_modules/ajv/lib/compile/equal.js +0 -45
  236. package/node_modules/ajv/lib/compile/formats.js +0 -164
  237. package/node_modules/ajv/lib/compile/index.js +0 -390
  238. package/node_modules/ajv/lib/compile/resolve.js +0 -267
  239. package/node_modules/ajv/lib/compile/rules.js +0 -40
  240. package/node_modules/ajv/lib/compile/schema_obj.js +0 -9
  241. package/node_modules/ajv/lib/compile/ucs2length.js +0 -20
  242. package/node_modules/ajv/lib/compile/util.js +0 -257
  243. package/node_modules/ajv/lib/compile/validation_error.js +0 -14
  244. package/node_modules/ajv/lib/dot/_limit.jst +0 -49
  245. package/node_modules/ajv/lib/dot/_limitItems.jst +0 -10
  246. package/node_modules/ajv/lib/dot/_limitLength.jst +0 -10
  247. package/node_modules/ajv/lib/dot/_limitProperties.jst +0 -10
  248. package/node_modules/ajv/lib/dot/allOf.jst +0 -34
  249. package/node_modules/ajv/lib/dot/anyOf.jst +0 -48
  250. package/node_modules/ajv/lib/dot/coerce.def +0 -61
  251. package/node_modules/ajv/lib/dot/custom.jst +0 -184
  252. package/node_modules/ajv/lib/dot/defaults.def +0 -32
  253. package/node_modules/ajv/lib/dot/definitions.def +0 -182
  254. package/node_modules/ajv/lib/dot/dependencies.jst +0 -69
  255. package/node_modules/ajv/lib/dot/enum.jst +0 -30
  256. package/node_modules/ajv/lib/dot/errors.def +0 -185
  257. package/node_modules/ajv/lib/dot/format.jst +0 -100
  258. package/node_modules/ajv/lib/dot/items.jst +0 -101
  259. package/node_modules/ajv/lib/dot/missing.def +0 -34
  260. package/node_modules/ajv/lib/dot/multipleOf.jst +0 -20
  261. package/node_modules/ajv/lib/dot/not.jst +0 -43
  262. package/node_modules/ajv/lib/dot/oneOf.jst +0 -44
  263. package/node_modules/ajv/lib/dot/pattern.jst +0 -14
  264. package/node_modules/ajv/lib/dot/properties.jst +0 -319
  265. package/node_modules/ajv/lib/dot/ref.jst +0 -86
  266. package/node_modules/ajv/lib/dot/required.jst +0 -96
  267. package/node_modules/ajv/lib/dot/uniqueItems.jst +0 -38
  268. package/node_modules/ajv/lib/dot/v5/_formatLimit.jst +0 -116
  269. package/node_modules/ajv/lib/dot/v5/constant.jst +0 -10
  270. package/node_modules/ajv/lib/dot/v5/patternRequired.jst +0 -28
  271. package/node_modules/ajv/lib/dot/v5/switch.jst +0 -73
  272. package/node_modules/ajv/lib/dot/validate.jst +0 -210
  273. package/node_modules/ajv/lib/dotjs/README.md +0 -3
  274. package/node_modules/ajv/lib/dotjs/_formatLimit.js +0 -176
  275. package/node_modules/ajv/lib/dotjs/_limit.js +0 -124
  276. package/node_modules/ajv/lib/dotjs/_limitItems.js +0 -76
  277. package/node_modules/ajv/lib/dotjs/_limitLength.js +0 -81
  278. package/node_modules/ajv/lib/dotjs/_limitProperties.js +0 -76
  279. package/node_modules/ajv/lib/dotjs/allOf.js +0 -43
  280. package/node_modules/ajv/lib/dotjs/anyOf.js +0 -65
  281. package/node_modules/ajv/lib/dotjs/constant.js +0 -52
  282. package/node_modules/ajv/lib/dotjs/custom.js +0 -220
  283. package/node_modules/ajv/lib/dotjs/dependencies.js +0 -147
  284. package/node_modules/ajv/lib/dotjs/enum.js +0 -65
  285. package/node_modules/ajv/lib/dotjs/format.js +0 -138
  286. package/node_modules/ajv/lib/dotjs/items.js +0 -144
  287. package/node_modules/ajv/lib/dotjs/multipleOf.js +0 -76
  288. package/node_modules/ajv/lib/dotjs/not.js +0 -83
  289. package/node_modules/ajv/lib/dotjs/oneOf.js +0 -76
  290. package/node_modules/ajv/lib/dotjs/pattern.js +0 -74
  291. package/node_modules/ajv/lib/dotjs/patternRequired.js +0 -51
  292. package/node_modules/ajv/lib/dotjs/properties.js +0 -445
  293. package/node_modules/ajv/lib/dotjs/ref.js +0 -119
  294. package/node_modules/ajv/lib/dotjs/required.js +0 -249
  295. package/node_modules/ajv/lib/dotjs/switch.js +0 -128
  296. package/node_modules/ajv/lib/dotjs/uniqueItems.js +0 -71
  297. package/node_modules/ajv/lib/dotjs/validate.js +0 -375
  298. package/node_modules/ajv/lib/keyword.js +0 -129
  299. package/node_modules/ajv/lib/refs/json-schema-draft-04.json +0 -150
  300. package/node_modules/ajv/lib/refs/json-schema-v5.json +0 -328
  301. package/node_modules/ajv/lib/v5.js +0 -52
  302. package/node_modules/ajv/package.json +0 -132
  303. package/node_modules/ajv/scripts/.eslintrc.yml +0 -3
  304. package/node_modules/ajv/scripts/bundle.js +0 -54
  305. package/node_modules/ajv/scripts/compile-dots.js +0 -73
  306. package/node_modules/ajv/scripts/info +0 -10
  307. package/node_modules/ajv/scripts/prepare-tests +0 -9
  308. package/node_modules/ajv/scripts/travis-gh-pages +0 -23
  309. package/node_modules/asn1/.npmignore +0 -2
  310. package/node_modules/asn1/.travis.yml +0 -4
  311. package/node_modules/asn1/LICENSE +0 -19
  312. package/node_modules/asn1/README.md +0 -50
  313. package/node_modules/asn1/lib/ber/errors.js +0 -13
  314. package/node_modules/asn1/lib/ber/index.js +0 -27
  315. package/node_modules/asn1/lib/ber/reader.js +0 -261
  316. package/node_modules/asn1/lib/ber/types.js +0 -36
  317. package/node_modules/asn1/lib/ber/writer.js +0 -316
  318. package/node_modules/asn1/lib/index.js +0 -20
  319. package/node_modules/asn1/package.json +0 -66
  320. package/node_modules/asn1/tst/ber/reader.test.js +0 -208
  321. package/node_modules/asn1/tst/ber/writer.test.js +0 -370
  322. package/node_modules/assert-plus/AUTHORS +0 -6
  323. package/node_modules/assert-plus/CHANGES.md +0 -8
  324. package/node_modules/assert-plus/README.md +0 -155
  325. package/node_modules/assert-plus/assert.js +0 -206
  326. package/node_modules/assert-plus/package.json +0 -83
  327. package/node_modules/asynckit/README.md +0 -233
  328. package/node_modules/asynckit/bench.js +0 -76
  329. package/node_modules/asynckit/index.js +0 -6
  330. package/node_modules/asynckit/lib/abort.js +0 -29
  331. package/node_modules/asynckit/lib/async.js +0 -34
  332. package/node_modules/asynckit/lib/defer.js +0 -26
  333. package/node_modules/asynckit/lib/iterate.js +0 -75
  334. package/node_modules/asynckit/lib/readable_asynckit.js +0 -91
  335. package/node_modules/asynckit/lib/readable_parallel.js +0 -25
  336. package/node_modules/asynckit/lib/readable_serial.js +0 -25
  337. package/node_modules/asynckit/lib/readable_serial_ordered.js +0 -29
  338. package/node_modules/asynckit/lib/state.js +0 -37
  339. package/node_modules/asynckit/lib/streamify.js +0 -141
  340. package/node_modules/asynckit/lib/terminator.js +0 -29
  341. package/node_modules/asynckit/package.json +0 -92
  342. package/node_modules/asynckit/parallel.js +0 -43
  343. package/node_modules/asynckit/serial.js +0 -17
  344. package/node_modules/asynckit/serialOrdered.js +0 -75
  345. package/node_modules/asynckit/stream.js +0 -21
  346. package/node_modules/aws-sign2/LICENSE +0 -55
  347. package/node_modules/aws-sign2/README.md +0 -4
  348. package/node_modules/aws-sign2/index.js +0 -212
  349. package/node_modules/aws-sign2/package.json +0 -51
  350. package/node_modules/aws4/.npmignore +0 -4
  351. package/node_modules/aws4/.tern-port +0 -1
  352. package/node_modules/aws4/.travis.yml +0 -5
  353. package/node_modules/aws4/LICENSE +0 -19
  354. package/node_modules/aws4/README.md +0 -523
  355. package/node_modules/aws4/aws4.js +0 -332
  356. package/node_modules/aws4/lru.js +0 -96
  357. package/node_modules/aws4/package.json +0 -105
  358. package/node_modules/bcrypt-pbkdf/README.md +0 -39
  359. package/node_modules/bcrypt-pbkdf/index.js +0 -556
  360. package/node_modules/bcrypt-pbkdf/package.json +0 -38
  361. package/node_modules/block-stream/LICENCE +0 -25
  362. package/node_modules/block-stream/README.md +0 -14
  363. package/node_modules/block-stream/block-stream.js +0 -209
  364. package/node_modules/block-stream/package.json +0 -61
  365. package/node_modules/boom/.npmignore +0 -18
  366. package/node_modules/boom/.travis.yml +0 -8
  367. package/node_modules/boom/CONTRIBUTING.md +0 -1
  368. package/node_modules/boom/LICENSE +0 -28
  369. package/node_modules/boom/README.md +0 -652
  370. package/node_modules/boom/images/boom.png +0 -0
  371. package/node_modules/boom/lib/index.js +0 -318
  372. package/node_modules/boom/package.json +0 -59
  373. package/node_modules/boom/test/index.js +0 -654
  374. package/node_modules/buffer-shims/index.js +0 -108
  375. package/node_modules/buffer-shims/license.md +0 -19
  376. package/node_modules/buffer-shims/package.json +0 -50
  377. package/node_modules/buffer-shims/readme.md +0 -21
  378. package/node_modules/caseless/LICENSE +0 -28
  379. package/node_modules/caseless/README.md +0 -45
  380. package/node_modules/caseless/index.js +0 -67
  381. package/node_modules/caseless/package.json +0 -57
  382. package/node_modules/caseless/test.js +0 -67
  383. package/node_modules/co/History.md +0 -172
  384. package/node_modules/co/LICENSE +0 -22
  385. package/node_modules/co/Readme.md +0 -212
  386. package/node_modules/co/index.js +0 -237
  387. package/node_modules/co/package.json +0 -67
  388. package/node_modules/combined-stream/License +0 -19
  389. package/node_modules/combined-stream/Readme.md +0 -138
  390. package/node_modules/combined-stream/lib/combined_stream.js +0 -188
  391. package/node_modules/combined-stream/package.json +0 -58
  392. package/node_modules/cryptiles/.npmignore +0 -18
  393. package/node_modules/cryptiles/.travis.yml +0 -8
  394. package/node_modules/cryptiles/LICENSE +0 -28
  395. package/node_modules/cryptiles/README.md +0 -16
  396. package/node_modules/cryptiles/lib/index.js +0 -68
  397. package/node_modules/cryptiles/package.json +0 -60
  398. package/node_modules/cryptiles/test/index.js +0 -102
  399. package/node_modules/dashdash/CHANGES.md +0 -364
  400. package/node_modules/dashdash/LICENSE.txt +0 -24
  401. package/node_modules/dashdash/README.md +0 -574
  402. package/node_modules/dashdash/etc/dashdash.bash_completion.in +0 -389
  403. package/node_modules/dashdash/lib/dashdash.js +0 -1055
  404. package/node_modules/dashdash/node_modules/assert-plus/AUTHORS +0 -6
  405. package/node_modules/dashdash/node_modules/assert-plus/CHANGES.md +0 -14
  406. package/node_modules/dashdash/node_modules/assert-plus/README.md +0 -162
  407. package/node_modules/dashdash/node_modules/assert-plus/assert.js +0 -211
  408. package/node_modules/dashdash/node_modules/assert-plus/package.json +0 -83
  409. package/node_modules/dashdash/package.json +0 -68
  410. package/node_modules/delayed-stream/.npmignore +0 -1
  411. package/node_modules/delayed-stream/Makefile +0 -7
  412. package/node_modules/delayed-stream/Readme.md +0 -141
  413. package/node_modules/delayed-stream/lib/delayed_stream.js +0 -107
  414. package/node_modules/delayed-stream/package.json +0 -63
  415. package/node_modules/ecc-jsbn/.npmignore +0 -15
  416. package/node_modules/ecc-jsbn/LICENSE +0 -21
  417. package/node_modules/ecc-jsbn/README.md +0 -8
  418. package/node_modules/ecc-jsbn/index.js +0 -57
  419. package/node_modules/ecc-jsbn/lib/LICENSE-jsbn +0 -40
  420. package/node_modules/ecc-jsbn/lib/ec.js +0 -561
  421. package/node_modules/ecc-jsbn/lib/sec.js +0 -170
  422. package/node_modules/ecc-jsbn/package.json +0 -66
  423. package/node_modules/ecc-jsbn/test.js +0 -14
  424. package/node_modules/extend/.eslintrc +0 -17
  425. package/node_modules/extend/.jscs.json +0 -175
  426. package/node_modules/extend/.npmignore +0 -1
  427. package/node_modules/extend/.travis.yml +0 -179
  428. package/node_modules/extend/CHANGELOG.md +0 -77
  429. package/node_modules/extend/LICENSE +0 -23
  430. package/node_modules/extend/README.md +0 -81
  431. package/node_modules/extend/component.json +0 -32
  432. package/node_modules/extend/index.js +0 -86
  433. package/node_modules/extend/package.json +0 -76
  434. package/node_modules/extsprintf/.gitmodules +0 -6
  435. package/node_modules/extsprintf/LICENSE +0 -19
  436. package/node_modules/extsprintf/Makefile +0 -23
  437. package/node_modules/extsprintf/Makefile.deps +0 -39
  438. package/node_modules/extsprintf/Makefile.targ +0 -285
  439. package/node_modules/extsprintf/README.md +0 -39
  440. package/node_modules/extsprintf/examples/simple.js +0 -2
  441. package/node_modules/extsprintf/jsl.node.conf +0 -137
  442. package/node_modules/extsprintf/lib/extsprintf.js +0 -166
  443. package/node_modules/extsprintf/package.json +0 -43
  444. package/node_modules/forever-agent/LICENSE +0 -55
  445. package/node_modules/forever-agent/README.md +0 -4
  446. package/node_modules/forever-agent/index.js +0 -138
  447. package/node_modules/forever-agent/package.json +0 -51
  448. package/node_modules/form-data/License +0 -19
  449. package/node_modules/form-data/README.md +0 -217
  450. package/node_modules/form-data/lib/browser.js +0 -2
  451. package/node_modules/form-data/lib/form_data.js +0 -444
  452. package/node_modules/form-data/lib/populate.js +0 -10
  453. package/node_modules/form-data/package.json +0 -99
  454. package/node_modules/fstream/.npmignore +0 -5
  455. package/node_modules/fstream/.travis.yml +0 -9
  456. package/node_modules/fstream/README.md +0 -76
  457. package/node_modules/fstream/examples/filter-pipe.js +0 -134
  458. package/node_modules/fstream/examples/pipe.js +0 -118
  459. package/node_modules/fstream/examples/reader.js +0 -68
  460. package/node_modules/fstream/examples/symlink-write.js +0 -27
  461. package/node_modules/fstream/fstream.js +0 -35
  462. package/node_modules/fstream/lib/abstract.js +0 -85
  463. package/node_modules/fstream/lib/collect.js +0 -70
  464. package/node_modules/fstream/lib/dir-reader.js +0 -252
  465. package/node_modules/fstream/lib/dir-writer.js +0 -174
  466. package/node_modules/fstream/lib/file-reader.js +0 -150
  467. package/node_modules/fstream/lib/file-writer.js +0 -107
  468. package/node_modules/fstream/lib/get-type.js +0 -33
  469. package/node_modules/fstream/lib/link-reader.js +0 -53
  470. package/node_modules/fstream/lib/link-writer.js +0 -95
  471. package/node_modules/fstream/lib/proxy-reader.js +0 -95
  472. package/node_modules/fstream/lib/proxy-writer.js +0 -111
  473. package/node_modules/fstream/lib/reader.js +0 -255
  474. package/node_modules/fstream/lib/socket-reader.js +0 -36
  475. package/node_modules/fstream/lib/writer.js +0 -390
  476. package/node_modules/fstream/package.json +0 -62
  477. package/node_modules/fstream-ignore/README.md +0 -22
  478. package/node_modules/fstream-ignore/ignore.js +0 -275
  479. package/node_modules/fstream-ignore/package.json +0 -62
  480. package/node_modules/getpass/.npmignore +0 -8
  481. package/node_modules/getpass/.travis.yml +0 -9
  482. package/node_modules/getpass/LICENSE +0 -18
  483. package/node_modules/getpass/README.md +0 -32
  484. package/node_modules/getpass/lib/index.js +0 -123
  485. package/node_modules/getpass/node_modules/assert-plus/AUTHORS +0 -6
  486. package/node_modules/getpass/node_modules/assert-plus/CHANGES.md +0 -14
  487. package/node_modules/getpass/node_modules/assert-plus/README.md +0 -162
  488. package/node_modules/getpass/node_modules/assert-plus/assert.js +0 -211
  489. package/node_modules/getpass/node_modules/assert-plus/package.json +0 -83
  490. package/node_modules/getpass/package.json +0 -51
  491. package/node_modules/graceful-fs/LICENSE +0 -15
  492. package/node_modules/graceful-fs/README.md +0 -133
  493. package/node_modules/graceful-fs/fs.js +0 -21
  494. package/node_modules/graceful-fs/graceful-fs.js +0 -262
  495. package/node_modules/graceful-fs/legacy-streams.js +0 -118
  496. package/node_modules/graceful-fs/package.json +0 -77
  497. package/node_modules/graceful-fs/polyfills.js +0 -330
  498. package/node_modules/har-schema/LICENSE +0 -13
  499. package/node_modules/har-schema/README.md +0 -49
  500. package/node_modules/har-schema/lib/afterRequest.json +0 -29
  501. package/node_modules/har-schema/lib/beforeRequest.json +0 -29
  502. package/node_modules/har-schema/lib/browser.json +0 -19
  503. package/node_modules/har-schema/lib/cache.json +0 -20
  504. package/node_modules/har-schema/lib/content.json +0 -28
  505. package/node_modules/har-schema/lib/cookie.json +0 -35
  506. package/node_modules/har-schema/lib/creator.json +0 -19
  507. package/node_modules/har-schema/lib/entry.json +0 -52
  508. package/node_modules/har-schema/lib/har.json +0 -12
  509. package/node_modules/har-schema/lib/header.json +0 -19
  510. package/node_modules/har-schema/lib/index.js +0 -22
  511. package/node_modules/har-schema/lib/log.json +0 -35
  512. package/node_modules/har-schema/lib/page.json +0 -31
  513. package/node_modules/har-schema/lib/pageTimings.json +0 -17
  514. package/node_modules/har-schema/lib/postData.json +0 -42
  515. package/node_modules/har-schema/lib/query.json +0 -19
  516. package/node_modules/har-schema/lib/request.json +0 -56
  517. package/node_modules/har-schema/lib/response.json +0 -53
  518. package/node_modules/har-schema/lib/timings.json +0 -41
  519. package/node_modules/har-schema/package.json +0 -87
  520. package/node_modules/har-validator/LICENSE +0 -13
  521. package/node_modules/har-validator/README.md +0 -75
  522. package/node_modules/har-validator/lib/browser/async.js +0 -96
  523. package/node_modules/har-validator/lib/browser/error.js +0 -15
  524. package/node_modules/har-validator/lib/browser/promise.js +0 -93
  525. package/node_modules/har-validator/lib/node4/async.js +0 -136
  526. package/node_modules/har-validator/lib/node4/error.js +0 -22
  527. package/node_modules/har-validator/lib/node4/promise.js +0 -132
  528. package/node_modules/har-validator/lib/node6/async.js +0 -133
  529. package/node_modules/har-validator/lib/node6/error.js +0 -22
  530. package/node_modules/har-validator/lib/node6/promise.js +0 -130
  531. package/node_modules/har-validator/lib/node7/async.js +0 -133
  532. package/node_modules/har-validator/lib/node7/error.js +0 -22
  533. package/node_modules/har-validator/lib/node7/promise.js +0 -130
  534. package/node_modules/har-validator/package.json +0 -102
  535. package/node_modules/har-validator/src/async.js +0 -96
  536. package/node_modules/har-validator/src/error.js +0 -15
  537. package/node_modules/har-validator/src/promise.js +0 -93
  538. package/node_modules/hawk/.npmignore +0 -20
  539. package/node_modules/hawk/.travis.yml +0 -5
  540. package/node_modules/hawk/LICENSE +0 -28
  541. package/node_modules/hawk/README.md +0 -634
  542. package/node_modules/hawk/bower.json +0 -24
  543. package/node_modules/hawk/component.json +0 -19
  544. package/node_modules/hawk/dist/client.js +0 -343
  545. package/node_modules/hawk/example/usage.js +0 -78
  546. package/node_modules/hawk/images/hawk.png +0 -0
  547. package/node_modules/hawk/images/logo.png +0 -0
  548. package/node_modules/hawk/lib/browser.js +0 -637
  549. package/node_modules/hawk/lib/client.js +0 -369
  550. package/node_modules/hawk/lib/crypto.js +0 -126
  551. package/node_modules/hawk/lib/index.js +0 -15
  552. package/node_modules/hawk/lib/server.js +0 -548
  553. package/node_modules/hawk/lib/utils.js +0 -184
  554. package/node_modules/hawk/package.json +0 -71
  555. package/node_modules/hawk/test/browser.js +0 -1492
  556. package/node_modules/hawk/test/client.js +0 -440
  557. package/node_modules/hawk/test/crypto.js +0 -70
  558. package/node_modules/hawk/test/index.js +0 -378
  559. package/node_modules/hawk/test/readme.js +0 -95
  560. package/node_modules/hawk/test/server.js +0 -1329
  561. package/node_modules/hawk/test/uri.js +0 -838
  562. package/node_modules/hawk/test/utils.js +0 -149
  563. package/node_modules/hoek/.npmignore +0 -18
  564. package/node_modules/hoek/.travis.yml +0 -7
  565. package/node_modules/hoek/CONTRIBUTING.md +0 -1
  566. package/node_modules/hoek/LICENSE +0 -31
  567. package/node_modules/hoek/README.md +0 -584
  568. package/node_modules/hoek/images/hoek.png +0 -0
  569. package/node_modules/hoek/lib/escape.js +0 -132
  570. package/node_modules/hoek/lib/index.js +0 -993
  571. package/node_modules/hoek/package.json +0 -56
  572. package/node_modules/hoek/test/escaper.js +0 -88
  573. package/node_modules/hoek/test/index.js +0 -2513
  574. package/node_modules/hoek/test/modules/ignore.txt +0 -0
  575. package/node_modules/hoek/test/modules/test1.js +0 -1
  576. package/node_modules/hoek/test/modules/test2.js +0 -1
  577. package/node_modules/hoek/test/modules/test3.js +0 -1
  578. package/node_modules/http-signature/.dir-locals.el +0 -6
  579. package/node_modules/http-signature/.npmignore +0 -7
  580. package/node_modules/http-signature/CHANGES.md +0 -46
  581. package/node_modules/http-signature/LICENSE +0 -18
  582. package/node_modules/http-signature/README.md +0 -79
  583. package/node_modules/http-signature/http_signing.md +0 -363
  584. package/node_modules/http-signature/lib/index.js +0 -29
  585. package/node_modules/http-signature/lib/parser.js +0 -318
  586. package/node_modules/http-signature/lib/signer.js +0 -399
  587. package/node_modules/http-signature/lib/utils.js +0 -112
  588. package/node_modules/http-signature/lib/verify.js +0 -88
  589. package/node_modules/http-signature/package.json +0 -78
  590. package/node_modules/is-typedarray/LICENSE.md +0 -18
  591. package/node_modules/is-typedarray/README.md +0 -16
  592. package/node_modules/is-typedarray/index.js +0 -41
  593. package/node_modules/is-typedarray/package.json +0 -60
  594. package/node_modules/is-typedarray/test.js +0 -34
  595. package/node_modules/isstream/.jshintrc +0 -59
  596. package/node_modules/isstream/.npmignore +0 -1
  597. package/node_modules/isstream/.travis.yml +0 -12
  598. package/node_modules/isstream/LICENSE.md +0 -11
  599. package/node_modules/isstream/README.md +0 -66
  600. package/node_modules/isstream/isstream.js +0 -27
  601. package/node_modules/isstream/package.json +0 -62
  602. package/node_modules/isstream/test.js +0 -168
  603. package/node_modules/jodid25519/.npmignore +0 -11
  604. package/node_modules/jodid25519/.travis.yml +0 -7
  605. package/node_modules/jodid25519/AUTHORS.md +0 -3
  606. package/node_modules/jodid25519/LICENSE +0 -23
  607. package/node_modules/jodid25519/README.md +0 -51
  608. package/node_modules/jodid25519/almond.0 +0 -42
  609. package/node_modules/jodid25519/almond.1 +0 -13
  610. package/node_modules/jodid25519/index.js +0 -35
  611. package/node_modules/jodid25519/jsdoc.json +0 -19
  612. package/node_modules/jodid25519/lib/core.js +0 -481
  613. package/node_modules/jodid25519/lib/curve255.js +0 -221
  614. package/node_modules/jodid25519/lib/dh.js +0 -111
  615. package/node_modules/jodid25519/lib/eddsa.js +0 -573
  616. package/node_modules/jodid25519/lib/utils.js +0 -198
  617. package/node_modules/jodid25519/package.json +0 -76
  618. package/node_modules/jsbn/.npmignore +0 -2
  619. package/node_modules/jsbn/LICENSE +0 -40
  620. package/node_modules/jsbn/README.md +0 -175
  621. package/node_modules/jsbn/example.html +0 -12
  622. package/node_modules/jsbn/example.js +0 -3
  623. package/node_modules/jsbn/index.js +0 -1357
  624. package/node_modules/jsbn/package.json +0 -54
  625. package/node_modules/json-schema/README.md +0 -5
  626. package/node_modules/json-schema/draft-00/hyper-schema +0 -68
  627. package/node_modules/json-schema/draft-00/json-ref +0 -26
  628. package/node_modules/json-schema/draft-00/links +0 -33
  629. package/node_modules/json-schema/draft-00/schema +0 -155
  630. package/node_modules/json-schema/draft-01/hyper-schema +0 -68
  631. package/node_modules/json-schema/draft-01/json-ref +0 -26
  632. package/node_modules/json-schema/draft-01/links +0 -33
  633. package/node_modules/json-schema/draft-01/schema +0 -155
  634. package/node_modules/json-schema/draft-02/hyper-schema +0 -68
  635. package/node_modules/json-schema/draft-02/json-ref +0 -26
  636. package/node_modules/json-schema/draft-02/links +0 -35
  637. package/node_modules/json-schema/draft-02/schema +0 -166
  638. package/node_modules/json-schema/draft-03/examples/address +0 -20
  639. package/node_modules/json-schema/draft-03/examples/calendar +0 -53
  640. package/node_modules/json-schema/draft-03/examples/card +0 -105
  641. package/node_modules/json-schema/draft-03/examples/geo +0 -8
  642. package/node_modules/json-schema/draft-03/examples/interfaces +0 -23
  643. package/node_modules/json-schema/draft-03/hyper-schema +0 -60
  644. package/node_modules/json-schema/draft-03/json-ref +0 -26
  645. package/node_modules/json-schema/draft-03/links +0 -35
  646. package/node_modules/json-schema/draft-03/schema +0 -174
  647. package/node_modules/json-schema/draft-04/hyper-schema +0 -60
  648. package/node_modules/json-schema/draft-04/links +0 -41
  649. package/node_modules/json-schema/draft-04/schema +0 -189
  650. package/node_modules/json-schema/draft-zyp-json-schema-03.xml +0 -1120
  651. package/node_modules/json-schema/draft-zyp-json-schema-04.xml +0 -1072
  652. package/node_modules/json-schema/lib/links.js +0 -66
  653. package/node_modules/json-schema/lib/validate.js +0 -273
  654. package/node_modules/json-schema/package.json +0 -72
  655. package/node_modules/json-schema/test/tests.js +0 -95
  656. package/node_modules/json-stable-stringify/.npmignore +0 -1
  657. package/node_modules/json-stable-stringify/.travis.yml +0 -4
  658. package/node_modules/json-stable-stringify/LICENSE +0 -18
  659. package/node_modules/json-stable-stringify/example/key_cmp.js +0 -7
  660. package/node_modules/json-stable-stringify/example/nested.js +0 -3
  661. package/node_modules/json-stable-stringify/example/str.js +0 -3
  662. package/node_modules/json-stable-stringify/example/value_cmp.js +0 -7
  663. package/node_modules/json-stable-stringify/index.js +0 -84
  664. package/node_modules/json-stable-stringify/package.json +0 -75
  665. package/node_modules/json-stable-stringify/readme.markdown +0 -130
  666. package/node_modules/json-stable-stringify/test/cmp.js +0 -11
  667. package/node_modules/json-stable-stringify/test/nested.js +0 -35
  668. package/node_modules/json-stable-stringify/test/replacer.js +0 -74
  669. package/node_modules/json-stable-stringify/test/space.js +0 -59
  670. package/node_modules/json-stable-stringify/test/str.js +0 -32
  671. package/node_modules/json-stable-stringify/test/to-json.js +0 -20
  672. package/node_modules/json-stringify-safe/.npmignore +0 -1
  673. package/node_modules/json-stringify-safe/CHANGELOG.md +0 -14
  674. package/node_modules/json-stringify-safe/Makefile +0 -35
  675. package/node_modules/json-stringify-safe/README.md +0 -52
  676. package/node_modules/json-stringify-safe/package.json +0 -67
  677. package/node_modules/json-stringify-safe/stringify.js +0 -27
  678. package/node_modules/json-stringify-safe/test/mocha.opts +0 -2
  679. package/node_modules/json-stringify-safe/test/stringify_test.js +0 -246
  680. package/node_modules/jsonify/README.markdown +0 -34
  681. package/node_modules/jsonify/index.js +0 -2
  682. package/node_modules/jsonify/lib/parse.js +0 -273
  683. package/node_modules/jsonify/lib/stringify.js +0 -154
  684. package/node_modules/jsonify/package.json +0 -60
  685. package/node_modules/jsonify/test/parse.js +0 -16
  686. package/node_modules/jsonify/test/stringify.js +0 -15
  687. package/node_modules/jsprim/CHANGES.md +0 -43
  688. package/node_modules/jsprim/LICENSE +0 -19
  689. package/node_modules/jsprim/README.md +0 -292
  690. package/node_modules/jsprim/lib/jsprim.js +0 -735
  691. package/node_modules/jsprim/node_modules/assert-plus/AUTHORS +0 -6
  692. package/node_modules/jsprim/node_modules/assert-plus/CHANGES.md +0 -14
  693. package/node_modules/jsprim/node_modules/assert-plus/README.md +0 -162
  694. package/node_modules/jsprim/node_modules/assert-plus/assert.js +0 -211
  695. package/node_modules/jsprim/node_modules/assert-plus/package.json +0 -83
  696. package/node_modules/jsprim/package.json +0 -50
  697. package/node_modules/mime-db/HISTORY.md +0 -412
  698. package/node_modules/mime-db/LICENSE +0 -22
  699. package/node_modules/mime-db/README.md +0 -82
  700. package/node_modules/mime-db/db.json +0 -6805
  701. package/node_modules/mime-db/index.js +0 -11
  702. package/node_modules/mime-db/package.json +0 -99
  703. package/node_modules/mime-types/HISTORY.md +0 -223
  704. package/node_modules/mime-types/LICENSE +0 -23
  705. package/node_modules/mime-types/README.md +0 -108
  706. package/node_modules/mime-types/index.js +0 -188
  707. package/node_modules/mime-types/package.json +0 -85
  708. package/node_modules/node-pre-gyp/cloudformation/travis.template +0 -73
  709. package/node_modules/node-pre-gyp/template-name.diff +0 -12
  710. package/node_modules/oauth-sign/LICENSE +0 -55
  711. package/node_modules/oauth-sign/README.md +0 -4
  712. package/node_modules/oauth-sign/index.js +0 -136
  713. package/node_modules/oauth-sign/package.json +0 -57
  714. package/node_modules/osenv/.npmignore +0 -13
  715. package/node_modules/osenv/.travis.yml +0 -9
  716. package/node_modules/osenv/test/unix.js +0 -71
  717. package/node_modules/osenv/test/windows.js +0 -74
  718. package/node_modules/osenv/x.tap +0 -39
  719. package/node_modules/performance-now/.npmignore +0 -1
  720. package/node_modules/performance-now/.tm_properties +0 -7
  721. package/node_modules/performance-now/.travis.yml +0 -4
  722. package/node_modules/performance-now/Makefile +0 -25
  723. package/node_modules/performance-now/README.md +0 -30
  724. package/node_modules/performance-now/lib/performance-now.js +0 -32
  725. package/node_modules/performance-now/license.txt +0 -7
  726. package/node_modules/performance-now/package.json +0 -58
  727. package/node_modules/performance-now/src/performance-now.coffee +0 -15
  728. package/node_modules/performance-now/test/mocha.opts +0 -3
  729. package/node_modules/performance-now/test/performance-now.coffee +0 -38
  730. package/node_modules/process-nextick-args/.travis.yml +0 -12
  731. package/node_modules/process-nextick-args/test.js +0 -24
  732. package/node_modules/punycode/README.md +0 -176
  733. package/node_modules/punycode/package.json +0 -92
  734. package/node_modules/punycode/punycode.js +0 -533
  735. package/node_modules/qs/.eslintignore +0 -1
  736. package/node_modules/qs/.eslintrc +0 -18
  737. package/node_modules/qs/.jscs.json +0 -176
  738. package/node_modules/qs/CHANGELOG.md +0 -175
  739. package/node_modules/qs/LICENSE +0 -28
  740. package/node_modules/qs/README.md +0 -440
  741. package/node_modules/qs/dist/qs.js +0 -597
  742. package/node_modules/qs/lib/formats.js +0 -18
  743. package/node_modules/qs/lib/index.js +0 -11
  744. package/node_modules/qs/lib/parse.js +0 -167
  745. package/node_modules/qs/lib/stringify.js +0 -207
  746. package/node_modules/qs/lib/utils.js +0 -182
  747. package/node_modules/qs/package.json +0 -79
  748. package/node_modules/qs/test/.eslintrc +0 -11
  749. package/node_modules/qs/test/index.js +0 -7
  750. package/node_modules/qs/test/parse.js +0 -519
  751. package/node_modules/qs/test/stringify.js +0 -567
  752. package/node_modules/qs/test/utils.js +0 -22
  753. package/node_modules/readable-stream/.npmignore +0 -9
  754. package/node_modules/request/CHANGELOG.md +0 -674
  755. package/node_modules/request/LICENSE +0 -55
  756. package/node_modules/request/README.md +0 -1115
  757. package/node_modules/request/index.js +0 -156
  758. package/node_modules/request/lib/auth.js +0 -168
  759. package/node_modules/request/lib/cookies.js +0 -39
  760. package/node_modules/request/lib/getProxyFromURI.js +0 -79
  761. package/node_modules/request/lib/har.js +0 -215
  762. package/node_modules/request/lib/helpers.js +0 -66
  763. package/node_modules/request/lib/multipart.js +0 -113
  764. package/node_modules/request/lib/oauth.js +0 -148
  765. package/node_modules/request/lib/querystring.js +0 -51
  766. package/node_modules/request/lib/redirect.js +0 -157
  767. package/node_modules/request/lib/tunnel.js +0 -176
  768. package/node_modules/request/package.json +0 -119
  769. package/node_modules/request/request.js +0 -1565
  770. package/node_modules/safe-buffer/browser.js +0 -1
  771. package/node_modules/sntp/.npmignore +0 -18
  772. package/node_modules/sntp/.travis.yml +0 -5
  773. package/node_modules/sntp/LICENSE +0 -28
  774. package/node_modules/sntp/Makefile +0 -9
  775. package/node_modules/sntp/README.md +0 -68
  776. package/node_modules/sntp/examples/offset.js +0 -16
  777. package/node_modules/sntp/examples/time.js +0 -25
  778. package/node_modules/sntp/index.js +0 -1
  779. package/node_modules/sntp/lib/index.js +0 -412
  780. package/node_modules/sntp/package.json +0 -69
  781. package/node_modules/sntp/test/index.js +0 -435
  782. package/node_modules/sshpk/.npmignore +0 -9
  783. package/node_modules/sshpk/.travis.yml +0 -11
  784. package/node_modules/sshpk/LICENSE +0 -18
  785. package/node_modules/sshpk/README.md +0 -698
  786. package/node_modules/sshpk/bin/sshpk-conv +0 -201
  787. package/node_modules/sshpk/bin/sshpk-sign +0 -191
  788. package/node_modules/sshpk/bin/sshpk-verify +0 -166
  789. package/node_modules/sshpk/lib/algs.js +0 -168
  790. package/node_modules/sshpk/lib/certificate.js +0 -377
  791. package/node_modules/sshpk/lib/dhe.js +0 -410
  792. package/node_modules/sshpk/lib/ed-compat.js +0 -96
  793. package/node_modules/sshpk/lib/errors.js +0 -84
  794. package/node_modules/sshpk/lib/fingerprint.js +0 -161
  795. package/node_modules/sshpk/lib/formats/auto.js +0 -73
  796. package/node_modules/sshpk/lib/formats/openssh-cert.js +0 -322
  797. package/node_modules/sshpk/lib/formats/pem.js +0 -186
  798. package/node_modules/sshpk/lib/formats/pkcs1.js +0 -320
  799. package/node_modules/sshpk/lib/formats/pkcs8.js +0 -505
  800. package/node_modules/sshpk/lib/formats/rfc4253.js +0 -146
  801. package/node_modules/sshpk/lib/formats/ssh-private.js +0 -261
  802. package/node_modules/sshpk/lib/formats/ssh.js +0 -114
  803. package/node_modules/sshpk/lib/formats/x509-pem.js +0 -77
  804. package/node_modules/sshpk/lib/formats/x509.js +0 -726
  805. package/node_modules/sshpk/lib/identity.js +0 -277
  806. package/node_modules/sshpk/lib/index.js +0 -39
  807. package/node_modules/sshpk/lib/key.js +0 -274
  808. package/node_modules/sshpk/lib/private-key.js +0 -255
  809. package/node_modules/sshpk/lib/signature.js +0 -313
  810. package/node_modules/sshpk/lib/ssh-buffer.js +0 -148
  811. package/node_modules/sshpk/lib/utils.js +0 -288
  812. package/node_modules/sshpk/man/man1/sshpk-conv.1 +0 -135
  813. package/node_modules/sshpk/man/man1/sshpk-sign.1 +0 -81
  814. package/node_modules/sshpk/man/man1/sshpk-verify.1 +0 -68
  815. package/node_modules/sshpk/node_modules/assert-plus/AUTHORS +0 -6
  816. package/node_modules/sshpk/node_modules/assert-plus/CHANGES.md +0 -14
  817. package/node_modules/sshpk/node_modules/assert-plus/README.md +0 -162
  818. package/node_modules/sshpk/node_modules/assert-plus/assert.js +0 -211
  819. package/node_modules/sshpk/node_modules/assert-plus/package.json +0 -83
  820. package/node_modules/sshpk/package.json +0 -103
  821. package/node_modules/string_decoder/.npmignore +0 -2
  822. package/node_modules/stringstream/.npmignore +0 -15
  823. package/node_modules/stringstream/.travis.yml +0 -4
  824. package/node_modules/stringstream/LICENSE.txt +0 -22
  825. package/node_modules/stringstream/README.md +0 -38
  826. package/node_modules/stringstream/example.js +0 -27
  827. package/node_modules/stringstream/package.json +0 -52
  828. package/node_modules/stringstream/stringstream.js +0 -102
  829. package/node_modules/tar/.npmignore +0 -5
  830. package/node_modules/tar/.travis.yml +0 -4
  831. package/node_modules/tar/examples/extracter.js +0 -19
  832. package/node_modules/tar/examples/packer.js +0 -24
  833. package/node_modules/tar/examples/reader.js +0 -36
  834. package/node_modules/tar/lib/buffer-entry.js +0 -30
  835. package/node_modules/tar/lib/entry-writer.js +0 -169
  836. package/node_modules/tar/lib/entry.js +0 -220
  837. package/node_modules/tar/lib/extended-header-writer.js +0 -191
  838. package/node_modules/tar/lib/extended-header.js +0 -140
  839. package/node_modules/tar/lib/global-header-writer.js +0 -14
  840. package/node_modules/tar/tar.js +0 -173
  841. package/node_modules/tar/test/00-setup-fixtures.js +0 -53
  842. package/node_modules/tar/test/cb-never-called-1.0.1.tgz +0 -0
  843. package/node_modules/tar/test/dir-normalization.js +0 -177
  844. package/node_modules/tar/test/dir-normalization.tar +0 -0
  845. package/node_modules/tar/test/error-on-broken.js +0 -33
  846. package/node_modules/tar/test/extract-move.js +0 -132
  847. package/node_modules/tar/test/extract.js +0 -367
  848. package/node_modules/tar/test/fixtures.tgz +0 -0
  849. package/node_modules/tar/test/header.js +0 -183
  850. package/node_modules/tar/test/pack-no-proprietary.js +0 -886
  851. package/node_modules/tar/test/pack.js +0 -952
  852. package/node_modules/tar/test/parse-discard.js +0 -29
  853. package/node_modules/tar/test/parse.js +0 -359
  854. package/node_modules/tar/test/zz-cleanup.js +0 -20
  855. package/node_modules/tar-pack/.npmignore +0 -14
  856. package/node_modules/tar-pack/.travis.yml +0 -7
  857. package/node_modules/tar-pack/LICENSE +0 -23
  858. package/node_modules/tar-pack/README.md +0 -84
  859. package/node_modules/tar-pack/index.js +0 -245
  860. package/node_modules/tar-pack/package.json +0 -58
  861. package/node_modules/tar-pack/test/fixtures/packed-file.txt +0 -1
  862. package/node_modules/tar-pack/test/fixtures/packed.tar +0 -0
  863. package/node_modules/tar-pack/test/fixtures/packed.tar.gz +0 -0
  864. package/node_modules/tar-pack/test/fixtures/to-pack/bar.txt +0 -1
  865. package/node_modules/tar-pack/test/fixtures/to-pack/foo.txt +0 -1
  866. package/node_modules/tar-pack/test/index.js +0 -109
  867. package/node_modules/tough-cookie/LICENSE +0 -27
  868. package/node_modules/tough-cookie/README.md +0 -506
  869. package/node_modules/tough-cookie/lib/cookie.js +0 -1336
  870. package/node_modules/tough-cookie/lib/memstore.js +0 -170
  871. package/node_modules/tough-cookie/lib/pathMatch.js +0 -61
  872. package/node_modules/tough-cookie/lib/permuteDomain.js +0 -56
  873. package/node_modules/tough-cookie/lib/pubsuffix.js +0 -98
  874. package/node_modules/tough-cookie/lib/store.js +0 -71
  875. package/node_modules/tough-cookie/package.json +0 -93
  876. package/node_modules/tunnel-agent/LICENSE +0 -55
  877. package/node_modules/tunnel-agent/README.md +0 -4
  878. package/node_modules/tunnel-agent/index.js +0 -244
  879. package/node_modules/tunnel-agent/package.json +0 -56
  880. package/node_modules/tweetnacl/.npmignore +0 -4
  881. package/node_modules/tweetnacl/AUTHORS.md +0 -28
  882. package/node_modules/tweetnacl/CHANGELOG.md +0 -221
  883. package/node_modules/tweetnacl/LICENSE +0 -24
  884. package/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md +0 -20
  885. package/node_modules/tweetnacl/README.md +0 -459
  886. package/node_modules/tweetnacl/nacl-fast.js +0 -2388
  887. package/node_modules/tweetnacl/nacl-fast.min.js +0 -2
  888. package/node_modules/tweetnacl/nacl.d.ts +0 -98
  889. package/node_modules/tweetnacl/nacl.js +0 -1175
  890. package/node_modules/tweetnacl/nacl.min.js +0 -1
  891. package/node_modules/tweetnacl/package.json +0 -87
  892. package/node_modules/uid-number/LICENSE +0 -15
  893. package/node_modules/uid-number/README.md +0 -17
  894. package/node_modules/uid-number/get-uid-gid.js +0 -24
  895. package/node_modules/uid-number/package.json +0 -52
  896. package/node_modules/uid-number/uid-number.js +0 -59
  897. package/node_modules/uuid/.npmignore +0 -8
  898. package/node_modules/uuid/.travis.yml +0 -5
  899. package/node_modules/uuid/AUTHORS +0 -5
  900. package/node_modules/uuid/HISTORY.md +0 -28
  901. package/node_modules/uuid/LICENSE.md +0 -21
  902. package/node_modules/uuid/README.md +0 -132
  903. package/node_modules/uuid/bin/uuid +0 -26
  904. package/node_modules/uuid/index.js +0 -8
  905. package/node_modules/uuid/lib/bytesToUuid.js +0 -23
  906. package/node_modules/uuid/lib/rng-browser.js +0 -33
  907. package/node_modules/uuid/lib/rng.js +0 -10
  908. package/node_modules/uuid/package.json +0 -79
  909. package/node_modules/uuid/test/mocha.opts +0 -3
  910. package/node_modules/uuid/test/test.js +0 -96
  911. package/node_modules/uuid/v1.js +0 -103
  912. package/node_modules/uuid/v4.js +0 -29
  913. package/node_modules/verror/.gitmodules +0 -0
  914. package/node_modules/verror/.npmignore +0 -1
  915. package/node_modules/verror/LICENSE +0 -19
  916. package/node_modules/verror/Makefile +0 -35
  917. package/node_modules/verror/Makefile.targ +0 -285
  918. package/node_modules/verror/README.md +0 -120
  919. package/node_modules/verror/examples/levels-verror.js +0 -36
  920. package/node_modules/verror/examples/levels-werror.js +0 -34
  921. package/node_modules/verror/examples/varargs.js +0 -6
  922. package/node_modules/verror/examples/verror.js +0 -13
  923. package/node_modules/verror/examples/werror.js +0 -14
  924. package/node_modules/verror/jsl.node.conf +0 -139
  925. package/node_modules/verror/lib/verror.js +0 -157
  926. package/node_modules/verror/package.json +0 -49
  927. package/node_modules/verror/tests/tst.inherit.js +0 -100
  928. package/node_modules/verror/tests/tst.verror.js +0 -156
  929. 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
- });