From 5664a9e3cd2ec3e83d765612a06de89cdb9e8af8 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Tue, 16 May 2017 16:23:38 +0500 Subject: [PATCH 01/36] =?UTF-8?q?Remove=20'=D1=82=D0=BE=D1=80=D0=BC=D0=BE?= =?UTF-8?q?=D0=B7=D0=B8=D1=82'=20label=20from=20anticensority?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../37-sync-pac-script-with-pac-provider-api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.js index fe0d5b0..2775f08 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/37-sync-pac-script-with-pac-provider-api.js @@ -177,7 +177,7 @@ pacUrls: ['https://antizapret.prostovpn.org/proxy.pac'], }, Антицензорити: { - label: 'Антицензорити (тормозит)', + label: 'Антицензорити', desc: 'Основной PAC-скрипт от автора расширения.' + ' Блокировка определятся по доменному имени или IP адресу.' + ' Работает на switch-ах.
' + From 9943ae1d742f39991e89fc27808d9df90b660114 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Tue, 16 May 2017 16:34:15 +0500 Subject: [PATCH 02/36] Change grayscale icon to one produced by Chrome --- .../icons/default-grayscale-128.png | Bin 5348 -> 7717 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/icons/default-grayscale-128.png b/extensions/chromium/runet-censorship-bypass/src/extension-common/icons/default-grayscale-128.png index 277056bd4aa386da1428e91f14ddb38fa97b16cd..eeadc198cbc1e6b05565974497864fea28931c4a 100644 GIT binary patch literal 7717 zcmZvhXFwBMw6=$?6hY-kZ%PSGK)Q60-a!#UFF_#EYp4ONbm`5|QG~z&2?$6CDosjg z20sAN>hGDmWG z2FyTX##HU$?(2WKkFl0a0Eu@;odH>pEEpwWKD9Td%BO#MNBt?`xNB-^s=Y5*eF0fqofSY~P+}!++HT$WaHM_ESO)KWwn5qwY7;m+fE(c_(kz7K?x*Kw#0cj4arIdn7 z$XT2<`^ln&=g2>61T=+GS63HZP#aO{s(^x{A|zGUwWi zL$&2nS^D+ zHRlEd1#Jnum2x!qf7LVtt%5KDNIB8bmWPH_6JM_m1V^{5nVXq8xuqRF0FrTXLjMwU z#rLA}VKbkCoz!Tiimyg5(lN8JAnNVV$0)g#5I|u)Xe{vzd@Dc^zW%f=VBr`8zW)zQ zBVq}cc%MjFJiv9$9y<~M-9RR(TkXHGdh<5JUe`;%MyU}VHaOpRKBWNLf=CsDf zFD_enoyo=E47xTCr8I+Us(x!`&BD?$;WDn3gs?J6JjatyZdkJ~gmkXRyY99!6_%F1 zpC-R|wTCnKY;bK$)?^7^j3qt|4LBg69owarjt}5yE#3NT;fuL8gDrpW5f5bexwww} z2gDRDcU$Pjf&FXxa!aL>wrcco4*66-n%w!Ek3xi0P+B0Drxb#QF-dNP7f;@R{-wR0 zi24Wl{P}YsaGezJPKSaQmJs}{ge`SE6y7eS;8Rjmgis%DAzsr@RLARxPLS1ANN2mK zn2nC|svIZ~eGdSq5Lx5bmCIXyo=6VP5gPnR1c#}Yk!ooc2NrG`z;iPQ0r8n!3jrGt4{ zBfM;w?pQJ+3CEe~axS4ShD&=OjE7j(8um#Ajk`@V91W+RCaMg}KDUhA>Ms{mFs==y zXJAkc^RQsj$6o}W)r-U77%&8*>}uu{$c5b*!kj>OY6-}7qETF{p_$SMtw)!$ZKj2*Y7UMl6mH9r}< z^#@Pp#XwoAlS>fCrZ0Jw&8Lju&LNiwP+A?U9V)=CKbSWxWTd0=m6J9btz??q%Ao{i+Ui(&-+VrtI2^iMFVchekw)mHt9x3t{Th}W;VP+^k-@xG%FPZ zQ2^)8|RJ6XLb(?L0DFPS;^I=Hoy4&=iC|8)fSbs@j zp$eXp+y+T8X?qbSo7^KRiJ)~}0+9SyksqJ33Q%pmncwP_b~+1U7@Y>^terG$Chgc(D@eTlr(YicOM z@omOyG@1?wc5|Vgm&L_@I1gl-h+ornx-NQ-yj3_IIV~!XzvL5e1##ff|9m+LEPHwg z)D3gnyApY~e$ybMyKhEvXtn=-F3koWF5s-l0Wkf5BIVT=?MOaAlcZ+Lb zmgVytMhaZLnXD`Vvmjd(Q)4fOaM$?)%55 z3AGr_59*~aweRG^23wf1n`>bG9vNWtK`Z;B>vt67fY)~=r0F0__S-`TrwM7USC<4Uqv(+9&QtwE?4;8J8HcQ=^)kTri4+Xm6QjD*t;n+R`u|B5EPj zjNR0VFRoP;+pPuw?c!Qu$e0lG$9(p5?$2?_qu0lNV&f=_(Qn|IC!5r-DR_$AU!GZGJ&hPy^fhW_( zjsHZU+S?&1fVQvxq(a|r*xEL-h3PdUMWA#8fnwB<1i(KZb0eYME;2lNfA*qR>p#j$ z#kJX(sFC_NyEd^07}p1GZcBDG)3^PU+T#^zj1{=km&bTo3D~g1t?#Zcn}<-e8qz>j zRh7(b6909+k=FDD)oHKeFp?99Qm0*!n>US7&Rr2N>oNQfphL{Mt%U`r^kJ-{$G988 zyvm*OWQX0mhU3r6F(}%gP;2(fc)B-s^#dIMeJEirv;m{_6}&}E2EWE}Eawx~ai|P~ zRlwm=L@0d@PHJX6P4Xca@;_r~juTVY06-~l@x;uU{TvtK&#qsy((>3bgmx5q*3n-$ zKu=E}aZNv%X1Fs=#18{C7KfuvE7;IJmg~fx^SYZBU3c(I0C-feOxh9|i834tDU~h0 zIou1=Kgq3xZ@D(bFxZAlqg{Q=_&%ilNSysx;s;(RqYRA-qR_uKiq{LP`!r=j8dal5n8+zfNC*Ox}?a^3y(>DmVd?~q>c=NjXRKDJ;T$_jV3q7#meAh^r zO;aKkXcfv>*6S~nyXir>s%I~oT?CXE+dKSxkSwUp`NSyuledEs)lx%D)LmD=0trR$ zo5R@Q%a;~D9UD=Hziam3Bzi7hcO6c%Yt@KZ0&C(kNhPsaubE$dkR zmGJ&E@b>A2ekSZDE4|KE&qfCcRq{hcvwj1C*Sb~9cd!_<*&=uW>zCGHE?!e@Fnm?x zFtCVaaE4RtS$er?ixdSwG7tU?DdrfMK1?$G=_Mf9ypaR?RbWE4BbR9 zu?=i@kjfIyB7xWzo4Q9kwAOC>cdU!9W%E^Q2U&~w-nlP`e)jkBIJ92yf}Jl~D`fA> zeF2N9U00Xb?LK*w$bSU8yu7R&gKD2qZO>+c6lrYRf6X4vnPV>hyS<#0`YNT;rRfIq z$4SO4arP2juX))#(oyY;7cb7vRFkyc!AHseZ5~~xI7I6 z;&vyVT0|1Hn=T+TmJg2wFNii^IE>3IZ1InO7+h`(AI559$3|cN-4mnv%CFX{m1WY& z3VpI4B41*YQu!}*&GnjoGYnKtJ?hTND=adAr>AGV2EGK4{luUzY;5DV^;{vF$&8G@ z&UUJCs;ZnnNF(<3z7bVb(}NRjon;rDe*Q3>leDNTeHZpVP?9cUe5YzN0)6d6B9zC-q(HNHmB+l(Pg6R#)}=N)#NF$athpL6GBTnq{usiZF~2L+8{PeIt9iE(Oft`;gD&k`hnFZYvIB@+5B+Lvwq7gZCWT|S z;b#$xOK_}@I^tO^_7eTDmh!RIMJmO^0~C`bsk5$Iog7FoiKCVJnbk;*%KfzKq^)Kz zrq*Ma-JaKyNC)6>z~KFy*M$c#Kad>j_{T}5`FVBUFDvBF052|At0;STRw*sAr9G?c zmrA<9vMQe3568?UZ#RqOjWIQuf}2GJtjB8@LZk|5(I36{b=WY}k~nr1_tPLfV$O~} z4kx901HY5UV~``PQ)833NpaN(`8jxpU7w+qKpN7g9uG0c8gOX)2X4wzL;0N+Lb8j} zob8hVZH`?tHrlI(nf!4+nn_!oSCA?h|Dl;WAe@r$28>axm9P*1i(QfQ!Szji3M8kdsV_4-9^q7of!o^K9mJZ;&| zeXl298+98`eh$j*g^mj!)^vgXfdS%o%GtnMsjk_BQy8v6>u1v7qDHatY~S$A?=G%K z#_}>enux(<;pcapwik+uidapF{~<IhFsc@kGE`-lsd)&M``{o6QUL1{_rrMf-axusJsRT@BOzu<{MnN@TOyJ9 zD35y#Z)~2U4^|ixGE;fC^k0f$2JcZ&Y?9&U%*@P$Pn_g%G)An)QWA&Epf;+=W^G>C z{Gk*+8{hwUKduKxBQgHjB_w_n-<>5q#4)LGY5

j=D$9HqhL7SE8P*-ZKiO3l9Be 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 Date: Tue, 16 May 2017 16:36:51 +0500 Subject: [PATCH 03/36] Add gulp-changed --- .../runet-censorship-bypass/gulpfile.js | 39 +- .../runet-censorship-bypass/package.json | 1 + .../runet-censorship-bypass/yarn.lock | 1835 +++++++++++++++++ 3 files changed, 1865 insertions(+), 10 deletions(-) create mode 100644 extensions/chromium/runet-censorship-bypass/yarn.lock diff --git a/extensions/chromium/runet-censorship-bypass/gulpfile.js b/extensions/chromium/runet-censorship-bypass/gulpfile.js index 67faeb2..0f2ea15 100644 --- a/extensions/chromium/runet-censorship-bypass/gulpfile.js +++ b/extensions/chromium/runet-censorship-bypass/gulpfile.js @@ -4,6 +4,7 @@ const gulp = require('gulp'); const del = require('del'); const through = require('through2'); const PluginError = require('gulp-util').PluginError; +const changed = require('gulp-changed'); const PluginName = 'Template literals'; @@ -44,9 +45,10 @@ const templatePlugin = (context) => through.obj(function(file, encoding, cb) { gulp.task('default', ['build']); -gulp.task('clean', function() { +gulp.task('clean', function(cb) { - return del.sync('./build'); + //return del.sync('./build'); + return cb(); }); @@ -56,31 +58,48 @@ const excFolder = (name) => [`!./src/**/${name}`, `!./src/**/${name}/**/*`]; const excluded = [ ...excFolder('test') , ...excFolder('node_modules'), ...excFolder('src') ]; const commonWoTests = ['./src/extension-common/**/*', ...excluded]; -gulp.task('_cp-common', ['clean'], function() { +const miniDst = './build/extension-mini'; +const fullDst = './build/extension-full'; + +gulp.task('_cp-common', ['clean'], function(cb) { + + let fins = 0; + const intheend = () => { + if (++fins === 2) { + cb(); + } + }; gulp.src(commonWoTests) + .pipe(changed(miniDst)) .pipe(templatePlugin(contexts.mini)) - .pipe(gulp.dest('./build/extension-mini')) + .pipe(gulp.dest(miniDst)) + .on('end', intheend); gulp.src(commonWoTests) + .pipe(changed(fullDst)) .pipe(templatePlugin(contexts.full)) - .pipe(gulp.dest('./build/extension-full')); + .pipe(gulp.dest(fullDst)) + .on('end', intheend); }); -gulp.task('_cp-mini', ['_cp-common'], function() { +gulp.task('_cp-mini', ['_cp-common'], function(cb) { gulp.src(['./src/extension-mini/**/*', ...excluded]) + .pipe(changed(miniDst)) .pipe(templatePlugin(contexts.mini)) - .pipe(gulp.dest('./build/extension-mini')); - + .pipe(gulp.dest(miniDst)) + .on('end', cb); }); -gulp.task('_cp-full', ['_cp-common'], function() { +gulp.task('_cp-full', ['_cp-common'], function(cb) { gulp.src(['./src/extension-full/**/*', ...excluded]) + .pipe(changed(fullDst)) .pipe(templatePlugin(contexts.full)) - .pipe(gulp.dest('./build/extension-full')); + .pipe(gulp.dest(fullDst)) + .on('end', cb); }); diff --git a/extensions/chromium/runet-censorship-bypass/package.json b/extensions/chromium/runet-censorship-bypass/package.json index 3b69739..531cee1 100644 --- a/extensions/chromium/runet-censorship-bypass/package.json +++ b/extensions/chromium/runet-censorship-bypass/package.json @@ -14,6 +14,7 @@ "chai": "^3.5.0", "eslint": "^3.15.0", "eslint-config-google": "^0.7.1", + "gulp-changed": "^3.1.0", "mocha": "^3.3.0", "sinon-chrome": "^2.2.1" }, diff --git a/extensions/chromium/runet-censorship-bypass/yarn.lock b/extensions/chromium/runet-censorship-bypass/yarn.lock new file mode 100644 index 0000000..dfc085e --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/yarn.lock @@ -0,0 +1,1835 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" + +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1, array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +assertion-error@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c" + +babel-code-frame@^6.16.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" + dependencies: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + +brace-expansion@^1.0.0, brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +browser-stdout@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + +chai@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" + dependencies: + assertion-error "^1.0.1" + deep-eql "^0.1.3" + type-detect "^1.0.0" + +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +circular-json@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + +clone-stats@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + +clone@^1.0.0, clone@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +commander@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.5.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +dateformat@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17" + +debug@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" + dependencies: + ms "0.7.2" + +debug@^2.1.1: + version "2.6.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a" + dependencies: + ms "0.7.3" + +deep-eql@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + dependencies: + type-detect "0.1.1" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +defaults@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +del@^2.0.2, del@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +deprecated@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" + +detect-file@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" + dependencies: + fs-exists-sync "^0.1.0" + +diff@3.2.0, diff@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + +doctrine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +end-of-stream@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" + dependencies: + once "~1.3.0" + +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.16" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.16.tgz#1ef1b04f3d09db6a5d630226d62202f2e425e45a" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-symbol "^3.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-config-google@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.7.1.tgz#5598f8498e9e078420f34b80495b8d959f651fb2" + +eslint@^3.15.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" + dependencies: + babel-code-frame "^6.16.0" + chalk "^1.1.3" + concat-stream "^1.5.2" + debug "^2.1.1" + doctrine "^2.0.0" + escope "^3.6.0" + espree "^3.4.0" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.14.0" + ignore "^3.2.0" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.7.5" + strip-bom "^3.0.0" + strip-json-comments "~2.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +espree@^3.4.0: + version "3.4.3" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374" + dependencies: + acorn "^5.0.1" + acorn-jsx "^3.0.0" + +esprima@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +esquery@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" + dependencies: + estraverse "~4.1.0" + object-assign "^4.0.1" + +estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +estraverse@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +expand-tilde@^1.2.1, expand-tilde@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + dependencies: + os-homedir "^1.0.1" + +extend@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +fancy-log@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948" + dependencies: + chalk "^1.1.1" + time-stamp "^1.0.0" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +find-index@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" + +findup-sync@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" + dependencies: + detect-file "^0.1.0" + is-glob "^2.0.1" + micromatch "^2.3.7" + resolve-dir "^0.1.0" + +fined@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.0.2.tgz#5b28424b760d7598960b7ef8480dff8ad3660e97" + dependencies: + expand-tilde "^1.2.1" + lodash.assignwith "^4.0.7" + lodash.isempty "^4.2.1" + lodash.isplainobject "^4.0.4" + lodash.isstring "^4.0.1" + lodash.pick "^4.2.1" + parse-filepath "^1.0.1" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +flagged-respawn@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5" + +flat-cache@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +formatio@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/formatio/-/formatio-1.2.0.tgz#f3b2167d9068c4698a8d51f4f760a39a54d818eb" + dependencies: + samsam "1.x" + +fs-exists-sync@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +gaze@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" + dependencies: + globule "~0.1.0" + +generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + +generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-stream@^3.1.5: + version "3.1.18" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" + dependencies: + glob "^4.3.1" + glob2base "^0.0.12" + minimatch "^2.0.1" + ordered-read-streams "^0.1.0" + through2 "^0.6.1" + unique-stream "^1.0.0" + +glob-watcher@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" + dependencies: + gaze "^0.5.1" + +glob2base@^0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" + dependencies: + find-index "^0.1.1" + +glob@7.1.1, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^4.3.1: + version "4.5.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +glob@~3.1.21: + version "3.1.21" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" + dependencies: + graceful-fs "~1.2.0" + inherits "1" + minimatch "~0.2.11" + +global-modules@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + dependencies: + global-prefix "^0.1.4" + is-windows "^0.2.0" + +global-prefix@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + dependencies: + homedir-polyfill "^1.0.0" + ini "^1.3.4" + is-windows "^0.2.0" + which "^1.2.12" + +globals@^9.14.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globule@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" + dependencies: + glob "~3.1.21" + lodash "~1.0.1" + minimatch "~0.2.11" + +glogg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" + dependencies: + sparkles "^1.0.0" + +graceful-fs@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" + dependencies: + natives "^1.1.0" + +graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +graceful-fs@~1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +growl@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + +gulp-changed@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/gulp-changed/-/gulp-changed-3.1.0.tgz#87cd1593a0bb4a5129dc2f229bece6d9488c272a" + dependencies: + gulp-util "^3.0.0" + pify "^2.3.0" + through2 "^2.0.0" + +gulp-util@^3.0.0: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulp@^3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" + dependencies: + archy "^1.0.0" + chalk "^1.0.0" + deprecated "^0.0.1" + gulp-util "^3.0.0" + interpret "^1.0.0" + liftoff "^2.1.0" + minimist "^1.1.0" + orchestrator "^0.3.0" + pretty-hrtime "^1.0.0" + semver "^4.1.0" + tildify "^1.0.0" + v8flags "^2.0.2" + vinyl-fs "^0.3.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + dependencies: + sparkles "^1.0.0" + +homedir-polyfill@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + dependencies: + parse-passwd "^1.0.0" + +ignore@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.0.tgz#3812d22cbe9125f2c2b4915755a1b8abd745a001" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" + +inherits@2, inherits@^2.0.3, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +ini@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + +interpret@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + +is-absolute@^0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" + dependencies: + is-relative "^0.2.1" + is-windows "^0.2.0" + +is-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-my-json-valid@^2.10.0: + version "2.16.0" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + +is-number@^2.0.2, is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + +is-relative@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" + dependencies: + is-unc-path "^0.1.1" + +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + +is-unc-path@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9" + dependencies: + unc-path-regex "^0.1.0" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-windows@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +js-tokens@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" + +js-yaml@^3.5.1: + version "3.8.4" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6" + dependencies: + argparse "^1.0.7" + esprima "^3.1.1" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + +kind-of@^3.0.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07" + dependencies: + is-buffer "^1.1.5" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +liftoff@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385" + dependencies: + extend "^3.0.0" + findup-sync "^0.4.2" + fined "^1.0.1" + flagged-respawn "^0.3.2" + lodash.isplainobject "^4.0.4" + lodash.isstring "^4.0.1" + lodash.mapvalues "^4.4.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash.assignwith@^4.0.7: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz#127a97f02adc41751a954d24b0de17e100e038eb" + +lodash.create@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isempty@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" + +lodash.isplainobject@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.mapvalues@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" + +lodash.pick@^4.2.1: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.pick/-/lodash.pick-4.4.0.tgz#52f05610fff9ded422611441ed1fc123a03001b3" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash@^4.0.0, lodash@^4.16.3, lodash@^4.3.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +lodash@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" + +lolex@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-1.6.0.tgz#3a9a0283452a47d7439e72731b9e07d7386e49f6" + +lru-cache@2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + +map-cache@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +micromatch@^2.3.7: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +minimatch@^2.0.1: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + dependencies: + brace-expansion "^1.0.0" + +minimatch@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimatch@~0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.3.0.tgz#d29b7428d3f52c82e2e65df1ecb7064e1aabbfb5" + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.0" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +ms@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" + +multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + dependencies: + duplexer2 "0.0.2" + +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + +native-promise-only@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/native-promise-only/-/native-promise-only-0.8.1.tgz#20a318c30cb45f71fe7adfbf7b21c99c1472ef11" + +natives@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + +normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + +optionator@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +orchestrator@^0.3.0: + version "0.3.8" + resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" + dependencies: + end-of-stream "~0.1.5" + sequencify "~0.0.7" + stream-consume "~0.1.0" + +ordered-read-streams@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +parse-filepath@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73" + dependencies: + is-absolute "^0.2.3" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + dependencies: + path-root-regex "^0.1.0" + +path-to-regexp@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" + dependencies: + isarray "0.0.1" + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +pretty-hrtime@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + +randomatic@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +"readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.1.5, readable-stream@^2.2.2: + version "2.2.9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +remove-trailing-separator@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +require-uncached@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +resolve-dir@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + dependencies: + expand-tilde "^1.2.2" + global-modules "^0.2.3" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + +resolve@^1.1.6, resolve@^1.1.7: + version "1.3.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" + dependencies: + path-parse "^1.0.5" + +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + +rimraf@^2.2.8: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" + +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + dependencies: + once "^1.3.0" + +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + +samsam@1.x, samsam@^1.1.3: + version "1.2.1" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.2.1.tgz#edd39093a3184370cb859243b2bdf255e7d8ea67" + +semver@^4.1.0: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + +sequencify@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" + +shelljs@^0.7.5: + version "0.7.7" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +sinon-chrome@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/sinon-chrome/-/sinon-chrome-2.2.1.tgz#e02d4709d4e8b2d8582da1612961fa7fa44ce28f" + dependencies: + lodash "^4.16.3" + sinon "^2.1.0" + urijs "^1.18.2" + +sinon@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-2.2.0.tgz#3b1b42ff5defcbf51a52a62aca6d61171b9fd262" + dependencies: + diff "^3.1.0" + formatio "1.2.0" + lolex "^1.6.0" + native-promise-only "^0.8.1" + path-to-regexp "^1.7.0" + samsam "^1.1.3" + text-encoding "0.6.4" + type-detect "^4.0.0" + +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + +sparkles@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +stream-consume@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^3.0.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string_decoder@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667" + dependencies: + buffer-shims "~1.0.0" + +strip-ansi@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-bom@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +supports-color@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +table@^3.7.8: + version "3.8.3" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + +text-encoding@0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/text-encoding/-/text-encoding-0.6.4.tgz#e399a982257a276dae428bb92845cb71bdc26d19" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through2@^0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@^2.0.0, through2@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +tildify@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" + dependencies: + os-homedir "^1.0.0" + +time-stamp@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.0.1.tgz#9f4bd23559c9365966f3302dbba2b07c6b99b151" + +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +type-detect@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + +type-detect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" + +type-detect@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.3.tgz#0e3f2670b44099b0b46c284d136a7ef49c74c2ea" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +unc-path-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + +unique-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" + +urijs@^1.18.2: + version "1.18.10" + resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.18.10.tgz#b94463eaba59a1a796036a467bb633c667f221ab" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +v8flags@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +vinyl-fs@^0.3.0: + version "0.3.14" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" + dependencies: + defaults "^1.0.0" + glob-stream "^3.1.5" + glob-watcher "^0.0.6" + graceful-fs "^3.0.0" + mkdirp "^0.5.0" + strip-bom "^1.0.0" + through2 "^0.6.1" + vinyl "^0.4.0" + +vinyl@^0.4.0: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +which@^1.2.12: + version "1.2.14" + resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" + dependencies: + isexe "^2.0.0" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" From 96ace1949a1b3cc5ed2f3171c4ebab95d08c5cca Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Tue, 16 May 2017 16:39:54 +0500 Subject: [PATCH 04/36] Add popup implemented w/ choo --- .../pages/options_choo/.flowconfig | 8 + .../pages/options_choo/.gitignore | 4 + .../pages/options_choo/README.md | 11 + .../pages/options_choo/index.html | 11 + .../pages/options_choo/index.js | 780 +++++ .../options_choo/lib/transform-loader.js | 24 + .../pages/options_choo/new.html | 11 + .../pages/options_choo/old.html | 608 ++++ .../pages/options_choo/package.json | 35 + .../src/components/notControlledWarning.js | 39 + .../options_choo/src/components/tabber.js | 130 + .../pages/options_choo/src/globalCss.js | 86 + .../pages/options_choo/src/index.css | 80 + .../pages/options_choo/src/index.js | 137 + .../pages/options_choo/webpack.config.js | 46 + .../pages/options_choo/yarn.lock | 2679 +++++++++++++++++ 16 files changed, 4689 insertions(+) create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.flowconfig create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.gitignore create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/README.md create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.html create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/lib/transform-loader.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/new.html create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/old.html create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/package.json create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/notControlledWarning.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/tabber.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/globalCss.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.css create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/webpack.config.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/yarn.lock diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.flowconfig b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.flowconfig new file mode 100644 index 0000000..78f533f --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.flowconfig @@ -0,0 +1,8 @@ +[ignore] +.*/test/.* + +[include] + +[libs] + +[options] diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.gitignore b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.gitignore new file mode 100644 index 0000000..2966787 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.gitignore @@ -0,0 +1,4 @@ +node_modules +npm-debug.log +.swp +dist diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/README.md b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/README.md new file mode 100644 index 0000000..43a029a --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/README.md @@ -0,0 +1,11 @@ +# React + Flow + Webpack 2 Boilerplate with Babel + +Switch branches for adding/removing Babel for JSX + Flowtype. + +## Install + +`yarn install` or `npm install --dev` + +## Run + +`yarn/npm run build` diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.html b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.html new file mode 100644 index 0000000..0117ed3 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.html @@ -0,0 +1,11 @@ + + + + + Настройки + + + + + + diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.js new file mode 100644 index 0000000..388d0da --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.js @@ -0,0 +1,780 @@ +'use strict'; + +const START = Date.now(); +{ + + const enableButton = function enablebutton() { + + document.getElementById('apply-mods').disabled = false; + + }; + + const onModChanged = function onModChanged(ev) { + + enableButton(); + + }; + ['pac-mods', 'own-mods'].forEach((id) => { + + document.getElementById(id).onchange = onModChanged; + + }); + +} + +chrome.runtime.getBackgroundPage( (backgroundPage) => + backgroundPage.apis.errorHandlers.installListenersOn( + window, 'PUP', async() => { + + const getStatus = () => document.querySelector('#status'); + + const setStatusTo = (msg) => { + + getStatus().innerHTML = msg || 'Хорошего настроения Вам!'; + + }; + + const antiCensorRu = backgroundPage.apis.antiCensorRu; + const errorHandlers = backgroundPage.apis.errorHandlers; + + // SET DATE + + const setDate = () => { + + let dateForUser = 'никогда'; + if( antiCensorRu.lastPacUpdateStamp ) { + let diff = Date.now() - antiCensorRu.lastPacUpdateStamp; + let units = 'мс'; + const gauges = [ + [1000, 'с'], + [60, 'мин'], + [60, 'ч'], + [24, 'дн'], + [7, ' недель'], + [4, ' месяцев'], + ]; + for(const g of gauges) { + const diffy = Math.floor(diff / g[0]); + if (!diffy) + break; + diff = diffy; + units = g[1]; + } + dateForUser = diff + units + ' назад'; + } + + const dateElement = document.querySelector('.update-date'); + dateElement.innerText = dateForUser + ' / ' + + (antiCensorRu.pacUpdatePeriodInMinutes/60) + 'ч'; + dateElement.title = new Date(antiCensorRu.lastPacUpdateStamp) + .toLocaleString('ru-RU'); + + }; + + setDate(); + chrome.storage.onChanged.addListener( + (changes) => changes.lastPacUpdateStamp.newValue && setDate() + ); + + // CLOSE BUTTON + + document.querySelector('.close-button').onclick = () => window.close(); + + // RADIOS FOR PROVIDERS + + const currentProviderRadio = () => { + + const iddy = antiCensorRu.getCurrentPacProviderKey() || 'none'; + return document.getElementById(iddy); + + }; + const checkChosenProvider = () => { + + currentProviderRadio().checked = true; + + }; + + const showErrors = (err, ...warns) => { + + const warning = warns + .map( + (w) => w && w.message || '' + ) + .filter( (m) => m ) + .map( (m) => '✘ ' + m ) + .join('
'); + + let message = ''; + if (err) { + let wrapped = err.wrapped; + message = err.message || ''; + + while( wrapped ) { + const deeperMsg = wrapped && wrapped.message; + if (deeperMsg) { + message = message + ' > ' + deeperMsg; + } + wrapped = wrapped.wrapped; + } + } + message = message.trim(); + if (warning) { + message = message ? message + '
' + warning : warning; + } + setStatusTo( + ` + ${err ? '🔥 Ошибка!' : 'Некритичная ошибка.'} + +
+ ${message} + ${err ? '[Техн.детали]' : ''}` + ); + if (err) { + getStatus().querySelector('.link-button').onclick = function() { + + errorHandlers.viewError('pup-ext-err', err); + return false; + + }; + } + + }; + + const switchInputs = function(val) { + + const inputs = document.querySelectorAll('input'); + for ( let i = 0; i < inputs.length; i++ ) { + const input = inputs[i]; + if (val === 'off') { + input.dataset.previousDisabledValue = input.disabled; + input.disabled = true; + } else { + input.disabled = input.dataset.previousDisabledValue === 'true'; + } + } + + }; + + const conduct = (beforeStatus, operation, afterStatus, onSuccess = () => {}, onError = () => {}) => { + + setStatusTo(beforeStatus); + switchInputs('off'); + operation((err, res, ...warns) => { + + warns = warns.filter( (w) => w ); + if (err || warns.length) { + showErrors(err, ...warns); + } else { + setStatusTo(afterStatus); + } + switchInputs('on'); + if (!err) { + onSuccess(res); + } else { + onError(err); + } + }); + + }; + + const infoIcon = ` + + `; + + const infoSign = function infoSign(tooltip) { + + return `

+ ${infoIcon} +
${tooltip}
+
`; + + }; + + const infoUrl = (url) => `${infoIcon}`; + + const camelToDash = (name) => name.replace(/([A-Z])/g, (_, p1) => '-' + p1.toLowerCase()); + // const dashToCamel = (name) => name.replace(/-(.)/g, (_, p1) => p1.toUpperCase()); + + const appendInfoRow = (mountEl, conf, inputTypeAndName, + { + idPrefix = 'mods-', + ifDashify = true, + htmlAfterLabel = '' + } = {}) => { + + mountEl.classList.add('info-row', 'hor-flex'); + if (conf.ifDisabled) { + mountEl.title = 'В РАЗРАБОТКЕ!'; + } + const iddy = idPrefix + ( ifDashify ? camelToDash(conf.key) : conf.key ); + mountEl.innerHTML = ` + +
+ + ${htmlAfterLabel} +
` + (conf.desc ? infoSign(conf.desc) : infoUrl(conf.url)); + + }; + + { // PAC-PROVIDERS starts. + + const ul = document.getElementById('list-of-providers'); + const _firstChildOrNull = ul.firstChild; + for( + const provConf of antiCensorRu.getSortedEntriesForProviders() + ) { + const li = document.createElement('li'); + appendInfoRow(li, provConf, 'type="radio" name="pacProvider"', + { idPrefix: '', + ifDashify: false, + htmlAfterLabel: ` +  [обновить]` + } + ); + li.querySelector('.link-button').onclick = + () => { + conduct( + 'Обновляем...', (cb) => antiCensorRu.syncWithPacProviderAsync(cb), + 'Обновлено.' + ); + return false; + }; + ul.insertBefore( li, _firstChildOrNull ); + } + checkChosenProvider(); + + const radioClickHandler = function radioClickHandler(event) { + + const pacKey = event.target.id; + if ( + pacKey === ( + antiCensorRu.getCurrentPacProviderKey() || 'none' + ) + ) { + return false; + } + if (pacKey === 'none') { + conduct( + 'Отключение...', + (cb) => antiCensorRu.clearPacAsync(cb), + 'Отключено.', + checkChosenProvider + ); + } else { + conduct( + 'Установка...', + (cb) => antiCensorRu.installPacAsync(pacKey, cb), + 'PAC-скрипт установлен.', + checkChosenProvider + ); + } + return false; + + }; + + document.querySelectorAll('input[name=pacProvider]').forEach((radio) => { + + radio.onclick = radioClickHandler; + + }); + + } // PAC-PROVIDERS ends. + + // IF MINI + + if (backgroundPage.apis.version.ifMini) { + document.documentElement.classList.add('if-version-mini'); + } + + // IF INSIDE OPTIONS TAB + + const currentTab = await new Promise( + (resolve) => chrome.tabs.query( + {active: true, currentWindow: true}, + ([tab]) => resolve(tab) + ) + ); + + const ifInsideOptions = !currentTab || currentTab.url.startsWith('chrome://extensions/?options='); + if (ifInsideOptions) { + document.documentElement.classList.add('if-options-page'); + } + + + { // KITCHEN PANELS starts. + + const pacKitchen = backgroundPage.apis.pacKitchen; + const modKeyToLi = {}; + + const applyMods = function applyMods(newMods) { + + conduct( + 'Применяем настройки...', + (cb) => pacKitchen.keepCookedNowAsync(newMods, cb), + 'Настройки применены.', + () => { + + document.getElementById('apply-mods').disabled = true; + + } + ); + + }; + + { // EXCEPTIONS TAB starts. + + { // EXC-MODS starts. + + const emodsList = document.getElementById('exc-mods'); + const _firstChildOrNull = emodsList.firstChild; + + for(const conf of pacKitchen.getOrderedConfigs('exceptions')) { + + const li = document.createElement('li'); + appendInfoRow(li, conf, `type="checkbox" ${conf.value ? 'checked' : ''}`); + emodsList.insertBefore( li, _firstChildOrNull ); + + const key = conf.key; + modKeyToLi[key] = li; + li.querySelector('input').onclick = function() { + + const oldMods = pacKitchen.getPacMods(); + oldMods[key] = this.checked; + applyMods(oldMods); + + }; + + }; + + }// EXC-MODS ends. + + { // EXC-EDITOR starts. + + const excEditor = document.getElementById('exc-editor'); + + const validateHost = function validateHost(host) { + + const ValidHostnameRegex = /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/; + if(!ValidHostnameRegex.test(host)) { + showErrors(new TypeError('Должно быть только доменное имя, без протокола, порта и пути. Попробуйте ещё раз.')); + return false; + } + return true; + + }; + + const labelIfProxied = '✔'; + const labelIfNotProxied = '✘'; + const labelIfAuto = '↻'; + + const addOption = function addOption(host, yesNoUndefined) { + + const opt = document.createElement('option'); + // `value` may be changed for hiding line in the tooltip. + opt.value = host; + opt.dataset.host = host; + switch(yesNoUndefined) { + case true: + opt.label = labelIfProxied; + break; + case false: + opt.label = labelIfNotProxied; + break; + default: + opt.label = labelIfAuto; + } + const editorHost = excEditor.value.trim(); + if (host === editorHost) { + excList.insertBefore( opt, excList.firstChild ); + } else { + excList.appendChild(opt); + } + return opt; + + }; + + const thisYes = document.getElementById('this-yes'); + const thisNo = document.getElementById('this-no'); + const thisAuto = document.getElementById('this-auto'); + const yesClass = 'if-yes'; + const noClass = 'if-no'; + + function moveCursorIfNeeded() { + + const nu = excEditor.dataset.moveCursorTo; + if(nu !== undefined) { + excEditor.setSelectionRange(nu, nu); + delete excEditor.dataset.moveCursorTo; + } + + } + + const hideOpt = (opt) => opt.value = '\n'; + const unhideOptAndAddSpace = (opt) => opt.value = opt.dataset.host + ' '; + + const excList = document.getElementById('exc-list'); + + excEditor.onkeydown = function(event) { + + moveCursorIfNeeded(); + if(event.key === 'Enter') { + // Hide all. + excList.childNodes.forEach( hideOpt ); + } + return true; + + }; + + const renderExceptionsPanelFromExcList = function renderExceptionsPanelFromExcList(event) { + + // If triangle button on right of datalist input clicked. + + let ifTriangleClicked = false; + const ifClick = event && event.type === 'click'; + + { + const maxIndentFromRightInPx = 15; + ifTriangleClicked = ifClick + && !excEditor.selectionStart && !excEditor.selectionEnd + && event.x > excEditor.getBoundingClientRect().right - maxIndentFromRightInPx; + } + + const setInputValue = (newValue) => { + + if (ifClick && !ifTriangleClicked) { + // Don't jerk cursor on simple clicks. + return; + } + // See bug in my comment to http://stackoverflow.com/a/32394157/521957 + // First click on empty input may be still ignored. + const nu = excEditor.selectionStart + newValue.length - excEditor.value.length; + excEditor.value = newValue; + excEditor.dataset.moveCursorTo = nu; + window.setTimeout(moveCursorIfNeeded, 0); + + }; + + const originalHost = excEditor.value.trim(); + const ifInit = !event; + const currentHost = ifTriangleClicked ? '' : (originalHost || (ifInit ? '' : ' ')); + setInputValue(currentHost); + + let exactOpt = false; + let editedOpt = false; + excList.childNodes.forEach( + (opt) => { + + unhideOptAndAddSpace(opt); + + if(opt.label === labelIfAuto) { + editedOpt = opt; + return; + } + if (opt.dataset.host === originalHost) { + exactOpt = opt; + } + + } + ); + + thisAuto.checked = true; + excEditor.parentNode.classList.remove(noClass, yesClass); + + const ifInputEmpty = !originalHost; + if (ifTriangleClicked || ifInputEmpty) { + // Show all opts. + if (editedOpt) { + // Example of editedOpt.value: 'abcde ' <- Mind the space (see unhideOptAndAddSpace)! + const ifBackspacedOneChar = ifInputEmpty && editedOpt.value.length < 3; + if (ifBackspacedOneChar) { + editedOpt.remove(); + } + } + return true; + } + + if (editedOpt) { + const ifEditedOptAlreadyExists = editedOpt.dataset.host === originalHost; + if(ifEditedOptAlreadyExists) { + hideOpt(editedOpt); + return true; + } + // Not exact! Update! + editedOpt.remove(); + } + + if (!exactOpt) { + editedOpt = addOption(originalHost, undefined); + if (!ifClick) { + // New value was typed -- don't show tooltip. + hideOpt(editedOpt); + } + return true; + } + + // Exact found! + excList.childNodes.forEach(hideOpt); + if(exactOpt.label === labelIfProxied) { + thisYes.checked = true; + excEditor.parentNode.classList.add(yesClass); + } else { + thisNo.checked = true; + excEditor.parentNode.classList.add(noClass); + } + return true; + + }; + + excEditor.onclick = excEditor.oninput = renderExceptionsPanelFromExcList; + + if (currentTab && !currentTab.url.startsWith('chrome')) { + excEditor.value = new URL(currentTab.url).hostname; + } else { + // Show placeholder. + excEditor.value = ''; + } + + { // Populate selector. + + const pacMods = pacKitchen.getPacMods(); + for(const host of Object.keys(pacMods.exceptions || {}).sort()) { + addOption(host, pacMods.exceptions[host]); + } + renderExceptionsPanelFromExcList(); // Colorize input. + + } + + document.getElementById('exc-radio').onclick = function(event) { + + /* ON CLICK */ + if(event.target.tagName !== 'INPUT') { + // Only label on checkbox. + return true; + } + + const host = excEditor.value.trim(); + + const pacMods = pacKitchen.getPacMods(); + pacMods.exceptions = pacMods.exceptions || {}; + + let fixOptions; + const curOptOrNull = excList.querySelector(`[data-host="${host}"]`); + + if (thisAuto.checked) { + delete pacMods.exceptions[host]; + fixOptions = () => { + curOptOrNull && curOptOrNull.remove(); + } + } else { + // YES or NO checked. + const ifYesClicked = thisYes.checked; + if (!validateHost(host)) { + return false; + } + if (ifYesClicked && !pacMods.filteredCustomsString) { + showErrors( new TypeError( + 'Проксировать СВОИ сайты можно только при наличии СВОИХ прокси (см. «Модификаторы» ). Нет своих прокси, удовлетворяющих вашим требованиям.' + )); + return false; + } + //const ifNew = !(host in pacMods.exceptions); + pacMods.exceptions[host] = ifYesClicked; + // Change label. + fixOptions = () => { + if (curOptOrNull) { + curOptOrNull.label = ifYesClicked ? labelIfProxied : labelIfNotProxied; + } else { + addOption(host, ifYesClicked); + } + }; + } + + conduct( + 'Применяем исключения...', + (cb) => pacKitchen.keepCookedNowAsync(pacMods, cb), + 'Исключения применены. Не забывайте о кэше!', + () => { + + fixOptions(); + // Window may be closed before this line executes. + renderExceptionsPanelFromExcList(); + + } + ); + return false; // Don't check before operation is finished. + + }; + + } // EXC-EDITOR ends. + + } // EXCEPTIONS TAB ends. + + { // PAC MODS TAB starts. + + const modsList = document.getElementById('pac-mods'); + const _firstChildOrNull = modsList.firstChild; + + for(const conf of pacKitchen.getOrderedConfigs('general')) { + + const li = document.createElement('li'); + appendInfoRow(li, conf, `type="checkbox" ${conf.value ? 'checked' : ''}`); + modsList.insertBefore( li, _firstChildOrNull ); + modKeyToLi[conf.key] = li; + + }; + + } // PAC MODS TAB ends. + + const customProxyStringKey = 'customProxyStringRaw'; + const uiRaw = 'ui-proxy-string-raw'; + + { // OWN PROXIES TAB starts. + + const ownsList = document.getElementById('own-mods'); + const _firstChildOrNull = ownsList.firstChild; + + for(const conf of pacKitchen.getOrderedConfigs('ownProxies')) { + + const li = document.createElement('li'); + appendInfoRow(li, conf, `type="checkbox" ${conf.value ? 'checked' : ''}`); + + const key = conf.key; + const ifMultiline = key === customProxyStringKey; + if (ifMultiline) { + li.style.flexWrap = 'wrap'; + li.innerHTML += ` + + `; + li.querySelector('textarea').onkeyup = function() { + + this.dispatchEvent( new Event('change', {'bubbles': true}) ); + + }; + } + + ownsList.insertBefore( li, _firstChildOrNull ); + modKeyToLi[key] = li; + + } + + } // OWN PROXIES TAB ends. + + { // APPLY MODS PANEL starts. + + document.getElementById('apply-mods').onclick = () => { + + const oldMods = pacKitchen.getPacMods(); + for(const key of Object.keys(modKeyToLi)) { + oldMods[key] = modKeyToLi[key].querySelector('input').checked; + }; + + { + // OWN PROXY + + const liPs = modKeyToLi[customProxyStringKey]; + oldMods[customProxyStringKey] + = liPs.querySelector('input').checked + && liPs.querySelector('textarea').value.trim(); + + const taVal = liPs.querySelector('textarea').value; + if (oldMods[customProxyStringKey] !== false) { + const ifValidArr = taVal + .trim() + .replace(/#.*$/mg, '') + .split(/\s*[;\n\r]+\s*/g) + .filter( (str) => str ); + const ifValid = ifValidArr.every( + (str) => + /^(?:DIRECT|(?:(?:HTTPS|PROXY|SOCKS(?:4|5)?)\s+\S+))$/g + .test(str.trim()) + ); + if (!(ifValidArr.length && ifValid)) { + return showErrors(new TypeError( + 'Неверный формат своих прокси. Свертесь с документацией.' + )); + } + oldMods[customProxyStringKey] = taVal; + } else { + localStorage.setItem(uiRaw, taVal); + } + + } + applyMods(oldMods); + + }; + + document.getElementById('reset-mods').onclick = () => { + + const ifSure = backgroundPage.confirm('Сбросить все модификаторы и ИСКЛЮЧЕНИЯ?'); + if (!ifSure) { + return false; + } + conduct( + 'Сбрасываем...', + (cb) => { + + pacKitchen.resetToDefaults(); + backgroundPage.utils.fireRequest('ip-to-host-reset-to-defaults', cb); + + }, + 'Откройте окно заново для отображения эффекта.', + () => window.close() + ); + + } + + } // APPLY MODS PANEL ends. + + } // KITCHEN PANELS ends. + + // NOTIFICATIONS PANEL + + const conPanel = document.getElementById('list-of-notifiers'); + errorHandlers.getEventsMap().forEach( (value, name) => { + + const li = document.createElement('li'); + li.innerHTML = ` + + `; + const box = li.querySelector('input'); + box.checked = backgroundPage.apis.errorHandlers.isOn(name); + box.onclick = function() { + + const id = this.id.replace('if-on-', ''); + return backgroundPage.apis.errorHandlers.switch( + this.checked ? 'on' : 'off', + id + ); + + }; + conPanel.appendChild(li); + + }); + + if( !errorHandlers.ifControllable ) { + document.getElementById('which-extension').innerHTML + = backgroundPage.utils.messages.whichExtensionHtml(); + document.querySelectorAll('.if-not-controlled').forEach( (node) => { + + node.style.display = 'block'; + + }); + } + setStatusTo(''); + + if (antiCensorRu.ifFirstInstall) { + const id = antiCensorRu.getCurrentPacProviderKey() || 'none'; + document.querySelector('#update-' + id).click(); + } + document.documentElement.style.display = 'initial'; + + console.log(Date.now() - START); + + }) +); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/lib/transform-loader.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/lib/transform-loader.js new file mode 100644 index 0000000..9b5ccba --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/lib/transform-loader.js @@ -0,0 +1,24 @@ +'use strict'; + +const loaderUtils = require('loader-utils'); +const concat = require('concat-stream'); + +module.exports = function(content) { + + const cb = this.async(); + const Readable = require('stream').Readable; + const src = new Readable(); + src._read = function noop() {}; + src.push(content); + src.push(null); + + const opts = loaderUtils.getOptions(this) || {}; + const readme = Object.keys(opts).reduce((readable, moduleName) => { + + const newStream = require(moduleName)(/* No filename. */); + return readable.pipe(newStream); + + }, src); + readme.pipe(concat ((buf) => cb(null, buf.toString()) )); + +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/new.html b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/new.html new file mode 100644 index 0000000..8b73ddc --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/new.html @@ -0,0 +1,11 @@ + + + + + Настройки + + +
old info
+ + + diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/old.html b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/old.html new file mode 100644 index 0000000..a1d1577 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/old.html @@ -0,0 +1,608 @@ + + + + + Настройки + + + +
+ + + + + + + + + + + +
+ +
+
+
Загрузка...
+
+ + +
+ + + + + + + info + + + + + loop-round + + + + + import-export + + + + + + + + + + diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/package.json b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/package.json new file mode 100644 index 0000000..bad56e8 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/package.json @@ -0,0 +1,35 @@ +{ + "name": "hello-react", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "devDependencies": { + "babel-cli": "^6.24.1", + "babel-loader": "^7.0.0", + "babel-plugin-dynamic-import-webpack": "^1.0.1", + "babel-preset-flow": "^6.23.0", + "babel-preset-react": "^6.24.1", + "babili-webpack-plugin": "^0.0.11", + "bel": "^4.6.1", + "concat-stream": "^1.6.0", + "csjs": "^1.1.0", + "csjs-inject": "^1.0.1", + "csjs-injectify": "^1.0.1", + "flow-bin": "^0.45.0", + "inferno": "^3.1.2", + "microcomponent": "^3.1.1", + "nanomorph": "^4.0.5", + "nanomount": "^1.0.1", + "sheetify": "^6.0.2", + "transform-loader": "^0.2.4", + "webpack": "^2.5.1" + }, + "scripts": { + "check": "flow status", + "build:prod": "webpack --define process.env.NODE_ENV=\"'production'\" --env=prod", + "build:dev:nocomp": "webpack --define process.env.NODE_ENV=\"'production'\" --env=dev", + "build:dev": "webpack --debug --output-pathinfo --env=dev", + "gulp": "cd .. && npm run gulp", + "start": "npm run build:prod && npm run gulp" + } +} diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/notControlledWarning.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/notControlledWarning.js new file mode 100644 index 0000000..8321ea7 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/notControlledWarning.js @@ -0,0 +1,39 @@ +// @flow + +import mComponent from 'microcomponent'; +import html from 'bel'; +import css from 'csjs-inject'; + +const cssClasses = css` + + .ifNotControlled { + background-color: red; + color: white; + font-weight: bold; + text-align: center; + + padding-top: 1em; + padding-bottom: 1em; + + border-bottom: 1px solid var(--default-grey); + } + + :root.ifInsideOptions .ifNotControlled { + padding-top: 0; + padding-bottom: 0; + } + .ifNotControlled a { + color: white; + } + +`; + +export default (opts) => new mComponent(Object.assign({ + props: null, + pure: true, + }, opts)) + .on('render', function() { + + return html`
${ html(this.props.utils.messages.whichExtensionHtml()) }
` + + }); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/tabber.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/tabber.js new file mode 100644 index 0000000..3729b71 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/tabber.js @@ -0,0 +1,130 @@ +import mComponent from 'microcomponent'; +import html from 'bel'; +import css from 'csjs-inject'; + +const cssClasses = css` + + section[data-for] { + padding: 0.6em 0 1em; + } + section[data-for] li label { + display: inline-block; /* Needed for ::first-letter below. */ + } + section[data-for] li label::first-letter { + text-transform: uppercase; + } + :root.ifInsideOptions section[data-for] { + padding-bottom: 0.6em; + } + :root.ifInsideOptions section[data-for]:not(:last-child), + .underlined { + border-bottom: 1px solid var(--cr-options-headline); + } + + /* HIDE starts. */ + + :root:not(.ifInsideOptions) .mainNav section[data-for], + /* One button shared between two sections: */ + :root:not(.ifInsideOptions) .mainNav #apply-mods-section + { + /* Hide, but preclude width resizes. */ + height: 0px !important; + line-height: 0px !important; + padding-top: 0 !important; + padding-bottom: 0 !important; + margin-top: 0 !important; + margin-bottom: 0 !important; + border: none !important; + display: block; + visibility: hidden; + transform: scaleY(0) !important; + } + + :root:not(.ifInsideOptions) .mainNav section[data-for] *, + /* One button shared between two sections: */ + :root:not(.ifInsideOptions) .mainNav #apply-mods-section * + { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + /* HIDE ends. */ + + .navLabels { + background-color: var(--cr-grey-panel); + text-align: center; + } + .navLabels li label { + display: inline-block; + + border: 1px solid var(--ribbon-color); + border-radius: 0.2em; + + background-color: white; + color: var(--ribbon-color); + + padding: 0.2em 0.3em 0.3em 0.2em; + line-height: 0.8em; + margin: 0.1em 0; + } + .navLabels li label:hover { + background-color: var(--blue-bg); + color: white; + + /* + border-color: white; + border-style: dotted;*/ + } + + /* LABELS starts. */ + + input[name="selectedTabLabel"]:checked + label:not(:hover) + { + background-color: var(--blue-bg); + color: white; + } + /* ★★★★★ */ + .navLabels label:before { + content: '★'; + padding-right: 0.1em; + visibility: hidden; + } + .navLabels li label:hover:before, + input[name="selectedTabLabel"]:checked + label:before + { + visibility: initial; + } + + /* LABELS ends. */ + +`; + +export default (opts) => new mComponent(Object.assign({ + pure: true, + }, opts)) + .on('render', function () { + + return html` +
+ + + +
+ `; + + }); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/globalCss.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/globalCss.js new file mode 100644 index 0000000..5fd55be --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/globalCss.js @@ -0,0 +1,86 @@ +export default function append(document, props) { + + // innerText converts \n to
, so: + document.head.querySelector('style').innerHTML = ` + /* GLOBAL VARIABLES */ + + :root { + --ribbon-color: #4169e1; + --blue-bg: dodgerblue; + --default-grey: #bfbfbf; + --cr-options-headline: #d3d3d3; + --cr-icon-selected: #d7d7d7; + --cr-popup-border: #bababa; + --cr-grey-panel: #f2f2f2; + max-width: 28em; + } + + /* BASE ELEMENTS */ + + body { + margin: 0; + } + a, a:visited { + color: var(--ribbon-color); + text-decoration: none; + } + a:hover { + text-decoration: underline; + } + label { + user-select: none; + } + div, section, header, ul, ol { + margin: 0; + padding: 0; + } + header { + margin-bottom: 0.3em + } + ul, ol { + list-style-type: none; + } + li, .nowrap { + display: block; + white-space: nowrap; + word-break: keep-all; + } + li, li > * { + vertical-align: middle; + } + input[type="radio"], input[type="checkbox"] { + flex-shrink: 0; + } + input[type="radio"], label { + cursor: pointer; + } + hr { + border: none; + border-top: 1px solid var(--cr-popup-border); + margin: 0 0 0.6em 0; + padding: 0; + } + em { + font-style: normal; + text-decoration: underline; + } + + /* COMMON CLASSES */ + + .off { + display: none; + } + .horPadded { + padding-left: 1.4em; + padding-right: 1.4em; + } + .horizontalList, + .horizontalList li { + line-height: 100%; + } + .horizontalList li { + display: inline-block; + } + `; + +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.css b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.css new file mode 100644 index 0000000..292e664 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.css @@ -0,0 +1,80 @@ + /* GLOBAL VARIABLES */ + + :root { + --ribbon-color: #4169e1; + --blue-bg: dodgerblue; + --default-grey: #bfbfbf; + --cr-options-headline: #d3d3d3; + --cr-icon-selected: #d7d7d7; + --cr-popup-border: #bababa; + --cr-grey-panel: #f2f2f2; + max-width: 28em; + } + + /* BASE ELEMENTS */ + + body { + margin: 0; + } + a, a:visited { + color: var(--ribbon-color); + text-decoration: none; + } + a:hover { + text-decoration: underline; + } + label { + user-select: none; + } + div, section, header, ul, ol { + margin: 0; + padding: 0; + } + header { + margin-bottom: 0.3em + } + ul, ol { + list-style-type: none; + } + li, .nowrap { + display: block; + white-space: nowrap; + word-break: keep-all; + } + li, li > * { + vertical-align: middle; + } + input[type="radio"], input[type="checkbox"] { + flex-shrink: 0; + } + input[type="radio"], label { + cursor: pointer; + } + hr { + border: none; + border-top: 1px solid var(--cr-popup-border); + margin: 0 0 0.6em 0; + padding: 0; + } + em { + font-style: normal; + text-decoration: underline; + } + + /* COMMON CLASSES */ + + .off { + display: none; + } + .horPadded { + padding-left: 1.4em; + padding-right: 1.4em; + } + .horizontalList, + .horizontalList li { + line-height: 100%; + } + .horizontalList li { + display: inline-block; + } + diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.js new file mode 100644 index 0000000..971887a --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.js @@ -0,0 +1,137 @@ +// @flow + +import mComponent from 'microcomponent'; +import html from 'bel'; +import css from 'csjs-inject'; +import appendGlobalCss from './globalCss'; + +import NotControlledWarning from './components/notControlledWarning'; +import Tabber from './components/tabber'; +/* + #list-of-notifiers { + margin-left: 0.4em; + } +*/ + +chrome.runtime.getBackgroundPage( (backgroundPage) => + backgroundPage.apis.errorHandlers.installListenersOn( + window, 'PUP', async() => { + + let theState; + { + const apis = backgroundPage.apis; + + theState = { + utils: backgroundPage.utils, + antiCensorRu: backgroundPage.apis.antiCensorRu, + errorHandlers: apis.errorHandlers, + flags: { + /* Shortcuts to boolean values. */ + ifNotControlled: !apis.errorHandlers.ifControllable, + ifMini: apis.version.ifMini, + }, + }; + } + + if (theState.flags.ifMini) { + document.documentElement.classList.add('ifVersionMini'); + } + + // IF INSIDE OPTIONS TAB + + const currentTab = await new Promise( + (resolve) => chrome.tabs.query( + {active: true, currentWindow: true}, + ([tab]) => resolve(tab) + ) + ); + + theState.flags.ifInsideOptions = !currentTab || currentTab.url.startsWith('chrome://extensions/?options='); + if (theState.flags.ifInsideOptions) { + document.documentElement.classList.add('ifInsideOptions'); + } + + // STATE DEFINED, COMPOSE. + + appendGlobalCss(document, theState); + + const cssClasses = css` + + /* IF INSIDE OPTIONS */ + + ${ + theState.flags.ifInsideOptions ? ` + + ul, ol { + margin-left: 0.4em; + } + + ` : ` + + ul, ol { + /*Here is a flex bug: + () antizapret [update] (i) + () anticensority very_long_foobar [update] (i) <- Sic! + Also: options page is wider, check it too. + But: fixed 100% width conflicts with margins/paddings. + So: use only when needed and avoid margins. + FYI: setting left-margin fixes problem too, but margins are not wanted. + Fix this problem below: + */ + display: inline-block; + min-width: 100%; + } + ` + } + + `; + + const app = new mComponent({ + props: null, + pure: true, + }) + .on('render', function() { + + return html`
+ ${ + this.props.flags.ifNotControlled ? NotControlledWarning().render(this.props) : '' + } + ${ Tabber({ state: { + tabs: [ + { + label: 'PAC-скрипт', + content: "PacChooser().render(this.props)", + }, + { + label: 'Исключения', + content: "Exceptions().render(this.props)", + }, + { + label: 'Свои прокси', + content: "OwnProxies().render(this.props)", + }, + { + label: 'Модификаторы', + content: "Modificators().render(this.props)", + }, + { + label: 'Уведомления', + content: "Notifications().render(this.props)", + } + ] + }}).render(this.props) + } +
` + + }); + + document.body.appendChild(app.render(theState)); + + // READY TO RENDER + + document.documentElement.style.display = 'initial'; + + } + ) +); + diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/webpack.config.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/webpack.config.js new file mode 100644 index 0000000..832156f --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/webpack.config.js @@ -0,0 +1,46 @@ +'use strict'; + +const path = require('path'); +const BabiliPlugin = require('babili-webpack-plugin'); + +module.exports = (env, ...flags) => ({ + entry: './src/index.js', + output: { + path: path.join(__dirname, 'dist'), + filename: `bundle${env === 'prod' ? '.min' : ''}.js`, + publicPath: './dist/', + }, + devtool: 'source-map', + module: { + rules: [ + { + test: /\.jsx?$/, + include: path.join(__dirname, 'src'), + use: [ + { + loader: 'babel-loader', + options: { + presets: ['flow'], + plugins: ['dynamic-import-webpack'], + }, + }, + /*{ + loader: './lib/transform-loader?csjs-injectify', + },*/ + ], + } + ], + }, + + resolve: { + aliasFields: [], + }, + + plugins: env === 'prod' ? + [ + /* Production */ + //new BabiliPlugin(), + ] : [ + /* Development */ + ], +}); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/yarn.lock b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/yarn.lock new file mode 100644 index 0000000..4eb85a7 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/yarn.lock @@ -0,0 +1,2679 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + dependencies: + acorn "^4.0.3" + +acorn@^1.0.3: + version "1.2.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014" + +acorn@^2.4.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" + +acorn@^4.0.3: + version "4.0.11" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0" + +acorn@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" + +ajv-keywords@^1.1.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0, ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +anymatch@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" + dependencies: + arrify "^1.0.0" + micromatch "^2.1.5" + +aproba@^1.0.3: + version "1.1.1" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asn1.js@^4.0.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async@^2.1.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.4.0.tgz#4990200f18ea5b837c2cc4f8c031a6985c385611" + dependencies: + lodash "^4.14.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws4@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +babel-cli@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.24.1.tgz#207cd705bba61489b2ea41b5312341cf6aca2283" + dependencies: + babel-core "^6.24.1" + babel-polyfill "^6.23.0" + babel-register "^6.24.1" + babel-runtime "^6.22.0" + commander "^2.8.1" + convert-source-map "^1.1.0" + fs-readdir-recursive "^1.0.0" + glob "^7.0.0" + lodash "^4.2.0" + output-file-sync "^1.1.0" + path-is-absolute "^1.0.0" + slash "^1.0.0" + source-map "^0.5.0" + v8flags "^2.0.10" + optionalDependencies: + chokidar "^1.6.1" + +babel-code-frame@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" + dependencies: + chalk "^1.1.0" + esutils "^2.0.2" + js-tokens "^3.0.0" + +babel-core@^6.23.1, babel-core@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83" + dependencies: + babel-code-frame "^6.22.0" + babel-generator "^6.24.1" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + babylon "^6.11.0" + convert-source-map "^1.1.0" + debug "^2.1.1" + json5 "^0.5.0" + lodash "^4.2.0" + minimatch "^3.0.2" + path-is-absolute "^1.0.0" + private "^0.1.6" + slash "^1.0.0" + source-map "^0.5.0" + +babel-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.1.tgz#e715f486c58ded25649d888944d52aa07c5d9497" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.2.0" + source-map "^0.5.0" + trim-right "^1.0.1" + +babel-helper-builder-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz#0ad7917e33c8d751e646daca4e77cc19377d2cbc" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + esutils "^2.0.0" + +babel-helper-evaluate-path@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.0.3.tgz#1d103ac9d4a59e5d431842212f151785f7ac547b" + +babel-helper-flip-expressions@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.0.2.tgz#7bab2cf61162bc92703e9b298ef512bcf77d6787" + +babel-helper-is-nodes-equiv@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" + +babel-helper-is-void-0@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.0.1.tgz#ed74553b883e68226ae45f989a99b02c190f105a" + +babel-helper-mark-eval-scopes@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.0.3.tgz#902f75aeb537336edc35eb9f52b6f09db7785328" + +babel-helper-remove-or-void@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.0.1.tgz#f602790e465acf2dfbe84fb3dd210c43a2dd7262" + +babel-helper-to-multiple-sequence-expressions@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.0.4.tgz#d94414b386b6286fbaad77f073dea9b34324b01c" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-loader@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.0.0.tgz#2e43a66bee1fff4470533d0402c8a4532fafbaf7" + dependencies: + find-cache-dir "^0.1.1" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-dynamic-import-webpack@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-webpack/-/babel-plugin-dynamic-import-webpack-1.0.1.tgz#26c24a1c1c9bf49184b30d5867562a4cbfa530d1" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-template "^6.16.0" + +babel-plugin-minify-builtins@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.0.2.tgz#f3be6121763c0c518d5ef82067cef4b615c9498c" + dependencies: + babel-helper-evaluate-path "^0.0.3" + +babel-plugin-minify-constant-folding@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.0.4.tgz#b6e231026a6035e88ceadd206128d7db2b5c15e6" + dependencies: + babel-helper-evaluate-path "^0.0.3" + jsesc "^2.4.0" + +babel-plugin-minify-dead-code-elimination@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.1.4.tgz#18b6ecfab77c29caca061d8210fa3495001e4fa1" + dependencies: + babel-helper-mark-eval-scopes "^0.0.3" + babel-helper-remove-or-void "^0.0.1" + lodash.some "^4.6.0" + +babel-plugin-minify-flip-comparisons@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.0.2.tgz#7d0953aa5876ede6118966bda9edecc63bf346ab" + dependencies: + babel-helper-is-void-0 "^0.0.1" + +babel-plugin-minify-guarded-expressions@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.0.4.tgz#957104a760e6a7ffd967005a7a11621bb42fd11c" + dependencies: + babel-helper-flip-expressions "^0.0.2" + +babel-plugin-minify-infinity@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.0.3.tgz#4cc99b61d12b434ce80ad675103335c589cba9a1" + +babel-plugin-minify-mangle-names@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.0.8.tgz#1e2fea856dd742d5697aa26b427e41258a8c5b79" + dependencies: + babel-helper-mark-eval-scopes "^0.0.3" + +babel-plugin-minify-numeric-literals@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.0.1.tgz#9597e6c31154d7daf3744d0bd417c144b275bd53" + +babel-plugin-minify-replace@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.0.1.tgz#5d5aea7cb9899245248d1ee9ce7a2fe556a8facc" + +babel-plugin-minify-simplify@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.0.8.tgz#597b23327bba4373fed1c51461a689bce9ff4979" + dependencies: + babel-helper-flip-expressions "^0.0.2" + babel-helper-is-nodes-equiv "^0.0.1" + babel-helper-to-multiple-sequence-expressions "^0.0.4" + +babel-plugin-minify-type-constructors@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.0.4.tgz#52d8b623775107523227719ade2d0b7458758b5f" + dependencies: + babel-helper-is-void-0 "^0.0.1" + +babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + +babel-plugin-syntax-flow@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" + +babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" + +babel-plugin-transform-flow-strip-types@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" + dependencies: + babel-plugin-syntax-flow "^6.18.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-inline-consecutive-adds@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.0.2.tgz#a58fcecfc09c08fbf9373a5a3e70746c03d01fc1" + +babel-plugin-transform-member-expression-literals@^6.8.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.8.1.tgz#60b78cb2b814ac71dd6104ef51c496c62e877337" + +babel-plugin-transform-merge-sibling-variables@^6.8.2: + version "6.8.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.8.2.tgz#498acd07481ab340c1bad8b726c2fad1b8f644e5" + +babel-plugin-transform-minify-booleans@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.8.0.tgz#b1a48864a727847696b84eae36fa4d085a54b42b" + dependencies: + babel-runtime "^6.0.0" + +babel-plugin-transform-property-literals@^6.8.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.8.1.tgz#05ed01f6024820b18f1d0495c80fe287176bccd9" + +babel-plugin-transform-react-display-name@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.23.0.tgz#4398910c358441dc4cef18787264d0412ed36b37" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-self@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx-source@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" + dependencies: + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-react-jsx@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" + dependencies: + babel-helper-builder-react-jsx "^6.24.1" + babel-plugin-syntax-jsx "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-regexp-constructors@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.0.6.tgz#0d92607f0d26268296980cb7c1dea5f2dd3e1e20" + +babel-plugin-transform-remove-console@^6.8.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.8.1.tgz#38f6a6ca1581e76b75fc2c6fdcf909deadee7d6a" + +babel-plugin-transform-remove-debugger@^6.8.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.8.1.tgz#aabd0be107f8299094defe8e1ba8ccf4b114d07f" + +babel-plugin-transform-remove-undefined@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.0.5.tgz#12ef11805e06e861dd2eb0c7cc041d2184b8f410" + +babel-plugin-transform-simplify-comparison-operators@^6.8.1: + version "6.8.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.8.1.tgz#a307088e0d1c728081777fba568f4107396ab25c" + +babel-plugin-transform-undefined-to-void@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.8.0.tgz#bc5b6b4908d3b1262170e67cb3963903ddce167e" + dependencies: + babel-runtime "^6.0.0" + +babel-polyfill@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" + dependencies: + babel-runtime "^6.22.0" + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-preset-babili@^0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/babel-preset-babili/-/babel-preset-babili-0.0.12.tgz#74d79205d54feae6470bc84231da0b9ac9fc7de9" + dependencies: + babel-plugin-minify-builtins "^0.0.2" + babel-plugin-minify-constant-folding "^0.0.4" + babel-plugin-minify-dead-code-elimination "^0.1.4" + babel-plugin-minify-flip-comparisons "^0.0.2" + babel-plugin-minify-guarded-expressions "^0.0.4" + babel-plugin-minify-infinity "^0.0.3" + babel-plugin-minify-mangle-names "^0.0.8" + babel-plugin-minify-numeric-literals "^0.0.1" + babel-plugin-minify-replace "^0.0.1" + babel-plugin-minify-simplify "^0.0.8" + babel-plugin-minify-type-constructors "^0.0.4" + babel-plugin-transform-inline-consecutive-adds "^0.0.2" + babel-plugin-transform-member-expression-literals "^6.8.1" + babel-plugin-transform-merge-sibling-variables "^6.8.2" + babel-plugin-transform-minify-booleans "^6.8.0" + babel-plugin-transform-property-literals "^6.8.1" + babel-plugin-transform-regexp-constructors "^0.0.6" + babel-plugin-transform-remove-console "^6.8.1" + babel-plugin-transform-remove-debugger "^6.8.1" + babel-plugin-transform-remove-undefined "^0.0.5" + babel-plugin-transform-simplify-comparison-operators "^6.8.1" + babel-plugin-transform-undefined-to-void "^6.8.0" + lodash.isplainobject "^4.0.6" + +babel-preset-flow@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" + dependencies: + babel-plugin-transform-flow-strip-types "^6.22.0" + +babel-preset-react@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" + dependencies: + babel-plugin-syntax-jsx "^6.3.13" + babel-plugin-transform-react-display-name "^6.23.0" + babel-plugin-transform-react-jsx "^6.24.1" + babel-plugin-transform-react-jsx-self "^6.22.0" + babel-plugin-transform-react-jsx-source "^6.22.0" + babel-preset-flow "^6.23.0" + +babel-register@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f" + dependencies: + babel-core "^6.24.1" + babel-runtime "^6.22.0" + core-js "^2.4.0" + home-or-tmp "^2.0.0" + lodash "^4.2.0" + mkdirp "^0.5.1" + source-map-support "^0.4.2" + +babel-runtime@^6.0.0, babel-runtime@^6.22.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + +babel-template@^6.16.0, babel-template@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + babylon "^6.11.0" + lodash "^4.2.0" + +babel-traverse@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695" + dependencies: + babel-code-frame "^6.22.0" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + babylon "^6.15.0" + debug "^2.2.0" + globals "^9.0.0" + invariant "^2.2.0" + lodash "^4.2.0" + +babel-types@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975" + dependencies: + babel-runtime "^6.22.0" + esutils "^2.0.2" + lodash "^4.2.0" + to-fast-properties "^1.0.1" + +babili-webpack-plugin@^0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/babili-webpack-plugin/-/babili-webpack-plugin-0.0.11.tgz#09571593b81bbcc3033e8570540b391e98801803" + dependencies: + babel-core "^6.23.1" + babel-preset-babili "^0.0.12" + webpack-sources "^0.1.4" + +babylon@^6.11.0, babylon@^6.15.0: + version "6.17.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.0.tgz#37da948878488b9c4e3c4038893fa3314b3fc932" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +base64-js@^1.0.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +bel@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/bel/-/bel-4.6.1.tgz#fd3a445914e90ff32b08e92192f557f15845cd34" + dependencies: + global "^4.3.0" + hyperx "^2.3.0" + on-load "^3.2.0" + +big.js@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + +binary-extensions@^1.0.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +brace-expansion@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" + dependencies: + buffer-xor "^1.0.2" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + inherits "^2.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + dependencies: + pako "~0.2.0" + +buffer-shims@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" + +buffer-xor@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.1.0, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chokidar@^1.4.3, chokidar@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" + dependencies: + inherits "^2.0.1" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +commander@^2.8.1: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +concat-stream@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +convert-source-map@^1.1.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + +core-js@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.2.tgz#51210062d7bb7479f6c65bb41a92208b1d61abad" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^1.0.0" + sha.js "^2.3.6" + +create-hmac@^1.1.0, create-hmac@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.4.tgz#d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170" + dependencies: + create-hash "^1.1.0" + inherits "^2.0.1" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +crypto-browserify@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + +csjs-inject@^1.0.0, csjs-inject@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/csjs-inject/-/csjs-inject-1.0.1.tgz#de22113c40b46cfe17d3d62a00c77c9d7da7527c" + dependencies: + csjs "^1.0.0" + insert-css "^0.2.0" + +csjs-injectify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/csjs-injectify/-/csjs-injectify-1.0.1.tgz#526da892b87346badb16bd5fbe7b20245dbf247b" + dependencies: + acorn "^2.4.0" + csjs-inject "^1.0.0" + falafel "^1.2.0" + through2 "^2.0.0" + +csjs@^1.0.0, csjs@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/csjs/-/csjs-1.1.0.tgz#1b5753c6bd902da269deb369215585a5d8f1f380" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +debug@^2.1.1, debug@^2.2.0: + version "2.6.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a" + dependencies: + ms "0.7.3" + +decamelize@^1.0.0, decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-extend@~0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + +domain-browser@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +elliptic@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +enhanced-resolve@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz#9f4b626f577245edcf4b2ad83d86e17f4f421dec" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.5" + +errno@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + dependencies: + prr "~0.0.0" + +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escodegen@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + +esutils@^2.0.0, esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +evp_bytestokey@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" + dependencies: + create-hash "^1.1.1" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +extend@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" + +falafel@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/falafel/-/falafel-1.2.0.tgz#c18d24ef5091174a497f318cd24b026a25cddab4" + dependencies: + acorn "^1.0.3" + foreach "^2.0.5" + isarray "0.0.1" + object-keys "^1.0.6" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + +flow-bin@^0.45.0: + version "0.45.0" + resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.45.0.tgz#009dd0f577a3f665c74ca8be827ae8c2dd8fd6b5" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +fs-readdir-recursive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.29" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@^7.0.0, glob@^7.0.5: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^9.0.0: + version "9.17.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" + +graceful-fs@^4.1.2, graceful-fs@^4.1.4: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" + dependencies: + inherits "^2.0.1" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.4.2" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + +hyperscript-attribute-to-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hyperscript-attribute-to-property/-/hyperscript-attribute-to-property-1.0.0.tgz#825308d49bb8e2957923f731981bcc811cad7aff" + +hyperx@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/hyperx/-/hyperx-2.3.0.tgz#70f473d66d4ad550ddd1c83e4be2651276bbf1e2" + dependencies: + hyperscript-attribute-to-property "^1.0.0" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inferno-shared@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/inferno-shared/-/inferno-shared-3.1.1.tgz#70376e29a56c53f6ba1e942191fe5cb710654f73" + +inferno-vnode-flags@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/inferno-vnode-flags/-/inferno-vnode-flags-3.0.0.tgz#f396390f3dafae3b76eea04d04eed6cf2004473b" + +inferno@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/inferno/-/inferno-3.1.2.tgz#37ae33ef6ed75a05b1a4b7b4b24b99fe0a120b9e" + dependencies: + inferno-shared "3.1.1" + inferno-vnode-flags "^3.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +insert-css@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/insert-css/-/insert-css-0.2.0.tgz#d15789971662d9899c28977fb6220d5381d2451a" + +insert-css@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/insert-css/-/insert-css-2.0.0.tgz#eb5d1097b7542f4c79ea3060d3aee07d053880f4" + +interpret@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + +invariant@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-dotfile@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-number@^2.0.2, is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +jodid25519@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" + dependencies: + jsbn "~0.1.0" + +js-base64@^2.1.9: + version "2.1.9" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" + +js-tokens@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@^2.4.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" + +json-loader@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsprim@^1.2.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" + dependencies: + assert-plus "1.0.0" + extsprintf "1.0.2" + json-schema "0.2.3" + verror "1.3.6" + +kind-of@^3.0.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07" + dependencies: + is-buffer "^1.1.5" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.some@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" + +lodash@^4.14.0, lodash@^4.2.0: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +map-limit@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/map-limit/-/map-limit-0.0.1.tgz#eb7961031c0f0e8d001bf2d56fab685d58822f38" + dependencies: + once "~1.3.0" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +microcomponent@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/microcomponent/-/microcomponent-3.1.1.tgz#c08d7cccd09863c016e4a09db0098b4457df8d9b" + dependencies: + nanocomponent "^4.0.1" + nanologger "^1.0.2" + nanomorph "^4.0.3" + nanotiming "^1.0.0" + shallow-equal "^1.0.0" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +miller-rabin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@~1.27.0: + version "1.27.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" + +mime-types@^2.1.12, mime-types@~2.1.7: + version "2.1.15" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" + dependencies: + mime-db "~1.27.0" + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + dependencies: + dom-walk "^0.1.0" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +minimatch@^3.0.0, minimatch@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +ms@0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" + +nan@^2.3.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" + +nanocomponent@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/nanocomponent/-/nanocomponent-4.0.2.tgz#786d5ff60dbf97727ccd41879688c07f462c973c" + dependencies: + on-load "^3.2.0" + +nanologger@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/nanologger/-/nanologger-1.0.3.tgz#673f29456ae16abe839abc0feeb64a6a135c557e" + +nanomorph@^4.0.0, nanomorph@^4.0.3, nanomorph@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/nanomorph/-/nanomorph-4.0.5.tgz#7e27cc5e28a05df0c278f53ba430f253f3ac3fac" + +nanomount@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nanomount/-/nanomount-1.0.1.tgz#da6e4c446f046a20d5a87bfc3a6152be29890d35" + dependencies: + nanomorph "^4.0.0" + +nanotiming@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nanotiming/-/nanotiming-1.0.1.tgz#13e7a2e2767967974fedfff071edd39327f44ec3" + +node-libs-browser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.1.4" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "0.0.1" + os-browserify "^0.2.0" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^2.0.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-pre-gyp@^0.6.29: + version "0.6.34" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" + dependencies: + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2: + version "2.3.8" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +npmlog@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-keys@^1.0.6: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +on-load@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/on-load/-/on-load-3.2.0.tgz#dd3145d3a5c2faa5666920d1df674b69f0c2f66f" + dependencies: + global "^4.3.0" + +once@^1.3.0, once@^1.3.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +optionator@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +os-browserify@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +output-file-sync@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" + dependencies: + graceful-fs "^4.1.4" + mkdirp "^0.5.1" + object-assign "^4.1.0" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +parse-asn1@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +pbkdf2@^3.0.3: + version "3.0.9" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" + dependencies: + create-hmac "^1.1.2" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + dependencies: + find-up "^1.0.0" + +postcss-prefix@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-prefix/-/postcss-prefix-2.0.0.tgz#2139e8fba64ed71b93e3a8b1d4c5976e2a949c6f" + dependencies: + postcss "^5.0.8" + postcss-selector-parser "^1.3.0" + +postcss-selector-parser@^1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz#d2ee19df7a64f8ef21c1a71c86f7d4835c88c281" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss@^5.0.10, postcss@^5.0.8: + version "5.2.17" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +private@^0.1.6: + version "0.1.7" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@^0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + +prr@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +randomatic@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" + dependencies: + is-number "^2.0.2" + kind-of "^3.0.2" + +randombytes@^2.0.0, randombytes@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" + +rc@^1.1.7: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6: + version "2.2.9" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" + dependencies: + buffer-shims "~1.0.0" + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~1.0.0" + util-deprecate "~1.0.1" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +regenerator-runtime@^0.10.0: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + +remove-trailing-separator@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +request@^2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +resolve@^1.1.7: + version "1.3.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" + dependencies: + path-parse "^1.0.5" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" + +ripemd160@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" + +safe-buffer@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +sha.js@^2.3.6: + version "2.4.8" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" + dependencies: + inherits "^2.0.1" + +shallow-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.0.0.tgz#508d1838b3de590ab8757b011b25e430900945f7" + +sheetify@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/sheetify/-/sheetify-6.0.2.tgz#f494161e1cafc1bc02276e930e148acdd3344fd2" + dependencies: + falafel "^1.2.0" + insert-css "^2.0.0" + map-limit "0.0.1" + postcss "^5.0.10" + postcss-prefix "^2.0.0" + resolve "^1.1.7" + stack-trace "0.0.9" + static-eval "^1.1.0" + style-resolve "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.1" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +source-list-map@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.2.tgz#9889019d1024cce55cdc069498337ef6186a11a1" + +source-list-map@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" + +source-map-support@^0.4.2: + version "0.4.15" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" + dependencies: + source-map "^0.5.6" + +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + dependencies: + amdefine ">=0.0.4" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +sshpk@^1.7.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jodid25519 "^1.0.0" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stack-trace@0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.9.tgz#a8f6eaeca90674c333e7c43953f275b451510695" + +static-eval@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-1.1.1.tgz#ca8130210354cf13d9a722bc7e923778457bb192" + dependencies: + escodegen "^1.8.1" + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-http@^2.3.1: + version "2.7.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.0.tgz#cec1f4e3b494bc4a81b451808970f8b20b4ed5f6" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.2.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string_decoder@^0.10.25: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string_decoder@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667" + dependencies: + buffer-shims "~1.0.0" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +style-resolve@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/style-resolve/-/style-resolve-1.0.1.tgz#2d2067c944d5fb7f553ca75c4e7947df43796fae" + dependencies: + resolve "^1.1.7" + xtend "^4.0.1" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.0, supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +tapable@^0.2.5, tapable@~0.2.5: + version "0.2.6" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d" + +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +through2@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +timers-browserify@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86" + dependencies: + setimmediate "^1.0.4" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-fast-properties@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +tough-cookie@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +transform-loader@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/transform-loader/-/transform-loader-0.2.4.tgz#e5c87877ba96d51d3f225368587b46e226d1cec9" + dependencies: + loader-utils "^1.0.2" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + +uglify-js@^2.8.5: + version "2.8.23" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.23.tgz#8230dd9783371232d62a7821e2cf9a817270a8a0" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3, util@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +uuid@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + +v8flags@^2.0.10: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +verror@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" + dependencies: + extsprintf "1.0.2" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +watchpack@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.3.1.tgz#7d8693907b28ce6013e7f3610aa2a1acf07dad87" + dependencies: + async "^2.1.2" + chokidar "^1.4.3" + graceful-fs "^4.1.2" + +webpack-sources@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.5.tgz#aa1f3abf0f0d74db7111c40e500b84f966640750" + dependencies: + source-list-map "~0.1.7" + source-map "~0.5.3" + +webpack-sources@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb" + dependencies: + source-list-map "^1.1.1" + source-map "~0.5.3" + +webpack@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.5.1.tgz#61742f0cf8af555b87460a9cd8bba2f1e3ee2fce" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^4.7.0" + ajv-keywords "^1.1.1" + async "^2.1.2" + enhanced-resolve "^3.0.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^0.2.16" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^3.1.0" + tapable "~0.2.5" + uglify-js "^2.8.5" + watchpack "^1.3.1" + webpack-sources "^0.2.3" + yargs "^6.0.0" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +wide-align@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" + dependencies: + string-width "^1.0.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yargs-parser@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" + dependencies: + camelcase "^3.0.0" + +yargs@^6.0.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^4.2.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" From 20d11fb5d6c1a4e4b87b11136b80fe0fc0f8b327 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Tue, 16 May 2017 16:41:17 +0500 Subject: [PATCH 05/36] Delete choo-based popup --- .../pages/options_choo/.flowconfig | 8 - .../pages/options_choo/.gitignore | 4 - .../pages/options_choo/README.md | 11 - .../pages/options_choo/index.html | 11 - .../pages/options_choo/index.js | 780 ----- .../options_choo/lib/transform-loader.js | 24 - .../pages/options_choo/new.html | 11 - .../pages/options_choo/old.html | 608 ---- .../pages/options_choo/package.json | 35 - .../src/components/notControlledWarning.js | 39 - .../options_choo/src/components/tabber.js | 130 - .../pages/options_choo/src/globalCss.js | 86 - .../pages/options_choo/src/index.css | 80 - .../pages/options_choo/src/index.js | 137 - .../pages/options_choo/webpack.config.js | 46 - .../pages/options_choo/yarn.lock | 2679 ----------------- 16 files changed, 4689 deletions(-) delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.flowconfig delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.gitignore delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/README.md delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.html delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.js delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/lib/transform-loader.js delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/new.html delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/old.html delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/package.json delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/notControlledWarning.js delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/tabber.js delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/globalCss.js delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.css delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.js delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/webpack.config.js delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/yarn.lock diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.flowconfig b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.flowconfig deleted file mode 100644 index 78f533f..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.flowconfig +++ /dev/null @@ -1,8 +0,0 @@ -[ignore] -.*/test/.* - -[include] - -[libs] - -[options] diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.gitignore b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.gitignore deleted file mode 100644 index 2966787..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -npm-debug.log -.swp -dist diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/README.md b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/README.md deleted file mode 100644 index 43a029a..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# React + Flow + Webpack 2 Boilerplate with Babel - -Switch branches for adding/removing Babel for JSX + Flowtype. - -## Install - -`yarn install` or `npm install --dev` - -## Run - -`yarn/npm run build` diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.html b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.html deleted file mode 100644 index 0117ed3..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Настройки - - - - - - diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.js deleted file mode 100644 index 388d0da..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/index.js +++ /dev/null @@ -1,780 +0,0 @@ -'use strict'; - -const START = Date.now(); -{ - - const enableButton = function enablebutton() { - - document.getElementById('apply-mods').disabled = false; - - }; - - const onModChanged = function onModChanged(ev) { - - enableButton(); - - }; - ['pac-mods', 'own-mods'].forEach((id) => { - - document.getElementById(id).onchange = onModChanged; - - }); - -} - -chrome.runtime.getBackgroundPage( (backgroundPage) => - backgroundPage.apis.errorHandlers.installListenersOn( - window, 'PUP', async() => { - - const getStatus = () => document.querySelector('#status'); - - const setStatusTo = (msg) => { - - getStatus().innerHTML = msg || 'Хорошего настроения Вам!'; - - }; - - const antiCensorRu = backgroundPage.apis.antiCensorRu; - const errorHandlers = backgroundPage.apis.errorHandlers; - - // SET DATE - - const setDate = () => { - - let dateForUser = 'никогда'; - if( antiCensorRu.lastPacUpdateStamp ) { - let diff = Date.now() - antiCensorRu.lastPacUpdateStamp; - let units = 'мс'; - const gauges = [ - [1000, 'с'], - [60, 'мин'], - [60, 'ч'], - [24, 'дн'], - [7, ' недель'], - [4, ' месяцев'], - ]; - for(const g of gauges) { - const diffy = Math.floor(diff / g[0]); - if (!diffy) - break; - diff = diffy; - units = g[1]; - } - dateForUser = diff + units + ' назад'; - } - - const dateElement = document.querySelector('.update-date'); - dateElement.innerText = dateForUser + ' / ' + - (antiCensorRu.pacUpdatePeriodInMinutes/60) + 'ч'; - dateElement.title = new Date(antiCensorRu.lastPacUpdateStamp) - .toLocaleString('ru-RU'); - - }; - - setDate(); - chrome.storage.onChanged.addListener( - (changes) => changes.lastPacUpdateStamp.newValue && setDate() - ); - - // CLOSE BUTTON - - document.querySelector('.close-button').onclick = () => window.close(); - - // RADIOS FOR PROVIDERS - - const currentProviderRadio = () => { - - const iddy = antiCensorRu.getCurrentPacProviderKey() || 'none'; - return document.getElementById(iddy); - - }; - const checkChosenProvider = () => { - - currentProviderRadio().checked = true; - - }; - - const showErrors = (err, ...warns) => { - - const warning = warns - .map( - (w) => w && w.message || '' - ) - .filter( (m) => m ) - .map( (m) => '✘ ' + m ) - .join('
'); - - let message = ''; - if (err) { - let wrapped = err.wrapped; - message = err.message || ''; - - while( wrapped ) { - const deeperMsg = wrapped && wrapped.message; - if (deeperMsg) { - message = message + ' > ' + deeperMsg; - } - wrapped = wrapped.wrapped; - } - } - message = message.trim(); - if (warning) { - message = message ? message + '
' + warning : warning; - } - setStatusTo( - ` - ${err ? '🔥 Ошибка!' : 'Некритичная ошибка.'} - -
- ${message} - ${err ? '[Техн.детали]' : ''}` - ); - if (err) { - getStatus().querySelector('.link-button').onclick = function() { - - errorHandlers.viewError('pup-ext-err', err); - return false; - - }; - } - - }; - - const switchInputs = function(val) { - - const inputs = document.querySelectorAll('input'); - for ( let i = 0; i < inputs.length; i++ ) { - const input = inputs[i]; - if (val === 'off') { - input.dataset.previousDisabledValue = input.disabled; - input.disabled = true; - } else { - input.disabled = input.dataset.previousDisabledValue === 'true'; - } - } - - }; - - const conduct = (beforeStatus, operation, afterStatus, onSuccess = () => {}, onError = () => {}) => { - - setStatusTo(beforeStatus); - switchInputs('off'); - operation((err, res, ...warns) => { - - warns = warns.filter( (w) => w ); - if (err || warns.length) { - showErrors(err, ...warns); - } else { - setStatusTo(afterStatus); - } - switchInputs('on'); - if (!err) { - onSuccess(res); - } else { - onError(err); - } - }); - - }; - - const infoIcon = ` - - `; - - const infoSign = function infoSign(tooltip) { - - return `
- ${infoIcon} -
${tooltip}
-
`; - - }; - - const infoUrl = (url) => `${infoIcon}`; - - const camelToDash = (name) => name.replace(/([A-Z])/g, (_, p1) => '-' + p1.toLowerCase()); - // const dashToCamel = (name) => name.replace(/-(.)/g, (_, p1) => p1.toUpperCase()); - - const appendInfoRow = (mountEl, conf, inputTypeAndName, - { - idPrefix = 'mods-', - ifDashify = true, - htmlAfterLabel = '' - } = {}) => { - - mountEl.classList.add('info-row', 'hor-flex'); - if (conf.ifDisabled) { - mountEl.title = 'В РАЗРАБОТКЕ!'; - } - const iddy = idPrefix + ( ifDashify ? camelToDash(conf.key) : conf.key ); - mountEl.innerHTML = ` - -
- - ${htmlAfterLabel} -
` + (conf.desc ? infoSign(conf.desc) : infoUrl(conf.url)); - - }; - - { // PAC-PROVIDERS starts. - - const ul = document.getElementById('list-of-providers'); - const _firstChildOrNull = ul.firstChild; - for( - const provConf of antiCensorRu.getSortedEntriesForProviders() - ) { - const li = document.createElement('li'); - appendInfoRow(li, provConf, 'type="radio" name="pacProvider"', - { idPrefix: '', - ifDashify: false, - htmlAfterLabel: ` -  [обновить]` - } - ); - li.querySelector('.link-button').onclick = - () => { - conduct( - 'Обновляем...', (cb) => antiCensorRu.syncWithPacProviderAsync(cb), - 'Обновлено.' - ); - return false; - }; - ul.insertBefore( li, _firstChildOrNull ); - } - checkChosenProvider(); - - const radioClickHandler = function radioClickHandler(event) { - - const pacKey = event.target.id; - if ( - pacKey === ( - antiCensorRu.getCurrentPacProviderKey() || 'none' - ) - ) { - return false; - } - if (pacKey === 'none') { - conduct( - 'Отключение...', - (cb) => antiCensorRu.clearPacAsync(cb), - 'Отключено.', - checkChosenProvider - ); - } else { - conduct( - 'Установка...', - (cb) => antiCensorRu.installPacAsync(pacKey, cb), - 'PAC-скрипт установлен.', - checkChosenProvider - ); - } - return false; - - }; - - document.querySelectorAll('input[name=pacProvider]').forEach((radio) => { - - radio.onclick = radioClickHandler; - - }); - - } // PAC-PROVIDERS ends. - - // IF MINI - - if (backgroundPage.apis.version.ifMini) { - document.documentElement.classList.add('if-version-mini'); - } - - // IF INSIDE OPTIONS TAB - - const currentTab = await new Promise( - (resolve) => chrome.tabs.query( - {active: true, currentWindow: true}, - ([tab]) => resolve(tab) - ) - ); - - const ifInsideOptions = !currentTab || currentTab.url.startsWith('chrome://extensions/?options='); - if (ifInsideOptions) { - document.documentElement.classList.add('if-options-page'); - } - - - { // KITCHEN PANELS starts. - - const pacKitchen = backgroundPage.apis.pacKitchen; - const modKeyToLi = {}; - - const applyMods = function applyMods(newMods) { - - conduct( - 'Применяем настройки...', - (cb) => pacKitchen.keepCookedNowAsync(newMods, cb), - 'Настройки применены.', - () => { - - document.getElementById('apply-mods').disabled = true; - - } - ); - - }; - - { // EXCEPTIONS TAB starts. - - { // EXC-MODS starts. - - const emodsList = document.getElementById('exc-mods'); - const _firstChildOrNull = emodsList.firstChild; - - for(const conf of pacKitchen.getOrderedConfigs('exceptions')) { - - const li = document.createElement('li'); - appendInfoRow(li, conf, `type="checkbox" ${conf.value ? 'checked' : ''}`); - emodsList.insertBefore( li, _firstChildOrNull ); - - const key = conf.key; - modKeyToLi[key] = li; - li.querySelector('input').onclick = function() { - - const oldMods = pacKitchen.getPacMods(); - oldMods[key] = this.checked; - applyMods(oldMods); - - }; - - }; - - }// EXC-MODS ends. - - { // EXC-EDITOR starts. - - const excEditor = document.getElementById('exc-editor'); - - const validateHost = function validateHost(host) { - - const ValidHostnameRegex = /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$/; - if(!ValidHostnameRegex.test(host)) { - showErrors(new TypeError('Должно быть только доменное имя, без протокола, порта и пути. Попробуйте ещё раз.')); - return false; - } - return true; - - }; - - const labelIfProxied = '✔'; - const labelIfNotProxied = '✘'; - const labelIfAuto = '↻'; - - const addOption = function addOption(host, yesNoUndefined) { - - const opt = document.createElement('option'); - // `value` may be changed for hiding line in the tooltip. - opt.value = host; - opt.dataset.host = host; - switch(yesNoUndefined) { - case true: - opt.label = labelIfProxied; - break; - case false: - opt.label = labelIfNotProxied; - break; - default: - opt.label = labelIfAuto; - } - const editorHost = excEditor.value.trim(); - if (host === editorHost) { - excList.insertBefore( opt, excList.firstChild ); - } else { - excList.appendChild(opt); - } - return opt; - - }; - - const thisYes = document.getElementById('this-yes'); - const thisNo = document.getElementById('this-no'); - const thisAuto = document.getElementById('this-auto'); - const yesClass = 'if-yes'; - const noClass = 'if-no'; - - function moveCursorIfNeeded() { - - const nu = excEditor.dataset.moveCursorTo; - if(nu !== undefined) { - excEditor.setSelectionRange(nu, nu); - delete excEditor.dataset.moveCursorTo; - } - - } - - const hideOpt = (opt) => opt.value = '\n'; - const unhideOptAndAddSpace = (opt) => opt.value = opt.dataset.host + ' '; - - const excList = document.getElementById('exc-list'); - - excEditor.onkeydown = function(event) { - - moveCursorIfNeeded(); - if(event.key === 'Enter') { - // Hide all. - excList.childNodes.forEach( hideOpt ); - } - return true; - - }; - - const renderExceptionsPanelFromExcList = function renderExceptionsPanelFromExcList(event) { - - // If triangle button on right of datalist input clicked. - - let ifTriangleClicked = false; - const ifClick = event && event.type === 'click'; - - { - const maxIndentFromRightInPx = 15; - ifTriangleClicked = ifClick - && !excEditor.selectionStart && !excEditor.selectionEnd - && event.x > excEditor.getBoundingClientRect().right - maxIndentFromRightInPx; - } - - const setInputValue = (newValue) => { - - if (ifClick && !ifTriangleClicked) { - // Don't jerk cursor on simple clicks. - return; - } - // See bug in my comment to http://stackoverflow.com/a/32394157/521957 - // First click on empty input may be still ignored. - const nu = excEditor.selectionStart + newValue.length - excEditor.value.length; - excEditor.value = newValue; - excEditor.dataset.moveCursorTo = nu; - window.setTimeout(moveCursorIfNeeded, 0); - - }; - - const originalHost = excEditor.value.trim(); - const ifInit = !event; - const currentHost = ifTriangleClicked ? '' : (originalHost || (ifInit ? '' : ' ')); - setInputValue(currentHost); - - let exactOpt = false; - let editedOpt = false; - excList.childNodes.forEach( - (opt) => { - - unhideOptAndAddSpace(opt); - - if(opt.label === labelIfAuto) { - editedOpt = opt; - return; - } - if (opt.dataset.host === originalHost) { - exactOpt = opt; - } - - } - ); - - thisAuto.checked = true; - excEditor.parentNode.classList.remove(noClass, yesClass); - - const ifInputEmpty = !originalHost; - if (ifTriangleClicked || ifInputEmpty) { - // Show all opts. - if (editedOpt) { - // Example of editedOpt.value: 'abcde ' <- Mind the space (see unhideOptAndAddSpace)! - const ifBackspacedOneChar = ifInputEmpty && editedOpt.value.length < 3; - if (ifBackspacedOneChar) { - editedOpt.remove(); - } - } - return true; - } - - if (editedOpt) { - const ifEditedOptAlreadyExists = editedOpt.dataset.host === originalHost; - if(ifEditedOptAlreadyExists) { - hideOpt(editedOpt); - return true; - } - // Not exact! Update! - editedOpt.remove(); - } - - if (!exactOpt) { - editedOpt = addOption(originalHost, undefined); - if (!ifClick) { - // New value was typed -- don't show tooltip. - hideOpt(editedOpt); - } - return true; - } - - // Exact found! - excList.childNodes.forEach(hideOpt); - if(exactOpt.label === labelIfProxied) { - thisYes.checked = true; - excEditor.parentNode.classList.add(yesClass); - } else { - thisNo.checked = true; - excEditor.parentNode.classList.add(noClass); - } - return true; - - }; - - excEditor.onclick = excEditor.oninput = renderExceptionsPanelFromExcList; - - if (currentTab && !currentTab.url.startsWith('chrome')) { - excEditor.value = new URL(currentTab.url).hostname; - } else { - // Show placeholder. - excEditor.value = ''; - } - - { // Populate selector. - - const pacMods = pacKitchen.getPacMods(); - for(const host of Object.keys(pacMods.exceptions || {}).sort()) { - addOption(host, pacMods.exceptions[host]); - } - renderExceptionsPanelFromExcList(); // Colorize input. - - } - - document.getElementById('exc-radio').onclick = function(event) { - - /* ON CLICK */ - if(event.target.tagName !== 'INPUT') { - // Only label on checkbox. - return true; - } - - const host = excEditor.value.trim(); - - const pacMods = pacKitchen.getPacMods(); - pacMods.exceptions = pacMods.exceptions || {}; - - let fixOptions; - const curOptOrNull = excList.querySelector(`[data-host="${host}"]`); - - if (thisAuto.checked) { - delete pacMods.exceptions[host]; - fixOptions = () => { - curOptOrNull && curOptOrNull.remove(); - } - } else { - // YES or NO checked. - const ifYesClicked = thisYes.checked; - if (!validateHost(host)) { - return false; - } - if (ifYesClicked && !pacMods.filteredCustomsString) { - showErrors( new TypeError( - 'Проксировать СВОИ сайты можно только при наличии СВОИХ прокси (см. «Модификаторы» ). Нет своих прокси, удовлетворяющих вашим требованиям.' - )); - return false; - } - //const ifNew = !(host in pacMods.exceptions); - pacMods.exceptions[host] = ifYesClicked; - // Change label. - fixOptions = () => { - if (curOptOrNull) { - curOptOrNull.label = ifYesClicked ? labelIfProxied : labelIfNotProxied; - } else { - addOption(host, ifYesClicked); - } - }; - } - - conduct( - 'Применяем исключения...', - (cb) => pacKitchen.keepCookedNowAsync(pacMods, cb), - 'Исключения применены. Не забывайте о кэше!', - () => { - - fixOptions(); - // Window may be closed before this line executes. - renderExceptionsPanelFromExcList(); - - } - ); - return false; // Don't check before operation is finished. - - }; - - } // EXC-EDITOR ends. - - } // EXCEPTIONS TAB ends. - - { // PAC MODS TAB starts. - - const modsList = document.getElementById('pac-mods'); - const _firstChildOrNull = modsList.firstChild; - - for(const conf of pacKitchen.getOrderedConfigs('general')) { - - const li = document.createElement('li'); - appendInfoRow(li, conf, `type="checkbox" ${conf.value ? 'checked' : ''}`); - modsList.insertBefore( li, _firstChildOrNull ); - modKeyToLi[conf.key] = li; - - }; - - } // PAC MODS TAB ends. - - const customProxyStringKey = 'customProxyStringRaw'; - const uiRaw = 'ui-proxy-string-raw'; - - { // OWN PROXIES TAB starts. - - const ownsList = document.getElementById('own-mods'); - const _firstChildOrNull = ownsList.firstChild; - - for(const conf of pacKitchen.getOrderedConfigs('ownProxies')) { - - const li = document.createElement('li'); - appendInfoRow(li, conf, `type="checkbox" ${conf.value ? 'checked' : ''}`); - - const key = conf.key; - const ifMultiline = key === customProxyStringKey; - if (ifMultiline) { - li.style.flexWrap = 'wrap'; - li.innerHTML += ` - - `; - li.querySelector('textarea').onkeyup = function() { - - this.dispatchEvent( new Event('change', {'bubbles': true}) ); - - }; - } - - ownsList.insertBefore( li, _firstChildOrNull ); - modKeyToLi[key] = li; - - } - - } // OWN PROXIES TAB ends. - - { // APPLY MODS PANEL starts. - - document.getElementById('apply-mods').onclick = () => { - - const oldMods = pacKitchen.getPacMods(); - for(const key of Object.keys(modKeyToLi)) { - oldMods[key] = modKeyToLi[key].querySelector('input').checked; - }; - - { - // OWN PROXY - - const liPs = modKeyToLi[customProxyStringKey]; - oldMods[customProxyStringKey] - = liPs.querySelector('input').checked - && liPs.querySelector('textarea').value.trim(); - - const taVal = liPs.querySelector('textarea').value; - if (oldMods[customProxyStringKey] !== false) { - const ifValidArr = taVal - .trim() - .replace(/#.*$/mg, '') - .split(/\s*[;\n\r]+\s*/g) - .filter( (str) => str ); - const ifValid = ifValidArr.every( - (str) => - /^(?:DIRECT|(?:(?:HTTPS|PROXY|SOCKS(?:4|5)?)\s+\S+))$/g - .test(str.trim()) - ); - if (!(ifValidArr.length && ifValid)) { - return showErrors(new TypeError( - 'Неверный формат своих прокси. Свертесь с документацией.' - )); - } - oldMods[customProxyStringKey] = taVal; - } else { - localStorage.setItem(uiRaw, taVal); - } - - } - applyMods(oldMods); - - }; - - document.getElementById('reset-mods').onclick = () => { - - const ifSure = backgroundPage.confirm('Сбросить все модификаторы и ИСКЛЮЧЕНИЯ?'); - if (!ifSure) { - return false; - } - conduct( - 'Сбрасываем...', - (cb) => { - - pacKitchen.resetToDefaults(); - backgroundPage.utils.fireRequest('ip-to-host-reset-to-defaults', cb); - - }, - 'Откройте окно заново для отображения эффекта.', - () => window.close() - ); - - } - - } // APPLY MODS PANEL ends. - - } // KITCHEN PANELS ends. - - // NOTIFICATIONS PANEL - - const conPanel = document.getElementById('list-of-notifiers'); - errorHandlers.getEventsMap().forEach( (value, name) => { - - const li = document.createElement('li'); - li.innerHTML = ` - - `; - const box = li.querySelector('input'); - box.checked = backgroundPage.apis.errorHandlers.isOn(name); - box.onclick = function() { - - const id = this.id.replace('if-on-', ''); - return backgroundPage.apis.errorHandlers.switch( - this.checked ? 'on' : 'off', - id - ); - - }; - conPanel.appendChild(li); - - }); - - if( !errorHandlers.ifControllable ) { - document.getElementById('which-extension').innerHTML - = backgroundPage.utils.messages.whichExtensionHtml(); - document.querySelectorAll('.if-not-controlled').forEach( (node) => { - - node.style.display = 'block'; - - }); - } - setStatusTo(''); - - if (antiCensorRu.ifFirstInstall) { - const id = antiCensorRu.getCurrentPacProviderKey() || 'none'; - document.querySelector('#update-' + id).click(); - } - document.documentElement.style.display = 'initial'; - - console.log(Date.now() - START); - - }) -); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/lib/transform-loader.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/lib/transform-loader.js deleted file mode 100644 index 9b5ccba..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/lib/transform-loader.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -const loaderUtils = require('loader-utils'); -const concat = require('concat-stream'); - -module.exports = function(content) { - - const cb = this.async(); - const Readable = require('stream').Readable; - const src = new Readable(); - src._read = function noop() {}; - src.push(content); - src.push(null); - - const opts = loaderUtils.getOptions(this) || {}; - const readme = Object.keys(opts).reduce((readable, moduleName) => { - - const newStream = require(moduleName)(/* No filename. */); - return readable.pipe(newStream); - - }, src); - readme.pipe(concat ((buf) => cb(null, buf.toString()) )); - -}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/new.html b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/new.html deleted file mode 100644 index 8b73ddc..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/new.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Настройки - - -
old info
- - - diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/old.html b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/old.html deleted file mode 100644 index a1d1577..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/old.html +++ /dev/null @@ -1,608 +0,0 @@ - - - - - Настройки - - - -
- - - - - - - - - - - -
- -
-
-
Загрузка...
-
- - -
- - - - - - - info - - - - - loop-round - - - - - import-export - - - - - - - - - - diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/package.json b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/package.json deleted file mode 100644 index bad56e8..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "hello-react", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "devDependencies": { - "babel-cli": "^6.24.1", - "babel-loader": "^7.0.0", - "babel-plugin-dynamic-import-webpack": "^1.0.1", - "babel-preset-flow": "^6.23.0", - "babel-preset-react": "^6.24.1", - "babili-webpack-plugin": "^0.0.11", - "bel": "^4.6.1", - "concat-stream": "^1.6.0", - "csjs": "^1.1.0", - "csjs-inject": "^1.0.1", - "csjs-injectify": "^1.0.1", - "flow-bin": "^0.45.0", - "inferno": "^3.1.2", - "microcomponent": "^3.1.1", - "nanomorph": "^4.0.5", - "nanomount": "^1.0.1", - "sheetify": "^6.0.2", - "transform-loader": "^0.2.4", - "webpack": "^2.5.1" - }, - "scripts": { - "check": "flow status", - "build:prod": "webpack --define process.env.NODE_ENV=\"'production'\" --env=prod", - "build:dev:nocomp": "webpack --define process.env.NODE_ENV=\"'production'\" --env=dev", - "build:dev": "webpack --debug --output-pathinfo --env=dev", - "gulp": "cd .. && npm run gulp", - "start": "npm run build:prod && npm run gulp" - } -} diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/notControlledWarning.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/notControlledWarning.js deleted file mode 100644 index 8321ea7..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/notControlledWarning.js +++ /dev/null @@ -1,39 +0,0 @@ -// @flow - -import mComponent from 'microcomponent'; -import html from 'bel'; -import css from 'csjs-inject'; - -const cssClasses = css` - - .ifNotControlled { - background-color: red; - color: white; - font-weight: bold; - text-align: center; - - padding-top: 1em; - padding-bottom: 1em; - - border-bottom: 1px solid var(--default-grey); - } - - :root.ifInsideOptions .ifNotControlled { - padding-top: 0; - padding-bottom: 0; - } - .ifNotControlled a { - color: white; - } - -`; - -export default (opts) => new mComponent(Object.assign({ - props: null, - pure: true, - }, opts)) - .on('render', function() { - - return html`
${ html(this.props.utils.messages.whichExtensionHtml()) }
` - - }); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/tabber.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/tabber.js deleted file mode 100644 index 3729b71..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/components/tabber.js +++ /dev/null @@ -1,130 +0,0 @@ -import mComponent from 'microcomponent'; -import html from 'bel'; -import css from 'csjs-inject'; - -const cssClasses = css` - - section[data-for] { - padding: 0.6em 0 1em; - } - section[data-for] li label { - display: inline-block; /* Needed for ::first-letter below. */ - } - section[data-for] li label::first-letter { - text-transform: uppercase; - } - :root.ifInsideOptions section[data-for] { - padding-bottom: 0.6em; - } - :root.ifInsideOptions section[data-for]:not(:last-child), - .underlined { - border-bottom: 1px solid var(--cr-options-headline); - } - - /* HIDE starts. */ - - :root:not(.ifInsideOptions) .mainNav section[data-for], - /* One button shared between two sections: */ - :root:not(.ifInsideOptions) .mainNav #apply-mods-section - { - /* Hide, but preclude width resizes. */ - height: 0px !important; - line-height: 0px !important; - padding-top: 0 !important; - padding-bottom: 0 !important; - margin-top: 0 !important; - margin-bottom: 0 !important; - border: none !important; - display: block; - visibility: hidden; - transform: scaleY(0) !important; - } - - :root:not(.ifInsideOptions) .mainNav section[data-for] *, - /* One button shared between two sections: */ - :root:not(.ifInsideOptions) .mainNav #apply-mods-section * - { - margin-top: 0 !important; - margin-bottom: 0 !important; - } - - /* HIDE ends. */ - - .navLabels { - background-color: var(--cr-grey-panel); - text-align: center; - } - .navLabels li label { - display: inline-block; - - border: 1px solid var(--ribbon-color); - border-radius: 0.2em; - - background-color: white; - color: var(--ribbon-color); - - padding: 0.2em 0.3em 0.3em 0.2em; - line-height: 0.8em; - margin: 0.1em 0; - } - .navLabels li label:hover { - background-color: var(--blue-bg); - color: white; - - /* - border-color: white; - border-style: dotted;*/ - } - - /* LABELS starts. */ - - input[name="selectedTabLabel"]:checked + label:not(:hover) - { - background-color: var(--blue-bg); - color: white; - } - /* ★★★★★ */ - .navLabels label:before { - content: '★'; - padding-right: 0.1em; - visibility: hidden; - } - .navLabels li label:hover:before, - input[name="selectedTabLabel"]:checked + label:before - { - visibility: initial; - } - - /* LABELS ends. */ - -`; - -export default (opts) => new mComponent(Object.assign({ - pure: true, - }, opts)) - .on('render', function () { - - return html` -
- - - -
- `; - - }); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/globalCss.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/globalCss.js deleted file mode 100644 index 5fd55be..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/globalCss.js +++ /dev/null @@ -1,86 +0,0 @@ -export default function append(document, props) { - - // innerText converts \n to
, so: - document.head.querySelector('style').innerHTML = ` - /* GLOBAL VARIABLES */ - - :root { - --ribbon-color: #4169e1; - --blue-bg: dodgerblue; - --default-grey: #bfbfbf; - --cr-options-headline: #d3d3d3; - --cr-icon-selected: #d7d7d7; - --cr-popup-border: #bababa; - --cr-grey-panel: #f2f2f2; - max-width: 28em; - } - - /* BASE ELEMENTS */ - - body { - margin: 0; - } - a, a:visited { - color: var(--ribbon-color); - text-decoration: none; - } - a:hover { - text-decoration: underline; - } - label { - user-select: none; - } - div, section, header, ul, ol { - margin: 0; - padding: 0; - } - header { - margin-bottom: 0.3em - } - ul, ol { - list-style-type: none; - } - li, .nowrap { - display: block; - white-space: nowrap; - word-break: keep-all; - } - li, li > * { - vertical-align: middle; - } - input[type="radio"], input[type="checkbox"] { - flex-shrink: 0; - } - input[type="radio"], label { - cursor: pointer; - } - hr { - border: none; - border-top: 1px solid var(--cr-popup-border); - margin: 0 0 0.6em 0; - padding: 0; - } - em { - font-style: normal; - text-decoration: underline; - } - - /* COMMON CLASSES */ - - .off { - display: none; - } - .horPadded { - padding-left: 1.4em; - padding-right: 1.4em; - } - .horizontalList, - .horizontalList li { - line-height: 100%; - } - .horizontalList li { - display: inline-block; - } - `; - -}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.css b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.css deleted file mode 100644 index 292e664..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.css +++ /dev/null @@ -1,80 +0,0 @@ - /* GLOBAL VARIABLES */ - - :root { - --ribbon-color: #4169e1; - --blue-bg: dodgerblue; - --default-grey: #bfbfbf; - --cr-options-headline: #d3d3d3; - --cr-icon-selected: #d7d7d7; - --cr-popup-border: #bababa; - --cr-grey-panel: #f2f2f2; - max-width: 28em; - } - - /* BASE ELEMENTS */ - - body { - margin: 0; - } - a, a:visited { - color: var(--ribbon-color); - text-decoration: none; - } - a:hover { - text-decoration: underline; - } - label { - user-select: none; - } - div, section, header, ul, ol { - margin: 0; - padding: 0; - } - header { - margin-bottom: 0.3em - } - ul, ol { - list-style-type: none; - } - li, .nowrap { - display: block; - white-space: nowrap; - word-break: keep-all; - } - li, li > * { - vertical-align: middle; - } - input[type="radio"], input[type="checkbox"] { - flex-shrink: 0; - } - input[type="radio"], label { - cursor: pointer; - } - hr { - border: none; - border-top: 1px solid var(--cr-popup-border); - margin: 0 0 0.6em 0; - padding: 0; - } - em { - font-style: normal; - text-decoration: underline; - } - - /* COMMON CLASSES */ - - .off { - display: none; - } - .horPadded { - padding-left: 1.4em; - padding-right: 1.4em; - } - .horizontalList, - .horizontalList li { - line-height: 100%; - } - .horizontalList li { - display: inline-block; - } - diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.js deleted file mode 100644 index 971887a..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/src/index.js +++ /dev/null @@ -1,137 +0,0 @@ -// @flow - -import mComponent from 'microcomponent'; -import html from 'bel'; -import css from 'csjs-inject'; -import appendGlobalCss from './globalCss'; - -import NotControlledWarning from './components/notControlledWarning'; -import Tabber from './components/tabber'; -/* - #list-of-notifiers { - margin-left: 0.4em; - } -*/ - -chrome.runtime.getBackgroundPage( (backgroundPage) => - backgroundPage.apis.errorHandlers.installListenersOn( - window, 'PUP', async() => { - - let theState; - { - const apis = backgroundPage.apis; - - theState = { - utils: backgroundPage.utils, - antiCensorRu: backgroundPage.apis.antiCensorRu, - errorHandlers: apis.errorHandlers, - flags: { - /* Shortcuts to boolean values. */ - ifNotControlled: !apis.errorHandlers.ifControllable, - ifMini: apis.version.ifMini, - }, - }; - } - - if (theState.flags.ifMini) { - document.documentElement.classList.add('ifVersionMini'); - } - - // IF INSIDE OPTIONS TAB - - const currentTab = await new Promise( - (resolve) => chrome.tabs.query( - {active: true, currentWindow: true}, - ([tab]) => resolve(tab) - ) - ); - - theState.flags.ifInsideOptions = !currentTab || currentTab.url.startsWith('chrome://extensions/?options='); - if (theState.flags.ifInsideOptions) { - document.documentElement.classList.add('ifInsideOptions'); - } - - // STATE DEFINED, COMPOSE. - - appendGlobalCss(document, theState); - - const cssClasses = css` - - /* IF INSIDE OPTIONS */ - - ${ - theState.flags.ifInsideOptions ? ` - - ul, ol { - margin-left: 0.4em; - } - - ` : ` - - ul, ol { - /*Here is a flex bug: - () antizapret [update] (i) - () anticensority very_long_foobar [update] (i) <- Sic! - Also: options page is wider, check it too. - But: fixed 100% width conflicts with margins/paddings. - So: use only when needed and avoid margins. - FYI: setting left-margin fixes problem too, but margins are not wanted. - Fix this problem below: - */ - display: inline-block; - min-width: 100%; - } - ` - } - - `; - - const app = new mComponent({ - props: null, - pure: true, - }) - .on('render', function() { - - return html`
- ${ - this.props.flags.ifNotControlled ? NotControlledWarning().render(this.props) : '' - } - ${ Tabber({ state: { - tabs: [ - { - label: 'PAC-скрипт', - content: "PacChooser().render(this.props)", - }, - { - label: 'Исключения', - content: "Exceptions().render(this.props)", - }, - { - label: 'Свои прокси', - content: "OwnProxies().render(this.props)", - }, - { - label: 'Модификаторы', - content: "Modificators().render(this.props)", - }, - { - label: 'Уведомления', - content: "Notifications().render(this.props)", - } - ] - }}).render(this.props) - } -
` - - }); - - document.body.appendChild(app.render(theState)); - - // READY TO RENDER - - document.documentElement.style.display = 'initial'; - - } - ) -); - diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/webpack.config.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/webpack.config.js deleted file mode 100644 index 832156f..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/webpack.config.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -const path = require('path'); -const BabiliPlugin = require('babili-webpack-plugin'); - -module.exports = (env, ...flags) => ({ - entry: './src/index.js', - output: { - path: path.join(__dirname, 'dist'), - filename: `bundle${env === 'prod' ? '.min' : ''}.js`, - publicPath: './dist/', - }, - devtool: 'source-map', - module: { - rules: [ - { - test: /\.jsx?$/, - include: path.join(__dirname, 'src'), - use: [ - { - loader: 'babel-loader', - options: { - presets: ['flow'], - plugins: ['dynamic-import-webpack'], - }, - }, - /*{ - loader: './lib/transform-loader?csjs-injectify', - },*/ - ], - } - ], - }, - - resolve: { - aliasFields: [], - }, - - plugins: env === 'prod' ? - [ - /* Production */ - //new BabiliPlugin(), - ] : [ - /* Development */ - ], -}); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/yarn.lock b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/yarn.lock deleted file mode 100644 index 4eb85a7..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options_choo/yarn.lock +++ /dev/null @@ -1,2679 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -abbrev@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" - -acorn-dynamic-import@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" - dependencies: - acorn "^4.0.3" - -acorn@^1.0.3: - version "1.2.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014" - -acorn@^2.4.0: - version "2.7.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" - -acorn@^4.0.3: - version "4.0.11" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0" - -acorn@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" - -ajv-keywords@^1.1.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" - -ajv@^4.7.0, ajv@^4.9.1: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" - dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -amdefine@>=0.0.4: - version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -anymatch@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" - dependencies: - arrify "^1.0.0" - micromatch "^2.1.5" - -aproba@^1.0.3: - version "1.1.1" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" - -are-we-there-yet@~1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" - -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-flatten@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" - -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - -asn1.js@^4.0.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert@^1.1.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" - dependencies: - util "0.10.3" - -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - -async@^2.1.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.4.0.tgz#4990200f18ea5b837c2cc4f8c031a6985c385611" - dependencies: - lodash "^4.14.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws4@^1.2.1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" - -babel-cli@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.24.1.tgz#207cd705bba61489b2ea41b5312341cf6aca2283" - dependencies: - babel-core "^6.24.1" - babel-polyfill "^6.23.0" - babel-register "^6.24.1" - babel-runtime "^6.22.0" - commander "^2.8.1" - convert-source-map "^1.1.0" - fs-readdir-recursive "^1.0.0" - glob "^7.0.0" - lodash "^4.2.0" - output-file-sync "^1.1.0" - path-is-absolute "^1.0.0" - slash "^1.0.0" - source-map "^0.5.0" - v8flags "^2.0.10" - optionalDependencies: - chokidar "^1.6.1" - -babel-code-frame@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" - dependencies: - chalk "^1.1.0" - esutils "^2.0.2" - js-tokens "^3.0.0" - -babel-core@^6.23.1, babel-core@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83" - dependencies: - babel-code-frame "^6.22.0" - babel-generator "^6.24.1" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - babylon "^6.11.0" - convert-source-map "^1.1.0" - debug "^2.1.1" - json5 "^0.5.0" - lodash "^4.2.0" - minimatch "^3.0.2" - path-is-absolute "^1.0.0" - private "^0.1.6" - slash "^1.0.0" - source-map "^0.5.0" - -babel-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.1.tgz#e715f486c58ded25649d888944d52aa07c5d9497" - dependencies: - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - detect-indent "^4.0.0" - jsesc "^1.3.0" - lodash "^4.2.0" - source-map "^0.5.0" - trim-right "^1.0.1" - -babel-helper-builder-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.24.1.tgz#0ad7917e33c8d751e646daca4e77cc19377d2cbc" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - esutils "^2.0.0" - -babel-helper-evaluate-path@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.0.3.tgz#1d103ac9d4a59e5d431842212f151785f7ac547b" - -babel-helper-flip-expressions@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/babel-helper-flip-expressions/-/babel-helper-flip-expressions-0.0.2.tgz#7bab2cf61162bc92703e9b298ef512bcf77d6787" - -babel-helper-is-nodes-equiv@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/babel-helper-is-nodes-equiv/-/babel-helper-is-nodes-equiv-0.0.1.tgz#34e9b300b1479ddd98ec77ea0bbe9342dfe39684" - -babel-helper-is-void-0@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/babel-helper-is-void-0/-/babel-helper-is-void-0-0.0.1.tgz#ed74553b883e68226ae45f989a99b02c190f105a" - -babel-helper-mark-eval-scopes@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/babel-helper-mark-eval-scopes/-/babel-helper-mark-eval-scopes-0.0.3.tgz#902f75aeb537336edc35eb9f52b6f09db7785328" - -babel-helper-remove-or-void@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/babel-helper-remove-or-void/-/babel-helper-remove-or-void-0.0.1.tgz#f602790e465acf2dfbe84fb3dd210c43a2dd7262" - -babel-helper-to-multiple-sequence-expressions@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/babel-helper-to-multiple-sequence-expressions/-/babel-helper-to-multiple-sequence-expressions-0.0.4.tgz#d94414b386b6286fbaad77f073dea9b34324b01c" - -babel-helpers@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-loader@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.0.0.tgz#2e43a66bee1fff4470533d0402c8a4532fafbaf7" - dependencies: - find-cache-dir "^0.1.1" - loader-utils "^1.0.2" - mkdirp "^0.5.1" - -babel-messages@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-dynamic-import-webpack@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-webpack/-/babel-plugin-dynamic-import-webpack-1.0.1.tgz#26c24a1c1c9bf49184b30d5867562a4cbfa530d1" - dependencies: - babel-plugin-syntax-dynamic-import "^6.18.0" - babel-template "^6.16.0" - -babel-plugin-minify-builtins@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.0.2.tgz#f3be6121763c0c518d5ef82067cef4b615c9498c" - dependencies: - babel-helper-evaluate-path "^0.0.3" - -babel-plugin-minify-constant-folding@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-constant-folding/-/babel-plugin-minify-constant-folding-0.0.4.tgz#b6e231026a6035e88ceadd206128d7db2b5c15e6" - dependencies: - babel-helper-evaluate-path "^0.0.3" - jsesc "^2.4.0" - -babel-plugin-minify-dead-code-elimination@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-dead-code-elimination/-/babel-plugin-minify-dead-code-elimination-0.1.4.tgz#18b6ecfab77c29caca061d8210fa3495001e4fa1" - dependencies: - babel-helper-mark-eval-scopes "^0.0.3" - babel-helper-remove-or-void "^0.0.1" - lodash.some "^4.6.0" - -babel-plugin-minify-flip-comparisons@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-flip-comparisons/-/babel-plugin-minify-flip-comparisons-0.0.2.tgz#7d0953aa5876ede6118966bda9edecc63bf346ab" - dependencies: - babel-helper-is-void-0 "^0.0.1" - -babel-plugin-minify-guarded-expressions@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-guarded-expressions/-/babel-plugin-minify-guarded-expressions-0.0.4.tgz#957104a760e6a7ffd967005a7a11621bb42fd11c" - dependencies: - babel-helper-flip-expressions "^0.0.2" - -babel-plugin-minify-infinity@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-infinity/-/babel-plugin-minify-infinity-0.0.3.tgz#4cc99b61d12b434ce80ad675103335c589cba9a1" - -babel-plugin-minify-mangle-names@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-mangle-names/-/babel-plugin-minify-mangle-names-0.0.8.tgz#1e2fea856dd742d5697aa26b427e41258a8c5b79" - dependencies: - babel-helper-mark-eval-scopes "^0.0.3" - -babel-plugin-minify-numeric-literals@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-numeric-literals/-/babel-plugin-minify-numeric-literals-0.0.1.tgz#9597e6c31154d7daf3744d0bd417c144b275bd53" - -babel-plugin-minify-replace@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-replace/-/babel-plugin-minify-replace-0.0.1.tgz#5d5aea7cb9899245248d1ee9ce7a2fe556a8facc" - -babel-plugin-minify-simplify@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-simplify/-/babel-plugin-minify-simplify-0.0.8.tgz#597b23327bba4373fed1c51461a689bce9ff4979" - dependencies: - babel-helper-flip-expressions "^0.0.2" - babel-helper-is-nodes-equiv "^0.0.1" - babel-helper-to-multiple-sequence-expressions "^0.0.4" - -babel-plugin-minify-type-constructors@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/babel-plugin-minify-type-constructors/-/babel-plugin-minify-type-constructors-0.0.4.tgz#52d8b623775107523227719ade2d0b7458758b5f" - dependencies: - babel-helper-is-void-0 "^0.0.1" - -babel-plugin-syntax-dynamic-import@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" - -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" - -babel-plugin-transform-flow-strip-types@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-inline-consecutive-adds@^0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-inline-consecutive-adds/-/babel-plugin-transform-inline-consecutive-adds-0.0.2.tgz#a58fcecfc09c08fbf9373a5a3e70746c03d01fc1" - -babel-plugin-transform-member-expression-literals@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-member-expression-literals/-/babel-plugin-transform-member-expression-literals-6.8.1.tgz#60b78cb2b814ac71dd6104ef51c496c62e877337" - -babel-plugin-transform-merge-sibling-variables@^6.8.2: - version "6.8.2" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-merge-sibling-variables/-/babel-plugin-transform-merge-sibling-variables-6.8.2.tgz#498acd07481ab340c1bad8b726c2fad1b8f644e5" - -babel-plugin-transform-minify-booleans@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-minify-booleans/-/babel-plugin-transform-minify-booleans-6.8.0.tgz#b1a48864a727847696b84eae36fa4d085a54b42b" - dependencies: - babel-runtime "^6.0.0" - -babel-plugin-transform-property-literals@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-property-literals/-/babel-plugin-transform-property-literals-6.8.1.tgz#05ed01f6024820b18f1d0495c80fe287176bccd9" - -babel-plugin-transform-react-display-name@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.23.0.tgz#4398910c358441dc4cef18787264d0412ed36b37" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-self@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz#df6d80a9da2612a121e6ddd7558bcbecf06e636e" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx-source@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz#66ac12153f5cd2d17b3c19268f4bf0197f44ecd6" - dependencies: - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-react-jsx@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz#840a028e7df460dfc3a2d29f0c0d91f6376e66a3" - dependencies: - babel-helper-builder-react-jsx "^6.24.1" - babel-plugin-syntax-jsx "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-regexp-constructors@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regexp-constructors/-/babel-plugin-transform-regexp-constructors-0.0.6.tgz#0d92607f0d26268296980cb7c1dea5f2dd3e1e20" - -babel-plugin-transform-remove-console@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-console/-/babel-plugin-transform-remove-console-6.8.1.tgz#38f6a6ca1581e76b75fc2c6fdcf909deadee7d6a" - -babel-plugin-transform-remove-debugger@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-debugger/-/babel-plugin-transform-remove-debugger-6.8.1.tgz#aabd0be107f8299094defe8e1ba8ccf4b114d07f" - -babel-plugin-transform-remove-undefined@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-remove-undefined/-/babel-plugin-transform-remove-undefined-0.0.5.tgz#12ef11805e06e861dd2eb0c7cc041d2184b8f410" - -babel-plugin-transform-simplify-comparison-operators@^6.8.1: - version "6.8.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-simplify-comparison-operators/-/babel-plugin-transform-simplify-comparison-operators-6.8.1.tgz#a307088e0d1c728081777fba568f4107396ab25c" - -babel-plugin-transform-undefined-to-void@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-undefined-to-void/-/babel-plugin-transform-undefined-to-void-6.8.0.tgz#bc5b6b4908d3b1262170e67cb3963903ddce167e" - dependencies: - babel-runtime "^6.0.0" - -babel-polyfill@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" - dependencies: - babel-runtime "^6.22.0" - core-js "^2.4.0" - regenerator-runtime "^0.10.0" - -babel-preset-babili@^0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/babel-preset-babili/-/babel-preset-babili-0.0.12.tgz#74d79205d54feae6470bc84231da0b9ac9fc7de9" - dependencies: - babel-plugin-minify-builtins "^0.0.2" - babel-plugin-minify-constant-folding "^0.0.4" - babel-plugin-minify-dead-code-elimination "^0.1.4" - babel-plugin-minify-flip-comparisons "^0.0.2" - babel-plugin-minify-guarded-expressions "^0.0.4" - babel-plugin-minify-infinity "^0.0.3" - babel-plugin-minify-mangle-names "^0.0.8" - babel-plugin-minify-numeric-literals "^0.0.1" - babel-plugin-minify-replace "^0.0.1" - babel-plugin-minify-simplify "^0.0.8" - babel-plugin-minify-type-constructors "^0.0.4" - babel-plugin-transform-inline-consecutive-adds "^0.0.2" - babel-plugin-transform-member-expression-literals "^6.8.1" - babel-plugin-transform-merge-sibling-variables "^6.8.2" - babel-plugin-transform-minify-booleans "^6.8.0" - babel-plugin-transform-property-literals "^6.8.1" - babel-plugin-transform-regexp-constructors "^0.0.6" - babel-plugin-transform-remove-console "^6.8.1" - babel-plugin-transform-remove-debugger "^6.8.1" - babel-plugin-transform-remove-undefined "^0.0.5" - babel-plugin-transform-simplify-comparison-operators "^6.8.1" - babel-plugin-transform-undefined-to-void "^6.8.0" - lodash.isplainobject "^4.0.6" - -babel-preset-flow@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz#e71218887085ae9a24b5be4169affb599816c49d" - dependencies: - babel-plugin-transform-flow-strip-types "^6.22.0" - -babel-preset-react@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.24.1.tgz#ba69dfaea45fc3ec639b6a4ecea6e17702c91380" - dependencies: - babel-plugin-syntax-jsx "^6.3.13" - babel-plugin-transform-react-display-name "^6.23.0" - babel-plugin-transform-react-jsx "^6.24.1" - babel-plugin-transform-react-jsx-self "^6.22.0" - babel-plugin-transform-react-jsx-source "^6.22.0" - babel-preset-flow "^6.23.0" - -babel-register@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f" - dependencies: - babel-core "^6.24.1" - babel-runtime "^6.22.0" - core-js "^2.4.0" - home-or-tmp "^2.0.0" - lodash "^4.2.0" - mkdirp "^0.5.1" - source-map-support "^0.4.2" - -babel-runtime@^6.0.0, babel-runtime@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.10.0" - -babel-template@^6.16.0, babel-template@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - babylon "^6.11.0" - lodash "^4.2.0" - -babel-traverse@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695" - dependencies: - babel-code-frame "^6.22.0" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - babylon "^6.15.0" - debug "^2.2.0" - globals "^9.0.0" - invariant "^2.2.0" - lodash "^4.2.0" - -babel-types@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975" - dependencies: - babel-runtime "^6.22.0" - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^1.0.1" - -babili-webpack-plugin@^0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/babili-webpack-plugin/-/babili-webpack-plugin-0.0.11.tgz#09571593b81bbcc3033e8570540b391e98801803" - dependencies: - babel-core "^6.23.1" - babel-preset-babili "^0.0.12" - webpack-sources "^0.1.4" - -babylon@^6.11.0, babylon@^6.15.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.0.tgz#37da948878488b9c4e3c4038893fa3314b3fc932" - -balanced-match@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - -base64-js@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1" - -bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" - dependencies: - tweetnacl "^0.14.3" - -bel@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/bel/-/bel-4.6.1.tgz#fd3a445914e90ff32b08e92192f557f15845cd34" - dependencies: - global "^4.3.0" - hyperx "^2.3.0" - on-load "^3.2.0" - -big.js@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" - -binary-extensions@^1.0.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -brace-expansion@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" - dependencies: - balanced-match "^0.4.1" - concat-map "0.0.1" - -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" - dependencies: - buffer-xor "^1.0.2" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - inherits "^2.0.1" - -browserify-cipher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - -browserify-rsa@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" - -browserify-zlib@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" - dependencies: - pako "~0.2.0" - -buffer-shims@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - -buffer-xor@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - -buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@^1.1.0, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chokidar@^1.4.3, chokidar@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.1.tgz#2f4447ab5e96e50fb3d789fd90d4c72e0e4c70c2" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - -cipher-base@^1.0.0, cipher-base@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" - dependencies: - inherits "^2.0.1" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -commander@^2.8.1: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" - -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - dependencies: - date-now "^0.1.4" - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - -convert-source-map@^1.1.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" - -core-js@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -create-ecdh@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" - dependencies: - bn.js "^4.1.0" - elliptic "^6.0.0" - -create-hash@^1.1.0, create-hash@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.2.tgz#51210062d7bb7479f6c65bb41a92208b1d61abad" - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - ripemd160 "^1.0.0" - sha.js "^2.3.6" - -create-hmac@^1.1.0, create-hmac@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.4.tgz#d3fb4ba253eb8b3f56e39ea2fbcb8af747bd3170" - dependencies: - create-hash "^1.1.0" - inherits "^2.0.1" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -crypto-browserify@^3.11.0: - version "3.11.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.0.tgz#3652a0906ab9b2a7e0c3ce66a408e957a2485522" - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - -csjs-inject@^1.0.0, csjs-inject@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/csjs-inject/-/csjs-inject-1.0.1.tgz#de22113c40b46cfe17d3d62a00c77c9d7da7527c" - dependencies: - csjs "^1.0.0" - insert-css "^0.2.0" - -csjs-injectify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/csjs-injectify/-/csjs-injectify-1.0.1.tgz#526da892b87346badb16bd5fbe7b20245dbf247b" - dependencies: - acorn "^2.4.0" - csjs-inject "^1.0.0" - falafel "^1.2.0" - through2 "^2.0.0" - -csjs@^1.0.0, csjs@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/csjs/-/csjs-1.1.0.tgz#1b5753c6bd902da269deb369215585a5d8f1f380" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - -debug@^2.1.1, debug@^2.2.0: - version "2.6.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a" - dependencies: - ms "0.7.3" - -decamelize@^1.0.0, decamelize@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -deep-extend@~0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - -des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -detect-indent@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" - dependencies: - repeating "^2.0.0" - -diffie-hellman@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dom-walk@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" - -domain-browser@^1.1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -elliptic@^6.0.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - -enhanced-resolve@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz#9f4b626f577245edcf4b2ad83d86e17f4f421dec" - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - object-assign "^4.0.1" - tapable "^0.2.5" - -errno@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" - dependencies: - prr "~0.0.0" - -error-ex@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" - dependencies: - is-arrayish "^0.2.1" - -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -escodegen@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" - dependencies: - esprima "^2.7.1" - estraverse "^1.9.1" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.2.0" - -esprima@^2.7.1: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -estraverse@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" - -esutils@^2.0.0, esutils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" - -events@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" - -evp_bytestokey@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" - dependencies: - create-hash "^1.1.1" - -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - -extend@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" - -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - -extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" - -falafel@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/falafel/-/falafel-1.2.0.tgz#c18d24ef5091174a497f318cd24b026a25cddab4" - dependencies: - acorn "^1.0.3" - foreach "^2.0.5" - isarray "0.0.1" - object-keys "^1.0.6" - -fast-levenshtein@~2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -find-cache-dir@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" - dependencies: - commondir "^1.0.1" - mkdirp "^0.5.1" - pkg-dir "^1.0.0" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - -flow-bin@^0.45.0: - version "0.45.0" - resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.45.0.tgz#009dd0f577a3f665c74ca8be827ae8c2dd8fd6b5" - -for-in@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -fs-readdir-recursive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fsevents@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.29" - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" - -get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - dependencies: - assert-plus "^1.0.0" - -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - -glob@^7.0.0, glob@^7.0.5: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" - dependencies: - min-document "^2.19.0" - process "~0.5.1" - -globals@^9.0.0: - version "9.17.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" - -graceful-fs@^4.1.2, graceful-fs@^4.1.4: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" - -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" - dependencies: - inherits "^2.0.1" - -hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -home-or-tmp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.4.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" - -hyperscript-attribute-to-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hyperscript-attribute-to-property/-/hyperscript-attribute-to-property-1.0.0.tgz#825308d49bb8e2957923f731981bcc811cad7aff" - -hyperx@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/hyperx/-/hyperx-2.3.0.tgz#70f473d66d4ad550ddd1c83e4be2651276bbf1e2" - dependencies: - hyperscript-attribute-to-property "^1.0.0" - -ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - -inferno-shared@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/inferno-shared/-/inferno-shared-3.1.1.tgz#70376e29a56c53f6ba1e942191fe5cb710654f73" - -inferno-vnode-flags@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/inferno-vnode-flags/-/inferno-vnode-flags-3.0.0.tgz#f396390f3dafae3b76eea04d04eed6cf2004473b" - -inferno@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/inferno/-/inferno-3.1.2.tgz#37ae33ef6ed75a05b1a4b7b4b24b99fe0a120b9e" - dependencies: - inferno-shared "3.1.1" - inferno-vnode-flags "^3.0.0" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - -ini@~1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" - -insert-css@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/insert-css/-/insert-css-0.2.0.tgz#d15789971662d9899c28977fb6220d5381d2451a" - -insert-css@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/insert-css/-/insert-css-2.0.0.tgz#eb5d1097b7542f4c79ea3060d3aee07d053880f4" - -interpret@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" - -invariant@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" - dependencies: - loose-envify "^1.0.0" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-dotfile@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - -is-number@^2.0.2, is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -jodid25519@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" - dependencies: - jsbn "~0.1.0" - -js-base64@^2.1.9: - version "2.1.9" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" - -js-tokens@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - -jsesc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" - -jsesc@^2.4.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.1.tgz#e421a2a8e20d6b0819df28908f782526b96dd1fe" - -json-loader@^0.5.4: - version "0.5.4" - resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.4.tgz#8baa1365a632f58a3c46d20175fc6002c96e37de" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - dependencies: - jsonify "~0.0.0" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -json5@^0.5.0, json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - -jsonify@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" - -jsprim@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" - dependencies: - assert-plus "1.0.0" - extsprintf "1.0.2" - json-schema "0.2.3" - verror "1.3.6" - -kind-of@^3.0.2: - version "3.2.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07" - dependencies: - is-buffer "^1.1.5" - -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - dependencies: - invert-kv "^1.0.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -loader-runner@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" - -loader-utils@^0.2.16: - version "0.2.17" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - object-assign "^4.0.1" - -loader-utils@^1.0.2: - version "1.1.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" - dependencies: - big.js "^3.1.3" - emojis-list "^2.0.0" - json5 "^0.5.0" - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - -lodash.some@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" - -lodash@^4.14.0, lodash@^4.2.0: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" - dependencies: - js-tokens "^3.0.0" - -map-limit@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/map-limit/-/map-limit-0.0.1.tgz#eb7961031c0f0e8d001bf2d56fab685d58822f38" - dependencies: - once "~1.3.0" - -memory-fs@^0.4.0, memory-fs@~0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -microcomponent@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/microcomponent/-/microcomponent-3.1.1.tgz#c08d7cccd09863c016e4a09db0098b4457df8d9b" - dependencies: - nanocomponent "^4.0.1" - nanologger "^1.0.2" - nanomorph "^4.0.3" - nanotiming "^1.0.0" - shallow-equal "^1.0.0" - -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -miller-rabin@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@~1.27.0: - version "1.27.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" - -mime-types@^2.1.12, mime-types@~2.1.7: - version "2.1.15" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" - dependencies: - mime-db "~1.27.0" - -min-document@^2.19.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" - dependencies: - dom-walk "^0.1.0" - -minimalistic-assert@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" - -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - -minimatch@^3.0.0, minimatch@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - dependencies: - brace-expansion "^1.1.7" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -"mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -ms@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" - -nan@^2.3.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" - -nanocomponent@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/nanocomponent/-/nanocomponent-4.0.2.tgz#786d5ff60dbf97727ccd41879688c07f462c973c" - dependencies: - on-load "^3.2.0" - -nanologger@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/nanologger/-/nanologger-1.0.3.tgz#673f29456ae16abe839abc0feeb64a6a135c557e" - -nanomorph@^4.0.0, nanomorph@^4.0.3, nanomorph@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/nanomorph/-/nanomorph-4.0.5.tgz#7e27cc5e28a05df0c278f53ba430f253f3ac3fac" - -nanomount@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nanomount/-/nanomount-1.0.1.tgz#da6e4c446f046a20d5a87bfc3a6152be29890d35" - dependencies: - nanomorph "^4.0.0" - -nanotiming@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nanotiming/-/nanotiming-1.0.1.tgz#13e7a2e2767967974fedfff071edd39327f44ec3" - -node-libs-browser@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" - dependencies: - assert "^1.1.1" - browserify-zlib "^0.1.4" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^1.0.0" - https-browserify "0.0.1" - os-browserify "^0.2.0" - path-browserify "0.0.0" - process "^0.11.0" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.0.5" - stream-browserify "^2.0.1" - stream-http "^2.3.1" - string_decoder "^0.10.25" - timers-browserify "^2.0.2" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.10.3" - vm-browserify "0.0.4" - -node-pre-gyp@^0.6.29: - version "0.6.34" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" - dependencies: - mkdirp "^0.5.1" - nopt "^4.0.1" - npmlog "^4.0.2" - rc "^1.1.7" - request "^2.81.0" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" - -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - -normalize-package-data@^2.3.2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -npmlog@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5" - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -oauth-sign@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - -object-keys@^1.0.6: - version "1.0.11" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" - -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -on-load@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/on-load/-/on-load-3.2.0.tgz#dd3145d3a5c2faa5666920d1df674b69f0c2f66f" - dependencies: - global "^4.3.0" - -once@^1.3.0, once@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -once@~1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - dependencies: - wrappy "1" - -optionator@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.4" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - wordwrap "~1.0.0" - -os-browserify@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -output-file-sync@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" - dependencies: - graceful-fs "^4.1.4" - mkdirp "^0.5.1" - object-assign "^4.1.0" - -pako@~0.2.0: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" - -parse-asn1@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" - dependencies: - asn1.js "^4.0.0" - browserify-aes "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -path-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-parse@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -pbkdf2@^3.0.3: - version "3.0.9" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693" - dependencies: - create-hmac "^1.1.2" - -performance-now@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pkg-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" - dependencies: - find-up "^1.0.0" - -postcss-prefix@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-prefix/-/postcss-prefix-2.0.0.tgz#2139e8fba64ed71b93e3a8b1d4c5976e2a949c6f" - dependencies: - postcss "^5.0.8" - postcss-selector-parser "^1.3.0" - -postcss-selector-parser@^1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz#d2ee19df7a64f8ef21c1a71c86f7d4835c88c281" - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss@^5.0.10, postcss@^5.0.8: - version "5.2.17" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b" - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - -private@^0.1.6: - version "0.1.7" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -process@^0.11.0: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - -process@~0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" - -prr@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" - -public-encrypt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - -randomatic@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" - dependencies: - is-number "^2.0.2" - kind-of "^3.0.2" - -randombytes@^2.0.0, randombytes@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.3.tgz#674c99760901c3c4112771a31e521dc349cc09ec" - -rc@^1.1.7: - version "1.2.1" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6: - version "2.2.9" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" - dependencies: - buffer-shims "~1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~1.0.0" - util-deprecate "~1.0.1" - -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - -regenerator-runtime@^0.10.0: - version "0.10.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" - -regex-cache@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" - dependencies: - is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" - -remove-trailing-separator@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - -repeat-string@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -request@^2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "^0.6.0" - uuid "^3.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -resolve@^1.1.7: - version "1.3.3" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" - dependencies: - path-parse "^1.0.5" - -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" - dependencies: - glob "^7.0.5" - -ripemd160@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-1.0.1.tgz#93a4bbd4942bc574b69a8fa57c71de10ecca7d6e" - -safe-buffer@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" - -"semver@2 || 3 || 4 || 5", semver@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -set-blocking@^2.0.0, set-blocking@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -sha.js@^2.3.6: - version "2.4.8" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" - dependencies: - inherits "^2.0.1" - -shallow-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.0.0.tgz#508d1838b3de590ab8757b011b25e430900945f7" - -sheetify@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/sheetify/-/sheetify-6.0.2.tgz#f494161e1cafc1bc02276e930e148acdd3344fd2" - dependencies: - falafel "^1.2.0" - insert-css "^2.0.0" - map-limit "0.0.1" - postcss "^5.0.10" - postcss-prefix "^2.0.0" - resolve "^1.1.7" - stack-trace "0.0.9" - static-eval "^1.1.0" - style-resolve "^1.0.0" - through2 "^2.0.0" - xtend "^4.0.1" - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -slash@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -source-list-map@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-1.1.2.tgz#9889019d1024cce55cdc069498337ef6186a11a1" - -source-list-map@~0.1.7: - version "0.1.8" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" - -source-map-support@^0.4.2: - version "0.4.15" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" - dependencies: - source-map "^0.5.6" - -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - -source-map@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" - dependencies: - amdefine ">=0.0.4" - -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" - dependencies: - spdx-license-ids "^1.0.2" - -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" - -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" - -sshpk@^1.7.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jodid25519 "^1.0.0" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -stack-trace@0.0.9: - version "0.0.9" - resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.9.tgz#a8f6eaeca90674c333e7c43953f275b451510695" - -static-eval@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-1.1.1.tgz#ca8130210354cf13d9a722bc7e923778457bb192" - dependencies: - escodegen "^1.8.1" - -stream-browserify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-http@^2.3.1: - version "2.7.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.0.tgz#cec1f4e3b494bc4a81b451808970f8b20b4ed5f6" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.2.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string_decoder@^0.10.25: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -string_decoder@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667" - dependencies: - buffer-shims "~1.0.0" - -stringstream@~0.0.4: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - -style-resolve@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/style-resolve/-/style-resolve-1.0.1.tgz#2d2067c944d5fb7f553ca75c4e7947df43796fae" - dependencies: - resolve "^1.1.7" - xtend "^4.0.1" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -supports-color@^3.1.0, supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - -tapable@^0.2.5, tapable@~0.2.5: - version "0.2.6" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d" - -tar-pack@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -through2@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -timers-browserify@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86" - dependencies: - setimmediate "^1.0.4" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - -to-fast-properties@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - -tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" - dependencies: - punycode "^1.4.1" - -transform-loader@^0.2.4: - version "0.2.4" - resolved "https://registry.yarnpkg.com/transform-loader/-/transform-loader-0.2.4.tgz#e5c87877ba96d51d3f225368587b46e226d1cec9" - dependencies: - loader-utils "^1.0.2" - -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - dependencies: - prelude-ls "~1.1.2" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -uglify-js@^2.8.5: - version "2.8.23" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.23.tgz#8230dd9783371232d62a7821e2cf9a817270a8a0" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -util@0.10.3, util@^0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - dependencies: - inherits "2.0.1" - -uuid@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" - -v8flags@^2.0.10: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - dependencies: - user-home "^1.1.1" - -validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" - dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" - -verror@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" - dependencies: - extsprintf "1.0.2" - -vm-browserify@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" - dependencies: - indexof "0.0.1" - -watchpack@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.3.1.tgz#7d8693907b28ce6013e7f3610aa2a1acf07dad87" - dependencies: - async "^2.1.2" - chokidar "^1.4.3" - graceful-fs "^4.1.2" - -webpack-sources@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.5.tgz#aa1f3abf0f0d74db7111c40e500b84f966640750" - dependencies: - source-list-map "~0.1.7" - source-map "~0.5.3" - -webpack-sources@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.2.3.tgz#17c62bfaf13c707f9d02c479e0dcdde8380697fb" - dependencies: - source-list-map "^1.1.1" - source-map "~0.5.3" - -webpack@^2.5.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.5.1.tgz#61742f0cf8af555b87460a9cd8bba2f1e3ee2fce" - dependencies: - acorn "^5.0.0" - acorn-dynamic-import "^2.0.0" - ajv "^4.7.0" - ajv-keywords "^1.1.1" - async "^2.1.2" - enhanced-resolve "^3.0.0" - interpret "^1.0.0" - json-loader "^0.5.4" - json5 "^0.5.1" - loader-runner "^2.3.0" - loader-utils "^0.2.16" - memory-fs "~0.4.1" - mkdirp "~0.5.0" - node-libs-browser "^2.0.0" - source-map "^0.5.3" - supports-color "^3.1.0" - tapable "~0.2.5" - uglify-js "^2.8.5" - watchpack "^1.3.1" - webpack-sources "^0.2.3" - yargs "^6.0.0" - -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - -wide-align@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.0.tgz#40edde802a71fea1f070da3e62dcda2e7add96ad" - dependencies: - string-width "^1.0.1" - -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - -wordwrap@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -yargs-parser@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" - dependencies: - camelcase "^3.0.0" - -yargs@^6.0.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" From 94bbb9276493c5d02b19146f45b6cc003e7a64c6 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Tue, 16 May 2017 16:42:24 +0500 Subject: [PATCH 06/36] Add popup implemented in Inferno --- .../extension-common/pages/options/index.html | 584 +---------------- .../pages/options/lib/transform-loader.js | 24 + .../extension-common/pages/options/new.html | 11 + .../pages/options/old/.index.js.swp | Bin 0 -> 20480 bytes .../pages/options/{ => old}/index.js | 0 .../pages/options/old/old.html | 608 ++++++++++++++++++ .../pages/options/package.json | 29 +- .../pages/options/src/components/App.js | 54 ++ .../pages/options/src/components/Footer.js | 40 ++ .../pages/options/src/components/InfoLi.js | 133 ++++ .../src/components/NotControlledWarning.js | 55 ++ .../options/src/components/PacChooser.js | 172 +++++ .../pages/options/src/components/TabPannel.js | 171 +++++ .../pages/options/src/globalCss.js | 149 +++++ .../pages/options/src/index.js | 75 ++- .../pages/options/webpack.config.js | 27 +- .../extension-common/pages/options/yarn.lock | 469 +++++++++++--- 17 files changed, 1914 insertions(+), 687 deletions(-) create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/lib/transform-loader.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/new.html create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/old/.index.js.swp rename extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/{ => old}/index.js (100%) create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/old/old.html create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Footer.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/NotControlledWarning.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPannel.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/globalCss.js diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/index.html b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/index.html index a1d1577..1dccd73 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/index.html +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/index.html @@ -3,594 +3,22 @@ Настройки - + -
- - - - - - - - - - - -
- -
-
-
Загрузка...
-
- - -
- - - - +
- + info - + loop-round - + import-export @@ -604,5 +32,7 @@ + + diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/lib/transform-loader.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/lib/transform-loader.js new file mode 100644 index 0000000..9b5ccba --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/lib/transform-loader.js @@ -0,0 +1,24 @@ +'use strict'; + +const loaderUtils = require('loader-utils'); +const concat = require('concat-stream'); + +module.exports = function(content) { + + const cb = this.async(); + const Readable = require('stream').Readable; + const src = new Readable(); + src._read = function noop() {}; + src.push(content); + src.push(null); + + const opts = loaderUtils.getOptions(this) || {}; + const readme = Object.keys(opts).reduce((readable, moduleName) => { + + const newStream = require(moduleName)(/* No filename. */); + return readable.pipe(newStream); + + }, src); + readme.pipe(concat ((buf) => cb(null, buf.toString()) )); + +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/new.html b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/new.html new file mode 100644 index 0000000..8b73ddc --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/new.html @@ -0,0 +1,11 @@ + + + + + Настройки + + +
old info
+ + + diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/old/.index.js.swp b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/old/.index.js.swp new file mode 100644 index 0000000000000000000000000000000000000000..a7291211510fd1e9e48a5747a28a17926a7d6e96 GIT binary patch literal 20480 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 + + + + Настройки + + + +
+ + + + + + + + + + + +
+ +
+
+
Загрузка...
+
+ + +
+ + + + + + + info + + + + + loop-round + + + + + import-export + + + + + + + + + + diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/package.json b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/package.json index 67c0cd8..2a858fa 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/package.json +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/package.json @@ -6,19 +6,36 @@ "devDependencies": { "babel-cli": "^6.24.1", "babel-loader": "^7.0.0", + "babel-plugin-dynamic-import-webpack": "^1.0.1", "babel-preset-flow": "^6.23.0", "babel-preset-react": "^6.24.1", "babili-webpack-plugin": "^0.0.11", + "bel": "^4.6.1", + "concat-stream": "^1.6.0", + "csjs": "^1.1.0", + "csjs-inject": "^1.0.1", + "csjs-injectify": "^1.0.1", "flow-bin": "^0.45.0", - "react": "^15.5.4", - "react-dom": "^15.5.4", + "inferno": "^3.1.2", + "inferno-component": "^3.1.2", + "inferno-create-element": "^3.1.2", + "inferno-redux": "^3.1.2", + "microcomponent": "^3.1.1", + "nanomorph": "^4.0.5", + "nanomount": "^1.0.1", + "sheetify": "^6.0.2", + "transform-loader": "^0.2.4", "webpack": "^2.5.1" }, "scripts": { "check": "flow status", - "build:prod": "webpack --define process.env.NODE_ENV=\"'production'\" --env=prod", - "build:dev:nocomp": "webpack --define process.env.NODE_ENV=\"'production'\" --env=dev", - "build:dev": "webpack --debug --devtool source-map --output-pathinfo --env=dev", - "build": "npm run build:dev" + "build:prod": "webpack --define process.env.NODE_ENV=\"'production'\" --env=prod", + "build:dev:nocomp": "NODE_ENV=development webpack --define process.env.NODE_ENV=\"'development'\" --env=dev", + "build:dev": "NODE_ENV=development webpack --debug --define process.env.NODE_ENV=\"'development'\" --output-pathinfo --env=dev", + "gulp": "cd .. && npm run gulp", + "start": "npm run build:dev && npm run gulp" + }, + "dependencies": { + "babel-plugin-inferno": "^3.2.0" } } diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js new file mode 100644 index 0000000..ea551a3 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js @@ -0,0 +1,54 @@ +import Inferno from 'inferno'; +import Component from 'inferno-component'; +import createElement from 'inferno-create-element'; + +import getNotControlledWarning from './NotControlledWarning'; +import getTabPannel from './TabPannel'; +import getPacChooser from './PacChooser'; + +import getFooter from './Footer'; + +export default function getApp(theState) { + + return class App extends Component { + + render(props) { + + return createElement('div', { + onClick: () => console.log('DDDDDCLICK'), + onDick: () => console.log('DICK!'), + ondick: () => console.log('dddDICK!'), + }, [ + createElement(getNotControlledWarning(theState), props), + createElement(getTabPannel(theState), { + tabs:[ + { + label: 'PAC-скрипт', + content: createElement(getPacChooser(theState), props), + }, + { + label: 'Исключения', + content: "Exceptions().render(this.props)", + }, + { + label: 'Свои прокси', + content: "OwnProxies().render(this.props)", + }, + { + label: 'Модификаторы', + content: "Modificators().render(this.props)", + }, + { + label: 'Уведомления', + content: "Notifications().render(this.props)", + } + ] + }), + createElement(getFooter(theState), props), + ]); + + } + + } + +};; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Footer.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Footer.js new file mode 100644 index 0000000..b0e869d --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Footer.js @@ -0,0 +1,40 @@ +import Inferno from 'inferno'; +import css from 'csjs-inject'; +import Component from 'inferno-component'; + +export default function getFooter() { + + const scopedCss = css` + + #statusRow { + padding: 0 0.3em 1em; + } + #status { + display: inline-block; + } + + .controlRow { + margin: 1em 0 1em 0; + } + `; + + return function (props) { + + return ( +
+
+
{props.status}
+
+ + +
+ ); + + }; + +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js new file mode 100644 index 0000000..48b3435 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js @@ -0,0 +1,133 @@ +import Inferno from 'inferno'; +import Component from 'inferno-component'; +import css from 'csjs-inject'; + +export default function getInfoRow() { + + const scopedCss = css` + /* CONTROL RAW = BUTTON + LINK */ + + .labelContainer { + flex-grow: 9; + padding-left: 0.3em; + } + + /* INFO SIGNS */ + + input:disabled + .labelContainer label { + color: var(--default-grey); + pointer-events: none; + } + + .infoRow { + position: relative; + } + .rightBottomIcon { + margin-left: 0.1em; + vertical-align: bottom; + } + .infoUrl, .infoUrl:hover { + text-decoration: none; + } + + /* Source: https://jsfiddle.net/greypants/zgCb7/ */ + .desc { + text-align: right; + color: var(--ribbon-color); + cursor: help; + padding-left: 0.3em; + } + .tooltip { + display: none; + position: absolute; + white-space: initial; + word-break: initial; + top: 100%; + left: 0; + right: 1em; + z-index: 1; + background-color: var(--ribbon-color); + padding: 1em; + color: white; + text-align: initial; + } + .desc:hover .tooltip { + display: block; + } + .tooltip a, + .tooltip em { + color: white; + } + .desc .tooltip:after { + border-left: solid transparent 0.5em; + border-bottom: solid var(--ribbon-color) 0.5em; + position: absolute; + top: -0.5em; + content: ""; + width: 0; + right: 0; + height: 0; + } + /* This bridges the gap so you can mouse into the tooltip without it disappearing. */ + .desc .tooltip:before { + position: absolute; + top: -1em; + content: ""; + display: block; + height: 1.2em; + left: 75%; + width: calc(25% + 0.6em); + } + `; + + const camelToDash = (name) => name.replace(/([A-Z])/g, (_, p1) => '-' + p1.toLowerCase()); + // const dashToCamel = (name) => name.replace(/-(.)/g, (_, p1) => p1.toUpperCase()); + + + const InfoIcon = function InfoIcom(props) { + + return ( + $ + $ + + ); + + }; + + return class InfoRow extends Component { + + render(props) { + + // Object.assign is left-associative, let's make it right. + Object.assign(props, Object.assign({ + idPrefix: '', + ifDashify: false, + htmlAfterLabel: '', + }, props)); + + const iddy = props.idPrefix + ( props.ifDashify ? camelToDash(props.conf.key) : props.conf.key ); + return ( +
  • + +
    + + {props.children} +
    + {props.conf.desc + ? ( +
    + +
    +
    ) + : (props.conf.url + && () + ) + } +
  • + ); + + } + + }; + +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/NotControlledWarning.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/NotControlledWarning.js new file mode 100644 index 0000000..ca3afb2 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/NotControlledWarning.js @@ -0,0 +1,55 @@ +// @flow + +//import mComponent from 'microcomponent'; +//import html from 'bel'; +import css from 'csjs-inject'; + +import Inferno from 'inferno'; +import Component from 'inferno-component'; + +export default function getNotControlledWarning({ flags }) { + + const cssClasses = css` + + .warningContainer { + background-color: red; + color: white; + font-weight: bold; + text-align: center; + + ${ flags.ifInsideOptionsPage + ? ` + padding-top: 0; + padding-bottom: 0; + ` : ` + padding-top: 1em; + padding-bottom: 1em; + ` + } + + border-bottom: 1px solid var(--default-grey); + } + .warningContainer a { + color: white; + } + `; + + return class NotControlledWarning extends Component { + + constructor(props) { + + super(props); + + } + + render(props) { + + return ( +
    + ); + + } + + }; + +} diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js new file mode 100644 index 0000000..ec5d7ad --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js @@ -0,0 +1,172 @@ +import Inferno from 'inferno'; +import Component from 'inferno-component'; +import css from 'csjs-inject'; + +import getInfoLi from './InfoLi'; + +export default function getPacChooser(...args) { + + const scopedCss = css` + /* OTHER VERSION */ + + .otherVersion { + font-size: 1.7em; + color: var(--ribbon-color); + margin-left: 0.1em; + } + .otherVersion:hover { + text-decoration: none; + } + .fullLineHeight, + .fullLineHeight * { + line-height: 100%; + } + + /* TAB_1: PAC PROVIDER */ + + .updateButton { + visibility: hidden; + } + input:checked + div .updateButton { + visibility: inherit; + } + label[for="onlyOwnSites"] + .updateButton { + display: none; + } + #none:checked + div label[for="none"] { + color: red; + } + + #updateMessage { + white-space: nowrap; + margin-top: 0.5em; + } + + `; + + // UTILS START. + + const currentProviderRadio = () => { + + const iddy = antiCensorRu.getCurrentPacProviderKey() || 'none'; + return document.getElementById(iddy); + + }; + const checkChosenProvider = () => { + + currentProviderRadio().checked = true; + + }; + + // UTILS END. + + class LastUpdateDate extends Component { + + constructor(props) { + + super(props); + chrome.storage.onChanged.addListener( + (changes) => changes.lastPacUpdateStamp.newValue && this.forceUpdate() + ); + + } + + getDate(antiCensorRu) { + + let dateForUser = 'никогда'; + if( antiCensorRu.lastPacUpdateStamp ) { + let diff = Date.now() - antiCensorRu.lastPacUpdateStamp; + let units = 'мс'; + const gauges = [ + [1000, 'с'], + [60, 'мин'], + [60, 'ч'], + [24, 'дн'], + [7, ' недель'], + [4, ' месяцев'], + ]; + for(const g of gauges) { + const diffy = Math.floor(diff / g[0]); + if (!diffy) + break; + diff = diffy; + units = g[1]; + } + dateForUser = diff + units + ' назад'; + } + return { + text: `${dateForUser} / ${antiCensorRu.pacUpdatePeriodInMinutes/60}ч`, + title: new Date(antiCensorRu.lastPacUpdateStamp).toLocaleString('ru-RU'), + }; + + } + + render(props) { + + const date = this.getDate(props.antiCensorRu); + return (
    Обновлялись: { date.text }
    ); + + } + + } + + const updatePac = function updatePac() { + conduct( + 'Обновляем...', (cb) => antiCensorRu.syncWithPacProviderAsync(cb), + 'Обновлено.' + ); + return false; + }; + + const InfoLi = getInfoLi(...args); + + function emit(e) { + + const event = new Event('dick'); + e.target.dispatchEvent(event); + + } + + return class PacChooser extends Component { + + render(props) { + + const checkedIddy = props.antiCensorRu.getCurrentPacProviderKey() || 'none'; + return ( +
    + {props.flags.ifInsideOptionsPage && (
    PAC-скрипт:
    )} + +
    + +
    + { + props.flags.ifMini + ? (🏋) + : (🐌) + } +
    +
    +
    + ); + + } + + }; + +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPannel.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPannel.js new file mode 100644 index 0000000..9890a8a --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPannel.js @@ -0,0 +1,171 @@ +//import mComponent from 'microcomponent'; +//import html from 'bel'; + +import Inferno, { linkEvent } from 'inferno'; +import Component from 'inferno-component'; +import css from 'csjs-inject'; + +export default function getTabsPannel({ flags }) { + + const scopedCss = css` + + .tabContainer { + padding: 0.6em 0 1em; + } + .tabContainer li label { + display: inline-block; /* Needed for ::first-letter below. */ + } + .tabContainer li label::first-letter { + text-transform: uppercase; + } + :root.ifInsideOptionsPage .tabContainer { + padding-bottom: 0.6em; + } + :root.ifInsideOptionsPage .tabContainer:not(:last-child), + .underlined { + border-bottom: 1px solid var(--cr-options-headline); + } + + /* HIDE starts. */ + + :root:not(.ifInsideOptionsPage) .mainNav input:not(:checked) + section, + /* One button shared between two sections: */ + :root:not(.ifInsideOptionsPage) .mainNav input:not(:checked) + #apply-mods-section + { + /* Hide, but preclude width resizes. */ + height: 0px !important; + line-height: 0px !important; + padding-top: 0 !important; + padding-bottom: 0 !important; + margin-top: 0 !important; + margin-bottom: 0 !important; + border: none !important; + display: block; + visibility: hidden; + transform: scaleY(0) !important; + } + + :root:not(.ifInsideOptionsPage) .mainNav input:not(:checked) + section *, + /* One button shared between two sections: */ + :root:not(.ifInsideOptionsPage) .mainNav #apply-mods-section * // TODO + { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + /* HIDE ends. */ + + .navLabels { + background-color: var(--cr-grey-panel); + text-align: center; + min-width: 24em; + } + .navLabels li label { + display: inline-block; + + border: 1px solid var(--ribbon-color); + border-radius: 0.2em; + + background-color: white; + color: var(--ribbon-color); + + padding: 0.2em 0.3em 0.3em 0.2em; + line-height: 0.8em; + margin: 0.1em 0; + } + .navLabels li label:hover { + background-color: var(--blue-bg); + color: white; + } + + /* LABELS starts. */ + + input[name="selectedTabLabel"]:checked + label:not(:hover) + { + background-color: var(--blue-bg); + color: white; + } + /* ★★★★★ */ + .navLabels label:before { + content: '★'; + padding-right: 0.1em; + visibility: hidden; + } + .navLabels li label:hover:before, + input[name="selectedTabLabel"]:checked + label:before + { + visibility: initial; + } + .navLabels li:after { + content: '\\a0'; + } + + /* LABELS ends. */ + + `; + + if (flags.ifInsideOptionsPage) { + document.documentElement.classList.add(scopedCss.ifInsideOptionsPage); + } + + return class TabPannel extends Component { + + constructor(props) { + + super(props); + console.log('CONSTRUCTOR'); + this.state = { + chosenTabIndex: 0, + }; + + } + componentDidMount() { + + window.addEventListener('hashchange', () => { + + if (/^#tab(\d+)$/.test(window.location.hash)) { + const inputIndex = RegExp.$1; + if (inputIndex < this.props.tabs.length) { + console.log('SET STATE'); + this.setState({chosenTabIndex: inputIndex}); + } + } + }); + + } + render(props) { + + return (
    { + + const target = dom.querySelector(`.${scopedCss.mainNav} *:target`); + if (target) { + const tabIndex = parseInt(target.id.replace('tab', '')); + dom.querySelector(`#radioLabel${tabIndex}`).checked = true; + dom.querySelector(`#radioTab${tabIndex}`).checked = true; + } + + }}> + + + +
    +
    ); + + } + + }; + +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/globalCss.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/globalCss.js new file mode 100644 index 0000000..6f92eab --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/globalCss.js @@ -0,0 +1,149 @@ +export default function append(document, props) { + + // innerText converts \n to
    , so: + document.head.querySelector('style').innerHTML = ` + /* GLOBAL VARIABLES */ + + :root { + --ribbon-color: #4169e1; + --blue-bg: dodgerblue; + --default-grey: #bfbfbf; + --cr-options-headline: #d3d3d3; + --cr-icon-selected: #d7d7d7; + --cr-popup-border: #bababa; + --cr-grey-panel: #f2f2f2; + max-width: 28em; + } + + /* BASE ELEMENTS */ + + body { + margin: 0; + } + a, a:visited { + color: var(--ribbon-color); + text-decoration: none; + } + a:hover { + text-decoration: underline; + } + label { + user-select: none; + } + div, section, header, ul, ol { + margin: 0; + padding: 0; + } + header { + margin-bottom: 0.3em + } + ul, ol { + list-style-type: none; + } + li, .nowrap { + display: block; + white-space: nowrap; + word-break: keep-all; + } + li, li > * { + vertical-align: middle; + } + input[type="radio"], input[type="checkbox"] { + flex-shrink: 0; + } + input[type="radio"], label { + cursor: pointer; + } + hr { + border: none; + border-top: 1px solid var(--cr-popup-border); + margin: 0 0 0.6em 0; + padding: 0; + } + em { + font-style: normal; + text-decoration: underline; + } + + + /* IF INSIDE OPTIONS */ + ${ + props.flags.ifInsideOptionsPage + ? ` + + ul, ol { + margin-left: 0.4em; + } + + ` : ` + + ul, ol { + /*Here is a flex bug: + () antizapret [update] (i) + () anticensority very_long_foobar [update] (i) <- Sic! + Also: options page is wider, check it too. + But: fixed 100% width conflicts with margins/paddings. + So: use only when needed and avoid margins. + FYI: setting left-margin fixes problem too, but margins are not wanted. + Fix this problem below: + */ + display: inline-block; + min-width: 100%; + } + ` + } + + + /* COMMON CLASSES */ + + .off { + display: none; + } + .horPadded { + padding-left: 1.4em; + padding-right: 1.4em; + } + .horizontalList, + .horizontalList li { + line-height: 100%; + } + .horizontalList li { + display: inline-block; + } + + /* Flexes */ + + .horFlex { + display: flex; + align-items: baseline; + justify-content: space-between; + width: 100%; + } + .horFlex input:not([type="button"]) { + align-self: flex-end; + } + + /* Fonts/Icons */ + + @font-face { + font-family: "emoji"; + src:url("../lib/fonts/emoji.woff") format("woff"); + font-weight: normal; + font-style: normal; + } + .emoji { + font-family: "emoji"; + } + + svg.icon { + display: inline-block; + width: 1em; + height: 1em; + stroke-width: 0; + stroke: currentColor; + fill: currentColor; + } + + `; + +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js index 4233ce5..7ddf5ca 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js @@ -1,15 +1,70 @@ // @flow -import React from 'react'; -import ReactDOM from 'react-dom'; -let x:string; // webpack/babel must remove type here! -x = 'Search me in the compiled bundle!'; +import Inferno from 'inferno'; +import Component from 'inferno-component'; +import createElement from 'inferno-create-element'; -let t:string; -t = 12345; // Flow must detect error here! +import { createStore } from 'redux'; -// webpack/babel must transpile JSX to JS below: -ReactDOM.render( -

    Hello from React WITH BABEL

    , - document.getElementById('root') +import css from 'csjs-inject'; +import appendGlobalCss from './globalCss'; + +import getApp from './components/App'; +/* + #list-of-notifiers { + margin-left: 0.4em; + } +*/ + +chrome.runtime.getBackgroundPage( (backgroundPage) => + backgroundPage.apis.errorHandlers.installListenersOn( + window, 'PUP', async() => { + + let theState; + { + const apis = backgroundPage.apis; + + theState = { + utils: backgroundPage.utils, + antiCensorRu: backgroundPage.apis.antiCensorRu, + errorHandlers: apis.errorHandlers, + flags: { + /* Shortcuts to boolean values. */ + ifNotControlled: !apis.errorHandlers.ifControllable, + ifMini: apis.version.ifMini, + }, + status: 'Хорошего настроения Вам!', + }; + } + + if (theState.flags.ifMini) { + document.documentElement.classList.add('ifVersionMini'); + } + + // IF INSIDE OPTIONS TAB + + const currentTab = await new Promise( + (resolve) => chrome.tabs.query( + {active: true, currentWindow: true}, + ([tab]) => resolve(tab) + ) + ); + + theState.flags.ifInsideOptionsPage = !currentTab || currentTab.url.startsWith('chrome://extensions/?options='); + + // STATE DEFINED, COMPOSE. + + appendGlobalCss(document, theState); + + Inferno.render( + createElement(getApp(theState), theState), + document.getElementById('app-root'), + ); + // READY TO RENDER + + document.documentElement.style.display = 'initial'; + + } + ) ); + diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/webpack.config.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/webpack.config.js index a285e00..bff40c2 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/webpack.config.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/webpack.config.js @@ -7,24 +7,39 @@ module.exports = (env, ...flags) => ({ entry: './src/index.js', output: { path: path.join(__dirname, 'dist'), - filename: `bundle${env === 'prod' ? '.min' : ''}.js`, + filename: `bundle.min.js`, + publicPath: './dist/', }, + devtool: 'source-map', module: { rules: [ { test: /\.jsx?$/, include: path.join(__dirname, 'src'), - use: [{ - loader: 'babel-loader', - options: { presets: ['react', 'flow'] }, - }], + use: [ + { + loader: 'babel-loader', + options: { + presets: ['flow'], + plugins: ['dynamic-import-webpack', 'inferno'], + }, + }, + /*{ + loader: './lib/transform-loader?csjs-injectify', + },*/ + ], } ], }, + + resolve: { + aliasFields: [], + }, + plugins: env === 'prod' ? [ /* Production */ - new BabiliPlugin(), + //new BabiliPlugin(), ] : [ /* Development */ ], diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/yarn.lock b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/yarn.lock index 51fe299..6180e46 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/yarn.lock +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/yarn.lock @@ -12,6 +12,14 @@ acorn-dynamic-import@^2.0.0: dependencies: acorn "^4.0.3" +acorn@^1.0.3: + version "1.2.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014" + +acorn@^2.4.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" + acorn@^4.0.3: version "4.0.11" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.11.tgz#edcda3bd937e7556410d42ed5860f67399c794c0" @@ -39,6 +47,10 @@ align-text@^0.1.1, align-text@^0.1.3: longest "^1.0.1" repeat-string "^1.5.2" +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -83,10 +95,6 @@ arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" -asap@~2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" - asn1.js@^4.0.0: version "4.9.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" @@ -258,6 +266,20 @@ babel-messages@^6.23.0: dependencies: babel-runtime "^6.22.0" +babel-plugin-dynamic-import-webpack@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-webpack/-/babel-plugin-dynamic-import-webpack-1.0.1.tgz#26c24a1c1c9bf49184b30d5867562a4cbfa530d1" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-template "^6.16.0" + +babel-plugin-inferno@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-inferno/-/babel-plugin-inferno-3.2.0.tgz#62ae1ac223e74e0d54f29fb196e06e358250d82a" + dependencies: + babel-plugin-syntax-jsx "^6.18.0" + inferno-vnode-flags "3.0.0" + babel-plugin-minify-builtins@^0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/babel-plugin-minify-builtins/-/babel-plugin-minify-builtins-0.0.2.tgz#f3be6121763c0c518d5ef82067cef4b615c9498c" @@ -323,11 +345,15 @@ babel-plugin-minify-type-constructors@^0.0.4: dependencies: babel-helper-is-void-0 "^0.0.1" +babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + babel-plugin-syntax-flow@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" -babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: +babel-plugin-syntax-jsx@^6.18.0, babel-plugin-syntax-jsx@^6.3.13, babel-plugin-syntax-jsx@^6.8.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" @@ -486,7 +512,7 @@ babel-runtime@^6.0.0, babel-runtime@^6.22.0: core-js "^2.4.0" regenerator-runtime "^0.10.0" -babel-template@^6.24.1: +babel-template@^6.16.0, babel-template@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333" dependencies: @@ -545,6 +571,14 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +bel@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/bel/-/bel-4.6.1.tgz#fd3a445914e90ff32b08e92192f557f15845cd34" + dependencies: + global "^4.3.0" + hyperx "^2.3.0" + on-load "^3.2.0" + big.js@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" @@ -682,7 +716,7 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@^1.1.0: +chalk@^1.1.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -757,6 +791,14 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" +concat-stream@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" + dependencies: + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -775,10 +817,6 @@ convert-source-map@^1.1.0: version "1.5.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" - core-js@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" @@ -831,6 +869,26 @@ crypto-browserify@^3.11.0: public-encrypt "^4.0.0" randombytes "^2.0.0" +csjs-inject@^1.0.0, csjs-inject@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/csjs-inject/-/csjs-inject-1.0.1.tgz#de22113c40b46cfe17d3d62a00c77c9d7da7527c" + dependencies: + csjs "^1.0.0" + insert-css "^0.2.0" + +csjs-injectify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/csjs-injectify/-/csjs-injectify-1.0.1.tgz#526da892b87346badb16bd5fbe7b20245dbf247b" + dependencies: + acorn "^2.4.0" + csjs-inject "^1.0.0" + falafel "^1.2.0" + through2 "^2.0.0" + +csjs@^1.0.0, csjs@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/csjs/-/csjs-1.1.0.tgz#1b5753c6bd902da269deb369215585a5d8f1f380" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -855,6 +913,10 @@ deep-extend@~0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -884,6 +946,10 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + domain-browser@^1.1.1: version "1.1.7" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" @@ -910,12 +976,6 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" - enhanced-resolve@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz#9f4b626f577245edcf4b2ad83d86e17f4f421dec" @@ -941,6 +1001,25 @@ escape-string-regexp@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" +escodegen@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + esutils@^2.0.0, esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -981,17 +1060,18 @@ extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" -fbjs@^0.8.9: - version "0.8.12" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.12.tgz#10b5d92f76d45575fd63a217d4ea02bea2f8ed04" +falafel@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/falafel/-/falafel-1.2.0.tgz#c18d24ef5091174a497f318cd24b026a25cddab4" dependencies: - core-js "^1.0.0" - isomorphic-fetch "^2.1.1" - loose-envify "^1.0.0" - object-assign "^4.1.0" - promise "^7.1.1" - setimmediate "^1.0.5" - ua-parser-js "^0.7.9" + acorn "^1.0.3" + foreach "^2.0.5" + isarray "0.0.1" + object-keys "^1.0.6" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" filename-regex@^2.0.0: version "2.0.1" @@ -1022,6 +1102,10 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" +flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + flow-bin@^0.45.0: version "0.45.0" resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.45.0.tgz#009dd0f577a3f665c74ca8be827ae8c2dd8fd6b5" @@ -1036,6 +1120,10 @@ for-own@^0.1.4: dependencies: for-in "^1.0.1" +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -1127,6 +1215,13 @@ glob@^7.0.0, glob@^7.0.5: once "^1.3.0" path-is-absolute "^1.0.0" +global@^4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + dependencies: + min-document "^2.19.0" + process "~0.5.1" + globals@^9.0.0: version "9.17.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" @@ -1214,18 +1309,60 @@ https-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" -iconv-lite@~0.4.13: - version "0.4.17" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d" +hyperscript-attribute-to-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hyperscript-attribute-to-property/-/hyperscript-attribute-to-property-1.0.0.tgz#825308d49bb8e2957923f731981bcc811cad7aff" + +hyperx@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/hyperx/-/hyperx-2.3.0.tgz#70f473d66d4ad550ddd1c83e4be2651276bbf1e2" + dependencies: + hyperscript-attribute-to-property "^1.0.0" ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" +inferno-component@3.1.2, inferno-component@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/inferno-component/-/inferno-component-3.1.2.tgz#c31f36a93b16c7649255240271bfcd6478775449" + dependencies: + inferno "3.1.2" + inferno-shared "3.1.1" + inferno-vnode-flags "^3.0.0" + +inferno-create-element@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/inferno-create-element/-/inferno-create-element-3.1.2.tgz#c5a33f25a51f09dac21cd0bd031398d963b5ad5b" + dependencies: + inferno "3.1.2" + inferno-component "3.1.2" + inferno-shared "3.1.1" + inferno-vnode-flags "^3.0.0" + +inferno-shared@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/inferno-shared/-/inferno-shared-3.1.1.tgz#70376e29a56c53f6ba1e942191fe5cb710654f73" + +inferno-vnode-flags@3.0.0, inferno-vnode-flags@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/inferno-vnode-flags/-/inferno-vnode-flags-3.0.0.tgz#f396390f3dafae3b76eea04d04eed6cf2004473b" + +inferno@3.1.2, inferno@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/inferno/-/inferno-3.1.2.tgz#37ae33ef6ed75a05b1a4b7b4b24b99fe0a120b9e" + dependencies: + inferno-shared "3.1.1" + inferno-vnode-flags "^3.0.0" + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -1233,7 +1370,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -1245,6 +1382,14 @@ ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" +insert-css@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/insert-css/-/insert-css-0.2.0.tgz#d15789971662d9899c28977fb6220d5381d2451a" + +insert-css@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/insert-css/-/insert-css-2.0.0.tgz#eb5d1097b7542f4c79ea3060d3aee07d053880f4" + interpret@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" @@ -1329,10 +1474,6 @@ is-primitive@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" -is-stream@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -1341,6 +1482,10 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -1351,13 +1496,6 @@ isobject@^2.0.0: dependencies: isarray "1.0.0" -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -1368,6 +1506,10 @@ jodid25519@^1.0.0: dependencies: jsbn "~0.1.0" +js-base64@^2.1.9: + version "2.1.9" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.1.9.tgz#f0e80ae039a4bd654b5f281fc93f04a914a7fcce" + js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" @@ -1435,6 +1577,13 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -1482,12 +1631,18 @@ longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" -loose-envify@^1.0.0, loose-envify@^1.1.0: +loose-envify@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: js-tokens "^3.0.0" +map-limit@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/map-limit/-/map-limit-0.0.1.tgz#eb7961031c0f0e8d001bf2d56fab685d58822f38" + dependencies: + once "~1.3.0" + memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -1495,6 +1650,16 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" +microcomponent@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/microcomponent/-/microcomponent-3.1.1.tgz#c08d7cccd09863c016e4a09db0098b4457df8d9b" + dependencies: + nanocomponent "^4.0.1" + nanologger "^1.0.2" + nanomorph "^4.0.3" + nanotiming "^1.0.0" + shallow-equal "^1.0.0" + micromatch@^2.1.5: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" @@ -1530,6 +1695,12 @@ mime-types@^2.1.12, mime-types@~2.1.7: dependencies: mime-db "~1.27.0" +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + dependencies: + dom-walk "^0.1.0" + minimalistic-assert@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" @@ -1566,12 +1737,29 @@ nan@^2.3.0: version "2.6.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" -node-fetch@^1.0.1: - version "1.6.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" +nanocomponent@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/nanocomponent/-/nanocomponent-4.0.2.tgz#786d5ff60dbf97727ccd41879688c07f462c973c" dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" + on-load "^3.2.0" + +nanologger@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/nanologger/-/nanologger-1.0.3.tgz#673f29456ae16abe839abc0feeb64a6a135c557e" + +nanomorph@^4.0.0, nanomorph@^4.0.3, nanomorph@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/nanomorph/-/nanomorph-4.0.5.tgz#7e27cc5e28a05df0c278f53ba430f253f3ac3fac" + +nanomount@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nanomount/-/nanomount-1.0.1.tgz#da6e4c446f046a20d5a87bfc3a6152be29890d35" + dependencies: + nanomorph "^4.0.0" + +nanotiming@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nanotiming/-/nanotiming-1.0.1.tgz#13e7a2e2767967974fedfff071edd39327f44ec3" node-libs-browser@^2.0.0: version "2.0.0" @@ -1658,6 +1846,10 @@ object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" +object-keys@^1.0.6: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + object.omit@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" @@ -1665,12 +1857,35 @@ object.omit@^2.0.0: for-own "^0.1.4" is-extendable "^0.1.1" +on-load@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/on-load/-/on-load-3.2.0.tgz#dd3145d3a5c2faa5666920d1df674b69f0c2f66f" + dependencies: + global "^4.3.0" + once@^1.3.0, once@^1.3.3: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +optionator@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + os-browserify@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" @@ -1747,6 +1962,10 @@ path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -1785,6 +2004,34 @@ pkg-dir@^1.0.0: dependencies: find-up "^1.0.0" +postcss-prefix@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-prefix/-/postcss-prefix-2.0.0.tgz#2139e8fba64ed71b93e3a8b1d4c5976e2a949c6f" + dependencies: + postcss "^5.0.8" + postcss-selector-parser "^1.3.0" + +postcss-selector-parser@^1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-1.3.3.tgz#d2ee19df7a64f8ef21c1a71c86f7d4835c88c281" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss@^5.0.10, postcss@^5.0.8: + version "5.2.17" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" @@ -1801,17 +2048,9 @@ process@^0.11.0: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" -promise@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" - dependencies: - asap "~2.0.3" - -prop-types@^15.5.7, prop-types@~15.5.7: - version "15.5.8" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.5.8.tgz#6b7b2e141083be38c8595aa51fc55775c7199394" - dependencies: - fbjs "^0.8.9" +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" prr@~0.0.0: version "0.0.0" @@ -1867,24 +2106,6 @@ rc@^1.1.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@^15.5.4: - version "15.5.4" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.5.4.tgz#ba0c28786fd52ed7e4f2135fe0288d462aef93da" - dependencies: - fbjs "^0.8.9" - loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "~15.5.7" - -react@^15.5.4: - version "15.5.4" - resolved "https://registry.yarnpkg.com/react/-/react-15.5.4.tgz#fa83eb01506ab237cdc1c8c3b1cea8de012bf047" - dependencies: - fbjs "^0.8.9" - loose-envify "^1.1.0" - object-assign "^4.1.0" - prop-types "^15.5.7" - read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -1900,7 +2121,7 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.6: +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6: version "2.2.9" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" dependencies: @@ -1985,6 +2206,12 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" +resolve@^1.1.7: + version "1.3.3" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5" + dependencies: + path-parse "^1.0.5" + right-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" @@ -2017,7 +2244,7 @@ set-immediate-shim@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" -setimmediate@^1.0.4, setimmediate@^1.0.5: +setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -2027,6 +2254,26 @@ sha.js@^2.3.6: dependencies: inherits "^2.0.1" +shallow-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.0.0.tgz#508d1838b3de590ab8757b011b25e430900945f7" + +sheetify@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/sheetify/-/sheetify-6.0.2.tgz#f494161e1cafc1bc02276e930e148acdd3344fd2" + dependencies: + falafel "^1.2.0" + insert-css "^2.0.0" + map-limit "0.0.1" + postcss "^5.0.10" + postcss-prefix "^2.0.0" + resolve "^1.1.7" + stack-trace "0.0.9" + static-eval "^1.1.0" + style-resolve "^1.0.0" + through2 "^2.0.0" + xtend "^4.0.1" + signal-exit@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -2059,6 +2306,12 @@ source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, sour version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + dependencies: + amdefine ">=0.0.4" + spdx-correct@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" @@ -2088,6 +2341,16 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" +stack-trace@0.0.9: + version "0.0.9" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.9.tgz#a8f6eaeca90674c333e7c43953f275b451510695" + +static-eval@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-1.1.1.tgz#ca8130210354cf13d9a722bc7e923778457bb192" + dependencies: + escodegen "^1.8.1" + stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" @@ -2143,11 +2406,18 @@ strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" +style-resolve@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/style-resolve/-/style-resolve-1.0.1.tgz#2d2067c944d5fb7f553ca75c4e7947df43796fae" + dependencies: + resolve "^1.1.7" + xtend "^4.0.1" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.0: +supports-color@^3.1.0, supports-color@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: @@ -2178,6 +2448,13 @@ tar@^2.2.1: fstream "^1.0.2" inherits "2" +through2@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + timers-browserify@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.2.tgz#ab4883cf597dcd50af211349a00fbca56ac86b86" @@ -2198,6 +2475,12 @@ tough-cookie@~2.3.0: dependencies: punycode "^1.4.1" +transform-loader@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/transform-loader/-/transform-loader-0.2.4.tgz#e5c87877ba96d51d3f225368587b46e226d1cec9" + dependencies: + loader-utils "^1.0.2" + trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" @@ -2216,9 +2499,15 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" -ua-parser-js@^0.7.9: - version "0.7.12" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" uglify-js@^2.8.5: version "2.8.23" @@ -2237,6 +2526,10 @@ uid-number@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -2335,10 +2628,6 @@ webpack@^2.5.1: webpack-sources "^0.2.3" yargs "^6.0.0" -whatwg-fetch@>=0.10.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" - which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" @@ -2357,6 +2646,10 @@ wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" +wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -2368,7 +2661,7 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -xtend@^4.0.0: +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" From 82a2994dcc971c8fd0ce474b62d3f3c8a5ce137c Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Wed, 17 May 2017 22:11:33 +0500 Subject: [PATCH 07/36] Show error and status in PUP --- .../pages/options/src/components/App.js | 146 ++++++++++++++++-- .../pages/options/src/components/Footer.js | 10 +- .../pages/options/src/components/InfoLi.js | 5 +- .../options/src/components/PacChooser.js | 34 ++-- .../components/{TabPannel.js => TabPanel.js} | 8 +- .../pages/options/src/index.js | 4 +- 6 files changed, 163 insertions(+), 44 deletions(-) rename extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/{TabPannel.js => TabPanel.js} (96%) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js index ea551a3..ff8013e 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js @@ -3,28 +3,152 @@ import Component from 'inferno-component'; import createElement from 'inferno-create-element'; import getNotControlledWarning from './NotControlledWarning'; -import getTabPannel from './TabPannel'; +import getTabPanel from './TabPanel'; import getPacChooser from './PacChooser'; - import getFooter from './Footer'; export default function getApp(theState) { + const NotControlledWarning = getNotControlledWarning(theState); + const TabPanel = getTabPanel(theState); + const PacChooser = getPacChooser(theState); + const Footer = getFooter(theState); + return class App extends Component { + constructor(props) { + + super(props); + this.state = { + status: 'Загрузка...', + areInputsDisabled: false, + }; + + } + + componentDidMount() { + + this.showErrors({ message: 'PANIC!' }); + + } + + setStatusTo(msg) { + + this.setState( + { + status: msg, + } + ); + + } + + showErrors(err, ...warns) { + + const warningHtml = warns + .map( + (w) => w && w.messageHtml || '' + ) + .filter( (m) => m ) + .map( (m) => '✘ ' + m ) + .join('
    '); + + let messageHtml = ''; + if (err) { + let wrapped = err.wrapped; + messageHtml = err.message || ''; + + while( wrapped ) { + const deeperMsg = wrapped && wrapped.message; + if (deeperMsg) { + messageHtml = messageHtml + ' > ' + deeperMsg; + } + wrapped = wrapped.wrapped; + } + } + messageHtml = messageHtml.trim(); + if (warningHtml) { + messageHtml = messageHtml ? messageHtml + '
    ' + warningHtml : warningHtml; + } + this.setStatusTo( + ( + + {err ? 🔥 Ошибка! : 'Некритичная oшибка.'} + +
    + + {err && { + + this.props.apis.errorHandlers.viewError('pup-ext-err', err); + evt.preventDefault(); + + }}> [Техн.детали]} +
    ) + ); + + } + + switchInputs(val) { + + this.setState({ + areInputsDisabled: val === 'off' ? true : false, + }); + /* + const inputs = document.querySelectorAll('input'); + for ( let i = 0; i < inputs.length; i++ ) { + const input = inputs[i]; + if (val === 'off') { + input.dataset.previousDisabledValue = input.disabled; + input.disabled = true; + } else { + input.disabled = input.dataset.previousDisabledValue === 'true'; + } + } + */ + + } + + conduct( + beforeStatus, operation, afterStatus, + onSuccess = () => {}, onError = () => {} + ) { + + this.setStatusTo(beforeStatus); + this.switchInputs('off'); + operation((err, res, ...warns) => { + + warns = warns.filter( (w) => w ); + if (err || warns.length) { + showErrors(err, ...warns); + } else { + this.setStatusTo(afterStatus); + } + this.switchInputs('on'); + if (!err) { + onSuccess(res); + } else { + onError(err); + } + + }); + + } + render(props) { - return createElement('div', { - onClick: () => console.log('DDDDDCLICK'), - onDick: () => console.log('DICK!'), - ondick: () => console.log('dddDICK!'), - }, [ - createElement(getNotControlledWarning(theState), props), - createElement(getTabPannel(theState), { + props = Object.assign({}, props, { + funs: { + setStatusTo: this.setStatusTo, + conduct: this.conduct, + }, + }); + + return createElement('div', null, [ + createElement(NotControlledWarning, props), + createElement(TabPanel, { tabs:[ { label: 'PAC-скрипт', - content: createElement(getPacChooser(theState), props), + content: createElement(PacChooser, props), }, { label: 'Исключения', @@ -44,7 +168,7 @@ export default function getApp(theState) { } ] }), - createElement(getFooter(theState), props), + createElement(Footer, Object.assign({ status: this.state.status }, props)), ]); } diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Footer.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Footer.js index b0e869d..4f78c36 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Footer.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Footer.js @@ -6,24 +6,24 @@ export default function getFooter() { const scopedCss = css` - #statusRow { + .statusRow { padding: 0 0.3em 1em; } - #status { + .status { display: inline-block; } - .controlRow { margin: 1em 0 1em 0; } + `; return function (props) { return (
    -
    -
    {props.status}
    +
    +
    {props.status}
    diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js index 48b3435..0c6ccbf 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js @@ -98,12 +98,11 @@ export default function getInfoRow() { render(props) { - // Object.assign is left-associative, let's make it right. - Object.assign(props, Object.assign({ + props = Object.assign({}, { idPrefix: '', ifDashify: false, htmlAfterLabel: '', - }, props)); + }, props); const iddy = props.idPrefix + ( props.ifDashify ? camelToDash(props.conf.key) : props.conf.key ); return ( diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js index ec5d7ad..746ab03 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js @@ -1,5 +1,6 @@ import Inferno from 'inferno'; import Component from 'inferno-component'; +import createElement from 'inferno-create-element'; import css from 'csjs-inject'; import getInfoLi from './InfoLi'; @@ -103,55 +104,48 @@ export default function getPacChooser(...args) { render(props) { - const date = this.getDate(props.antiCensorRu); + const date = this.getDate(props.apis.antiCensorRu); return (
    Обновлялись: { date.text }
    ); } } - const updatePac = function updatePac() { - conduct( - 'Обновляем...', (cb) => antiCensorRu.syncWithPacProviderAsync(cb), - 'Обновлено.' - ); - return false; - }; - const InfoLi = getInfoLi(...args); - function emit(e) { - - const event = new Event('dick'); - e.target.dispatchEvent(event); - - } - return class PacChooser extends Component { render(props) { - const checkedIddy = props.antiCensorRu.getCurrentPacProviderKey() || 'none'; + const updatePac = function updatePac() { + props.funs.conduct( + 'Обновляем...', + (cb) => props.apis.antiCensorRu.syncWithPacProviderAsync(cb), + 'Обновлено.' + ); + }; + + const checkedIddy = props.apis.antiCensorRu.getCurrentPacProviderKey() || 'none'; return (
    {props.flags.ifInsideOptionsPage && (
    PAC-скрипт:
    )}
    - + { createElement(LastUpdateDate, props) }
    { props.flags.ifMini diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPannel.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPanel.js similarity index 96% rename from extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPannel.js rename to extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPanel.js index 9890a8a..6006bf7 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPannel.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPanel.js @@ -25,6 +25,9 @@ export default function getTabsPannel({ flags }) { .underlined { border-bottom: 1px solid var(--cr-options-headline); } + :root.ifInsideOptionsPage .navLabels { + display: none; + } /* HIDE starts. */ @@ -113,7 +116,6 @@ export default function getTabsPannel({ flags }) { constructor(props) { super(props); - console.log('CONSTRUCTOR'); this.state = { chosenTabIndex: 0, }; @@ -126,7 +128,6 @@ export default function getTabsPannel({ flags }) { if (/^#tab(\d+)$/.test(window.location.hash)) { const inputIndex = RegExp.$1; if (inputIndex < this.props.tabs.length) { - console.log('SET STATE'); this.setState({chosenTabIndex: inputIndex}); } } @@ -137,6 +138,9 @@ export default function getTabsPannel({ flags }) { return (
    { + if (!dom) { + return /* Unmounting. */; + } const target = dom.querySelector(`.${scopedCss.mainNav} *:target`); if (target) { const tabIndex = parseInt(target.id.replace('tab', '')); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js index 7ddf5ca..d10afd0 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js @@ -26,14 +26,12 @@ chrome.runtime.getBackgroundPage( (backgroundPage) => theState = { utils: backgroundPage.utils, - antiCensorRu: backgroundPage.apis.antiCensorRu, - errorHandlers: apis.errorHandlers, + apis: backgroundPage.apis, flags: { /* Shortcuts to boolean values. */ ifNotControlled: !apis.errorHandlers.ifControllable, ifMini: apis.version.ifMini, }, - status: 'Хорошего настроения Вам!', }; } From e97a2bcff5fb9410c9db374f3105c54dc2d17c34 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Wed, 17 May 2017 23:09:36 +0500 Subject: [PATCH 08/36] Make PAC switching work --- .../pages/options/src/components/App.js | 4 +- .../pages/options/src/components/InfoLi.js | 2 +- .../options/src/components/PacChooser.js | 77 ++++++++++++++----- .../pages/options/src/globalCss.js | 2 +- 4 files changed, 62 insertions(+), 23 deletions(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js index ff8013e..47b3357 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js @@ -137,8 +137,8 @@ export default function getApp(theState) { props = Object.assign({}, props, { funs: { - setStatusTo: this.setStatusTo, - conduct: this.conduct, + setStatusTo: this.setStatusTo.bind(this), + conduct: this.conduct.bind(this), }, }); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js index 0c6ccbf..3dba061 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js @@ -107,7 +107,7 @@ export default function getInfoRow() { const iddy = props.idPrefix + ( props.ifDashify ? camelToDash(props.conf.key) : props.conf.key ); return (
  • - +
    {props.children} diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js index 746ab03..f96d1c1 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js @@ -45,22 +45,6 @@ export default function getPacChooser(...args) { `; - // UTILS START. - - const currentProviderRadio = () => { - - const iddy = antiCensorRu.getCurrentPacProviderKey() || 'none'; - return document.getElementById(iddy); - - }; - const checkChosenProvider = () => { - - currentProviderRadio().checked = true; - - }; - - // UTILS END. - class LastUpdateDate extends Component { constructor(props) { @@ -115,6 +99,54 @@ export default function getPacChooser(...args) { return class PacChooser extends Component { + constructor(props) { + + super(); + this.state = { + chosenPacName: 'none', + }; + + } + + getCurrentProviderId() { + + return this.props.apis.antiCensorRu.getCurrentPacProviderKey() || 'none'; + + } + + radioClickHandler(event) { + + const checkChosenProvider = () => + this.setState({ chosenPacName: this.getCurrentProviderId() }); + + const pacKey = event.target.id; + if ( + pacKey === ( + this.props.apis.antiCensorRu.getCurrentPacProviderKey() || 'none' + ) + ) { + return false; + } + if (pacKey === 'none') { + this.props.funs.conduct( + 'Отключение...', + (cb) => this.props.apis.antiCensorRu.clearPacAsync(cb), + 'Отключено.', + () => this.setState({ chosenPacName: 'none' }), + checkChosenProvider + ); + } else { + this.props.funs.conduct( + 'Установка...', + (cb) => this.props.apis.antiCensorRu.installPacAsync(pacKey, cb), + 'PAC-скрипт установлен.', + checkChosenProvider + ); + } + return false; + + } + render(props) { const updatePac = function updatePac() { @@ -125,7 +157,7 @@ export default function getPacChooser(...args) { ); }; - const checkedIddy = props.apis.antiCensorRu.getCurrentPacProviderKey() || 'none'; + const iddyToCheck = this.getCurrentProviderId(); return (
    {props.flags.ifInsideOptionsPage && (
    PAC-скрипт:
    )} @@ -133,16 +165,23 @@ export default function getPacChooser(...args) { { props.apis.antiCensorRu.getSortedEntriesForProviders().map((provConf) => (   { evt.preventDefault(); updatePac(); }}>[обновить] ) ) } - +
    { createElement(LastUpdateDate, props) } diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/globalCss.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/globalCss.js index 6f92eab..f264d55 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/globalCss.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/globalCss.js @@ -12,7 +12,7 @@ export default function append(document, props) { --cr-icon-selected: #d7d7d7; --cr-popup-border: #bababa; --cr-grey-panel: #f2f2f2; - max-width: 28em; + max-width: 24em; } /* BASE ELEMENTS */ From b01999a7370ae50e8532302ff04f1350cfff5f71 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Thu, 18 May 2017 11:51:34 +0500 Subject: [PATCH 09/36] Refactor Inferno components, add areInputsDisabled --- .../extension-common/pages/options/new.html | 11 --- .../pages/options/old/.index.js.swp | Bin 20480 -> 0 bytes .../pages/options/package.json | 9 --- .../pages/options/src/components/App.js | 7 +- .../pages/options/src/components/Footer.js | 3 +- .../pages/options/src/components/InfoLi.js | 67 +++++++++--------- .../options/src/components/LastUpdateDate.js | 62 ++++++++++++++++ .../src/components/NotControlledWarning.js | 24 ++----- .../options/src/components/PacChooser.js | 58 ++------------- .../pages/options/src/components/TabPanel.js | 7 +- .../pages/options/src/globalCss.js | 6 +- .../pages/options/src/index.js | 7 +- 12 files changed, 115 insertions(+), 146 deletions(-) delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/new.html delete mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/old/.index.js.swp create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/LastUpdateDate.js diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/new.html b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/new.html deleted file mode 100644 index 8b73ddc..0000000 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/new.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Настройки - - -
    old info
    - - - diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/old/.index.js.swp b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/old/.index.js.swp deleted file mode 100644 index a7291211510fd1e9e48a5747a28a17926a7d6e96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 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
    - window.close()} /> + window.close()} /> Проблемы? diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js index 3dba061..1a91836 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js @@ -1,5 +1,4 @@ import Inferno from 'inferno'; -import Component from 'inferno-component'; import css from 'csjs-inject'; export default function getInfoRow() { @@ -83,8 +82,7 @@ export default function getInfoRow() { const camelToDash = (name) => name.replace(/([A-Z])/g, (_, p1) => '-' + p1.toLowerCase()); // const dashToCamel = (name) => name.replace(/-(.)/g, (_, p1) => p1.toUpperCase()); - - const InfoIcon = function InfoIcom(props) { + const InfoIcon = function InfoIcon(props) { return ( $ @@ -94,38 +92,41 @@ export default function getInfoRow() { }; - return class InfoRow extends Component { + return function InfoRow(props) { - render(props) { + props = Object.assign({}, { + idPrefix: '', + ifDashify: false, + htmlAfterLabel: '', + }, props); - props = Object.assign({}, { - idPrefix: '', - ifDashify: false, - htmlAfterLabel: '', - }, props); - - const iddy = props.idPrefix + ( props.ifDashify ? camelToDash(props.conf.key) : props.conf.key ); - return ( -
  • - -
    - - {props.children} -
    - {props.conf.desc - ? ( -
    - -
    -
    ) - : (props.conf.url - && () - ) - } -
  • - ); - - } + const iddy = props.idPrefix + ( props.ifDashify ? camelToDash(props.conf.key) : props.conf.key ); + return ( +
  • + +
    + + {props.children} +
    + {props.conf.desc + ? ( +
    + +
    +
    ) + : (props.conf.url + && () + ) + } +
  • + ); }; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/LastUpdateDate.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/LastUpdateDate.js new file mode 100644 index 0000000..2b2d75c --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/LastUpdateDate.js @@ -0,0 +1,62 @@ +import Inferno from 'inferno'; +import Component from 'inferno-component'; + +export default function getLastUpdateDate(theState) { + + return class LastUpdateDate extends Component { + + componentWillMount() { + + this.onStorageChangedHandler = (changes) => + changes.lastPacUpdateStamp.newValue && this.forceUpdate(); + + chrome.storage.onChanged.addListener( this.onStorageChangedHandler ); + + } + + componentWillUnmount() { + + chrome.storage.onChanged.removeListener( this.onStorageChangedHandler ); + + } + + getDate(antiCensorRu) { + + let dateForUser = 'никогда'; + if( antiCensorRu.lastPacUpdateStamp ) { + let diff = Date.now() - antiCensorRu.lastPacUpdateStamp; + let units = 'мс'; + const gauges = [ + [1000, 'с'], + [60, 'мин'], + [60, 'ч'], + [24, 'дн'], + [7, ' недель'], + [4, ' месяцев'], + ]; + for(const g of gauges) { + const diffy = Math.floor(diff / g[0]); + if (!diffy) + break; + diff = diffy; + units = g[1]; + } + dateForUser = diff + units + ' назад'; + } + return { + text: `${dateForUser} / ${antiCensorRu.pacUpdatePeriodInMinutes/60}ч`, + title: new Date(antiCensorRu.lastPacUpdateStamp).toLocaleString('ru-RU'), + }; + + } + + render(props) { + + const date = this.getDate(props.apis.antiCensorRu); + return (
    Обновлялись: { date.text }
    ); + + } + + }; + +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/NotControlledWarning.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/NotControlledWarning.js index ca3afb2..47b9e14 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/NotControlledWarning.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/NotControlledWarning.js @@ -1,11 +1,7 @@ // @flow -//import mComponent from 'microcomponent'; -//import html from 'bel'; import css from 'csjs-inject'; - import Inferno from 'inferno'; -import Component from 'inferno-component'; export default function getNotControlledWarning({ flags }) { @@ -34,22 +30,12 @@ export default function getNotControlledWarning({ flags }) { } `; - return class NotControlledWarning extends Component { + return function NotControlledWarning(props) { - constructor(props) { + return ( +
    + ); - super(props); - - } - - render(props) { - - return ( -
    - ); - - } - - }; + } } diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js index f96d1c1..4b004a9 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js @@ -3,9 +3,10 @@ import Component from 'inferno-component'; import createElement from 'inferno-create-element'; import css from 'csjs-inject'; +import getLastUpdateDate from './LastUpdateDate'; import getInfoLi from './InfoLi'; -export default function getPacChooser(...args) { +export default function getPacChooser(theState) { const scopedCss = css` /* OTHER VERSION */ @@ -45,57 +46,8 @@ export default function getPacChooser(...args) { `; - class LastUpdateDate extends Component { - - constructor(props) { - - super(props); - chrome.storage.onChanged.addListener( - (changes) => changes.lastPacUpdateStamp.newValue && this.forceUpdate() - ); - - } - - getDate(antiCensorRu) { - - let dateForUser = 'никогда'; - if( antiCensorRu.lastPacUpdateStamp ) { - let diff = Date.now() - antiCensorRu.lastPacUpdateStamp; - let units = 'мс'; - const gauges = [ - [1000, 'с'], - [60, 'мин'], - [60, 'ч'], - [24, 'дн'], - [7, ' недель'], - [4, ' месяцев'], - ]; - for(const g of gauges) { - const diffy = Math.floor(diff / g[0]); - if (!diffy) - break; - diff = diffy; - units = g[1]; - } - dateForUser = diff + units + ' назад'; - } - return { - text: `${dateForUser} / ${antiCensorRu.pacUpdatePeriodInMinutes/60}ч`, - title: new Date(antiCensorRu.lastPacUpdateStamp).toLocaleString('ru-RU'), - }; - - } - - render(props) { - - const date = this.getDate(props.apis.antiCensorRu); - return (
    Обновлялись: { date.text }
    ); - - } - - } - - const InfoLi = getInfoLi(...args); + const LastUpdateDate = getLastUpdateDate(theState); + const InfoLi = getInfoLi(theState); return class PacChooser extends Component { @@ -170,6 +122,7 @@ export default function getPacChooser(...args) { type="radio" name="pacProvider" checked={iddyToCheck === provConf.key} + disabled={props.areInputsDisabled} >   { evt.preventDefault(); updatePac(); }}>[обновить] ) @@ -181,6 +134,7 @@ export default function getPacChooser(...args) { name="pacProvider" conf={{key: 'none', label: 'Отключить'}} checked={iddyToCheck === 'none'} + disabled={props.areInputsDisabled} />
    diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPanel.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPanel.js index 6006bf7..838682c 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPanel.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPanel.js @@ -1,6 +1,3 @@ -//import mComponent from 'microcomponent'; -//import html from 'bel'; - import Inferno, { linkEvent } from 'inferno'; import Component from 'inferno-component'; import css from 'csjs-inject'; @@ -99,8 +96,8 @@ export default function getTabsPannel({ flags }) { { visibility: initial; } - .navLabels li:after { - content: '\\a0'; + .navLabels li { + margin: 0 0.125em; /* 1.5px */ } /* LABELS ends. */ diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/globalCss.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/globalCss.js index f264d55..0eb07cf 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/globalCss.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/globalCss.js @@ -1,4 +1,4 @@ -export default function append(document, props) { +export default function append(document, { flags }) { // innerText converts \n to
    , so: document.head.querySelector('style').innerHTML = ` @@ -12,7 +12,7 @@ export default function append(document, props) { --cr-icon-selected: #d7d7d7; --cr-popup-border: #bababa; --cr-grey-panel: #f2f2f2; - max-width: 24em; + ${ flags.ifInsideOptionsPage ? '' : 'max-width: 24em;' } } /* BASE ELEMENTS */ @@ -68,7 +68,7 @@ export default function append(document, props) { /* IF INSIDE OPTIONS */ ${ - props.flags.ifInsideOptionsPage + flags.ifInsideOptionsPage ? ` ul, ol { diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js index d10afd0..c916268 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js @@ -1,15 +1,10 @@ // @flow import Inferno from 'inferno'; -import Component from 'inferno-component'; import createElement from 'inferno-create-element'; - -import { createStore } from 'redux'; - -import css from 'csjs-inject'; import appendGlobalCss from './globalCss'; - import getApp from './components/App'; + /* #list-of-notifiers { margin-left: 0.4em; From 992b7f024ecce8319487660a290549b5ae5714ef Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Thu, 18 May 2017 13:24:14 +0500 Subject: [PATCH 10/36] Add notifications, make warning conditional, refactor --- .../extension-common/pages/options/.gitignore | 2 +- .../pages/options/src/components/App.js | 26 ++++----- .../pages/options/src/components/Footer.js | 2 +- .../options/src/components/Notifications.js | 54 +++++++++++++++++++ .../options/src/components/PacChooser.js | 4 +- .../pages/options/src/components/TabPanel.js | 40 +++++--------- .../pages/options/src/index.js | 10 ---- 7 files changed, 80 insertions(+), 58 deletions(-) create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Notifications.js diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/.gitignore b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/.gitignore index 2966787..b7b476e 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/.gitignore +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/.gitignore @@ -1,4 +1,4 @@ node_modules npm-debug.log -.swp +*.swp dist diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js index df7a178..e93a82a 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js @@ -3,8 +3,11 @@ import Component from 'inferno-component'; import createElement from 'inferno-create-element'; import getNotControlledWarning from './NotControlledWarning'; + import getTabPanel from './TabPanel'; import getPacChooser from './PacChooser'; +import getNotifications from './Notifications'; + import getFooter from './Footer'; export default function getApp(theState) { @@ -12,6 +15,7 @@ export default function getApp(theState) { const NotControlledWarning = getNotControlledWarning(theState); const TabPanel = getTabPanel(theState); const PacChooser = getPacChooser(theState); + const Notifications = getNotifications(theState); const Footer = getFooter(theState); return class App extends Component { @@ -21,7 +25,7 @@ export default function getApp(theState) { super(props); this.state = { status: 'Загрузка...', - areInputsDisabled: false, + ifInputsDisabled: false, }; } @@ -84,20 +88,8 @@ export default function getApp(theState) { switchInputs(val) { this.setState({ - areInputsDisabled: val === 'off' ? true : false, + ifInputsDisabled: val === 'off' ? true : false, }); - /* - const inputs = document.querySelectorAll('input'); - for ( let i = 0; i < inputs.length; i++ ) { - const input = inputs[i]; - if (val === 'off') { - input.dataset.previousDisabledValue = input.disabled; - input.disabled = true; - } else { - input.disabled = input.dataset.previousDisabledValue === 'true'; - } - } - */ } @@ -134,11 +126,11 @@ export default function getApp(theState) { setStatusTo: this.setStatusTo.bind(this), conduct: this.conduct.bind(this), }, - areInputsDisabled: this.state.areInputsDisabled, + ifInputsDisabled: this.state.ifInputsDisabled, }); return createElement('div', null, [ - createElement(NotControlledWarning, props), + ...( props.flags.ifNotControlled ? [createElement(NotControlledWarning, props)] : [] ), createElement(TabPanel, { tabs:[ { @@ -159,7 +151,7 @@ export default function getApp(theState) { }, { label: 'Уведомления', - content: "Notifications().render(this.props)", + content: createElement(Notifications, props), } ] }), diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Footer.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Footer.js index ef4c125..433b091 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Footer.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Footer.js @@ -26,7 +26,7 @@ export default function getFooter() {
    - window.close()} /> + window.close()} /> Проблемы? diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Notifications.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Notifications.js new file mode 100644 index 0000000..e1bea9c --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Notifications.js @@ -0,0 +1,54 @@ +import Inferno from 'inferno'; +import css from 'csjs-inject'; + +export default function getPacChooser(theState) { + + const scopedCss = css` + + .listOfNotifiers { + margin-left: 0.4em; + } + + `; + + return function Notifications(props) { + + return ( +
    +
    Я yведомления:
    +
      + { + Array.from(props.apis.errorHandlers.getEventsMap()).map(([ntfId, ntfName]) => { + + const iddy = `if-on-${ntfId}`; + const ifChecked = props.apis.errorHandlers.isOn(ntfId); + return ( +
    • + { + + props.apis.errorHandlers.switch( + ifChecked ? 'off' : 'on', // Reverse. + ntfId + ); + + }} + /> + {' '} + +
    • + ); + + }) + } +
    +
    + ); + + }; + +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js index 4b004a9..de63edf 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js @@ -122,7 +122,7 @@ export default function getPacChooser(theState) { type="radio" name="pacProvider" checked={iddyToCheck === provConf.key} - disabled={props.areInputsDisabled} + disabled={props.ifInputsDisabled} >   { evt.preventDefault(); updatePac(); }}>[обновить] ) @@ -134,7 +134,7 @@ export default function getPacChooser(theState) { name="pacProvider" conf={{key: 'none', label: 'Отключить'}} checked={iddyToCheck === 'none'} - disabled={props.areInputsDisabled} + disabled={props.ifInputsDisabled} />
    diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPanel.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPanel.js index 838682c..8c758bf 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPanel.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/TabPanel.js @@ -118,39 +118,19 @@ export default function getTabsPannel({ flags }) { }; } - componentDidMount() { - window.addEventListener('hashchange', () => { - - if (/^#tab(\d+)$/.test(window.location.hash)) { - const inputIndex = RegExp.$1; - if (inputIndex < this.props.tabs.length) { - this.setState({chosenTabIndex: inputIndex}); - } - } - }); - - } render(props) { - return (
    { - - if (!dom) { - return /* Unmounting. */; - } - const target = dom.querySelector(`.${scopedCss.mainNav} *:target`); - if (target) { - const tabIndex = parseInt(target.id.replace('tab', '')); - dom.querySelector(`#radioLabel${tabIndex}`).checked = true; - dom.querySelector(`#radioTab${tabIndex}`).checked = true; - } - - }}> + return ( +
  • diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js index de63edf..4ca2737 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js @@ -32,7 +32,8 @@ export default function getPacChooser(theState) { input:checked + div .updateButton { visibility: inherit; } - label[for="onlyOwnSites"] + .updateButton { + label[for="onlyOwnSites"] + .updateButton, + label[for="none"] + .updateButton { display: none; } #none:checked + div label[for="none"] { @@ -115,7 +116,7 @@ export default function getPacChooser(theState) { {props.flags.ifInsideOptionsPage && (
    PAC-скрипт:
    )}
      { - props.apis.antiCensorRu.getSortedEntriesForProviders().map((provConf) => + [...props.apis.antiCensorRu.getSortedEntriesForProviders(), {key: 'none', label: 'Отключить'}].map((provConf) => ( { evt.preventDefault(); updatePac(); }}>[обновить] ) ) - } - + />*/ + }
    { createElement(LastUpdateDate, props) } diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js index 12759ef..444b9b4 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js @@ -34,6 +34,7 @@ chrome.runtime.getBackgroundPage( (backgroundPage) => ); theState.flags.ifInsideOptionsPage = !currentTab || currentTab.url.startsWith('chrome://extensions/?options='); + theState.currentTab = currentTab; // STATE DEFINED, COMPOSE. From e7b85f7484ae2ad35f37fad04a4243ce8d93c0f4 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Fri, 19 May 2017 22:51:08 -0700 Subject: [PATCH 13/36] Change tick color --- .../pages/options/src/components/ExcEditor.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ExcEditor.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ExcEditor.js index 99ede5f..33c16a5 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ExcEditor.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ExcEditor.js @@ -331,8 +331,13 @@ export default function getExcEditor(theState) { class="icon" style="position: relative; top: 0.15em;"> авто -
  • {' '}
  • -
  • {' '}
  • +
  • + + {' '} +
  • +
  • + + {' '}
  • ); From b77f0c85e90fdca7b7e3e533e0ab10a42b75a4e1 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Fri, 19 May 2017 22:59:07 -0700 Subject: [PATCH 14/36] Add .emoji to some icons --- .../pages/options/src/components/ExcEditor.js | 4 ++-- .../pages/options/src/components/Notifications.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ExcEditor.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ExcEditor.js index 33c16a5..e73733e 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ExcEditor.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ExcEditor.js @@ -333,11 +333,11 @@ export default function getExcEditor(theState) {
  • - {' '} + {' '}
  • - {' '}
  • + {' '}
    ); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Notifications.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Notifications.js index e1bea9c..5b70bd6 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Notifications.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Notifications.js @@ -15,7 +15,7 @@ export default function getPacChooser(theState) { return (
    -
    Я yведомления:
    +
    Я yведомления:
      { Array.from(props.apis.errorHandlers.getEventsMap()).map(([ntfId, ntfName]) => { From df09b7e0ec483d96b7d477547938f23a82defe59 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Sat, 20 May 2017 01:08:19 -0700 Subject: [PATCH 15/36] Preclude kitchen configs from mutation --- .../src/extension-common/35-pac-kitchen-api.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/35-pac-kitchen-api.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/35-pac-kitchen-api.js index c3bf1c5..de95500 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/35-pac-kitchen-api.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/35-pac-kitchen-api.js @@ -12,8 +12,7 @@ const ifIncontinence = 'if-incontinence'; const modsKey = 'mods'; - // Don't keep objects in defaults or at least freeze them! - const configs = { + const getDefaultConfigs () => {// Configs user may mutate them and we don't care! ifProxyHttpsUrlsOnly: { dflt: false, @@ -93,6 +92,7 @@ const getDefaults = function getDefaults() { + const configs = getDefaultConfigs(); return Object.keys(configs).reduce((acc, key) => { acc[key] = configs[key].dflt; @@ -123,6 +123,7 @@ const getOrderedConfigsForUser = function getOrderedConfigs(category) { const pacMods = getCurrentConfigs(); + const configs = getDefaultConfigs(); return Object.keys(configs) .sort((keyA, keyB) => configs[keyA].order - configs[keyB].order) .reduce((arr, key) => { @@ -144,6 +145,7 @@ const createPacModifiers = function createPacModifiers(mods = {}) { mods = mods || {}; // null? + const configs = getDefaultConfigs(); const ifNoMods = Object.keys(configs) .every((dProp) => { From 7076724ac051c6e7a5210e3c77c9e80a663208a6 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Sat, 20 May 2017 01:08:52 -0700 Subject: [PATCH 16/36] Add fully functional mods --- .../pages/options/src/components/App.js | 4 +- .../pages/options/src/components/ApplyMods.js | 36 +++++++++ .../pages/options/src/components/ExcEditor.js | 1 - .../pages/options/src/components/InfoLi.js | 2 +- .../pages/options/src/components/Mods.js | 79 +++++++++++++++++++ .../pages/options/src/index.js | 11 +-- 6 files changed, 125 insertions(+), 8 deletions(-) create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ApplyMods.js create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Mods.js diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js index 8c4463d..84ba3ae 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js @@ -8,6 +8,7 @@ import getTabPanel from './TabPanel'; import getPacChooser from './PacChooser'; import getNotifications from './Notifications'; import getExceptions from './Exceptions'; +import getMods from './Mods'; import getFooter from './Footer'; @@ -19,6 +20,7 @@ export default function getApp(theState) { const PacChooser = getPacChooser(theState); const Notifications = getNotifications(theState); const Exceptions = getExceptions(theState); + const Mods = getMods(theState); const Footer = getFooter(theState); @@ -152,7 +154,7 @@ export default function getApp(theState) { }, { label: 'Модификаторы', - content: "Modificators().render(this.props)", + content: createElement(Mods, props), }, { label: 'Уведомления', diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ApplyMods.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ApplyMods.js new file mode 100644 index 0000000..27189f2 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ApplyMods.js @@ -0,0 +1,36 @@ +import Inferno, { linkEvent } from 'inferno'; + +export default function getApplyMods(theState) { + + const resetMods = function resetMods(props) { + + const ifSure = props.bgWindow.confirm('Сбросиь все модификаторы и ИСКЛЮЧЕНИЯ?'); + if (!ifSure) { + return false; + } + props.funs.conduct( + 'Сбрасываем...', + (cb) => { + + props.apis.pacKitchen.resetToDefaults(); + props.bgWindow.utils.fireRequest('ip-to-host-reset-to-defaults', cb); + + }, + 'Откройте окно заново для отображения эффекта.', + () => window.close() + ); + + } + + return function ApplyMods(props) { + + return ( +
      + + К изначальным! +
      + ); + + }; + +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ExcEditor.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ExcEditor.js index e73733e..47228c2 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ExcEditor.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ExcEditor.js @@ -243,7 +243,6 @@ export default function getExcEditor(theState) { if (ifBackspacedOneChar) { removeEditedHost(); } - // } return true; } diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js index d959876..ab59796 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js @@ -115,7 +115,7 @@ export default function getInfoRow() { disabled={props.disabled} />
      - + {props.children}
      {props.conf.desc diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Mods.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Mods.js new file mode 100644 index 0000000..cd8a15b --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Mods.js @@ -0,0 +1,79 @@ +import Inferno from 'inferno'; +import Component from 'inferno-component'; +import createElement from 'inferno-create-element'; +import css from 'csjs-inject'; + +import getInfoLi from './InfoLi'; +import getApplyMods from './ApplyMods'; + +export default function getMods(theState) { + + const InfoLi = getInfoLi(theState); + const ApplyMods = getApplyMods(theState); + + return class Mods extends Component { + + getOrderedConfigs() { + + return this.props.apis.pacKitchen.getOrderedConfigs('general'); + + } + + constructor(props) { + + super(props); + this.state = { + orderedConfigs: this.getOrderedConfigs(), + ifChangesStashed: false, + }; + + } + + render(props) { + + return ( +
      +
        { this.setState({ifChangesStashed: true}); }}> + { + this.state.orderedConfigs.map((conf, index) => + { + + const newConfigs = this.state.orderedConfigs.map((c) => Object.assign({}, c)); // Shallow. + newConfigs[index].value = !newConfigs[index].value; + this.setState({orderedConfigs: newConfigs}); + + }}/> + ) + } +
      + {createElement(ApplyMods, Object.assign({}, props, + { + disabled: !this.state.ifChangesStashed, + onClick: () => { + + const oldMods = this.props.apis.pacKitchen.getPacMods(); + const newMods = this.state.orderedConfigs.reduce((acc, conf) => { + + acc[conf.key] = conf.value; + return acc; + + }, oldMods); + + this.props.funs.conduct( + 'Применяем настройки...', + (cb) => this.props.apis.pacKitchen.keepCookedNowAsync(newMods, cb), + 'Настройки применены.', + () => this.setState({ifChangesStashed: false}) + ); + + } + } + ))} +
      + ); + + } + + }; + +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js index 444b9b4..3e439d0 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/index.js @@ -5,22 +5,23 @@ import createElement from 'inferno-create-element'; import appendGlobalCss from './globalCss'; import getApp from './components/App'; -chrome.runtime.getBackgroundPage( (backgroundPage) => - backgroundPage.apis.errorHandlers.installListenersOn( +chrome.runtime.getBackgroundPage( (bgWindow) => + bgWindow.apis.errorHandlers.installListenersOn( window, 'PUP', async() => { let theState; { - const apis = backgroundPage.apis; + const apis = bgWindow.apis; theState = { - utils: backgroundPage.utils, - apis: backgroundPage.apis, + utils: bgWindow.utils, + apis: bgWindow.apis, flags: { /* Shortcuts to boolean values. */ ifNotControlled: !apis.errorHandlers.ifControllable, ifMini: apis.version.ifMini, }, + bgWindow, }; } From 84ddcb23481e5fa9dc49023f89d8d2fa6b96172a Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Sat, 20 May 2017 04:18:33 -0700 Subject: [PATCH 17/36] Fix immutable configs --- .../src/extension-common/35-pac-kitchen-api.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/35-pac-kitchen-api.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/35-pac-kitchen-api.js index de95500..bcc1a3d 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/35-pac-kitchen-api.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/35-pac-kitchen-api.js @@ -12,7 +12,7 @@ const ifIncontinence = 'if-incontinence'; const modsKey = 'mods'; - const getDefaultConfigs () => {// Configs user may mutate them and we don't care! + const getDefaultConfigs = () => ({// Configs user may mutate them and we don't care! ifProxyHttpsUrlsOnly: { dflt: false, @@ -88,7 +88,7 @@ order: 9, }, - }; + }); const getDefaults = function getDefaults() { From 7512bb697f7bfa1850f73d3037b163daadf7c858 Mon Sep 17 00:00:00 2001 From: "Ilya Ig. Petrov" Date: Sat, 20 May 2017 04:20:35 -0700 Subject: [PATCH 18/36] Finish the view part of popup (almost) --- .../pages/options/src/components/App.js | 31 ++++++++++++----- .../pages/options/src/components/InfoLi.js | 19 ++++++++--- .../src/components/{Mods.js => ModList.js} | 15 +++----- .../options/src/components/PacChooser.js | 13 ++----- .../options/src/components/ProxyEditor.js | 34 +++++++++++++++++++ .../pages/options/src/components/TabPanel.js | 4 +-- .../pages/options/src/index.js | 2 +- 7 files changed, 81 insertions(+), 37 deletions(-) rename extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/{Mods.js => ModList.js} (86%) create mode 100644 extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ProxyEditor.js diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js index 84ba3ae..8adf487 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/App.js @@ -8,7 +8,8 @@ import getTabPanel from './TabPanel'; import getPacChooser from './PacChooser'; import getNotifications from './Notifications'; import getExceptions from './Exceptions'; -import getMods from './Mods'; +import getModList from './ModList'; +import getProxyEditor from './ProxyEditor'; import getFooter from './Footer'; @@ -20,7 +21,8 @@ export default function getApp(theState) { const PacChooser = getPacChooser(theState); const Notifications = getNotifications(theState); const Exceptions = getExceptions(theState); - const Mods = getMods(theState); + const ModList = getModList(theState); + const ProxyEditor = getProxyEditor(theState); const Footer = getFooter(theState); @@ -138,8 +140,9 @@ export default function getApp(theState) { return createElement('div', null, [ ...( props.flags.ifNotControlled ? [createElement(NotControlledWarning, props)] : [] ), + // WARNIGN ENDS. createElement(TabPanel, { - tabs:[ + tabs: [ { label: 'PAC-скрипт', content: createElement(PacChooser, props), @@ -150,18 +153,30 @@ export default function getApp(theState) { }, { label: 'Свои прокси', - content: "OwnProxies().render(this.props)", + content: createElement( + ModList, + Object.assign({}, props, { + category: 'ownProxies', + modToChildren: { + customProxyStringRaw: createElement(ProxyEditor), + }, + }) + ), }, { label: 'Модификаторы', - content: createElement(Mods, props), + content: createElement( + ModList, + Object.assign({}, props, {category: 'general'}) + ), }, { label: 'Уведомления', content: createElement(Notifications, props), - } - ] + }, + ], }), + // FOOTER. createElement(Footer, Object.assign({ status: this.state.status }, props)), ]); @@ -169,4 +184,4 @@ export default function getApp(theState) { } -};; +}; diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js index ab59796..17bc2db 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/InfoLi.js @@ -1,7 +1,7 @@ import Inferno from 'inferno'; import css from 'csjs-inject'; -export default function getInfoRow() { +export default function getInfoLi() { const scopedCss = css` /* CONTROL RAW = BUTTON + LINK */ @@ -23,6 +23,7 @@ export default function getInfoRow() { .infoRow { position: relative; + flex-wrap: wrap; } .rightBottomIcon { margin-left: 0.1em; @@ -80,6 +81,16 @@ export default function getInfoRow() { left: 75%; width: calc(25% + 0.6em); } + + /* CHILDREN */ + + input:not(:checked) ~ .children { + display: none; + } + .children { + flex-grow: 9999; + } + `; const camelToDash = (name) => name.replace(/([A-Z])/g, (_, p1) => '-' + p1.toLowerCase()); @@ -95,12 +106,11 @@ export default function getInfoRow() { }; - return function InfoRow(props) { + return function InfoLi(props) { props = Object.assign({}, { idPrefix: '', ifDashify: false, - htmlAfterLabel: '', }, props); const iddy = props.idPrefix + ( props.ifDashify ? camelToDash(props.conf.key) : props.conf.key ); @@ -116,7 +126,7 @@ export default function getInfoRow() { />
      - {props.children} +  {props.nodeAfterLabel}
      {props.conf.desc ? ( @@ -129,6 +139,7 @@ export default function getInfoRow() { : ( ) // Affects vertical align of flexbox items. ) } + {props.children && (
      {props.children}
      )} ); diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Mods.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ModList.js similarity index 86% rename from extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Mods.js rename to extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ModList.js index cd8a15b..8904a66 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/Mods.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ModList.js @@ -1,29 +1,22 @@ import Inferno from 'inferno'; import Component from 'inferno-component'; import createElement from 'inferno-create-element'; -import css from 'csjs-inject'; import getInfoLi from './InfoLi'; import getApplyMods from './ApplyMods'; -export default function getMods(theState) { +export default function getModList(theState) { const InfoLi = getInfoLi(theState); const ApplyMods = getApplyMods(theState); - return class Mods extends Component { - - getOrderedConfigs() { - - return this.props.apis.pacKitchen.getOrderedConfigs('general'); - - } + return class ModList extends Component { constructor(props) { super(props); this.state = { - orderedConfigs: this.getOrderedConfigs(), + orderedConfigs: props.apis.pacKitchen.getOrderedConfigs(props.category), ifChangesStashed: false, }; @@ -42,7 +35,7 @@ export default function getMods(theState) { newConfigs[index].value = !newConfigs[index].value; this.setState({orderedConfigs: newConfigs}); - }}/> + }}>{props.modToChildren && props.modToChildren[conf.key]} ) }
    diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js index 4ca2737..1dcc388 100644 --- a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/PacChooser.js @@ -124,18 +124,9 @@ export default function getPacChooser(theState) { name="pacProvider" checked={iddyToCheck === provConf.key} disabled={props.ifInputsDisabled} - > -   { evt.preventDefault(); updatePac(); }}>[обновить] - ) + nodeAfterLabel={ { evt.preventDefault(); updatePac(); }}>[обновить]} + />) ) - /**/ }
    diff --git a/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ProxyEditor.js b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ProxyEditor.js new file mode 100644 index 0000000..55517e9 --- /dev/null +++ b/extensions/chromium/runet-censorship-bypass/src/extension-common/pages/options/src/components/ProxyEditor.js @@ -0,0 +1,34 @@ +import Inferno from 'inferno'; +import css from 'csjs-inject'; + +export default function getProxyEditor(theState) { + + const scopedCss = css` + + .texty { + width: 100%; + max-width: 38.5em; /* ~418px, layout breaks if more */ + height: 7em; + margin-top: 0.3em; + font-size: 0.9em; + } + + `; + + const uiRaw = 'ui-proxy-string-raw'; + + return function ProxyEditor(props) { + + return (