fsevents 1.2.0 → 1.2.2

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

Potentially problematic release.


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

Files changed (954) hide show
  1. package/node_modules/abbrev/LICENSE +31 -0
  2. package/node_modules/abbrev/package.json +18 -18
  3. package/node_modules/ansi-regex/package.json +13 -14
  4. package/node_modules/aproba/README.md +16 -11
  5. package/node_modules/aproba/index.js +11 -9
  6. package/node_modules/aproba/package.json +19 -20
  7. package/node_modules/are-we-there-yet/package.json +13 -14
  8. package/node_modules/balanced-match/index.js +1 -0
  9. package/node_modules/balanced-match/package.json +19 -18
  10. package/node_modules/{asynckit → brace-expansion}/LICENSE +2 -2
  11. package/node_modules/brace-expansion/README.md +7 -1
  12. package/node_modules/brace-expansion/package.json +18 -19
  13. package/node_modules/{block-stream → chownr}/LICENSE +0 -0
  14. package/node_modules/chownr/README.md +3 -0
  15. package/node_modules/chownr/chownr.js +52 -0
  16. package/node_modules/chownr/package.json +56 -0
  17. package/node_modules/code-point-at/package.json +13 -14
  18. package/node_modules/concat-map/package.json +8 -9
  19. package/node_modules/console-control-strings/package.json +14 -14
  20. package/node_modules/core-util-is/package.json +13 -14
  21. package/node_modules/debug/CHANGELOG.md +5 -0
  22. package/node_modules/debug/component.json +1 -1
  23. package/node_modules/debug/package.json +17 -18
  24. package/node_modules/debug/src/inspector-log.js +15 -0
  25. package/node_modules/debug/src/node.js +3 -1
  26. package/node_modules/deep-extend/package.json +13 -14
  27. package/node_modules/delegates/package.json +13 -14
  28. package/node_modules/detect-libc/lib/detect-libc.js +21 -14
  29. package/node_modules/detect-libc/package.json +17 -18
  30. package/node_modules/{fstream-ignore → fs-minipass}/LICENSE +0 -0
  31. package/node_modules/fs-minipass/README.md +70 -0
  32. package/node_modules/fs-minipass/index.js +386 -0
  33. package/node_modules/fs-minipass/package.json +62 -0
  34. package/node_modules/fs.realpath/package.json +13 -14
  35. package/node_modules/gauge/package.json +13 -14
  36. package/node_modules/glob/package.json +13 -14
  37. package/node_modules/has-unicode/package.json +13 -14
  38. package/node_modules/iconv-lite/.travis.yml +23 -0
  39. package/node_modules/iconv-lite/Changelog.md +146 -0
  40. package/node_modules/{punycode/LICENSE-MIT.txt → iconv-lite/LICENSE} +2 -1
  41. package/node_modules/iconv-lite/README.md +156 -0
  42. package/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
  43. package/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  44. package/node_modules/iconv-lite/encodings/index.js +22 -0
  45. package/node_modules/iconv-lite/encodings/internal.js +188 -0
  46. package/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  47. package/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  48. package/node_modules/iconv-lite/encodings/sbcs-data.js +169 -0
  49. package/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  50. package/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  51. package/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  52. package/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  53. package/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  54. package/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  55. package/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  56. package/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  57. package/node_modules/iconv-lite/encodings/utf16.js +177 -0
  58. package/node_modules/iconv-lite/encodings/utf7.js +290 -0
  59. package/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  60. package/node_modules/iconv-lite/lib/extend-node.js +217 -0
  61. package/node_modules/iconv-lite/lib/index.d.ts +24 -0
  62. package/node_modules/iconv-lite/lib/index.js +153 -0
  63. package/node_modules/iconv-lite/lib/streams.js +121 -0
  64. package/node_modules/iconv-lite/package.json +76 -0
  65. package/node_modules/{fstream → ignore-walk}/LICENSE +0 -0
  66. package/node_modules/ignore-walk/README.md +60 -0
  67. package/node_modules/ignore-walk/index.js +265 -0
  68. package/node_modules/ignore-walk/package.json +71 -0
  69. package/node_modules/inflight/package.json +13 -14
  70. package/node_modules/inherits/package.json +16 -14
  71. package/node_modules/ini/ini.js +66 -62
  72. package/node_modules/ini/package.json +24 -20
  73. package/node_modules/is-fullwidth-code-point/package.json +13 -14
  74. package/node_modules/isarray/package.json +13 -14
  75. package/node_modules/minimatch/package.json +14 -14
  76. package/node_modules/minimist/package.json +8 -9
  77. package/node_modules/minipass/README.md +46 -0
  78. package/node_modules/minipass/index.js +304 -0
  79. package/node_modules/minipass/package.json +69 -0
  80. package/node_modules/minizlib/LICENSE +26 -0
  81. package/node_modules/minizlib/README.md +44 -0
  82. package/node_modules/minizlib/constants.js +46 -0
  83. package/node_modules/minizlib/index.js +364 -0
  84. package/node_modules/minizlib/package.json +71 -0
  85. package/node_modules/mkdirp/package.json +15 -14
  86. package/node_modules/ms/package.json +8 -9
  87. package/node_modules/needle/README.md +593 -0
  88. package/node_modules/needle/bin/needle +40 -0
  89. package/node_modules/needle/examples/deflated-stream.js +22 -0
  90. package/node_modules/needle/examples/digest-auth.js +16 -0
  91. package/node_modules/needle/examples/download-to-file.js +18 -0
  92. package/node_modules/needle/examples/multipart-stream.js +25 -0
  93. package/node_modules/needle/examples/parsed-stream.js +23 -0
  94. package/node_modules/needle/examples/parsed-stream2.js +21 -0
  95. package/node_modules/needle/examples/stream-events.js +23 -0
  96. package/node_modules/needle/examples/stream-to-file.js +14 -0
  97. package/node_modules/needle/examples/upload-image.js +51 -0
  98. package/node_modules/needle/lib/auth.js +110 -0
  99. package/node_modules/needle/lib/cookies.js +77 -0
  100. package/node_modules/needle/lib/decoder.js +53 -0
  101. package/node_modules/needle/lib/multipart.js +98 -0
  102. package/node_modules/needle/lib/needle.js +783 -0
  103. package/node_modules/needle/lib/parsers.js +120 -0
  104. package/node_modules/needle/lib/querystring.js +49 -0
  105. package/node_modules/{delayed-stream/License → needle/license.txt} +2 -2
  106. package/node_modules/needle/package.json +102 -0
  107. package/node_modules/needle/test/basic_auth_spec.js +196 -0
  108. package/node_modules/needle/test/compression_spec.js +94 -0
  109. package/node_modules/needle/test/cookies_spec.js +305 -0
  110. package/node_modules/needle/test/decoder_spec.js +86 -0
  111. package/node_modules/needle/test/errors_spec.js +286 -0
  112. package/node_modules/needle/test/headers_spec.js +198 -0
  113. package/node_modules/needle/test/helpers.js +72 -0
  114. package/node_modules/needle/test/long_string_spec.js +34 -0
  115. package/node_modules/needle/test/output_spec.js +254 -0
  116. package/node_modules/needle/test/parsing_spec.js +494 -0
  117. package/node_modules/needle/test/post_data_spec.js +1021 -0
  118. package/node_modules/needle/test/proxy_spec.js +202 -0
  119. package/node_modules/needle/test/querystring_spec.js +128 -0
  120. package/node_modules/needle/test/redirect_spec.js +392 -0
  121. package/node_modules/needle/test/redirect_with_timeout.js +45 -0
  122. package/node_modules/needle/test/request_stream_spec.js +202 -0
  123. package/node_modules/needle/test/response_stream_spec.js +139 -0
  124. package/node_modules/needle/test/socket_pool_spec.js +66 -0
  125. package/node_modules/needle/test/url_spec.js +147 -0
  126. package/node_modules/needle/test/utils/formidable.js +17 -0
  127. package/node_modules/needle/test/utils/proxy.js +62 -0
  128. package/node_modules/needle/test/utils/test.js +104 -0
  129. package/node_modules/node-pre-gyp/CHANGELOG.md +25 -0
  130. package/node_modules/node-pre-gyp/README.md +83 -8
  131. package/node_modules/node-pre-gyp/appveyor.yml +4 -13
  132. package/node_modules/node-pre-gyp/lib/build.js +8 -0
  133. package/node_modules/node-pre-gyp/lib/clean.js +17 -8
  134. package/node_modules/node-pre-gyp/lib/configure.js +4 -0
  135. package/node_modules/node-pre-gyp/lib/install.js +58 -34
  136. package/node_modules/node-pre-gyp/lib/node-pre-gyp.js +9 -0
  137. package/node_modules/node-pre-gyp/lib/package.js +20 -13
  138. package/node_modules/node-pre-gyp/lib/pre-binding.js +6 -1
  139. package/node_modules/node-pre-gyp/lib/publish.js +3 -1
  140. package/node_modules/node-pre-gyp/lib/rebuild.js +12 -4
  141. package/node_modules/node-pre-gyp/lib/reinstall.js +8 -1
  142. package/node_modules/node-pre-gyp/lib/reveal.js +4 -2
  143. package/node_modules/node-pre-gyp/lib/testbinary.js +3 -1
  144. package/node_modules/node-pre-gyp/lib/testpackage.js +22 -16
  145. package/node_modules/node-pre-gyp/lib/unpublish.js +3 -1
  146. package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +104 -0
  147. package/node_modules/node-pre-gyp/lib/util/handle_gyp_opts.js +8 -2
  148. package/node_modules/node-pre-gyp/lib/util/napi.js +156 -0
  149. package/node_modules/node-pre-gyp/lib/util/versioning.js +7 -2
  150. package/node_modules/node-pre-gyp/package.json +19 -22
  151. package/node_modules/nopt/package.json +13 -14
  152. package/node_modules/npm-bundled/README.md +46 -0
  153. package/node_modules/npm-bundled/index.js +227 -0
  154. package/node_modules/npm-bundled/package.json +60 -0
  155. package/node_modules/{json-stringify-safe → npm-packlist}/LICENSE +0 -0
  156. package/node_modules/npm-packlist/README.md +68 -0
  157. package/node_modules/npm-packlist/index.js +220 -0
  158. package/node_modules/npm-packlist/package.json +66 -0
  159. package/node_modules/npmlog/log.js +6 -1
  160. package/node_modules/npmlog/package.json +17 -18
  161. package/node_modules/number-is-nan/package.json +13 -14
  162. package/node_modules/object-assign/package.json +13 -14
  163. package/node_modules/once/package.json +14 -14
  164. package/node_modules/os-homedir/package.json +13 -14
  165. package/node_modules/os-tmpdir/package.json +13 -14
  166. package/node_modules/osenv/package.json +24 -19
  167. package/node_modules/path-is-absolute/package.json +13 -14
  168. package/node_modules/process-nextick-args/index.js +3 -2
  169. package/node_modules/process-nextick-args/package.json +20 -18
  170. package/node_modules/process-nextick-args/readme.md +2 -2
  171. package/node_modules/rc/README.md +80 -2
  172. package/node_modules/rc/cli.js +4 -0
  173. package/node_modules/rc/index.js +0 -7
  174. package/node_modules/rc/node_modules/minimist/package.json +13 -14
  175. package/node_modules/rc/package.json +19 -20
  176. package/node_modules/readable-stream/.travis.yml +26 -20
  177. package/node_modules/readable-stream/README.md +3 -2
  178. package/node_modules/readable-stream/lib/_stream_duplex.js +69 -13
  179. package/node_modules/readable-stream/lib/_stream_passthrough.js +21 -0
  180. package/node_modules/readable-stream/lib/_stream_readable.js +194 -110
  181. package/node_modules/readable-stream/lib/_stream_transform.js +64 -32
  182. package/node_modules/readable-stream/lib/_stream_writable.js +198 -55
  183. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +68 -53
  184. package/node_modules/readable-stream/lib/internal/streams/destroy.js +74 -0
  185. package/node_modules/readable-stream/package.json +27 -30
  186. package/node_modules/readable-stream/writable.js +2 -2
  187. package/node_modules/rimraf/package.json +17 -18
  188. package/node_modules/rimraf/rimraf.js +3 -2
  189. package/node_modules/safe-buffer/README.md +12 -9
  190. package/node_modules/safe-buffer/index.js +10 -6
  191. package/node_modules/safe-buffer/package.json +21 -20
  192. package/node_modules/safe-buffer/test.js +2 -0
  193. package/node_modules/{ajv → safer-buffer}/LICENSE +2 -3
  194. package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  195. package/node_modules/safer-buffer/Readme.md +156 -0
  196. package/node_modules/safer-buffer/dangerous.js +58 -0
  197. package/node_modules/safer-buffer/package.json +60 -0
  198. package/node_modules/safer-buffer/safer.js +77 -0
  199. package/node_modules/safer-buffer/tests.js +406 -0
  200. package/node_modules/sax/LICENSE +41 -0
  201. package/node_modules/sax/README.md +225 -0
  202. package/node_modules/sax/lib/sax.js +1565 -0
  203. package/node_modules/sax/package.json +61 -0
  204. package/node_modules/semver/README.md +75 -37
  205. package/node_modules/semver/bin/semver +12 -2
  206. package/node_modules/semver/package.json +19 -20
  207. package/node_modules/semver/range.bnf +2 -2
  208. package/node_modules/semver/semver.js +134 -13
  209. package/node_modules/set-blocking/package.json +13 -14
  210. package/node_modules/signal-exit/package.json +13 -14
  211. package/node_modules/string-width/package.json +14 -14
  212. package/node_modules/string_decoder/.travis.yml +50 -0
  213. package/node_modules/string_decoder/README.md +22 -3
  214. package/node_modules/string_decoder/lib/string_decoder.js +35 -11
  215. package/node_modules/string_decoder/package.json +25 -23
  216. package/node_modules/strip-ansi/package.json +14 -14
  217. package/node_modules/strip-json-comments/package.json +13 -14
  218. package/node_modules/tar/LICENSE +3 -0
  219. package/node_modules/tar/README.md +929 -30
  220. package/node_modules/tar/index.js +18 -0
  221. package/node_modules/tar/lib/buffer.js +11 -0
  222. package/node_modules/tar/lib/create.js +105 -0
  223. package/node_modules/tar/lib/extract.js +97 -79
  224. package/node_modules/tar/lib/header.js +236 -348
  225. package/node_modules/tar/lib/high-level-opt.js +29 -0
  226. package/node_modules/tar/lib/large-numbers.js +92 -0
  227. package/node_modules/tar/lib/list.js +130 -0
  228. package/node_modules/tar/lib/mkdir.js +206 -0
  229. package/node_modules/tar/lib/pack.js +354 -187
  230. package/node_modules/tar/lib/parse.js +393 -246
  231. package/node_modules/tar/lib/pax.js +146 -0
  232. package/node_modules/tar/lib/read-entry.js +94 -0
  233. package/node_modules/tar/lib/replace.js +220 -0
  234. package/node_modules/tar/lib/types.js +44 -0
  235. package/node_modules/tar/lib/unpack.js +560 -0
  236. package/node_modules/tar/lib/update.js +36 -0
  237. package/node_modules/tar/lib/warn-mixin.js +14 -0
  238. package/node_modules/tar/lib/winchars.js +23 -0
  239. package/node_modules/tar/lib/write-entry.js +403 -0
  240. package/node_modules/tar/package.json +48 -30
  241. package/node_modules/util-deprecate/package.json +13 -14
  242. package/node_modules/wide-align/package.json +13 -14
  243. package/node_modules/wrappy/package.json +14 -14
  244. package/node_modules/yallist/LICENSE +15 -0
  245. package/node_modules/yallist/README.md +204 -0
  246. package/node_modules/yallist/iterator.js +8 -0
  247. package/node_modules/yallist/package.json +63 -0
  248. package/node_modules/yallist/yallist.js +376 -0
  249. package/package.json +1 -1
  250. package/node_modules/ajv/.tonic_example.js +0 -20
  251. package/node_modules/ajv/README.md +0 -1213
  252. package/node_modules/ajv/dist/ajv.bundle.js +0 -8023
  253. package/node_modules/ajv/dist/ajv.min.js +0 -6
  254. package/node_modules/ajv/dist/ajv.min.js.map +0 -1
  255. package/node_modules/ajv/dist/nodent.min.js +0 -8
  256. package/node_modules/ajv/dist/regenerator.min.js +0 -32
  257. package/node_modules/ajv/lib/ajv.d.ts +0 -284
  258. package/node_modules/ajv/lib/ajv.js +0 -420
  259. package/node_modules/ajv/lib/async.js +0 -218
  260. package/node_modules/ajv/lib/cache.js +0 -26
  261. package/node_modules/ajv/lib/compile/_rules.js +0 -28
  262. package/node_modules/ajv/lib/compile/equal.js +0 -45
  263. package/node_modules/ajv/lib/compile/formats.js +0 -164
  264. package/node_modules/ajv/lib/compile/index.js +0 -390
  265. package/node_modules/ajv/lib/compile/resolve.js +0 -267
  266. package/node_modules/ajv/lib/compile/rules.js +0 -40
  267. package/node_modules/ajv/lib/compile/schema_obj.js +0 -9
  268. package/node_modules/ajv/lib/compile/ucs2length.js +0 -20
  269. package/node_modules/ajv/lib/compile/util.js +0 -257
  270. package/node_modules/ajv/lib/compile/validation_error.js +0 -14
  271. package/node_modules/ajv/lib/dot/_limit.jst +0 -49
  272. package/node_modules/ajv/lib/dot/_limitItems.jst +0 -10
  273. package/node_modules/ajv/lib/dot/_limitLength.jst +0 -10
  274. package/node_modules/ajv/lib/dot/_limitProperties.jst +0 -10
  275. package/node_modules/ajv/lib/dot/allOf.jst +0 -34
  276. package/node_modules/ajv/lib/dot/anyOf.jst +0 -48
  277. package/node_modules/ajv/lib/dot/coerce.def +0 -61
  278. package/node_modules/ajv/lib/dot/custom.jst +0 -184
  279. package/node_modules/ajv/lib/dot/defaults.def +0 -32
  280. package/node_modules/ajv/lib/dot/definitions.def +0 -182
  281. package/node_modules/ajv/lib/dot/dependencies.jst +0 -69
  282. package/node_modules/ajv/lib/dot/enum.jst +0 -30
  283. package/node_modules/ajv/lib/dot/errors.def +0 -185
  284. package/node_modules/ajv/lib/dot/format.jst +0 -100
  285. package/node_modules/ajv/lib/dot/items.jst +0 -101
  286. package/node_modules/ajv/lib/dot/missing.def +0 -34
  287. package/node_modules/ajv/lib/dot/multipleOf.jst +0 -20
  288. package/node_modules/ajv/lib/dot/not.jst +0 -43
  289. package/node_modules/ajv/lib/dot/oneOf.jst +0 -44
  290. package/node_modules/ajv/lib/dot/pattern.jst +0 -14
  291. package/node_modules/ajv/lib/dot/properties.jst +0 -319
  292. package/node_modules/ajv/lib/dot/ref.jst +0 -86
  293. package/node_modules/ajv/lib/dot/required.jst +0 -96
  294. package/node_modules/ajv/lib/dot/uniqueItems.jst +0 -38
  295. package/node_modules/ajv/lib/dot/v5/_formatLimit.jst +0 -116
  296. package/node_modules/ajv/lib/dot/v5/constant.jst +0 -10
  297. package/node_modules/ajv/lib/dot/v5/patternRequired.jst +0 -28
  298. package/node_modules/ajv/lib/dot/v5/switch.jst +0 -73
  299. package/node_modules/ajv/lib/dot/validate.jst +0 -210
  300. package/node_modules/ajv/lib/dotjs/README.md +0 -3
  301. package/node_modules/ajv/lib/dotjs/_formatLimit.js +0 -176
  302. package/node_modules/ajv/lib/dotjs/_limit.js +0 -124
  303. package/node_modules/ajv/lib/dotjs/_limitItems.js +0 -76
  304. package/node_modules/ajv/lib/dotjs/_limitLength.js +0 -81
  305. package/node_modules/ajv/lib/dotjs/_limitProperties.js +0 -76
  306. package/node_modules/ajv/lib/dotjs/allOf.js +0 -43
  307. package/node_modules/ajv/lib/dotjs/anyOf.js +0 -65
  308. package/node_modules/ajv/lib/dotjs/constant.js +0 -52
  309. package/node_modules/ajv/lib/dotjs/custom.js +0 -220
  310. package/node_modules/ajv/lib/dotjs/dependencies.js +0 -147
  311. package/node_modules/ajv/lib/dotjs/enum.js +0 -65
  312. package/node_modules/ajv/lib/dotjs/format.js +0 -138
  313. package/node_modules/ajv/lib/dotjs/items.js +0 -144
  314. package/node_modules/ajv/lib/dotjs/multipleOf.js +0 -76
  315. package/node_modules/ajv/lib/dotjs/not.js +0 -83
  316. package/node_modules/ajv/lib/dotjs/oneOf.js +0 -76
  317. package/node_modules/ajv/lib/dotjs/pattern.js +0 -74
  318. package/node_modules/ajv/lib/dotjs/patternRequired.js +0 -51
  319. package/node_modules/ajv/lib/dotjs/properties.js +0 -445
  320. package/node_modules/ajv/lib/dotjs/ref.js +0 -119
  321. package/node_modules/ajv/lib/dotjs/required.js +0 -249
  322. package/node_modules/ajv/lib/dotjs/switch.js +0 -128
  323. package/node_modules/ajv/lib/dotjs/uniqueItems.js +0 -71
  324. package/node_modules/ajv/lib/dotjs/validate.js +0 -375
  325. package/node_modules/ajv/lib/keyword.js +0 -129
  326. package/node_modules/ajv/lib/refs/json-schema-draft-04.json +0 -150
  327. package/node_modules/ajv/lib/refs/json-schema-v5.json +0 -328
  328. package/node_modules/ajv/lib/v5.js +0 -52
  329. package/node_modules/ajv/package.json +0 -132
  330. package/node_modules/ajv/scripts/.eslintrc.yml +0 -3
  331. package/node_modules/ajv/scripts/bundle.js +0 -54
  332. package/node_modules/ajv/scripts/compile-dots.js +0 -73
  333. package/node_modules/ajv/scripts/info +0 -10
  334. package/node_modules/ajv/scripts/prepare-tests +0 -9
  335. package/node_modules/ajv/scripts/travis-gh-pages +0 -23
  336. package/node_modules/asn1/.npmignore +0 -2
  337. package/node_modules/asn1/.travis.yml +0 -4
  338. package/node_modules/asn1/LICENSE +0 -19
  339. package/node_modules/asn1/README.md +0 -50
  340. package/node_modules/asn1/lib/ber/errors.js +0 -13
  341. package/node_modules/asn1/lib/ber/index.js +0 -27
  342. package/node_modules/asn1/lib/ber/reader.js +0 -261
  343. package/node_modules/asn1/lib/ber/types.js +0 -36
  344. package/node_modules/asn1/lib/ber/writer.js +0 -316
  345. package/node_modules/asn1/lib/index.js +0 -20
  346. package/node_modules/asn1/package.json +0 -66
  347. package/node_modules/asn1/tst/ber/reader.test.js +0 -208
  348. package/node_modules/asn1/tst/ber/writer.test.js +0 -370
  349. package/node_modules/assert-plus/AUTHORS +0 -6
  350. package/node_modules/assert-plus/CHANGES.md +0 -8
  351. package/node_modules/assert-plus/README.md +0 -155
  352. package/node_modules/assert-plus/assert.js +0 -206
  353. package/node_modules/assert-plus/package.json +0 -83
  354. package/node_modules/asynckit/README.md +0 -233
  355. package/node_modules/asynckit/bench.js +0 -76
  356. package/node_modules/asynckit/index.js +0 -6
  357. package/node_modules/asynckit/lib/abort.js +0 -29
  358. package/node_modules/asynckit/lib/async.js +0 -34
  359. package/node_modules/asynckit/lib/defer.js +0 -26
  360. package/node_modules/asynckit/lib/iterate.js +0 -75
  361. package/node_modules/asynckit/lib/readable_asynckit.js +0 -91
  362. package/node_modules/asynckit/lib/readable_parallel.js +0 -25
  363. package/node_modules/asynckit/lib/readable_serial.js +0 -25
  364. package/node_modules/asynckit/lib/readable_serial_ordered.js +0 -29
  365. package/node_modules/asynckit/lib/state.js +0 -37
  366. package/node_modules/asynckit/lib/streamify.js +0 -141
  367. package/node_modules/asynckit/lib/terminator.js +0 -29
  368. package/node_modules/asynckit/package.json +0 -92
  369. package/node_modules/asynckit/parallel.js +0 -43
  370. package/node_modules/asynckit/serial.js +0 -17
  371. package/node_modules/asynckit/serialOrdered.js +0 -75
  372. package/node_modules/asynckit/stream.js +0 -21
  373. package/node_modules/aws-sign2/LICENSE +0 -55
  374. package/node_modules/aws-sign2/README.md +0 -4
  375. package/node_modules/aws-sign2/index.js +0 -212
  376. package/node_modules/aws-sign2/package.json +0 -51
  377. package/node_modules/aws4/.npmignore +0 -4
  378. package/node_modules/aws4/.tern-port +0 -1
  379. package/node_modules/aws4/.travis.yml +0 -5
  380. package/node_modules/aws4/LICENSE +0 -19
  381. package/node_modules/aws4/README.md +0 -523
  382. package/node_modules/aws4/aws4.js +0 -332
  383. package/node_modules/aws4/lru.js +0 -96
  384. package/node_modules/aws4/package.json +0 -105
  385. package/node_modules/bcrypt-pbkdf/README.md +0 -39
  386. package/node_modules/bcrypt-pbkdf/index.js +0 -556
  387. package/node_modules/bcrypt-pbkdf/package.json +0 -38
  388. package/node_modules/block-stream/LICENCE +0 -25
  389. package/node_modules/block-stream/README.md +0 -14
  390. package/node_modules/block-stream/block-stream.js +0 -209
  391. package/node_modules/block-stream/package.json +0 -61
  392. package/node_modules/boom/.npmignore +0 -18
  393. package/node_modules/boom/.travis.yml +0 -8
  394. package/node_modules/boom/CONTRIBUTING.md +0 -1
  395. package/node_modules/boom/LICENSE +0 -28
  396. package/node_modules/boom/README.md +0 -652
  397. package/node_modules/boom/images/boom.png +0 -0
  398. package/node_modules/boom/lib/index.js +0 -318
  399. package/node_modules/boom/package.json +0 -59
  400. package/node_modules/boom/test/index.js +0 -654
  401. package/node_modules/buffer-shims/index.js +0 -108
  402. package/node_modules/buffer-shims/license.md +0 -19
  403. package/node_modules/buffer-shims/package.json +0 -50
  404. package/node_modules/buffer-shims/readme.md +0 -21
  405. package/node_modules/caseless/LICENSE +0 -28
  406. package/node_modules/caseless/README.md +0 -45
  407. package/node_modules/caseless/index.js +0 -67
  408. package/node_modules/caseless/package.json +0 -57
  409. package/node_modules/caseless/test.js +0 -67
  410. package/node_modules/co/History.md +0 -172
  411. package/node_modules/co/LICENSE +0 -22
  412. package/node_modules/co/Readme.md +0 -212
  413. package/node_modules/co/index.js +0 -237
  414. package/node_modules/co/package.json +0 -67
  415. package/node_modules/combined-stream/License +0 -19
  416. package/node_modules/combined-stream/Readme.md +0 -138
  417. package/node_modules/combined-stream/lib/combined_stream.js +0 -188
  418. package/node_modules/combined-stream/package.json +0 -58
  419. package/node_modules/cryptiles/.npmignore +0 -18
  420. package/node_modules/cryptiles/.travis.yml +0 -8
  421. package/node_modules/cryptiles/LICENSE +0 -28
  422. package/node_modules/cryptiles/README.md +0 -16
  423. package/node_modules/cryptiles/lib/index.js +0 -68
  424. package/node_modules/cryptiles/package.json +0 -60
  425. package/node_modules/cryptiles/test/index.js +0 -102
  426. package/node_modules/dashdash/CHANGES.md +0 -364
  427. package/node_modules/dashdash/LICENSE.txt +0 -24
  428. package/node_modules/dashdash/README.md +0 -574
  429. package/node_modules/dashdash/etc/dashdash.bash_completion.in +0 -389
  430. package/node_modules/dashdash/lib/dashdash.js +0 -1055
  431. package/node_modules/dashdash/node_modules/assert-plus/AUTHORS +0 -6
  432. package/node_modules/dashdash/node_modules/assert-plus/CHANGES.md +0 -14
  433. package/node_modules/dashdash/node_modules/assert-plus/README.md +0 -162
  434. package/node_modules/dashdash/node_modules/assert-plus/assert.js +0 -211
  435. package/node_modules/dashdash/node_modules/assert-plus/package.json +0 -83
  436. package/node_modules/dashdash/package.json +0 -68
  437. package/node_modules/delayed-stream/.npmignore +0 -1
  438. package/node_modules/delayed-stream/Makefile +0 -7
  439. package/node_modules/delayed-stream/Readme.md +0 -141
  440. package/node_modules/delayed-stream/lib/delayed_stream.js +0 -107
  441. package/node_modules/delayed-stream/package.json +0 -63
  442. package/node_modules/ecc-jsbn/.npmignore +0 -15
  443. package/node_modules/ecc-jsbn/LICENSE +0 -21
  444. package/node_modules/ecc-jsbn/README.md +0 -8
  445. package/node_modules/ecc-jsbn/index.js +0 -57
  446. package/node_modules/ecc-jsbn/lib/LICENSE-jsbn +0 -40
  447. package/node_modules/ecc-jsbn/lib/ec.js +0 -561
  448. package/node_modules/ecc-jsbn/lib/sec.js +0 -170
  449. package/node_modules/ecc-jsbn/package.json +0 -66
  450. package/node_modules/ecc-jsbn/test.js +0 -14
  451. package/node_modules/extend/.eslintrc +0 -17
  452. package/node_modules/extend/.jscs.json +0 -175
  453. package/node_modules/extend/.npmignore +0 -1
  454. package/node_modules/extend/.travis.yml +0 -179
  455. package/node_modules/extend/CHANGELOG.md +0 -77
  456. package/node_modules/extend/LICENSE +0 -23
  457. package/node_modules/extend/README.md +0 -81
  458. package/node_modules/extend/component.json +0 -32
  459. package/node_modules/extend/index.js +0 -86
  460. package/node_modules/extend/package.json +0 -76
  461. package/node_modules/extsprintf/.gitmodules +0 -6
  462. package/node_modules/extsprintf/LICENSE +0 -19
  463. package/node_modules/extsprintf/Makefile +0 -23
  464. package/node_modules/extsprintf/Makefile.deps +0 -39
  465. package/node_modules/extsprintf/Makefile.targ +0 -285
  466. package/node_modules/extsprintf/README.md +0 -39
  467. package/node_modules/extsprintf/examples/simple.js +0 -2
  468. package/node_modules/extsprintf/jsl.node.conf +0 -137
  469. package/node_modules/extsprintf/lib/extsprintf.js +0 -166
  470. package/node_modules/extsprintf/package.json +0 -43
  471. package/node_modules/forever-agent/LICENSE +0 -55
  472. package/node_modules/forever-agent/README.md +0 -4
  473. package/node_modules/forever-agent/index.js +0 -138
  474. package/node_modules/forever-agent/package.json +0 -51
  475. package/node_modules/form-data/License +0 -19
  476. package/node_modules/form-data/README.md +0 -217
  477. package/node_modules/form-data/lib/browser.js +0 -2
  478. package/node_modules/form-data/lib/form_data.js +0 -444
  479. package/node_modules/form-data/lib/populate.js +0 -10
  480. package/node_modules/form-data/package.json +0 -99
  481. package/node_modules/fstream/.npmignore +0 -5
  482. package/node_modules/fstream/.travis.yml +0 -9
  483. package/node_modules/fstream/README.md +0 -76
  484. package/node_modules/fstream/examples/filter-pipe.js +0 -134
  485. package/node_modules/fstream/examples/pipe.js +0 -118
  486. package/node_modules/fstream/examples/reader.js +0 -68
  487. package/node_modules/fstream/examples/symlink-write.js +0 -27
  488. package/node_modules/fstream/fstream.js +0 -35
  489. package/node_modules/fstream/lib/abstract.js +0 -85
  490. package/node_modules/fstream/lib/collect.js +0 -70
  491. package/node_modules/fstream/lib/dir-reader.js +0 -252
  492. package/node_modules/fstream/lib/dir-writer.js +0 -174
  493. package/node_modules/fstream/lib/file-reader.js +0 -150
  494. package/node_modules/fstream/lib/file-writer.js +0 -107
  495. package/node_modules/fstream/lib/get-type.js +0 -33
  496. package/node_modules/fstream/lib/link-reader.js +0 -53
  497. package/node_modules/fstream/lib/link-writer.js +0 -95
  498. package/node_modules/fstream/lib/proxy-reader.js +0 -95
  499. package/node_modules/fstream/lib/proxy-writer.js +0 -111
  500. package/node_modules/fstream/lib/reader.js +0 -255
  501. package/node_modules/fstream/lib/socket-reader.js +0 -36
  502. package/node_modules/fstream/lib/writer.js +0 -390
  503. package/node_modules/fstream/package.json +0 -62
  504. package/node_modules/fstream-ignore/README.md +0 -22
  505. package/node_modules/fstream-ignore/ignore.js +0 -275
  506. package/node_modules/fstream-ignore/package.json +0 -62
  507. package/node_modules/getpass/.npmignore +0 -8
  508. package/node_modules/getpass/.travis.yml +0 -9
  509. package/node_modules/getpass/LICENSE +0 -18
  510. package/node_modules/getpass/README.md +0 -32
  511. package/node_modules/getpass/lib/index.js +0 -123
  512. package/node_modules/getpass/node_modules/assert-plus/AUTHORS +0 -6
  513. package/node_modules/getpass/node_modules/assert-plus/CHANGES.md +0 -14
  514. package/node_modules/getpass/node_modules/assert-plus/README.md +0 -162
  515. package/node_modules/getpass/node_modules/assert-plus/assert.js +0 -211
  516. package/node_modules/getpass/node_modules/assert-plus/package.json +0 -83
  517. package/node_modules/getpass/package.json +0 -51
  518. package/node_modules/graceful-fs/LICENSE +0 -15
  519. package/node_modules/graceful-fs/README.md +0 -133
  520. package/node_modules/graceful-fs/fs.js +0 -21
  521. package/node_modules/graceful-fs/graceful-fs.js +0 -262
  522. package/node_modules/graceful-fs/legacy-streams.js +0 -118
  523. package/node_modules/graceful-fs/package.json +0 -77
  524. package/node_modules/graceful-fs/polyfills.js +0 -330
  525. package/node_modules/har-schema/LICENSE +0 -13
  526. package/node_modules/har-schema/README.md +0 -49
  527. package/node_modules/har-schema/lib/afterRequest.json +0 -29
  528. package/node_modules/har-schema/lib/beforeRequest.json +0 -29
  529. package/node_modules/har-schema/lib/browser.json +0 -19
  530. package/node_modules/har-schema/lib/cache.json +0 -20
  531. package/node_modules/har-schema/lib/content.json +0 -28
  532. package/node_modules/har-schema/lib/cookie.json +0 -35
  533. package/node_modules/har-schema/lib/creator.json +0 -19
  534. package/node_modules/har-schema/lib/entry.json +0 -52
  535. package/node_modules/har-schema/lib/har.json +0 -12
  536. package/node_modules/har-schema/lib/header.json +0 -19
  537. package/node_modules/har-schema/lib/index.js +0 -22
  538. package/node_modules/har-schema/lib/log.json +0 -35
  539. package/node_modules/har-schema/lib/page.json +0 -31
  540. package/node_modules/har-schema/lib/pageTimings.json +0 -17
  541. package/node_modules/har-schema/lib/postData.json +0 -42
  542. package/node_modules/har-schema/lib/query.json +0 -19
  543. package/node_modules/har-schema/lib/request.json +0 -56
  544. package/node_modules/har-schema/lib/response.json +0 -53
  545. package/node_modules/har-schema/lib/timings.json +0 -41
  546. package/node_modules/har-schema/package.json +0 -87
  547. package/node_modules/har-validator/LICENSE +0 -13
  548. package/node_modules/har-validator/README.md +0 -75
  549. package/node_modules/har-validator/lib/browser/async.js +0 -96
  550. package/node_modules/har-validator/lib/browser/error.js +0 -15
  551. package/node_modules/har-validator/lib/browser/promise.js +0 -93
  552. package/node_modules/har-validator/lib/node4/async.js +0 -136
  553. package/node_modules/har-validator/lib/node4/error.js +0 -22
  554. package/node_modules/har-validator/lib/node4/promise.js +0 -132
  555. package/node_modules/har-validator/lib/node6/async.js +0 -133
  556. package/node_modules/har-validator/lib/node6/error.js +0 -22
  557. package/node_modules/har-validator/lib/node6/promise.js +0 -130
  558. package/node_modules/har-validator/lib/node7/async.js +0 -133
  559. package/node_modules/har-validator/lib/node7/error.js +0 -22
  560. package/node_modules/har-validator/lib/node7/promise.js +0 -130
  561. package/node_modules/har-validator/package.json +0 -102
  562. package/node_modules/har-validator/src/async.js +0 -96
  563. package/node_modules/har-validator/src/error.js +0 -15
  564. package/node_modules/har-validator/src/promise.js +0 -93
  565. package/node_modules/hawk/.npmignore +0 -20
  566. package/node_modules/hawk/.travis.yml +0 -5
  567. package/node_modules/hawk/LICENSE +0 -28
  568. package/node_modules/hawk/README.md +0 -634
  569. package/node_modules/hawk/bower.json +0 -24
  570. package/node_modules/hawk/component.json +0 -19
  571. package/node_modules/hawk/dist/client.js +0 -343
  572. package/node_modules/hawk/example/usage.js +0 -78
  573. package/node_modules/hawk/images/hawk.png +0 -0
  574. package/node_modules/hawk/images/logo.png +0 -0
  575. package/node_modules/hawk/lib/browser.js +0 -637
  576. package/node_modules/hawk/lib/client.js +0 -369
  577. package/node_modules/hawk/lib/crypto.js +0 -126
  578. package/node_modules/hawk/lib/index.js +0 -15
  579. package/node_modules/hawk/lib/server.js +0 -548
  580. package/node_modules/hawk/lib/utils.js +0 -184
  581. package/node_modules/hawk/package.json +0 -71
  582. package/node_modules/hawk/test/browser.js +0 -1492
  583. package/node_modules/hawk/test/client.js +0 -440
  584. package/node_modules/hawk/test/crypto.js +0 -70
  585. package/node_modules/hawk/test/index.js +0 -378
  586. package/node_modules/hawk/test/readme.js +0 -95
  587. package/node_modules/hawk/test/server.js +0 -1329
  588. package/node_modules/hawk/test/uri.js +0 -838
  589. package/node_modules/hawk/test/utils.js +0 -149
  590. package/node_modules/hoek/.npmignore +0 -18
  591. package/node_modules/hoek/.travis.yml +0 -7
  592. package/node_modules/hoek/CONTRIBUTING.md +0 -1
  593. package/node_modules/hoek/LICENSE +0 -31
  594. package/node_modules/hoek/README.md +0 -584
  595. package/node_modules/hoek/images/hoek.png +0 -0
  596. package/node_modules/hoek/lib/escape.js +0 -132
  597. package/node_modules/hoek/lib/index.js +0 -993
  598. package/node_modules/hoek/package.json +0 -56
  599. package/node_modules/hoek/test/escaper.js +0 -88
  600. package/node_modules/hoek/test/index.js +0 -2513
  601. package/node_modules/hoek/test/modules/ignore.txt +0 -0
  602. package/node_modules/hoek/test/modules/test1.js +0 -1
  603. package/node_modules/hoek/test/modules/test2.js +0 -1
  604. package/node_modules/hoek/test/modules/test3.js +0 -1
  605. package/node_modules/http-signature/.dir-locals.el +0 -6
  606. package/node_modules/http-signature/.npmignore +0 -7
  607. package/node_modules/http-signature/CHANGES.md +0 -46
  608. package/node_modules/http-signature/LICENSE +0 -18
  609. package/node_modules/http-signature/README.md +0 -79
  610. package/node_modules/http-signature/http_signing.md +0 -363
  611. package/node_modules/http-signature/lib/index.js +0 -29
  612. package/node_modules/http-signature/lib/parser.js +0 -318
  613. package/node_modules/http-signature/lib/signer.js +0 -399
  614. package/node_modules/http-signature/lib/utils.js +0 -112
  615. package/node_modules/http-signature/lib/verify.js +0 -88
  616. package/node_modules/http-signature/package.json +0 -78
  617. package/node_modules/is-typedarray/LICENSE.md +0 -18
  618. package/node_modules/is-typedarray/README.md +0 -16
  619. package/node_modules/is-typedarray/index.js +0 -41
  620. package/node_modules/is-typedarray/package.json +0 -60
  621. package/node_modules/is-typedarray/test.js +0 -34
  622. package/node_modules/isstream/.jshintrc +0 -59
  623. package/node_modules/isstream/.npmignore +0 -1
  624. package/node_modules/isstream/.travis.yml +0 -12
  625. package/node_modules/isstream/LICENSE.md +0 -11
  626. package/node_modules/isstream/README.md +0 -66
  627. package/node_modules/isstream/isstream.js +0 -27
  628. package/node_modules/isstream/package.json +0 -62
  629. package/node_modules/isstream/test.js +0 -168
  630. package/node_modules/jodid25519/.npmignore +0 -11
  631. package/node_modules/jodid25519/.travis.yml +0 -7
  632. package/node_modules/jodid25519/AUTHORS.md +0 -3
  633. package/node_modules/jodid25519/LICENSE +0 -23
  634. package/node_modules/jodid25519/README.md +0 -51
  635. package/node_modules/jodid25519/almond.0 +0 -42
  636. package/node_modules/jodid25519/almond.1 +0 -13
  637. package/node_modules/jodid25519/index.js +0 -35
  638. package/node_modules/jodid25519/jsdoc.json +0 -19
  639. package/node_modules/jodid25519/lib/core.js +0 -481
  640. package/node_modules/jodid25519/lib/curve255.js +0 -221
  641. package/node_modules/jodid25519/lib/dh.js +0 -111
  642. package/node_modules/jodid25519/lib/eddsa.js +0 -573
  643. package/node_modules/jodid25519/lib/utils.js +0 -198
  644. package/node_modules/jodid25519/package.json +0 -76
  645. package/node_modules/jsbn/.npmignore +0 -2
  646. package/node_modules/jsbn/LICENSE +0 -40
  647. package/node_modules/jsbn/README.md +0 -175
  648. package/node_modules/jsbn/example.html +0 -12
  649. package/node_modules/jsbn/example.js +0 -3
  650. package/node_modules/jsbn/index.js +0 -1357
  651. package/node_modules/jsbn/package.json +0 -54
  652. package/node_modules/json-schema/README.md +0 -5
  653. package/node_modules/json-schema/draft-00/hyper-schema +0 -68
  654. package/node_modules/json-schema/draft-00/json-ref +0 -26
  655. package/node_modules/json-schema/draft-00/links +0 -33
  656. package/node_modules/json-schema/draft-00/schema +0 -155
  657. package/node_modules/json-schema/draft-01/hyper-schema +0 -68
  658. package/node_modules/json-schema/draft-01/json-ref +0 -26
  659. package/node_modules/json-schema/draft-01/links +0 -33
  660. package/node_modules/json-schema/draft-01/schema +0 -155
  661. package/node_modules/json-schema/draft-02/hyper-schema +0 -68
  662. package/node_modules/json-schema/draft-02/json-ref +0 -26
  663. package/node_modules/json-schema/draft-02/links +0 -35
  664. package/node_modules/json-schema/draft-02/schema +0 -166
  665. package/node_modules/json-schema/draft-03/examples/address +0 -20
  666. package/node_modules/json-schema/draft-03/examples/calendar +0 -53
  667. package/node_modules/json-schema/draft-03/examples/card +0 -105
  668. package/node_modules/json-schema/draft-03/examples/geo +0 -8
  669. package/node_modules/json-schema/draft-03/examples/interfaces +0 -23
  670. package/node_modules/json-schema/draft-03/hyper-schema +0 -60
  671. package/node_modules/json-schema/draft-03/json-ref +0 -26
  672. package/node_modules/json-schema/draft-03/links +0 -35
  673. package/node_modules/json-schema/draft-03/schema +0 -174
  674. package/node_modules/json-schema/draft-04/hyper-schema +0 -60
  675. package/node_modules/json-schema/draft-04/links +0 -41
  676. package/node_modules/json-schema/draft-04/schema +0 -189
  677. package/node_modules/json-schema/draft-zyp-json-schema-03.xml +0 -1120
  678. package/node_modules/json-schema/draft-zyp-json-schema-04.xml +0 -1072
  679. package/node_modules/json-schema/lib/links.js +0 -66
  680. package/node_modules/json-schema/lib/validate.js +0 -273
  681. package/node_modules/json-schema/package.json +0 -72
  682. package/node_modules/json-schema/test/tests.js +0 -95
  683. package/node_modules/json-stable-stringify/.npmignore +0 -1
  684. package/node_modules/json-stable-stringify/.travis.yml +0 -4
  685. package/node_modules/json-stable-stringify/LICENSE +0 -18
  686. package/node_modules/json-stable-stringify/example/key_cmp.js +0 -7
  687. package/node_modules/json-stable-stringify/example/nested.js +0 -3
  688. package/node_modules/json-stable-stringify/example/str.js +0 -3
  689. package/node_modules/json-stable-stringify/example/value_cmp.js +0 -7
  690. package/node_modules/json-stable-stringify/index.js +0 -84
  691. package/node_modules/json-stable-stringify/package.json +0 -75
  692. package/node_modules/json-stable-stringify/readme.markdown +0 -130
  693. package/node_modules/json-stable-stringify/test/cmp.js +0 -11
  694. package/node_modules/json-stable-stringify/test/nested.js +0 -35
  695. package/node_modules/json-stable-stringify/test/replacer.js +0 -74
  696. package/node_modules/json-stable-stringify/test/space.js +0 -59
  697. package/node_modules/json-stable-stringify/test/str.js +0 -32
  698. package/node_modules/json-stable-stringify/test/to-json.js +0 -20
  699. package/node_modules/json-stringify-safe/.npmignore +0 -1
  700. package/node_modules/json-stringify-safe/CHANGELOG.md +0 -14
  701. package/node_modules/json-stringify-safe/Makefile +0 -35
  702. package/node_modules/json-stringify-safe/README.md +0 -52
  703. package/node_modules/json-stringify-safe/package.json +0 -67
  704. package/node_modules/json-stringify-safe/stringify.js +0 -27
  705. package/node_modules/json-stringify-safe/test/mocha.opts +0 -2
  706. package/node_modules/json-stringify-safe/test/stringify_test.js +0 -246
  707. package/node_modules/jsonify/README.markdown +0 -34
  708. package/node_modules/jsonify/index.js +0 -2
  709. package/node_modules/jsonify/lib/parse.js +0 -273
  710. package/node_modules/jsonify/lib/stringify.js +0 -154
  711. package/node_modules/jsonify/package.json +0 -60
  712. package/node_modules/jsonify/test/parse.js +0 -16
  713. package/node_modules/jsonify/test/stringify.js +0 -15
  714. package/node_modules/jsprim/CHANGES.md +0 -43
  715. package/node_modules/jsprim/LICENSE +0 -19
  716. package/node_modules/jsprim/README.md +0 -292
  717. package/node_modules/jsprim/lib/jsprim.js +0 -735
  718. package/node_modules/jsprim/node_modules/assert-plus/AUTHORS +0 -6
  719. package/node_modules/jsprim/node_modules/assert-plus/CHANGES.md +0 -14
  720. package/node_modules/jsprim/node_modules/assert-plus/README.md +0 -162
  721. package/node_modules/jsprim/node_modules/assert-plus/assert.js +0 -211
  722. package/node_modules/jsprim/node_modules/assert-plus/package.json +0 -83
  723. package/node_modules/jsprim/package.json +0 -50
  724. package/node_modules/mime-db/HISTORY.md +0 -412
  725. package/node_modules/mime-db/LICENSE +0 -22
  726. package/node_modules/mime-db/README.md +0 -82
  727. package/node_modules/mime-db/db.json +0 -6805
  728. package/node_modules/mime-db/index.js +0 -11
  729. package/node_modules/mime-db/package.json +0 -99
  730. package/node_modules/mime-types/HISTORY.md +0 -223
  731. package/node_modules/mime-types/LICENSE +0 -23
  732. package/node_modules/mime-types/README.md +0 -108
  733. package/node_modules/mime-types/index.js +0 -188
  734. package/node_modules/mime-types/package.json +0 -85
  735. package/node_modules/oauth-sign/LICENSE +0 -55
  736. package/node_modules/oauth-sign/README.md +0 -4
  737. package/node_modules/oauth-sign/index.js +0 -136
  738. package/node_modules/oauth-sign/package.json +0 -57
  739. package/node_modules/osenv/.npmignore +0 -13
  740. package/node_modules/osenv/.travis.yml +0 -9
  741. package/node_modules/osenv/test/unix.js +0 -71
  742. package/node_modules/osenv/test/windows.js +0 -74
  743. package/node_modules/osenv/x.tap +0 -39
  744. package/node_modules/performance-now/.npmignore +0 -1
  745. package/node_modules/performance-now/.tm_properties +0 -7
  746. package/node_modules/performance-now/.travis.yml +0 -4
  747. package/node_modules/performance-now/Makefile +0 -25
  748. package/node_modules/performance-now/README.md +0 -30
  749. package/node_modules/performance-now/lib/performance-now.js +0 -32
  750. package/node_modules/performance-now/license.txt +0 -7
  751. package/node_modules/performance-now/package.json +0 -58
  752. package/node_modules/performance-now/src/performance-now.coffee +0 -15
  753. package/node_modules/performance-now/test/mocha.opts +0 -3
  754. package/node_modules/performance-now/test/performance-now.coffee +0 -38
  755. package/node_modules/process-nextick-args/.travis.yml +0 -12
  756. package/node_modules/process-nextick-args/test.js +0 -24
  757. package/node_modules/punycode/README.md +0 -176
  758. package/node_modules/punycode/package.json +0 -88
  759. package/node_modules/punycode/punycode.js +0 -533
  760. package/node_modules/qs/.eslintignore +0 -1
  761. package/node_modules/qs/.eslintrc +0 -18
  762. package/node_modules/qs/.jscs.json +0 -176
  763. package/node_modules/qs/CHANGELOG.md +0 -175
  764. package/node_modules/qs/LICENSE +0 -28
  765. package/node_modules/qs/README.md +0 -440
  766. package/node_modules/qs/dist/qs.js +0 -597
  767. package/node_modules/qs/lib/formats.js +0 -18
  768. package/node_modules/qs/lib/index.js +0 -11
  769. package/node_modules/qs/lib/parse.js +0 -167
  770. package/node_modules/qs/lib/stringify.js +0 -207
  771. package/node_modules/qs/lib/utils.js +0 -182
  772. package/node_modules/qs/package.json +0 -79
  773. package/node_modules/qs/test/.eslintrc +0 -11
  774. package/node_modules/qs/test/index.js +0 -7
  775. package/node_modules/qs/test/parse.js +0 -519
  776. package/node_modules/qs/test/stringify.js +0 -567
  777. package/node_modules/qs/test/utils.js +0 -22
  778. package/node_modules/readable-stream/.npmignore +0 -9
  779. package/node_modules/request/CHANGELOG.md +0 -674
  780. package/node_modules/request/LICENSE +0 -55
  781. package/node_modules/request/README.md +0 -1115
  782. package/node_modules/request/index.js +0 -156
  783. package/node_modules/request/lib/auth.js +0 -168
  784. package/node_modules/request/lib/cookies.js +0 -39
  785. package/node_modules/request/lib/getProxyFromURI.js +0 -79
  786. package/node_modules/request/lib/har.js +0 -215
  787. package/node_modules/request/lib/helpers.js +0 -66
  788. package/node_modules/request/lib/multipart.js +0 -113
  789. package/node_modules/request/lib/oauth.js +0 -148
  790. package/node_modules/request/lib/querystring.js +0 -51
  791. package/node_modules/request/lib/redirect.js +0 -157
  792. package/node_modules/request/lib/tunnel.js +0 -176
  793. package/node_modules/request/package.json +0 -119
  794. package/node_modules/request/request.js +0 -1565
  795. package/node_modules/safe-buffer/browser.js +0 -1
  796. package/node_modules/sntp/.npmignore +0 -18
  797. package/node_modules/sntp/.travis.yml +0 -5
  798. package/node_modules/sntp/LICENSE +0 -28
  799. package/node_modules/sntp/Makefile +0 -9
  800. package/node_modules/sntp/README.md +0 -68
  801. package/node_modules/sntp/examples/offset.js +0 -16
  802. package/node_modules/sntp/examples/time.js +0 -25
  803. package/node_modules/sntp/index.js +0 -1
  804. package/node_modules/sntp/lib/index.js +0 -412
  805. package/node_modules/sntp/package.json +0 -69
  806. package/node_modules/sntp/test/index.js +0 -435
  807. package/node_modules/sshpk/.npmignore +0 -9
  808. package/node_modules/sshpk/.travis.yml +0 -11
  809. package/node_modules/sshpk/LICENSE +0 -18
  810. package/node_modules/sshpk/README.md +0 -698
  811. package/node_modules/sshpk/bin/sshpk-conv +0 -201
  812. package/node_modules/sshpk/bin/sshpk-sign +0 -191
  813. package/node_modules/sshpk/bin/sshpk-verify +0 -166
  814. package/node_modules/sshpk/lib/algs.js +0 -168
  815. package/node_modules/sshpk/lib/certificate.js +0 -377
  816. package/node_modules/sshpk/lib/dhe.js +0 -410
  817. package/node_modules/sshpk/lib/ed-compat.js +0 -96
  818. package/node_modules/sshpk/lib/errors.js +0 -84
  819. package/node_modules/sshpk/lib/fingerprint.js +0 -161
  820. package/node_modules/sshpk/lib/formats/auto.js +0 -73
  821. package/node_modules/sshpk/lib/formats/openssh-cert.js +0 -322
  822. package/node_modules/sshpk/lib/formats/pem.js +0 -186
  823. package/node_modules/sshpk/lib/formats/pkcs1.js +0 -320
  824. package/node_modules/sshpk/lib/formats/pkcs8.js +0 -505
  825. package/node_modules/sshpk/lib/formats/rfc4253.js +0 -146
  826. package/node_modules/sshpk/lib/formats/ssh-private.js +0 -261
  827. package/node_modules/sshpk/lib/formats/ssh.js +0 -114
  828. package/node_modules/sshpk/lib/formats/x509-pem.js +0 -77
  829. package/node_modules/sshpk/lib/formats/x509.js +0 -726
  830. package/node_modules/sshpk/lib/identity.js +0 -277
  831. package/node_modules/sshpk/lib/index.js +0 -39
  832. package/node_modules/sshpk/lib/key.js +0 -274
  833. package/node_modules/sshpk/lib/private-key.js +0 -255
  834. package/node_modules/sshpk/lib/signature.js +0 -313
  835. package/node_modules/sshpk/lib/ssh-buffer.js +0 -148
  836. package/node_modules/sshpk/lib/utils.js +0 -288
  837. package/node_modules/sshpk/man/man1/sshpk-conv.1 +0 -135
  838. package/node_modules/sshpk/man/man1/sshpk-sign.1 +0 -81
  839. package/node_modules/sshpk/man/man1/sshpk-verify.1 +0 -68
  840. package/node_modules/sshpk/node_modules/assert-plus/AUTHORS +0 -6
  841. package/node_modules/sshpk/node_modules/assert-plus/CHANGES.md +0 -14
  842. package/node_modules/sshpk/node_modules/assert-plus/README.md +0 -162
  843. package/node_modules/sshpk/node_modules/assert-plus/assert.js +0 -211
  844. package/node_modules/sshpk/node_modules/assert-plus/package.json +0 -83
  845. package/node_modules/sshpk/package.json +0 -103
  846. package/node_modules/string_decoder/.npmignore +0 -2
  847. package/node_modules/stringstream/.npmignore +0 -15
  848. package/node_modules/stringstream/.travis.yml +0 -4
  849. package/node_modules/stringstream/LICENSE.txt +0 -22
  850. package/node_modules/stringstream/README.md +0 -38
  851. package/node_modules/stringstream/example.js +0 -27
  852. package/node_modules/stringstream/package.json +0 -52
  853. package/node_modules/stringstream/stringstream.js +0 -102
  854. package/node_modules/tar/.npmignore +0 -5
  855. package/node_modules/tar/.travis.yml +0 -4
  856. package/node_modules/tar/examples/extracter.js +0 -19
  857. package/node_modules/tar/examples/packer.js +0 -24
  858. package/node_modules/tar/examples/reader.js +0 -36
  859. package/node_modules/tar/lib/buffer-entry.js +0 -30
  860. package/node_modules/tar/lib/entry-writer.js +0 -169
  861. package/node_modules/tar/lib/entry.js +0 -220
  862. package/node_modules/tar/lib/extended-header-writer.js +0 -191
  863. package/node_modules/tar/lib/extended-header.js +0 -140
  864. package/node_modules/tar/lib/global-header-writer.js +0 -14
  865. package/node_modules/tar/tar.js +0 -173
  866. package/node_modules/tar/test/00-setup-fixtures.js +0 -53
  867. package/node_modules/tar/test/cb-never-called-1.0.1.tgz +0 -0
  868. package/node_modules/tar/test/dir-normalization.js +0 -177
  869. package/node_modules/tar/test/dir-normalization.tar +0 -0
  870. package/node_modules/tar/test/error-on-broken.js +0 -33
  871. package/node_modules/tar/test/extract-move.js +0 -132
  872. package/node_modules/tar/test/extract.js +0 -367
  873. package/node_modules/tar/test/fixtures.tgz +0 -0
  874. package/node_modules/tar/test/header.js +0 -183
  875. package/node_modules/tar/test/pack-no-proprietary.js +0 -886
  876. package/node_modules/tar/test/pack.js +0 -952
  877. package/node_modules/tar/test/parse-discard.js +0 -29
  878. package/node_modules/tar/test/parse.js +0 -359
  879. package/node_modules/tar/test/zz-cleanup.js +0 -20
  880. package/node_modules/tar-pack/.npmignore +0 -14
  881. package/node_modules/tar-pack/.travis.yml +0 -7
  882. package/node_modules/tar-pack/LICENSE +0 -23
  883. package/node_modules/tar-pack/README.md +0 -84
  884. package/node_modules/tar-pack/index.js +0 -245
  885. package/node_modules/tar-pack/package.json +0 -58
  886. package/node_modules/tar-pack/test/fixtures/packed-file.txt +0 -1
  887. package/node_modules/tar-pack/test/fixtures/packed.tar +0 -0
  888. package/node_modules/tar-pack/test/fixtures/packed.tar.gz +0 -0
  889. package/node_modules/tar-pack/test/fixtures/to-pack/bar.txt +0 -1
  890. package/node_modules/tar-pack/test/fixtures/to-pack/foo.txt +0 -1
  891. package/node_modules/tar-pack/test/index.js +0 -109
  892. package/node_modules/tough-cookie/LICENSE +0 -27
  893. package/node_modules/tough-cookie/README.md +0 -506
  894. package/node_modules/tough-cookie/lib/cookie.js +0 -1336
  895. package/node_modules/tough-cookie/lib/memstore.js +0 -170
  896. package/node_modules/tough-cookie/lib/pathMatch.js +0 -61
  897. package/node_modules/tough-cookie/lib/permuteDomain.js +0 -56
  898. package/node_modules/tough-cookie/lib/pubsuffix.js +0 -98
  899. package/node_modules/tough-cookie/lib/store.js +0 -71
  900. package/node_modules/tough-cookie/package.json +0 -93
  901. package/node_modules/tunnel-agent/LICENSE +0 -55
  902. package/node_modules/tunnel-agent/README.md +0 -4
  903. package/node_modules/tunnel-agent/index.js +0 -244
  904. package/node_modules/tunnel-agent/package.json +0 -56
  905. package/node_modules/tweetnacl/.npmignore +0 -4
  906. package/node_modules/tweetnacl/AUTHORS.md +0 -28
  907. package/node_modules/tweetnacl/CHANGELOG.md +0 -221
  908. package/node_modules/tweetnacl/LICENSE +0 -24
  909. package/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md +0 -20
  910. package/node_modules/tweetnacl/README.md +0 -459
  911. package/node_modules/tweetnacl/nacl-fast.js +0 -2388
  912. package/node_modules/tweetnacl/nacl-fast.min.js +0 -2
  913. package/node_modules/tweetnacl/nacl.d.ts +0 -98
  914. package/node_modules/tweetnacl/nacl.js +0 -1175
  915. package/node_modules/tweetnacl/nacl.min.js +0 -1
  916. package/node_modules/tweetnacl/package.json +0 -87
  917. package/node_modules/uid-number/LICENSE +0 -15
  918. package/node_modules/uid-number/README.md +0 -17
  919. package/node_modules/uid-number/get-uid-gid.js +0 -24
  920. package/node_modules/uid-number/package.json +0 -52
  921. package/node_modules/uid-number/uid-number.js +0 -59
  922. package/node_modules/uuid/.npmignore +0 -8
  923. package/node_modules/uuid/.travis.yml +0 -5
  924. package/node_modules/uuid/AUTHORS +0 -5
  925. package/node_modules/uuid/HISTORY.md +0 -28
  926. package/node_modules/uuid/LICENSE.md +0 -21
  927. package/node_modules/uuid/README.md +0 -132
  928. package/node_modules/uuid/bin/uuid +0 -26
  929. package/node_modules/uuid/index.js +0 -8
  930. package/node_modules/uuid/lib/bytesToUuid.js +0 -23
  931. package/node_modules/uuid/lib/rng-browser.js +0 -33
  932. package/node_modules/uuid/lib/rng.js +0 -10
  933. package/node_modules/uuid/package.json +0 -79
  934. package/node_modules/uuid/test/mocha.opts +0 -3
  935. package/node_modules/uuid/test/test.js +0 -96
  936. package/node_modules/uuid/v1.js +0 -103
  937. package/node_modules/uuid/v4.js +0 -29
  938. package/node_modules/verror/.gitmodules +0 -0
  939. package/node_modules/verror/.npmignore +0 -1
  940. package/node_modules/verror/LICENSE +0 -19
  941. package/node_modules/verror/Makefile +0 -35
  942. package/node_modules/verror/Makefile.targ +0 -285
  943. package/node_modules/verror/README.md +0 -120
  944. package/node_modules/verror/examples/levels-verror.js +0 -36
  945. package/node_modules/verror/examples/levels-werror.js +0 -34
  946. package/node_modules/verror/examples/varargs.js +0 -6
  947. package/node_modules/verror/examples/verror.js +0 -13
  948. package/node_modules/verror/examples/werror.js +0 -14
  949. package/node_modules/verror/jsl.node.conf +0 -139
  950. package/node_modules/verror/lib/verror.js +0 -157
  951. package/node_modules/verror/package.json +0 -49
  952. package/node_modules/verror/tests/tst.inherit.js +0 -100
  953. package/node_modules/verror/tests/tst.verror.js +0 -156
  954. package/node_modules/verror/tests/tst.werror.js +0 -179
