From cc29c2eb72e032781f92cb23040f75e06f45e7fd Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 15 Feb 2018 15:09:30 -0800 Subject: [PATCH 01/14] scaffold built, ready to rock --- lab-greg-nicole-ahmed/.eslintignore | 5 + lab-greg-nicole-ahmed/.eslintrc.json | 27 + lab-greg-nicole-ahmed/.gitignore | 129 + lab-greg-nicole-ahmed/README.md | 1 + .../__test__/all-black.test.js | 1 + .../__test__/constructor.test.js | 1 + .../__test__/read-write-file.js | 1 + lab-greg-nicole-ahmed/data/palette-bitmap.bmp | Bin 0 -> 11078 bytes lab-greg-nicole-ahmed/lib/all-black.js | 1 + lab-greg-nicole-ahmed/lib/constructor.js | 1 + lab-greg-nicole-ahmed/lib/read-write-file.js | 1 + lab-greg-nicole-ahmed/package-lock.json | 3529 +++++++++++++++++ lab-greg-nicole-ahmed/package.json | 15 + 13 files changed, 3712 insertions(+) create mode 100644 lab-greg-nicole-ahmed/.eslintignore create mode 100644 lab-greg-nicole-ahmed/.eslintrc.json create mode 100644 lab-greg-nicole-ahmed/.gitignore create mode 100644 lab-greg-nicole-ahmed/README.md create mode 100644 lab-greg-nicole-ahmed/__test__/all-black.test.js create mode 100644 lab-greg-nicole-ahmed/__test__/constructor.test.js create mode 100644 lab-greg-nicole-ahmed/__test__/read-write-file.js create mode 100644 lab-greg-nicole-ahmed/data/palette-bitmap.bmp create mode 100644 lab-greg-nicole-ahmed/lib/all-black.js create mode 100644 lab-greg-nicole-ahmed/lib/constructor.js create mode 100644 lab-greg-nicole-ahmed/lib/read-write-file.js create mode 100644 lab-greg-nicole-ahmed/package-lock.json create mode 100644 lab-greg-nicole-ahmed/package.json diff --git a/lab-greg-nicole-ahmed/.eslintignore b/lab-greg-nicole-ahmed/.eslintignore new file mode 100644 index 0000000..05b1cf3 --- /dev/null +++ b/lab-greg-nicole-ahmed/.eslintignore @@ -0,0 +1,5 @@ +**/node_modules/* +**/vendor/* +**/*.min.js +**/coverage/* +**/build/* diff --git a/lab-greg-nicole-ahmed/.eslintrc.json b/lab-greg-nicole-ahmed/.eslintrc.json new file mode 100644 index 0000000..886827f --- /dev/null +++ b/lab-greg-nicole-ahmed/.eslintrc.json @@ -0,0 +1,27 @@ +{ + "env": { + "browser": true, + "node": true, + "commonjs": true, + "jest": true, + "es6": true + }, + "globals": { + "err": true, + "req": true, + "res": true, + "next": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "sourceType": "module" + }, + "rules": { + "no-console": "off", + "indent": [ "error", 2 ], + "quotes": ["error", "single", { "allowTemplateLiterals": true }], + "comma-dangle": ["error", "always-multiline"], + "semi": [ "error", "always" ], + "linebreak-style": ["error", "unix"] + } +} diff --git a/lab-greg-nicole-ahmed/.gitignore b/lab-greg-nicole-ahmed/.gitignore new file mode 100644 index 0000000..16d3424 --- /dev/null +++ b/lab-greg-nicole-ahmed/.gitignore @@ -0,0 +1,129 @@ + +# Created by https://www.gitignore.io/api/node,linux,macos,windows + +### Linux ### +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +### macOS ### +*.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Typescript v1 declaration files +typings/ + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env + + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + + +# End of https://www.gitignore.io/api/node,linux,macos,windows \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/README.md b/lab-greg-nicole-ahmed/README.md new file mode 100644 index 0000000..8d0ce35 --- /dev/null +++ b/lab-greg-nicole-ahmed/README.md @@ -0,0 +1 @@ +##Lab-Bitmap \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/__test__/all-black.test.js b/lab-greg-nicole-ahmed/__test__/all-black.test.js new file mode 100644 index 0000000..a726efc --- /dev/null +++ b/lab-greg-nicole-ahmed/__test__/all-black.test.js @@ -0,0 +1 @@ +'use strict'; \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/__test__/constructor.test.js b/lab-greg-nicole-ahmed/__test__/constructor.test.js new file mode 100644 index 0000000..a726efc --- /dev/null +++ b/lab-greg-nicole-ahmed/__test__/constructor.test.js @@ -0,0 +1 @@ +'use strict'; \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/__test__/read-write-file.js b/lab-greg-nicole-ahmed/__test__/read-write-file.js new file mode 100644 index 0000000..a726efc --- /dev/null +++ b/lab-greg-nicole-ahmed/__test__/read-write-file.js @@ -0,0 +1 @@ +'use strict'; \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/data/palette-bitmap.bmp b/lab-greg-nicole-ahmed/data/palette-bitmap.bmp new file mode 100644 index 0000000000000000000000000000000000000000..97ad0df321f8762c0bf9a7c50cf2f2177a19bd46 GIT binary patch literal 11078 zcmeI1vCC~o6~!lD;l%@2EN*oR5z&B!&xb^Ufj~eDgCHp)VxbTT97mSQczLIiCsY!#mCx7OZs=G^bgdv-Q&-u>pxnR8~Xz1E(YbMAeweD%wp z87?n;XpHC8`cC~lH$LqCkA8ZLk9{P6<2iNlr}Fuae`37!{Flb(UVL+W@%4Adr@r^s z@#e4IAHV#=KgSFI`uF(SKYlSD{Ql8+`)6MmpMC4q@yS!hAq{NKtMyECSXr0vd5;0VB$56kII6NMl(l} zu=~|5_d8w^(ps+L1T9KL2FuQ~x5EBG3g9jlMR3|GA_0PmIj57{g2q7PB{WWvyN!@+ zYxoXmT@&7Cx_muj4(UE=N}+|Cvyp_a2{D~XQfagy3Oa{&DQ82_YC(Y*gC~5OL{m(+ zz{QbhkAOQDnO0%(jI+EKM<_%xl_)8mRLMZ|R6Y{F>irYU+nNyM)LC=NEHF^CJPL~3 zWCd32-H$;kgm#O%oVS+Kc{?fbGHinhQ7}n@@t|v9jx+x#Ax1M97sg589P}AUCL;n> ztwL>o){#4I>O)etU?@=G3l?Oit&Y7GNroKq zyr5NOK|M<0EF1wZ2HOO@i|28*y(5c3F7a~H1Ug>8LS6yxoPs{+s4I!Qa8YBcawq|q zwaDOPhYj6+z9?u0j&_P;mGp2kyGcU!Fa#n8`eXKsq!kscqFk z$t}@T!q@@?72pOBD(du)C$PhfhEigAy6;Yz_*WH?2T5rOH43{xJrrFdM@3UUF@Ri%W{is*c#4o%Nu=2{ zRvNIvp{0=%)oGCth_v$Ew_l$(cB8TtOAbO3dR-7R-pmqwbEt2406Yq0UQD&?++->U#lqa7M z{W=9zBtV}a_F>?XaC>!uf-V1M3hlSgmfvv#9E&XJ2p`9(Gm&8N)RkW%dAb}Dq0t;v ze6&xgW-JRq&)8r;Sq5%{Z}7@T&KlW<^@-Imv7GwLMRPz&zb$tuV}FZCD$J{)2ZDma zB{HJD1Qi0ji+Ri1-n2`W1Uv*g$tnQ?m2uWya#zNIAOLXK9!sHRe0Lsh*NFnhDAhdH zMe!5{228xcfVBRU{7zH2ajoyJ=B7n6(Lgr6qFptgL6 z2A_Tt``Uuvf^@_zeR20HEH%rGYqPBnGGUt+mP6^86B24ATx)QHL==7fFeoR1R+|Qo zSsDr+3Ro7Vmf*K)rj=+c;)!Mf<_`oeK{e5Wo^YyWbMnk$>S|g&ZDKiEfqQt-aGJk^ ziiL+sm01jbOYC+wnKdaD-91a#CBDQsz9L5Q|;*E@A5WJ-<5^fiO zoeBrf+bLp&2i;JPI}Gl#3^WT2*+uShkois*7#@s2ocL&bH~X9TVT1>$Y8T2TWRMRRL@YYwh?xu@7B$^a z<#3>P0d_*uW5aa7D6Nj-5WJZBPDVok5xATcK`yDDpyks%j~&--(=X$sLqB0o7374G zxw$C7wiJs9kr{KZYL^T%n|CUsup7GQ0p+56>}H+XG%E-VSg5kRY8hYEn)1Y`9_8F- zZJAi`C=^d&9T_q$0=BhSN8!UpvFrnhIu$-O@FX34ZHtg-XN+iY4HY1pRYWjC2^ra2VF1KvC zD9iL(weft?8q`u`Y9%eYu$?aKNQ;X3&EHhc>Lh^S(38_m$npw?(vf8Xk?${~7BvF0 zzT+muVwgBgqeDnsi%Axu6F2ckO7yc*km|ssFr8|_PGovfL`9KRZ ziygp4amy-wsz{D=Q;-o>;0IIS5a4`QZ3@jR?^>!nlkJ|I)|oP5<7vuP znMall?=Rsvgb>fG1nhi3gAB9v=BUY)?J?;gPZpIrF*5_qVs~iCBiEoK!Vf2-CnT1+k!q#}}jR4`Dm2$gsdvgsvRj0zm|{KI+ui(#}diBc?X>kQOc^kifi z)-Cf+!PYo7ZL{Ey`Y?{$=B)*rL%TNd)$sDyalMg=bz3r#8`;y&VL+8nMua(gBJgl& zZDTyQ~2i5&|3Fy{Xe=h$87~rCw literal 0 HcmV?d00001 diff --git a/lab-greg-nicole-ahmed/lib/all-black.js b/lab-greg-nicole-ahmed/lib/all-black.js new file mode 100644 index 0000000..a726efc --- /dev/null +++ b/lab-greg-nicole-ahmed/lib/all-black.js @@ -0,0 +1 @@ +'use strict'; \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/lib/constructor.js b/lab-greg-nicole-ahmed/lib/constructor.js new file mode 100644 index 0000000..a726efc --- /dev/null +++ b/lab-greg-nicole-ahmed/lib/constructor.js @@ -0,0 +1 @@ +'use strict'; \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/lib/read-write-file.js b/lab-greg-nicole-ahmed/lib/read-write-file.js new file mode 100644 index 0000000..a726efc --- /dev/null +++ b/lab-greg-nicole-ahmed/lib/read-write-file.js @@ -0,0 +1 @@ +'use strict'; \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/package-lock.json b/lab-greg-nicole-ahmed/package-lock.json new file mode 100644 index 0000000..61fed6f --- /dev/null +++ b/lab-greg-nicole-ahmed/package-lock.json @@ -0,0 +1,3529 @@ +{ + "name": "lab-greg-nicole-ahmed", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.40.tgz", + "integrity": "sha512-eVXQSbu/RimU6OKcK2/gDJVTFcxXJI4sHbIqw2mhwMZeQ2as/8AhS9DGkEDoHMBBNJZ5B0US63lF56x+KDcxiA==", + "dev": true, + "requires": { + "@babel/highlight": "7.0.0-beta.40" + } + }, + "@babel/highlight": { + "version": "7.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.40.tgz", + "integrity": "sha512-mOhhTrzieV6VO7odgzFGFapiwRK0ei8RZRhfzHhb6cpX3QM8XXuCLXWjN8qBB7JReDdUR80V3LFfFrGUYevhNg==", + "dev": true, + "requires": { + "chalk": "2.3.1", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", + "dev": true + }, + "acorn": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz", + "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ==", + "dev": true + }, + "acorn-globals": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", + "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", + "dev": true, + "requires": { + "acorn": "5.4.1" + } + }, + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" + } + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-escapes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", + "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "dev": true, + "requires": { + "lodash": "4.17.5" + } + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.1", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.5", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.5", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-jest": { + "version": "22.2.2", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-22.2.2.tgz", + "integrity": "sha512-GOutNE3jhFj5WWLd09e9+kkPwzqOSWRj1J1YslVxnKkmgKaWjfvE9k3JGMf8MJYGzEZr6dVK5bg9RWRi/2tGiQ==", + "dev": true, + "requires": { + "babel-plugin-istanbul": "4.1.5", + "babel-preset-jest": "22.2.0" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-istanbul": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", + "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "istanbul-lib-instrument": "1.9.2", + "test-exclude": "4.2.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.2.0.tgz", + "integrity": "sha512-NwicD5n1YQaj6sM3PVULdPBDk1XdlWvh8xBeUJg3nqZwp79Vofb8Q7GOVeWoZZ/RMlMuJMMrEAgSQl/p392nLA==", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-preset-jest": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-22.2.0.tgz", + "integrity": "sha512-p61cPMGYlSgfNScn1yQuVnLguWE4bjhB/br4KQDMbYZG+v6ryE5Ch7TKukjA6mRuIQj1zhyou7Sbpqrh4/N6Pg==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "22.2.0", + "babel-plugin-syntax-object-rest-spread": "6.13.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.3", + "home-or-tmp": "2.0.0", + "lodash": "4.17.5", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + }, + "dependencies": { + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.3", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.5" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.5" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.5", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "boom": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", + "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", + "dev": true, + "requires": { + "hoek": "4.2.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "browser-process-hrtime": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", + "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=", + "dev": true + }, + "browser-resolve": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", + "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", + "dev": true, + "requires": { + "resolve": "1.1.7" + } + }, + "bser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", + "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", + "dev": true, + "requires": { + "node-int64": "0.4.0" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "ci-info": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", + "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + } + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "content-type-parser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "core-js": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", + "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + }, + "cryptiles": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", + "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", + "dev": true, + "requires": { + "boom": "5.2.0" + }, + "dependencies": { + "boom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", + "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", + "dev": true, + "requires": { + "hoek": "4.2.1" + } + } + } + }, + "cssom": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", + "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", + "dev": true + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "requires": { + "cssom": "0.3.2" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "diff": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", + "integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", + "dev": true + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dev": true, + "requires": { + "webidl-conversions": "4.0.2" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es-abstract": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", + "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", + "dev": true, + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.1", + "is-callable": "1.1.3", + "is-regex": "1.0.4" + } + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", + "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "dev": true, + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.5.7" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "exec-sh": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz", + "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==", + "dev": true, + "requires": { + "merge": "1.2.0" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "expect": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-22.3.0.tgz", + "integrity": "sha512-woguB2yTY69vxUZoclqjPccHzUOd1s/mLx81kSSDg+7u6+2wfd5qh166DRoCq1KfaH/YXCTe+ogHgxj0i4LFPw==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "jest-diff": "22.1.0", + "jest-get-type": "22.1.0", + "jest-matcher-utils": "22.2.0", + "jest-message-util": "22.2.0", + "jest-regex-util": "22.1.0" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fb-watchman": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", + "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "dev": true, + "requires": { + "bser": "2.0.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "7.1.2", + "minimatch": "3.0.4" + } + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.6", + "mime-types": "2.1.17" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "handlebars": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz", + "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "dev": true, + "requires": { + "ajv": "5.5.2", + "har-schema": "2.0.0" + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "hawk": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", + "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", + "dev": true, + "requires": { + "boom": "4.3.1", + "cryptiles": "3.1.2", + "hoek": "4.2.1", + "sntp": "2.1.0" + } + }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", + "dev": true + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "requires": { + "whatwg-encoding": "1.0.3" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==", + "dev": true + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "dev": true, + "requires": { + "pkg-dir": "2.0.0", + "resolve-cwd": "2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true + }, + "is-ci": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz", + "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", + "dev": true, + "requires": { + "ci-info": "1.1.2" + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-generator-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", + "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "1.0.1" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-api": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.2.2.tgz", + "integrity": "sha512-kH5YRdqdbs5hiH4/Rr1Q0cSAGgjh3jTtg8vu9NLebBAoK3adVO4jk81J+TYOkTr2+Q4NLeb1ACvmEt65iG/Vbw==", + "dev": true, + "requires": { + "async": "2.6.0", + "fileset": "2.0.3", + "istanbul-lib-coverage": "1.1.2", + "istanbul-lib-hook": "1.1.0", + "istanbul-lib-instrument": "1.9.2", + "istanbul-lib-report": "1.1.3", + "istanbul-lib-source-maps": "1.2.3", + "istanbul-reports": "1.1.4", + "js-yaml": "3.10.0", + "mkdirp": "0.5.1", + "once": "1.4.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.2.tgz", + "integrity": "sha512-tZYA0v5A7qBSsOzcebJJ/z3lk3oSzH62puG78DbBA1+zupipX2CakDyiPV3pOb8He+jBwVimuwB0dTnh38hX0w==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz", + "integrity": "sha512-U3qEgwVDUerZ0bt8cfl3dSP3S6opBoOtk3ROO5f2EfBr/SRiD9FQqzwaZBqFORu8W7O0EXpai+k7kxHK13beRg==", + "dev": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.2.tgz", + "integrity": "sha512-nz8t4HQ2206a/3AXi+NHFWEa844DMpPsgbcUteJbt1j8LX1xg56H9rOMnhvcvVvPbW60qAIyrSk44H8ZDqaSSA==", + "dev": true, + "requires": { + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.1.2", + "semver": "5.5.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz", + "integrity": "sha512-D4jVbMDtT2dPmloPJS/rmeP626N5Pr3Rp+SovrPn1+zPChGHcggd/0sL29jnbm4oK9W0wHjCRsdch9oLd7cm6g==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "1.1.2", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz", + "integrity": "sha512-fDa0hwU/5sDXwAklXgAoCJCOsFsBplVQ6WBldz5UwaqOzmDhUK4nfuR7/G//G2lERlblUNJB8P6e8cXq3a7MlA==", + "dev": true, + "requires": { + "debug": "3.1.0", + "istanbul-lib-coverage": "1.1.2", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "source-map": "0.5.7" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "istanbul-reports": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.4.tgz", + "integrity": "sha512-DfSTVOTkuO+kRmbO8Gk650Wqm1WRGr6lrdi2EwDK1vxpS71vdlLd613EpzOKdIFioB5f/scJTjeWBnvd1FWejg==", + "dev": true, + "requires": { + "handlebars": "4.0.11" + } + }, + "jest": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-22.3.0.tgz", + "integrity": "sha512-LT4VWb2N5ZjLs6+UaI+6k0lyH8jlI+Mhb7nfWG6dLgUDhD4rFXQjMRL8owehZz46ODTWZ4eVe3fEMrKRp4Fing==", + "dev": true, + "requires": { + "import-local": "1.0.0", + "jest-cli": "22.3.0" + }, + "dependencies": { + "jest-cli": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-22.3.0.tgz", + "integrity": "sha512-CiUADkEcYuRdy3A3AXPpyK4hKq8UfM6M5vKmPSQSMLa7TWUDcB+NmIz5UAFYXnNdw4osNnEzTpsGBYeZLq3UZA==", + "dev": true, + "requires": { + "ansi-escapes": "3.0.0", + "chalk": "2.3.1", + "exit": "0.1.2", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "import-local": "1.0.0", + "is-ci": "1.1.0", + "istanbul-api": "1.2.2", + "istanbul-lib-coverage": "1.1.2", + "istanbul-lib-instrument": "1.9.2", + "istanbul-lib-source-maps": "1.2.3", + "jest-changed-files": "22.2.0", + "jest-config": "22.3.0", + "jest-environment-jsdom": "22.3.0", + "jest-get-type": "22.1.0", + "jest-haste-map": "22.3.0", + "jest-message-util": "22.2.0", + "jest-regex-util": "22.1.0", + "jest-resolve-dependencies": "22.1.0", + "jest-runner": "22.3.0", + "jest-runtime": "22.3.0", + "jest-snapshot": "22.2.0", + "jest-util": "22.3.0", + "jest-worker": "22.2.2", + "micromatch": "2.3.11", + "node-notifier": "5.2.1", + "realpath-native": "1.0.0", + "rimraf": "2.6.2", + "slash": "1.0.0", + "string-length": "2.0.0", + "strip-ansi": "4.0.0", + "which": "1.3.0", + "yargs": "10.1.2" + } + } + } + }, + "jest-changed-files": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-22.2.0.tgz", + "integrity": "sha512-SzqOvoPMrXB0NPvDrSPeKETpoUNCtNDOsFbCzAGWxqWVvNyrIMLpUjVExT3u3LfdVrENlrNGCfh5YoFd8+ZeXg==", + "dev": true, + "requires": { + "throat": "4.1.0" + } + }, + "jest-config": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.3.0.tgz", + "integrity": "sha512-/T3AyDY4FsRaqIsKk+oIItb5mePgIiyh12++fKt8ueISu7jwWf6Y9saodynQaZKtbWcJMDwgTfKz44DylDb1zA==", + "dev": true, + "requires": { + "chalk": "2.3.1", + "glob": "7.1.2", + "jest-environment-jsdom": "22.3.0", + "jest-environment-node": "22.3.0", + "jest-get-type": "22.1.0", + "jest-jasmine2": "22.3.0", + "jest-regex-util": "22.1.0", + "jest-resolve": "22.3.0", + "jest-util": "22.3.0", + "jest-validate": "22.2.2", + "pretty-format": "22.1.0" + } + }, + "jest-diff": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.1.0.tgz", + "integrity": "sha512-lowdbU/dzXh+2/MR5QcvU5KPNkO4JdAEYw0PkQCbIQIuy5+g3QZBuVhWh8179Fmpg4CQrz1WgoK/yQHDCHbqqw==", + "dev": true, + "requires": { + "chalk": "2.3.1", + "diff": "3.4.0", + "jest-get-type": "22.1.0", + "pretty-format": "22.1.0" + } + }, + "jest-docblock": { + "version": "22.2.2", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.2.2.tgz", + "integrity": "sha512-ymqH4vzNMA0BrRfbDfQ6+b/AI0FLwuEAjBa87HUcuIz0UN76zH+Qw7lpDvhELzNmxu1EfxP9cxMRnVgkHZ7vyA==", + "dev": true, + "requires": { + "detect-newline": "2.1.0" + } + }, + "jest-environment-jsdom": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.3.0.tgz", + "integrity": "sha512-3AwJ1qECmaiq52sn1ZEGJR0O8ZXfE3jWLYcUW+PcGMPcc+k3jFhCHYeUp7VK3njpFB6lmOIbsZs40S0kyMPDyA==", + "dev": true, + "requires": { + "jest-mock": "22.2.0", + "jest-util": "22.3.0", + "jsdom": "11.6.2" + } + }, + "jest-environment-node": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.3.0.tgz", + "integrity": "sha512-Pmpcm5n2YFzruhbAdV5RmEO0xoSnZVw326RLHoCIYhxcm7Vxacb8YKvRv9CbFbXgyQdwuamtaKENQz6yj35b9Q==", + "dev": true, + "requires": { + "jest-mock": "22.2.0", + "jest-util": "22.3.0" + } + }, + "jest-get-type": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", + "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==", + "dev": true + }, + "jest-haste-map": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.3.0.tgz", + "integrity": "sha512-eCU0/07j5lDnk6NldfZVv0ul1PqkOFjKwcLpzcj1BBEDYmWoXi8z+3Qoikl0/UM3pjbaVfQOgLZEgCzmzHfwdQ==", + "dev": true, + "requires": { + "fb-watchman": "2.0.0", + "graceful-fs": "4.1.11", + "jest-docblock": "22.2.2", + "jest-worker": "22.2.2", + "micromatch": "2.3.11", + "sane": "2.4.1" + } + }, + "jest-jasmine2": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.3.0.tgz", + "integrity": "sha512-m88tD8usgYJJErO7KEr0FqDDyiYCElaWbKqKLstsm/0mFANslhHYFFgIBM3uY+OT9v90mS40DBNMVwWRTpAxJA==", + "dev": true, + "requires": { + "callsites": "2.0.0", + "chalk": "2.3.1", + "co": "4.6.0", + "expect": "22.3.0", + "graceful-fs": "4.1.11", + "is-generator-fn": "1.0.0", + "jest-diff": "22.1.0", + "jest-matcher-utils": "22.2.0", + "jest-message-util": "22.2.0", + "jest-snapshot": "22.2.0", + "source-map-support": "0.5.3" + } + }, + "jest-leak-detector": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-22.1.0.tgz", + "integrity": "sha512-8QsCWkncWAqdvrXN4yXQp9vgWF6CT3RkRey+d06SIHX913uXzAJhJdZyo6eE+uHVYMxUbxqW93npbUFhAR0YxA==", + "dev": true, + "requires": { + "pretty-format": "22.1.0" + } + }, + "jest-matcher-utils": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.2.0.tgz", + "integrity": "sha512-jO0cnQ93mR4on+nbmEeK4bChCvLeMFN1bP2qjRjwFv5KzQt34y5SmUq9FgzKjZQZG8zUmaQN+/pHJMUQ0xAcgQ==", + "dev": true, + "requires": { + "chalk": "2.3.1", + "jest-get-type": "22.1.0", + "pretty-format": "22.1.0" + } + }, + "jest-message-util": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.2.0.tgz", + "integrity": "sha512-LHPYu5kyA07FZK2CpvJ0xBE+gqy+dW30sFU3oep78lmscyc27mVOWDVwzmROhUeY8LlYpW3mcpRB/w5ibD6ZkA==", + "dev": true, + "requires": { + "@babel/code-frame": "7.0.0-beta.40", + "chalk": "2.3.1", + "micromatch": "2.3.11", + "slash": "1.0.0", + "stack-utils": "1.0.1" + } + }, + "jest-mock": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-22.2.0.tgz", + "integrity": "sha512-eOfoUYLOB/JlxChOFkh/bzpWGqUXb9I+oOpkprHHs9L7nUNfL8Rk28h1ycWrqzWCEQ/jZBg/xIv7VdQkfAkOhw==", + "dev": true + }, + "jest-regex-util": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.1.0.tgz", + "integrity": "sha512-on0LqVS6Xeh69sw3d1RukVnur+lVOl3zkmb0Q54FHj9wHoq6dbtWqb3TSlnVUyx36hqjJhjgs/QLqs07Bzu72Q==", + "dev": true + }, + "jest-resolve": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.3.0.tgz", + "integrity": "sha512-OQzPRNCBw3KRPzDTJhuW9eXLrlsnv6tY5ArmKSKsDMA5t6EcYv1W/6DrNYqiIVi7Zcx4P+1hssFeWVZWp9TnDg==", + "dev": true, + "requires": { + "browser-resolve": "1.11.2", + "chalk": "2.3.1" + } + }, + "jest-resolve-dependencies": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-22.1.0.tgz", + "integrity": "sha512-76Ll61bD/Sus8wK8d+lw891EtiBJGJkWG8OuVDTEX0z3z2+jPujvQqSB2eQ+kCHyCsRwJ2PSjhn3UHqae/oEtA==", + "dev": true, + "requires": { + "jest-regex-util": "22.1.0" + } + }, + "jest-runner": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-22.3.0.tgz", + "integrity": "sha512-ch48IjHcOj+mIV9iMJsK4c0OcVd6OOKX6ggwttYJorypu+rEpgmpPXfucAh8q8F9SFt8nKByfjD6iHOWtd27sA==", + "dev": true, + "requires": { + "exit": "0.1.2", + "jest-config": "22.3.0", + "jest-docblock": "22.2.2", + "jest-haste-map": "22.3.0", + "jest-jasmine2": "22.3.0", + "jest-leak-detector": "22.1.0", + "jest-message-util": "22.2.0", + "jest-runtime": "22.3.0", + "jest-util": "22.3.0", + "jest-worker": "22.2.2", + "throat": "4.1.0" + } + }, + "jest-runtime": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-22.3.0.tgz", + "integrity": "sha512-e0BO1/by3bi0d7vMN7afVVD9kD9NEzmHrZgpJtTyxTN4qyL94iJyiPEd7WZxDySSNvA6Fd43LS7AbkMGhOaVJg==", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-jest": "22.2.2", + "babel-plugin-istanbul": "4.1.5", + "chalk": "2.3.1", + "convert-source-map": "1.5.1", + "exit": "0.1.2", + "graceful-fs": "4.1.11", + "jest-config": "22.3.0", + "jest-haste-map": "22.3.0", + "jest-regex-util": "22.1.0", + "jest-resolve": "22.3.0", + "jest-util": "22.3.0", + "json-stable-stringify": "1.0.1", + "micromatch": "2.3.11", + "realpath-native": "1.0.0", + "slash": "1.0.0", + "strip-bom": "3.0.0", + "write-file-atomic": "2.3.0", + "yargs": "10.1.2" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "jest-snapshot": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.2.0.tgz", + "integrity": "sha512-nc4hOfENTO/09NWJDz6ojf5zdAGPutQ4ZKmidWuEirTyBwhndxBlckO8ZaiQk9NDfDUeoVNptd6zJW84GWPRKw==", + "dev": true, + "requires": { + "chalk": "2.3.1", + "jest-diff": "22.1.0", + "jest-matcher-utils": "22.2.0", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "pretty-format": "22.1.0" + } + }, + "jest-util": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.3.0.tgz", + "integrity": "sha512-c/YVsxOI2tSwXqb19/3gnzBDVsrTG4D3dAJzHpdROxZdJ2dpI/zYKEdLDS2CSKDTbjftoeiW9PrOYiDGF2UKfw==", + "dev": true, + "requires": { + "callsites": "2.0.0", + "chalk": "2.3.1", + "graceful-fs": "4.1.11", + "is-ci": "1.1.0", + "jest-message-util": "22.2.0", + "jest-validate": "22.2.2", + "mkdirp": "0.5.1" + } + }, + "jest-validate": { + "version": "22.2.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.2.2.tgz", + "integrity": "sha512-YcZlnHYqQqLqSTj/E+mDkriqVmGOATTzseV+JFWa0XJ4Tpxji6+M66TcTl1PlbvQTMo+iVvvRixnPkF1mqNFjg==", + "dev": true, + "requires": { + "chalk": "2.3.1", + "jest-get-type": "22.1.0", + "leven": "2.1.0", + "pretty-format": "22.1.0" + } + }, + "jest-worker": { + "version": "22.2.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.2.2.tgz", + "integrity": "sha512-ZylDXjrFNt/OP6cUxwJFWwDgazP7hRjtCQbocFHyiwov+04Wm1x5PYzMGNJT53s4nwr0oo9ocYTImS09xOlUnw==", + "dev": true, + "requires": { + "merge-stream": "1.0.1" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", + "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "dev": true, + "requires": { + "argparse": "1.0.10", + "esprima": "4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jsdom": { + "version": "11.6.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.6.2.tgz", + "integrity": "sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q==", + "dev": true, + "requires": { + "abab": "1.0.4", + "acorn": "5.4.1", + "acorn-globals": "4.1.0", + "array-equal": "1.0.0", + "browser-process-hrtime": "0.1.2", + "content-type-parser": "1.0.2", + "cssom": "0.3.2", + "cssstyle": "0.2.37", + "domexception": "1.0.1", + "escodegen": "1.9.0", + "html-encoding-sniffer": "1.0.2", + "left-pad": "1.2.0", + "nwmatcher": "1.4.3", + "parse5": "4.0.0", + "pn": "1.1.0", + "request": "2.83.0", + "request-promise-native": "1.0.5", + "sax": "1.2.4", + "symbol-tree": "3.2.2", + "tough-cookie": "2.3.3", + "w3c-hr-time": "1.0.1", + "webidl-conversions": "4.0.2", + "whatwg-encoding": "1.0.3", + "whatwg-url": "6.4.0", + "ws": "4.0.0", + "xml-name-validator": "3.0.0" + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "left-pad": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz", + "integrity": "sha1-0wpzxrggHY99jnlWupYWCHpo4O4=", + "dev": true + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "lodash": { + "version": "4.17.5", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", + "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.4" + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.2.0" + } + }, + "merge": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", + "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=", + "dev": true + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dev": true, + "requires": { + "readable-stream": "2.3.4" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "mime-db": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", + "dev": true + }, + "mime-types": { + "version": "2.1.17", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", + "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "dev": true, + "requires": { + "mime-db": "1.30.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-notifier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.2.1.tgz", + "integrity": "sha512-MIBs+AAd6dJ2SklbbE8RUDRlIVhU8MaNLh1A9SUZDUHPiZkWLFde6UNwG41yQHZEToHgJMXqyVZ9UcS/ReOVTg==", + "dev": true, + "requires": { + "growly": "1.3.0", + "semver": "5.5.0", + "shellwords": "0.1.1", + "which": "1.3.0" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nwmatcher": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", + "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.10.0" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + }, + "dependencies": { + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + } + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "dev": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.2.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "2.1.0" + } + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-format": { + "version": "22.1.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.1.0.tgz", + "integrity": "sha512-0HHR5hCmjDGU4sez3w5zRDAAwn7V0vT4SgPiYPZ1XDm5sT3Icb+Bh+fsOP3+Y3UwPjMr7TbRj+L7eQyMkPAxAw==", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, + "readable-stream": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", + "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "realpath-native": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.0.0.tgz", + "integrity": "sha512-XJtlRJ9jf0E1H1SLeJyQ9PGzQD7S65h1pRXEcAeK48doKOnKxcgPeNohJvD5u/2sI9J1oke6E8bZHS/fmW1UiQ==", + "dev": true, + "requires": { + "util.promisify": "1.0.0" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "request": { + "version": "2.83.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", + "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", + "dev": true, + "requires": { + "aws-sign2": "0.7.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.0.3", + "hawk": "6.0.2", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.17", + "oauth-sign": "0.8.2", + "performance-now": "2.1.0", + "qs": "6.5.1", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.3", + "tunnel-agent": "0.6.0", + "uuid": "3.2.1" + } + }, + "request-promise-core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", + "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", + "dev": true, + "requires": { + "lodash": "4.17.5" + } + }, + "request-promise-native": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", + "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", + "dev": true, + "requires": { + "request-promise-core": "1.1.1", + "stealthy-require": "1.1.1", + "tough-cookie": "2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "optional": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "sane": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.4.1.tgz", + "integrity": "sha512-fW9svvNd81XzHDZyis9/tEY1bZikDGryy8Hi1BErPyNPYv47CdLseUN+tI5FBHWXEENRtj1SWtX/jBnggLaP0w==", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "exec-sh": "0.2.1", + "fb-watchman": "2.0.0", + "minimatch": "3.0.4", + "minimist": "1.2.0", + "walker": "1.0.7", + "watch": "0.18.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "sntp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", + "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", + "dev": true, + "requires": { + "hoek": "4.2.1" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", + "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", + "dev": true, + "requires": { + "source-map": "0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + } + }, + "stack-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", + "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", + "dev": true + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "dev": true, + "requires": { + "astral-regex": "1.0.0", + "strip-ansi": "4.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + } + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "dev": true + }, + "test-exclude": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.0.tgz", + "integrity": "sha512-8hMFzjxbPv6xSlwGhXSvOMJ/vTy3bkng+2pxmf6E1z6VF7I9nIyNfvHtaw+NBPgvz647gADBbMSbwLfZYppT/w==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "2.3.11", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", + "dev": true + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "dev": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + } + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "object.getownpropertydescriptors": "2.0.3" + } + }, + "uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + } + }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "dev": true, + "requires": { + "browser-process-hrtime": "0.1.2" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.11" + } + }, + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "dev": true, + "requires": { + "exec-sh": "0.2.1", + "minimist": "1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", + "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.19" + } + }, + "whatwg-url": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", + "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", + "dev": true, + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, + "ws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-4.0.0.tgz", + "integrity": "sha512-QYslsH44bH8O7/W2815u5DpnCpXWpEK44FmaHffNwgJI4JMaSZONgPBTOfrxJ29mXKbXak+LsJ2uAkDTYq2ptQ==", + "dev": true, + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.1" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-10.1.2.tgz", + "integrity": "sha512-ivSoxqBGYOqQVruxD35+EyCFDYNEFL/Uo6FcOnz+9xZdZzK0Zzw4r4KhbrME1Oo2gOggwJod2MnsdamSG7H9ig==", + "dev": true, + "requires": { + "cliui": "4.0.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "8.1.0" + }, + "dependencies": { + "cliui": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.0.0.tgz", + "integrity": "sha512-nY3W5Gu2racvdDk//ELReY+dHjb9PlIcVDFXP72nVIhq2Gy3LuVXYwJoPVudwQnv1shtohpgkdCKT2YaKY0CKw==", + "dev": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + } + } + }, + "yargs-parser": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-8.1.0.tgz", + "integrity": "sha512-yP+6QqN8BmrgW2ggLtTbdrOyBNSI7zBa4IykmiV5R1wl1JWNxQvWhMfMdmzIYtKU7oP3OOInY/tl2ov3BDjnJQ==", + "dev": true, + "requires": { + "camelcase": "4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + } + } +} diff --git a/lab-greg-nicole-ahmed/package.json b/lab-greg-nicole-ahmed/package.json new file mode 100644 index 0000000..cc63156 --- /dev/null +++ b/lab-greg-nicole-ahmed/package.json @@ -0,0 +1,15 @@ +{ + "name": "lab-greg-nicole-ahmed", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "jest" + }, + "keywords": [], + "author": "", + "license": "ISC", + "devDependencies": { + "jest": "^22.3.0" + } +} From 3d3888e12812fbbf17aa0d9e537b4401220ec008 Mon Sep 17 00:00:00 2001 From: nicoleweese Date: Thu, 15 Feb 2018 15:16:27 -0800 Subject: [PATCH 02/14] initial commit --- lab-greg-nicole-ahmed/index.js | 1 + lab-greg-nicole-ahmed/package.json | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 lab-greg-nicole-ahmed/index.js diff --git a/lab-greg-nicole-ahmed/index.js b/lab-greg-nicole-ahmed/index.js new file mode 100644 index 0000000..a726efc --- /dev/null +++ b/lab-greg-nicole-ahmed/index.js @@ -0,0 +1 @@ +'use strict'; \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/package.json b/lab-greg-nicole-ahmed/package.json index cc63156..4d3eb3d 100644 --- a/lab-greg-nicole-ahmed/package.json +++ b/lab-greg-nicole-ahmed/package.json @@ -11,5 +11,8 @@ "license": "ISC", "devDependencies": { "jest": "^22.3.0" + }, + "directories": { + "lib": "lib" } } From dc5c942436d1898029724b3d66d26a55d52f64fb Mon Sep 17 00:00:00 2001 From: nicoleweese Date: Thu, 15 Feb 2018 15:26:41 -0800 Subject: [PATCH 03/14] constructor finished --- lab-greg-nicole-ahmed/lib/constructor.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lab-greg-nicole-ahmed/lib/constructor.js b/lab-greg-nicole-ahmed/lib/constructor.js index a726efc..e66ee47 100644 --- a/lab-greg-nicole-ahmed/lib/constructor.js +++ b/lab-greg-nicole-ahmed/lib/constructor.js @@ -1 +1,12 @@ -'use strict'; \ No newline at end of file +'use strict'; + +module.export = function(data) { + function Bitmap (data) { + this.size = data.readInt32LE(2); + this.width = data.readInt32LE(18); + this.height = data.readInt32LE(20); + this.pixelAddress = data.readInt32LE(10); + this.pixels = data.toString('hex', this.pixelAddress, (this.pixelAddress + this.size)); + this.pixelArray = this.pixels.match((/.{1,8}/g)); + } +} \ No newline at end of file From f062dea3335b4e6404c6fa4b8f353aabeed606c2 Mon Sep 17 00:00:00 2001 From: nicoleweese Date: Thu, 15 Feb 2018 15:27:01 -0800 Subject: [PATCH 04/14] index.js file added --- lab-greg-nicole-ahmed/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lab-greg-nicole-ahmed/index.js b/lab-greg-nicole-ahmed/index.js index a726efc..eb109ab 100644 --- a/lab-greg-nicole-ahmed/index.js +++ b/lab-greg-nicole-ahmed/index.js @@ -1 +1,2 @@ -'use strict'; \ No newline at end of file +'use strict'; + From b5d9fb9d3c944a0fcfa8c8e58d527b04e30b08d7 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 15 Feb 2018 16:04:37 -0800 Subject: [PATCH 05/14] read and write file written --- lab-greg-nicole-ahmed/lib/read-write-file.js | 22 +++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/lab-greg-nicole-ahmed/lib/read-write-file.js b/lab-greg-nicole-ahmed/lib/read-write-file.js index a726efc..2bdb930 100644 --- a/lab-greg-nicole-ahmed/lib/read-write-file.js +++ b/lab-greg-nicole-ahmed/lib/read-write-file.js @@ -1 +1,21 @@ -'use strict'; \ No newline at end of file +'use strict'; + +const constructor = require('../lib/constructor.js'); +const fs = require('fs'); + + +const readFileHelper = module.exports = function(file, newFile, callback) { + let filePathRead = `${__dirname}/${file}`; + let filePathWrite = `${__dirname}/${newFile}`; + fs.readFile(filePathRead, function(err, data){ + // if(err) + let bitMap = constructor(data); + //let newBitmap = allblack(bitMap.pixelArray); + fs.writeFile(filePathWrite, newBitmap, function(err, data){ + // if(err) + console.log('file successfully created'); + }); + }); + + +}; \ No newline at end of file From f254ff22c5236a6d25750b67cd5ffc770d55beac Mon Sep 17 00:00:00 2001 From: Ahmed Ali Date: Thu, 15 Feb 2018 16:32:22 -0800 Subject: [PATCH 06/14] read write --- lab-greg-nicole-ahmed/lib/constructor.js | 2 ++ lab-greg-nicole-ahmed/lib/read-write-file.js | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lab-greg-nicole-ahmed/lib/constructor.js b/lab-greg-nicole-ahmed/lib/constructor.js index e66ee47..da2bd01 100644 --- a/lab-greg-nicole-ahmed/lib/constructor.js +++ b/lab-greg-nicole-ahmed/lib/constructor.js @@ -8,5 +8,7 @@ module.export = function(data) { this.pixelAddress = data.readInt32LE(10); this.pixels = data.toString('hex', this.pixelAddress, (this.pixelAddress + this.size)); this.pixelArray = this.pixels.match((/.{1,8}/g)); + this.header = data.slice(0, this.pixelAddress).toString('hex'); + this.end = data.slice(this.pixelAddress + this.size, data.length).toString('hex'); } } \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/lib/read-write-file.js b/lab-greg-nicole-ahmed/lib/read-write-file.js index 2bdb930..1b77244 100644 --- a/lab-greg-nicole-ahmed/lib/read-write-file.js +++ b/lab-greg-nicole-ahmed/lib/read-write-file.js @@ -10,7 +10,9 @@ const readFileHelper = module.exports = function(file, newFile, callback) { fs.readFile(filePathRead, function(err, data){ // if(err) let bitMap = constructor(data); - //let newBitmap = allblack(bitMap.pixelArray); + //let newBitmapString = allblack(bitMap.pixelArray); + let newBitmapTotal = bitMap.header + newBitmapString + bitMap.end; + let newBitmap = Buffer.from(newBitmapTotal); fs.writeFile(filePathWrite, newBitmap, function(err, data){ // if(err) console.log('file successfully created'); From 8d44621fe0615f287169baeabeffc027e14dbc1f Mon Sep 17 00:00:00 2001 From: nicoleweese Date: Thu, 15 Feb 2018 17:53:47 -0800 Subject: [PATCH 07/14] turned picture white!!!! --- lab-greg-nicole-ahmed/data/new.bmp | Bin 0 -> 10566 bytes lab-greg-nicole-ahmed/index.js | 5 ++++ lab-greg-nicole-ahmed/lib/all-black.js | 22 ++++++++++++++- lab-greg-nicole-ahmed/lib/constructor.js | 9 ++++-- lab-greg-nicole-ahmed/lib/read-write-file.js | 28 +++++++++++++------ 5 files changed, 53 insertions(+), 11 deletions(-) create mode 100644 lab-greg-nicole-ahmed/data/new.bmp diff --git a/lab-greg-nicole-ahmed/data/new.bmp b/lab-greg-nicole-ahmed/data/new.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a00d5c26944d11d1d88f78f9455516e6f4b8635b GIT binary patch literal 10566 zcmeIuu?c`c00Y20SO_-a5(@SXU}5JL?!SUQuS*CQ2!xckpU0Y(txJ}=uCFD1`^Pz% zhPNs8s=b8(0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5Fqe# Ffd_Lz>+b*n literal 0 HcmV?d00001 diff --git a/lab-greg-nicole-ahmed/index.js b/lab-greg-nicole-ahmed/index.js index eb109ab..79edf05 100644 --- a/lab-greg-nicole-ahmed/index.js +++ b/lab-greg-nicole-ahmed/index.js @@ -1,2 +1,7 @@ 'use strict'; +const fileReader = require('./lib/read-write-file.js'); +const allwhite = require('./lib/all-black.js'); + + +fileReader('palette-bitmap.bmp', 'new.bmp', allwhite); \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/lib/all-black.js b/lab-greg-nicole-ahmed/lib/all-black.js index a726efc..4029392 100644 --- a/lab-greg-nicole-ahmed/lib/all-black.js +++ b/lab-greg-nicole-ahmed/lib/all-black.js @@ -1 +1,21 @@ -'use strict'; \ No newline at end of file +'use strict'; + +module.exports = function(array) { + let colorString = ''; + let colorPalette = ''; + let numOfZeros = array.length * 8; + + + + for(var i = 0; i < numOfZeros; i++) { + colorString += 'f'; + } + + for(var j = 0; j < 1024; j++) { + colorPalette += 'f'; + } + + // console.log('black string', blackString); + + return {colorString: colorString, colorPalette: colorPalette}; +} \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/lib/constructor.js b/lab-greg-nicole-ahmed/lib/constructor.js index da2bd01..c5e73a2 100644 --- a/lab-greg-nicole-ahmed/lib/constructor.js +++ b/lab-greg-nicole-ahmed/lib/constructor.js @@ -1,14 +1,19 @@ 'use strict'; -module.export = function(data) { +module.exports = function(data) { function Bitmap (data) { this.size = data.readInt32LE(2); this.width = data.readInt32LE(18); this.height = data.readInt32LE(20); this.pixelAddress = data.readInt32LE(10); this.pixels = data.toString('hex', this.pixelAddress, (this.pixelAddress + this.size)); + + + this.header = data.slice(0, 54).toString('hex'); + this.colorPalette = data.slice(54, this.pixelAddress).toString('hex'); this.pixelArray = this.pixels.match((/.{1,8}/g)); - this.header = data.slice(0, this.pixelAddress).toString('hex'); this.end = data.slice(this.pixelAddress + this.size, data.length).toString('hex'); } + + return new Bitmap(data); } \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/lib/read-write-file.js b/lab-greg-nicole-ahmed/lib/read-write-file.js index 1b77244..cd046e6 100644 --- a/lab-greg-nicole-ahmed/lib/read-write-file.js +++ b/lab-greg-nicole-ahmed/lib/read-write-file.js @@ -1,21 +1,33 @@ 'use strict'; -const constructor = require('../lib/constructor.js'); +const constructor = require('./constructor.js'); +const allwhite = require('./all-black.js'); const fs = require('fs'); +const path = require('path'); const readFileHelper = module.exports = function(file, newFile, callback) { - let filePathRead = `${__dirname}/${file}`; - let filePathWrite = `${__dirname}/${newFile}`; + let filePathRead = path.join(__dirname, '..', 'data', file); + + // console.log('path to read from', filePathRead); + + // console.log('file path we sent', `${file}`); + let filePathWrite = `${__dirname}/../data/${newFile}`; + fs.readFile(filePathRead, function(err, data){ // if(err) + console.log('this is our file from the fileRead', data); let bitMap = constructor(data); - //let newBitmapString = allblack(bitMap.pixelArray); - let newBitmapTotal = bitMap.header + newBitmapString + bitMap.end; - let newBitmap = Buffer.from(newBitmapTotal); - fs.writeFile(filePathWrite, newBitmap, function(err, data){ + console.log('this is our callback', callback); + let newBitmapObj = callback(bitMap.pixelArray); + let newBitmapTotal = bitMap.header + newBitmapObj.colorPalette + newBitmapObj.colorString + bitMap.end; + let newBitmap = Buffer.from(newBitmapTotal, 'hex'); + // console.log(newBitmap.toString('hex')); + // console.log('new bitmap buffer', newBitmap); + fs.writeFile(filePathWrite, newBitmap, 'hex', function(err, data){ // if(err) - console.log('file successfully created'); + // console.log('file successfully created'); + }); }); From 35548ebdb8387e4ceaac3c570edaaa7f0b9fe7b1 Mon Sep 17 00:00:00 2001 From: nicoleweese Date: Fri, 16 Feb 2018 13:37:00 -0800 Subject: [PATCH 08/14] fixed constructor offsets --- lab-greg-nicole-ahmed/lib/constructor.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lab-greg-nicole-ahmed/lib/constructor.js b/lab-greg-nicole-ahmed/lib/constructor.js index c5e73a2..e6594af 100644 --- a/lab-greg-nicole-ahmed/lib/constructor.js +++ b/lab-greg-nicole-ahmed/lib/constructor.js @@ -2,9 +2,12 @@ module.exports = function(data) { function Bitmap (data) { - this.size = data.readInt32LE(2); + this.size = data.readInt32LE(34); + console.log('size:', this.size); this.width = data.readInt32LE(18); - this.height = data.readInt32LE(20); + console.log('width:', this.width); + this.height = data.readInt32LE(22); + console.log('height', this.height); this.pixelAddress = data.readInt32LE(10); this.pixels = data.toString('hex', this.pixelAddress, (this.pixelAddress + this.size)); From f03ee215e01f88943898c68628eba1908de400ad Mon Sep 17 00:00:00 2001 From: Ahmed Ali Date: Fri, 16 Feb 2018 14:16:24 -0800 Subject: [PATCH 09/14] blue stripe --- lab-greg-nicole-ahmed/data/blueStripe.bmp | Bin 0 -> 1082 bytes lab-greg-nicole-ahmed/index.js | 4 +++- lab-greg-nicole-ahmed/lib/all-black.js | 4 ++-- lab-greg-nicole-ahmed/lib/blue-stripe.js | 16 ++++++++++++++++ lab-greg-nicole-ahmed/lib/read-write-file.js | 2 +- 5 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 lab-greg-nicole-ahmed/data/blueStripe.bmp create mode 100644 lab-greg-nicole-ahmed/lib/blue-stripe.js diff --git a/lab-greg-nicole-ahmed/data/blueStripe.bmp b/lab-greg-nicole-ahmed/data/blueStripe.bmp new file mode 100644 index 0000000000000000000000000000000000000000..30bd1c77421ea383b8e5cd14b6dc6b9b4b6ff8d1 GIT binary patch literal 1082 zcmZ?rb<<`512Yx|1`Qx91&SFNIKbip>I@7*+z`yb2owTgATUu-VzAM0WiYf%W3UeE zXHYA=&ycp@Cc~`5?- Date: Fri, 16 Feb 2018 14:38:01 -0800 Subject: [PATCH 10/14] blah --- lab-greg-nicole-ahmed/data/blueStripe.bmp | Bin 1082 -> 11078 bytes lab-greg-nicole-ahmed/lib/blue-stripe.js | 10 ++++++---- lab-greg-nicole-ahmed/lib/constructor.js | 9 +++++---- lab-greg-nicole-ahmed/lib/read-write-file.js | 5 +++-- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/lab-greg-nicole-ahmed/data/blueStripe.bmp b/lab-greg-nicole-ahmed/data/blueStripe.bmp index 30bd1c77421ea383b8e5cd14b6dc6b9b4b6ff8d1..559e4830f42e1ac7a20bd19c2723311b2be8238d 100644 GIT binary patch literal 11078 zcmeI1vFj~I9mOYL;o`y-i(B17L^NRG^C6L7AP~^PAV`XcSSUmSc|}AJ8^J;ZAx#=V zG>w0N)`EqNrC3X_5J6iDTZQNOob#R8*?af*`^C!U&AY$dnc1ClzUO>rX7}Fr%2&Vq zndb7shgy4HweQs5bM3?K|LCV%``AbF*Pc@se=48<_$S&+&wr_X?!`CT7hiw3ed>FE zZEybS{r1a0{Ik9AuYb3%{o@zy(eIzMw}1A9_Sv^yZJ&Jgwf5pmkK6ZOe!2bl+mG7c z-u`BL`raGu?|=GM`_Etg*q%Op+J5_+_u5Z?^pp1F$y@EU*T2!;dF2P~@#9~&H@^OU z``r)!+`jVjciW@yzLNl+9iKVy%z^)l1DAH;lX5!II5nO5=-_hcm95#DZd@)apSHGT zQQJtt;<9fEdUYDySRfjIk6e8H#2xG9vYu-E%6S3!($ue#3w5f7M)i{DJKUy6JrIL0 zK!2pekP_1_E1fDK>1e_4EEy~z5j048#oco9)MS$I%mnPBB71C_2ntVo=1tMfMl(n1 z>7cjQ-0yfvNY`>{3$!Q^87w32sTTIT6ih6NU|HkqNr0eY&a%iYXbePN0`3&K+i?;i zA42Y71HNzR@5tGQBpjql8Y{&GL!gq+&;m)J|>Liq&a047${mE1x0SM z0?VJ?k3lMgc8xlX$p6q@~o#|L#u#qI@0ev;FOA}sA!ECUsaleV6H%;c42R)UC(e%Inck8QynVH zkg}}BuI6%IJ~V!Ze%%zCBeq$prJOW>G*Wz?ONzNCgz)n@K-v`TYo1Ld0RpBO>DP88 ziB9colLF>*755(Ux`pZ5bCm_#?<4a7l$PbMZH9KG99C0&U>epQg`@Wr*F=Im?7|~C z_fS5rL!aB>$c!?ZE}AYkDfQMAA&9XE>zH9iov=n(T@!^2A$E|NwmSEY0C?5p9(@|Guim)JvCBqd) zfQFzu_p6fhzDjzyncbvF%w!qm8Y6b-bQ~84OyDWH$rbYmVhAx=w@R`$ zw5jUOp@gvnpRi5Q!PUz!{K^y9%_$$cde^)f_yTYVK2STWhK_z82^Z|0`N(~N-;-#9 zS_({KvPKKm4T5sr)3{Qh>3lSOJY-L$+Z?iWqy{!M@A%NjAvxv8X6#YNnST2>#c@|v z&u ze?vgk$Oz_Xc)Tt*>o_vDx>y)uA!PpLB z8_X74^9mjEn=Sup3T?NKn%{9OB+*Bb;-3V>@h!)yW$MZ=kyLI6!V7mAmgC>%U z$|T|#(qP{&Lm{3>U*5FBdiFcEtKR5-zDth#QgI=B2gA{mWgvYul9$;WD47_es$+Ct) zko2lqmH%bGf&x%~U_ng|B{8Q#=F0YBa@L#hLqd$_kT+;p=r^&iO$=R-&b%+`i@R50 zCh&CMt_oNM9&Ed3mfd}Q=7fZ!60SA4LL!QOeK#l#I}=wfs7%+j=KnpO`@EPw`_NqmTw@E}I1t5Gf0te6Ak&YQ2bVE7rFt{%YNYKQvdjiQU z`=!Lgp=%?6nZXue2_H~RqN5v}qht&=U$x*k%EuOys0M_i-87`e^=lQ|aMkjaiEPws zqLzq$sMVEuZV_$*jSN8fCC2nLMp^et@XQoShO_Q9xO;+hyJCgIg{!Qpv+*aI&L=kg zc%>E#Fe^~$E)xA@d#xhlI%s*5_&ak!&pHTE0@zKC^0D2T2!&)ZK3fYlZHfiGn@H8y zT_~F*$N8`lL`>OmJ`2|QH9Cn-niS4p0(L+{rHi~plMDTwdB0K-Jjc3|(Z;VSMXM~! zB^?K7i68BVyR55z8E0DQCrnd>BjM!cqUec6KqoR|?$yynWArhbcPcmUc;79vmTnqM z`q&|XK|{0GLQvqn;TT1yoZGBb8IchFbjg-gJT}LmouupNOoiDYJB81(NN3sP-!+Ou zESkF7;A6DIEwJdw5y$BEQ7FlUX?7eCjETjbm?g4Wk1n3|#rU-7Xd=?kt?IR0x&|$# zm9yp&0UWIly*)64`Sm%LgH|Ly(R*9=I{e+wH|e3#XRm(aCnFNVQv^^OgCjO2I;hg` z(R-$vy}sgulc5?@SCRyuMWSb}lJ9f~!B|~^8nlOHPQyNUpwlx_l`0S}@y#EG#aShAiW|G0^sU-KYYO945?zb~@z$lho2Z{u z$Vvh}%mgh+MmgaA@<%$XTr7P~`D z9{C6ap7`Np^dyB&k(k2si&&uH@x^HSL)eZy){9g66gms9lF@SwhskV^4*qX-ap)&! zFB2t1o`DYtB&rZ7cIjZb7NxmbS9mu-2*4`G`B-fh34up5S4eh46`kSh9MI?wm&giA zXz<|X*$thGs>rBf1GQF!E@ksyF^n1} zQHtd-A9^yf4C|IUf!W8gX`2OqY`*O37rAR!x@*HLRlNLBG8HD)bzwFsn2N>I&SB7z zPe#B_PjO_0FoF3&%eLgc`KSw1Gx6i2g?7N{4prSdPb`)>o7PC}%r58?J`Qak{w#~q%N?wD=bv2aym{W<>^sEb+@ delta 7 OcmX>Wwu@tf6$=0jzXHtw diff --git a/lab-greg-nicole-ahmed/lib/blue-stripe.js b/lab-greg-nicole-ahmed/lib/blue-stripe.js index c541a60..700a39b 100644 --- a/lab-greg-nicole-ahmed/lib/blue-stripe.js +++ b/lab-greg-nicole-ahmed/lib/blue-stripe.js @@ -1,16 +1,18 @@ 'use strict'; module.exports = function(bitmapObj){ - let middleX = Math.floor(bitmapObj.width/2); + let middleX = Math.floor(bitmapObj.width); console.log('middleX:', middleX); - for(var i = middleX; i < bitmapObj.pixelArray.length; i += bitmapObj.height){ + for(var i = middleX; i < bitmapObj.pixelArray.length; i += bitmapObj.width){ + console.log('pixel array length', bitmapObj.pixelArray.length); bitmapObj.pixelArray[i] = 'ffffffff'; bitmapObj.pixelArray[i+1] = 'ffffffff'; bitmapObj.pixelArray[i+2] = 'ffffffff'; bitmapObj.pixelArray[i-1] = 'ffffffff'; bitmapObj.pixelArray[i-2] = 'ffffffff'; + console.log('value of i', i); } - console.log('bitmapObj:', bitmapObj); - return {colorString: bitmapObj.pixelArray, colorPalette: bitmapObj.colorPalette} + // console.log('bitmapObj:', bitmapObj); + return {colorString: bitmapObj.pixelArray.join(''), colorPalette: bitmapObj.colorPalette} } \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/lib/constructor.js b/lab-greg-nicole-ahmed/lib/constructor.js index e6594af..5444abc 100644 --- a/lab-greg-nicole-ahmed/lib/constructor.js +++ b/lab-greg-nicole-ahmed/lib/constructor.js @@ -3,17 +3,18 @@ module.exports = function(data) { function Bitmap (data) { this.size = data.readInt32LE(34); - console.log('size:', this.size); + // console.log('size:', this.size); this.width = data.readInt32LE(18); - console.log('width:', this.width); + // console.log('width:', this.width); this.height = data.readInt32LE(22); - console.log('height', this.height); + // console.log('height', this.height); this.pixelAddress = data.readInt32LE(10); - this.pixels = data.toString('hex', this.pixelAddress, (this.pixelAddress + this.size)); + this.pixels = data.toString('hex', this.pixelAddress); this.header = data.slice(0, 54).toString('hex'); this.colorPalette = data.slice(54, this.pixelAddress).toString('hex'); + // console.log('color palette', this.colorPalette); this.pixelArray = this.pixels.match((/.{1,8}/g)); this.end = data.slice(this.pixelAddress + this.size, data.length).toString('hex'); } diff --git a/lab-greg-nicole-ahmed/lib/read-write-file.js b/lab-greg-nicole-ahmed/lib/read-write-file.js index 6976d08..b4383f0 100644 --- a/lab-greg-nicole-ahmed/lib/read-write-file.js +++ b/lab-greg-nicole-ahmed/lib/read-write-file.js @@ -16,10 +16,11 @@ const readFileHelper = module.exports = function(file, newFile, callback) { fs.readFile(filePathRead, function(err, data){ // if(err) - console.log('this is our file from the fileRead', data); + // console.log('this is our file from the fileRead', data); let bitMap = constructor(data); - console.log('this is our callback', callback); + // console.log('this is our callback', callback); let newBitmapObj = callback(bitMap); + // RECEIVES STRINGS!!! v v v let newBitmapTotal = bitMap.header + newBitmapObj.colorPalette + newBitmapObj.colorString + bitMap.end; let newBitmap = Buffer.from(newBitmapTotal, 'hex'); // console.log(newBitmap.toString('hex')); From 1b242761054f85b605a4a48d3d5e8d432f9f39d5 Mon Sep 17 00:00:00 2001 From: nicoleweese Date: Fri, 16 Feb 2018 16:39:18 -0800 Subject: [PATCH 11/14] line went down the middle of the screen --- lab-greg-nicole-ahmed/data/blueStripe.bmp | Bin 11078 -> 11078 bytes lab-greg-nicole-ahmed/data/new.bmp | Bin 10566 -> 41078 bytes lab-greg-nicole-ahmed/lib/all-black.js | 6 +----- lab-greg-nicole-ahmed/lib/blue-stripe.js | 22 ++++++++++++---------- lab-greg-nicole-ahmed/lib/constructor.js | 11 +++-------- 5 files changed, 16 insertions(+), 23 deletions(-) diff --git a/lab-greg-nicole-ahmed/data/blueStripe.bmp b/lab-greg-nicole-ahmed/data/blueStripe.bmp index 559e4830f42e1ac7a20bd19c2723311b2be8238d..19c51b0e4a390ab95463bf1b47795824cfef3bb7 100644 GIT binary patch delta 1788 zcmY+EO^6&t6vrEOX1aU2XKHq)rg~m}lDb`(WRb(giH&?zOyQSB(bIzV?-mzq{O{tpkd>S+ zaq9Oa8(Q?2P$)MFLJNVxY#UQQuw|G0u~iS9IvLoyFM}n6^voA8VIcX^I3LUXh*6!8 zQRkfc&8b(*X_PT?8jhA4=&1mALf`xbgv_>awage1u{!J2y~tv+WPuxDf^Q<}bM<=6 zHJ6>5sc`H}C5^ceO#{TBJcswl#n+Xx9m6e`yjJBhIQ6)i1_a2g;@4qg5Wd}};Y8<;*WBGKGQUw^0}Ixro(wmDgpMI?CIks^PV)vwVapJ2peLjs_?#I+z%?PW;kk7 z3C}p(O1fw#75lu^glT)pI6qIiJ;okhZ%AweWwct)+2l7`Y13R;bL|v$Ogw5@s2ESR z5`5ZU3aSA zPO#E>&002eYJRud>={SYGSTckrn`|ZPtg`W?=W_^tM;QJUAquZI_uWX3woR%9NCSr zF`C1-`l#LWyQ#Ei6I&=T$?A*Ug}f;1@58pj2i=!#(e3VkKyujVVRQaSDL=RD&7D^L zzG<3H$jml>09{F?RcxIr+?{9Fcd8mm?-&!zF!$opepJA;$1}ZAX=ZQJ&%KxOJP$ic z;z++Pg%@jO*h*`{Qya0uTYaWq>hq`{I<-~P*dEv?#x!J!9|v`5YR$@8A@8IV{v0r= zGi1^^r=AYl_-FWvoy=g^z?&l}&C6?UlL3*YyG8%T7e)-aI%1GmV0G51dkd*FPj*gn zKMM6j3|K$JWtW|rS>)K6MFXHk9`aV`n0eEH%{|9`x%zy_j`NYaNKT-v~+QrUFh@V!TwG&NN*Zu{CI7jpV delta 1831 zcmZ{kONbm*6oxCAuBxuC+kJbwt8aC6S5Nh8UOkJ^Y*aFsm@z11kqm(moRHEi6hWK} zSq3I3ii=sq%)fA<63s?13t!+yVSGSbBw$Pyfh>{%1s4GYH(9tC|9iV<*L9obo;r2T zcm8v#ZrxbDvHI0(xd|yH-pIX*a^1t-+!=Fy$bQ9^(&C*D?b%>&%)%YJZ_7Al$bWX4 zlQNb#>*y@{@QXv2B`wUjbK#imJ)PH?jIinEZ5=4F<)*ll*!agy36Zgf(|OHh;CK1C zcpOCEYJnYaSRCwr>>C>|C zemMj3yIbeOaj;u=us%717qO2l$? zU*YG~49I9I+krEhrXT3Sx`TCE+{w8+wCH=Pmce;4A7QJ;(U{baYDNqb_G)R__{_`< z*u(jf!n^8O1`CG#sxp|LsSr_EG)#$waKD+$VJgg!IdhH0N;N>cCGEY_-z^mQjAIlZV$ij#Jed9+U*uJIjt%CIyEU;8rJt^>2qPz0mBY zSZfsUceP?Zb02q)VYjL9sr0eeT|PLP>&v}hysCG4eOs}fh3h?@98+5MY0)WhL0hKI zy?(~ys7zCeP;Be)G=uecag~;kir>nKnIS;n^_dL7wHc#;E#K6^77Jr>mX?xA0JJQr zl*HrN48WnezHPCX!rEMFD=vYZk)_a^PjP#|LpyMAWxh3j3O~!4btPpXTv+@cV94_` diff --git a/lab-greg-nicole-ahmed/data/new.bmp b/lab-greg-nicole-ahmed/data/new.bmp index a00d5c26944d11d1d88f78f9455516e6f4b8635b..fb7aea0d985c50723c17f34bad01b4e92f7f5969 100644 GIT binary patch delta 20 XcmX>W^z8uC1~<)(0pBzr*hLipZEOjc delta 8 Pcmex%fazG!1~*Lr6z>D@ diff --git a/lab-greg-nicole-ahmed/lib/all-black.js b/lab-greg-nicole-ahmed/lib/all-black.js index a3ba98c..a4a7eeb 100644 --- a/lab-greg-nicole-ahmed/lib/all-black.js +++ b/lab-greg-nicole-ahmed/lib/all-black.js @@ -5,17 +5,13 @@ module.exports = function(bitmapObj) { let colorPalette = ''; let numOfZeros = bitmapObj.pixelArray.length * 8; - - for(var i = 0; i < numOfZeros; i++) { colorString += 'f'; } - for(var j = 0; j < 1024; j++) { + for(var j = 0; j < bitmapObj.colorPalette.length; j++) { colorPalette += 'f'; } - // console.log('black string', blackString); - return {colorString: colorString, colorPalette: colorPalette}; } \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/lib/blue-stripe.js b/lab-greg-nicole-ahmed/lib/blue-stripe.js index 700a39b..9a50c51 100644 --- a/lab-greg-nicole-ahmed/lib/blue-stripe.js +++ b/lab-greg-nicole-ahmed/lib/blue-stripe.js @@ -1,18 +1,20 @@ 'use strict'; module.exports = function(bitmapObj){ - let middleX = Math.floor(bitmapObj.width); - console.log('middleX:', middleX); - + let middleX = Math.floor(bitmapObj.width/2); + console.log('pixel array length', bitmapObj.pixelArray.length); for(var i = middleX; i < bitmapObj.pixelArray.length; i += bitmapObj.width){ - console.log('pixel array length', bitmapObj.pixelArray.length); - bitmapObj.pixelArray[i] = 'ffffffff'; - bitmapObj.pixelArray[i+1] = 'ffffffff'; - bitmapObj.pixelArray[i+2] = 'ffffffff'; - bitmapObj.pixelArray[i-1] = 'ffffffff'; - bitmapObj.pixelArray[i-2] = 'ffffffff'; - console.log('value of i', i); + bitmapObj.pixelArray[i] = '1c'; + bitmapObj.pixelArray[i+1] = '1c'; + bitmapObj.pixelArray[i+2] = '1c'; + bitmapObj.pixelArray[i-1] = '1c'; + bitmapObj.pixelArray[i-2] = '1c'; } + + console.log('pixel array length', bitmapObj.pixelArray.length); + console.log('image height', bitmapObj.height); + console.log('image width', bitmapObj.width); + // console.log('bitmapObj:', bitmapObj); return {colorString: bitmapObj.pixelArray.join(''), colorPalette: bitmapObj.colorPalette} } \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/lib/constructor.js b/lab-greg-nicole-ahmed/lib/constructor.js index 5444abc..871a23c 100644 --- a/lab-greg-nicole-ahmed/lib/constructor.js +++ b/lab-greg-nicole-ahmed/lib/constructor.js @@ -3,19 +3,14 @@ module.exports = function(data) { function Bitmap (data) { this.size = data.readInt32LE(34); - // console.log('size:', this.size); this.width = data.readInt32LE(18); - // console.log('width:', this.width); this.height = data.readInt32LE(22); - // console.log('height', this.height); this.pixelAddress = data.readInt32LE(10); this.pixels = data.toString('hex', this.pixelAddress); - - this.header = data.slice(0, 54).toString('hex'); - this.colorPalette = data.slice(54, this.pixelAddress).toString('hex'); - // console.log('color palette', this.colorPalette); - this.pixelArray = this.pixels.match((/.{1,8}/g)); + this.colorPalette = data.toString('hex', 54, this.pixelAddress); + this.colorPaletteArray = this.colorPalette.match((/.{1,8}/g)); + this.pixelArray = this.pixels.match((/.{1,2}/g)); this.end = data.slice(this.pixelAddress + this.size, data.length).toString('hex'); } From 2415c5fabf2ff0ff29b5e57cec123205922eec2a Mon Sep 17 00:00:00 2001 From: nicoleweese Date: Fri, 16 Feb 2018 17:20:52 -0800 Subject: [PATCH 12/14] created cross function --- lab-greg-nicole-ahmed/data/blueStripe.bmp | Bin 11078 -> 11078 bytes lab-greg-nicole-ahmed/lib/blue-stripe.js | 35 ++++++++++++++++------ 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/lab-greg-nicole-ahmed/data/blueStripe.bmp b/lab-greg-nicole-ahmed/data/blueStripe.bmp index 19c51b0e4a390ab95463bf1b47795824cfef3bb7..4c83f1931f71f79f7e44ef3eae274a3ddb87b3bf 100644 GIT binary patch delta 2563 zcmbVOO=w(I6rRe=yu5jD=FVi^ykutH{AV(gG-*;(W80V}O`F&>ZJlbJv}ui05EZ2O zg9}B}Qt85tCTF2gs5C1@!4?;ypmZS>DhgQ$MMbTM*hLqjE5V<8e%_23UG*|Q-#tIy zIq%+c&wW>#SDF{cgTX01U}x}ziNK@To53ZEW**Ojp`%fn2RxBH7HTT7&?2__GIXR@ zWN61y&qJ(MV_7J;Ay^7;PO?oPz((x*M!1pk`FsUy{tO?=_!?s69}+1Ar9>KDFh=t@ z7ee_{9%raDfJ?zNG{Ql+VbqCMn8Xw_B(Z|)c%^3z4%q)Y;=5)0cRP(fl!njDR=z(C}c40DMz)YmX zu8%|t2D)OzgzJJ~#o$sT#mcL`)el)$FF_bAE6f^fjx>(nPEb-&hV$ zezR%}){PuY*gZUH+5-&E*tawI(B9187kiX}7aa~^ayI-Lap0k-EWnG=5!O#T4t!@C z@I^Gif*+$>8SD-xby|jFn#$y%S3m<~gW1>^TRk7EGk7a@2ZQUeeg>Ahlfj&l^*^O{ zu;d+8X0Wa%7{ud6Sws_7B1zaEuk~XjTy`0@Nt+_c&>!XUdVGpGzK(kg{)q2pFqOzK zcp$N-=+l|{F;oW^5nWEqQX%W7)FE{MiswH)nN+&(=1R4d8SpJUPKgZ8cF)s!(F9tL zh2ycBi|0o70v*zS@wXr3K=PoABpALOn`qxl-oq-Ljn7G@3JU37I$NX8ST}q7zU29g zb6*^Ru1?B@gx8$=V+h!iL=&k+8vz=T;C$*>gatI+2#YSsSZV_;eX~`oRDU}6=zQDmYjndp8tOmKifOBam_yIUF=-f zM$*w8(tua(FziillMSZ5ppw8!P$oQSIIx!9v0(@0tldl>_RGTGd-gPeT1RHgS9_w@ zdqcbNLFOP=8`T)aq|zp(mtCMr)jFL4R|jsYV&Bu*d9HLUMm;!Vovj|^e=?qizq4ET zd~Nky1`FOS9W<;D^7B(tcH8x$x2KF8WPy(_2L)bAHXbiak3U%+XUVy; z+y$SOx07VGB3DMOvXf07uE-_yO64w=T&)xs+^pffJk>0OL1gS2b?2YOmsA}1~BLbXHm21BI2A88(~HRzoOqshAs$v>~% zoAB9a5lFhFeuT;!dHk$a>P>q8(g{hPzt@k_8=7V$uf>5SIyF4|Xy63hWm*Nf!DYIC Qr{JZ*2L=5!xJ)be55`#rivR!s delta 2515 zcmY*bS%_Rk6nz7)`%QJf?wX$Nu1?Rq-e)pPoFyj4>@llmb)s<+Co!TRDo8*fA4-go zxS%K)4-!F9%$FZQC;A}@NUKC-ae?UdD;wQqJ{#4p6?Kk|yz6|yADm<8&L}w}6;o-}~9&4Jjx?jSh zBds+Wxe{t7fvM!8yrqvkPpl$ZM|d?kQFOn^-!_N>eRoNE+_Nxtkq`U}ksb1tw0TcCsG<)|M5k36M(He5F-{k#q}Jn_0{j zv$&8}IGir|+9T~t>3&SJHRHLoH6BU__%>~Pr96#4(gPUDIWIA+37H`Uli?8gRU9jc zSHe0yl){JMB8RvXj{BtW5M@TVSz3qqJypQHnKBd73QuIl@Rds92InZiXC;EPPo z*Gh%>F|#;MC2A?| zPIE}FASA#$ntc(-j9z8S?&>WoK$9Qh99a8o<@OE`^)`ieTr3j3>L+*%Nh?M`pIm zxSId!T8|^_%BEc0rn_<**{03~QZaYo|4b|dXLFmYEXm{ARc0~mVkIJ4-8VB*q7-W7 z@wWxU`3NbV>E0?^ou`q9hhp;-LWRrS+c9lY*?GM*5w|_~F{7^8PH+agdNje-pGh<1^zG;J*VpJtcTI{fKT25u1XM$39M6jJ; z2J(yuJuAHu!MZWG`P6M#d|!|W4hnQ|MHw$NvRm4OSZ|8$VYg+=m#u*`LW$k^0&eO| z73BsIcO8ZF=OBb8G~(V6oXgrJ?ph#uh=DpZ!jdd)-X4xG7-Q?&VQBtj!QQOk+Rd{& zREVc?rMZSxmX?!=JscEps=R_-wg4B^wgFelyNz^AOtIebi&wD+hkBN@%~5QRiSa?t z&TfHP$~j+qU>5bR?y-zwo!@wYG9^6OyEW$`+EC6HqvbMw$*1ve?UgM&LOU})(Xa8tgqr56B$hO-PB@4BZJ~a zcF>HOdrQiS$Dg?O`!+N@3*swTJVoptUGojozsd0*>@WFZz@z Date: Fri, 16 Feb 2018 17:21:38 -0800 Subject: [PATCH 13/14] started on test file for cross-section.js --- .../__test__/all-black.test.js | 1 - .../__test__/cross-section.test.js | 36 +++++++++++++++++++ lab-greg-nicole-ahmed/lib/blue-stripe.js | 28 +++++++-------- 3 files changed, 50 insertions(+), 15 deletions(-) delete mode 100644 lab-greg-nicole-ahmed/__test__/all-black.test.js create mode 100644 lab-greg-nicole-ahmed/__test__/cross-section.test.js diff --git a/lab-greg-nicole-ahmed/__test__/all-black.test.js b/lab-greg-nicole-ahmed/__test__/all-black.test.js deleted file mode 100644 index a726efc..0000000 --- a/lab-greg-nicole-ahmed/__test__/all-black.test.js +++ /dev/null @@ -1 +0,0 @@ -'use strict'; \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/__test__/cross-section.test.js b/lab-greg-nicole-ahmed/__test__/cross-section.test.js new file mode 100644 index 0000000..4ea0f25 --- /dev/null +++ b/lab-greg-nicole-ahmed/__test__/cross-section.test.js @@ -0,0 +1,36 @@ +'use strict'; + +const readFileHelper = require('../lib/cross-section.js'); +require('jest'); + +describe('#cross-section', function() { + describe('with improper file paths', function() { + it('should return an error', function(done) { + readFileHelper([`${__dirname}/dont-exist.txt`], function(err) { + expect(err).toBeTruthy(); + expect(err.code).toEqual('ENOENT'); + done(); + }); + }); + }); + describe('with proper file paths', function() { + it('should return a proper file name', function() { + expect(err).toBe(false); + expect() + }) + `${__dirname}/../data/pallette-bitmap.bmp`, + done(); + }); + it('should have the correct order of hex strings', done => { + var expectedResult = []; + readFileHelper(this.paths, function(err, data) { + console.log('data array', data); + expect(err).toEqual(null); + expect(data[0]).toEqual(expectedResult[0]); + expect(data[0]).toEqual(expectedResult[1]); + expect(data[0]).toEqual(expectedResult[2]); + done(); + }); + }); + }); +}); \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/lib/blue-stripe.js b/lab-greg-nicole-ahmed/lib/blue-stripe.js index 9a50c51..561b145 100644 --- a/lab-greg-nicole-ahmed/lib/blue-stripe.js +++ b/lab-greg-nicole-ahmed/lib/blue-stripe.js @@ -1,20 +1,20 @@ 'use strict'; module.exports = function(bitmapObj){ - let middleX = Math.floor(bitmapObj.width/2); - console.log('pixel array length', bitmapObj.pixelArray.length); - for(var i = middleX; i < bitmapObj.pixelArray.length; i += bitmapObj.width){ - bitmapObj.pixelArray[i] = '1c'; - bitmapObj.pixelArray[i+1] = '1c'; - bitmapObj.pixelArray[i+2] = '1c'; - bitmapObj.pixelArray[i-1] = '1c'; - bitmapObj.pixelArray[i-2] = '1c'; - } + let middleX = Math.floor(bitmapObj.width/2); + console.log('pixel array length', bitmapObj.pixelArray.length); + for(var i = middleX; i < bitmapObj.pixelArray.length; i += bitmapObj.width){ + bitmapObj.pixelArray[i] = '1c'; + bitmapObj.pixelArray[i+1] = '1c'; + bitmapObj.pixelArray[i+2] = '1c'; + bitmapObj.pixelArray[i-1] = '1c'; + bitmapObj.pixelArray[i-2] = '1c'; + } - console.log('pixel array length', bitmapObj.pixelArray.length); - console.log('image height', bitmapObj.height); - console.log('image width', bitmapObj.width); + console.log('pixel array length', bitmapObj.pixelArray.length); + console.log('image height', bitmapObj.height); + console.log('image width', bitmapObj.width); - // console.log('bitmapObj:', bitmapObj); - return {colorString: bitmapObj.pixelArray.join(''), colorPalette: bitmapObj.colorPalette} + // console.log('bitmapObj:', bitmapObj); + return {colorString: bitmapObj.pixelArray.join(''), colorPalette: bitmapObj.colorPalette} } \ No newline at end of file From e11ca7f82111e4e34d7f8d23d66415de66cc73fb Mon Sep 17 00:00:00 2001 From: Ahmed Ali Date: Sun, 18 Feb 2018 16:25:36 -0800 Subject: [PATCH 14/14] random done --- lab-greg-nicole-ahmed/data/neww.bmp | Bin 0 -> 11078 bytes lab-greg-nicole-ahmed/index.js | 5 +++-- lab-greg-nicole-ahmed/lib/constructor.js | 2 ++ lab-greg-nicole-ahmed/lib/neww.js | 13 +++++++++++++ 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 lab-greg-nicole-ahmed/data/neww.bmp create mode 100644 lab-greg-nicole-ahmed/lib/neww.js diff --git a/lab-greg-nicole-ahmed/data/neww.bmp b/lab-greg-nicole-ahmed/data/neww.bmp new file mode 100644 index 0000000000000000000000000000000000000000..68367f5177ab1a1ba89a793a5ff9efcb1d58dbf0 GIT binary patch literal 11078 zcmeI1JCp#6lqw$P^JlYy=AtgfwXc ziD~=+u@)?BEX7)ag$UYO*eZM?V?F=Rf32_o{oVE8caPRvKmX$T+?%hgPrvf&df~-~>jy8rw0`oP2kWnIeQP~_ z@AdV!KYn}t`_F$^j~_o?zxnlh>t{dy>3a0&&GqVQ-&}9M{KNI|;rr|LZ+x(R`=dXt zum0kl_27GN4}holrwlx0;QzwFdAVJ$>*RJ_Hyki=tGjM!VoyZh$4+x?iKY+exT0}ht_QCU zY6Jvu`2z}-C#Z4obl%7WTOa`uBW$qphZMLmV$AZrazAm8@VFq)g<3{IZVqu^(sFY< z^oQI_YDRWE$>O}-VC`}Mam;TwK}yh=WIZ7+0=z<-FaW=Z0!H33P;wd@x&)+??vpQS z;}X;3TrozT{@fCn}Xcv9qlnNOeD888B<8inqfSi3&eqc1fwx#%L@_W3y)D zLu;5&bKF8Su+2;orZafCfzAu6_QB{Sn2BsE8j)ukAJ z*;4gGK0|^f%`!?;BA@MbFG9k@$waHAkqA#m)&o@bx~dLG5yd~H8qGDc5FN(@HUk>a zG2~$4LNPa88xN7?1q7|E0>6WhH_7M2)YV{=FuqC_eZeHE6D%zKH7pxMhfOcT8q`Ab zOCrIuUrE&$k#OOw4C;^17(i2!G%!^e$i+k*&H-g2Uin3%Zsy&bKQxHx zjr9-b!sKo!;6js=tGArA6o}L$VQ!JH!T6dNfFxAj)S#1IfBa03w}bXw#_5M^07a_f|5mVsw)B8YAaP?lT%s2!E&xLGS%RrK7Bmm)kl}*kRFHVu$;TmFEw5&etT9rx zDk$BdZ*Uy+2F-;rs*v3-z^jAWy9CTr1Szr*b~C50UiVA|6HfPqxyz3}GjCp%zBMhJ zBljS#t|rDt={Wy%jYF3bYZF+rGiyXZHJm>KQvw=wOwdj`w>k5i~6DF0k# zgCZwbR|Zi#nz>63PBo@K?prM~V(>E@126;`HX&k4qb@+Uia2q$`y!O?PKd?eKCdVO zRLCDVCyC~WJz`Y_4{@qcyiyR*43rtX#5+?b{4#~V>HQ#S#kSC004mk>mpW6UOo>1wZBE86Cr8CcM#{z|9;z-v@*|u#ONGlmFx*QA0cdidF^HN20+_Rllf6C^QlTlc6Ko?id(BLo zyLJWaTnR4@BEyTwxp$KupBc|j(h?*C{DXyh3)#twaaRfxz{wPRwL*qsdS*N*wiW(H zq(3qkakbkTmRZIoB2!6pO*>ZySH9*fa;Zn4zeuFm6i0)LyBCuR8d)n);6mS!B6cHh z0_aVtlSO}rUkuSf?5{%_#&qmyJ;!t)yMe0jo zxE95VI9?@OEO6>q*Pvld04GBT^~$9V$?T=rHBxl;BFRCkvrI1FiMy?;_1N~V>SUr; z>uD++8L-rRmVyos^=(-3EE~8Gw3yWPFg9;uFks2^Nf7G-T#|E+Xd=i_;H@tV9Mgg; zP+|8s6Z5o>L=6n)VIvkDPrQi%N3zZ=C2ziAOy~>5GuV99sI5>iOy|536}jf&)s2Ke zo+Wcgkie-i9ZKqf3Ikq~>}*W|so=w`R zK#s6HBI5Plh?(oH3kD?^UwQGvMU1JE0uGB`X!kXjyE1Wju;m97HPbA+4EVPbtlX1O zb$z+v*8^UTV^Sl^F)M;Zo4kL3X~)8T2XO+ji%rJJaF30Dbx=jW4bg+cMlqsSB3Q1a z#VR@@jUzmRI{{rBib6M0LnEQwkZl@Pasg+|YUZOP%@P_Ty!qKQ*FE+DFrnRhLk|M} zQE&OS1zF-;4Aj*4ro}Hqc8z1=ktvO&O$bKiw}9N}S5LiKRz3!-o9Qa54Pdqw zj0oq9Fht>e_XyG+kW=G_k{I$ykI;*H<5yL_7`T1oQ6~fwUJI_@9fReK6Ch$Ie_3*$ zylY2=VPJ{03!xhX7KZ>;XpXW5Ad*-mg+N8X*!LQjZ)3dJj~x!D?^TquGNH$!RXxm{ zS^Gj|jJcb)*A#^ZmKzsOp4@W=uGsF6cp-*UP94?;ScPv=C;>cml2#w4s|hkGa$Diu zL;l3X#A0x#`B90siQ`J8r|9Ps%R$4VaTy_Hb?tR@OHLGHZz+A`&W6zTDU$+<*t9y1 z736+sF^Urb-=u|C7B*ctQIztD6zVO?98CysIz+AyNRBl{U9L#!h*FXWcjB9M#v@T( zL}a{Q5xZ=_ZJyjSN2`2iqhd~Ub zonhS0F^H~DVZ_) z88c_C7`8V9 z0xH%?G<}$z)3VGU(f|Uh)b+$KStw{o^joG&XPF-oLNHYnRD}76GyZ}gXT;PN9W;YV zmW}|^f@$2D**25_zL29mS5uElXo^HP5>nRFq{7_(pL|gAadFHP$1l?@pty)DGSkxW z$vP>HOKsAzV<>CAR^*xFau}0p3B?10g0A^+IT5H`p{Z{%QMIk8!gk)Q@Jt%tj5!M^5HnYhOA`vNlB3cBIGHsUAW({^SSz%OY5;72?;E5^&EnEMG?;!@>-QE zz|7~pQts`l#z6Ex3=Wj$J(EjNdU8cE65j-DGX6Y5`E~E7Zhgu9^Nt-x9TY^q(jqlh$$u zYl?oSBNIkE=oMaM46AX>Z9z?wF~fU*2T&gRlEpcZ)iaqFrHXaB~pI}!P!I{59Z>UWrk?tq@2VuzV!=M zr31W}io36&`iANKW zRl`2f39^M`92h)ll`550c`kPqxkLmcKE0|tRz!_fWsOcXA$)8yz)<_0f-gVPbEkiUV=%10YGx z(X}pgirJyUQ_-e$1?#G$)tbsE6%bKrR&o0}$m+BJw zo);X?$+j7U7fANRW(i5x<%=iTf*89-Q@0F38)ooU#Hib~HlNxU>Svm1b2_7q_ z6c|WX<>g*Ymc#S})XGSxA|@@Tl9&Dz+FN}A@oeJu76bMKL4nSLzC-IPcGiPMjk|LU zw|?6svgjg=2V>8oo&W#< literal 0 HcmV?d00001 diff --git a/lab-greg-nicole-ahmed/index.js b/lab-greg-nicole-ahmed/index.js index 9eba213..3e0468a 100644 --- a/lab-greg-nicole-ahmed/index.js +++ b/lab-greg-nicole-ahmed/index.js @@ -3,7 +3,8 @@ const fileReader = require('./lib/read-write-file.js'); const allwhite = require('./lib/all-black.js'); const blueStripe = require('./lib/blue-stripe.js'); - +const neww = require('./lib/neww.js'); fileReader('palette-bitmap.bmp', 'new.bmp', allwhite); -fileReader('palette-bitmap.bmp', 'blueStripe.bmp',blueStripe); \ No newline at end of file +fileReader('palette-bitmap.bmp', 'blueStripe.bmp',blueStripe); +fileReader('palette-bitmap.bmp', 'neww.bmp', neww); \ No newline at end of file diff --git a/lab-greg-nicole-ahmed/lib/constructor.js b/lab-greg-nicole-ahmed/lib/constructor.js index 871a23c..aa56059 100644 --- a/lab-greg-nicole-ahmed/lib/constructor.js +++ b/lab-greg-nicole-ahmed/lib/constructor.js @@ -10,7 +10,9 @@ module.exports = function(data) { this.header = data.slice(0, 54).toString('hex'); this.colorPalette = data.toString('hex', 54, this.pixelAddress); this.colorPaletteArray = this.colorPalette.match((/.{1,8}/g)); + //console.log('colorPalette:', this.colorPaletteArray); this.pixelArray = this.pixels.match((/.{1,2}/g)); + //console.log('colorPalette:', this.pixelArray); this.end = data.slice(this.pixelAddress + this.size, data.length).toString('hex'); } diff --git a/lab-greg-nicole-ahmed/lib/neww.js b/lab-greg-nicole-ahmed/lib/neww.js new file mode 100644 index 0000000..4bc1f01 --- /dev/null +++ b/lab-greg-nicole-ahmed/lib/neww.js @@ -0,0 +1,13 @@ +'use strict'; + +module.exports = function(bitmapObj){ + + for (var i = bitmapObj.pixelArray.length - 1; i > 0; i--) { + var j = Math.floor(Math.random() * (i + 1)); + var temp = bitmapObj.pixelArray[i]; + bitmapObj.pixelArray[i] = bitmapObj.pixelArray[j]; + bitmapObj.pixelArray[j] = temp; + } + console.log('new pixel Array', bitmapObj.pixelArray); + return {colorString: bitmapObj.pixelArray.join(''), colorPalette: bitmapObj.colorPalette} +} \ No newline at end of file