@@ -1,1492 +0,0 @@
1
- // Load modules
2
-
3
- var Url = require('url');
4
- var Code = require('code');
5
- var Hawk = require('../lib');
6
- var Hoek = require('hoek');
7
- var Lab = require('lab');
8
- var Browser = require('../lib/browser');
9
-
10
-
11
- // Declare internals
12
-
13
- var internals = {};
14
-
15
-
16
- // Test shortcuts
17
-
18
- var lab = exports.lab = Lab.script();
19
- var describe = lab.experiment;
20
- var it = lab.test;
21
- var expect = Code.expect;
22
-
23
-
24
- describe('Browser', function () {
25
-
26
- var credentialsFunc = function (id, callback) {
27
-
28
- var credentials = {
29
- id: id,
30
- key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn',
31
- algorithm: (id === '1' ? 'sha1' : 'sha256'),
32
- user: 'steve'
33
- };
34
-
35
- return callback(null, credentials);
36
- };
37
-
38
- it('should generate a bewit then successfully authenticate it', function (done) {
39
-
40
- var req = {
41
- method: 'GET',
42
- url: '/resource/4?a=1&b=2',
43
- host: 'example.com',
44
- port: 80
45
- };
46
-
47
- credentialsFunc('123456', function (err, credentials1) {
48
-
49
- var bewit = Browser.client.bewit('http://example.com/resource/4?a=1&b=2', { credentials: credentials1, ttlSec: 60 * 60 * 24 * 365 * 100, ext: 'some-app-data' });
50
- req.url += '&bewit=' + bewit;
51
-
52
- Hawk.uri.authenticate(req, credentialsFunc, {}, function (err, credentials2, attributes) {
53
-
54
- expect(err).to.not.exist();
55
- expect(credentials2.user).to.equal('steve');
56
- expect(attributes.ext).to.equal('some-app-data');
57
- done();
58
- });
59
- });
60
- });
61
-
62
- it('should generate a bewit then successfully authenticate it (no ext)', function (done) {
63
-
64
- var req = {
65
- method: 'GET',
66
- url: '/resource/4?a=1&b=2',
67
- host: 'example.com',
68
- port: 80
69
- };
70
-
71
- credentialsFunc('123456', function (err, credentials1) {
72
-
73
- var bewit = Browser.client.bewit('http://example.com/resource/4?a=1&b=2', { credentials: credentials1, ttlSec: 60 * 60 * 24 * 365 * 100 });
74
- req.url += '&bewit=' + bewit;
75
-
76
- Hawk.uri.authenticate(req, credentialsFunc, {}, function (err, credentials2, attributes) {
77
-
78
- expect(err).to.not.exist();
79
- expect(credentials2.user).to.equal('steve');
80
- done();
81
- });
82
- });
83
- });
84
-
85
- describe('bewit()', function () {
86
-
87
- it('returns a valid bewit value', function (done) {
88
-
89
- var credentials = {
90
- id: '123456',
91
- key: '2983d45yun89q',
92
- algorithm: 'sha256'
93
- };
94
-
95
- var bewit = Browser.client.bewit('https://example.com/somewhere/over/the/rainbow', { credentials: credentials, ttlSec: 300, localtimeOffsetMsec: 1356420407232 - Hawk.utils.now(), ext: 'xandyandz' });
96
- expect(bewit).to.equal('MTIzNDU2XDEzNTY0MjA3MDdca3NjeHdOUjJ0SnBQMVQxekRMTlBiQjVVaUtJVTl0T1NKWFRVZEc3WDloOD1ceGFuZHlhbmR6');
97
- done();
98
- });
99
-
100
- it('returns a valid bewit value (explicit HTTP port)', function (done) {
101
-
102
- var credentials = {
103
- id: '123456',
104
- key: '2983d45yun89q',
105
- algorithm: 'sha256'
106
- };
107
-
108
- var bewit = Browser.client.bewit('http://example.com:8080/somewhere/over/the/rainbow', { credentials: credentials, ttlSec: 300, localtimeOffsetMsec: 1356420407232 - Hawk.utils.now(), ext: 'xandyandz' });
109
- expect(bewit).to.equal('MTIzNDU2XDEzNTY0MjA3MDdcaFpiSjNQMmNLRW80a3kwQzhqa1pBa1J5Q1p1ZWc0V1NOYnhWN3ZxM3hIVT1ceGFuZHlhbmR6');
110
- done();
111
- });
112
-
113
- it('returns a valid bewit value (explicit HTTPS port)', function (done) {
114
-
115
- var credentials = {
116
- id: '123456',
117
- key: '2983d45yun89q',
118
- algorithm: 'sha256'
119
- };
120
-
121
- var bewit = Browser.client.bewit('https://example.com:8043/somewhere/over/the/rainbow', { credentials: credentials, ttlSec: 300, localtimeOffsetMsec: 1356420407232 - Hawk.utils.now(), ext: 'xandyandz' });
122
- expect(bewit).to.equal('MTIzNDU2XDEzNTY0MjA3MDdcL2t4UjhwK0xSaTdvQTRnUXc3cWlxa3BiVHRKYkR4OEtRMC9HRUwvVytTUT1ceGFuZHlhbmR6');
123
- done();
124
- });
125
-
126
- it('returns a valid bewit value (null ext)', function (done) {
127
-
128
- var credentials = {
129
- id: '123456',
130
- key: '2983d45yun89q',
131
- algorithm: 'sha256'
132
- };
133
-
134
- var bewit = Browser.client.bewit('https://example.com/somewhere/over/the/rainbow', { credentials: credentials, ttlSec: 300, localtimeOffsetMsec: 1356420407232 - Hawk.utils.now(), ext: null });
135
- expect(bewit).to.equal('MTIzNDU2XDEzNTY0MjA3MDdcSUdZbUxnSXFMckNlOEN4dktQczRKbFdJQStValdKSm91d2dBUmlWaENBZz1c');
136
- done();
137
- });
138
-
139
- it('errors on invalid options', function (done) {
140
-
141
- var credentials = {
142
- id: '123456',
143
- key: '2983d45yun89q',
144
- algorithm: 'sha256'
145
- };
146
-
147
- var bewit = Browser.client.bewit('https://example.com/somewhere/over/the/rainbow', 4);
148
- expect(bewit).to.equal('');
149
- done();
150
- });
151
-
152
- it('errors on missing uri', function (done) {
153
-
154
- var credentials = {
155
- id: '123456',
156
- key: '2983d45yun89q',
157
- algorithm: 'sha256'
158
- };
159
-
160
- var bewit = Browser.client.bewit('', { credentials: credentials, ttlSec: 300, localtimeOffsetMsec: 1356420407232 - Hawk.utils.now(), ext: 'xandyandz' });
161
- expect(bewit).to.equal('');
162
- done();
163
- });
164
-
165
- it('errors on invalid uri', function (done) {
166
-
167
- var credentials = {
168
- id: '123456',
169
- key: '2983d45yun89q',
170
- algorithm: 'sha256'
171
- };
172
-
173
- var bewit = Browser.client.bewit(5, { credentials: credentials, ttlSec: 300, localtimeOffsetMsec: 1356420407232 - Hawk.utils.now(), ext: 'xandyandz' });
174
- expect(bewit).to.equal('');
175
- done();
176
- });
177
-
178
- it('errors on invalid credentials (id)', function (done) {
179
-
180
- var credentials = {
181
- key: '2983d45yun89q',
182
- algorithm: 'sha256'
183
- };
184
-
185
- var bewit = Browser.client.bewit('https://example.com/somewhere/over/the/rainbow', { credentials: credentials, ttlSec: 3000, ext: 'xandyandz' });
186
- expect(bewit).to.equal('');
187
- done();
188
- });
189
-
190
- it('errors on missing credentials', function (done) {
191
-
192
- var bewit = Browser.client.bewit('https://example.com/somewhere/over/the/rainbow', { ttlSec: 3000, ext: 'xandyandz' });
193
- expect(bewit).to.equal('');
194
- done();
195
- });
196
-
197
- it('errors on invalid credentials (key)', function (done) {
198
-
199
- var credentials = {
200
- id: '123456',
201
- algorithm: 'sha256'
202
- };
203
-
204
- var bewit = Browser.client.bewit('https://example.com/somewhere/over/the/rainbow', { credentials: credentials, ttlSec: 3000, ext: 'xandyandz' });
205
- expect(bewit).to.equal('');
206
- done();
207
- });
208
-
209
- it('errors on invalid algorithm', function (done) {
210
-
211
- var credentials = {
212
- id: '123456',
213
- key: '2983d45yun89q',
214
- algorithm: 'hmac-sha-0'
215
- };
216
-
217
- var bewit = Browser.client.bewit('https://example.com/somewhere/over/the/rainbow', { credentials: credentials, ttlSec: 300, ext: 'xandyandz' });
218
- expect(bewit).to.equal('');
219
- done();
220
- });
221
-
222
- it('errors on missing options', function (done) {
223
-
224
- var credentials = {
225
- id: '123456',
226
- key: '2983d45yun89q',
227
- algorithm: 'hmac-sha-0'
228
- };
229
-
230
- var bewit = Browser.client.bewit('https://example.com/somewhere/over/the/rainbow');
231
- expect(bewit).to.equal('');
232
- done();
233
- });
234
- });
235
-
236
- it('generates a header then successfully parse it (configuration)', function (done) {
237
-
238
- var req = {
239
- method: 'GET',
240
- url: '/resource/4?filter=a',
241
- host: 'example.com',
242
- port: 8080
243
- };
244
-
245
- credentialsFunc('123456', function (err, credentials1) {
246
-
247
- req.authorization = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, ext: 'some-app-data' }).field;
248
- expect(req.authorization).to.exist();
249
-
250
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts) {
251
-
252
- expect(err).to.not.exist();
253
- expect(credentials2.user).to.equal('steve');
254
- expect(artifacts.ext).to.equal('some-app-data');
255
- done();
256
- });
257
- });
258
- });
259
-
260
- it('generates a header then successfully parse it (node request)', function (done) {
261
-
262
- var req = {
263
- method: 'POST',
264
- url: '/resource/4?filter=a',
265
- headers: {
266
- host: 'example.com:8080',
267
- 'content-type': 'text/plain;x=y'
268
- }
269
- };
270
-
271
- var payload = 'some not so random text';
272
-
273
- credentialsFunc('123456', function (err, credentials1) {
274
-
275
- var reqHeader = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, ext: 'some-app-data', payload: payload, contentType: req.headers['content-type'] });
276
- req.headers.authorization = reqHeader.field;
277
-
278
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts) {
279
-
280
- expect(err).to.not.exist();
281
- expect(credentials2.user).to.equal('steve');
282
- expect(artifacts.ext).to.equal('some-app-data');
283
- expect(Hawk.server.authenticatePayload(payload, credentials2, artifacts, req.headers['content-type'])).to.equal(true);
284
-
285
- var res = {
286
- headers: {
287
- 'content-type': 'text/plain'
288
- },
289
- getResponseHeader: function (header) {
290
-
291
- return res.headers[header.toLowerCase()];
292
- }
293
- };
294
-
295
- res.headers['server-authorization'] = Hawk.server.header(credentials2, artifacts, { payload: 'some reply', contentType: 'text/plain', ext: 'response-specific' });
296
- expect(res.headers['server-authorization']).to.exist();
297
-
298
- expect(Browser.client.authenticate(res, credentials2, artifacts, { payload: 'some reply' })).to.equal(true);
299
- done();
300
- });
301
- });
302
- });
303
-
304
- it('generates a header then successfully parse it (browserify)', function (done) {
305
-
306
- var req = {
307
- method: 'POST',
308
- url: '/resource/4?filter=a',
309
- headers: {
310
- host: 'example.com:8080',
311
- 'content-type': 'text/plain;x=y'
312
- }
313
- };
314
-
315
- var payload = 'some not so random text';
316
-
317
- credentialsFunc('123456', function (err, credentials1) {
318
-
319
- var reqHeader = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, ext: 'some-app-data', payload: payload, contentType: req.headers['content-type'] });
320
- req.headers.authorization = reqHeader.field;
321
-
322
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts) {
323
-
324
- expect(err).to.not.exist();
325
- expect(credentials2.user).to.equal('steve');
326
- expect(artifacts.ext).to.equal('some-app-data');
327
- expect(Hawk.server.authenticatePayload(payload, credentials2, artifacts, req.headers['content-type'])).to.equal(true);
328
-
329
- var res = {
330
- headers: {
331
- 'content-type': 'text/plain'
332
- },
333
- getHeader: function (header) {
334
-
335
- return res.headers[header.toLowerCase()];
336
- }
337
- };
338
-
339
- res.headers['server-authorization'] = Hawk.server.header(credentials2, artifacts, { payload: 'some reply', contentType: 'text/plain', ext: 'response-specific' });
340
- expect(res.headers['server-authorization']).to.exist();
341
-
342
- expect(Browser.client.authenticate(res, credentials2, artifacts, { payload: 'some reply' })).to.equal(true);
343
- done();
344
- });
345
- });
346
- });
347
-
348
- it('generates a header then successfully parse it (time offset)', function (done) {
349
-
350
- var req = {
351
- method: 'GET',
352
- url: '/resource/4?filter=a',
353
- host: 'example.com',
354
- port: 8080
355
- };
356
-
357
- credentialsFunc('123456', function (err, credentials1) {
358
-
359
- req.authorization = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, ext: 'some-app-data', localtimeOffsetMsec: 100000 }).field;
360
- expect(req.authorization).to.exist();
361
-
362
- Hawk.server.authenticate(req, credentialsFunc, { localtimeOffsetMsec: 100000 }, function (err, credentials2, artifacts) {
363
-
364
- expect(err).to.not.exist();
365
- expect(credentials2.user).to.equal('steve');
366
- expect(artifacts.ext).to.equal('some-app-data');
367
- done();
368
- });
369
- });
370
- });
371
-
372
- it('generates a header then successfully parse it (no server header options)', function (done) {
373
-
374
- var req = {
375
- method: 'POST',
376
- url: '/resource/4?filter=a',
377
- headers: {
378
- host: 'example.com:8080',
379
- 'content-type': 'text/plain;x=y'
380
- }
381
- };
382
-
383
- var payload = 'some not so random text';
384
-
385
- credentialsFunc('123456', function (err, credentials1) {
386
-
387
- var reqHeader = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, ext: 'some-app-data', payload: payload, contentType: req.headers['content-type'] });
388
- req.headers.authorization = reqHeader.field;
389
-
390
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts) {
391
-
392
- expect(err).to.not.exist();
393
- expect(credentials2.user).to.equal('steve');
394
- expect(artifacts.ext).to.equal('some-app-data');
395
- expect(Hawk.server.authenticatePayload(payload, credentials2, artifacts, req.headers['content-type'])).to.equal(true);
396
-
397
- var res = {
398
- headers: {
399
- 'content-type': 'text/plain'
400
- },
401
- getResponseHeader: function (header) {
402
-
403
- return res.headers[header.toLowerCase()];
404
- }
405
- };
406
-
407
- res.headers['server-authorization'] = Hawk.server.header(credentials2, artifacts);
408
- expect(res.headers['server-authorization']).to.exist();
409
-
410
- expect(Browser.client.authenticate(res, credentials2, artifacts)).to.equal(true);
411
- done();
412
- });
413
- });
414
- });
415
-
416
- it('generates a header then successfully parse it (no server header)', function (done) {
417
-
418
- var req = {
419
- method: 'POST',
420
- url: '/resource/4?filter=a',
421
- headers: {
422
- host: 'example.com:8080',
423
- 'content-type': 'text/plain;x=y'
424
- }
425
- };
426
-
427
- var payload = 'some not so random text';
428
-
429
- credentialsFunc('123456', function (err, credentials1) {
430
-
431
- var reqHeader = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, ext: 'some-app-data', payload: payload, contentType: req.headers['content-type'] });
432
- req.headers.authorization = reqHeader.field;
433
-
434
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts) {
435
-
436
- expect(err).to.not.exist();
437
- expect(credentials2.user).to.equal('steve');
438
- expect(artifacts.ext).to.equal('some-app-data');
439
- expect(Hawk.server.authenticatePayload(payload, credentials2, artifacts, req.headers['content-type'])).to.equal(true);
440
-
441
- var res = {
442
- headers: {
443
- 'content-type': 'text/plain'
444
- },
445
- getResponseHeader: function (header) {
446
-
447
- return res.headers[header.toLowerCase()];
448
- }
449
- };
450
-
451
- expect(Browser.client.authenticate(res, credentials2, artifacts)).to.equal(true);
452
- done();
453
- });
454
- });
455
- });
456
-
457
- it('generates a header with stale ts and successfully authenticate on second call', function (done) {
458
-
459
- var req = {
460
- method: 'GET',
461
- url: '/resource/4?filter=a',
462
- host: 'example.com',
463
- port: 8080
464
- };
465
-
466
- credentialsFunc('123456', function (err, credentials1) {
467
-
468
- Browser.utils.setNtpOffset(60 * 60 * 1000);
469
- var header = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, ext: 'some-app-data' });
470
- req.authorization = header.field;
471
- expect(req.authorization).to.exist();
472
-
473
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts2) {
474
-
475
- expect(err).to.exist();
476
- expect(err.message).to.equal('Stale timestamp');
477
-
478
- var res = {
479
- headers: {
480
- 'www-authenticate': err.output.headers['WWW-Authenticate']
481
- },
482
- getResponseHeader: function (lookup) {
483
-
484
- return res.headers[lookup.toLowerCase()];
485
- }
486
- };
487
-
488
- expect(Browser.utils.getNtpOffset()).to.equal(60 * 60 * 1000);
489
- expect(Browser.client.authenticate(res, credentials2, header.artifacts)).to.equal(true);
490
- expect(Browser.utils.getNtpOffset()).to.equal(0);
491
-
492
- req.authorization = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials2, ext: 'some-app-data' }).field;
493
- expect(req.authorization).to.exist();
494
-
495
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials3, artifacts3) {
496
-
497
- expect(err).to.not.exist();
498
- expect(credentials3.user).to.equal('steve');
499
- expect(artifacts3.ext).to.equal('some-app-data');
500
- done();
501
- });
502
- });
503
- });
504
- });
505
-
506
- it('generates a header with stale ts and successfully authenticate on second call (manual localStorage)', function (done) {
507
-
508
- var req = {
509
- method: 'GET',
510
- url: '/resource/4?filter=a',
511
- host: 'example.com',
512
- port: 8080
513
- };
514
-
515
- credentialsFunc('123456', function (err, credentials1) {
516
-
517
- var localStorage = new Browser.internals.LocalStorage();
518
-
519
- Browser.utils.setStorage(localStorage);
520
-
521
- Browser.utils.setNtpOffset(60 * 60 * 1000);
522
- var header = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, ext: 'some-app-data' });
523
- req.authorization = header.field;
524
- expect(req.authorization).to.exist();
525
-
526
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts2) {
527
-
528
- expect(err).to.exist();
529
- expect(err.message).to.equal('Stale timestamp');
530
-
531
- var res = {
532
- headers: {
533
- 'www-authenticate': err.output.headers['WWW-Authenticate']
534
- },
535
- getResponseHeader: function (lookup) {
536
-
537
- return res.headers[lookup.toLowerCase()];
538
- }
539
- };
540
-
541
- expect(parseInt(localStorage.getItem('hawk_ntp_offset'))).to.equal(60 * 60 * 1000);
542
- expect(Browser.utils.getNtpOffset()).to.equal(60 * 60 * 1000);
543
- expect(Browser.client.authenticate(res, credentials2, header.artifacts)).to.equal(true);
544
- expect(Browser.utils.getNtpOffset()).to.equal(0);
545
- expect(parseInt(localStorage.getItem('hawk_ntp_offset'))).to.equal(0);
546
-
547
- req.authorization = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials2, ext: 'some-app-data' }).field;
548
- expect(req.authorization).to.exist();
549
-
550
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials3, artifacts3) {
551
-
552
- expect(err).to.not.exist();
553
- expect(credentials3.user).to.equal('steve');
554
- expect(artifacts3.ext).to.equal('some-app-data');
555
- done();
556
- });
557
- });
558
- });
559
- });
560
-
561
- it('generates a header then fails to parse it (missing server header hash)', function (done) {
562
-
563
- var req = {
564
- method: 'POST',
565
- url: '/resource/4?filter=a',
566
- headers: {
567
- host: 'example.com:8080',
568
- 'content-type': 'text/plain;x=y'
569
- }
570
- };
571
-
572
- var payload = 'some not so random text';
573
-
574
- credentialsFunc('123456', function (err, credentials1) {
575
-
576
- var reqHeader = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, ext: 'some-app-data', payload: payload, contentType: req.headers['content-type'] });
577
- req.headers.authorization = reqHeader.field;
578
-
579
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts) {
580
-
581
- expect(err).to.not.exist();
582
- expect(credentials2.user).to.equal('steve');
583
- expect(artifacts.ext).to.equal('some-app-data');
584
- expect(Hawk.server.authenticatePayload(payload, credentials2, artifacts, req.headers['content-type'])).to.equal(true);
585
-
586
- var res = {
587
- headers: {
588
- 'content-type': 'text/plain'
589
- },
590
- getResponseHeader: function (header) {
591
-
592
- return res.headers[header.toLowerCase()];
593
- }
594
- };
595
-
596
- res.headers['server-authorization'] = Hawk.server.header(credentials2, artifacts);
597
- expect(res.headers['server-authorization']).to.exist();
598
-
599
- expect(Browser.client.authenticate(res, credentials2, artifacts, { payload: 'some reply' })).to.equal(false);
600
- done();
601
- });
602
- });
603
- });
604
-
605
- it('generates a header then successfully parse it (with hash)', function (done) {
606
-
607
- var req = {
608
- method: 'GET',
609
- url: '/resource/4?filter=a',
610
- host: 'example.com',
611
- port: 8080
612
- };
613
-
614
- credentialsFunc('123456', function (err, credentials1) {
615
-
616
- req.authorization = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, payload: 'hola!', ext: 'some-app-data' }).field;
617
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts) {
618
-
619
- expect(err).to.not.exist();
620
- expect(credentials2.user).to.equal('steve');
621
- expect(artifacts.ext).to.equal('some-app-data');
622
- done();
623
- });
624
- });
625
- });
626
-
627
- it('generates a header then successfully parse it then validate payload', function (done) {
628
-
629
- var req = {
630
- method: 'GET',
631
- url: '/resource/4?filter=a',
632
- host: 'example.com',
633
- port: 8080
634
- };
635
-
636
- credentialsFunc('123456', function (err, credentials1) {
637
-
638
- req.authorization = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, payload: 'hola!', ext: 'some-app-data' }).field;
639
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts) {
640
-
641
- expect(err).to.not.exist();
642
- expect(credentials2.user).to.equal('steve');
643
- expect(artifacts.ext).to.equal('some-app-data');
644
- expect(Hawk.server.authenticatePayload('hola!', credentials2, artifacts)).to.be.true();
645
- expect(Hawk.server.authenticatePayload('hello!', credentials2, artifacts)).to.be.false();
646
- done();
647
- });
648
- });
649
- });
650
-
651
- it('generates a header then successfully parse it (app)', function (done) {
652
-
653
- var req = {
654
- method: 'GET',
655
- url: '/resource/4?filter=a',
656
- host: 'example.com',
657
- port: 8080
658
- };
659
-
660
- credentialsFunc('123456', function (err, credentials1) {
661
-
662
- req.authorization = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, ext: 'some-app-data', app: 'asd23ased' }).field;
663
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts) {
664
-
665
- expect(err).to.not.exist();
666
- expect(credentials2.user).to.equal('steve');
667
- expect(artifacts.ext).to.equal('some-app-data');
668
- expect(artifacts.app).to.equal('asd23ased');
669
- done();
670
- });
671
- });
672
- });
673
-
674
- it('generates a header then successfully parse it (app, dlg)', function (done) {
675
-
676
- var req = {
677
- method: 'GET',
678
- url: '/resource/4?filter=a',
679
- host: 'example.com',
680
- port: 8080
681
- };
682
-
683
- credentialsFunc('123456', function (err, credentials1) {
684
-
685
- req.authorization = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, ext: 'some-app-data', app: 'asd23ased', dlg: '23434szr3q4d' }).field;
686
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts) {
687
-
688
- expect(err).to.not.exist();
689
- expect(credentials2.user).to.equal('steve');
690
- expect(artifacts.ext).to.equal('some-app-data');
691
- expect(artifacts.app).to.equal('asd23ased');
692
- expect(artifacts.dlg).to.equal('23434szr3q4d');
693
- done();
694
- });
695
- });
696
- });
697
-
698
- it('generates a header then fail authentication due to bad hash', function (done) {
699
-
700
- var req = {
701
- method: 'GET',
702
- url: '/resource/4?filter=a',
703
- host: 'example.com',
704
- port: 8080
705
- };
706
-
707
- credentialsFunc('123456', function (err, credentials1) {
708
-
709
- req.authorization = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, payload: 'hola!', ext: 'some-app-data' }).field;
710
- Hawk.server.authenticate(req, credentialsFunc, { payload: 'byebye!' }, function (err, credentials2, artifacts) {
711
-
712
- expect(err).to.exist();
713
- expect(err.output.payload.message).to.equal('Bad payload hash');
714
- done();
715
- });
716
- });
717
- });
718
-
719
- it('generates a header for one resource then fail to authenticate another', function (done) {
720
-
721
- var req = {
722
- method: 'GET',
723
- url: '/resource/4?filter=a',
724
- host: 'example.com',
725
- port: 8080
726
- };
727
-
728
- credentialsFunc('123456', function (err, credentials1) {
729
-
730
- req.authorization = Browser.client.header('http://example.com:8080/resource/4?filter=a', req.method, { credentials: credentials1, ext: 'some-app-data' }).field;
731
- req.url = '/something/else';
732
-
733
- Hawk.server.authenticate(req, credentialsFunc, {}, function (err, credentials2, artifacts) {
734
-
735
- expect(err).to.exist();
736
- expect(credentials2).to.exist();
737
- done();
738
- });
739
- });
740
- });
741
-
742
- describe('client', function () {
743
-
744
- describe('header()', function () {
745
-
746
- it('returns a valid authorization header (sha1)', function (done) {
747
-
748
- var credentials = {
749
- id: '123456',
750
- key: '2983d45yun89q',
751
- algorithm: 'sha1'
752
- };
753
-
754
- var header = Browser.client.header('http://example.net/somewhere/over/the/rainbow', 'POST', { credentials: credentials, ext: 'Bazinga!', timestamp: 1353809207, nonce: 'Ygvqdz', payload: 'something to write about' }).field;
755
- expect(header).to.equal('Hawk id="123456", ts="1353809207", nonce="Ygvqdz", hash="bsvY3IfUllw6V5rvk4tStEvpBhE=", ext="Bazinga!", mac="qbf1ZPG/r/e06F4ht+T77LXi5vw="');
756
- done();
757
- });
758
-
759
- it('returns a valid authorization header (sha256)', function (done) {
760
-
761
- var credentials = {
762
- id: '123456',
763
- key: '2983d45yun89q',
764
- algorithm: 'sha256'
765
- };
766
-
767
- var header = Browser.client.header('https://example.net/somewhere/over/the/rainbow', 'POST', { credentials: credentials, ext: 'Bazinga!', timestamp: 1353809207, nonce: 'Ygvqdz', payload: 'something to write about', contentType: 'text/plain' }).field;
768
- expect(header).to.equal('Hawk id="123456", ts="1353809207", nonce="Ygvqdz", hash="2QfCt3GuY9HQnHWyWD3wX68ZOKbynqlfYmuO2ZBRqtY=", ext="Bazinga!", mac="q1CwFoSHzPZSkbIvl0oYlD+91rBUEvFk763nMjMndj8="');
769
- done();
770
- });
771
-
772
- it('returns a valid authorization header (empty payload)', function (done) {
773
-
774
- var credentials = {
775
- id: '123456',
776
- key: '2983d45yun89q',
777
- algorithm: 'sha1'
778
- };
779
-
780
- var header = Browser.client.header('http://example.net/somewhere/over/the/rainbow', 'POST', { credentials: credentials, ext: 'Bazinga!', timestamp: 1353809207, nonce: 'Ygvqdz', payload: '' }).field;
781
- expect(header).to.equal('Hawk id=\"123456\", ts=\"1353809207\", nonce=\"Ygvqdz\", hash=\"404ghL7K+hfyhByKKejFBRGgTjU=\", ext=\"Bazinga!\", mac=\"Bh1sj1DOfFRWOdi3ww52nLCJdBE=\"');
782
- done();
783
- });
784
-
785
- it('returns a valid authorization header (no ext)', function (done) {
786
-
787
- var credentials = {
788
- id: '123456',
789
- key: '2983d45yun89q',
790
- algorithm: 'sha256'
791
- };
792
-
793
- var header = Browser.client.header('https://example.net/somewhere/over/the/rainbow', 'POST', { credentials: credentials, timestamp: 1353809207, nonce: 'Ygvqdz', payload: 'something to write about', contentType: 'text/plain' }).field;
794
- expect(header).to.equal('Hawk id="123456", ts="1353809207", nonce="Ygvqdz", hash="2QfCt3GuY9HQnHWyWD3wX68ZOKbynqlfYmuO2ZBRqtY=", mac="HTgtd0jPI6E4izx8e4OHdO36q00xFCU0FolNq3RiCYs="');
795
- done();
796
- });
797
-
798
- it('returns a valid authorization header (null ext)', function (done) {
799
-
800
- var credentials = {
801
- id: '123456',
802
- key: '2983d45yun89q',
803
- algorithm: 'sha256'
804
- };
805
-
806
- var header = Browser.client.header('https://example.net/somewhere/over/the/rainbow', 'POST', { credentials: credentials, timestamp: 1353809207, nonce: 'Ygvqdz', payload: 'something to write about', contentType: 'text/plain', ext: null }).field;
807
- expect(header).to.equal('Hawk id="123456", ts="1353809207", nonce="Ygvqdz", hash="2QfCt3GuY9HQnHWyWD3wX68ZOKbynqlfYmuO2ZBRqtY=", mac="HTgtd0jPI6E4izx8e4OHdO36q00xFCU0FolNq3RiCYs="');
808
- done();
809
- });
810
-
811
- it('returns a valid authorization header (uri object)', function (done) {
812
-
813
- var credentials = {
814
- id: '123456',
815
- key: '2983d45yun89q',
816
- algorithm: 'sha256'
817
- };
818
-
819
- var uri = Browser.utils.parseUri('https://example.net/somewhere/over/the/rainbow');
820
- var header = Browser.client.header(uri, 'POST', { credentials: credentials, timestamp: 1353809207, nonce: 'Ygvqdz', payload: 'something to write about', contentType: 'text/plain' }).field;
821
- expect(header).to.equal('Hawk id="123456", ts="1353809207", nonce="Ygvqdz", hash="2QfCt3GuY9HQnHWyWD3wX68ZOKbynqlfYmuO2ZBRqtY=", mac="HTgtd0jPI6E4izx8e4OHdO36q00xFCU0FolNq3RiCYs="');
822
- done();
823
- });
824
-
825
- it('errors on missing options', function (done) {
826
-
827
- var header = Browser.client.header('https://example.net/somewhere/over/the/rainbow', 'POST');
828
- expect(header.field).to.equal('');
829
- expect(header.err).to.equal('Invalid argument type');
830
- done();
831
- });
832
-
833
- it('errors on empty uri', function (done) {
834
-
835
- var credentials = {
836
- id: '123456',
837
- key: '2983d45yun89q',
838
- algorithm: 'sha256'
839
- };
840
-
841
- var header = Browser.client.header('', 'POST', { credentials: credentials, timestamp: 1353809207, nonce: 'Ygvqdz', payload: 'something to write about', contentType: 'text/plain' });
842
- expect(header.field).to.equal('');
843
- expect(header.err).to.equal('Invalid argument type');
844
- done();
845
- });
846
-
847
- it('errors on invalid uri', function (done) {
848
-
849
- var credentials = {
850
- id: '123456',
851
- key: '2983d45yun89q',
852
- algorithm: 'sha256'
853
- };
854
-
855
- var header = Browser.client.header(4, 'POST', { credentials: credentials, timestamp: 1353809207, nonce: 'Ygvqdz', payload: 'something to write about', contentType: 'text/plain' });
856
- expect(header.field).to.equal('');
857
- expect(header.err).to.equal('Invalid argument type');
858
- done();
859
- });
860
-
861
- it('errors on missing method', function (done) {
862
-
863
- var credentials = {
864
- id: '123456',
865
- key: '2983d45yun89q',
866
- algorithm: 'sha256'
867
- };
868
-
869
- var header = Browser.client.header('https://example.net/somewhere/over/the/rainbow', '', { credentials: credentials, timestamp: 1353809207, nonce: 'Ygvqdz', payload: 'something to write about', contentType: 'text/plain' });
870
- expect(header.field).to.equal('');
871
- expect(header.err).to.equal('Invalid argument type');
872
- done();
873
- });
874
-
875
- it('errors on invalid method', function (done) {
876
-
877
- var credentials = {
878
- id: '123456',
879
- key: '2983d45yun89q',
880
- algorithm: 'sha256'
881
- };
882
-
883
- var header = Browser.client.header('https://example.net/somewhere/over/the/rainbow', 5, { credentials: credentials, timestamp: 1353809207, nonce: 'Ygvqdz', payload: 'something to write about', contentType: 'text/plain' });
884
- expect(header.field).to.equal('');
885
- expect(header.err).to.equal('Invalid argument type');
886
- done();
887
- });
888
-
889
- it('errors on missing credentials', function (done) {
890
-
891
- var header = Browser.client.header('https://example.net/somewhere/over/the/rainbow', 'POST', { ext: 'Bazinga!', timestamp: 1353809207 });
892
- expect(header.field).to.equal('');
893
- expect(header.err).to.equal('Invalid credentials object');
894
- done();
895
- });
896
-
897
- it('errors on invalid credentials (id)', function (done) {
898
-
899
- var credentials = {
900
- key: '2983d45yun89q',
901
- algorithm: 'sha256'
902
- };
903
-
904
- var header = Browser.client.header('https://example.net/somewhere/over/the/rainbow', 'POST', { credentials: credentials, ext: 'Bazinga!', timestamp: 1353809207 });
905
- expect(header.field).to.equal('');
906
- expect(header.err).to.equal('Invalid credentials object');
907
- done();
908
- });
909
-
910
- it('errors on invalid credentials (key)', function (done) {
911
-
912
- var credentials = {
913
- id: '123456',
914
- algorithm: 'sha256'
915
- };
916
-
917
- var header = Browser.client.header('https://example.net/somewhere/over/the/rainbow', 'POST', { credentials: credentials, ext: 'Bazinga!', timestamp: 1353809207 });
918
- expect(header.field).to.equal('');
919
- expect(header.err).to.equal('Invalid credentials object');
920
- done();
921
- });
922
-
923
- it('errors on invalid algorithm', function (done) {
924
-
925
- var credentials = {
926
- id: '123456',
927
- key: '2983d45yun89q',
928
- algorithm: 'hmac-sha-0'
929
- };
930
-
931
- var header = Browser.client.header('https://example.net/somewhere/over/the/rainbow', 'POST', { credentials: credentials, payload: 'something, anything!', ext: 'Bazinga!', timestamp: 1353809207 });
932
- expect(header.field).to.equal('');
933
- expect(header.err).to.equal('Unknown algorithm');
934
- done();
935
- });
936
-
937
- it('uses a pre-calculated payload hash', function (done) {
938
-
939
- var credentials = {
940
- id: '123456',
941
- key: '2983d45yun89q',
942
- algorithm: 'sha256'
943
- };
944
-
945
- var options = { credentials: credentials, ext: 'Bazinga!', timestamp: 1353809207, nonce: 'Ygvqdz', payload: 'something to write about', contentType: 'text/plain' };
946
- options.hash = Browser.crypto.calculatePayloadHash(options.payload, credentials.algorithm, options.contentType);
947
- var header = Browser.client.header('https://example.net/somewhere/over/the/rainbow', 'POST', options).field;
948
- expect(header).to.equal('Hawk id="123456", ts="1353809207", nonce="Ygvqdz", hash="2QfCt3GuY9HQnHWyWD3wX68ZOKbynqlfYmuO2ZBRqtY=", ext="Bazinga!", mac="q1CwFoSHzPZSkbIvl0oYlD+91rBUEvFk763nMjMndj8="');
949
- done();
950
- });
951
- });
952
-
953
- describe('authenticate()', function () {
954
-
955
- it('skips tsm validation when missing ts', function (done) {
956
-
957
- var res = {
958
- headers: {
959
- 'www-authenticate': 'Hawk error="Stale timestamp"'
960
- },
961
- getResponseHeader: function (header) {
962
-
963
- return res.headers[header.toLowerCase()];
964
- }
965
- };
966
-
967
- var credentials = {
968
- id: '123456',
969
- key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn',
970
- algorithm: 'sha256',
971
- user: 'steve'
972
- };
973
-
974
- var artifacts = {
975
- ts: 1402135580,
976
- nonce: 'iBRB6t',
977
- method: 'GET',
978
- resource: '/resource/4?filter=a',
979
- host: 'example.com',
980
- port: '8080',
981
- ext: 'some-app-data'
982
- };
983
-
984
- expect(Browser.client.authenticate(res, credentials, artifacts)).to.equal(true);
985
- done();
986
- });
987
-
988
- it('returns false on invalid header', function (done) {
989
-
990
- var res = {
991
- headers: {
992
- 'server-authorization': 'Hawk mac="abc", bad="xyz"'
993
- },
994
- getResponseHeader: function (header) {
995
-
996
- return res.headers[header.toLowerCase()];
997
- }
998
- };
999
-
1000
- expect(Browser.client.authenticate(res, {})).to.equal(false);
1001
- done();
1002
- });
1003
-
1004
- it('returns false on invalid mac', function (done) {
1005
-
1006
- var res = {
1007
- headers: {
1008
- 'content-type': 'text/plain',
1009
- 'server-authorization': 'Hawk mac="_IJRsMl/4oL+nn+vKoeVZPdCHXB4yJkNnBbTbHFZUYE=", hash="f9cDF/TDm7TkYRLnGwRMfeDzT6LixQVLvrIKhh0vgmM=", ext="response-specific"'
1010
- },
1011
- getResponseHeader: function (header) {
1012
-
1013
- return res.headers[header.toLowerCase()];
1014
- }
1015
- };
1016
-
1017
- var artifacts = {
1018
- method: 'POST',
1019
- host: 'example.com',
1020
- port: '8080',
1021
- resource: '/resource/4?filter=a',
1022
- ts: '1362336900',
1023
- nonce: 'eb5S_L',
1024
- hash: 'nJjkVtBE5Y/Bk38Aiokwn0jiJxt/0S2WRSUwWLCf5xk=',
1025
- ext: 'some-app-data',
1026
- app: undefined,
1027
- dlg: undefined,
1028
- mac: 'BlmSe8K+pbKIb6YsZCnt4E1GrYvY1AaYayNR82dGpIk=',
1029
- id: '123456'
1030
- };
1031
-
1032
- var credentials = {
1033
- id: '123456',
1034
- key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn',
1035
- algorithm: 'sha256',
1036
- user: 'steve'
1037
- };
1038
-
1039
- expect(Browser.client.authenticate(res, credentials, artifacts)).to.equal(false);
1040
- done();
1041
- });
1042
-
1043
- it('returns true on ignoring hash', function (done) {
1044
-
1045
- var res = {
1046
- headers: {
1047
- 'content-type': 'text/plain',
1048
- 'server-authorization': 'Hawk mac="XIJRsMl/4oL+nn+vKoeVZPdCHXB4yJkNnBbTbHFZUYE=", hash="f9cDF/TDm7TkYRLnGwRMfeDzT6LixQVLvrIKhh0vgmM=", ext="response-specific"'
1049
- },
1050
- getResponseHeader: function (header) {
1051
-
1052
- return res.headers[header.toLowerCase()];
1053
- }
1054
- };
1055
-
1056
- var artifacts = {
1057
- method: 'POST',
1058
- host: 'example.com',
1059
- port: '8080',
1060
- resource: '/resource/4?filter=a',
1061
- ts: '1362336900',
1062
- nonce: 'eb5S_L',
1063
- hash: 'nJjkVtBE5Y/Bk38Aiokwn0jiJxt/0S2WRSUwWLCf5xk=',
1064
- ext: 'some-app-data',
1065
- app: undefined,
1066
- dlg: undefined,
1067
- mac: 'BlmSe8K+pbKIb6YsZCnt4E1GrYvY1AaYayNR82dGpIk=',
1068
- id: '123456'
1069
- };
1070
-
1071
- var credentials = {
1072
- id: '123456',
1073
- key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn',
1074
- algorithm: 'sha256',
1075
- user: 'steve'
1076
- };
1077
-
1078
- expect(Browser.client.authenticate(res, credentials, artifacts)).to.equal(true);
1079
- done();
1080
- });
1081
-
1082
- it('errors on invalid WWW-Authenticate header format', function (done) {
1083
-
1084
- var res = {
1085
- headers: {
1086
- 'www-authenticate': 'Hawk ts="1362346425875", tsm="PhwayS28vtnn3qbv0mqRBYSXebN/zggEtucfeZ620Zo=", x="Stale timestamp"'
1087
- },
1088
- getResponseHeader: function (header) {
1089
-
1090
- return res.headers[header.toLowerCase()];
1091
- }
1092
- };
1093
-
1094
- expect(Browser.client.authenticate(res, {})).to.equal(false);
1095
- done();
1096
- });
1097
-
1098
- it('errors on invalid WWW-Authenticate header format', function (done) {
1099
-
1100
- var credentials = {
1101
- id: '123456',
1102
- key: 'werxhqb98rpaxn39848xrunpaw3489ruxnpa98w4rxn',
1103
- algorithm: 'sha256',
1104
- user: 'steve'
1105
- };
1106
-
1107
- var res = {
1108
- headers: {
1109
- 'www-authenticate': 'Hawk ts="1362346425875", tsm="hwayS28vtnn3qbv0mqRBYSXebN/zggEtucfeZ620Zo=", error="Stale timestamp"'
1110
- },
1111
- getResponseHeader: function (header) {
1112
-
1113
- return res.headers[header.toLowerCase()];
1114
- }
1115
- };
1116
-
1117
- expect(Browser.client.authenticate(res, credentials)).to.equal(false);
1118
- done();
1119
- });
1120
- });
1121
-
1122
- describe('message()', function () {
1123
-
1124
- it('generates an authorization then successfully parse it', function (done) {
1125
-
1126
- credentialsFunc('123456', function (err, credentials1) {
1127
-
1128
- var auth = Browser.client.message('example.com', 8080, 'some message', { credentials: credentials1 });
1129
- expect(auth).to.exist();
1130
-
1131
- Hawk.server.authenticateMessage('example.com', 8080, 'some message', auth, credentialsFunc, {}, function (err, credentials2) {
1132
-
1133
- expect(err).to.not.exist();
1134
- expect(credentials2.user).to.equal('steve');
1135
- done();
1136
- });
1137
- });
1138
- });
1139
-
1140
- it('generates an authorization using custom nonce/timestamp', function (done) {
1141
-
1142
- credentialsFunc('123456', function (err, credentials) {
1143
-
1144
- var auth = Browser.client.message('example.com', 8080, 'some message', { credentials: credentials, nonce: 'abc123', timestamp: 1398536270957 });
1145
- expect(auth).to.exist();
1146
- expect(auth.nonce).to.equal('abc123');
1147
- expect(auth.ts).to.equal(1398536270957);
1148
- done();
1149
- });
1150
- });
1151
-
1152
- it('errors on missing host', function (done) {
1153
-
1154
- credentialsFunc('123456', function (err, credentials) {
1155
-
1156
- var auth = Browser.client.message(null, 8080, 'some message', { credentials: credentials });
1157
- expect(auth).to.not.exist();
1158
- done();
1159
- });
1160
- });
1161
-
1162
- it('errors on invalid host', function (done) {
1163
-
1164
- credentialsFunc('123456', function (err, credentials) {
1165
-
1166
- var auth = Browser.client.message(5, 8080, 'some message', { credentials: credentials });
1167
- expect(auth).to.not.exist();
1168
- done();
1169
- });
1170
- });
1171
-
1172
- it('errors on missing port', function (done) {
1173
-
1174
- credentialsFunc('123456', function (err, credentials) {
1175
-
1176
- var auth = Browser.client.message('example.com', 0, 'some message', { credentials: credentials });
1177
- expect(auth).to.not.exist();
1178
- done();
1179
- });
1180
- });
1181
-
1182
- it('errors on invalid port', function (done) {
1183
-
1184
- credentialsFunc('123456', function (err, credentials) {
1185
-
1186
- var auth = Browser.client.message('example.com', 'a', 'some message', { credentials: credentials });
1187
- expect(auth).to.not.exist();
1188
- done();
1189
- });
1190
- });
1191
-
1192
- it('errors on missing message', function (done) {
1193
-
1194
- credentialsFunc('123456', function (err, credentials) {
1195
-
1196
- var auth = Browser.client.message('example.com', 8080, undefined, { credentials: credentials });
1197
- expect(auth).to.not.exist();
1198
- done();
1199
- });
1200
- });
1201
-
1202
- it('errors on null message', function (done) {
1203
-
1204
- credentialsFunc('123456', function (err, credentials) {
1205
-
1206
- var auth = Browser.client.message('example.com', 8080, null, { credentials: credentials });
1207
- expect(auth).to.not.exist();
1208
- done();
1209
- });
1210
- });
1211
-
1212
- it('errors on invalid message', function (done) {
1213
-
1214
- credentialsFunc('123456', function (err, credentials) {
1215
-
1216
- var auth = Browser.client.message('example.com', 8080, 5, { credentials: credentials });
1217
- expect(auth).to.not.exist();
1218
- done();
1219
- });
1220
- });
1221
-
1222
- it('errors on missing credentials', function (done) {
1223
-
1224
- var auth = Browser.client.message('example.com', 8080, 'some message', {});
1225
- expect(auth).to.not.exist();
1226
- done();
1227
- });
1228
-
1229
- it('errors on missing options', function (done) {
1230
-
1231
- var auth = Browser.client.message('example.com', 8080, 'some message');
1232
- expect(auth).to.not.exist();
1233
- done();
1234
- });
1235
-
1236
- it('errors on invalid credentials (id)', function (done) {
1237
-
1238
- credentialsFunc('123456', function (err, credentials) {
1239
-
1240
- var creds = Hoek.clone(credentials);
1241
- delete creds.id;
1242
- var auth = Browser.client.message('example.com', 8080, 'some message', { credentials: creds });
1243
- expect(auth).to.not.exist();
1244
- done();
1245
- });
1246
- });
1247
-
1248
- it('errors on invalid credentials (key)', function (done) {
1249
-
1250
- credentialsFunc('123456', function (err, credentials) {
1251
-
1252
- var creds = Hoek.clone(credentials);
1253
- delete creds.key;
1254
- var auth = Browser.client.message('example.com', 8080, 'some message', { credentials: creds });
1255
- expect(auth).to.not.exist();
1256
- done();
1257
- });
1258
- });
1259
-
1260
- it('errors on invalid algorithm', function (done) {
1261
-
1262
- credentialsFunc('123456', function (err, credentials) {
1263
-
1264
- var creds = Hoek.clone(credentials);
1265
- creds.algorithm = 'blah';
1266
- var auth = Browser.client.message('example.com', 8080, 'some message', { credentials: creds });
1267
- expect(auth).to.not.exist();
1268
- done();
1269
- });
1270
- });
1271
- });
1272
-
1273
- describe('authenticateTimestamp()', function (done) {
1274
-
1275
- it('validates a timestamp', function (done) {
1276
-
1277
- credentialsFunc('123456', function (err, credentials) {
1278
-
1279
- var tsm = Hawk.crypto.timestampMessage(credentials);
1280
- expect(Browser.client.authenticateTimestamp(tsm, credentials)).to.equal(true);
1281
- done();
1282
- });
1283
- });
1284
-
1285
- it('validates a timestamp without updating local time', function (done) {
1286
-
1287
- credentialsFunc('123456', function (err, credentials) {
1288
-
1289
- var offset = Browser.utils.getNtpOffset();
1290
- var tsm = Hawk.crypto.timestampMessage(credentials, 10000);
1291
- expect(Browser.client.authenticateTimestamp(tsm, credentials, false)).to.equal(true);
1292
- expect(offset).to.equal(Browser.utils.getNtpOffset());
1293
- done();
1294
- });
1295
- });
1296
-
1297
- it('detects a bad timestamp', function (done) {
1298
-
1299
- credentialsFunc('123456', function (err, credentials) {
1300
-
1301
- var tsm = Hawk.crypto.timestampMessage(credentials);
1302
- tsm.ts = 4;
1303
- expect(Browser.client.authenticateTimestamp(tsm, credentials)).to.equal(false);
1304
- done();
1305
- });
1306
- });
1307
- });
1308
- });
1309
-
1310
- describe('internals', function () {
1311
-
1312
- describe('LocalStorage', function () {
1313
-
1314
- it('goes through the full lifecycle', function (done) {
1315
-
1316
- var storage = new Browser.internals.LocalStorage();
1317
- expect(storage.length).to.equal(0);
1318
- expect(storage.getItem('a')).to.equal(null);
1319
- storage.setItem('a', 5);
1320
- expect(storage.length).to.equal(1);
1321
- expect(storage.key()).to.equal('a');
1322
- expect(storage.key(0)).to.equal('a');
1323
- expect(storage.getItem('a')).to.equal('5');
1324
- storage.setItem('b', 'test');
1325
- expect(storage.key()).to.equal('a');
1326
- expect(storage.key(0)).to.equal('a');
1327
- expect(storage.key(1)).to.equal('b');
1328
- expect(storage.length).to.equal(2);
1329
- expect(storage.getItem('b')).to.equal('test');
1330
- storage.removeItem('a');
1331
- expect(storage.length).to.equal(1);
1332
- expect(storage.getItem('a')).to.equal(null);
1333
- expect(storage.getItem('b')).to.equal('test');
1334
- storage.clear();
1335
- expect(storage.length).to.equal(0);
1336
- expect(storage.getItem('a')).to.equal(null);
1337
- expect(storage.getItem('b')).to.equal(null);
1338
- done();
1339
- });
1340
- });
1341
- });
1342
-
1343
- describe('utils', function () {
1344
-
1345
- describe('setStorage()', function () {
1346
-
1347
- it('sets storage for the first time', function (done) {
1348
-
1349
- Browser.utils.storage = new Browser.internals.LocalStorage(); // Reset state
1350
-
1351
- expect(Browser.utils.storage.getItem('hawk_ntp_offset')).to.not.exist();
1352
- Browser.utils.storage.setItem('test', '1');
1353
- Browser.utils.setStorage(new Browser.internals.LocalStorage());
1354
- expect(Browser.utils.storage.getItem('test')).to.not.exist();
1355
- Browser.utils.storage.setItem('test', '2');
1356
- expect(Browser.utils.storage.getItem('test')).to.equal('2');
1357
- done();
1358
- });
1359
- });
1360
-
1361
- describe('setNtpOffset()', function (done) {
1362
-
1363
- it('catches localStorage errors', { parallel: false }, function (done) {
1364
-
1365
- var orig = Browser.utils.storage.setItem;
1366
- var consoleOrig = console.error;
1367
- var count = 0;
1368
- console.error = function () {
1369
-
1370
- if (count++ === 2) {
1371
-
1372
- console.error = consoleOrig;
1373
- }
1374
- };
1375
-
1376
- Browser.utils.storage.setItem = function () {
1377
-
1378
- Browser.utils.storage.setItem = orig;
1379
- throw new Error();
1380
- };
1381
-
1382
- expect(function () {
1383
-
1384
- Browser.utils.setNtpOffset(100);
1385
- }).not.to.throw();
1386
-
1387
- done();
1388
- });
1389
- });
1390
-
1391
- describe('parseAuthorizationHeader()', function (done) {
1392
-
1393
- it('returns null on missing header', function (done) {
1394
-
1395
- expect(Browser.utils.parseAuthorizationHeader()).to.equal(null);
1396
- done();
1397
- });
1398
-
1399
- it('returns null on bad header syntax (structure)', function (done) {
1400
-
1401
- expect(Browser.utils.parseAuthorizationHeader('Hawk')).to.equal(null);
1402
- done();
1403
- });
1404
-
1405
- it('returns null on bad header syntax (parts)', function (done) {
1406
-
1407
- expect(Browser.utils.parseAuthorizationHeader(' ')).to.equal(null);
1408
- done();
1409
- });
1410
-
1411
- it('returns null on bad scheme name', function (done) {
1412
-
1413
- expect(Browser.utils.parseAuthorizationHeader('Basic asdasd')).to.equal(null);
1414
- done();
1415
- });
1416
-
1417
- it('returns null on bad attribute value', function (done) {
1418
-
1419
- expect(Browser.utils.parseAuthorizationHeader('Hawk test="\t"', ['test'])).to.equal(null);
1420
- done();
1421
- });
1422
-
1423
- it('returns null on duplicated attribute', function (done) {
1424
-
1425
- expect(Browser.utils.parseAuthorizationHeader('Hawk test="a", test="b"', ['test'])).to.equal(null);
1426
- done();
1427
- });
1428
- });
1429
-
1430
- describe('parseUri()', function () {
1431
-
1432
- it('returns empty object on invalid', function (done) {
1433
-
1434
- var uri = Browser.utils.parseUri('ftp');
1435
- expect(uri).to.deep.equal({ host: '', port: '', resource: '' });
1436
- done();
1437
- });
1438
-
1439
- it('returns empty port when unknown scheme', function (done) {
1440
-
1441
- var uri = Browser.utils.parseUri('ftp://example.com');
1442
- expect(uri.port).to.equal('');
1443
- done();
1444
- });
1445
-
1446
- it('returns default port when missing', function (done) {
1447
-
1448
- var uri = Browser.utils.parseUri('http://example.com');
1449
- expect(uri.port).to.equal('80');
1450
- done();
1451
- });
1452
-
1453
- it('handles unusual characters correctly', function (done) {
1454
-
1455
- var parts = {
1456
- protocol: 'http+vnd.my-extension',
1457
- user: 'user!$&\'()*+,;=%40my-domain.com',
1458
- password: 'pass!$&\'()*+,;=%40:word',
1459
- hostname: 'foo-bar.com',
1460
- port: '99',
1461
- pathname: '/path/%40/!$&\'()*+,;=:@/',
1462
- query: 'query%40/!$&\'()*+,;=:@/?',
1463
- fragment: 'fragm%40/!$&\'()*+,;=:@/?'
1464
- };
1465
-
1466
- parts.userInfo = parts.user + ':' + parts.password;
1467
- parts.authority = parts.userInfo + '@' + parts.hostname + ':' + parts.port;
1468
- parts.relative = parts.pathname + '?' + parts.query;
1469
- parts.resource = parts.relative + '#' + parts.fragment;
1470
- parts.source = parts.protocol + '://' + parts.authority + parts.resource;
1471
-
1472
- var uri = Browser.utils.parseUri(parts.source);
1473
- expect(uri.host).to.equal('foo-bar.com');
1474
- expect(uri.port).to.equal('99');
1475
- expect(uri.resource).to.equal(parts.pathname + '?' + parts.query);
1476
- done();
1477
- });
1478
- });
1479
-
1480
- var str = 'https://www.google.ca/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=url';
1481
- var base64str = 'aHR0cHM6Ly93d3cuZ29vZ2xlLmNhL3dlYmhwP3NvdXJjZWlkPWNocm9tZS1pbnN0YW50Jmlvbj0xJmVzcHY9MiZpZT1VVEYtOCNxPXVybA';
1482
-
1483
- describe('base64urlEncode()', function () {
1484
-
1485
- it('should base64 URL-safe decode a string', function (done) {
1486
-
1487
- expect(Browser.utils.base64urlEncode(str)).to.equal(base64str);
1488
- done();
1489
- });
1490
- });
1491
- });
1492
- });