From d50a3d4a1fda2f1cf86c8ba047bca7feb9e3a8e3 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Wed, 23 May 2018 12:17:23 -0700 Subject: [PATCH 001/368] added some links for streaming --- docs/notes/streams.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 docs/notes/streams.md diff --git a/docs/notes/streams.md b/docs/notes/streams.md new file mode 100644 index 00000000..ec0c0b89 --- /dev/null +++ b/docs/notes/streams.md @@ -0,0 +1,34 @@ +# Web Streams + +- API + - https://developer.mozilla.org/en-US/docs/Web/API/Streams_API +- Reference Implementation + - https://github.com/whatwg/streams/tree/master/reference-implementation +- Examples + - https://github.com/mdn/dom-examples/tree/master/streams +- Polyfill + - https://github.com/MattiasBuelens/web-streams-polyfill + +# Encrypted Content Encoding + +- Spec + - https://trac.tools.ietf.org/html/rfc8188 +- node.js implementation + - https://github.com/web-push-libs/encrypted-content-encoding/tree/master/nodejs + +# Other APIs + +- Blobs + - https://developer.mozilla.org/en-US/docs/Web/API/Blob +- ArrayBuffers, etc + - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer + - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array +- FileReader + - https://developer.mozilla.org/en-US/docs/Web/API/FileReader + +# Other + +- node.js Buffer browser library + - https://github.com/feross/buffer +- StreamSaver + - https://github.com/jimmywarting/StreamSaver.js From b269712c3282c0b9901fb548b853d64740e395f3 Mon Sep 17 00:00:00 2001 From: Donovan Preston Date: Wed, 23 May 2018 21:37:31 -0400 Subject: [PATCH 002/368] Initial working proof-of-concept for android. --- android/.gitignore | 4 + android/SendAndroid.iml | 19 ++ android/android.iml | 19 ++ android/app/.gitignore | 1 + android/app/app.iml | 180 ++++++++++++++++++ android/app/build.gradle | 34 ++++ android/app/proguard-rules.pro | 21 ++ .../sendandroid/ExampleInstrumentedTest.kt | 24 +++ android/app/src/main/AndroidManifest.xml | 36 ++++ .../send/sendandroid/IntentActivity.kt | 28 +++ .../mozilla/send/sendandroid/MainActivity.kt | 83 ++++++++ .../drawable-v24/ic_launcher_foreground.xml | 34 ++++ .../res/drawable/ic_launcher_background.xml | 170 +++++++++++++++++ .../app/src/main/res/layout/activity_main.xml | 13 ++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3056 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 5024 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2096 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2858 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4569 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 7098 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6464 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10676 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9250 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15523 bytes android/app/src/main/res/values/colors.xml | 6 + android/app/src/main/res/values/strings.xml | 3 + android/app/src/main/res/values/styles.xml | 11 ++ .../send/sendandroid/ExampleUnitTest.kt | 17 ++ android/build.gradle | 28 +++ android/gradle.properties | 13 ++ android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54708 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + android/gradlew | 172 +++++++++++++++++ android/gradlew.bat | 84 ++++++++ android/settings.gradle | 1 + 37 files changed, 1017 insertions(+) create mode 100644 android/.gitignore create mode 100644 android/SendAndroid.iml create mode 100644 android/android.iml create mode 100644 android/app/.gitignore create mode 100644 android/app/app.iml create mode 100644 android/app/build.gradle create mode 100644 android/app/proguard-rules.pro create mode 100644 android/app/src/androidTest/java/com/mozilla/send/sendandroid/ExampleInstrumentedTest.kt create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/java/com/mozilla/send/sendandroid/IntentActivity.kt create mode 100644 android/app/src/main/java/com/mozilla/send/sendandroid/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 android/app/src/main/res/layout/activity_main.xml create mode 100644 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 android/app/src/main/res/values/colors.xml create mode 100644 android/app/src/main/res/values/strings.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/test/java/com/mozilla/send/sendandroid/ExampleUnitTest.kt create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.jar create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100755 android/gradlew create mode 100644 android/gradlew.bat create mode 100644 android/settings.gradle diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 00000000..caa8065e --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,4 @@ +local.properties +.gradle +build + diff --git a/android/SendAndroid.iml b/android/SendAndroid.iml new file mode 100644 index 00000000..3a01e9b2 --- /dev/null +++ b/android/SendAndroid.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/android.iml b/android/android.iml new file mode 100644 index 00000000..686bd2aa --- /dev/null +++ b/android/android.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/app/.gitignore b/android/app/.gitignore new file mode 100644 index 00000000..796b96d1 --- /dev/null +++ b/android/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/android/app/app.iml b/android/app/app.iml new file mode 100644 index 00000000..cbdbe941 --- /dev/null +++ b/android/app/app.iml @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 00000000..b654a1b5 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,34 @@ +apply plugin: 'com.android.application' + +apply plugin: 'kotlin-android' + +apply plugin: 'kotlin-android-extensions' + +android { + compileSdkVersion 27 + defaultConfig { + applicationId "com.mozilla.send.sendandroid" + minSdkVersion 24 + targetSdkVersion 27 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" + implementation 'com.android.support:appcompat-v7:27.1.1' + implementation 'com.android.support.constraint:constraint-layout:1.1.0' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + implementation 'com.github.delight-im:Android-AdvancedWebView:v3.0.0' +} diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 00000000..f1b42451 --- /dev/null +++ b/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/android/app/src/androidTest/java/com/mozilla/send/sendandroid/ExampleInstrumentedTest.kt b/android/app/src/androidTest/java/com/mozilla/send/sendandroid/ExampleInstrumentedTest.kt new file mode 100644 index 00000000..c4461978 --- /dev/null +++ b/android/app/src/androidTest/java/com/mozilla/send/sendandroid/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.mozilla.send.sendandroid + +import android.support.test.InstrumentationRegistry +import android.support.test.runner.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getTargetContext() + assertEquals("com.mozilla.send.sendandroid", appContext.packageName) + } +} diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..838b119d --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/java/com/mozilla/send/sendandroid/IntentActivity.kt b/android/app/src/main/java/com/mozilla/send/sendandroid/IntentActivity.kt new file mode 100644 index 00000000..f518da3b --- /dev/null +++ b/android/app/src/main/java/com/mozilla/send/sendandroid/IntentActivity.kt @@ -0,0 +1,28 @@ +package com.mozilla.send.sendandroid + + +import android.support.v7.app.AppCompatActivity +import android.os.Bundle +import android.content.Intent +import android.util.Log +import android.net.Uri + +class IntentActivity : AppCompatActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + val intent = getIntent() + val action = intent.getAction() + val type = intent.getType() + if (Intent.ACTION_SEND.equals(action) && type != null) { + if ("text/plain".equals(type)) { + val sharedText = intent.getStringExtra(Intent.EXTRA_TEXT) + Log.w("INTENT", "text/plain " + sharedText); + } else if (type.startsWith("image/")) { + val imageUri = intent.getParcelableExtra(Intent.EXTRA_STREAM) as Uri + + Log.w("INTENT", "image/ " + imageUri); + } + } + } +} diff --git a/android/app/src/main/java/com/mozilla/send/sendandroid/MainActivity.kt b/android/app/src/main/java/com/mozilla/send/sendandroid/MainActivity.kt new file mode 100644 index 00000000..e362501e --- /dev/null +++ b/android/app/src/main/java/com/mozilla/send/sendandroid/MainActivity.kt @@ -0,0 +1,83 @@ +package com.mozilla.send.sendandroid + + +import android.support.v7.app.AppCompatActivity +import android.os.Bundle +import im.delight.android.webview.AdvancedWebView +import android.graphics.Bitmap +import android.content.Intent +import android.annotation.SuppressLint +import android.webkit.WebView +import android.util.Log + +class MainActivity : AppCompatActivity(), AdvancedWebView.Listener { + private var mWebView: AdvancedWebView? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) + + mWebView = findViewById(R.id.webview) as AdvancedWebView + mWebView!!.setListener(this, this) + + val webSettings = mWebView!!.getSettings() + webSettings.setJavaScriptEnabled(true) + + mWebView!!.loadUrl("https://send.firefox.com") + } + + @SuppressLint("NewApi") + override fun onResume() { + super.onResume() + mWebView!!.onResume() + // ... + } + + @SuppressLint("NewApi") + override fun onPause() { + mWebView!!.onPause() + // ... + super.onPause() + } + + override fun onDestroy() { + mWebView!!.onDestroy() + // ... + super.onDestroy() + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent) { + super.onActivityResult(requestCode, resultCode, intent) + mWebView!!.onActivityResult(requestCode, resultCode, intent) + // ... + } + + override fun onBackPressed() { + if (!mWebView!!.onBackPressed()) { + return + } + // ... + super.onBackPressed() + } + + override fun onPageStarted(url: String, favicon: Bitmap?) { + Log.w("MAIN", "onPageStarted"); + } + + override fun onPageFinished(url: String) { + Log.w("MAIN", "onPageFinished") + } + + override fun onPageError(errorCode: Int, description: String, failingUrl: String) { + Log.w("MAIN", "onPageError") + } + + override fun onDownloadRequested(url: String, suggestedFilename: String, mimeType: String, contentLength: Long, contentDisposition: String, userAgent: String) { + Log.w("MAIN", "onDownloadRequested") + } + + override fun onExternalPageRequest(url: String) { + Log.w("MAIN", "onExternalPageRequest") + } + +} diff --git a/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 00000000..c7bd21db --- /dev/null +++ b/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/android/app/src/main/res/drawable/ic_launcher_background.xml b/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 00000000..d5fccc53 --- /dev/null +++ b/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/res/layout/activity_main.xml b/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 00000000..28f9b732 --- /dev/null +++ b/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,13 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 00000000..eca70cfe --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 00000000..eca70cfe --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a2f5908281d070150700378b64a84c7db1f97aa1 GIT binary patch literal 3056 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 axPAxe%7rDusX+w*00006jj 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⁣ zwiG+x#%j}{0gU~J8;<|!B1@-XaB@{KORFwrYg_8rOv({b0EO#DbeQRm;B6_9=mXGf z-x|VL{zd`)#@yN}HkCSJbjbNlE|zL3Wm9Q8HY`sV)}3%pgN>cL^67{Z;PPL(*wT8N zUjXU{@|*hvm}({wsAC=x0^ok0%UAz0;sogW{B!nDqk|JJ5x~4NfTDgP49^zeu`csl?5mY@JdQdISc zFs!E{^grmkLnUk9 zny~m)1vws@5BFI<-0Tuo2JWX(0v`W|t(wg;s--L47WTvTMz-8l#TL^=OJNRS2?_Qj z3AKT+gvbyBi#H*-tJ%tWD|>EV3wy|8qxfzS!5RW;Jpl5*zo&^UBU=fG#2}UvRyNkK zA06Dy9;K1ca@r2T>yThYgI!ont$(G{6q#2QT+00r_x0(b)gsE`lBB?2gr55gq^D3Fi&p%E(p9>U%bv zkg1Jco(RbyTX7FDHOnl7-O@ zI$AaIl?9NJKPm(WiBP`1-#CB1QzU>&hKm)fpa5DKE{2$X0hGz-0uZ?cyTk(YC!Y&| zL=1VrNERSA5NA2jq7FACfX4JfPyj5XXl1yv0>~s;eF7L2$>&oMqeTFT2m$y7FlkON z_yurD1yIOvA;5C6016pyxBznGUt0kJ&k5r#;&>Jow`r)sp9R~PmK~lz$3xH%LT*1U zJdOyABZ3!FvNoR*vN$5ykHS8f`jA4zV+|L}i1C4`B2c{R0;UdYxaU|H)2avz@ z=mEYc|2S<+(B2Tj+FkX+2D+yFI!k9lWMA61DJ{)e;lum$(;O87?vGJJe!KtK04+N_ zI*P~t@dUb>9Xh{dbyl{-ZQ(UMgz7$|QfL5XSPkskt^NgctYC#;4WcZB1@%@wy@2t3 z2z0DI7&%b$*Aw~abe?GxE`ez@+6hOh-6*8fHRV{1os$EL@}uUZeG4h1&Be`98q*7j z=3-v+lhIjfWVo12!<>%V^a6lTgW3+_#W6n|p*~==zOH7z$0{LSZk(Tpd7EaD04hnA zL;#fxS0aD{`5^&D`}>0Uq?byDD-l2=!wm_bLcUl4gc(% za1p|itVANvFF>hghAS07Im1;IK;|b*W)}VDyI;BIp2=K*yu2a)j?B|f<44NI$NbmJ z#dE0>jI$fMr&@>4kN8MLFb4&2O9fEKaQg%(QO$4_1rVQywG^CmBLh#}_7gKW3vd?| z2?1^&KWq8}8I^_S0|)MowU_pw$q@nl@Nkn$z>BQq_KA^9yaR`(R3u{{Ig;cwt z@AJ^{ODQCm^neroM9nKNUAXi9RCK`OsP_LuR0PUR(YZCCX5dNF6VzcoK&=b^r`W?ltt|*F zpkoae%ZT{C1h~EcFui~b7fF`vb<<~j_VquuUA$}QqIKYELPp#;{u?q8Dz}WAG-(3; zjrm$i%7UbyZMM(Y{>!uJ#vNB?R~B{6Htp=>e*<{fQQ5W7V(1coCWlOON!MzZxhum| ztZBQpGR z;~#ur^&PockKdV{Q6R>o`Pl{0x!DEbpZ7y9Y;*ZvE!*gU`V1W3znva{f=?WO5I&>B z&hw6}tjECtaghm5z|C#%M;Yf_*pI^};h}Vl=^r9EN=tVDj86D;C$jIJ?K7VP+00000NkvXXu0mjf D5i!M* literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..459ca609d3ae0d3943ab44cdc27feef9256dc6d7 GIT binary patch literal 7098 zcmV;r8%5-aP)U(QdAI7f)tS=AhH53iU?Q%B}x&gA$2B`o|*LCD1jhW zSQpS0{*?u3iXtkY?&2<)$@#zc%$?qDlF1T~d7k&lWaiv^&wbx>zVm(GIrof<%iY)A zm%|rhEg~Z$Te<*wd9Cb1SB{RkOI$-=MBtc%k*xtvYC~Uito}R@3fRUqJvco z|Bt2r9pSOcJocAEd)UN^Tz-82GUZlqsU;wb|2Q_1!4Rms&HO1Xyquft~#6lJoR z`$|}VSy@{k6U652FJ~bnD9(X%>CS6Wp6U>sn;f}te}%WL`rg)qE4Q=4OOhk^@ykw( ziKr^LHnAd4M?#&SQhw8zaC05q#Mc66K^mxY!dZ=W+#Bq1B}cQ6Y8FWd(n>#%{8Di_8$CHibtvP z-x#-g;~Q?y0vJA*8TW>ZxF?fAy1DuFy7%O1ylLF(t=ah7LjZ$=p!;8(ZLjXAhwEkCR{wF`L=hwm>|vLK2=gR&KM1ZEG9R~53yNCZdabQoQ%VsolX zS#WlesPcpJ)7XLo6>Ly$im38oxyiizP&&>***e@KqUk3q3y+LQN^-v?ZmO>9O{Oq@ z{{He$*Z=Kf_FPR>El3iB*FULYFMnLa#Fl^l&|bFg$Omlh{xVVJ7uHm=4WE6)NflH6 z=>z4w{GV&8#MNnEY3*B7pXU!$9v-tZvdjO}9O=9r{3Wxq2QB}(n%%YI$)pS~NEd}U z)n#nv-V)K}kz9M0$hogDLsa<(OS0Hf5^WUKO-%WbR1W1ID$NpAegxHH;em?U$Eyn1 zU{&J2@WqSUn0tav=jR&&taR9XbV+Izb*PwFn|?cv0mksBdOWeGxNb~oR;`~>#w3bp zrOrEQ+BiW_*f&GARyW|nE}~oh0R>>AOH^>NHNKe%%sXLgWRu1Sy3yW0Q#L{8Y6=3d zKd=By=Nb8?#W6|LrpZm>8Ro)`@cLmU;D`d64nKT~6Z!aLOS{m`@oYwD`9yily@}%yr0A>P!6O4G|ImNbBzI`LJ0@=TfLt^f`M07vw_PvXvN{nx%4 zD8vS>8*2N}`lD>M{`v?2!nYnf%+`GRK3`_i+yq#1a1Yx~_1o~-$2@{=r~q11r0oR* zqBhFFVZFx!U0!2CcItqLs)C;|hZ|9zt3k^(2g32!KB-|(RhKbq-vh|uT>jT@tX8dN zH`TT5iytrZT#&8u=9qt=oV`NjC)2gWl%KJ;n63WwAe%-)iz&bK{k`lTSAP`hr)H$Q`Yq8-A4PBBuP*-G#hSKrnmduy6}G zrc+mcVrrxM0WZ__Y#*1$mVa2y=2I`TQ%3Vhk&=y!-?<4~iq8`XxeRG!q?@l&cG8;X zQ(qH=@6{T$$qk~l?Z0@I4HGeTG?fWL67KN#-&&CWpW0fUm}{sBGUm)Xe#=*#W{h_i zohQ=S{=n3jDc1b{h6oTy=gI!(N%ni~O$!nBUig}9u1b^uI8SJ9GS7L#s!j;Xy*CO>N(o6z){ND5WTew%1lr? znp&*SAdJb5{L}y7q#NHbY;N_1vn!a^3TGRzCKjw?i_%$0d2%AR73CwHf z`h4QFmE-7G=psYnw)B!_Cw^{=!UNZeR{(s47|V$`3;-*gneX=;O+eN@+Efd_Zt=@H3T@v&o^%H z7QgDF8g>X~$4t9pv35G{a_8Io>#>uGRHV{2PSk#Ea~^V8!n@9C)ZH#87~ z#{~PUaRR~4K*m4*PI16)rvzdaP|7sE8SyMQYI6!t(%JNebR%?lc$={$s?VBI0Qk!A zvrE4|#asTZA|5tB{>!7BcxOezR?QIo4U_LU?&9Im-liGSc|TrJ>;1=;W?gG)0pQaw z|6o7&I&PH!*Z=c7pNPkp)1(4W`9Z01*QKv44FkvF^2Kdz3gDNpV=A6R;Q}~V-_sZY zB9DB)F8%iFEjK?Gf4$Cwu_hA$98&pkrJM!7{l+}osR_aU2PEx!1CRCKsS`0v$LlKq z{Pg#ZeoBMv@6BcmK$-*|S9nv50or*2&EV`L7PfW$2J7R1!9Q(1SSe42eSWZ5sYU?g z2v{_QB^^jfh$)L?+|M`u-E7D=Hb?7@9O89!bRUSI7uD?Mxh63j5!4e(v)Kc&TUEqy z8;f`#(hwrIeW);FA0CK%YHz6;(WfJz^<&W#y0N3O2&Qh_yxHu?*8z1y9Ua}rECL!5 z7L1AEXx83h^}+)cY*Ko{`^0g3GtTuMP>b$kq;Aqo+2d&+48mc#DP;Sv z*UL^nR*K7J968xR0_eTaZ`N`u_c#9bFUjTj-}0+_57(gtEJT|7PA12W=2Z>#_a z&Wg@_b=$d~wonN3h~?)gS`qxx<4J&`dI*rH9!mTSiQj(0rF-{YoNJRnOqd5IbP7p} ztDaPu$A;#osxf=z2zVe4>tpa(knS_Mp67nKcE<>Cj$G2orP(Z$Oc4;4DPwbXYZsS^ z;b>59s(LgYmx|tkRD?U{+9VZ$T}{S}L6>lQNR^a|&5joAFXtOrI07Do!vk(e$mu@Y zNdN!djB`Hq1*T8mrC@S)MLwZ`&8aM8YYtVj7i)IY{g&D1sJaY`3e=1DSFnjO+jEHH zj+|@r$$4RtpuJ!8=C`n5X;5BjU2slP9VV&m0gr+{O(I}9pYF32AMU?n$k$=x;X^E# zOb-x}p1_`@IOXAj3>HFxnmvBV9M^^9CfD7UlfuH*y^aOD?X6D82p_r*c>DF)m=9>o zgv_SDeSF6WkoVOI<_mX};FlW9rk3WgQP|vr-eVo8!wH!TiX)aiw+I|dBWJX=H6zxx z_tSI2$ChOM+?XlJwEz3!juYU6Z_b+vP-Y|m1!|ahw>Kpjrii-M_wmO@f@7;aK(I;p zqWgn+X^onc-*f)V9Vfu?AHLHHK!p2|M`R&@4H0x4hD5#l1##Plb8KsgqGZ{`d+1Ns zQ7N(V#t49wYIm9drzw`;WSa|+W+VW8Zbbx*Z+aXHSoa!c!@3F_yVww58NPH2->~Ls z2++`lSrKF(rBZLZ5_ts6_LbZG-W-3fDq^qI>|rzbc@21?)H>!?7O*!D?dKlL z6J@yulp7;Yk6Bdytq*J1JaR1!pXZz4aXQ{qfLu0;TyPWebr3|*EzCk5%ImpjUI4cP z7A$bJvo4(n2km-2JTfRKBjI9$mnJG@)LjjE9dnG&O=S;fC)@nq9K&eUHAL%yAPX7OFuD$pb_H9nhd{iE0OiI4#F-);A|&YT z|A3tvFLfR`5NYUkE?Rfr&PyUeFX-VHzcss2i*w06vn4{k1R%1_1+Ygx2oFt*HwfT> zd=PFdfFtrP1+YRs0AVr{YVp4Bnw2HQX-|P$M^9&P7pY6XSC-8;O2Ia4c{=t{NRD=z z0DeYUO3n;p%k zNEmBntbNac&5o#&fkY1QSYA4tKqBb=w~c6yktzjyk_Po)A|?nn8>HdA31amaOf7jX z2qillM8t8V#qv5>19Cg_X`mlU*O5|C#X-kfAXAHAD*q%6+z%IK(*H6olm-N4%Ic)5 zL`?wQgXfD&qQRxWskoO^Ylb>`jelq;*~ZIwKw|#BQjOSLkgc2uy7|oFEVhC?pcnU+ z^7qz}Z2%F!WOp%JO3y*&_7t;uRfU>)drR1q)c7lX?;A1-TuLTR zyr(`7O19`eW{ev;L%`;BvOzh?m|)Rh?W8&I$KVvUTo?@f@K!du&vf=o6kKb?hA z%e6$T0jWS7doVkN%^_k3QOksfV?aC$Ge$a)z(!C@UVs*@qzDw*OFd*JfX#>5LCXjE z_vfUrLF7D`K$U2Ld#OCnh9U!;r7%GlKo$e__Il-oba06ER{H&f#J&W@x^^5j;y$0` zs2`m6pf+{UiDb{Mjsb$rH+MCM6G_wX92so96`ODFYKD>!Xz^0y@U7Tc1uON4L<>2f-oPe%FRPEZ@S#-yd7Md-i?v z)$Kgtq;%4g@>Kap3Nl2I&jnCIfGmRmcF4CXfF1H}3SfhLg8=!a0ucGaUk&c3*Ykgl z2X_L84cs+FD#cjf-nMJkVDH%XzOoh5!X-Q$K5VZx-hGF7MQ=XKBjhZZQ@1Sh zO^vY`WQ`zi21z-+01na%<^niMFIWm-n|!?hm4X2HEHkba4YS|+HRoIR=`#Xck@PFXaPjnP z=hC4A*0lumS+gpK=TUN!G;{WqICbMz-V=-lTP^@a#C|E!qH;T00SZh7u#?+?08g0< zV1s%-U-`T@8wGh!3pO^`zUIY{nAED7kBqg!qi&GfOp>57f2PGTV19m z0qU@1PYkf%4z_%;Sq4IY94rS+ie~pwT@O3+tg?#k_=5PIk6tV@< zwLoqM0wBVLkI#`|1w=eYMnc^aRR!t?lnUng>WekR#X!!9mYXL3g^gC7`)S7mmo{y} z9*N!d$s32Nu{cZp#O|UxEZK7eY<7hGcI=lc;HrSVL|HA|S$rhhu_DBT&l+`75d`Sj3LaM~H)P zZuk2&jor6yipafklSsPL-vMo?0yAYXpH3=LveBhkno-3{4VLWL16I-@!RM$Po>&}} zm&PX3-$i>$*yx-THZmvK2q`8Qm7B`(NMR;>VSgoGw}W|G6Xd6v04Zf;HIZ0DZU?@- z39vPe0N8w(9kl$2?eG4T?tLgY5V&aFl%~g;2)aSpi!dl?{hDgsz|3<-M(gPtwP_!n z2aB4tV?d0k+>X`+(HMYfK@qtfDK|mIJeg+A<_i-n+5wkrexFs#V0N&~+{+qJ(wggC*52o2daaRwcu7r;S!!KwguB3!Ei7?IEY ze4V$m{8B4Q^(VK4~Ea!V@@}Gs0HGbR5 zy~WI*21hZuoiK`=O$2a|Uce-Zi2%A*pB|?{gv)n8+_B+i&u8Ys)ePY+UwhBDlzbC& z+N00*-?a8DTC26*(3pKgeMO`fOau^-+c6Qqq}3-dpTsEEH}ds! zT^}8XAWO>c5%+qF%#M8#x_0gC+N%q8h6-%w;qidS%gai<T)vpfYuCHXRx6O-TbC|fnj87X zBESvn(9XlXFMj6%{&BaNQ&;xixaKP)+jJ|%u&?HXvYficY}{%hf?0rNDS-X-0_Jcr zjfj~n?T;~RL#sd4ZED2Jf{*Vj+*1eP9-H+~8X^#Jb?HHabLY)EH{QD@Yh-$M`XXt@3_f-L8nBo~*C?L4~n6M92PCuzX=KFgM*j!B66er$F! z+*M(Wkk`UI@uhrL#IUz-C{K@@xtd&n-PQz%kc}7YeE{{&$?}-*yW$eG*E4jp>B_U!2`2oZuvvitN& z%RN>tE$+Yhtqb1q+xQHbp=W4uKSiIj_LZppR0=hEiVj>P0^Vcr^hu2+#Hqum+}zzo znqZ|M4oD|qd=y&JX-qob`=uqt?o%FJPIVY2w0M7BH>#sx>s#OM#9JF1(3LxMAe-vi ztJeU*G)aksP`5sP9_%|~>Pp{NmMMcay>&D+cI%H}$uSx{Su(yz$)2e$*pS%*+!Zo>DNp(P7 zI%w^D2ceEFUGCtQPKfsKr`x%^dy;Rh>lMKuhA^btz=071W=vV`_xz&m;cvd0`|!3+ z2M6uga6CNvy)%Pjw_X}5+xf###jc+?=>6chZI{BMH=haH^7ipT>(?9{weF3apk<4; z_nZFsi`@oFBXCZE^k9B1x+cH2)~9d(MnfEm;GJxG*IB zU@ly{cOTWk*K1ryX+T7m!6A>VwB-*qfH;b>`AUP19lLSA9HbfppW!={L0K)??SymOCA^V>=tOBLn2c5e ksm9QK-qMKdW>5J419kFO%DdQj-T(jq07*qoM6N<$f+5oB`~Uy| literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..8ca12fe024be86e868d14e91120a6902f8e88ac6 GIT binary patch literal 6464 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 B0*L?s literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..8e19b410a1b15ff180f3dacac19395fe3046cdec GIT binary patch literal 10676 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..4c19a13c239cb67b8a2134ddd5f325db1d2d5bee GIT binary patch literal 15523 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 BIP(Ai literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml new file mode 100644 index 00000000..3ab3e9cb --- /dev/null +++ b/android/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + + #3F51B5 + #303F9F + #FF4081 + diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml new file mode 100644 index 00000000..7f37f3fc --- /dev/null +++ b/android/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Send Android + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..5885930d --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/android/app/src/test/java/com/mozilla/send/sendandroid/ExampleUnitTest.kt b/android/app/src/test/java/com/mozilla/send/sendandroid/ExampleUnitTest.kt new file mode 100644 index 00000000..8de39016 --- /dev/null +++ b/android/app/src/test/java/com/mozilla/send/sendandroid/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.mozilla.send.sendandroid + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 00000000..521fee58 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,28 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + ext.kotlin_version = '1.2.30' + repositories { + google() + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:3.1.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + maven { url "https://jitpack.io" } + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 00000000..743d692c --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,13 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..7a3265ee94c0ab25cf079ac8ccdf87f41d455d42 GIT binary patch literal 54708 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

_x$+l{{cH8$W#CT literal 0 HcmV?d00001 diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..5bde7e8d --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed May 23 21:14:24 EDT 2018 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip diff --git a/android/gradlew b/android/gradlew new file mode 100755 index 00000000..cccdd3d5 --- /dev/null +++ b/android/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100644 index 00000000..e95643d6 --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 00000000..e7b4def4 --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1 @@ +include ':app' From 82bd1b2adfa7a3c7a8c39bb3f2b48b5e9e4f0385 Mon Sep 17 00:00:00 2001 From: Donovan Preston Date: Wed, 23 May 2018 21:43:38 -0400 Subject: [PATCH 003/368] For some reason build clean produced this diff. --- android/app/app.iml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/app/app.iml b/android/app/app.iml index cbdbe941..5eda7aaa 100644 --- a/android/app/app.iml +++ b/android/app/app.iml @@ -22,14 +22,13 @@ - +

diff --git a/app/templates/activeBackground/activeBackground.css b/app/templates/activeBackground/activeBackground.css new file mode 100644 index 00000000..ef57484d --- /dev/null +++ b/app/templates/activeBackground/activeBackground.css @@ -0,0 +1,11 @@ +.background { + position: absolute; + left: 0; + top: 0; + height: 100%; + z-index: -1; +} + +.background > img { + height: 100%; +} diff --git a/app/templates/activeBackground/index.js b/app/templates/activeBackground/index.js new file mode 100644 index 00000000..ac718129 --- /dev/null +++ b/app/templates/activeBackground/index.js @@ -0,0 +1,10 @@ +const html = require('choo/html'); +const assets = require('../../../common/assets'); + +module.exports = function() { + const backgrounds = assets.match(/background/); + const src = backgrounds[Math.floor(Math.random() * backgrounds.length)]; + return html`
+ +
`; +}; diff --git a/assets/background_1.jpg b/assets/background_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c92d3fb16b76ad55ef235478f97e760d072fcc00 GIT binary patch literal 312252 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%0D&DqVzj?#Weyv4M^8 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%0A;`~K=k+ZD-W7Y1a8fXG%2%ND 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 }fizT3Y$kWMDl|$R} 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�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%0A*e^Umb1i~Qv1#!)mnlP+asVU_z*m-d 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

3$P!O=Gu-Ue3-u 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

${state.translate('enableJavascript')}

- ${template(state, emit)} +
+
+ ${template(state, emit)} +
+
+
+

~rcXq}8>HyOl9PZf8hv%^^L?jEs9^Rn2=# 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�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 z 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 match.test(k)) + .map(getAsset); +} + const instance = { get: getAsset, + match: getMatches, setMiddleware: function(middleware) { + function getManifest() { + return JSON.parse( + middleware.fileSystem.readFileSync( + middleware.getFilenameFromUrl('/manifest.json') + ) + ); + } if (middleware) { instance.get = function getAssetWithMiddleware(name) { - const f = middleware.fileSystem.readFileSync( - middleware.getFilenameFromUrl('/manifest.json') - ); - return prefix + JSON.parse(f)[name]; + const m = getManifest(); + return prefix + m[name]; + }; + instance.match = function matchAssetWithMiddleware(match) { + const m = getManifest(); + return Object.keys(m) + .filter(k => match.test(k)) + .map(k => prefix + m[k]); }; } } From 1bd7e4d4866b554589713d4452edd6eff4e917bb Mon Sep 17 00:00:00 2001 From: Emily Hou Date: Wed, 20 Jun 2018 17:05:33 -0700 Subject: [PATCH 009/368] add streaming --- app/api.js | 125 +++++++++++++++++-------- app/blobslicer.js | 41 -------- app/ece.js | 117 +++++++++++++++++------ app/fileReceiver.js | 30 +++++- app/fileSender.js | 20 ++-- app/keychain.js | 12 ++- package-lock.json | 115 ++++++++++++++++++----- package.json | 5 +- server/dev.js | 8 ++ server/prod.js | 4 +- server/routes/index.js | 4 + server/routes/ws.js | 68 ++++++++++++++ test/frontend/tests/api-tests.js | 27 ++++-- test/frontend/tests/streaming-tests.js | 34 +------ test/frontend/tests/workflow-tests.js | 6 +- webpack.config.js | 9 +- 16 files changed, 438 insertions(+), 187 deletions(-) delete mode 100644 app/blobslicer.js create mode 100644 server/routes/ws.js diff --git a/app/api.js b/app/api.js index 42d7d512..30d0be36 100644 --- a/app/api.js +++ b/app/api.js @@ -91,47 +91,98 @@ export async function setPassword(id, owner_token, keychain) { return response.ok; } -export function uploadFile( - encrypted, +function asyncInitWebSocket(server) { + return new Promise(resolve => { + const ws = new WebSocket(server); + ws.onopen = () => { + resolve(ws); + }; + }); +} + +async function upload( + ws, + stream, + streamInfo, metadata, verifierB64, keychain, onprogress ) { - const xhr = new XMLHttpRequest(); - const upload = { - cancel: function() { - xhr.abort(); - }, - result: new Promise(function(resolve, reject) { - xhr.addEventListener('loadend', function() { - const authHeader = xhr.getResponseHeader('WWW-Authenticate'); - if (authHeader) { - keychain.nonce = parseNonce(authHeader); - } - if (xhr.status === 200) { - const responseObj = JSON.parse(xhr.responseText); - return resolve({ - url: responseObj.url, - id: responseObj.id, - ownerToken: responseObj.owner - }); - } - reject(new Error(xhr.status)); - }); - }) + const metadataHeader = arrayToB64(new Uint8Array(metadata)); + const fileMeta = { + fileMetadata: metadataHeader, + authorization: `send-v1 ${verifierB64}` }; - const blob = new Blob([encrypted], { type: 'application/octet-stream' }); - xhr.upload.addEventListener('progress', function(event) { - if (event.lengthComputable) { - onprogress([event.loaded, event.total]); + + //send file header + ws.send(JSON.stringify(fileMeta)); + + function listenForRes() { + return new Promise((resolve, reject) => { + ws.addEventListener('message', function(msg) { + const response = JSON.parse(msg.data); + resolve({ + url: response.url, + id: response.id, + ownerToken: response.owner + }); + }); + }); + } + + const resPromise = listenForRes(); + + const reader = stream.getReader(); + let state = await reader.read(); + let size = 0; + while (!state.done) { + const buf = state.value; + ws.send(buf); + if (ws.readyState !== 1) { + throw new Error(0); //should this be here } - }); - xhr.open('post', '/api/upload', true); - xhr.setRequestHeader('X-File-Metadata', arrayToB64(new Uint8Array(metadata))); - xhr.setRequestHeader('Authorization', `send-v1 ${verifierB64}`); - xhr.send(blob); - return upload; + + onprogress([Math.min(streamInfo.fileSize, size), streamInfo.fileSize]); + size += streamInfo.recordSize; + state = await reader.read(); + } + + const res = await resPromise; + + ws.close(); + return res; +} + +export async function uploadWs( + encrypted, + info, + metadata, + verifierB64, + keychain, + onprogress +) { + const host = window.location.hostname; + const port = window.location.port; + const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; + const ws = await asyncInitWebSocket(`${protocol}//${host}:${port}/api/ws`); + + //console.log(`made connection to websocket: ws://${host}:${port}/api/ws`) + + return { + cancel: function() { + ws.close(4000, 'upload cancelled'); + }, + result: upload( + ws, + encrypted, + info, + metadata, + verifierB64, + keychain, + onprogress + ) + }; } function download(id, keychain, onprogress, canceller) { @@ -151,11 +202,7 @@ function download(id, keychain, onprogress, canceller) { } const blob = new Blob([xhr.response]); - const fileReader = new FileReader(); - fileReader.readAsArrayBuffer(blob); - fileReader.onload = function() { - resolve(this.result); - }; + resolve(blob); }); xhr.addEventListener('progress', function(event) { if (event.lengthComputable && event.target.status === 200) { diff --git a/app/blobslicer.js b/app/blobslicer.js deleted file mode 100644 index 41caaea3..00000000 --- a/app/blobslicer.js +++ /dev/null @@ -1,41 +0,0 @@ -const streams = require('web-streams-polyfill'); - -class BlobSlicer { - constructor(blob, size, decrypt) { - this.blob = blob; - this.size = size; - this.index = 0; - this.decrypt = decrypt; - } - - pull(controller) { - return new Promise((resolve, reject) => { - const bytesLeft = this.blob.size - this.index; - if (bytesLeft <= 0) { - controller.close(); - return resolve(); - } - let size = 0; - if (this.decrypt && this.index === 0) { - size = Math.min(21, bytesLeft); - } else { - size = Math.min(this.size, bytesLeft); - } - const blob = this.blob.slice(this.index, this.index + size); - const reader = new FileReader(); - reader.onload = function() { - controller.enqueue(new Uint8Array(this.result)); - resolve(); - }; - reader.onerror = reject; - reader.readAsArrayBuffer(blob); - this.index += size; - }); - } -} - -export default class BlobSliceStream extends streams.ReadableStream { - constructor(blob, size, decrypt) { - super(new BlobSlicer(blob, size, decrypt)); - } -} diff --git a/app/ece.js b/app/ece.js index c894e6b3..1a9ecb23 100644 --- a/app/ece.js +++ b/app/ece.js @@ -1,10 +1,12 @@ require('buffer'); +import { ReadableStream, TransformStream } from 'web-streams-polyfill'; const NONCE_LENGTH = 12; const TAG_LENGTH = 16; const KEY_LENGTH = 16; const MODE_ENCRYPT = 'encrypt'; const MODE_DECRYPT = 'decrypt'; +const RS = 1024 * 1024; const encoder = new TextEncoder(); @@ -14,27 +16,15 @@ function generateSalt(len) { return randSalt.buffer; } -/* -mode: string, either 'encrypt' or 'decrypt' -ikm: Uint8Array containing key of KEY_LENGTH length -rs: int containing record size, optional -salt: ArrayBuffer containing salt of KEY_LENGTH length, optional -The transform stream takes data as UInt8Arrays on the writable side, and outputs -UInt8Arrays on the readable side. -*/ -export default class ECETransformer { +export class ECETransformer { constructor(mode, ikm, rs, salt) { this.mode = mode; this.prevChunk; - this.params = {}; this.seq = 0; this.firstchunk = true; - this.rs = rs || 1024; + this.rs = rs; this.ikm = ikm.buffer; - this.params.salt = salt; - if (!salt) { - this.params.salt = generateSalt(KEY_LENGTH); - } + this.salt = salt; } async generateKey() { @@ -49,7 +39,7 @@ export default class ECETransformer { return window.crypto.subtle.deriveKey( { name: 'HKDF', - salt: this.params.salt, + salt: this.salt, info: encoder.encode('Content-Encoding: aes128gcm\0'), hash: 'SHA-256' }, @@ -77,7 +67,7 @@ export default class ECETransformer { await window.crypto.subtle.deriveKey( { name: 'HKDF', - salt: this.params.salt, + salt: this.salt, info: encoder.encode('Content-Encoding: nonce\0'), hash: 'SHA-256' }, @@ -95,15 +85,14 @@ export default class ECETransformer { } generateNonce(seq) { - const nonce = Buffer.from(this.params.nonceBase); + if (seq > 0xffffffff) { + throw new Error('record sequence number exceeds limit'); + } + const nonce = Buffer.from(this.nonceBase); const m = nonce.readUIntBE(nonce.length - 4, 4); const xor = (m ^ seq) >>> 0; //forces unsigned int xor nonce.writeUIntBE(xor, nonce.length - 4, 4); - const m2 = nonce.readUIntBE(nonce.length - 8, 4); - const xor2 = (m2 ^ (seq >>> 4)) >>> 0; - nonce.writeUIntBE(xor2, nonce.length - 8, 4); - return nonce; } @@ -147,7 +136,7 @@ export default class ECETransformer { const nums = Buffer.alloc(5); nums.writeUIntBE(this.rs, 0, 4); nums.writeUIntBE(0, 4, 1); - return Buffer.concat([Buffer.from(this.params.salt), nums]); + return Buffer.concat([Buffer.from(this.salt), nums]); } //salt is arraybuffer, rs is int, length is int @@ -167,7 +156,7 @@ export default class ECETransformer { const nonce = this.generateNonce(seq); const encrypted = await window.crypto.subtle.encrypt( { name: 'AES-GCM', iv: nonce }, - this.params.key, + this.key, this.pad(buffer, isLast) ); return Buffer.from(encrypted); @@ -181,7 +170,7 @@ export default class ECETransformer { iv: nonce, tagLength: 128 }, - this.params.key, + this.key, buffer ); @@ -190,8 +179,8 @@ export default class ECETransformer { async start(controller) { if (this.mode === MODE_ENCRYPT) { - this.params.key = await this.generateKey(); - this.params.nonceBase = await this.generateNonceBase(); + this.key = await this.generateKey(); + this.nonceBase = await this.generateNonceBase(); controller.enqueue(this.createHeader()); } else if (this.mode !== MODE_DECRYPT) { throw new Error('mode must be either encrypt or decrypt'); @@ -208,10 +197,10 @@ export default class ECETransformer { if (this.seq === 0) { //the first chunk during decryption contains only the header const header = this.readHeader(this.prevChunk); - this.params.salt = header.salt; + this.salt = header.salt; this.rs = header.rs; - this.params.key = await this.generateKey(); - this.params.nonceBase = await this.generateNonceBase(); + this.key = await this.generateKey(); + this.nonceBase = await this.generateNonceBase(); } else { controller.enqueue( await this.decryptRecord(this.prevChunk, this.seq - 1, isLast) @@ -235,3 +224,71 @@ export default class ECETransformer { } } } + +class BlobSlicer { + constructor(blob, rs, mode) { + this.blob = blob; + this.index = 0; + this.mode = mode; + this.chunkSize = mode === MODE_ENCRYPT ? rs - 17 : rs; + } + + pull(controller) { + return new Promise((resolve, reject) => { + const bytesLeft = this.blob.size - this.index; + if (bytesLeft <= 0) { + controller.close(); + return resolve(); + } + let size = 1; + if (this.mode === MODE_DECRYPT && this.index === 0) { + size = Math.min(21, bytesLeft); + } else { + size = Math.min(this.chunkSize, bytesLeft); + } + const blob = this.blob.slice(this.index, this.index + size); + const reader = new FileReader(); + reader.onload = () => { + controller.enqueue(new Uint8Array(reader.result)); + resolve(); + }; + reader.onerror = reject; + reader.readAsArrayBuffer(blob); + this.index += size; + }); + } +} + +export class BlobSliceStream extends ReadableStream { + constructor(blob, size, mode) { + super(new BlobSlicer(blob, size, mode)); + } +} + +/* +input: a blob containing data to be transformed +key: Uint8Array containing key of size KEY_LENGTH +mode: string, either 'encrypt' or 'decrypt' +rs: int containing record size, optional +salt: ArrayBuffer containing salt of KEY_LENGTH length, optional +*/ + +export default class ECE { + constructor(input, key, mode, rs, salt) { + if (rs === undefined) { + rs = RS; + } + if (salt === undefined) { + salt = generateSalt(KEY_LENGTH); + } + + this.streamInfo = { + recordSize: rs, + fileSize: input.size + 16 * Math.floor(input.size / (rs - 17)) + }; + input = new BlobSliceStream(input, rs, mode); + + const ts = new TransformStream(new ECETransformer(mode, key, rs, salt)); + this.stream = input.pipeThrough(ts); + } +} diff --git a/app/fileReceiver.js b/app/fileReceiver.js index 27dccf6d..d35123c4 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -51,6 +51,28 @@ export default class FileReceiver extends Nanobus { this.state = 'ready'; } + async streamToArrayBuffer(stream) { + const reader = stream.getReader(); + const chunks = []; + let length = 0; + + let state = await reader.read(); + while (!state.done) { + chunks.push(state.value); + length += state.value.length; + state = await reader.read(); + } + + const result = new Int8Array(length); + let offset = 0; + for (let i = 0; i < chunks.length; i++) { + result.set(chunks[i], offset); + offset += chunks[i].length; + } + + return result.buffer; + } + async download(noSave = false) { this.state = 'downloading'; this.downloadRequest = await downloadFile( @@ -61,13 +83,19 @@ export default class FileReceiver extends Nanobus { this.emit('progress'); } ); + try { const ciphertext = await this.downloadRequest.result; this.downloadRequest = null; this.msg = 'decryptingFile'; this.state = 'decrypting'; this.emit('decrypting'); - const plaintext = await this.keychain.decryptFile(ciphertext); + + const dec = await this.keychain.decryptStream(ciphertext); + const plainstream = dec.stream; + + const plaintext = await this.streamToArrayBuffer(plainstream); + if (!noSave) { await saveFile({ plaintext, diff --git a/app/fileSender.js b/app/fileSender.js index 99f2ad12..71b416c9 100644 --- a/app/fileSender.js +++ b/app/fileSender.js @@ -3,7 +3,7 @@ import Nanobus from 'nanobus'; import OwnedFile from './ownedFile'; import Keychain from './keychain'; import { arrayToB64, bytes } from './utils'; -import { uploadFile } from './api'; +import { uploadWs } from './api'; export default class FileSender extends Nanobus { constructor(file) { @@ -59,20 +59,19 @@ export default class FileSender extends Nanobus { async upload() { const start = Date.now(); - const plaintext = await this.readFile(); if (this.cancelled) { throw new Error(0); } this.msg = 'encryptingFile'; this.emit('encrypting'); - const encrypted = await this.keychain.encryptFile(plaintext); + + const enc = await this.keychain.encryptStream(this.file); const metadata = await this.keychain.encryptMetadata(this.file); const authKeyB64 = await this.keychain.authKeyB64(); - if (this.cancelled) { - throw new Error(0); - } - this.uploadRequest = uploadFile( - encrypted, + + this.uploadRequest = await uploadWs( + enc.stream, + enc.streamInfo, metadata, authKeyB64, this.keychain, @@ -81,6 +80,11 @@ export default class FileSender extends Nanobus { this.emit('progress'); } ); + + if (this.cancelled) { + throw new Error(0); + } + this.msg = 'fileSizeProgress'; this.emit('progress'); // HACK to kick MS Edge try { diff --git a/app/keychain.js b/app/keychain.js index eacffec3..89e217e6 100644 --- a/app/keychain.js +++ b/app/keychain.js @@ -1,5 +1,5 @@ import { arrayToB64, b64ToArray } from './utils'; - +import ECE from './ece.js'; const encoder = new TextEncoder(); const decoder = new TextDecoder(); @@ -179,6 +179,16 @@ export default class Keychain { return ciphertext; } + async encryptStream(plaintext) { + const enc = new ECE(plaintext, this.rawSecret, 'encrypt'); + return enc; + } + + async decryptStream(encstream) { + const dec = new ECE(encstream, this.rawSecret, 'decrypt'); + return dec; + } + async decryptFile(ciphertext) { const encryptKey = await this.encryptKeyPromise; const plaintext = await window.crypto.subtle.decrypt( diff --git a/package-lock.json b/package-lock.json index 247e3dc6..3516b329 100644 --- a/package-lock.json +++ b/package-lock.json @@ -485,8 +485,7 @@ "async-limiter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", - "dev": true + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, "asynckit": { "version": "0.4.0", @@ -2613,8 +2612,7 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { "version": "4.0.0", @@ -3628,7 +3626,6 @@ "version": "3.5.4", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", - "dev": true, "requires": { "end-of-stream": "1.4.1", "inherits": "2.0.3", @@ -3640,7 +3637,6 @@ "version": "2.3.5", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", - "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -3655,7 +3651,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -3719,7 +3714,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, "requires": { "once": "1.4.0" } @@ -4373,6 +4367,24 @@ } } }, + "express-ws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/express-ws/-/express-ws-4.0.0.tgz", + "integrity": "sha512-KEyUw8AwRET2iFjFsI1EJQrJ/fHeGiJtgpYgEWG3yDv4l/To/m3a2GaYfeGyB3lsWdvbesjF5XCMx+SVBgAAYw==", + "requires": { + "ws": "5.2.0" + }, + "dependencies": { + "ws": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.0.tgz", + "integrity": "sha512-c18dMeW+PEQdDFzkhDsnBAlS4Z8KGStBQQUcQ5mf7Nf689jyGk0594L+i9RaQuf4gog6SvWLJorz2NfSaqxZ7w==", + "requires": { + "async-limiter": "1.0.0" + } + } + } + }, "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", @@ -12122,7 +12134,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1.0.2" } @@ -15780,8 +15791,7 @@ "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "progress": { "version": "2.0.0", @@ -15903,6 +15913,19 @@ "proxy-from-env": "1.0.0", "rimraf": "2.6.2", "ws": "3.3.3" + }, + "dependencies": { + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.1" + } + } } }, "q": { @@ -17664,8 +17687,7 @@ "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, "stream-to-observable": { "version": "0.2.0", @@ -18722,8 +18744,7 @@ "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, "unassert": { "version": "1.5.1", @@ -19138,8 +19159,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { "version": "1.0.0", @@ -19815,6 +19835,53 @@ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", "dev": true }, + "websocket-stream": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.1.2.tgz", + "integrity": "sha512-lchLOk435iDWs0jNuL+hiU14i3ERSrMA0IKSiJh7z6X/i4XNsutBZrtqu2CPOZuA4G/zabiqVAos0vW+S7GEVw==", + "requires": { + "duplexify": "3.5.4", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.1", + "ws": "3.3.3", + "xtend": "4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "requires": { + "async-limiter": "1.0.0", + "safe-buffer": "5.1.1", + "ultron": "1.1.1" + } + } + } + }, "whatwg-encoding": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", @@ -19903,8 +19970,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "wreck": { "version": "12.5.1", @@ -19943,14 +20009,11 @@ } }, "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.0.tgz", + "integrity": "sha512-c18dMeW+PEQdDFzkhDsnBAlS4Z8KGStBQQUcQ5mf7Nf689jyGk0594L+i9RaQuf4gog6SvWLJorz2NfSaqxZ7w==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1", - "ultron": "1.1.1" + "async-limiter": "1.0.0" } }, "x-is-function": { diff --git a/package.json b/package.json index 06d6e147..66a89781 100644 --- a/package.json +++ b/package.json @@ -124,13 +124,16 @@ "cldr-core": "^32.0.0", "convict": "^4.0.1", "express": "^4.16.2", + "express-ws": "^4.0.0", "fluent": "^0.6.3", "fluent-langneg": "^0.1.0", "helmet": "^3.12.0", "mkdirp": "^0.5.1", "mozlog": "^2.2.0", "raven": "^2.4.2", - "redis": "^2.8.0" + "redis": "^2.8.0", + "websocket-stream": "^5.1.2", + "ws": "^5.2.0" }, "availableLanguages": [ "en-US", diff --git a/server/dev.js b/server/dev.js index babb9b12..463a01b3 100644 --- a/server/dev.js +++ b/server/dev.js @@ -3,6 +3,14 @@ const locales = require('../common/locales'); const routes = require('./routes'); const pages = require('./routes/pages'); const tests = require('../test/frontend/routes'); +const express = require('express'); +const expressWs = require('express-ws'); +const config = require('./config'); + +const wsapp = express(); +expressWs(wsapp, null, { perMessageDeflate: false }); +wsapp.ws('/api/ws', require('./routes/ws')); +wsapp.listen(8081, config.listen_address); module.exports = function(app, devServer) { assets.setMiddleware(devServer.middleware); diff --git a/server/prod.js b/server/prod.js index 4177b160..0d850eea 100644 --- a/server/prod.js +++ b/server/prod.js @@ -4,13 +4,15 @@ const Raven = require('raven'); const config = require('./config'); const routes = require('./routes'); const pages = require('./routes/pages'); +const expressWs = require('express-ws'); if (config.sentry_dsn) { Raven.config(config.sentry_dsn).install(); } const app = express(); - +expressWs(app, null, { perMessageDeflate: false }); +app.ws('/api/ws', require('./routes/ws')); //want to move this into routes/index.js but it's not working... routes(app); app.use( diff --git a/server/routes/index.js b/server/routes/index.js index 4b7d6f31..65e98aa0 100644 --- a/server/routes/index.js +++ b/server/routes/index.js @@ -62,6 +62,10 @@ module.exports = function(app) { app.post(`/api/params/:id${ID_REGEX}`, owner, require('./params')); app.post(`/api/info/:id${ID_REGEX}`, owner, require('./info')); + if (!IS_DEV) { + app.ws('/api/ws', require('./ws')); + } + app.get('/__version__', function(req, res) { res.sendFile(require.resolve('../../dist/version.json')); }); diff --git a/server/routes/ws.js b/server/routes/ws.js new file mode 100644 index 00000000..514060e5 --- /dev/null +++ b/server/routes/ws.js @@ -0,0 +1,68 @@ +const crypto = require('crypto'); +const storage = require('../storage'); +const config = require('../config'); +const mozlog = require('../log'); +const Limiter = require('../limiter'); +const wsStream = require('websocket-stream/stream'); + +const log = mozlog('send.upload'); + +module.exports = async function(ws, req) { + let fileStream; + + try { + ws.on('close', e => { + if (e !== 1000) { + if (fileStream !== undefined) { + fileStream.destroy(); + } + } + }); + + let first = true; + ws.on('message', function(message) { + if (first) { + const newId = crypto.randomBytes(5).toString('hex'); + const owner = crypto.randomBytes(10).toString('hex'); + + const fileInfo = JSON.parse(message); + const metadata = fileInfo.fileMetadata; + const auth = fileInfo.authorization; + + /* + if (!metadata || !auth) { + return res.sendStatus(400); + } + */ + + const meta = { + owner, + metadata, + auth: auth.split(' ')[1], + nonce: crypto.randomBytes(16).toString('base64') + }; + + const limiter = new Limiter(config.max_file_size); + fileStream = wsStream(ws, { binary: true }).pipe(limiter); + storage.set(newId, fileStream, meta); + + const protocol = config.env === 'production' ? 'https' : req.protocol; + const url = `${protocol}://${req.get('host')}/download/${newId}/`; + + ws.send( + JSON.stringify({ + url, + owner: meta.owner, + id: newId, + authentication: `send-v1 ${meta.nonce}` + }) + ); + + first = false; + } + }); + } catch (e) { + log.error('upload', e); + //res.sendStatus(500); + } +}; diff --git a/test/frontend/tests/api-tests.js b/test/frontend/tests/api-tests.js index fb470add..89b63c1a 100644 --- a/test/frontend/tests/api-tests.js +++ b/test/frontend/tests/api-tests.js @@ -3,21 +3,29 @@ import * as api from '../../../app/api'; import Keychain from '../../../app/keychain'; const encoder = new TextEncoder(); -const plaintext = encoder.encode('hello world!'); +const plaintext = new Blob([encoder.encode('hello world!')]); const metadata = { name: 'test.txt', type: 'text/plain' }; describe('API', function() { - describe('uploadFile', function() { + describe('websocket upload', function() { it('returns file info on success', async function() { const keychain = new Keychain(); - const encrypted = await keychain.encryptFile(plaintext); + const enc = await keychain.encryptStream(plaintext); const meta = await keychain.encryptMetadata(metadata); const verifierB64 = await keychain.authKeyB64(); const p = function() {}; - const up = api.uploadFile(encrypted, meta, verifierB64, keychain, p); + const up = await api.uploadWs( + enc.stream, + enc.streamInfo, + meta, + verifierB64, + keychain, + p + ); + const result = await up.result; assert.ok(result.url); assert.ok(result.id); @@ -26,11 +34,18 @@ describe('API', function() { it('can be cancelled', async function() { const keychain = new Keychain(); - const encrypted = await keychain.encryptFile(plaintext); + const enc = await keychain.encryptStream(plaintext); const meta = await keychain.encryptMetadata(metadata); const verifierB64 = await keychain.authKeyB64(); const p = function() {}; - const up = api.uploadFile(encrypted, meta, verifierB64, keychain, p); + const up = await api.uploadWs( + enc.stream, + enc.streamInfo, + meta, + verifierB64, + keychain, + p + ); up.cancel(); try { await up.result; diff --git a/test/frontend/tests/streaming-tests.js b/test/frontend/tests/streaming-tests.js index cd492610..355fcaa0 100644 --- a/test/frontend/tests/streaming-tests.js +++ b/test/frontend/tests/streaming-tests.js @@ -1,13 +1,10 @@ -const streams = require('web-streams-polyfill'); const ece = require('http_ece'); require('buffer'); import assert from 'assert'; import { b64ToArray } from '../../../app/utils'; -import ECETransformer from '../../../app/ece.js'; -import BlobSliceStream from '../../../app/blobslicer.js'; +import ECE from '../../../app/ece.js'; -const decoder = new TextDecoder('utf-8'); const rs = 36; const str = 'You are the dancing queen, young and sweet, only seventeen.'; @@ -33,28 +30,10 @@ describe('Streaming', function() { const salt = b64ToArray(testSalt).buffer; const blob = new Blob([str], { type: 'text/plain' }); - it('blob slice stream works', async function() { - const rs = await new BlobSliceStream(blob, 100); - const reader = rs.getReader(); - - let result = ''; - let state = await reader.read(); - while (!state.done) { - result = decoder.decode(state.value); - state = await reader.read(); - } - - assert.equal(result, str); - }); - it('can encrypt', async function() { - const enc = new streams.TransformStream( - new ECETransformer('encrypt', key, rs, salt) - ); + const encStream = new ECE(blob, key, 'encrypt', rs, salt).stream; + const reader = encStream.getReader(); - const rstream = await new BlobSliceStream(blob, rs - 17); - - const reader = rstream.pipeThrough(enc).getReader(); let result = Buffer.from([]); let state = await reader.read(); @@ -68,12 +47,9 @@ describe('Streaming', function() { it('can decrypt', async function() { const encBlob = new Blob([encrypted]); - const dec = new streams.TransformStream( - new ECETransformer('decrypt', key, rs) - ); + const decStream = await new ECE(encBlob, key, 'decrypt', rs).stream; - const rstream = await new BlobSliceStream(encBlob, rs, true); - const reader = rstream.pipeThrough(dec).getReader(); + const reader = decStream.getReader(); let result = Buffer.from([]); let state = await reader.read(); diff --git a/test/frontend/tests/workflow-tests.js b/test/frontend/tests/workflow-tests.js index 23bc8efc..eed956da 100644 --- a/test/frontend/tests/workflow-tests.js +++ b/test/frontend/tests/workflow-tests.js @@ -93,7 +93,7 @@ describe('Upload / Download flow', function() { fs.cancel(); // before encrypting try { await up; - assert.fail('not cancelled'); + assert.fail('not cancelled 1'); } catch (e) { assert.equal(e.message, '0'); } @@ -101,7 +101,7 @@ describe('Upload / Download flow', function() { fs.once('encrypting', () => fs.cancel()); try { await fs.upload(); - assert.fail('not cancelled'); + assert.fail('not cancelled 2'); } catch (e) { assert.equal(e.message, '0'); } @@ -109,7 +109,7 @@ describe('Upload / Download flow', function() { fs.once('progress', () => fs.cancel()); try { await fs.upload(); - assert.fail('not cancelled'); + assert.fail('not cancelled 3'); } catch (e) { assert.equal(e.message, '0'); } diff --git a/webpack.config.js b/webpack.config.js index 65bc21e0..fb085c73 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -209,6 +209,13 @@ module.exports = { devServer: { compress: true, host: '0.0.0.0', - before: IS_DEV ? require('./server/dev') : undefined + before: IS_DEV ? require('./server/dev') : undefined, + proxy: { + '/api/ws': { + target: 'ws://localhost:8081', + ws: true, + secure: false + } + } } }; From 207179484c11784e10e75eae8ef468126e90df5e Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Wed, 20 Jun 2018 15:23:15 -0700 Subject: [PATCH 010/368] added striped box --- app/base.css | 38 +++++++++++++++++++++++-- app/routes/index.js | 8 +++++- app/templates/activeBackground/index.js | 12 +++++--- app/templates/header/index.js | 11 ------- 4 files changed, 50 insertions(+), 19 deletions(-) diff --git a/app/base.css b/app/base.css index a66388b7..2360a33a 100644 --- a/app/base.css +++ b/app/base.css @@ -40,12 +40,44 @@ a { } .main { + display: flex; + flex-direction: row; flex: auto; - max-width: 650px; - margin: 0 auto; padding: 0 20px; box-sizing: border-box; - width: 96%; +} + +.stripedBox { + width: 480px; + background-color: white; + border-radius: 6px; + box-shadow: 0 0 0 3px rgba(155, 155, 155, 0.4); + background-image: repeating-linear-gradient( + 45deg, + white, + white 5px, + #ea000e 5px, + #ea000e 25px, + white 25px, + white 30px, + #0083ff 30px, + #0083ff 50px + ); +} + +.mainContent { + height: 100%; + background-color: white; + margin: 0 10px; + padding: 1px 10px 0 10px; /* top wtf? */ +} + +.spacer { + flex: auto; +} + +.uploads { + flex: auto; } .noscript { diff --git a/app/routes/index.js b/app/routes/index.js index 90db1e63..368c3f1e 100644 --- a/app/routes/index.js +++ b/app/routes/index.js @@ -34,7 +34,13 @@ function body(template) {

2w%gpI(l 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 &!>c0D&0VUASiwTQp~|yy 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 z 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 literal 0 HcmV?d00001 diff --git a/assets/background_2.jpg b/assets/background_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1742afeb09d6153204bb230744f29ccba5bd094a GIT binary patch literal 585512 zcmeFadt8%ewl@4E0mKMa?E?fn6zss{Q9&XR52!_HkR*U4v6eElg;<%yDHfz2dK^%p z_5l?kLJZo{oRC&K+NKVUZMRjU)-l~C&~A&`U9r;Yw(Yh$ecMj=_Pf>{+P&ZX`~LX8 z_uqHuPss5(-1l17y4JPUefRE#yPtF8bottRP9ovB0{q9_y~3T*Y_wK!Tu~7>jpMjz zZj@vKC&MEN{^KM`TqJwUac0THUmvfQC`Udc#b;C;eslNW-&)Bm_L#@xO)puwh>`Dh z;4l5)jC9oS-xBM_RZmt|KK<0%skN(; zXJ@E0GNhAyL2oJ8RTe;R+^R)G;HOX|uO7m0eo?bW=XAWOdbH*UT?^>IrMrGY?iiy=vi9nwRv<>~z(< z<-g2J_(OSXSJCV(f9k0x7f$`(XOph{iIwx~)|pqYTKV+IKrE^J{Y*TZ`M`zi-?RG6+K!$1|N8594D2?WYP#(WF(zN z@&exHBF0BfNKq}0y4O%SYHBS%t6}GB(f2Po^g*04`0u~TGOyhj%# zrkw@NB4m;NwsJ<-(_fSB9>B zac%g^udd&?_1*0|fBXJ_{qW;YbYEc6;oHLR@SXjS`x=k?l14YoQ zrl_JOEH;d)ti5;YtcGZQ$mrxOMX?`wRFr(ITrM9wVJv6gh>hPXVS>eRQB^*`kC?T&s`iuGHTSQ zG4e6@%H{WF+?RA;#{ci1yO)uSym5Dsi;+oSOtSIZ1Kb^*(s}e;2pu;K4VByo3HeANBA=YtCI68?l?Q@@8!)M9rY8%a$_(z_Lz(B^LS;o`9iHm zdM|J4Rpmx0{pso49NxS~*&Q|1Vhr_5`keU2y}Z3=sHG&O&&A&~CUJ!Z9AT)r{+ztr zv=2wnitEyp5*7aNC)02=p7Z%^zRVcokXV+Rru5HmqjQ?}4K=(h>RwcK=hf!&Hw_|J zjZ3R#7ji?XxMUDtNR=uyik=~nt5W(Gwb^6+3Y@PbMWt^s4sG|v6w(1Ba0Wl`i_xj{ z`O0y2XNSn?RK+fyv*YH(C*do^@Bd-Y<5tOge%a%=wEZ`?;2u3M9i zFS~eOiPYSJf!Ttinr%GTx3Wi8129qs3@EoQRKq&~kYRLlJQF}m({o?}-y8i&}2nZ*&o-Vv3q zaC_X+@!E!B7v@CptS-}Skf!^(R+k&i&5c`i!3N{b!tlMA+w4uS7}%9RLrFJ0)X~v; z64T)6j*9c{>J?PE9zU5XG_L+g@K`Su#eE+#d#4v&EFQYwujGG*Q4|{E zddy;8qKMm0Q}&UW{tRPln4H*BLZ z(S1Hg+Rp!^RGfoJ@!UD1`4tV0w1r*FN|hcHI4(r91%nFvLk)am!XBlw^|ZOeA=DK_ zy7($FH$$*^y3NL*PT)3mh-J94phlL!_hC#DVqgYkQ7}clCi!08XDE=tP4NrBwpz+z?ev2u0I=c&wL*gUsOtQk>#dC`hqBP zXLb5awdC&kJM&={cg9wD$P9w{Latj<>=oB>=}I^6i#%=6!bawci}eN4j<$|^IXsC| zgdGys3Ri=@Zy@sz>`uP%xqfE(j z2E57Jd?gYMUZH>brDZy<3>H42LsW83{By&SqVWwMN9Q?-m&Tdt;v`CsyIb0}SDOpB zBUCj83!_4zPzeSC$kngGHAFZ&+WBLGFkr)%huRta}>_!!T%osu%=AVT7}jw|6fw=tUhTSe*9ARK7$S)anZ&-A<7!E2~zj zIiJk{Z%$2g*2^g-c${KxdTM$qm(Ck?3n>r9BtZ}I+d~`FvWx3tE zlOP3_j46t0V3f35dUaQX? zqv3r`sp-5Cx6{!iHE7aP8Zi%2Kmo@aLnWAye1RsuFe+H=PfebvUFP=7CW^v^ZWhII zcubX6d_mDu!yrK6PU&+4$ZRod1Xb||2wOJWjlA60sjw4xjPOosnoxhvXu2Nl#`lWV zTTBw%UQ3D03NuZf(6+ZgBb%t1PoUvLXp~u1biPEfY`xMC|3@TJ<(?XXsjG5Jb-HyK zO4;2Yyjc0C+~EYZL6aQc(Q0a>5%F<8Oig-vDqp`YU2Qxs+voQ1F|d|&DdsjkrJ3$N zN(l>6X?R2}y+3_YiPR_xn#_9=4C7n6yH z=VdV+@wlif<1oAyiN)=#kB6DT+~Fnoj7kff#J#mOZ^aiy6%2dinZsTdo^ z25ix|aUaZx*i#xj^jIN`2}B9}0v4G%zYU&-aLV|Ak^%?-K|%vY|8!+KVe2}0VkSX^ zQ`AN9h`Tf*G=9K|@U^A#rHdU(XLC%ME=wboBmN#7lW$#kJxjCc>b^i~YP{rAmwHfn z@bqv?zs31M?T>gSl#Z&RXU85;AMqL-Gi0~*j_sZ5{W)!TIZN+Y5pjB0tg-~+C!Y?P z>hz8o($H|1qilxkZB4eAcb`MI##*P@lAbMT#xhRKqpb6tB2wStr zyKe}XZ{%@M8_wA#=D}R}=&~C1U|HU8qF#yBI5xUZX*J0`%Ug817gFID>B{cKdd*y; zLXKE|yra!#lz@#AFo%o^X74y2hp>g=&k!&#Z04QdMat_M8N)7yAdCzWbif-e-SBL8 zcht~`hf*}3sHImNg{E6@+A1Ns2SFOK-A~?bRTX~=$PYEZ6vKQAfk@@EBi6tw^OX`G zAPm1*SQG}#t@qsx-9bQkPi80Bi7qo}9c5g(K`aFO#t>OKd6`g~dpyiQLP0SXR@Vp1 zB_HAu@&NU@WAs{`avZT4fTv)!^u+?=EBGXQ+i1{a$^~Wj68ao`1F=DaQ52Mc%=osj zZE|Hu8XRP|5d;V^WthfD9DrP(q8UMgN{_P@ArP1OKmXZ$$MB)<#aay? zLqO3G>tunIN0`KDQUs0G5#j?I5C(B%0JazbZ*HOCWVpNO40rLI=U9h&pfvPau^`O`&uk-{QjfeQvc?)!*mHDhdF4^Q~E$ zcmQO83s%I7S=xe1O`64>oJ-dW%7+)aU*X}8QLQ_Up1B(;Yl23+}Y41Sp4b9#2Zu~5Ur8m6Eyt=Ak1V3 z_*X(V3k$RvbVR&}ZyWTuZ%l_h92Nu?Gl23mVVt*rU-wF@aH_3gG^07Gu%kg8QZIPn z00O2GE+nfhu->^;l7isr=VOp2&JE@^!8J9qdk+wy!Gw=kEZ{bmo{hTOKjK~pQwWUF z!0Lvr^Nr`{db$@Qu}cS~_YIci&hO|dCX)p)ldh9qLg}2}UyjhGQ*0=;v1lmCfDo(N$S%1Ae3m?EGo|nJ?;hwc4 zV~%mhM1(z!`6@oUSc{;;z>UUxi7`lVRItX%z;l%2Kn;me+K#ap#talx0^eBcX#6syb&+v95lyIq_QpTIEJNHb>SN6y)$jt$4 z8s={4>De8vfPPKEX+ww%7onpZ76Bu}hgw1kigY+FO9yhtELDRCTbymJV}PPCQ8r~G zbAq|S;2%do7>5~y6NkAiF=#f4jOns~#{3sd5b;YfNYU}U6~90^l?aqX(O_-K6WV#- zyXQyU9k_#xQj`Ads7&K|AOWSv#Le&l3TI^QFv0Fo#{USTCBsdn^Voc`Ivo>?+c@6Q zg=RK>L)wsW5#}KT`tYLgIk9=#kZMN;ZDi$LB+`&Q&po@tC$bLYYh2giM6=Sx;_~8^p8pa)g^_Hl@ z+;og13+|Xc`bfkDqIUvYMWw|d)oN#c2;KIDAYU&al5#y8AcY{1 zH31Cy8-?A-ECR`LWKZG535bM8_(g_PF9)wjIA^o#2IT-dpdlj)MbH(4xmzN~Mad>> z>1AXM5+dLR_8A+L2*4%GVCiZWC&#=@#;3(gNrV&RL^?VNI9?^r$fbf5%Kj}Z6i|x9 z-dEcscR#*UMhNG)Q~bL&S#cmgHp5z)p?3%v%hFLn2jCQmK7w7H?pQkC)DoSswH%AEN(@5g%ax=weM^hw+_iWZniK448n_vh@Slt%TGb* zLz@XjkU}H_=j$1>rf^1z5Lcb9Ad2Ym!q=dCk&oi|hTKMv8!ST!rj!hKMUG(!haIAo z6q^d9VK-v&7pEnsLDXZmqS-s zNJk{Cf_3qKrrr+bv4 z2=rwDv4ZosT^^DJ@!Se$PVU3Nw47HJWw(S36$$Ds;L}^u`9a}A299PcjlfaFiu6Rc zvz5ZG6?B&lbI=bzg3^fbsnm-Gke-ZrL;~iTkecEKO4!LrI>6V6=*D+Y_}Akypm^n5 zV<_W>?+_DZY$K%+r(?V#GCc7V3N^BLTvdTgZ6sT;nQ-y2?Y1^z8^$WkD}oPiOj`IA zOoRN3)B#v%9+@zLK&G?(vv87++YNAu?r-xg5bVfi@{x8}y&wm7Ke;n0=-4sOHTy>C z)gx)vIzyFhina9N)Ii4S8KL3k$Pep^qnv?6Pvxa9b(J%a0nlkzAK7<1-&(pM)dd1k z2avOwvh;gO5~c`s{>-HEU`5~0!6J_bDS?ijz&bTebB#2IB<;w^J97~<2~-fT!sr3{ zj=P~Mh)thPoD?ZdH*r>IHbLAC3+?bU;(?&PqOJmv1h=ASY4c%RTr`@DO(p`j;3qKH z5$heXU~(MhJU|7EBOngm3DpwB&_ZtoewhohOdU=GKk~(3;P8N$j?%3LA#bxcGE@YF zF~6W!a1+dylW}htWW-Ooa%j7?9=DM^5m7sH0?tGp91iWjibWtH#9E5oel8o~9G@Q{ z1^6U>Ak)W;QI`umJs-&kT`|$fCl9ccEbWNl6^AdsA4#?z8<=NZjX; zhRfb=Mb6S4gq@j1WS}+dNF;+RU1|=KLw4y>zf@bN)g;2re8%U34&Xx-Wu-JN@Vlzk zzn4gdTOGPGPU1oYvY&v!niK(A*H%Avz@TN};U+xV+&U)TLL&fHLM9G%*TU$vkNB_O z^UwTX86tFm{wRD$yu%&Mk$w#64Dx3qc_56XUJ0+L7laE;b-W1`i`0KHDvLMWD(YTR zmoE(Xnv#2r4SIi?3^IF}YVl%?5*0W}B>0W}B%x|*Iw~#XT`aoMFSwVFh^p0hgaJYz zWjh4o*3*VhD9(|R0Kz71&#`q)2npu z!mEgvKIC2)!h%RYZ}kOBkplEU%uTY?E298((n zgnS=RSx*y&@C1B-iQxfz0s{=YqEjp*+Q?EsSOG9XqWqQEl4yra7-bYqBACdeU|}mo za6(`vH*tXb0DlwI;4^Us!7w)&9uy#pD3L-0#bsB84T0bT*bCM>B9xL#B2MlByaH^X zJ&}q>Ous+?1$soU!rzUzgL%Ky2tZE5X zHfs`H>UzRe668^~Xan0Kf0hmfwM*5Ux1|J(9z_Vu2NK3qgt^JrA@17{pA{^H}R_7*u?#|F|7K zA|g-})T@DIZm8-}*lwXfMw1UbpyUD{M_y4jkHG=yt_ZlWo(Q$C4j*bF0VI|X8a4uc{!^(z(_0bDI2m0OrCaWS=kIi2ly?$0eZ$!8a`S})pp99kqfkx zsOVB#UyeDV=*D9-nHEYOLf#1F&jMrw1;LFbGxi9!8b!s;R`435 zf=CIQhA>j&Zh{2N7zZ#=a9f=UgIq;dPZ)$ks${7SG0uWW2|P_r4r7yZbND;IRkJSw zMe!j{ZSx@k(7|!q7=0C2#sfZ#Z19g`3YXpuejAN80QFIk3a zngpU=pU0md>GOCzepIdTBpodd^hZVwH5iXo>8z}YLQ6l_J!}-K4jfCO`rkW@% zvU<2b)m1edT1;RoB&m)TaVL0FDTz%*$AJ#_K*}?{q+-=)Vyc8P#mJ)bEK~#^dmL1i zN=_&toBFnR`%xW66?baCC)_zpHHjIgN(`-$T@lzYus7jyhXQLUVTeK=P#GF2$pf^=EYEc4Z%MOP=VVbj?&n-gi3N40fsl% zFhMFHs@{1cr5~JovH-(`sAi`I>Tn-itmN0B|Z|IYbM@esBi5 zFdPQDZVW1fYX;2Ddx|eV=2{x(_fNFM2%ko6doW+4=tbXIf^>m#Xs-^EL>81MdsX?$zWo|> z0Bv>g$1L!Dc&g9Whk;th8HZ5cK`E4Tc1{Adguy{=mBJlfxSor_86{U~KiiAfsU?rv z-cZ#%MP>-mhQzajD5BT0+C3}EqY$K{lIA89GpJ-1HWN00fcZubQ}U=14q?$z7_2Nu zz$J;#Xed4gcQsTX$jnjSOh7RJFfPCPHmYM_fD~egPBXS|z3?#O&pF#c4jeNQAY~yL z0@;GDH>TO2PNWOR1<$T5CowJu>ZDfdm@$1jnAoq`Q;KylT}-=&-w?W@%2EA(LSG9#v zC~*Iz>>Cdlxur>9ZDU45Z49#MJ0^*pZoM3*Fh0>g4!v7c8mF=yuIvYNzG)udCAnL# zuP!tkwx9V5b|yq_yP`^;SG2%7pW%#3QQ{3?^5rjg7R=zzJ+sv*OS5o5za_e8l}s_GFl@H zVf!7e=@}&*p-a`}_bdmD|uz>};;5M%Iq{gLYT-{0?fNywEe$ zS)DKj^SS(}H9OQ711$XkQGd*Mb9-Dib!N_33MjY*OlYG1JFS=z52S#-G`CctPZO~v zx>~w7ALK0^%$4!kneb$DsJ~7R7ltVBYeIsHdp>wNh{og;3{4_yDLV-Z$3XB%Ynce; zGmBY_#z3j2PGi(4` z2|zzVn(2s)r~FzfpX(GWS+wegrb_@m2@RhlF~RX1%$3nF5ze%L^U#4|O?Uv}jtqdD z8f65uZgJJ%wxHJZlAk^f3LORJ4j{2nkU`{^S=30R;QK`K%gR)_C&{X*&)M0E#s^WQ zIhBoOYs7m{sAwDyP;K6uPfgUt!0o=$u-`W~HX)$W$y9L4aOz7v+;nX7Ug)`gt{@=7 zOYRPQ3n=`-bMdkF{&_)*q}cyJbq@b#{QVd6r=icidHcy+(;))M@`w+5%r<#V+>Di) z0_CwDd0srq?uQCiVhTWTrq>VZFg==MI@AVu?v}o2vT(fhH0}xg+(0t4$f0--6yK}K zsXvP;0Pv?NJwrA*wc?_C9~Ut|=63wKr5w!{)jfkJJ&Dqg`1q`ST zqk>3b8&o)NTo8<&P=O%>x~E`5NKQQ{UzmYx%zwgEluE4(zY=>0sKQtB->#ba1K}0H zis8wQLfBkmEt(UM)B4qyg1|{X2`xAPOS=!gnSm#JHw{5{#N9tU*`Y&gLPZ}n^&-uo zsyb%jh7LAgnnA#I{E7$%fWWK;x{d(_Bal_PrXu8xMc+s!jO(!hWJVC1$ehvC2r39W zI*!2G(aG+}?N3g?$_Ecn2h^j*P)nWph|q7wQBdW)2Fw>0l&osgiCU zbvu(4)=^IN;{f?8}R|~uUx&Y{mX7gVShpS2?*pn)Kz;Msh#ywhOoGfa24C#p3Hp$wrO20z*z$V}i@egZOC%hE}N_Y)MrU?~}-v}+f8RY(qe zn}!VV|8UV>0~y2iG*iqe&C_oZyIDx}4A;i%!xKGp=afb}k{J^k$>jgAH;n=D1aefqx zFq-SqteDgC7p-9+z;7B_^dfA!+B=#_PH9%lIHu#__@uv}D+Ibp`zr&8r(Ph_$fAT;=E`1O;h@_lX>#DcZIW0M1L$ z$d2|R%4s_J$R=>oG{m}^Lt}+$)xMAyOOLK2NScu}v)*`OAL!y=shN-G?E-ad_?2<@ zQ#(8{SSC}TBMndh@*XmB1RuCE(w7kYZ1qb(O+3!43Qg*Q{#va6N~N4>8(O^E`EsOh zApg`G0IZ|#RVZxG#JeqUcmNCVfQT&;gL(8TEBAOyC`rfFx)BmNWUK|mB3bTW{t|@> z>cXWAV?#E0go>8DK>w7a9K!$2N z3*R7m$jtVEzsDllBf>*Z6xV^+C?}O{(O)Vq_0r20Nb`M@Li#`Lz~&e>xvfl00-*_Oa!^v|80 z-d@!{JO0L_1Em>SN0yi=lkk@3o=L`PQfch`?5z0$A`KG|5-lC+*E z*`@J=+bP{gvjRNzm%kYgq~X#TR9Gn^pq8>64n>13#L5BI7th3-(uaA3Pr{AV^!Rb6 zUY~F56((9bfcOyjF_EPi85^M@XzJG`l9nL*z@f5>By6&PS@{C@hhn7~C+5RL?&2=`eXA4}b-lA*D>iN3Ck^aL=WrHkP0s6&O2& zi2*1FtTH3Vq6S2ItX@#*KVuSNE)omk>eMR6A;KbnP=4X|tHNSB66cX@hK>N*XKr{I z{j?xIV2on14P|^R-m7Xcipt3+5v7ge*jlWU$VVWbnGw8EYlJ%^_eKJPm0BGTFHk-x zuplx~_kp3nY|!hFp|3~tek5Q4t?Wp6@Vn52kzkyPA&PSXMiIsDJ3k?Re5~OtmJAqg7c3S_1nU6S9$77*oNasavDgmMA(k-N*_t@a z)4EhCQqXSH?0|28WE62y)RzZtCM2jEdw08LuZZ)fYaLI$2Q=tHoeVYY{)2BK)pt?g zUW?i^g?5VeVM1{AWvX^>=|9*7qRN6e*eKeM@TK$&GzU@{reik+rA2L!I>FVCfXB** z5ZR#sqJAeIaAwikfA>GI{ci>OWn+u<&C~4%*N1ME$O467Tg&y8HhQQ(Su8q3p(vhq0mqZYACd*35PPbp8Q3hy=e%@NWu+aX`CcKCv-j& z!O5R2FAQNtS_mOQ8kQcBR6*9xrRsni^1?_5H`X47*)Z6Tu}+hTSjLxTL_yQiG=c=_ z*2f)Zf{RXQ^h5Y8NkH2K!rM}TDwH^)l7#wYcKw6~YS(}haw#a?D5>mXZh5vuMxw4Av)E&1gQ=x(~PUqS6D89)+#7MWIrhW5yRzI*;} z^RepQ@aUJBwj1+2?qmQpDWqW|2JffD-%t^cMM~uCUwPNKFC(trsdA!%+sEcf2o%AR6I03rT4*8 zo)2u^=17T`-}m#?;t5|Kn6A2=mXc@KHT#KKj?7rK|B15~Ef-g;7p-OU8qM!bTHY0# zHu#2kZj~aSeXE{W>i5CJZhvY*+}7{=*AKj>?5TZZ+}CRR?AZ$boA?xeT=rnLp|F_KH+jkmRh8F0EUJ$&iIC|5bKMFLzNS{f^K zjQdPU%?GSl0U43>4=Y4coCIq;!5z{dNhu%+Rx&w6y=%B~R&n~bk3$XD7E;a;;i+jJ9zk~wh zN|jb@Ymsjlcb1q8(c?7X2lr{(TtVERrX^#ju`oWdjnMl6bIc=m%@AT17fb7fq4uOD;5Kb;h`u^Qfd$EQ zR>8_fYA9)%zqb%l_zuWUXk8T%DLHKJK?sii83e%E&GGbQ$rs6)K znlJJsOOgK_9D@a-4MHj}$7=s6v^)`( zh{#QAN)TyBslj9FC-;SZeCd;}e5CcdRQ0X&hh2{Hee-r(boZ34zxKMVsx$e=zdjQs zzR@Ne&(qtUzt%Q)-`0Rs_vrCvbwXiFXn9Xmm(SF8x?yEQ>pvROCJIg>jRw zZqzj4^H9ad-$}f?__~);bfRx%RO^Gn?Uc1|y%Se);`-87>+R%gtDc>9x^>{0*rl_^ zu2`%o`l8SM-C*-;Yu}nyw*EwZfAP@UXb0)3AVzYjHb09h4r5|IaK*u|6UM}VV}CAK z`bxu9Mo3kI$i@L!Htg|Y_aH|=T7#!Puwhti3L5;eNd{%FKm;tRrr-rTMz06;x1ORp z4lEGgpx%ZEH5!l16WVFp0~w}B7Xb$F0+bXR5NU}KwNg}4s3#!;jsWOm^=n`UvJ@57 zP2jM|Kp@G!42J~-Iq{@B%GiGhGdBoez{-6+D^f&eya13wL82446N5!pW^fKC7Bz7c z?U4bnmIvs&fD;!lKSA9G$OvYUP@&2NdJF6vZrY6CbAuRJ=>u97mZ-p0Zi2ky&kbD# z_VS?04M@r&TF*}f9JFDe=A*!!t4cKzykE=V>=&dng4Kyu7&YRGnLnO$s zTD>CoN8ahc1_n!pY~mX0r|yzkG+45lsF;i0SFjEmfde|2KLZQ?$VREsjr*nkIUEf{ zvkuC=k0t^|BjRXS3XSNLi*8J|n6r>bQ*;#FFWoy+YcNl=?Ma(^ zYL{qE)Gosxl+4^lGiWfHRIoA}KuMcCI7pKcVr4O574U7XqZn2Fu~Dqdv zLGq%dG0@XS-3|Tic>@sX@?(wL_1pdYCF%`GKq$M6+J6e*hBS)WTCGUzgvG)tU~hK+ zb=s8V@T(|?S5MSvpa@WwzS?=k9BT{h`aR$0bx)65@HYIf9HpEi zjb}~Y1!i`v{%kNicrL^Er(H`sS9~9Q>($J)yPp5cg1`Lvt!=g=n{97g3;nn# zJ?Vq94_{DTn05*^@gFza4!qS~@kWm2;*!=Qx}!pNl5a(4We<+?%GpPo4s5+XG=JWS zR@XJh<1;?~4_h@~w`1hVW!r0-jG8Z$KUVEv@3{8Ni@D3q2p+`8jz%u3U7Ps#*t8R6 zzl%&eivxV5v_$`5>8gqBjsJYat^C8%>a-7*&c&w+T-G;+RYezK@g4rKW?W z|D-EtN-pMyrrl~W6+R6dS;m_W{J6Yn+Vf}18*6;kZ%AU5c}sDJ-{W5yc-`fH8_Z)^NjOZOOuU!_3^J{|wWGoHW$e^tN# zi0A2?S+kyTy1xrZv*GMFXqgWAVBx?s zFTEF8l-$yPzHG+?)8_v5NhLl@l2}@jXgyk&|IxtymwJ;gUeEt{wqj@xma~qQ0SZhqIy4!ZXxZ{P3Svpi(BZvlXr!|({O9I1|j2s^2=$x;G{r18ivsbd?&kmwFj zmb&*CwjiXV9<9S}Qv68(5C~N+RZNIh6`{2wyb%W2U)x?iff}K3;c}bZJDq^<4pb4K zDa(sgOo7!J!J9}AZBA0Ftk)@skJ{>|^KD$~xQ z>3aM6skqh3pTMq6^ZG@n$&o-45Dxa1r76> zjs<*nw;J`?5H^xYL02WZ3KWR0UD)A|_nYU_GJ5nKX`~R&fyB7L9R3A_KFYh1gMuB& zYH52c7N7*$>ug0X_ig<&qioNSVdG12%W7SfJ$n85v!1@-yTLP)u6>(n{5CG{8P8{y z?<+rg{4*g>eC^%Pw~KtwWq#lIA48oR_y5OmLyGIumwf6!i;oVy{rrjI+p#mN9#@wKjdERUaYiLPPC z<8y;&PJh&VOq~1rW3`^!`@X3BsCkd^*7BckY}l*c`O^IKYQ9hL`upob-|(h4@}tJZJB*V%4q#z@5Nlc?jGAqPrWk{B7U`V z=+Ib*wtv@5v;f{>v47ktWWMJnxh2;1V%MsiRTT6-)%%wJU05$KKXGmP*Zk3Gr-Jz( zPz*V2{L#GsYnOC;#kJ|rn0L&0XpdY)ufO}+(vE2#VV}Utwa)j?8GHjLA<#^6=O(So ziE1&z;m}TjLU65~`Weu;SmE}3$k%6YALtS;_SWfcK097uQ2*hh?#l&M;z!7l!r6gykfl|gMCn7wlBB1eC}L9ec&C#btp ziT7_p@uj4XYQ*8~)wJRLqzq{7W%${Sq8qK{Z!&l6)g&lJHd)l8as{NQ5h9yH=2tb~ z`atLlE`IEZTy_!C6BbGZ8`&-bnqb-)OG&uYafoyH~=-p7dN?ksW*sW|cCg zc#QGu9*OY_SdWXGv%%FHNueRkXwBq?JT6&BjTZ`vqkSL0(CtXpK?(v zcJY^teV{AALo`Llp-hRL3ek#5cdBq+sq90xg9IPR4|>elS|zNF;kn%qRx8p|)2y*6 z*u@~<+Om!+y~&fc)PIUh*@5NAs5;?GR96IdM;VEh?OCz*7J5AEogV2`#^Ga;lcThN zX0yRs(g_gDyH`F#JzmMQGfxvXnSnZzRA}0U4U#b4pw3VgB-8~S=JAN3c+H=}(k5(0 z$fD;|f2Q~<9}+Ij$kn7xGgCug*Lch-tO?zNzgSKei89R%@j`TOftR*u6j)W3)m;m$ z^(VB;PFbV7qsBw~RJdo&CtE?=)14%x+yC791#dJ?{>r)cWvJ$9SQ&!+0y#QlC3L!z zlG#{Wt3kSja_#0^KWb=76su_!=!vnuBkIi{G?roXKcGW_@@O-ecA~Ns=0}&WSv|MtyYK9O&4{%fC^>Qm_zrj$^?I11jrZykFTfx+qT* ze_z&&XS|((*^l$aYm3kQb&=IG!ExZ9%gW}J)V=jDd#umj=*7CeFY>-z^-uG6EP5S1 zIA=ER?fCh|`#A+j-wN-sLilKW^F=<-t>WGjdAB>p6jmfhp$}zV^qBu8ptfT+eenh9}R_ zlgBD4My~w6@$yjn3#Nb74;#)*Ie(8D7ml;p-UH*suHUFpbhL6fF>)(I?n}xu z)TrQs2!{TqJ~tXYBK_1hih|IGNWPlYNB3Qu{GnyvpN-#m&Q3b%TmD?{21Dhgbs56Z z#thm?#IO@3p(y3WeC!4i#o96ymyBp97B`GL?z9`dB=?PvzW%|q66`Ixr^)&7cV7*z zJ|(y*?&MgHA_O79YCQXpP^kJi;HyT4B!8^LYyaof@4dDAt=_^;=}uFA|HIG!CEN66 zLW;ifj%RT7XJ@kwA5Cg3@@{K7@U?5zqM9#+uhrGF>ySAiBQgzI249#q9Lyg?O4YOZ zx_0x!(cUyyc*gZHcWQ0u`ktMim~va z1>kH&eoCae^MAyPf~X-hOWRHS!P{7F58A0=I}ZUUDAHKK%OU=m(5!24BKk2Y#AteHNmY%N>ZPq76W(c2~4u_t6V;u4w^DSq(rQq~q8pHAzRnSnOfp||_%hGOxXU=$c8k4NvEvHzBF^xM%RckeE zr|DlHt^o;f`;k6{Rb7JN=w4NUhFi)gLTqLtHsZUWE}1$Dz-_Dm_5S!y5*8m!zqFt! zm3jlj@WxF(DiR>}K(WV_Q1O>9Q3I3l0V*++8wNWX>LH$Wv_|1GC^sXQM4ahkZHw3# znM6?lawte5DKfF9&qE=yMoP{gq=g$Dkqjt2*y{!rXe%XmSSW|JX0V0wXYoBWBhc1S zSh1Ia_bpIZu~tNhb{EcuY<9FB!ZdOTY{Ns{skl6eM!|OIMRPV2b!lU~h~Z8(#HP#u zRlLW^5JZm6vINjvxEAeRP%4{Iu(tRm>vPgt`fJh9iS;6X*{#>SREznZg}$lZT+Y9- ziie(hS^pQ8bJwOXx_avjSSE7m#Tz9bV_yc{2WyK4*6h2z6uaD{;xn(I2LvVOM+d6d z>hXm8+O_T2hAA|rxn2JkD3v9u4Te6PDfiLs|Ehm~_a`leilg@p8{T(8Ha+;whceUV z<)w6*zxURaP@D6QF9Y)S(Ka;SEc;96)NYsh$kKC<#0Xa!mt)UEef>c5JkQV@O+8Qb z)=sx~bi9VkotJ0t=!_eC)3iBwc99v5vAfT-S>C0(q*}~l*SRQI&5+gIzr<{AkLp~< z^$#qm2yR{$$f(ntT8cdN2lp`|{D)g#>-}DYN;S!2Y;r6ID2CqAJ<(_T{#m%QMw1qN z=p%hY>C$E6#m?$924gpUIrc%*1MLw{xf~_U?!wSY;tuIyNFl`3l`z&ib*`%M*jznQn1Sx3Ryz+d3NMfspv{wBwxh zc)f6;_el%pL9B^O-&JW_Zuc5$FFZDY&d=7F?KJF@NBwUhtm^}LyHTAWahnR5 z7z-k7>CUr8_u#$pnfuQ4ZhLU`&KawC<3rK0sSsW+EJ@1Js2!0tYNPQMWb+_a#N}fd z`>~n@)DgTNogQev{|JD2-W{VYMBhwo6)K)eLOKdGq!KvJl|WWu`=;kG?}xl-ODgRFXTe1=D^NmK^{K z(J3t#VtF)ypnEoNTz}F0*7LNlCMxGB1G&}Q**rb?r41D}Y>17$u&Aznstd|+j|rQg zquo_0*@CP9Y0V$eI9F)I1Pr}*;>=362CyNlP8H@s>R|0lNLKvlkcUV``)gBUE%auV zR9UT;_d!1CoMbvg>!DCs^izei+$d2Y-2$wMWhGSAV13R6g)}`G!azMi@g!6U6Gh>N zJ6Lj6odJj|qm>_#Ts9>-)YswhLMCFb7gE`Xfg#!n5SdYLW0(tYgT! z$w#FJdzYvHet=UnAw@Q!Sppm511{51!C<@8qEd)Ls}wZ_#VZ5m@Q$P5JEM{V+%p~9 z1=IfrfPpS;JzPscJxI$+s3i#Th~7b`7Be|IAfiF=jDdr$r4Pc<-~CSRB(VH z@IZ7e5$jp#>(Ue<%-d(=L8b7zUC>`HYTw!qdJGtU!P~y76i9JvW|Lc!-T? zP~FsaYuM-<#gchSE+bLwG8j+IHT60> zcINd85|0~eLa^rHSD6zvR?12t0K+gjb$`*^e#HACMft0D z#jetua)oUIMv+@SgWD7wpd z4i$3&UD_G-zy{07>(L8mXIv5g696jk z0W=wByo$%DM*zc=Jrex?22lMyq^Ik%(n=(V6yPl2jyMQlg{tuQUkgxA0zJAHIy&mZ zR3X5P`2f>luqJ{^5&~^`f(_?Zq7Fe#6)3bS`%d8+Z(v<1I}f~!PC@*HR>$2mo@Yx^ z_R-;JoT#OQ252gToM+i^ghz@~2dUC6olje>kE|?BO~p!e@GF`vNu}L0Or^_GQrNjv zwhe_Im?x8G<>PHaK6J*tRC|$@E6^Szh>*sE-)M`}o7FyAc+=;eS|4*hR)K*$;!pIR zhdH&YZw@TqtuB53?miBTC>_3!qRX}@?|H^t?|6{Ld4zUJ(l22lHH&T_T!TIAFx zgO07(p$zO(Cv@$*4BH7ULR&;`+uN*5buowiZm9T#!wT@vU$Jvt; zUABjRbH+WyT1abu=oYJPU_aJN#>hF*6YDU#>dc)q|Vx9Ge0pSv*rwf;J3dbI@q&Sjv%wxyh`T|vEdYd42?hV#j|!w^OnHU9nfB2xeb`H;A=_Ri$iA5JRiU`{)zDP#g^5Wn2 z%C)VHtaRp|bmEKTPw}c>;j+&w_`Y9V9y=smh9cKfcT;I3nBY#snc=u>Re; zK3Gdd-yRg+K;uh2e*NM9hpaabhl7UoiQtPn41OA^D=IW>1PbI_ zMAp=WSV1Vr{i=wPQl%KEEe|lC^P5?ZIOjx=3^GN;GdQex=-}=^Rt1U%E5Q)FH=w+b zDzNCyLXu2=llC%#8&{P70PwZZ>Z zBOI_91vnKVm*@Z#dAhMPGw4k}5ZEN3D5NSfq=yvmQE&ts1g;ov1T+9#eG#0n`&bPS z|E7kqt$1J718@sU9cYO!&}_NEVyny9=1N>5(q?fugv!uhVeo}aM8mW?2Holt`^2`J z;>sZS%mvVuAOOIjZF7-)tTANy=Ti@(LljBqx3si{;z0y?;VoF%qU zNd;#`n&kL4Y*@iON=<7#l~H zL8BQS7h1D$F)V5714x8&Zw>Y9F93WqB+kp*TTW^sR`;cBK~5d380iI7G4;fGQ?{g! zIEnE~U1We%&=5kZBo1aXUf?ENk3(++PLA51sCf(7FK`MbQ%GtCYBK%6DjbxDaWBL< zQr<+WLrjr@CHZW%GTgSuSpgj;)=-f`Lkecf##ntC0a@Cbf`@LQ|8d$egkveDrKkG2vM;>@zK=Y--Bh(o4ZMja$@FV?wnN%@ru$Fr=)Wss}Q6 z_UTmreAtl1_G@!bq%Omyd6rzW>4)g=jzx0Dd}Uru^$oOGJDRw{OcaB2)+nQ>7J2)9 zLWNtCQ#aRFnZ|iH$IdcPuFS_hLkTl_)u7QU#WIVn@@QDFoek+T#)yH@NAa8YNlcZI z^AxUvdAm&+Bk3CKwq_+66Sga&dGMELc#<6$< z=nX?uGVv`O85pl0bQVRcUNP#v96UmUmr8pJ%0kJS zb3I)&Hf9mDxk7~TKavNin%xky;!Pa+KkWUK%uo*rn(z%Pv=v&?=435YVY?w|;ogmB zfXB!^jG1}}z<%&Fupxp@C=?Fa)!7Ly&bMq8py$lsY_W~UAFVnU+m$jKt##o056 zrc`oAm`ffBOd)=x-J0MLiHEk-g=fREu68cd3&UCir_I67!HjSeLx&6PL?vuNooGfM zEKg6200Evd_W{}thSm-D5+Vt5Mws_Ox0PBeeBu|9ZW=wy4dj2w{i*HM1e5V5Sb>ma18xl1zb4&VYN&6#t$)AxY9!u# zzN2BDcNa&CoXpx;MWq4brM9_lirGFjk{Y*#3woxLn$pnxp0qB*Rm~!o9=KBrNsZqU zAcWc)Bq1I&n+jrwMS|N}2S(l-9tM}s)(U&1*inKfa+20TdBF04+sWED)+F3FM>xH39Npv{*s< zoTgy4ZUyihkL5|_yP`bee;uJpr3_T5q1@pT6pGZTG-+)z7sJsV4;;-kw`TV@xg|m zHx|q^QPk94+7DB$vmSMY4BRS;Bw08LWRtMf!?H^V{ zIS{=?egN%rv`~D7zH^IFObuG-UV?Pw9vR8 zc2;V7Vzg^%*u!n9)t$|CjY2W2+Lj+MH<$*Xsmnwn(79-|>5B44PA<*iMzb$+zV47} zDR~fXJ(lPrj+@J?(yqA+gaRFJae`|vhvE4Gb0P6AqYE7=C;Nx6*a*lu&@u%A4afl# zVKL6L;~WX&Qt%=zIOQKQ2&u_`@JY6ZM4gSV!M%emK2vBw4u>KmGfNg;Owi<<2woDq zPSnAY;eX`Fn<&+$drX&E3jTx|VnpaOflu#`!83$)(T$1kAx^7dYAC{fNZEto4hAq} z%g`gky?mx6gm1v`0WSOm(B+_z!dSm*M4kA8$+BILIKzA2fXJ+g)-G3av@q_ zs)>sbTd@g+tR)byfoKCWq0kko1}F~}m)!~w7KVZjuapCsI_Bo^gB@lQ9pmX@n8wnT zy&e3|dQ9Sj49|V6NzYf=s~qja!Ted1UIm^3_=mn-NK>@T&f3CYj-O6~w5nnO$|Cb8 zL5m}p7WIpG>-=>)H#$~lG;MaLQf3Ejyf>NCt0(eI(;PrGiksoAOi#=BOH z8tv}j3iVb$HUi0w{4#5S7+lKk4N`t6(-M$UVRq6iu^l#TLNeeJt_6OwjK;45`uM>B zh?RgwHwK+3WvEipk2Ix~o3qS*$cAI$TA>LiI%7eH!N;*;EiylDY&MM*FvMnVVw#Z^ zQ-gs+b-QV#03ts(n+CfflH(QutCU$rA?qy3)<(8V4TS)BC`QnoHUi%a>!cu|b{4B1 zTM44^6hsQS5+krTnCMrt6hn5C^j4v}&!sh5aJL7fJw2Q%^6QRh`=kr)%QT_bQd8uM z>Xr^vI2MeON-tE?SP)D{Kflf#bNm#QeJ2gMY|iOQF)?WNbBuA%IRFI#5*P}tT5x?nR5C(48RB;l zluc-~4t5+)S~aF#vZKh$0{(Dx=e?y???8UDBh9hL-pO`I{>=~y1lL3U(9*o%(!hT>Lo7>L#Ar(qX5+-gNG zbg_*20mnqwi(oO~-cH{$u^=w;Nrcf$X<@9iu5jcTcutr|yF4=kn0qhe4K z*#(2y4P_Okm7w;FSr90f7+=M7do1=Bj%Xbpf`uMPQ}N|zKV}c7jaG#N@G16oR|2RY zkA4(X12JoX#wirygw<#!aTW-4tl=W1@*aN!`rij*5LN%~{0*3-)x5;G82@z(w-3iS zjsEJO^{dpOL}h6nazJo+ZQ2l#3dj2A9P}R~)Yp@=Mjt2mp~5+afCXrur-)2k0J`a# z8RZUjEJYlcN*l$Tx#pgzel_w-Q<94V8-v{4-5pO9M3$kgCLg3S*oeF!1{;ujf!tuE z{0o5-lz-XkDJjuA9DrloF}4&?6)bcC9Z?1&WUI^~;!-HacT-+Ud7^BrWfv!s3*rgf$xNZB{lG z$ri#F)*(PX5>U3Un^2uiztv$LMx8<`2}8-&a3a8mOd$#qh&db-YtS!$j73=o#ulOP zV;OM=L_%|5b3BH6z$u0H?BlG9$xc4;S5Q934RYv;d3d_TiZZ@l2F6ViWEQF8gK$K{ zSe7Qxuqiqg^r-Y{!H5AJ1Qr!Hq0Z#~HNx;hOkq%QG}yV0^(VnL^I4jQtHpFLKH4eR z*f%N%@!V(I_*WVr!K`7U=3F#_g?znjG<|b89+vtvY&Gp)X1OzKs_0k#=t2|H_2cuw z*BV*wfK$S5+?aZGFptQUYH~C}>_S4|R18tg&)bGCfk}%w=F;wN$HYqUxzu$7 zqpJ28|LN4sU*C1?C2NG@n%0Y($b*-i@dVYnj9C*ogQm&b#|utAGT^?n%u` z^VgBJ1JErLizMz8CeDEz4iBKMtC)}>wyseijA;86(~^+KlmxFApTi5#gbqbcF2$%} z=b#xvo%%Rwg;J8C9kO|WnS$$w;W|h=H0&G>VSFs4`(3JX7g%=GcxVzPq(&HyMGdD( zCAZwJ(d?dst5*hv>TRV-&;Iyn3lw^_j5fPL101+{S zzP*F$BMo#wWe$l4Y*_&E5S<6`so)5}98;=BP6+9@HYksA=3Z4MIG#2>FP0Huz;=MW zh`pf<>9EnyNVmw>aDCe7Ghulic`1wy#PBf)_(Gw~OB%k1jS3DGLP>*CE>wKW2H+9W zRJ=59ay;gn(U!j8Ke7BV=??c5JJ68-#)0q&7$b?yLJsu<>)7EmhCV7*0Yrg-deGCT zOqd2nfw%|(QXgCohf4t{z9={)_>Q;s++UVaJE*XD8A=Yw;ZPV1t$C$@!$(a-5A-+w z-G(`+>`Cf#yDT7)!#=c_F@?1N&jXnZ>gPGR$fWyYW*7Dv#Efz&Nyw>!ssIa%Ii5l^ zSw@mqAv$gy0l5hjX%HWN_)<6>y8jI4fV5G0V*njg9~jw2j|Z(^2smIWAt^;?(i`OG z6fyL~!BJQ`h5aaA5`;uH)s3(S4n&*cuwRiRMCNW;9mD_)+)$ayM{xsijNpWR62Xsw z;|B?@0c-$N!^{DF;zoL&-gq!!Af_|5!28o=T`Gjve*$MGTtD~#ZR|UX5^x^kEJuDK zM`z3ls{r`;N`t95+qb+W1^hp zne#FGB7dbKDoYlmSLl+J!RO`8J8e!a>=Ly)8tHk(FJ0=N8(AvjOT%_6?uw*ohwOSb z4J#5CxeA1C@n_S%mBz^YFlwT3O3R)yJ$YI1hHUjDJr|R0)i%{a)9JIV8u^pDdR8ad z9LQXm4S7q5@Xm)pCz4Rw6o;A^p7(FU?6J1c*}*nIf&F{#5e||9eHATq%!*Z#5n1XY zSt2+(2sz#h`~mO*oh|f`i}F}uhi3aGUt>&5?jvggt;kq#TxUhz4I(UPHUU|bCtirZ z06}<)?T+8U|9q)uC@T8k8A?HZxG%uOwKCL1K&oJ+e2^1vNJA+JvcK#B_8NC zVg3QhSq&nEYCXdF6rt2WecWh30cFC`RD`rR(wOlo6PWg!&C$XXVSVhBppJT+i1ts0 z5y8&TIj@PuI3QE2Om892!Trpx2TV z5R{@ITLC901BZFpoSqwD3Gm`*D@Q7Ytwe?+*|cP*aS#w=w5$Z$AghJQN%DfINTg1uLw*Y15bs5}iXCXII`K7hkCB6tpph6X zGp6&Q;aNroJ!_?{iQs2gP9%rFLRv~I4TJIMBS3v&leLCVL+g~AB@NPR2!ORcBVhVm zalr>^Ea{Q=Vh{ibP#+yUNG+H+VJ$os&oQ*OXwgC#L}E;J@EuTErv3Ydi6KbG#h}N= zGgL!Jk_)wM}P+EYcGH3{- zRs0V`K|p<%Lwq}DwFp}jfLTEYPJtcG{znF25p|8c1MqB78z^mZMVH%SK8Mh}0FT6c45~mKsR4H%kl4=eqer|U z)p9urg%L_7*zKF<*8%E8&?3U5F=9>~uumX-IujEqaxoK+Q7UZJVZphhPJ_o@Ov{!r ztx$icLj<9kkp`U%EE}DXfh|y+ph^G@sU-gQwup>4TrE$ zog63@HE!NkNawE3+TA;4#DQqy*<*ip#BQ7kBh9Jg z&u+8>ZLvujY+N(#+-0RLCBOti2|k`t8WS*w7w5(j7J5{)u{UOgcY|C60x=LpLUpLH zb1DU(mY_(a91HG@l3X}_Y-VPSa)KvNhir7=C?h0_p7VRl)}ibRaH~X8hZ2FZ7{Xnm z)o>CtdJF?MVNT#$=z$@3BP+w2Ev4a`bX4|dZauOQz!TVTT|>;UrnBzY$}*Gf)YDC9 zgyBv=L^RtRybTc?sEpFo8LCB+-hs-f$ZtVGq~(dB-bj&G+m6AR(g0CzJU0?b#wJqj zo@p0t10u0yGN$M4plv@X{Gjs%#J{Qo26ceJmre>NVGA;dvr*$D3MShed=L%DHKm#T zYC`O0iOX_vRD(E!IdpRB2(`Ee2+kN7M7vE;Ef7&oi?Ryh7Z9Pz^^mDig9j#}puT}b zBk0&Q%qL`J0`@YZ?-`qiN*2pIC`m^49vycH6;=YP2)B&dKyFW1VLa3d(xtCv+ZckAWkI)6Al3xnd`Bl4Y@G+nloyI zPu2ErWSR&dWC}F@3C1cxkqXO!c0tA_ifs5EhIe9nWK5w$o3A~XW7-VO)gN2%Id)tl znSU9k)>N59Gi!r9Ilk7`G1^vYeE9g}p4CFV3LVP!I!b6t>^P2E^j;)?l-#LmXVA+4 zd!xuMgxaj%ATT&kKVaDs;6eanG^KtcH4#wihD8S;XzoV?LMGUdTGyXj!EpK{#{sBQ+6VA~qCD9a@dBD1cuoq57Yq~#tec4auIxJd?xM++u05vEEXPGPIFkck7v8zp1@o(R2 zKBc=`i%gC^CD3JW6@eshR#&=Kx@Y#>m9c6mQXJm+6y|Xx#E+}V>0j(X2jijTwuP?)*%%d48w*45IkdJ1+mo?I-BicTYeoa8QQ}b zJLGXTD8@?1m5GI>(DlgNy^P>^4Jg!5K@2<;Wn}Pdl!Kxmihot{n?ejjrkH#PkAe5o zvyP@@&XabPqf`YtU%ZtEB#U5am4h9AVrs~BQ0YzV0QW)6D_Ju1x_U~vGK@yw<9NUs zKqC}jg=Q?3gqRsybHixdX)@|rY^+VwzTtG?CkR2fvQ3(_yeV5ll8s#3id4()#zcy( zLwv;Iz`g6>VES&Wp)?tr?O@t5G?%1S8tBtoX69c4zi5WOMX#(>?IdmBupp_KKQAj4 zBclv=3df?E8ELdr6J~ZIq>7T%lSm_1&ALQXWdWKhIY{~eeSo_6$3hZ#v*kmztEFwR~`oeO`2B6LZ zRDz8)U|pEzY4ri|AQi7B=|no}WhnSFe}S7oVc-QTjm@A|T~=-*`VDCq&7lyp?qxBN zQ2;t{XT&{H%mqDqSp_U$>i}V-EFc{gd=ni~1qj%UW!A6y#os?>KxUCWLPh?+SH6a~ zq*#S2GF%AEnAl1Ru&P~akX&ME`YnL9Q@6vSmHY2l$sB)%MT%8dJ> zxQcR|fE!U{j9IPWaF~ePq!?RYgV=`)#J{7k^r?UV7_Ld>0x)REsmWU*QKvC;fFZbU z`gcZRJV(qFgXqJ1Nh{rg?x8v8ea>x(*P)GilxPMwe<4+pArz27H_xgx7RUGax6*@W8iq}OtBxlVV$xWqx?A>%6JC&W3Ir%WAzO<1qfUm zFbaEk1bcMgXIQLHV^~j>p_8;G+q@V~M2|<~)Wg8L0!a+OOigO?;>}3eZEs88ay_@u zgls<1y{OKvA|3P^ARG%A$-B^%q zHtR>L9`HAGPI;ip3D^3-6ZK~?5xAzEoK>Nb`0~t7 zuE!nou(bflLB#lKA7MoQ~Mq$jpiH3d^j@VaJ58KH8R4r&wFon2*`h)RFKV3UmrdnTrkc*7tmkC*NVbIkBYzwdFX|c zA;u4pAwrG?S-j4OxYi%w|9|;II6(l~jS9{JWpel&E9{PB&NvO+Syg_({!h!vMJZj; z3aKGVu<8#12QXVStt7jC1@170OX0`$3+kc#8co&BKT35t&`&)MsXlKLNw#xdK>}+gi?T9 zsxz8VeuF8jI7zg5a8qMpP-zO%gz~P568Ffw%xk58=eFSZsd|wv>aLD_y;_))yjIst z1KF&RdhdADf6aN@(jED^19`gUk1pzM$9$sOpK1M=9Bl0!gT+iUKrv%gU}Ky&ko7eH zlmdiM1uF&-*b{q(p-%>xolh7wEhD4DAR-`9gdQc!Ae11YTX2Pe{Gxmqo)FDn@X1BJ zUMaYJCWb>jIZK(AYlshOpMrfRpkqL$fy@g;QqD^&t#L3Us94c@ffg2oCKej2Y4SIj zC+yyOTuWDNi37x*;#rJT;(6S*cWOn<}`0?JsNM4J-N$8txy zQuYOcntKUeM!+GAo&fhgI)F%pQ(%hzsE<=5pe#hf4d`SRhByr4FJrbw?3jw{6&YuC z)J$-J$l-8y|2adTPBH8d6epf}OqBucM@)CvOkob@l{PZQ=@CgvS7e}AvgG)rC1Q#*c<|L8q)3GZ%k~$K>s}+%Xg`+fVXI0+Iu}R|UDCh;{Z?5?z z882F|F}@btMy{fE?OHo~G--=gfs#Sx_VZ}ttaEWexFtR5Gl>boeu5M_QgI&Y*f#*1 zJmD@>8306~7YrC4jCd7!K*TOU$Q&l;W=jY`M9x!^E()Dcte4BloGE#ov-TEaS}aCA zsFb`UUcic|1Ehsah0jystqe=Dm8VK8q2j^XBU*>CLih$JL?H`H8zHMJBab=#B|`&x zVoEG=4fw)7j<|%BBy&>d#8e>&0N`kHJ9dG~sl;x5tog#Q8IT&8tj&*1lU6Db)LEcJ z@LZ^IfZ!;&4Oksi6STUxh)4mVS|pl4nPd!Kfly{-`u*`{h3R9pCiVWykBuntasYA@RJEtWr0=rrweAVXT z*X{0J=4~pn62OSa4FfU?>fm5mJVG+%4X$bcz%N+l$Ffp3i2&23h?l2u&5E=zYIZ}g z*y%{%KQWjOl`$12MC`!b1;b-+b;%rDE@yc7Fo0PiQc`FyICM;7`V%pL2Qz)8{?OW z5p$FQ#R^FuLZ3!z-cmS%F_-}9Uukv>v`e~riCuaZg?iYrv#<>%>9Cb3greGH1epae z62UpHlQ>w2R#u=R_8L|zW;OvsB$5Ob7t(gaVyNiKucH=R8mg(XQQQ+0uqpqcFhmd# zms2bPgpEQN^3;TxA}55p!3aMx5K6CA^D3hs8J5G%;-RL&1s1k|RWVo1_zmt5G3toq z6f7yo8RH9g!JNVtA%7SR%k)^-;%togHW6wNL{l=Ggd0@7Ph}}E8GnU2JtyeaSma_> zDa7;)yik+kA}B-$KpW~(WjF)DLXP{bjVk32V;A9M66v)*GJcGRz-<>uzX3B#`R4;f zv#oZ>YCGrWD*()VF%c`$H5e19vM*yh{u7)^<7mD0RM->U>FFx%s~v;2;Fsj5raZg zHdBz&pT*27eRM}Fd050&o&doRHKNQNPv825N8{xNc=%j^Wlxn>#Q*!nC|W9z5u79~ z9HpjQsKiR@I6L?WB33DYBKTrsXasLmFy$_o;D=>Jo26;eF1O)Pz(b6ZoW-*JOSpi0 z@E>K21tK#iN7!M`eu@7JwQSK^W0?_x*3^@Skfk%Ihr59yE|xp{hJHZfs7Qb_m8Smrn!C8hYSA0^Bp_FGssA`DyjDo{*F z%vLI$g20D-)eLn$GO9{SFp;1$E2WD<=)wd#Z%MV<}f8CZjYm_7|#jZ$dMznnZ2>0HARe40qz9Bj!lSEYqAUok-RD8 zXpBT5M90M&4&f+OtBGpqO9=2p_5yMXMk3K=x;b zsVMdsVOf`vQLsb`@c?#?n}{!mYPJ@bfER!r5?W2g|`qiM1k^K^X_T6?F0pu&B}y z78#gR!2-l>031L&F=RxeM)Lc7D9z& zszNI}Y??ex2Zmy+1QeDkNoJx3HZTB?6OP0uErND)g8Lydf=;`R25P`xgaIp}v6ohp zRK<#b>gSU0j#FgUhilWIzS34xAL4F465FY10wW{Nx~wj zMrfs&k3c|UPODkV6p|185;VEGmLOg-0}uj`S@a>Cq@_S$ zpT#`6A3RE>5hTe`T#O*|fJYFK2m#IjJ`G=fkR%}-l8vyCgIHxmWf3B|XeqH5GV8$N zW+W;Lo-8h)XB#uu2m`}Jx0*{Nttt~k0c?fQD=45(& zuidBX;daWSTmH^|)q@R&bRH7&W=X>29j|nc`*$C;bj*%_*0wjKdZw8!jhixJqnpK2 z-y)4yGRMV*t6$IaH1-_pvSsd(wO#GgJ`S0DIkeC7=#VjI6Z&_zeBC#Cd11i%a|-** z!83xg_X)~{LFepm@xD&$!=G=sS5Wn#_54e}xZ25*tS+B={&8ux&lB1DpKh zg}e~C@7Z%YABx|2mY++Da+vc4HGm$gOS3L|+;wk@4?Exe>_e-kPYyMVch)*N$9ko1 z&PBC0X%~|b%jdiex0|+C_^(rCQ=DK)tn@eOraiBg_J}KbwWLqpqCt6b{?Ex%Iu$zS z{Ji0#?#!zfVwac}eF-z@Jv|^L$EnNfO@#*vO%z# zls8CRcu1qjP_cTHDl?=X^l2;wRY8a-5P~LI2M!w_Oz@ly!Xec;Rm*7HE4A`N{zW=g zk~dIcT9;sV8T6t4Y=R*^20L!EXonbre99PUf)j?D^5)_hx4%Hl*(`<+&ofxu*r8&xiBdTBf(iuIw6{1PM=a{z@Y?U z)}aezAshT1KGe7j!~2kNBV}S}kU0v~_xd=28oKMVDW02k1y~?!Lu+0RT3>T(^L3dw z#IqSlA)R}CfK)0?I7M?5HKHlGWj&kh@d6`z!EU*Yq46$u!kq5xgUU6 zN{Q52*e6#CfWoi>1H7hsmr;#jj3x<+P}gQ}lrXT3dxVx+ycoCx*c1+z3wm-Fge;Io zh(D@G%{proEFuvnBBudb2qT^S0RW8P;er?;gTvuGCU7x44A`2y(*&zBzyvH)Y;dTD zyQOBFeS~3iIdfa3aE3hrAwUf?T8UZ)7@$I8Yl*bjK+!5gkgvO2m3dNTJ+XP8$J3Y( z!}9}z?h1n%JnG)3eR^j$rS;Ur#pCT4E%J{2^mydT=9r;M>9KEdZ(k|ajqg6dW6;83 zqWd>IUidvvsi+M+`|i<(s^cT}etEq1Nd1ocqDfCfc|#)(3$wrT6kCoAaJix1_9E=- zK>O%H2VXsm>;Hb_n0aaKA2Y|UFgh-Ka6rO~U9i69>~DRnb-JDSGcD2DVp^ZYrgv*S zE*nY~C0l9ak6btEtVzzfy0kxdb3gBVw6AWYQ`_q8!`c=IZra#QnfM~<%8+L50S#-8 zJzkL7)F?{rRr>OM;F75e6xYYk9$p@jh&inDKF-Zpv8n%`KQ$lvC3ofF?y~8Ed6Dlu znv}XUp9W6cZU;o`fTQ3oQJ1c1fp-M403HL=gg7liE?41>;B2T;Er^EDm_SMm zfe!pD+n`#jG({#F139{$q#HpLPvAPLQNpM>N&v3~pN*|65#tqj9at(gOmpTO5>%X!AxF9*Kqk5F&84pz{D}$g$|7)XdGye1~E> zfqjT-(7A#ZBW+awgQ=Sy?G2O%Now>VBEr={cPNDn-)AqmK~m%y!gXR)BYA8>RfIKB z=ww<&uySyNNH(c2MGylxg5nOBqoXe@h@ClpfyjZpme>YDQj|KV z`J02?V7Cdks&`DakVkYwboWR3Qfv-jg8%v0wqpK}Dym%pBg)1a;_$R%G>zddz%WHV zDqL{RqV)tL8F~XqQh{#zJww(kH9{IlK!?!iL7%e?0<|J@y>wBVStb*tw839oP;@X@{F1}z)QGUMuxN=BJpl?wfHL-66QeQt!A~ZFc5^pg zm4zAK3p+`$W_V~rUNr#4QuNvF&Kx@xe-L~1H^%^RDPDlz?#{YYgng|rGqmrO8fxbC={Sz#br*gqm~5XR%d>{{W8$wTE?x3@2Aaq z;+ueB(3*Xrx_MMo?}#xL4l%p1BO zaMOPG*Yyh%b%NC2eo*|g-89a}aWsEy935pf6uRrIkCjL@1uV2gTpH>^}4S&es`6$FyXTA zZx=I?G9tE|bSwN2(O^1lrH+I*aMA$ngFo*abuzKu^s8(~s{iXAl7RBmLtlE$_0H!d z8h0z2H21W0V{}MHy;4(oBYlHU=c}H}hs6ea>>YV&aK?wD{^!RSB$|X8{r=40>FQq^ z_N=I1Q2zFDLjNvdi)^X_B6@g?Ki~Pt!_`KAY##1iQu4XtLqUa3%w)mHZyQGyHa2xj z5tO7PEEu`Az2&Hfw6<*9hCA9b`6FU##`*TVaK0pHcK65zy93upzJ54(=d6^UZD#CG z_6u0DGO+rV{(>o9o5P>Gr<|_;YhhD>ZP%jpI#UDnUs@f_xjy;r70sRb(&2NKl>~1s znOW74^Q>JKaJtvsqndwRs^0GYZsY3Lk>f@>3<}saVZUpb$#2EyvMbk5mxu9Qw(_Pf zUH6TjmzgoH-!3P0xD>aLloHY+CSO^~6~aQP2EdYE*eio5Sjs98OHLCO=tB}S%^XU? zRLBix=&t2WKXrJG|NPH-nY2uexTC3)1e#`cX~Nij@cJ_Nrj9pK-p!7SY1R+XIqptz z!5)eeuqEE)b20Q>Md3n{BUi$~V|YI!crpDNuLNF#>B-RBL&%%Olm1=dK8f&6W^Nk? zql3faFuqCBN<fzOG8G3v?uPjhKsUI2z%g=G|Nk!{$vG~@0G^dx zFhR94&ffwV0y*IyRa*Ds036o|l9YuEdJ{ELAQWLv2zu}1D)kz%-7!^OtuA|(OBfi}5J5t#w5t5}2w+Lzvom;bhG5glg?7xnrZWuH2PtALqdnwhYF3-0( zILs;ZjBHBPHrLPcAiEbKl1n*8TTK=>?Ov7?Wm#0Y*0T4Crh?Alimz$+9zR|h7vfy| z(bDpIzF~>hS>A^cr$W|08QA}F!HKByTMw^f9@=C-ax&jQZTDHtzZU2fbh~lC!S~&f z?mYvWZ8i;FFhZkp=i>B7b&Kh^p>dy^JyFT!Jo$&9(9rq0ChVO9KS{NEO(^nJDM5G-yT`9YTXfq_Uxx8bjCVa zwTB)`Z{0iI(!R6lpf#IcO?l(l==h|#;%?mBBMVF~rMG6^n|QnF7XRL&5{tsWUZi~f zOaF+i%r+slReWq$dC|q;{ZmSXOP%+g=`#4y>Y=B8+GB8P!#~Omm);t@7}VEP_m$69 zL*cp+aeqHgzx~&ZN6xoby%`cV>tB!GinmRjA8^au<%0OkRf9nd4K=66w4RU-Pi!+Y zi@MWy(}VXl5iM<-kMu3yuzK-+$?rwVc<&L5D|*~3-?YGwpHUl|rc}yZ4M;rCsy=X3 zsEm>aW7yKhANeKcWf-GLGALM&l9EJxfgupEZ#XqRhlwcJMfY#lDdd*%#Z(qR!{mwZ z#ZVIDAt7u$FN4T1zK$X>SUd0o^b3~LgKLEQqalyP6%!F<3TBjJ80cuE2IEAKIfxLb z@WD4ysZH{K*auP$5#0)OMFfQ@&L3cqy|xrcmGeR@*f6>P$K?D{2R(|DS9z-c0mqKZ z!CzF@$*z@9Hg}yJZ^7}E|Mh0Lo!n{QD$sBM8OLSvgaXj0?5t4zWxcgT`*T7+BlTkp zyVCZJ9q(mL`l!HQ!Zq7If^>u=g(khQgLX9?0^|%L!lxAGzE?4ISS!+RhoJY^_@PFq1QRTM&kD|8XEn0pbTKDDu(fX6Da9;m$ zO?MaD8w~pUMTmPs^ISudjJ{K5y63FWpVvGyI4K7%+$(FR~?k&V^DNpg+?mJt1&oERSKPI zv;uI%E#^HE0LQ-)Y*CR;$en0hjN>2@n9ZocUX%`10-Bx@A4P<%8S7E)%Aa7JRg6ZD z$>!Kbtl@))@9;Utodtd-8ISb)nkrvTKiuX0sCt8*)29^9s;OVJ+HKjn<+3D29otxtCU+Uxh`s3*&xa98PBOCtOawwD+W;NisY+vik8{r9_{UsJdHcr#NYDfSKMG2aPg``t{3) zBa;^u1kS#8sMuF`S88L}l4TcD1}-~PP~CTpO-pgezM>h)*X%bBPTHLn>)z+xm(};D z`JMabG-As@$MPJli!p^Pu-v$*aVEBbFO%ttia1S^PG6gT3uP*)uGB@9itQlc$J| zwzzP<`GRZV4Br>Q>A&VYw9T5IK6$9bt7zs1{`A8hF0~&!op^Wi(vyhA+t1`}DpuCF zPB?UTioZ;A>4<{^4ot4{XmkBz%V_<_XU=TwyktbThzpzQ%_k?8^_gWRZjYGoW&ZC+ zef_=$n&&pB8P!^t#C_+9o>p86t_c%9YYGbN-ra2T{I;3PzK(xtu?uUgT6RIR&Q6J$Bj8 z>e(r1y!A8Vi>2jH`bOuxOleGbSKixUsm{lCx3lZ)rv#QIogVyg`u4i&;3CUARasdP z8v^^>h`Mz2VE*x0J^`hYR!B~*sf)~gn-n>#7CPvWi6YmhU4f()*e?d`2b!=60Q1D2 zg-2VWw~T+&7QX(3&L5{YireE*Z@Hy8w&?Q;x_g{Z~`!TyN$NB6F-F030Yns*eO&_g)YS5zH zzVjPzjz3T|>bPlO-?-uzy~m8L+4Nvt!RkI9$F%|sm~DH`nf#n&fs3p<}J|5 z3z%9kUVHbhlzAsN?wvB_(GZgpr++_nZuMBc#+1cnb8|F{%sq0lwPj;%amk&HGsOy86wYD@9O?CqsLq9PYL zI|8E6aNENgaJQZVJ%f{KlFO5PrBMRoy!WMqetFnF;VCUiA z$Se8y>5zZt!7=?c0xs zVmx~N`p6}=i>=wK=I^}D-+2RXB-$iB-5ovj{=bK!gEZ8$#w>gg{KmuhPD**IMQe7b zZNrV^h;jLchu`z-bX8;Iy1eXBsmH+>PVquWd@b zuzmTUZEKvDY#fkxOQ-vh!G|yJ-#mDr#~}Sxo_75n_6eHZzV(HrOXD%4{NP!FD{F$( zKIZG`mdrik$=C6?Zf5X4yw3HK&H1z;4+i_{mwe~Fte^JeU5b&magU^{-NN^~zt694 zxfdcZTrzXd){MdH+8Z{SpPYDpqt@(?16qrYI9cc%8F}{o(h`mEFSjMlYwnyzVoK`stSF2?_B?` zCCiGheVSRH@kHwHFh4!zNMOwat<@>kb(_A8ZZ)aQy&b6eCicec-s*A5ckkSv8=|?& zu-gdZk(=wTnFjP5=MzIspEn<2C_kGURzUjyU8$iPZWdp*26|wjdAKeT6){}RN|M6 z*S@C`tiJ5}`QVZ0qK7iqcY8CRcFKF`8TZo^P45nx-(6GR_~)zA6W3nt64*@neE7FzUu`l+ZrnP$ z(Dg}E%9YuT@r`v2wZ31^jQ(@)XN|c2{+|v$x#QJq-{i^noN`YWOn9Q0Fseo`dD@nm z=|VqIZ;#~D4kJZ>Y%Ubo?hXuYkNs=AWOBbbf_YuGFWHb^yCl7}&U*Nn-3{N8Zsm9_ zc{6a&w3(CaG}Y=a_OL&*plRX_LFw_VlY<|B_+WlFK`IShSi5>$zY?z^!`#qPwQ{}o zhQ1r8i39o=)%ne`lgxY2W7DhGquxI(JG|qn!P5iNK2`=zuJydMWr|mqU$(#Q{IWiA z#758iCnNZ)vbNp+{7X~wqrvT41nvV1vl2a&37M<5`w#e9Ab1}<&-`keW6U^e(;^9J;)!eciQt3$54w@vdg# z%s7j~r>_1z+HcRLx7rr({*2$u+faBS-QrMrjlXeD*4~O^gzm@m)w=w)X->_x4H{Ek z`=8xwdO&(VE2e(<_H+F8BYF>uzZg*+Tt37)VC%!&VyCY8ULTk$BiFTfU=L1om=pb14E zmR!kk7`0(A1!lvHdbAH~}J_VvRH}rh-r>_|1)!BZ6F^~VqVpQ_=7weYv z_#=JA`NMX9{b9UL<8+US_ZK8cCkvjR%c@knm)Wyg zJm-v%+95B~e}C(=M`|b=(`@!)M0uyW^v4&(N1cN=wYy*aL?-Bv7~CH?*S z>K^i9-LiAO4KMt?o%ViQeq4Gk(tYotyK}lOji0yA=H96TOS~WcG1Iv|#d4o-vV;H2 z_ygxY7oMEokX<`*(2B`lkKWk+H9J#rM(^Q~thI89dS{(HgLk^76DCnM9+|@tofryC zFm0@FKx!fosgnHZ8xnq$ne6(yfP@DQ#LCsy-DEs!70-n?Q<_X@9C1Xa&_#b0Yf$=HR(-{YCLiI?TM3{WY5-`S~yn6 z*sc$o&6ilsTq55yHD%i&ci|9OQ|0QOyGAVCv1Z|;t*;~(W928ywL>3t;S~?sHSO2w z0gLS`T<%FUe>s%6!E;miLYK;s4Us?F{yuL`Tab2_A)PK7J)U)YZ&2;<)3J%>ZV6Y0 z{{GMHtkfR8-3v7N#T&z z5gR4f##Q8gu zZ(R6rB}dvcO)xEb{m>7^zuIgZ@*;6zd1FHQ?K?I%ezy2ptn>Eos))yv&%B>@d}l)A zqLatQM6S~K`}pFxq|nck4vg*m{?WrLzfK)ie&Gc_aCM+Z=l~zdA*(09HCB8$v~&G$ zc})|WOw6K=4_dzMid)62dx!3J33&F&eS&A})}v*Ip8v7xJYVCm-243Vt+(pWIfzfU zI+;?3YnkSsQ6Nb*@`0vMf_L{0%29x_W}MJ=5*iS#NwcG0qrQ|=Nwrc;D5BaXYt%sj z6hp&J)q)^GlXVJ04$h5_`Lzt(Ov*lAbpkvAiGXYPjFYb{b=xqjq|3%x_)O)5`)TmAKCap=k~y#xyz zES}#x*m!;X%!<&0u!t)~hd*r!kXX9Cjrw~3Vui`$(WfhZj+pDa-+jMh!zs(JyO(dN zFgq~oTd}iM$d}f$hc_x09;rysUfAnRqUHPxq2GDlH7S4f)}Q-s?!VO!`h0k4cd#&g zOj{* zA72W6iu(Qa;@Fe4V=mLXzLSdhhx_gF6MTuXoUEGo+1CjP#? zCa2fdL~WC9AAFCi_q-S&+MwBe|075JpOy#DQ#fQ{Lv_)~UU>Rc%is#w40wBU^dMyo ztk=oDA>2ln=2V)$4(!BRpPN0QyS2Gz;e0zg$&QSe4|$`#)aM2Uc-ClXTMHc?jO#l7 zO8R!qb-6h~@-fIR+^!yz7frbpu+RL_C`FLISAF0XT|LWW4P(v0kN!Af&}h^4c;5Qn zUK{zJcm15xPjO=Mh{vy-8bkW#UM`rlPs#_t)49KPZF|j|TV1!ChxC4U$2rf{F=b-< z#HjYCF~Jr2GR;Bv&sg7|sD5%l^4kb)yBXiKM!h*Mj*aC7g=syTx`luIxc}$1S0@gs zi}Lb&{w{st-o>JE8a&yp8^>$Z@9@+Gf8X}ga?N6~+1 zMBdAJ%j-$=%B3*DdTOD0@!-EoV`pWAmrMY70|Otg_6==<)jFjJk(t%v*Z* z{;d)HB6Y*!?Or%pK$rkv-lz#_V&m^rN_<({d?M8MhxE<964Lcb#_92$|8*PtQMUMNbf0(fPKknVCNpl9Z{FB1)KB2G>Xz?) z_0zf;A!qg$#k8;0v1~9e*nMI`O>4^_Xe>5rW`*(|4gNatDaz>oR*w(tV{;|2{_ElW z&Z3v;x0el{)#mV9>E_=)9`5&@=j>{DE~r z^XGRac}uN$R((-@saX%o*zH=J>a>wB-tu`=#cJDX51|cl(xtI zp50@2H}&hWFPjJMoO`I-oj>fH4jrBO#z7ogX6Etsm5X_VtI01r_H5UDAM@|T^wJG= z`e%$KcEdLJt+9D#IPRF*uKEMAUcIjE>v5xb`NYwF7fz2Z{dc8zMadgU?Oof1tFPD0 zkk<%G4oS|+v;CNAf9V}$#+U@k%{w58RhCSbw8}_E9H0vsLvm0M*G6FJRo`HNv)(53 z6JoO~eO4~yl4_dLK-25=)Ctpm2}!jykSZa-={{Yj+deIDDXW9P;qMU%6}PwE9* zcE8^m7M$)hf0)TKz+fdQ@5^E;q>>EC3bub#;QLE05l4XgW-Dlp?FO00%WZCo1r7gZaQa@Ssw-|Fh#rxT4`)HHRO|DOF&R-L9Je9ZE zZSRcNf7_gxZ8qFGqfdO6a@{-sQAts%_0wtqh1s25ANGO>D^V!!!~NgH>=FlJ{8JtE*e@L{;j3l+VI@#)z027()p7l z?zcv6Z#C+>sEC*G*8ODh+Lt?5J>0cnX`|ETg!=7wRy%h8^{J%p)s54VOgBkT=K;fJ zne1QTSCq8z%iNXq${ov+4fft_5k+jcQkVXF>MFHAb-b_TUiKSe@mS_{+RU`xe7D2? zwL^bRKAPvg@!bAB!%gN4(v6E;p5(Tq+&}kyU=n}CuvJ%@-sZP8Hmq3WbZ>V4n8dAh zZ(ZxkaPZ#3E57^8)LzXuRlYOmZFy+<@ewnV*G`^P9nkO4w&%YT{qAzv z>-EH&jZ&|hH#FkIQdYZ6=jR<5eq)Y6FV4kn*WD|XU+Nt)3#Y&Mc=?!ZZ~geKiS|SD zX4dRI=xIHAPC|THPmOnv^k2RCnE%3k`h;SQfe!b65B}HfZbQc3+OK=93SN1$?->)G zQ`L3NOuiGm$V8)3@J!=cMYMGFm#8s zq_mO(>ivx0-+!&=&8(?cv(7nluDw5dUz_q$GtFL%@Bt8Qs8Ky1nrmfSEp@!K8koI{ zrncJqrDhp9<%9fr?m5d6k;NApcIJ14jeACH(S!Ny`zRerG|zwK3nj{G*6Ifk*- z#jwNvTqwFq@vl(J*nvBZ2RJojO&M@=HLZu_Z}&r-INN7;pdS@Ed^no7CoeFFu)!d>hW3$kEb3+%r4p-~$D3sd zoP?up#&S!XXK)SaT`i9!O=b<5AGgGww^eD-b%CUwW({pOv{Y3+^I1j?G4OJ)`sR;w z+dLA)SO^FibI;l*+N~7WljT1Q=qKfghJS(VZkE}HjJl|xQ8Y3hCdW6;ZJd@b`{P!p z0i9}g!Y21I!E|7e@w#i3kO?@$)HN6Vv&ZFwA(>9eXL*CO0Q4Gk(~#w`fYikD&Kyv7 zPc43fGBo{rP_+_^yZWczu1ih$GH)GXjq?ojT9v`T15;+tZu& zDL)TZe=d_OaW-ER@0DWI)u&o2w>KHr+6zoS*W!Kkb@gjMyvI|V7?13%%tc3qNCAeT)iLcpr3F zUyqSFmtOi%?fT+C6Q&-s5H%z7X~{Q;oR^JRR#2Ab!vLN<6%~DZxk#GDFtR!BY8rX9 zDs{70F4u{*r<8Cae<MvM)op4q*K8nvlFTJb6zZwHnvySQxo9p`V;Zbt zEtKOPQsEz0^}nv9e_^G6AEB~J zY^WgZzXU4^Y(gb$5{wB@x$w3&5I@Q&K`lQ=>8Ysh*hSRy|53K6P%Y}6e`xOiBfQXe zQA`l34Q5Ual^9I>e=r)#Ncmql1_iZ85@-K&R!9w^bG4G#N9LpSG1$|oV3|}Rd`dOp zBOoIdsl(!+zfMM+SPiU!mho@hTu>-n9Q3^W#T`;NfD{# z^>!{yqTtzRh}PzYeLpbQ#Ijg~aE*u-U@?1FA-pYc9jrHtV{BWr^gizja$Cux7_f14 zESIMi#{#4cF(`!-WjbR#8i@|ce|xTq0~j?Q`YC;4=F&+F{iL)S8IrsHz3ws&3o)hR zdGX6Z|7X*B)T;mQsplpk37S7Gv?NY0!0d5~*wYpTa$jU9*W_5nkl*B}8m5m_8SOi@A3ZS0C>3)4}(xaFaa6`nSMxZyp%2T^IPRR4i+wxC4D*pbS z5S$iZ{#Oq0@3-ZAg`vW};d!bPRCv-MDLNyqv38UR@Xn@3qj%>pAe6q8kwHDXBCd4K zPnHN@gnWL7Jk|#5v{QD^`aSKqJV#`3BaxX6HHz@=`J^q0`CZohMh96ure@o~F7sF3^E#t7+_2Al-tVz*I3Pz! zYls~{1j0Q&Hn=U0Ow!{<#|mBS^{-MJrHg1wCD2Q?Sk7VIkAFHy2FWfh@1WIgOUkmxJ!d3td zi_4ME&{!@VB1o5_6|cJU2-<^HhcLi47&LX}zHJg&(EUjMsSq<$gxI z%*i_FMHJk8OpV3{{Vh4`^DR8;R=ElQ8m16zHpHGmqo(D7YPD` zgddV0{sZ8wwZZM*p^XSc6$I6n)5uM!U-4~v6G_^Tzz9cb{*(nbckM|%zagWM>~Tm> zQLh#bT@{SP{^Q0%Z~&(H5*42FG{iU?mC-cq6I6#Rhqg}cxeS2+`iJw`@~lD<-jXLE zgsL6;Pj!V^Fi`%Qu^%+@&ErkueMCi?C(a6&;BzgUNqL6A#iieV){8?#BNQ;dn!DI5 zX4I;}oKh|@ZF=5a1&`y1l1s%qpKvUczForzA9drZ(^Saw z1&O$X4f#~uun+vRMNyYe)Fl)}MxwL{^nZ@)7nElAFUa$M?O`A4&Xupv;BoRftUHAA zr`m{5s_zpRa&_h++TVTUMT|K~&zN^9KfUjH9$Dn=rDN?j2@y)_4@1mI{|9(nT*6Xp z{S~_O{=&ZF9p_#LxA7x0c{!M`#0-aGWFeWWZl%D6zdtYyOs8eoWgNii1(TY7IM){4 z)9QE$!1^}I`yF3jRdYUC-qVGACypbP@O3$~J7t~0VJNCFQ-1GfZG68lTDeo2^L|vl%c`s~j?*m|}wU&_=8t<}0NkZ1e-lJN>?J|69CH%EB$eLJ$F zmqSN8lgW^*w5@M|E(|u0MQ`&1IzpXu=Q@__>|!mD{r&?3f3)mQ^bwv3138b$gZYkl zPUP(T)A$f6<^(`E5OyG%eZAIRu!r;Jo)fB10w5VYF` zuJg}HVF5n`gDU%sG^(i;(yMgT5mI>i;u+^Vwx35ziAKtId%e{5WbzU9B(KDiOUi>{ zZ7@BD$jI~q1>FWv@R`6rT78U_4j0Q>7BN{lC$gsNdXxI1MW_Xah z6SwO+NcAdi=RV-JV)b14Dhe~%%;I#B8r(J;7Kbc0{i}<(<)|06>i;=kp9O##vS$$V zIyGr^xI4hbGv(;pb3(&eZLoi)g)RkqnGu~!PfNRD^X5ViH%QtdoH~=sR)41@1s zM<^n6LNY9R{>*$_E;E&J+*mcCl+|0fu7!6j38VrEx~ib=b`J)EjwoFALvqFpdms*M zKw0S5a&5x}p@_L0nGa`m2cKa=ociy|G?4hQZfTCAsU6LSzZr*w?T88b+tNylcZQwD zUVoQ7zgofFdziuYxMEo>gJ}1E+^SRH=>ubXYaQ%H;$wGp-z!XyuFQNZms?>Ug&~T6 zXZrVI)Tlkvxs#>cm7W_x775}%jPv_|M5Mlrzf&c?#KTf~5GmwwjBtD^D;%tF6&(+B z@M5Gj{HDl+O$PoCz@F=gU;Euj-{7u573AG#oRq5(YcO~LSUxqN;wI6{Z5LJ-9D6Xb zDf@xRx`1oy<;ta!l#Vt)RW*f9i~@GnY)BWhg%`B2JyDfjQFy|!|66%2gepE(C&9&I zPAgQ?G^Wx*Wu4G6GImkH@(d@`4lK}r^OwDnLRuAd^ZYjMIY03m3;B2#@Je|{&>oFv zV$bL0ZvCp^zH9MQ~cxv=LYvUz-9&SZC_gVR_U!bYp?o*pIiERwLbX%zh z?gX0x{E#IU-<(=hJgo9RnO^r#Kr|#*>pq3eMfclFw}hWq$(+oXN**YfuYQx0mcHJK z;?)dS-{s~NHgnT^R<^2Uy^}tIZ@+G#$Tmqlax|8T*8W(1{9s~K^L2G=y)#RQ-N)*q zq{4rIB#6)#s5jJWj{W-znkhl=f_ZG9q((l^`l}iAI*pB(G%XvecGzrt?Lbq_1^z~- zZ+Pu&eetFn)5pU-kjTi1XvLN@kG%N6V~D^Iah;ARTA{xHdXLPOg|$6C z6AHMX`B2U-O2L)j^HtJBrXX`_(B8djYL!jw+uiNJX~OZgZrbj`*=(HY-TsbmM0+A; zj+QbdUlX}P{pnE10xfyP`_6<5Sw0Hr0m(|m_P1$?+_jEH^5t=Nc5nW!2cZ?X`RuA| zz=(Je7n>8tk@&-#a+75b2e`Q^oTwx@0XoGy{B`i*J&j{Vdf|9!)SMHs#08a9KzS|| zu`=wcKUGU=h+5%ofMq%&6o;CZB5V3^+Ak*@7+t@5{jgGHHqBQ*|H=tO8y$?*dx?~H zN(amKeuFIhY^a&h`gnFM(w0Pn$+&Y{iQql9uW#u?bmDb-v1%7ZAs?61PK=X#=7#K> zPOZHmWRKm64`nZc9^{W!cgy2vU7KmjViAy~luh>Z1P*BBa<39y1+UGa3LT`sfooYg zG>e$Fm0`KvuePka*WJCJ!S^@f2qSbwIafI^jmkd7oxY5^+@bE7g)#K`09ol&Fjp4$ zRU<;mSWf3$vb_@;uV7mB)MMzwjp&=R?R`7OGd3;%+I+fmRx2-FwTwaVT=pfaJt=!! zxIcK^inDPqO;t`g#*HE1i(l(;n)z|dTNt@#-y==|zStQYqa!tDF@57{@zm3I$aDB( zMqZx(?_+{L1QGKb9j-FdwKL=W{{e{p1Kh62U18TvZE)~X6Z?wO`qj=UxkP2!;r4tA zuCof#l4@RCf6EzlRkhRE$Ga*vyXV<>>3NtNY^b^bcxIc1ptWmhKRx#Hh6keyX z*XG&FCv0B{4qgcM--jF>M5{O>(g8=1#{x`Qfm#=~mUth2Y4^YhhM+tySejd0etMIB zpQZ8dWxb(i8YR9%2hXDAZ$oHg)Xpc5W#MD->2Je64KYMYcLANA9cVt-61R8Zw-*&L&CZEI0w8i zo@-6X2UnY|DlAxbEa{;RianLIvz|jqOJIWfwbo zLXw_@F~SL9VP#;z-(xXWDBfg709}cS>8~qnbt8HmUaaUmHCLjDkqJ2A4;?=;7jritQX_Ul6U0UTqmg)A0PpyNVQSphI%F>V5qm znGydc0x$Wn$a$<0!1;r|?`(Us@!d4l`89^es9hDP%EkwJY#G#km6y+%%0kK#z973co$WR8yZP3oYc|!0wf*L7UklrZ)Ul=NyuyV9CE)7 zk`@~6b7RY2-=K;2&VOFW1D?@@F1I(fJve{X$l_5;r~FG-J9BE@DHbrr8evCdHJGZR zc%nr?_n5)hmN26eOiJ_`W8a<^WUU#58>uWe3>y_4V03)?W}HaAzS&>)o+%P7`( z(+B(8wn=^a<@X(lv$r8=*2jhOv^ZcjxD)BLiGadj1R-{9VNlShCSsI-67H%x17Z3nFuRo22h!Q#f>x^Kyp$HPs`7QJ}y*!uxY zKU4uXSo!wU@--8fO+3m0N5D#u%;M@iW@t~JeC$w|f*du=Eb3H0@zf$;l}-0bY>(8% z(ndQ@8L69LJv4ff2)28fUpn%POCn~gkk6kr?e1lE7~38FBsSF)1xImWsig+ZM(NdG zGyfS)ylBujQ$4rqHYaq4400YKo1Kun<@4AS*ILXxEH$Dy&U@d@)|FGs6H7JkkV8yB z^V%vEXsx!&pXZpO-Z_HLBuL=GaZOB=&;wP#(&TFL^Mu@$-=phw9zFK`sN2tnb3;NI zDh&tQaTs7UkHPJ;E&h2d`*&4+&Qh+2Jr;2PXgxPOv5B#BGdDM2Tpmw2QXjnUH0VRun4{v63iNm_L2VH`O5Ld*VT!igztH7%CaW&re~We z{}L->>i;lq_4Kc-k4*>q)U6sURv-4>4^Q3ItGfm>t$vn70c!nO z|H^(dakTqJCnEE%yaI#=Y-EaLObM}C!k#K#Gziq|LTyvfcbLmXAF8UjDBqMb^(Wn2 z^diN4tEbkbzprP5s(o}oZPfTzHy-&9CdP~_Nl+M2#e)=NpuVGwDmOi_MYTOY1J+Xz z81s_ulqC(pRnbbmjSrX8K~7b3Qh&E)S>8|K-y8cAjy2XLdfeYftOGlO(Pb1;+Vff}$ObP-1LOLK z>Ahpa3ms0jm+}QmMiuEkj9gKR)M<*`4FF0y$b5R&qMAIYk5}JzzdB0|0Bj=5OP91P zE86J@6rvZnskFVKS$dumDA+(S>2)_H-UlXlthqNqu{GbP6~>g=<5 zdBd=Ho9q0tpO7{G)_{6+e*lsUI%V{2nh>Ju#Y;TDh@}hZ?2{t4h|~_j(ONCX8hcS~ z%m|uUS(wkLvw`Lo_{lmUtBTG+3CYT=o+&Y>$3_s}7G2JOf?rj`T8ud73$upDBrLwZ zm>O_MWD!6JHlL%8m+>1>srn5h9nQ^eoXTe{qk)&YJznhQ;!<{UfPKw$n z$meo%A7NE^`(vh_wT^vqkB8Wz71CMEQGtE)xJ;SAS)8!E6c`M}0zarsjVMd_)tl8h zr43}+ncYQ_iL)ki=eH+V7-xFrmpC!rewTYNp}TS|6ZW=rg2S9CK3%@hHF7v zk5?#|a#fdzIe7ZRikpuuvUBUFs^9gpjwAGAe;DrN{c)?Gu6xP!+x2Kc809P@kdzECt zWiMLWp`))~7uQR;2pe~1oEe3E7?|EZvW}{>%4{|LmbCZY5g!qMM&K)8+U&YqT!C0J zc|NkPz=?zM{GabN)y_@e1$cDSGbL?@X>JF84=q%m`kH)Xgg@xka-o*FH_cCgrPA&; z<|I{;HFeM-526!TKel|i=G+?R{Ek)qD~lHvHY@bRU4Qh8ldGtuVw|q>kBDnNag@hd z{^bVP;0KC7qW!7mfELIIc#N8Yng?{PJeFl8`y^LRP!7<99GzP64bFLPKv$Ew%-wy6 zEk@s~P0Nko;)Lf93sr~Z|9!i#)_N=O^6LcGLl-5>!WQCJ1D?L}HM#PLz3svVQE<5@ zR*IZ_98XAYgq#P#P`T5Z#u4*4D-ZVAOyf;0o9g#>}O4W$fCa6WJ8Ohni1ab44}NEO?Hw;wT%lxa{N(C0aa59pbhk$?z>!frS=azl0szCIdqjl9l@Ck-jM0hGtjbcfuIRozlKnu;;!uF~pr z#n~AC2sJRf8VHw|N86)h&l%6F{-RX?t}@FEmaZ-$iICCv8M>+#hmH+YvFN^@_WloG zq&<-b2%Wt_m+wJLvGA$Tov?2Z7~Y&7Cj|KnCAUSQjUO#%RE>nrc8%Tb=BYByV$cl! zj;YryDkxi`37_It--x-7$P~VBvS9A51T>jfv^SB1kM+8cOp%ps&9TJfG^(ejzHWEt zOuE151Y#a?S;+6mp58~yXPPpBT%JZ()`~h5T}gCauz<=XtkjV{l+DO~;KEk5)rJ&` za57fCl775z_`u<1K{<8`u?gnr@&%0t+b(dNnn%3~Zvl)pir{fm*Su@(r24I;e$C85 z2YOx4d2;raj=VGx13ZIaWX6YHEt4^I&ND+n}tvvt$;rLK;^@1AnU!qJI}Sm!x_;&WRi~pXwnQ9kvHw zni;&-@=~U3qyk*w8x@-N26c#TL1t~{aP)QL)ghs|Jkc0Wiusqnx&BACNlXpI{ypOy z&<%7h)H7nuQp@mS#IU6G1O9f+n)QZ)#dXDB*ZaLd>2YGJ33`~_w_C#(_gJxJ%rX{v z&H(;%V-|&Za?l0d-swC%JHV_v;J52`QE+a@z1v7J?#N|KY#wLOR9okzs_-Se#5h)9N!b{1S_ zFJlZNx9r~ckTX=n3MYnv;Xg>**W*h`#Z{!F8cp|Z#vs~&2Z_OS!oCBkVda>0L)+L0 zddnVYc5adu=1BU3iRC?(8(Yvl!w1Oh!XbgNg{txf;tMMrAof!GrX+|(e|ob;t%3Pk zAJOe3h`?4`OY9%*sae%t`kb(30OZ0gJ-njnm5 zzB=N!^)6$tGhl%Yg-#_l<&ce+=y2t|QQ=XHn|ewX)fLqLs25U&9f6(i@Vl-_!g^ko&4bE7CXUF?ZsXorcl}q)93SkeNDhnwxH#;wN~KBF}M0+codBl(KqGQ z0T^XOOH-i@3D>eazdA3=f=sA&3kHjmLF`--jy-R7yqLgX9$O?fbf4f6*~+!0K-5)B6mfj0ez=IFVu8R^!weEi{P+149l@lnKX z=lRET>Y#X+j*6@2Pk+Kss$vtXes{c1jm)8G35T4xLT_v*R&yLQf)X~GEn>eJ4S2k4 z{AEP8aN(>!R|{qk3$yEXPo!$6iW~aT9BE3j&A@;6Mf0bIrz^u(c1`qtFIw9a;5J!W zeuwaZz>TeR(%khT7i#7PKRR_UbxO4o$sdHGe3aAVE{bjEz>E=sAh}Z3K#}Ik6UZp_ z`gA}`^4|~T!dq3$XQH8`uwHk1OUFH%a6;MaatpQkTW;OP)ICrI|4^Sn-;(t*Teo~0 zaKnN2F@o$f^XQAAD#q)FMagyjHbh#p$aIn8hs>)LSfEUyrg6a!8t;%&$g|G(j(9p5 zfzDE?lGH6`&Pfg_X<&05UHbFR^lRVNEFJq~`t-ZZ)p*c%gt70F{a>=%0>W zF`!!a?YD6dYh3Oq^@n6KMbSQ=#t(Lavo=q0X^PemcTHb}yO(wJrIEe#_%)-qNIhOo z=f@?~0Xw@(lL<+XqxAG4M8%Lj{o4YrE*AMh_>X@*8V|i6`m_u*YY$$4 z^9=QJwG-O!yfd1-+<-Iy)4Lk|S6zYo!WxKc>c3?9n3YLK zVgQYFr~D4pA}%X!Z)!<`$>CIFKBJLpr-kagbD0j>-eqd!FN$$!cf_po-Oa(;!x&d6 zLv#O(PiM{Ab&SbgG8~PA)?i~gj*0;%7It(|(59U&uN=5U7f1?t8_mr;a^hr5`}&60?bC_{~0a!8c@Otfa)TM}2JU@$)an9Z(cBu+Leu z;k@hTg?rd_G=YGYBY`LqjXo2S{~m%!&V|Y>XN&&<*JF0X1xYO)Q|fhsftBq7xuiQy z4CdOUACI^|+|yTkCqnz-PGpvJLs4vtY}86&S0EH^fTK_sYK3PK5vDis4C&o> zp8UDq$n^Ert3l(rto$Vzg$Vmug4=u{nIDyxV)8}>2TYme>5^URH`2BG+`+Ods$j?? zbq2!UW^)s+ytM2ZKp;ouwJMW|YQ5qrEw{0F#dFCH>ymNS@ve7&7=K52s$S7UfU}+` znD=CCg^HH;qSDH0BF8*>$yh?U@ocP@wxi{SOrECdR*84lGprva?Qd&InsH;L7Ww%H z&h^D6l@vE1t5H|>4>d*t8CTam0TTYBsG+~4o6Y_KypQ8yyd}Tcb5-gm_)V*}Jvn?P zq~S*~ZF1gz$U@cyD1Blx=JJc_3y}K9HfkYiS5b7dqjD{~D^HJ3>m{MDtjS+~-Fy*U zTl$9A5c(rr$$b)`3JGL`Q@xd1f{+GJ7)K&^bCLCn#%{*EBZm%iXxB{0n+vWEd>1t@ zvinlcbXtb*t}~>b6aFY(J%<3xtZd3OjVF8|H*tdXr#U<9LG^gu6t6;T2b`u0f`aNFtC#lG?41W zQvBTw_oHeO^hL#_P)4E+l6n&DJp% zsY-H+Hwb77q(4)yM8D{*X6xfY!iplFp@!W!Q4@vo^M;#Txe?L+pj}Wjq2<&3x=gJn z#64A^lyDP1r}JjKxap%#@}Z0Nv8kw0U+Z78Chz$@gH8(lTZ3dD&^=VSsBQJ^RqZop z=gqz@`kZr1tj|@Oigi-_L@XHL-%_=?>*d|99(-E7^wQ){w0x~uWB&uV0Sr5K%TN^} zdTbXk3wNi2{raid7~1o{KhHpJ#|=zb^Vo`A3Wa{v11t?%PV)G1WmgkWAbAQ6*^Kyo zL$*Z}$Aa;p6ggZzyi}a7t74S5P5jubF|QcG^J_$HXK!&?w-sl)6Hgul1WNsJuUu%T zKl5Bat7#dBPP`bE$+;0JuN-12&T>S1&vpf3Q0EgXMo!x<=ngPUQ`&x9bS}E7%jU7v z7Frau+^ut4!R5JNnSM4S;`3&>*>i1||7j)I@|Nl{`DT>Y#AYsL0~4H%PAUvC)+Il~pqF=?lIdJhSC} z_iN^C{M~Vm{Tr3bP5!S5+FA?GZrOCElDFghJFf&SSslE#2(-7g^A=b>QuLFYOy_1?Tf&XH`p-xkZFfT zWJ3^X0O$Y0v({o1IC? zqzo;1dz!oBeRI2gKnQE1bd8GMw|zX3t(rBlVm;p!i-m`DsLhsw&GUr z+_HU=XFTIs1A7Wj8T>t~ph}-+&?D__qufu-G^+vp`kJKq zR&r^66GVfjaAWJ>oP}yjTbJ(U&kg$yw*_ON_fXA+gHQUl^txZW&d=2L$Re&rRMTYJ zROk1Busv3P&{~_6q&F#v2JX?c64!VLKp>&E9+@tLj_pXJOXM@!==Sl%uou>oh)n)^?u2HA$CjH;w6myYqH@w+TAYiCbVB4W}eIX}dhuM`q7 zKYV@OnL0R57*>!MP;UWB*y{hneev9v(#Iz>C2ZdAnyT8eq$+f5@`>A~+Yf6``UKzHRJuR& z^gSOwdIDoVUDPoAq&o#OMz6VCPQGVmL0_Nd50BHTI2KBDt#4$I!W;>$zSI*bFKJF% zR9(l#JSnAbd+Vv{(BplUa}e}3XCH{ti)7kUy|;Fhlg%9UG9mZxr70dw%&JGJEk?A7 z9KZuJeZDOpL$ia?0RwxlxYL4<#Q(Ny*z!&f*mrfghYp&Hrl7y#fCY-*)>2$VWspsW zFla7maOTo{ZqYnv@`>;u>J2!o-{!i|N3m&dv@==YnFQ4ye4i$8<9LkJyn>Gt_SzH8 z_KneWGI5(WwkoR|7I^|S9W{bFO1%^STMD=0r}`%yBZpr<`yOHv%yQ(fSfEe@9yfj{S)pD;qgB)Y!JX`z+FS9TpJaI z2}h`A9myhkxU^egPB_+3@vE$3=ut3l(uHCAsP}ktsSv)-RO>@ik68+M=Jj+p@*q(s zjvN}f{lXZGyzt?6P{Oe-Nir-r0hB{5#}Ue*unuKISn_9Uw^$bGaaveLyRxqLN8VAeE$5utj&Sf_y9GO+^zP@OVt!w2h4kAB^M z0D-gvAH8U)lLpP$D!6jrWK`hu0;8gcW5FUr1f@g}(Or9+&! zzM8Rg|K3%D#go`LGBX~!UXTYpw(bje$3H_iq)hYErQDB{iLRRXHeuM|`8L#JU_;^& zewm!HINZh=q+y)8F;+T0qB<9-aGtb!QAxJ#)xbP6*l{PIBGT5t4hm`YK|4W1@33D! zHxaPv7|Zw;xgV~~)$nmPr}oS{p7boCCao?~kZ5SpD3$^a557QX8)?O(Ok<|vYJ zQ!yqZYW_0xNyO*SCPSISQVI|ZC<8tnaLMCc$97#7=JrZxhW;alZesx zBZzzUuW)^_&yvtme^K?huJSp%D6~MC%Yez??cg6*H|^Lc@x$o&Tz1Pn*-TATcYvU@ ztLU8i3m8)+Ce>l?eB7xfNp-0)HM71nC%>DlH0Q2S$)q{%b%_2!AD8No#=Vl6DOT{5 zMt&!+!hr~$wtz8)3T*I{NpUFQ303w;r6x4Z)acI0krR8V@YMr^dvZtWf*E2U`^H6x8L z;{{WQTUF-Jp~BQ zmwQnch?W<+P-c`Q_;nPpWB*`SV$0-^>ghFzn9?v$RLPYL#&*shJm<({*b+aV5((g@ z(cY10GhJ1&o#_*!;yGT{)|oYmQ!pVWp)oPm}b zxiR&X#c8jNnBNV>0)$AAe~q+*4-?F+7SC)bD$(N+1(9uHzLZd8L&Oz0>`HYSvM^uh z&Qsk%`6+xO{><>^cdeGsPH->n&YRonFINKEQplry_;Ap7DD26AT-nm5Aapsgjh~#L z&X8VE=yAy)mP!-~LdO--d_1pqqT+PwYSP;d3H6T-Vn~6pMKC4wB0DPspO$N4w5^C#cZQjSz5$% zL%Yb*(?aLtVZMtA>-;0m9;EBj68ksxoD@^$wRpgvcA zA-PrydWmppmHE73(2W;FNE}`lVhg;vVa_d&mU|W^L^r4iH@;93Q$o zgty|0R|EOgDQ`ZfVQg>Iv-+LIW#XgHaH0DQ_82Hz2UtK04Rj&)jYY zNlF?xJ)bGA%b$4V^|{L zu*1M}Iqwf5yrGq z=~}IveQ=obs$F`NdA0Q9nj*3I9;FfRSpQ$8wVX^0YGY^_`mIdnz?PM@XxTwJgtv{` z7d`oQ3uq`p^F|bui-F}xOR@s2y00iGf+1e=UU=lG?q#emK=9YEYIrNl+lvu#*)PVJ zSRJD-(CFJgdb7@J98A`?(c0kI))qxImomYx&_3pxYjsy0VFt<)JNR%%)u`Ap{|<(mwPko9`V(dx(HTr$NNh0@kY!`~ z5(L`bs+M$#ix`Qh^`@KGaJKth`kY1W_Pb2mlZ7jSmOso8SV94W_Xo1w4^dc2wo)SQ+FCfn9Ad^~P#p^0H?5i``YbL$P%U1# zK;9Cz4JNkH=GFD6df# zfVz{)-`wLjJ;y5{!8t|&PU4t8L3@3HYf8J5u)PD!2wm|JLUA$z(M1|z7(qbTdSW^} zW<=U;;YH^=@&WJwFxu_p!OK3Af0zWhm&T#01}K4UOp{UNxEy@(Lnj%&b3~4URC$i8)R$P`jzL5nkIh zPke3{*)g0V_?zV@3!da1iTh-vVvUPD^=PFma-Mz_E!ss>uw}g@ za!~qyA9eR1z=+b>t#xufG);p<(kjM%Mec1fjraX1YoA~CPXqqA;~|T~kcHm#eQv5R z`N%X{-&%iVSbnP&ohzC$u>#kcMsot-Oj67jegx2GYVV$yePHRtxWZ&pYetlrcQ5LT zaDsSGSB*5Jjg_&uQ!Rj!D+^mK4X?p07rW&x>s*d#PhDP1b7v)`)hTVBxk=SOX#?Q- zSG0T=A5c#GlKW}}0?K+uRr-*{hN3cVMSvc9hm4pd{kjtSMz@^8$G(*yr+|XWMML4z z8eYkiRu>NCPR2tiu}bR@{nyNb597tz^qK1Hq9%!g(Z@b=PBWV~l(pGj&1G-|C6B^i zpop{|XO5zdniYn#-6w5A4l=uQ;#aDRyW&VB-On$E9ZR01Jj(J20OQS`wCrGm_K#6U z?h(`dTjUA8%K=|SfEBJ9^H98xVKegezJS?Yh_bmsdK%=ywNvm_?3SfQf#5q;j1;#c zulBE2rmVIg`@GzFB5ym^>E*A63Jt#nsK(CK{c(97>>PL`f$7$kUe1LFxhgiHUcw`< z^qyMBZgx^e8c$X>6W4B3Z*bRFlL20RAm}e+9}*!jj-G^&k8?sxk+&uhZ;t2mrtQ5|5_=yFCy7R(Lvd8o4sj&NQ7RSaE9pM{VG z_V1~2$m~(My_-)gyRrvKdQ{34rmLbeiMfKA=*uh`mTJ~LhCdqTjY%2v=<_=FKSTOH*9d3EDdW&Z2=@shpc^6S79&gN~Ps9-En5vJ2mTc zoHRF?MJ_t>*Z6t!?}*u6{xaam^TJ}5Q+gU|2-P>+Oss{whv=luWbW~P2Rtqh9_y`7 zn$O(_dl5>5sRnAG8p=3y@6T?770wZ`0??$yU#sKYJGI8>^>`*jhdnekY49zX$e&#W z`_z7^J4zkJyOQkqZ*ou^gQl?>)D3Ro;@{GvkVd6m0UnTopX-u5Wxy$` zJf0_?h0une>6fLR7%RK`ls6}b{5)23`fD$xiM4cK0XPR3n>5>7i7E^7kB6X^yzDQs zc;FsYP#g{sAZQnkpnWVDwBNEfRZzXb^*l*}sm*}0{YdDPr9a7R1F__nG$`e@1=U_j z!H4Qsu@T?i8!02f1CODLI2SQE!)UWOuKR#czxrU!hq2-5R;;KG^kpOikB45#ijqvUA3~7DhZH`YXno#vF!N>XmW9|_lR`~Mhvd% z2M>@@P!U=By6KB?g8J0aZ-j?t)cG(CjrGltH+tuK-9m-g6&`!xn+;~4=B-Q8IAYy&ig|4DwJ~z`$P9q`g!^1a$5)*bp2~L97h}Yr9hs6@25i{eaB54^-tXEtJpb&E!!{nTAZNF66}qAh`}$%J zkAMri-VTNd7u1o;TfD*_CW53azgOQ?ANs(Wpf8{5E;S@lLfRoW)(J?T*)y=*{NncU z2uW9){b|LEE%6V&!VzM>&_fS<>R95qC!A*EzjQW2hzHfV`C>K zcN%@{TB`YjD8P-&>Gbs#wFTwHj|khN{_Ax74{GMloplN%u$3$bBWi#^^f;|YyDB$H z6DsE)F#PM5aZh7dwvNu)>KnL3(KbQgj^O$lS&_;!DL*ejE03_2D+ZQm^3lpe5&hCT zfn7>o`KTHu1xV}Gxu;F1p|odx%gFHs2R*6ARW(5vAn8u?{Z1=460Td^r?p5J0fih^ zf1A0mIjZv)$tvtI=|?DB*p-nZ%Nzk&rgfQLa4S`i$YWKVw-Q0kNpB!2<&RE&xu&CF zxh1{IFvAl2n;FIrN}4}4bDx+o4AMX%L3kC!Oj>k34&WfnYMpc2^`W#hwF60Anltuvx0O$wd=|{7=&|Jq_ z%v6%Yob=5~Fu{}zAAa@EdG{uE3VhOVL2P4z{b?k+l1Uk*aH|@RlyS-DH9pOi%x|h} zCwC*L_M~_sd^jJKV!X0R4-Dm(py^ZEU)(ag$$|$s^c1-o)Gmo;f%h+z0*?N)k)6%= zh&UsW?@c#tBA=HS{Cd?xar5Byt4Z}Gv}vr+$F)82q}%AcI0*Z>S^H*ziRgD?V63O+#rzr z%g0V@vI;3`bISb*Y@m7BUQv}^fOIGP^{$vkL}63zsK*`sPv=!_Aqt5Z;GVw1wO?we zQR#~3t2?_RT5;0sqRH~_9R)Rzs08<^&q4=!jOTaqs8VG(p^m#_+(!xqex&rJXo|kW z)bmoP-02zh$)aFLX%PJK951#y(agh@6u}M1QrbCT{ zHC}l(uEiN<;192@NKPs^8bIe^>&fFk&X}w|Snmk=_Qs2W^7B+BAh*vWGWPWRt8L~i z$8J%N2ONX!X~G=an9?vCAc6;al{;=}%3%rJu^DBJJN&(Bf3w1yn;u{oJ$il>YD)+c zago7e)7qFGJ9ZLD%k~4Fm0Z`@n_F=$?pk4z0>u|Qh{h`-NncRAj@>v=NC(%xY4?{G zH$+B?Kx2TTjGCWL(&b4K?q>)Fa69@|iYhCanaWMRRB6GcLYoR?75m-t54Bn`MQ)9R z1y5RYUD`%IX9Mx;QUesLxlZBIxn(ImS-MGRWI(XR7=74m;xD=F~qi=aa{{ zspht~Vy7eka#yuO8fBRi=gV=su=LGU@2E6sFzyXU^LC`>Abj32OXeee(@;>JX$O(g zk30_N@uXsU)pwW!j0zICu39$(w-pPzNz3)=p7^MS=j0A3^4gy&L2|;%i@@M|R98VK zh=|Ayjx*odm|<@98HneKX)A@fzmXQvlag~<>WhwesN}+o zir3n7A;+nN`hDA+ZePsSwToQa4=z^Tow?2`HIsaS26^v}DsL@EQ=g?dO6ts&8#|#T zjw_3SGlB~L0C&IEr*XYUmU$k%=!t%8;-&yrP1w-LYe`yTG~G$g2SHX;U}F_@fl0EP zo%a_ZS~X?s-maWRp_{4bJ!&na9EwIe&+i7|>Dr~cjVlOP@c9@Yhd%XEdzR@^TyKzJ zYPbqy@`pPHNj~*)NK#}%+(>uH*Ey>zs7DmyIUj;BeT_!mYMcic^uexrXhH+#43_Vn zpM_|mrMWldJEB2cf<28vxw;DHtY^BlkVi2s8}rX^r}eGDk1$9N%eSRrDtxT9E0P%s zpPH4Yj434Z=~bk1YZg^uDJQ3Dae|iNDOlN%i>T14`GEkHJu0I+LP=w~JmYtv9<>du z!Zz~HNB(tgSR8_}KET~njDuCn%Ir#&(P2;!8?ok`v8H+Av!#}6D|IWJi~+MZ3MqdbiX8s>~)kw|9 zv09RxRIgD@HD+yC4J9omC=isC>{4Qw2}w@H7^E}*)b<1zQB5cni!XjnH5iq}SsaWS z=rd+T+PrGd4^!H-ZQIR(OAc9iA6l>FWu6%yJGy#+YOST@5zF>(H+!ktexj2Ex)?HP zcM!_=lKt3;!v6qxb>gxgQM`f)uB{@(dy2B3o7{di*Z78MA%ZyDSV_ z4LeQ#$+VMFxP94=FBewkxl7S4)MDv|)noE~0sfRFsQR5|lVFkRViM)BH}Q}$jMkR4 z58F_*VaErPj(b)njjKA$A(_OPWdX6yF^pE$yKODq@0S22&yg_YoYt*^w04o&%-E73Hw^VY^=He1@9!u(PY3Br z;(d=dO9K_dhEh=d-aTuek`WG`(jj5E5rT7*Tbh-Wmm8KO1TYyr#yu+=U7aj!BaCBr zOnRJmqj5K-j&yi`%8p%5=WC>Cxl|v#-~DRiXS-7~xQl5W^P1naof)1lnZ8mMFi8QA zf1s?LNe!{`*>J>j#t6yiYS)6cO2xI<^ck+g!S->Sc3iX2Tan~&7om-*|F)&${%jwyBPz$ zWluJv6pE=BU`Ql)1HD_fp5En)#e&Ph$ib!}^lyHL+q&*Mw`b*~1;r;BH7Gn*bQd0Z*|C!#kWaN;L)i79jFgH@3}DjKGRUcb z!#|}V36h5frWiGj*HOiCU}DlS`GyAyD$ExL%rUoaN4P!djJV61hbeNH)=7}y9u7D;^sik2sn2?{tggFcP{8#B zW}WOcqq;m^SUk8EW_D6e#>e+hTvQ_3B|qr7Wha8;2E8v@(IuZ@us~P)nCN|Kn9!%Q z0%-y|;{{w~0!Lmb(4@{GZD)ndZU8>Vis*FR3GSUu+OUtVah@xz(zM80Q*}IGU=53$ zj(gWnoD2`rlYNHS$6Dy^e8=q|q!FE{4mU8aicuVDkjB3(Us&N)i_6x!Cu66~ zq;N7n#=8&g8-~;@(e|jEe7jGtsHV!c#+ebpdvkijZWE{Xz3Yd*ySccz^R4%u<}>ZV z`fzJ&Sh<=uxP&n(K-zyEYX;DHjPjs3+7SIo$^0-V*p;rJw^3<&rkV|vV zZY!nGZbbL;I*dD=#AASjanEYxXVs-vlGO0KxflQpe^Xk18+En5LPs|w5rffr#z(z2 zijJo3@JqYa7a)kyMq3AhI|KEs$?WF0OkPi$bCRbxK60N%GSUaU_%4Yisq8a zNh6j*t2u>>6=vfAU{XwkUAEISa{-d+p6#CpcTbdhdkVX!TSscULmj)@XRbf3b5?qe zpdx#FvAtI<<$wkUZ2MEwRk^rG0x3p~@-jvpk8fc`nRe`UFx#Xz<@wzzpQrx-uCSzE zCTov4VnU77;XwM|LZO%r1UYH}jYs}&eDnBG_*!XTbZm4hHO}f$^-slAGrB5u& z(-b5fO~{H|BvXH8yIq5Dk*dhW0meFR7~{4* zt3C*B#0eo~jzlFydB@5*Ir`?P3H0k*dr78$Agij7{r7@1_|#fW)Ymr+akCLLn-e$% zKpb&IHxcR5ta9%UaM<~>LZ9%U$*7<=AfP3J06TMndUHy^iDtfqr#2FYP~?Fo1_pnn zZQ8c@6z3#ypQjbgYQJrQHkl;z#J?awzc3*6t$h~SYilfA1`foZo30N$(AI#q8Ghy@ zEQAN@3v?K&p~KuoGAfy*T<*qIm%r2NPSqzi$rG|OsgMQ(oQxW+72BoSeVBs^F4b0C zFfGXk*i#ZI>QhM`HylP7?umE=k6*1-yS^9JiK?O%^3Rl19ymN4j&WLg-J3Z_a-$%t z3=(tdG2W|aq`s7p+n|u7?5_`O10G;LcaM|s}N3V;kcR5#>!1k1VO( zx6t&(AZX_;@9uQT=8_ywXs%0)<7qtr_rR{tNY`}jLKKl)M9d3pW7v1EGHaOg zkbP+cYNrYZ)QwR}ihoKCHnO>5F{DxQjCDMkVcbc;$m#jg zZaKi`C%>Sk1ITV0*ZTAnvN9Agh6S;VXPR?loCEU?YcZiRHbNcaCnRGh(9pcZ#btNe z;F0D1;5w1m)4Z$qlziYur-R&s>s9RTZpFchbjUu~BDK*3Y{zlI?0Z!<(8fa>M1=?h zgTb#M@qVz4M^xZaFfPQ>!Pxp^X`NrksxR9sb-rNs! zT2PJOGbPH*`fWVdk9aEi0I44R>%x3RbtT5TJmBP{n?dM4PfF~3J>od6v{@`?VzS%D zRxSLoxJ@Vdmmd-np`DZ}Npl3PtsG_`IHvtSzc){tC zY5IQKeJ<7}D};@AdvTh5oYp#=0_xm{Qb_>ugPzCwRA0EB`W7OQrW;(8kRH83BhscK ze>BA)R*m|5RcTfj!ZScSaB z&C-7H3F*+(t0PEuf@vG>m0rKrn|;7+hYT@*pdP&PYOFTU$rzVw2Pe~xwQ&+hbr~cM zr;4_SBV2woxvj8Uxt}$(WyTe<`6OqI)u0><6$g*A*3-+wt{4Dtr_|KY+bjU8fCF+yc&j5V$>0h?M{cw^HX@b8 z5VfntAmH>p&2w|cZQu|lN|`s4k3rJ9S@zBZAoJIc>rYE0NXoy>yRBR&$|*+ZhC=hymDtKWrlEHfVb~MM7#>Br021^mneFbIYSxhpi`CE1m108C@ zEM?1vI6Up`^`-YZyw zGwuX($F_RlRMJfM7SS%yOOi5sVyfK1Gfo+mh#2ENK&KVaiI!4gh+~Y6=f9xrKDA}7 zsifNvcfcjX1}-GLbgn+Kts*8k044AeV8a%|sfVx_~64%`XHVF4b1WLayK$xF-kDQomuOUevW1wAg&cUChS{qp3CL z7jHJHcwv<>EaghCTm#;;E-vp)#L>#(#^b@q2d6&%f~r9r(rOVswoK707H+&67KNmA zI%VC(jGtnx=HA1+S?8*L#(j6Ngxb>z>)B|Y;IQd1Ja*!6}v>N25=4t z>5qSUt)|5HaokLZq((P#dK_mM9et}ow#Q;FuW=p|Dly48?kE!=wX(N#@~z2f0uu5D z+P=ztb6n-jYs^e>mfL_jeSK@O(~6~-j~y#J6f>bqaQlhdiIcuh>9suVg4o#VP_A@&`RDS%hvwI)X<+MUtEe z5;SQD!{9OPz~-t!YaF)ct0ORV&q0y?G_uLM*tCiR01GMS3^_bi9WLa^?-@TZR?qwd z<#_rU!A04Zav3irwRKlk-U$aE-9Eq4oX)qh#WH-Y5CjhAXeU3VRJyp8rE!1;e(~oV zR#evac5}7Vd(b8UJ$~^1wY*@N4YR3+OM8_T@q&y2B$4xO9Pw5om93#?IP%8cPh1@J zt|Ly=B^R*yW6avvKD_Z=toE0lW)YCCxaR{H^c}@j zH#acfHPx`{L~2I>N(aF3?_k%AScly^msNG%M%x9GFdSlb2 zY(ewDvqVEPWmpryeDuw8_f0AW-l0H0F$X#4psA-FN|cJRw%(u+ah&^B_K~PZAbShU zubKBqJQ1E3pVGOfoB*obJDPBnN?{I9W9eGX7glC!c4vKiXBFfMuoYHZDD~sFwR4wt zUuTHM>GK{HvN-3xblN_l75%Y|$n#eLvB5b0D$CUtMwG&cSw|+h;M#nq&dpqc(?DCO z7I$`xo;Kq={e9|L>|wQpDu7x3LH$j1I%_A`v(L-@?{4*)@kc%$Tpgs4Jw2%Ql5Wk1 zDk#L3mJv0=gCGQer>^C}T7n%a`uS4fS$}vB-tFy*u(7nPvE+ccW*s>C`qs>M5v8iM zAdRY9XzR}%KUyUwwgim(YX`J3Bu-3>cQ6B>=uLF4yJX*;$6!(KT(+I4$#VT~2R0;zf{v3uI%i2LiQ)rDROBDL$bjk{^|E&33d5Pidf&oP>lid1O3hyMcBme@% z%Qw^O=|v@dSf=_GV2cEDaC+BMb3CzIhPTXSOd_0MY+kuOwTTlfOe2&GDc#d|Pw7%! z>US54Bp@JTwFWRTPHD-4c15d8RW|~zyP!xii&d(JZ<`YYg)o$Wq71;Fh1&xeg1hq*{&uTB>Pce$`v8kCj?`k z#drg)okz#hMiF-`SPEx2 zjhN&BI+Kp4iq9<~$jO507^st=Vg^qYR?_fYOBIX=$}RH6TaYqxI##9ZclQ!JM=Go^ z7!CuI*A+>$^%F^u1T9b4DtXl)@}mbMXfiu-j1GOMLFYszgp6c$>Ou6aJ)xf=5FV7c zH9pbOtKMA2XAzQ4SpC)YG;>^586gOznX zRHUr(mI6|$2)s)n>7K&J<%AqFj<1j8D*#EkK5>#ebQRSKZL7%2QdhD%Hl8W2+DVSp zBaU-}Sm@?kl$KryD}#D-( z1OEW6Rie|U4ijNv&q18y-l;yfC8M&o21F98eCO{Fahy`k8qS+rfWE`@towMbAcYnF zP)RNqwnuYX(X!7LLgBHG%e`~UMre+DO(qTEFF5Vwg)5vB=~F|cq$OV3e=nX{hDr7# zrEHsd3CxYgDZnDcV{9CH)q6%9rC?`>A3O{X<5R)>J5< zAXJQz$n?ccCHtf7R;cs50^dtYb9dt0$txYAHq+zNx;QN40A&xPaBfFD=)XG z_Y}g&6uH8xS2*T7b0ltrHwS3s9({f5 zayf{0N&Ak*t3$FjY2iu1b=Bsl z%;4=*2aE<8?n$TH>dhc4Dw0!z3mbB}6|V9WN1?!%S& zfXOr&l##|Zf{9k+#E;R+dF}$4Z9UdJQY?Q)CT|!#JqI zY>37QE1Zm;pGwmxrlNdCM%sMi&;q@MvFTRGfidM!~L!*0V0=?KZyo$ zPWL9(Cz3{fwBARxWZY^I+ot)OXwEsTIXq8o=lKO)m;2y+p!?Nwh34t+&$=7 zg0|d@ir~Msu4K5FM8P3IxNLMMujxv^Dlals zRtdLp91=Pj;S zXXPND%Ac}*h0b;2QQwMRGt#h^RJLq$jQWgK^^_IdI#O^NnSajgY1@JAT>QF{2N6aK z5&_RpGhFKHb4NQDl)DGOjR#>uq}Vyw^dFS>rV;5}WSWkrD|wNyNWdJh$>-@+=GCzul0iFHb_dd*vVFzQj?zer{njh=tiSBGMaXY4vz(ge?R-yqZ&C}bo>R8Wh36-w zbnPQg#_|WCH2Gx_b0$Vhu40gdL!1t{&!svW!wg{qeTO>)V&AD9lr)G^BQ6N_~yJC??O3cxe|_@t4Nrz(xl z%HD>$2q8$=N?R)9<@)~s_2_EASWAf`P^ChH^5d=rTmICQBVUv@IOmFjSk;Hk+Nwy~ zNK=mW7Ef}$4LEhM@&vm@MQ%4PP7l3lCEbjlGEBJ~6I`^08GuzIc5}yGJJSrHUMs|( zD{$VMsX9sQK4x{BqMM^D)p;ON{$i4>I(=$_vJw~{rYX0VbEHGcVi=G!jN>&bHrRaE zHWLLlFa*_kEyx6~H5ucBOG_Hs%z)vuIyD zj^4HABP94w;mGyxijvmy*6u@Z0~awc&P4&O%_kgZKK$2}YuC$ldg4Ap5ArL~wQ0@0 zjFJrJ7#OcBwOCpiWRbI$$0MBf{3*o}wPyE*H46x1TU(?FGZGcCl0h|#;@Iu3F8s)H zSBw$C%Pd$4Y;&j!vxW8nYZ?hvQ!+Z7yyNGqGTSm8n zIFaH)6v#&;p13siE$(*m+C_P5IHVit|MQg7z zPc?F?0Zb0LG>pWa6_vJ;j^(k8_X4x6<47dl6@xiB`e%V#ODZ;043X=_RGQ_pf;P79 zJLFI#O^nmQ%_<;pSx+aLYYb$b)Wk}SgHj0NE+r%89qO9M90G(NrCC<&X$*TrB$Li8 z-7$>uigK>ghGOHd(w6{?box|^0*nekJaQ_W@foCDje?x=GAiJxE+9#we92v-xDU%4{~<@077cSa>}Td zoW`JIXc-y$dQ!1H4oq7?soc#Hua?>QaB@2GeaA(RFG$=UvukCv8@iWOQm~xRu%<@SFSPYYYxU3 zEtyg&4rNAHJmBE)YL1_GZqeTP<$}4wGWGg?HB#NL+VVN$LXk#xuq~2Qp1Aj=V78;R z9X~P)O9Vc5B1sE;t=|XGR`!<)`ElJ`{{XDFLK#$X_2aE=w07}^QmP9B&N_qdSoW6F zSvs>g4}z>d@Wy!lbSI#^hUk*4k;=ihgDdUl13AtsdP18=n%hGR9(c*FPUA_M%*Je| zPz;`9DLY9gwmmDWWfQ};Ks`^l(uZJrqLG3NO+G;?_0Qfp$>=eft9KWdHNCdb>f`~G z8&na`HFnkqP|;4_Vm=x@+~XB$M|ASjctvhG>&K-4OA?sZ%Q*Q)0AEU}Da^lKm1!15 zQe@=zJ@HiKZKFL-MI;Y#o8*WLvN0nVA1+3D{6M9a8#~Dq1{`Hb9awsQ_36zNZgw^Z z$a9{0`c=T2mk)qJ;D9rV0L8wtmgXqqfGet>nq z?fI9Cb`?f@N$y0Sz6z|kPzQf{tB8cSmN6V^A~J<7=ERmBFh-4UI#BSrE#WzldHbEvsXqoNiLe@k(4pdJRJ1T=Tx1YfvYmC?{gZhx5|;b0>}v?KBBH`c9ynK zTix0QkzA1LySN>XY*tm&w+_UYZ@M<_=yB^?Iy~@?4(*=|=`#*`jomu?QEO@j7M~l# za3+wynIvu;<95*}8ON}$ha^u0wS<9fafTS=XQoXdf?Y|W^4NKBkc5@kPVZcG z=AErtUBVK3T*k2#ESUZ!!3Xg)-mDIv>~@}4*(HrbvHt*AK+fUxqU^d#BD5+98;X;T z7t^q-R+6pVymQHo_{sX$Gp*i79pddEf}}GZqn}Rstk&T7uv<6wmZ1_9ERnkxZoTvA zTAIa;#l_ILgJ@uz0XRKL;8t&k)8uRL*=bm=Gw;}XRNf|<;U!4zj$0$;9;9$jwO3sS zE{Nj|i^qHB+&e=Ok~gXCoS~68GS3CI!EfE7JZ`Q0O@X@^_N&@*#VpHp8nP;H zh%S0BQIU#Q=qq$B+gZtB99~4GFvFsVj-h*wXcx zbotNP37w}+>dZ`7nsL_a&cLAIsTvjX2~>( zBv+PoI3oxTetQ0uqa>b2;~B>U166DxWQAOhzw>d^p48id8;;aVSq?79?Wgf(qj9Cd zWeWYDYJlOPE<8@8 z6@eKPMdmcFK2^xzeREuQgteF%joS3do^=9KT6O+$u)O*cpB$e!sO-YHH%Na$+ zbLu^R3R_2p_SjDg?ov(=WBi8 z>%r&^OkvHi?zU&TMxhWbRJgvgg5oP%i2^*?C<(wgu0Koht-Z~jbqHQ5RW}`@A%N~a zwa9pa_6=)SjiqLaD8i`8`=Ihk_cSU__G50xY2qIjMW>MlnDI*>1i2?6aodjOx(zc^ z{?yZ<)MEe%7v^5PjtKngz~+oaB&itOqoEx4?tYcq_$$Ne%RAa_5$xuD} zRnC>8?u1%tp0c4_<%j7?RhuC2KU`OqTzIcly1xl-e$Niz0+GoC_sx2ccHnocr3S5V z^9Do;SG6>nUz7p6B>GZiKrJD~NC#S7pmJ#pql_sEdzyCjVaVcu1`-jK>^ghZ2Zrg? z?|qV4{iT}*ff0MMe?n=k(Wql_*WXzg6pz`lJ%$!!!%Z?q4euN_DgdlbfQ)vRM} zNOBRgkC^29Q#RB1?@5tXK+U+N#X6RN8;VMOB`_OFOHDKYgwshh>{CquG}2PjwjT7v zM}ld=4NR-rnJXC6Dl)|24^u_QVZ;Pd?SKb<)j_X=PxgCYtiel@p5ETSO3J(YP5d5o zt^iC0MF$x?^Y~UxtcceU&SY4jKwAx;n;o;>m5NAiy*0(e>kOd$pccr%$6l44rRr^` zO!!jqNH(y}Fg-`TX7IqBY{v$?QBuk(gptOp@!O>HdOV{^JxUP9n@KAzP5 zHq%d*`5?F4W00sj$j{5pIQ2Ai5vwEW2^5Q`s)%1Fa}GT@JvpmZ^CX%)kVThd3Zx(Q zx`B?>H`-yIYn?F$$idjH&nMH5N=t1tS=!E__d2?K!y|#)@Tuvj9K^aK%c#K|5WH(D z{M)_1kg7KN6!ToWN(^y_E7L83+z$2GUEW=hm6yvA;WM6Co~PT2=burUV9h*?p<8Gw zd!Cv0s=HvBwWh~!rREi!gFgyga7iBBDs6geac+rmfZM=TV};2b{*}v{dC`RM<$@5! z^SKEe{uR5fK^@fAqITOHfIdg5@ARc@L6tQ7tC$(gB|mwM%-rxh0bS6M64e|46_j8B zisdb#vV!IjZS%9Aok2e@zDUkJtERiSh8UJdBVzaJe*sEB$o8=wOw1H++~4kw-;GIs zWgYUA^ATIBf}rE`t~y<2JBejha~iUh>7EB8=xV3i9`vf|$mV4L{Lj%>l27!f%ETv> z(aRd%AqyT$5C=Fv<63$}#mvh+$&p;9R7Lzro<==KsH(zG?H2v+{{S!z!11>}htSgL z*Yj!N;*9}ya?O$0`ku7g&=I|--OkqjYye<6%x8iJs*2r?!rhI{^;YKg8)74o!m|v4-|!U!MSpGx zMf1mFoFBwhPwbhs37Y2gn49Gay?7K^Z*WB$h;AmkSpx2;%~xdnhdAa*^+jP&ho`ifX4oaa{^_*ZzK?HM1ya%K@JJ zahkDbq{nG|*J4b92n&zzb5F)4hpbBA~+oeWObtg3xw-H;$WPXG7_NqvmmX%nHxxnw5=e1o>D+q1z<&F>g zNBjjv9mUne?Dr&v=W3o8CyZmgIvY6F-bwc}I;mDt0U7qK6jFDQE#G4fC6eNCfJ?E! z_N|yL14AT|g#mtC^<(RgN_;Cku|+Hq>|ytrm-!05&k_L$80T@@>T2aK#HC{zUnFmNF#E3wDLcNIk)^*d{G^QNyb?7mih36lStxpx&x~0rnNl=A# zV~nj#wi+<+TnQ9|nF-{mBcJP6Vww?%M1aN-*s%m3Fpqp-)tz3}U$l9t8%($aV>}OR zRy1!UR+8jLvPQuV%Y*IyHEPWhv0@Cv8>7mvy;X{XkO}_)*{bC5+Dm5@{_u>-MjN4Z z>+Mlk*)%aPn1Q!$VA$=BKU#(hxEHqjS`93q+nk2sLG4_?(r+DFOO31ZAD1I@df-!yOT9^PDcD@i zr(UJN{uA>LRXuCGy>z;^Hx`T;Wf(n)+x`{A%$AbOO_K;f!US`MC%O7orj>Yx%{`u;E8jg8a83TYueGWPbb(CTY7K$^w z=U_2ex2-Syd#@7|ZuUp60APCVP*xTjdO34hKRy=h)Uo z!ud1#R^+p$9h`O@xb0e2Gsz6>B6ehT&R?N5Qe99cTUbL(Ci23&F4lGFl6vFmS7SoV z(uK%TwHrL(j%tLm8+%sR4*3r(dJ*hu^_1!@)NID%(?6AD?`xKsXpjRl9s%P$vBhwD zj1Za6mJgVE;N(|TdwPt*1P5_AK7%zJ_SWenlZFgs0Jr1m=}w#FcVd#c!^>yngmA3m zIUs+HS1l)*y%!igI@eo!a4gV85mJMnT#`L&o|5W8Ya|h<%eZ3Q!2=i-(HS;o(nQuV z$$5V5CIZRwH$ll67$1dob}bYZPE?(!#1MNC*n3x>zUbIAWaUUXJ$DXkvxaZBY17Ow zJmn1D#BkLWR)dQmy^Jhn(SdnXDr3>Pu42vy7qT<*z+)BF#6-6C@)QHgY;8OfwDFI^ zxx|ymzn)1t5?kxvtz9>3qGn!{h%HL0?v=+(bInm{6UbPEK^b$FC!fGmp8Wi`Ws1IV zo`4T(qSq|XykU-Vay$Fg#w?c2-8M&+;TGd19~m8fZn>+Pwa}8_=M1QDFnJ_)$MdH6 zaLMOO<{%70mB$1Fo=rn{G(npRp^5pAddlAUclSzGiE(i=G=~ky3(x?4>61+)P2?#N zh0opRB+`AZNm$^K3`w0QFm8x>exBp^y%KUwaB?{X{L$=l2lcBIt*Zi9ZCAt zc$K2rEbLVah6At4I-F5{^V}<4U1X903_4(NKRSC~-hG&Ps(};&c8$XWv1*AsBBHL# z_m|LW23v^y#RTpkj0I7~MthT7{>fTpiyyp{ZA^?|Pw{)y5k+@;;6&TxljbO=qG!Kh zn(yOzcK7;JQCmY3#dEM2rOx2Zp7;lkTG3?t8v_^!80Q|0++ccSP^D*} z+7nc?hS5toE?t8Z!5k6KJ*i{0LuBmL9 zAh(7wv5EPMVNM5MT%StGI(6;k!WhvO6mX=EyxHs2_NY;_)OWf%6p2F11nap*aNu^V^#0ZQ^Ld+Xe^BO{8t$amW7vUZzbl(#G0Q z=%f`VAPkROcQvZ1ZOLloLA?QyA9nU2E;0ZEBd z=(I@Z3{-3U-v}E}GTyRoLMAeg>~jgxQ+Kj%ha$R;}V&n9Pxbg(Xka zREE@n(xaIND>5GBjuciNqo_*6S|e>PIXU18>F#{1aH32C#{hbJn#LM+mC*C9L2c|* z5y9#Ft60iA*p`{gy``$hh};Pje9A^LeZ6X=7I8}^U5Hb_AH|;BX1bX_u{6iW5;jIR ze8f|w)T|!pi)dnJP(r$%ymje})%!=$6UvTmJ6lxDauOvZ?f&oMT{Kpfnr)(72~{Rw z3ElG$4{$3AWVp$O1Nbo zE4Nm~T7vZgm@YqdTOl*gJvcw-708vbvPkY=cEp(_TZRB}kN&-1w$xBUi)_g4CVp8t z+3qU`O>{I;?sc0a1IwAWM$7lQ;MP2H!)bW-w=&?#_gEeerg7e`THdU2?2(m$;aRu_ zurBnu?ytmPc_G0lOJp`VBO;)NW6TkIu+Ms=#67~ZGiM*mrBj~s z?8P21rKKcn&I!kSRf$6*gOC@IpY!WjdlEU#!ClgB!m&IBJQ}2v5n?S$;e6(}P!wPw z2R~C(UsGFX7)KYKFeQ%cf}^iA>D`t@jZ>Fg?mUbh`1kEm+}lNO6~ywcTV_dP&ReJ9 zS|o{P6^-I*7vXQzy2^I^q>Z`st&5q4kudUK?E%I!&?pCi^{jhoV1mhx0vB~qBJM`~VVE+I^x%(I1i|;Fa zdVY1Xt%}9zu}jR&7Ud*na0nSABY{z~0?2S%<>S-;0IgcZl#Dk@$e&Mn7_@gA0qwUx z)|z+Rb|sAN!v^Ga&oua*-aY!Ron%0TnBWe%tiQFj%%V7gg$xPZ+z!-k!sVse8thImGJQa#^AzPI*n0t4l05A)A1sAYg%~`NG5OUf+*dl=xue^;$invZu6{K0 z6U>)8i<~GKI2}4vFFv5#kx(d&FnH-xMrcaK0l+{r?@yOa3BI-y`%Xw_F>DwE zlh+_|f+}ICMC$58Azl}rJ-zx>1&hx8>SPiLKKMPV{*7<;lXC>*BBQI8BRS7({uDH= zsPEWyy04h>HsE;}AED`5@m~3p2$tO8MnTSM%#oD0XWixuU=-x?YNRW30&a1F-B^xE z^c9=?fbsp zl{nq#CvK(J^T}f-RekuWi^depS0oG!9CB%k{{S8ej08UGVDLMD4e(LT$s#>sIp)BB%M^Wq2g6iwFhH8mI^0S=nCm>Yd@mg3- zmV~872Nb?@deu$T?9pLdxU)FuYRp%Rr{?Cew{yiiH7+P=*yz&cH|TLsX;-nXbzdBc zlguPme#sT>4WWLC-!(GdBXjFq+cih#5l`5l_KfQu{t#542OrL|t}hIP?ZEn0Kbl2R z)Ng*xX!4WKLG?5$Noqf6-iA)AbN0LCvl%Emj)02Cw=bDQV75M0P&%Kdde_q;it_SR znqMj>T&UybB>ba3q}H4|Y|SCPoib2`jaLI{9DKv+(xJ%HZ44(#?d;%5QJ0oufs?@G zoc5}}+5#yQTP6?|1UCTg@5l13tEPyv}Kl=17$0enYS6i7Bb*GEzhe9igyVqiUE$6p8W>-P5o_RSZ>BVblSEEt16M?jX zRF9==qdBb7xwzMpH&&*3?s}T7wzF>T2qxYTS&syc+;jR>SqkjdO+Y&|alT6OKZ9UAAh*$TFG0X7G9^Z{?r;~qZqE;nKY?OO} z!K|pP)&{teF&wC>23d|rxF1>;fb|r+TSg{<2HYtmk;l%-@|^nQ z^{Op#24*f?OO+}=hXb*smlH(Ga;&pwAf6X*(yy1fE!d{_2{N^+j4tfux{bc|drZDD z?pPQDA3K=!Ut!*}5*UeYcK~`CifK|SgCj(w5I`J^XSn)SmQO-1dS0KaCCiI>M%f6+ z$3y=B*R2COF)F7fyywrj4wxYh#c0(}P6^5PIIg(GfG+mI0eV9eJZv6njD;9ka6fwYL#NjQMH_s%XSc- zFa`&(?0;Is_1z|KM8#gkLyRqe*bm!(Dooiaz6}1u>6`8Vfynqc4-hH#SHEjx+N9BC6V1$Pwda0#-eJy}jufTzO@IW{3b=+L2^gOBjKTk%?292HAaO zC;~h0Vc*uXZ!Tks;TGYCl=)N6Fn!Nzj%(*g+UepyAj4y~{{UFl3gc3^B5)VZ1YnC_L#@GHi^5IN&K)Hea&zO*f*LyhSF04c|O zbwAd+;E>9j!2~cF`cz6TJB>3sEk-b0T>PcGjFNx-RiCJ8t7!J=Y&^$l0PEFHUTL@R z`FBYQNYSFJGdke0^Z**;B#v=&_K4qh80{a#J@HovCKAx~^edgM!+IK&4@%%Z)v4M` z1oO$}Hqy)w1TH#PVlGJmf#8hPN(@Q#FVY&OE>3-FQ9kOPR#nNyDR`)ZuX=ZwwJZ}q z|JLeJcrGYb)oBA!wX}p+^H9Pv>0* zeQeHajnrrv<_8;ehxb=$^!9w{}L4ds|uZ2Z7$d$a*|VPXnXVX!lOACh;Ya@fT9}sFjj_FyHtAzvh&Go4BO|_Rp}a8O zSg}_iAqOkeJL#Q)FQTk zh>4E_sU6R!y=(Yt*5Wjl?%~TBj~VVOn7^7&w8d|6%t*kt2VcUwT{`wBgerg(bOX|c zIPGxNS|$P)8@G1)*Drlwbmv=u1d4+tkFGsEtEs)0$v$WqAY_q@f$LNtp3?T=qZ9ea zRDSK3srvfRLS2l_Id{U>ciElpLE3|=f&FU}U0GHr;*?=F5)_VBy6c#Kv#(NHc(Rg= z4#7{QalRtdh`EqViuJX@-y4>tR;>% zj9?JMueq)53Ly9P{$@&}gMsZ-XpddHw!Ax9-G;;fk)BCWkIK2l)SfL-e77i)5E&Tp z&!MiM-5G5+L=N`(K=-dUJB{g0SqM`g+w47ZDMZbDRy*N!9QRFUJWQPBN$>O`t-4wU z%&o}dt}8P7)(BvR<|#_~Yyl;@=Agg3TZNbGWJoryRP{ML(i1oBrHWXCLI_cn=i0Hg zCcLqVTbNj|EHFvv54B0*>12`#;Fma!hBMe6-=$o=x)#iti+E$nJpdie0VQLNw$$K` zX)aPm8+mBkzDFc}HPu*Z7W#_shwlNL9=J8bthRC9&1rs{l7E$5dMVCnk-zp_%4}p$ zFrAx5azW@#Qz-Q`ZpNktx!oT6Ta(uv$WhTq&OW}iqaO7H%eQx`jB!x!lRYC{no1N$4!mfDgDvG{Ar{IM$)3EnV(LSk~C`S zpp3UcSXykC&_t2ytf0sS0RRwtirSGP3MP&q@+kREaDNJ016Cb?!;Z9y*f^@H_m6U0 z%h?{)EUYj=Bb*wzKs=7Lz@1v92B{gCEAdF3J@k&le8vrB$>QAYp7d0;;GJzsC)=o#Et}9z)g5Eou!U&L%5DYdmn(QaK zx3dWht&k8FJum>qO?h{SbxCjT0+djIe54%kf2}kY*F$r|*E(g(eUXt;Uo(38mE(%* zwS#6Njjk~o?)$@nJAPH;!T!zV+(X2w`3Ih!hqpD?YB$ZR>Cu^FP~)l(ezaRsr?t`2 zSZWs9t?a7|#73c3FgV6L)j94jwX2((TQaR~i}N%0E7%`iDh&x?jti2Je)1@Q2fk0G zP_?*eR!c27vPgilF&jcYIT@#IU4;7@x;!=_Ic;WAaGVBE)o z4}K`HyveNZBECY=0KgtMjzJZA-d1TOiNG5U2hy{kwT9IBs(ElQ!=W9j@;gY&E-~1H z)KI{`(Duh_g~UvEN}!m|M()|~L0MVVmGFbAz z&$hN*&Zr;g(I}{z*;J0!3R;*-5fRT)h^VrucmojPBE_EQWp~zE%lh0iD zp$%?n%YO`)Ld}69P8f`WJu}5=K%QB39ELd_wa;p!&GMwM{{USf+(-oOQPYvqw`}M0 z;7M_f!zPY^wlMWoyOw`8(kGC_8@>Stf(NZl;k#D0vLT69XDnmm<*FkxwT$!D0 zCEBpA?WA-kxE<@0eJbc?>rj^}pCAr-CAwf$CQHf5c+*9H zE0H6(NJi#}WqR-rdgmjO!drFIA_)_Lut=n_E6{^oJZ%t3ZDR_7;84t+K|$316*791 z_A|6M)?>MzJN0IYJYb(fc>OB2yP}D1R#=Eskbqd6U{r~#3t18gA9~DyD|ZZY$*t6j z&5y{PL$2SE+moDfaZc?!i+xC}VS?5mmd~4A;4jPb7WO`wr|Xc$BR6d2Nl?2%#&J>I zd6ss|ZxkefmRvRl2caC|k)yWOwDo6;_lu3AaRcVy^HbL2dYK~P((U86p5U_)y^8Vy zJbs>)k#nc6mwn{fl0={t^(=ewT{f5D_^r{N;uTji9CMr~AJo)(wc5pW63tOsK3%Xg zk3dg)ch<;SCScrYbJ?)FyBnj=-^Np(4t|wZ*6MjL9_3~pMZR{H$s`VVAEj-<9Qu$J zwyyHUg3huKMn_|gnLR5I%QD@yu}zU6*a0H}vD4m!GkZ;*>W`fGk0n%wovooOkV? zO52q#qIHGU84C=No)n+yUVR~o+GwR&HoEN&005Jc++&Wl>FIE0w(}xQ@?dZ{=dXU$ zHP{O=L*zmuUc{cg0X->Dq>I1r1MBK48CZO!)RrV*4_tB$LvwbP*O+{ja5%?vQX^1z zIOnmdPQn(94E)Cc57+P&Vktb)(BrN_;QLc1whljb<~CkNC_qC!x=w(v%0@!=>(-j~ zR+5z$5v$#V|4klFE`r8!I8pEM#zgr>$~!Y3AEc zadR8B+Ghp+;wU_H_Vuqs+{MGGzymE&=Gt;F0|`-q0AMim{3)pj@hEQMFPRymkhcx| zJ#(DbtFE;rPYqNP1;3Yq1oT1%yz$Sf;ABk3o??Yp5xG0Cv63l(UR)+PncuM9RWDx zpK7UVs%mmg6|@r^89rv+mHH4zr)t)^E524}7|6`T3~`Q>TG|1dtK32(#B!{XN-+CQ z;JEA!aT11*`9Kr6@rvL3I^A50dnmBY#=+1Z#)Z? zmJwM9f^0k<{MKA(l1w6ULX7e`?N+XHaNFc<%-q&|YF=eg>(AjzB{N{$7Yh?8-53j% z7|0zsty@b-F5;3{<-^7@K{x{({xzLtr%80iK+7Hu4&#CNdez0bmrq-ZNJ;b+FeSlq&gkDoaFP) zd9OwA?y~b+y}k3QG*}?BazU>tzK2yy$fH?&^DoK*^OXZQKT6Ph#+DYe(-f0{@|=9& zjxnCN`c+CdMa7=OscJD;+BEX81dJ-@mM8fNwWi)%+}Xu*2P-1y*1XsIPTuY~BD{>e zDF^T0p%Qlb=N+qS!kVqJ>5y5L2YJmdq@ykjj}n%Jry&8)#UoVr*nBT&2mFH$OLrT&;TffE^SzxkD+0? zj&u@0%IZKrDbHG>y0wJ!$pTKH;6FG#bLq`^Z-(_N?K<(k#P|%1NN!Y+r1z=pp4nqJ zI)Elg3psT;`HxSRJu00GJ<4)Nxm{mc+S1ry8Bm}X#OsZucd8DLXfx{HUoft z`Oh`XUFvd6rL0{yy8?Ye^c9V0h-OhKDxJs~`c=k~N!*@&PjZjM+DuTRnb+rSxXIiJ z?sHaed{Lp;@jc4qc2HaSSB+l>^4&beeiIu&=zDR{`qp9JHx0oYbLmp3#q|zz)}ryE z-g&8Q5JG^ESmf>X+v{06X1#ysKg{eR`Q#*q&U;r8WfS=lG=J+4bJ-7io^3^;w_AAK z8*3gy^#hC?broEZS|l!G)?(FPQMWH^ARwF)I6p!=Q!Qg;VDcZCM^3r=*OI}jy}923 zDJM7!!hlEk*JWj{&S8PBSurR)^l^^hbUi5Lw!w3_Y`4tECaRYCwvN@GWv$p=Mnp1( zbsVVc`BSa#H!DI6K(n*lnd9%`*5cU*?Kv=4fan}_n1oFowfFi*(yJ}n-Hkx+} z5rwC1sWC`J0b)E-VxDP)&>^Q3!%D`WEKf>y3yv*K&S?UcH9Tp$K)#%sVgyVKp0xeE z)TbEDF-Cc*xW@&o?N)TPxARH)mz5s<1!`7Crwo@40)oh?k~~2(^q`%A+yA$TP@Na%r~Ol=Hl?LZ^IzkIRpgfx#8iURYb+#U0yl#Q=YB zK>c$~==CX_-jxG4+9wK34;er|yh#`zokjL}A(Y<0LnJB#BC#33#tu7HwS;eJe7asq z2nzAno_Bs#96D6VeTamK8-_XUj><>Yo%I2YVKcHcknfgI3g_;C-2o?`TIE8?rC&)D zg+!L;AYkod{{ZSW-L{=A&YoIEK619@e2_{G*zN0F<@uOQ6$-I*!I0pbFJID#zJNn( zaF;VAwz-9*4JOtZ0D;dn+r@MfN&8%!fVm{~IIb4n7~?|~v~JR{K3gg3oxv5?TU!aV z1h>2;Lgbux3ra{j89E(-)bA&}y3do3lxM3RhaSSSbxjo6P5Z_>T;?{$N7DnPZRy&) zcFnP4RfK?`C?NYDdvjf6Q`=o-QIcJ~M_f~Fr*LPPZj>q^kf>3~zyy=q-n!e1L8)o+ z1v?rKm)wK&sdWe}yx*~;3+6cmSoR~I%B)#jPWMj)(UsbnV~hZL;*)pO3a=bmWswk| zE&*ph#Bol){{TwU?cOt;+=4oErM#I6d4n4nwgPk4{3>NILvI>J`9m0E^d0G6sE%-H zcG_K-y1oFkc_e2$*q$pU`YU^f`%apeB{IT1fwXl$rC-!$I-Jm*zv%46K<9?_IQHpV zRytfzM{zu$AenZ64mPLOuKie8;2^u60M7#MDnZEwzL_05(`~1brF*-#Eb=iffNd4i z#dl?DO|`0$B#;29$vp9c=~Qo5?3c&PQM7Jdy@y;1ck&T}_p?Vjc`Ps+b{nA}VjFwYL`%I3fP-4_wt# zt6JQkC3$WTlZ@l~R}~B~+}W+X>|Ro;sH6B-uhTf|Q@pn+a3;3`Z!2OfYmdlxIPXi5 z2D#w@*03=wV6p)HvB||~>ZP$B&$*Efg*&P9SjK;Zb^J-IhSjZ<06Lw-j_0Lx z3nH+{IR=>fbMy3WK9!rRC%IgR<*p=PgaeEYr?qD@$Tqg!&ySZm;Ct6WsN2HWSw2ut z3^~c|(xLv!yjI+-tXyLwu=K5CQa03yL6{LiBx&cI0{#2`6;kF_j0QPkSPY*^-ZoQt zfn`!7Pm}}RsLQ0J)5x((K?e+^91L^Tv{P3h#gbax++0KDKrrdhcVs??)}oZ#O(+hp z5l~p}1L#R7uRW_D{U#X!w#f3cjCv1Ru)2!1;@n@UQU(hrLOsFlRN>VLKIY6YG*LWO z(s_&*I@Gt^27(gr91#j670coM(gS#ZxV7a?7Yp zjcp?w0gS0`=klT&YR2^~O)OC}q)MPU62{ozliIRxbs46FB;_RC&<+a!0QKv8>>q2> zohJR+iMJ#6Bd^zrq=wYQZ$c*Zz+lVBW88MQoQr{2{ldytIGjY7v zI#z7dp58W*)$WMhgOR~FUYYi&=4A?epmq%HBc@MYJt>!&2xWmA%_9UJFuCN9TFbYR zRB`0S%ON};{L$&JEoZp1Pbxsb0>gI)9+YXpb*FjQhT1G06+EcU#u4r0}Eth00lVUW|c(k zWD$DmT82p@w{fT;RWhHL_Q3xD8id&;&eReK9zm7C>FjH7S%}Z3xKX&F3 zm>~_iK*JpI+~eA;8%d$&KqJa-0QVIPFi9fr3y`F4K7jky+E|XKOE_3ZH&~twN4d$+cz(hz>LOd)2$^t0=VRYoGOUfwDCtw|~y4Tk8J+Ygp~V`B5Po z6kv1e2VN_Yv!W|Qr?!gL#@SXB5eUHyd*mE-s#gu?OAY*co+$GhD`b4fxEj>~nm;shRN|A$-PBH-esabUkYH3*MSChcaVwjKQ<%p&PUGq+=Egg5E%eUH91p#X%D-N@ zH1`H-?=ai{0Hpkn=51}Dl6^THc%(qraKhj5i6R@`x%pFvmjb(T998&r~|gRkBp zkAJ0eX@4EJ{CKaO<)~6|g(USqjY*~Jw-Mh&E=nv+7Pv1%A2-?scKxmx|+`2 z5mOB#eC)?0s4(c=3N`CFFsZVkC8k%XhMk!=2lMUpNfDfqkuE2S7MzSX=!yu1(^ZC*i zbTF^l0)j9(D~@yYHPq;La!p{XGVEj-K7e)^^{nbgPGnSGwlX#FkTV$r5LYUCa%+Z~ z=JI!6FL2KbjyikSpx#|+ch=HKcSs<7GVZ}6K8Lk&7a~iEzi^)^VnTuk%jsLudTNa7 zc^Hnn2h5<7NzZDr6G+RtB~%N^$N1KTq?>c4#Hy%e&QvdaazUb31a)%hFqsQlPO+=7E4btk zzNa~BHuvNwf%fRCvwMi`63H*^TSlDHW z87M27*U__U^*biGjx-MJ0+WD!&uVM=5zDx#4#NPbCyduO7=rF8E#M?1ZMhOces6!o zjy|>0+esTlzCbFYx1p?M8y1-p&E=-_%Yb>~1P@wOh-9+2%ET}Ntdet+&1T%Q+eFSA z5$7a&dwmTg1UjAU7CR)67Gih<{3@i{^`b@?e5^))cnHN+n(3ysF=`o!mn9nn1OCs} zt;eKj_YuW#B4-XVp^3-Tiq$Bk?-Klq3E~SAiCc5N2*|)2ewj6p{voxE$+S!nla~38 zO<%eiGfLLZixX`b+B1{rJt~^`VmaNOIXtz%;fFatO4=$LvL80aa%yWU32$d$NjQxc zKb|V*ohjpS;S4##bFB-LvbvFDx`GX(Bhkv ze#or)iggBJvd9Kd7{d4Cp{g3Zj1f{PIu9$ zP*?-#4|?aIm2K{%o>nXu8yI&#jckaL{%B0Av@j}r7RNk(bu#k=Z*1HF1FbZ~E1X?L z?51m8WmQl?2a%KST^tT2iDmxq&1BO>qB9mL1Z0egv~X%NhqWt(h`h5|8iGL_%Ov50 zV*sh@K9#w+0gQ81=87wTJk$(FLTaM*6Gl^ATFDrW7S7&CVN}HE()pIq)9 zTST!ks)Ym|YcAT-No|Lg;Q%KtbCdM;t4$Kis4WP@dc7EXO2|VN%BgcF0m7Ks|HT zt`KvR)}Wcf#>@!F90T5}-cim+Cz^sgNG|uVc8E)Y#CO^~DVI|l zTS#ANX61S5=~Q9Ak)kp-0)ht}fvl2mQklDJXZ@WP$Q_wa&GU8Uqn=l1jhLJR$o(nr zc@&Yy^3vph@u*cf$Q?~7WWX}8MIFh-QaX$>vs+nCxge52$)pC0 zy2RKcCX? zt(~J8J$N~)mhP~V5|Yom=FLk!rR0-r=uv9(Dnyiv1%pG=|bCNsrPARdw zZgs>d>H(-8-Z$yT(wQaXamVLLzyKf4n-%m@uI0`u5@DeWTC$&%6P4y+DXR{S;q*Q|@tum_&9%;J(=|#n200=cGz#tQhoD9=~0&9!ZuI}D@gl5?s zG6Nr`SGlCwQH{>NX`zF6oZ&*9q?6vDidb&b&9*z2*1212)R0d#)1YS|Q5UfO@T)MZ z*cjz9MI>K)DUjzq0}hp+J-08}qoF9?m4STXd-b0#0CDM4-FSi!s+P>E z?(Krz0*;xkMfGX!F2&C8DbR7WU=Diw)pOlgN*2`Ao;isY_YSNVEw&ICt~+szR?BPm zwmNJAXm>sst2x?8=r<1LxhtaAGZ~|7F&*@l^#Md%OEJ#X@NM1tcrAs0_4dt*rj+DXKo{wp&MR^KHm_qBj<~=)pJk>R~ z)NN!0sD1fxdyw2_xeY4u;AIB|H(=+e2hzO`8&foqrO%ld5t0~u$AiH7X0%hWi;rOq zjJB$i6bg(%A-er3?Wf#1c?x4`;356sr8g@KQ(4U+m@x%+aCoa$+Ks$v=g5tY0moV! zeE`i{mKN>ykO)JSXX~8vp7hkWdy>K@Sil)LB<{~bJu3F2abb8Mb2}_9!~u+Bj(zGF zjfV+xm)9T|sUpmWvI_y!cm}F> zF5Ge0)ahzAp*2U@bn{CXaVyOyK zsBX$fwNZ9kCJ{~Z9je>AsT_gpNlQYSG6kD?%&_#y`j1+xsVa;saf}Qf*0nBoCZ_8N zCpeH1*f%(;SF1I}&KxhBpV!{4YC~2gyaF4!B$+oNg-nhQ1A|i7O&znX;wd{0)*hga zN8&4?vGDuPZNBP!mmrl22>j}dnpDe15?i(hNAaFd0;8e7^?nbqpZ=s)>h6( zIrgI0K=(RP01>d?xq<8LRbzu{kWNXbMiH?x9vElop0y@%QLyiFE3M9lU>uAx_9CcU zY0=3V-06ws&W9yEap_l!a&tx*NO;d8n$SH?HcPplbc9AjjOA2dlh>NvDQy%fwFzJ_ zOMNSPD_c96R`Nvs@`4E-;~a{{))>H2DU`U*11j)GY}0eTfo`b4ywhZW#&AJ#+n^)9 zee0sp?i|`ZtMep7c70UUG?odY!B!aMSEdN6E2tZ5(R*$PSlA?k9aXzxsokqGe964E zz0@OHmLfbhdBFeLpPYN6t7TG0uMq=!CIt3>zu{ z!5>bwn{L__)XKQh>;oH?2izX@VkKE(4F)!laZ7U_+9L~cGk|+G_ZcgG4lfK zK|FEVruq$#lF{uC)YAEwr`*CBf&;Leo_WS9gx2$0vV~(O89lNOrCN6-uEvT_>r;so z_pDvc2h0ei^S$ZvlXL&q^bIkkw~u7OQ3?In&mejlX19FSGF#mU_b4S;k3-jr=X_6i zEZ^*Q(vk_>+p&Y((`(z%Pcu5Yz9)8AlpJ9iF-gbRBY z?L_ukRMSs_*E>vL_5(cD9i(^DUL@Bgni$w_C(||Pa`<}P>;wzMil76WfPJZSy&%|w zZE$@3<8Wd)80|uO4*J}-x^0s%zqbLf2@Cu=#Vy74mE>(>Gwd!go`XHHTM=W+7+r&= zD<@Ua8N63%cbzvcu%g2zsFA!UtI*e=b=7Bm?r~`d2abX&U8Yo<~nD zxgZw6^!BYg_OhO6ZEO>2#r$~W_axJ?UT1EhZtda85)cMK_4ltn@s*<6+zpWh4l}qO zzlC<1b-WQck|reW?r;e{pIYR+O&+JHYBAb``FjD_{b@&WJ=KmD(%oe)3#y(lr>hci zfnK5E{{Rn7Z42E^m}PY<7$ffI_^TgB@V(F4mRrQ~(GKjNYUuSZ6x-V>rJD(4$q%35 zrrq>K$*qK2i=7y%YDCJiXO-s|s=x6g)K#O3Qy3($Mm&b>Mr#*S*7Y0xJX^?%mOGSy zcMu623Xe$9P0PYb2*ea~kV@odI5h30*$Hm)L zG3~`~TrZmoE1*&XCEe6)`Xa za0tg~EIkcXwTerPMOA@7zb;r{gM(e>ucrByOLMSD(UIl>)PdZ4)>IZ!Lp(P&n^|st z=KlbvL+&c>Oj(5nv2zBa9m^){e5~X6hrN2OtitNuE))^GWD4`EzYkAr{{U%-?pMem zx&z+2-5Nu07}KUXc*aNjwKBItw?_0*q=V%k;NaDOYK(A45Bi~ic{OEQG>I$&OHqSQ z27n|76&p_)HVOH?C{jq|Vw9quF^_scV(L#6ks!T5Bty6YN&0lF_Vc4{!N_5eS4yEd zU=MC;q>;mJ10V`J0Za>ys_V$e^r(>)1`uF+QbQ(vss?*|S(#Lvx6DDw#%T;?%FZ4( zfM@2z4`be~qto$`P-h^r^NzH{Tn9ACV2*GDk}z|}f2~H3*wo;dF^;<;!nWYjL@HnFOO#^T3?{QYa#XEFH?=8Ue>o-%PwTSQEB~9eB5CZf$2oiZjnnNgepD4-3REFBn{a$qM8Sp4EMHvv;SPzbuBCzEBq= zR;P#bi8RNM+^G*D5ZtP%H)0O%Jv@9A96n2!Rr;t5m?1yhcCbJCFS zxv_I`rd`Fp;G|4=9ovsi^{=MfX5LhRS%LsmNI}oAu3G9nI&{htAIr5^ju!)vPpv^^ ze3lWTY03*@EYIJb!`_{=1bPg6_Jxpu&Nl!%4@yYLB(^Ym5%jE!-BR1iisvAfUQp++ zenmz7wFVo?k81|pRf+k586{~X$!O`2(2u!@Ac8$=ly`74EQ;d{0Tp|8a7Q!%;sH6T za&Pkr2F`JT(-m~|s3cL6-reZ{E<)rl%uhL}?#ycgNifO*$m>!@M!}DIuYVy+DH~~g zf(nkLQwA(kByub)!wk7nPh3@Nqo(RAqEY7gY)YO$Qab1BS&-f&np`u-5t2kILJ`PQ z*B^y0v#3WLCI?mmLP*#!HskocXttorw)ZmHUCDGY_ITtm{J6+Q=RZMO=1;I(EFXO& z8-sMfC#EZi(=KC{D~knk8KWnDdWGtw{VSolv$)o5Y_1|Z01TuOK_juq`crGT_BtD> zp+^z8C7B5r2R(g7TtGyBF(*E?#KEuH*w1BUbQ{bek)62!6O3o;UBms{b)?mUp~St7 zsnox;uLcIUrOS&Teg(_p5T+SgO22XTI#$s@~)WxmA3|754b$jwLK=vXEV5Ne)29bXim<| zQdT(VY+fk7-2~A_Q5$(<(>#7+x*rVg)Gd})c-fb9WS$v;-~tD=aj@FQtY3(HvZ)?+ zD)JbE#%rgs5!l{Ci)m4!a%6QJ7448cDw@z@Y627y!z(O^vxPC^91M)-+tRwIVq0r* z6hyL>AxX)>?a!riF}kLpk=$E};hFbtZ@f1Xf-AHlD9Mcv3)-dj7eWVuE2zH7a>Q*R zfm6u(R(-XEi9OAumjYko3^1cP7!`KrM@A}&1~ABdM?wu~!0RFj0LI`AEr6<}L9^HxOM)gXzU{`mUOW7^AZrWMHZs z93Ml0?kG$SL~6HsW5$;I3Mbyek{I>LJ#$aIm|sYw$>z;4+*UQ@5z~)D>s<}bm=@{L z6{U6u%L5n+2Y*WEtRvJQxi>DR-J@TSs^=-_Gu)cJH$m!WrLDUwrP*&ZfwU;#Ke;v6 zX!@1hA~-cCRxO1_;5TpvJM^rbMmvj%;7~C;66IwW#yapi`&LxDueBL3B-(=AcRs)d zamVLI>rtcDiDsyNPD`)t7He#jjxmrx+5zCPJ!%arRQpsA$R#WHfQtZ@O$DvAxsGKr6$~2(+rBGuKr$rs9gj7L`d~Lv zyaXyIL?;K|J^R+%2^mVK2exT3l%w3!I-n{B2y7mGs=}7X9OI`yohuuX#R83>aOC&; zdQ%}K)6G}klb!}K?My_200N_obfm(vGGIF@lY!SKk&Je!7=S#(!0+u)MI=%Z=rW{` z3Ga{TNJX1@mUtFVQOK@u#2RJBpt3`6aIo$`#XuXFsqgq#NeTpCEl(Z2s+HTvZbQ0; zRmsY(=Naij(StmiUn@WYAroCqko)p{py#2-s2!`If^WClCZeQy*(oyMleZja9SOyH z6{L%EZjB^r3Bwg293SznTT!x?O}w7|(fp_xH#%nloQ{M11z$3HJ;&-*mrt{`o++Ti z3x(ik03hUo-u)|_)usDn>2tXk<=PjHG27m{pAJGV^cJ(Z+y?W4df=Sqv2~a%tuETZ z_mxE(4*&vtpIS>tVcT0Al;NXY#N?jUV!}H(?$%vEH0|py`-Ie+tpIXGZUoIG;LK&MZ-=6}yndY{#f$d>W zHc38HD8T4?0qI=T!cF#%->$~=JYs}FNy&Hl`8{i593&e`;Jyf9{n6L+tk5vRLGN02 z&Gwnav&th4gbaS^^ag^1P}C#5y)MT9C{1_!__qWkmz+i=2&2S?uPsz8~de$38 z4Zu|dv-RVX^sPuC`+SCXi}!H+>;`yI{x!cgvSub53q;UbJu0MLDxWeUfyzK|lvsrB}ZjimhonpdPcjs?sLE%;`MBrT zsinEnn$k3qMFL0v09O|o`A=3SrhO}a!*(mC*-3kG^2s0yM_{?&3d_}RE|T7JD9DXQ z+;f8Gx%yUDyU?a`cX9&BF2!7ub}vCiw8#eOV)GOn?G3l}s%!3?pxuSuuS7NMtBT#-|0M2ka4EojG zCfiMd)o%-#F3V((?qK#E^HgMtYm23Om-5q`5;KqwVeeAi^a9p{r{6rEZHVnBAZNZf zHQ3ILv^uB+07wToVObg~O*B%#kFfclEAfzio`h8k{Zmo7ne1&>%V5l#$6rj+)v%VQ zTV~s%5)1-BI2E9>ZseNB)2;4ev5pBtJ4P^H``PBL%XJh1O~a~g;1fyiM#h?w#N(Qn z4l6Yz-JQKL*wnVO8KMk0?ZkIPh$gl5U8 zUC0<-wJtGCg&J8%A9Z?~Vl1u^GHSK7_boUG0ZwG5%))ODS!a8Hq zir5oNJd?x+MH_hU$)WZiky75)Stdy?RHTu!66!c%#yP9Gwn-YC4r%q>Q>kUic06H zz^Ns7TWKU!%WWqfwUK9g65YDE!$@)n`?xi?Glhwm^u|9rPeB}Px^>K!3pr*IvC5$6 z2Vg$6S5os;O|fE*HYp3xE-O*4Eo)SpUhYRCD3b`Pd16IYzP_?kEt?Pw1%B@vg7QUMH_*?g znOSo2sbHtEJPKZ7Ijd`UBDULiwmBOc9YHJr^~X%smClWOcB^!ZnE^)LazW^MK8L+i zcerq+mu~Ted;!SoR_xk1Wr<)c(jH%&sO?nS+zjj3Wz!LU+>5ZD7e6y&>Cje$NqIa< zVN(!`4-{&8j{g9aXiGMkdwsf9FSQFUdJJ*+VEWZ-7qzyzE@Vtdn|7u~26#C=>0dxI z=D3R1&Pi^tWiouAVTeb;IX=}{Bf2`IlUl!*`@fN$dM|FjrC7MLis;E3{{XBF+qXHb zgJZT_Pl;Vl>~&ce9X||b6!bxJGU;ZXJ9z@BxW~Sj{utY34(e5vnNL>@YLm9VsR5*lC`mZY`WaB9Zcewa?uk^$ku| zRk&cEDiT0&e~YgNy>WK8_YuPe&s>yRbEdg#OJ{OUNDO%gIL&xFa~C=+fUKJ~?>Nrv z?H>55v)IXZGw^{^qq)G%cER0b0sD``=}l-NlXd_g@qydkv{jlV!84e*u#P>!6sc}c zIb4rHRqnK}w6YR5A`-z4NGyB%S5D~^1LkAM?dmFv8Kflb%>V-g^>OQ1V7t?o*r$Q3{q|>D?Vhfx0_?E&8|b z1_uB)^{d*9SCj2abl#*L$2~LYR5U4-?Lx#%iGp_?&HdWlM>re0(v$bDB($-_n6F;t zrj;8puH0mepmh4ylsb==7(Q9pZB@wQjAu2{N_VR+e(=R&-0AUK*-0!bzFZ8s>x}b( z+OM5UbSAqQvNxJ><*J6jat=rXzdz*Fg}jf+{>`<-QZr;9?~Hf%tkTipgPd;eN8WEw zZ)&Y;WNu{Mq^klph3lX2_pLcqwIMRpqIjFmxIZ(2x7dCav!gW0a(>WqC0zRCjzK?# zHsV32JI5jy>9e@UzI`eiYwMPGoTyl1TsB5J^aB+SR9?pGICd+H1N=SlpX*hx-+j4T zjkxRwII3dkDD$Ms$W8`-pS4htn(s3L1Y>|$@t;#s7z1TnnZDM)xd33`s2My}8IlyY zQyP_&G0D$v+*d@_7eN|r(Wp`YbmMm&g+m>zS8%A55XgD$kbBmuOQAL|X!^6si%XI` z(4z;`R;+N^#W9^DP~`OknxSo`+FLM{7X)$%?N%;lw}AwbIbJ{kc_%*AgzbNH(Oj14 zV!3o_V+_g2E$>SjD)s;l!-}jKjIc{95?>(Wi~=~w?OH7!(a(C7E`w-es>+)fWlvFD zeA;!y2(mFJbC9Yz!1b=CXx3EOysj~gqp!6^Doltrov!C^$}(}^=}t3o*jBmEYB7WI zfL+M|A4*GWHd%$cs=uwA|-a7z@Fdzdgo2-Wz12N7&2y8ZgNLq^fhjy zYRF0&+{eDor!&W43G(yQ^d6_4g0w9xBbQ~ILvuup=Q@r#{t#((Jyr`iLRHEAJa+T#NQ9sd9d=XDFmzq>Ijf1_^* ziWGC~JJ#IGaW$9N;ge!JQ*z`taIAi z1z3OxfRNeFa@Ai_)Z(7OQt1{69m!Cms-7{&^{BO-a$A{WkDLrK3daOvxu>p=EY`_7 zuJqrC$>gbQ6OrxjO5MsrX)s=_b6VJ)?!zaxG0t#%)$IdGmPy`gr!5`2?vIS&iOH^; zOt7}n<|SCPjl)QI1bYh9nV(}QP>66#jxZ`*y8)YP2#)XVJAPn+NzQou`_^`~wrCw4 zPSn9>9{sDLnPG@13xWFaSXR(x>7-frLn!kK^&7LEe<~0WX$;G1vJoLH56Han>QB8_ z)MA3zt;`XE`+#N6P7i-U*17{QfQtX>j*%wF5#zs-B@xo&fa0tSx85 zkXZS*kg+P#2H2x4Jx*!GuA?gI4{>L7v0TXN(rpO5ZTY(9ti=P$@+>ie(U6$Q8P6b$ z`&JxA?(JL6wP&_Wm1zzefsBLc>rPEd<|tXFRVvH0C?st;<0h$HY$mR5c~{7cw@|A_ zGRGZw_w=cBE8X`~>5`qXT&dfS;Ulm$qom6P?XyKX?g&8$dvVC)wLEElROaF`nPLoN zWEHDZPU=Q(Eo@}nY4-MN!e(*3wrx&&8kMx|J?4cX%#m#6RkMP66a8yfQ%|*8yxW32 zBj+vC{pGBE7)KJza<95L6-XpwB%XscN=?T15kT9qy=yXe2^be75yNMxBCbcN{fghnx?Hk?5zkzA&*N0v=m@&{y~K9K zEMeqE~d$%DS#bMa%4=u`D03i<%Shscd&-ATr6ioyYMQ{%9 zHI7ew_pB-{HZCl}m%|!_QI)sEo0#q!uurCHq_)=@BP_QhF=MoV0qw>I<6eimimxnj zOOG`bi0Qaz6r);OF}NqG$Ve>pcp*!BcQP(MW#cS*=QWu=jdC2p1-yZX$sIxW$?09S zvds<4l7&|o3@`%$)1_z$2_17!+PLf-sqSNFwpxXZUR~s<@qvX*WRIz=En#GyQ1-By z7k4ZdBPX}wYpT^XN_)jV@h=3E4d1m?wAlsKPoszMOsOkRzV~uVv z9ade+76|&|*EE+7nxB-`EzC;H!T8&Q*U;ouV%x68yzS;0F_!);9)DWDe{LbRVQn${ zp-Nz9Y4yjYbauIyq0*+OX4*ss&O%EMFP<<*T#AWRVz=7L8_eXf&Up6p6~o&}_6JdP z8*f|=p#2Yexi+sUlWMz38?N7+V5mNrsC2CKE1$Wybs=Yai(in&0A0M6z{&guYEKVp zj?y|@%mYaHSkF>VB#Os_P)jVViRMVlus(iJxU06&NvVCF=F%V~x5h~0cg^>{l$><4 z8h69u!%(2-+{XwGfpd9yBe8r+uTgVT*>CbcVIBV zUT`so}dgDz*&)8y)GTmLdBj_r$ z`e+tQZ31o}l3Sr9^(X6Ar5g#RF|X}X*@d}R47nim+<3wI))=w=)WNijMk54BrG`d1 z{d-nXc1Hc`g-qie@HoY2y~HsWnG0o({kjx0dTr)MC^=p)UPqef$Tp2d*;R_AeKaE#5I| ztDKBr;}vw`npT9wMnV8Epl#{xQInpvDIT>}W;<}bed(bYm$x!o$|c*mIvfm$ zvfB`h!x`I>N1*hso9qc01jMPwe!s0yX_DG=BtQe-9qRek$r97*Y*<*_>!OoRc6z48e>e-ADT_udthU&V=J0Q z#&z}W&gD0FC5}S$81y*ihmKkPWr-jN0m^a-KK_+MP?X(Yy9^Py<0p^8x;rI}?47<+ zzjq#lQ+g|lcViK zj+GnAO&~NDUs{{Z6_}?Tdeo*sh-7nsqa@O32I?Au+ajiL(i{WmJDTO>on~OfLX4n= zEDICvM?z}qte02f;%JM+e(GnS9Wp&T)m?VxDK6znZPx>7Ol5PC>DX3MeGTA@rCHYD zQq@bb86{UBj{g9KUKyTchRGFQ1$LI)OM2tC6;=z_;jdc+NE`JUACdlNF8#1y(=&XrjQq0E_1Yc{{V$tk(}fcfNF^=M8;QV##xSf zbj^2O9@nIXXsoYTnA`VC-N8LDYnQZ!7}4%SE>P_X#D^?L1wiYHji9)V;+PyTJBM87 z{ApU_dmf1|*(H)wYWvg@Nj*s%3Z!m!D=IGMQZb(RA9wNfq|=_$&igC5aVFoGsZgYL z$@Q+T$47z*nt3qfHe>Dp{{R}LB)2nbQv%|`6-ZfQEG8KZZKpZj74l80LYY`R2nJy5JaCjrBrMS}FBV!)W6cRDl z0+t1kSV-AYictIR>G*L?%II9SWA#O}yp3*OSiaU&fdFG-^;S%;Wc{0XRQ@ zBZkc~##!uq$Zn9BSndQ2fKT-Gu8PicEM8+OsK@Y(0y|=%yKFtqWWy+$-e!+u6)`iP z_Ih#jsiDwi8iAVc5+f4Jj+ytVyh85rTSISyBT2Ytumh7_C8)#*3ElFHpL!hKt~V8O zRE#WQFfcu;95T2Jxm70z8LL40(^!x}6_HCqq_#HhOr&7vJPzZfP?pyqxL4i4%8uaV z99F{dgl>AA(}~E)?Lus4J$0uWw=*xxzZuV5j`*zcrlfcrF&O=QtEgvkr(*7?e6zSn zagqgEnZ*v6Kfe;_jIBu92^nFXoyu$ z0)rCzQFJR14cW?^QpIp>rOJWvmWTkvz~oI#&~4g zlk*}Dm?Qi}GS=Zvnr-DQvqr2BrUy=H=&_d4Xf7?31`0O-dLE2EhL$}%ndMv+SyZm! z@5rXw7eZ#1Decuk+vUWL+r7satxY~*EwVl_xM2HjtT)l`3``KAzyJ)K@G;)Ebn8X6 zwL~C?z%7%Wd(^vF3RjnF3q06o;Gh`eBvETImes^aOE|)X>BY*a5*0-CKxf>fMyQ{4pYfI(5vS7tIBRS4L`qkvQYiUeiUrdm~2J@)Y?` z=zR|!m8+=fH?}uzt6L$IAXaX8V~?AGU0P|-+1s_YpNQ3tSoLmdh0ON4b(O;j3o3$h z{pR$g&2|m;GPGNNJx-x)L@~K-$fS}R6tSB?%~O zxE=lf04mDYES6_8OK<`%cD8v_+*9kQOLL;pt)d!vmx9+HGh_6p$QCCEp!DlmUKP0W zG>1jWXxRQa=A{=`9&unZf(ASDO4^O@V{M{lZLuA!*erdq*j7E|r22Xxfqct!ZP@Oo z*Xdh}GRT36+D14Xew8_%BHKX+){euB18`Jn$9<@hRw2nPB+R1#kLK%}e3=dO^tp$FkO>Zxo60zz) zKczj+%pX&Vz|b0TY2?qH$W968AlF2#+Kq=LsP$}$kQ#x$Q=ZiHaKj>yiN!lO>rsPG z27n^_R0YIAzGKi*$qG9OPv236C#U67F~XJ$xb^q^>KNpfMGjC5gMprD0bk7WnL~6V z?_+{}Dtm;Uc!YNHh+90iGm+^^%98w~XKDO1P8l6(hp4EsMu0O0U^@ENbhA%ybgv`t zS$Nt86cOlsYg8Qd?@-MWggb!RNIZ`81;j;utT5h!rbo{Ppm5S4RmV}B`gi)M$aZc*xOCB~S z-_In2*n8H9p^3)_6aiQ)S1>dZg2?O0ZVnA%YC0{bgtfGuR^C-R6ZPv_ceklyZf<1- zg7wc_8m*>WL8!uRBhT+f9eXccpISBCH`t@2G?T+}(x415m>iCrz%L}Z zK3;z4u9EHW}ta^)6Cj^tO{$PLqqF2S5$i*bAQuk^Oz7{(6(9y|J1OJO|BraPa#lY@|QGhT71 z!FgeHjcYfVZe;TpA9r_fewEt69rUmza6x)slTLgR5k|c`l5D5NR#shVy#v95pl34A=eREN75Zj3)!(eA1agNnS z#jc~@bAI4Ek%-rxJAEh%T%hrbYhwg4mYa6P&j*a;iY|2P%bSZ-xCmhb_qfm3in}G8 z3#h|(U9jv<&c%Sp`c|_t`Fo_`b)w`G66?QO`B(D<~mPcTk?_T*p0<=0)N_e(Av+=hK=wr}dx+)YHVyQsZtYU(!ntgeWl#?pJf!2rf4rtnO7?IL1EhC){k*fX6#K zI2`TydX?|_)2;5{cQK=a%5X>NSPjIQi|jcIGQM&8A?KbFtHIR5}R zt_y$K0gC3}%L<*}Cr$==<0gc2jSsT;;wqe5feVs1gsc-%d+Tn?kC&1+<^d1g6o5F>&HHjY3ag-N066Iw|I zn2O$CGD+NwbNP3r%I$F6^s6}JUH)jp0#Qli;2yPnzm`!?IpCjq=IwQjIpmR+?|xWd zG4K3X;B?J&0IZ;Mk=mu9GQ882m&z*a9e@M@fmViB3yr`1YL|nI_BkI~&(v@2>=9PhH?4Rwt$hh8|UTp!3WeDuYa{;6YOR&kl6$b0aAq< znqql4`V0(IcX9dFrC1)@ww`g`kPNhnNM+pod8!*39lg5#HK8I!AjFEUI{d&9`qWY) zn1jd3jSk;a#Yby2mllytB5Y^=9^=xFF|n?&+e^JvAbz+Q8LV#*X%XJX_UP4`Xut$7 zJCuJ>TG4rzC(UD+wh%)MbJsrgJ+#W}m0;fDi-_@pjI&}zBRm1>dkXG+IcIHcW%m2E z5xm=z40sB@{^quBv`ZVC@jFBtaKjF84>>p(=hCosr@2WJN7KLsLjX-sT|#M<9wug^Aj78=g7G7^v1c-rvj$LT_)M zvty6arTY?}^n`3MBLEJ$>CH-)cQ!WC+01~f*kuo%IpmLXPtay;*Je5PK3^$;xR$}l zsS-pktmu~+N9wJVh1F1%~-V6WVLx>wje8GIp-KB zr`I)IG!pYV`1GsAhT&O)ykiZ)`Loj_(y=0WKFkt1Ol+Z@+Wb85$WQww@GeBv8#MC#R>e6<&Q~Qi|-(=>AZ_R&00eL4`{X>U4A@Kw~2fu6iqL!nw*UdI&oaio$FxkCWRM@VlQHD{?mF|Fi@&&JY3V$*w{;|O^-%bMO(;n@-$q!~djPI44vpZ>K;V*}h< zM;id!LZ~~iFb^a3#c14F+uHdWUBTNFNLhe51)C()Y|4@5-yz71?j4C3tMEo+o--dL z^Zrlo)w+y3^kH)Os zTgecL20NNX5@V(^IH~lDDK74Q#<&3T&D1K6r|_cs2_hY;#IPW7Oqu}%%Y@v8K^gDs z)84f1R>RI@w+_)M;ke25KjBQ3(%L<+!l5Jptc<@u^WvuE7oeN$s4lK>yK%NL)Q^00 zs~TP7Y8tw^O{%KS%AFJe&}Y=v1=0Js;c@wq-}A1cO_pm7Id9mBC%evi0wW(NJao+u zYl`NMgCuXN%^Z$*f2>@0AY%rm)n;3Jrb{TXE0A5Yfyw6;ji)r$ck$j%rF`6#W7BV~ zX=={`YKt+DzsRl^w_Nd4)E`4qO>L}Pz((RR%78)k{3@hcgHB9OZn7oGBXb^pz3Q#r zogoZNerw1>1Xkz|(zWBUXdr0q)t!LD4lt}oOwpjp?UGwaO{=(KoMd`dg{vr313O6R z=xYkn^6GP&leG}xum?YlZpAci!1l)!GAwAHQ&r@U4z$*o5%QX*_W0B!}*)$vuFsa{f7Qq*br%3ZV35*I<9lJ*6Jvro>=^Ar!VD}IlZ5x*zMmmbic`eLx z#HdUHLc=@~+;N|3*t8y1pz{K$BcSMW{xsilvVvYoC|PAm13D3cnNmIZ=xMKYa<Y(vqd5%lz_~BQI6Fu+);~{GL~GoY>+*{_oCW?1dbjVrjAeE zMgbgk_NV=$?Jxw2Qq8<8F*wP`PtLL=X)UM94e7kG7|+U0S+qoy$s}wdjd1Fqak%g^ zRbVysWj5Myw1qbLt+(9zpT@YSx0=#vA}n_erz`$@S8Y74wkWQ1BB~s)<2$(H@b6S3 z(SuB@Z=WRRbcc?EIQ~?Vw&FS4dBv7Ysw7}@wfmoX*ttuHEkia0uIj{e1JHk3lFvnw z8;85SMP)`Tyz*PO6{c;jE+loBeeOX%zMqv-XbyJz+1dqZWW#kT+-K=dv$pc0X<4#I zBoAuY)a@a+wT&Vhq{u?e$vLQQ;d>aK5J^pdvv4!*Mf4GbSr+a_Q?(ti1_=aXzp*s= z6d8=5?o?5O&;jZ6%}E~O%+QaJV0_2DT1l2kWrY9*!zMc(<*9+0AoBMT(lbb#&(t2i z!xgQfAeGifW@8vF8U7-q^VXX7Kp)DJ z8a37?68Yqjzo0zlKgzK#rAxQUuFyYr2^_N?a6N~AYTdZFZ#80!eB@+%de$DXKE-Q* zOE?=84#fWeQ{JW|ob~LN7k6(A@~@K{2-%x}J7g&8Kc!^-yvp&}g$@=%xfleldV+gZ zw!B+wh@)^atgS0B^z1*aTh^AtOu84=Z+GyUX-9t$o=6oNe*CP5fB^pPJt|nvf$rlmH0-;f7z8&Y=dK5}R*op5R=KxkjXv-k zeA)h3rr9*`!65*#-R3Isf(K9yT(ns{_MM~JvwXk~LgTea&SqUw^UheeKGh+MXOq{b zwRE}o9e%aL+38YTU8s?E zq70TFFvr)_)%%9BzLUtdoJip93CRivQc0xZhjV*X)vV!#WQ;tg_*F*-{{Yuqez~p7 zDy686qCx|a#(C|ZYPWj(t^}`u*8c$O7<}BE02j4WhfizYwA|gVmO$J91hLOfy#S{e zrKnuQgG`oR-`nS4+}qoLHq;|`%NSMinaaF`@JaUc7269*?li}?h4QZ%QM;n|IK_GO zj+=9RH3|OPlOk;vIVDz- zZ{HngM7@&Rx;{N2_33w9U@Xmz)(p)N~Ybc#bNU@$?~uSd-GK8 zF5$I=nOG!asXZ$g-OSLtN=X~T3>*@<&-ARwuP$|VnPqUX5(_U+mpI4cNfpXzPjEE_ zjcv!6Bs?0@lG&{UDh~H21yF7o#b&%iPqk&V1`{dZla|2ik4)8AKeTLGJBu}Sjz`Gc zaEBdfxxJ9o7Ut!codeqxW(0;^!y9qb{V`fFUfHS$6f}>MkOv@opFvQ=J=N4Tj)RU#KgzRi;FXIBaMHHL!iGFIUY!M0Hgd%~UN|ntEKWuh zN1*jJ%*m;2yz)oO8Xcf#9C!Tdc1y{%2!*|^vD)ebFzb=;MVUo~p5}7K-0mSue7Mfh z&{c~&i9ECRg&={RPjk|$Y1UI)zTyZR?sNCE{oGU{G^AZUpT=c!R*DZip^2 zON-l?u@aO&c~4+7*EME2yxEEuXIRjd4aX<1HDN9#juP^&B*;k6fsj4^l*wd*(#Bio zj|{PrN$P(Ob57zgFEu3FGQtZ@5|X&cRVRf!^`~ey7dK&EQbHih9CgXb#Ydv)0`Ba~ zGP8wX&U3*eWOLu?UX2ngN)j*?SD+oKw`F7p6w+DPPS^hcee<-ExgMMo&{VSA#=FA9 zx(pn;9@x$*mZ*?h>x%{9D{C)4*&yTctMN;vY1(r`3Ou52s-!dFy$8J~+;%zJdy9E| zxuudtJAf(2LDIG+k|&*f_GU?!dng&kI8bVpwY9a(6W+95L#{SL58Yo=-#*o^q1z){ zPpB{Yy{tZNL1E}UC~XSIC3slGXIP5D&5_1PAY-qkZg_g;C~Pj0^~iQ$%bu9P>F=7< z)3odB%XuZA5XUP9#@=`wZS<~ZRk63zuHM)?ID9tYki*#j06r+u=uy(yz4g{-Xv+gA zQdDE)13mrgRmpi$!CM1<9eaQ|2l1)&$hPV5qkszlTLglA>s4ZnNMNII7|(ysv$$NV za~GP}CjhBm&%I^CW%fUsCS!%#sC|2%#U(A+Hq!OSY>_>BowGdX4S>^y49Z^T1q`kS8&hil=hK++^x?{H| zrxeDED7)NRGmz9&~IjJF6=1CgyCgu>)5hF1ldmQ!pPy?Wz_-Y1b z24!|-WhaJDL0x2)u-{rDz!o^$Yka&C6mUN}=3=_DW@dm9CU+Oc6dsxOt*sEqB51en zM99J5gV#Sp+O(6pGqYQjAk*(65Xunwr*I^Z^5@^uscOq<5m_g5xTpaXa!BfHq15#V z>|q8#PJKF8n@e!_mrXN_=QtjMw4|K%WXYszLnY1S)GuzEq~3Oe&ri#>ckoSeY~y=@ zi2%b6{8uI6`R(D6tt4EX!Q+18j32_g5h*05FmP%sJ#Aoza@~e z_o{H_-)fANJ&*IN|ay<6w(Wr+O6A9 zaBOq7AO_~nGRL<)s|_s3a|8@u11>?}pGwfTf(yvmrQFhn+~G$jJ&8RBr7h2y6!BU> zorhD;Q>2ea+ zag6UH0eA%MJ!-!56b)|5BQieoo_P1A%)^x&cBcj(e>->?1B{+(xL6_qiQf4f4w&!w z)|J+$ZRWMU-!db^FgPb22>MjeMP(QlVN0r(U@?r~a6byx?JY=Z?9a6k%#y?Agx#~{ zehVD*2eo$o8-$`=F<{u2Vv*Ad2Ty9o(Daz^EuQ980%0amTc$C`>syh_E|TUuwoS5< zP@p&s=zg`0Szhr)#yw5;W{rmKhreoYB;}W!oYqF6H2(nE^FBryK}-%oKD4?tU+7`X z%;k^}t^6eWis$9h=C?J2;jn)yM&6-}V|c+mdC#Dz(VPBT5s|76;JZ&Tikj)IWP``Z|<;F3Lv3y!3B_2Rj~r9G^XLnEx4o1q+f z*J5*?Yd-CqI>rPexKOMI-BLP|YSEPp>5;P6M%u4?*(lUXd$77@%bl0NP_kFIN((&vuS>`Qu^ z<0^O~*P*SW?<=w;q397a&XLNjvL@pP5*Z?!WzNzi}Z) z+#LWNnDR|v)t!n?=w4fzSna-2?f43&E^kH)!UCRmlhk`+teK^e7D&zz_2Zg)^Z}Df zV__H=CjfiZkf$3@HIXcmrev4pKXp%BeidPFBT^%{Y;@;7wAvNTFDq!s=9(2SGC8Qt z)KMl&j(8OHxsBuV0r`Dubr~kmy{U|GKyd0=NWki9uJ=2cmx0qA>7)dQnozY2F7iLj zg;0MHtpnx77nt1!GH7nXT9E|;nIa+UnnOQpFdwYpdrF<%{PCW?>Ht*0$yDT~$vc9&3`l)dM!$L$y7HX$5zoGT79#w%prp_K-$OvF-<4 z16t8vSi^{v1yvuyxCGZ1XLeTLOv5?ObKKU17a$~$$&ic!e}s3doF7tSBTrD&qY6mL zEI6)L&vtQ;4L0Is-N7zL@g9^}i3{a&G2iQ2MhPJ~T(-GF4oZ%yNIaiPu`I;E$;jMt zRCKG_Zku&`xJYptHhJn#p!BKrYgnOACe#o|-Zh(&y^4y^;JPNE}-ZK~^R@R+nLJ1_`_7vT>5U|=ijqOymnC4iZx3>Vau1U$j z!VL3WGN~L_A>vz~F8VlEsJCK%jM(GevgW%qj7QII_V%{-A1cVoURG>@gV1r$HJcWL zcYNMtpde6NoR%Zde@d|0#B-BrpEgN?fC}YRM{mQfYq_$sdkjDbWcMff)=ji&dn3wk z%(709D(#Lju@k4~@9R|Nvz3u#e2nxT%DoR*g;MSAC5OzBIERok?tN>UT{lr#XiqM;!C$ zDbvdmzn5+IM@BtcB9PGX7tJb5JbQA$_2PD{*PPBrWrzb?elA71e35yfGwFIb#zRCmgUn zGgYO6Taia#E-sD3oqQ6m=IjJ7XM-Cw>0}xm@w*Ud@R~g-7^VU=;jFXHGxD^G- zlp_d2;f6^aMth2zhUO%fOA9@;gUWDz>YfgJ8oy_$LJLJZ1zn|(p4jTAAEk1)ksEgt zqnTbX8g=wm=tsD&io(rqBZfe&ZnCLp+W_Z|Gxe*|#I>mX`gQ%;xROR9H333`0)zGS zt;i&WvXFFKarLJ@#pBo5eM(Vhtj+U4C9lQ=|W+X|0$f}nUZAZZ14!P$(l)zStbD`?1)E1sB%>v_c^ueKk$A~L5Dl+4edJoE?BWWP^sht-sB(1pg7!^Wm zh1`yut9*=o4{B+HCnAv4O(q32NxGa^c$E_MhqPO;@V(Lg@4nIm(>OGCrc@N$l>OyiVkeBAz z4SJLNFVpdyk5Ax74helmbv>4*XY$PXv(3vPB@N!TQywbSS=trKSAP%^N8tq9bqN z+P&J=VQ~sfy&MDi*MP#RPEQ>=*RgnIv^097pkSy;iprt7<99%51JK60n$B37;HbeEE=EY>wPwt1?{s&G7zkreoE5>y^sajT?q->- z?VE5@gN}f7AFXR$TwA7_APgJJ!b-UQA}Xz5dtBnYK`ggW+DRJX6BgKj>O!7LA6nh; zZM>H=n~R4f;o%X91fJEC;mbR_yM~fkm43jju}(A2c>K+2J;Uj0ZWiHWmDyViFv<^c z?N;8Lr6+C8&k*>O+RkikhQ>G!{c-FonvzD27|heR?+!rz5Pj;VwC4KlCvd8=C~PU~ zoa6JVw{sgyRnwwv%GhQkbZ=@B&`D@?(dzdWcIGAv6tX@RNSA^S9G;by`j)8$;EM57 zmCIqk`GLh%u)TPok_fRT{FX-@hj4vreNyCJ!Tq6d7#xI8mly-3A+xFQbmmiiz+AGn z(bJstt#2lHFU+8pR$xHvE0XY4#xLZAoQFgBk@zbMT%EhUPeYpR_b%X|@@p1b7;o)WZjL97K@2$0rD{iq zMJ?20^P=|~*t8pstTR<@?iJnQJQ)7~4i8GTfWn)#bCv@nV?NXpPL3R88ju>UpeVwO z3X~c^Ot{7>H(2C+6Z0phQJPvdDI|}Tn;Bu$;*bwz+_)7EGIwV@Vv=iNFkl;DafWXE zQ{#w33P+rk0B6_UfC2K+I!P==VQr7t`cwk)-b81O!-P0&bB@(KQY?dV9ExFLg^X9w zDNDxOKZO4P7Cq|h(S4#L4&s}?iF%KvPTZ+IaZz$U@WG7w&2UOt~yAMgS(JNG~!T(#vMZsL(;OZu3SsxK@etS!96fOqOM!J%W9H049W@i^`&65 zGeUYORs?&}4yHxWXzn4hOcGa;+@7AlT5YDO z92)Wkp7ZVNs)Z==4#Wj2I^bv0y#mhdrxD8=lN`rz+D8EM%{d~v8WPx9whxpz)83mw zZ4OG_*5gi9lGuycreHF}j3D;y=~|k7yiai?tR#k9{K!st`uDAdx3_5agkGE;pURPm zhy;Lq-2l%No4D>*)L1RCb#Iy$SuyN7{{T9w*B2KPnC!=ziNuSZs@=i$6^G*ON?U6I zZRL&EF`dV<^I85Cyt#W+wuVfod`r9U1wY+2N;X#nu5_|nOKA*oS~G2pxEbV(+DiXCvL%2XVBxJbevWxL1`5qJy|#=hB*i)fPO3b-^HdQ(@#0#7tyK z(2u*=S2w8LtXhS=yeXCrp_?2KdU7kOW^m3}VF2Lz`qp97Y#0wD0_ULJ#(jRGh2|I3 zczDFWY%7MyMgz4=dZI>)=fFk`R2&xcrHeAF!_`O0pH>}dzh^VdCt<+GGusq~HvZVj z5q1IEGr3&x(DXF)oXG){jzHuNYCE?rZE+ID!v*d?Rx=pEa`s$lToh(m3FH zQ?{29*5rDujdLqrOrdPjT!zR@J;k z;TE!~0Z+{21;-;l{c2mQxex&gk1!v*j-;Fc{b_Aumii_)S#(pCQ;d?M7~>Q@bz@A| zbVg)wc^y3nJwf`_0K-5$zgaxBSglb;*$7e>s0Y8{Q?LRgk--E3*Qop|iA8As*zuJl zjIy3U2e0Gar4r71JO2Rei^q+Xq=HA=8BhiYJm$M-+&YXLf;h)|@>%t%TT`0W+BoF2 zY0EQhC#b6^|He zM}kx`D+fO|2*wA#YTuI!GVYrP8-c;c9f3SosOr%{Et<(Ig&>f!cN`u+`qk$a=H}w% zt?iq1NZ3=1jE-^#y;_y^3-ly?H0qMaY`$d5r*x7NfsAvG^%`E!Yj-Rfb20+OL$)~` zGtaeMy1Tk7CA?Aqh?$mLeB6Hs{At<)z2miu#}u&u(h|ci1~KxAchC|iYa2^b9p=!_ zaKIFk84sRL2N>qMn~hNEQKMZCFv#0R+$k9L^sY6MK^k3K6llc0OlbcAdp`BI4f{z1 zw-@UHnicYvGxHL|si|W-#Ua!(^YpA8UrB9gW07YOMySB#XPnn3ZL4Z9n{7JYGLQUZ za;00GNM5;=U8bB>`280XWyAu>`sijfF8Q|Zs+O*vk?)o-*w zw*oD|J~;=d^%R6gWR+}Xj^8F!7#ZwML3w)~kETY`wpb9E;F5cq)xiuHbUkV-n@BFA z+dN`or+S9z4#^wkH*F1tgwT-UmvR%*it9e4U&9rY93;8#(J6}Lvt z-Eq4BejVzisGjNH%1<>%NVk!IM;IMWE7ESQ?XNW0Ev_RGwhHgS42-;U>zbo&;aj^n z8sg6765|!J6~|QzolJ^y-Em9-LsM#1A+(40sO0}@pqW| zT8POQm00}%HRiVdWNZvaWNO<(bCAu@X1Yyo@>wmdtlCvRP{Zvf?dYsEH z(8oO2qC9txF-ZcSL2_wGd=9Hd= zJ&!QHg5vL5l}Fx|R@zD6DvrN^6{TZj7V;QX45fi%fr3ZlOns5+Q@qgb+Kn11I62Q> zb6x(O1L>MvFLT`ex zQhIc#?zH*rX7U_?o=FFeYfWdCE1~wx#Ux-D-3CLRfY#KSPxg#bOpYXArbZo;zvuL= z8@A%;bC)gli?k@dX!O<4t_vYLBP*i)89Nw zz%wPXfI4tbVOb^ov7Nh^-~sMyLQ!_ew#k-hST@1VNbW^hCs(FG^0mFC((jE%;m;di zp1$6dc@$mW+<<~eiP{)1+{Xh3vUHo-#e&=1K01Z$Mh_qwO%Gb1PHAlr0~vC|KK)L5 z)LH6T*4o(1r$;5jJ_$T1>;6q?&2G&QSg@Hnf6B3&SDND0-4LrG>&DZbN54uSn&Rb2 znNBz(uprdg^(3=8WrQjKC$HDJH7s%Cqi!Rqr^s+R08e32ugC+CKs3|Pn-i>Osq0ck zv9dA9Byq=4Q3*1?Db9a7h4#e8Ncd*^-t-BN4p%C?oZ~%kJDRaQ$%5C;Pq+vGbUd1^ z0(ol9aKT4aBdE{wH1P}0$+hyFIaVEU>z?_f%1G3TP3Rlc1J7DhN)J=(OeT=Urm>}_ z6HG%`)jOFMDEGO?Bk}gB_hvwqldGMP6o~xq#^c#XT3~S2*I#1Qn1&N8F%N=v;PmI) zy>=FCF3ERLs0+*JwH5E zOHz)j?C)U^xrB~0@{!xuisY{~3yX`pd)WvcTa*SfgMrQ~t(Ius#iF%7VZcHG`Eqz9 z55~BiO5Q7J1a{o80f-%#3{=O=4V_l{$5Ohtc+q^ger>(j=by@}wf*hf5m+MSRE@hv zNgY7`wTEJ{Nd8=>Y2bo7=RE!ZS52f#6`QaCNMmMrosKXufVl2y*&sHw{Xy-Zbh%TV z$6}68r{P-mmtycbx|r~BgIw+H?YkE8A2KovAyNhj5 zF}HR@Db6_d=~W|$>8%Cw4e`j?$<9F^UTa;hZnYbaJ{Xx{BWqv=1cR0b>rJ2|OB=ba z(&F5#YzFSQ_p57E^4Yw*!86C;4hSC9L0eSdi_~2KcTzPj|l;(C~ z#N+^RkWW!bY9mfJNbb-%EL;GLP6C75p2DtP+_aMmD|h)(aCY=LIXwL<1~+@F;Ikf8 zP6;>%Xy6*Z50mDhfUs68lHI+2wCo1u{GuozwpPNnKyJBjb625dfl()sOKr|Zae{cR zZR0ZD@1OlvK^P}!J^1FOx|7e5te}mhGO5GzHjH&6wkcac6H~mJ>vVSP5o2us0K5ko z%{5_Xuvd27zajbHV+W6=RGJAL3|m1}01td|_3uEMD@bF8L=5DU&us7pD!h=5m5$kv zw&Lmt91LfUl}VtBw0N{J|_pXahYkR}?Fg&fG5W|n5qD&FdXm-(AB=ai(Bz(xf-93e6{{UxPCHslj zF%odk4^k=!nMV?Nz9JhgnXbKeZj2nW-*32QqRbVupuCE z&Qx)ZYTRMqjE7;fjicM%sasqJd?bS*@K>?UPv$E|R{&;^nM!Fg`1~py=11Fw3cR^I zf00Si+1OyWO6Ile`EBfFjx+N+Y$LcI{d%i(5s9f>Ec$?-ZX#2I>T}=fYoWM~7nT@e z%WjKkIr*|rf1vAJba5=H9k7tF$ny_EN%ZDdZ*Z;{q5Um zFv(>r{L&nap5v2`TEMmw84^2FnQj2bt~1`Qfex>#p?pY4JM+q_g*^wc?^ZO^X{UM2 zRFaFev(OSa{7p5Y^AXWPUdWpi3dcV)5t7bFQS?13j9+QDi|tarK$8SF-fWy?cC0&% zW#vVRX%%|m(;AHtz2G13~~&ZR}6o>Nkxe64y|nS8+gfQA(xIoCxM!mNz+ow zCAG5uJziW7c#GsH5&T)V`aq4M4$PRl{wYpFu z1d+Iv8-XO}B;vEu;^%7>Z!O0R4hBbV4Ll{*q^W6b3dSQOw4UevuYUE=+GuHN@yROr zv4gp>&OVvup372-ws+}g2bbk3jgu}$Hv&#M_M+MDE?8Q&Nrw!w5sjdddG2b3)ryCf zOKsoR^v~x-$>lZf?pDzN3%R8E zN22Gs^{PK)p6bdtRZ2wUvpGDn{vNeZGfiY+o~)ukWqf~ zbWlC$Z?RUf&+CZY033&+^+m@NY5G)pbN>ECSn>u`xT`-5Ar$Vig#V z?*9N6Jq1>}@@_5?M3nhZ0>yyNPjY>|DPN!(7UAw*OOV?X50`KR;Cc?#RvYOrARlQ# z6k(VQ_a5W5W?LDq?-+vKOC8MJK3w|y)w}8Ad!^IX61$grx2Rultrh}7dg};IcQ6b< z=!$v)>c+Dqx(h2>l+4mLKm=_Asoh!jt#fqG69XN(HVmg3Vmjm8pUSs%M$_Vr(m@xW zAz(AfDmckKKPqilMTl(#kpv-Ej!FPabKIVlw)XqtjTDvg&Oy&TDwII5M;4`ZYy?H%71xxM*R1`_cvg^qZD!QtueS|(y5gmOkX3;ogcuI@O}BoW3o zs_+1$+DHb)3d0zTbAieA#Ykz@1hQ=TLYF>+&{kn%pYaW!+U-2(_W6(<%aO_UuQ=11 z>dxWhwqlb^b^u2l_3P5TB1^e5zGMTQ6~Dr%&!xT3@6}a@P_59D_q)}nWoA*$-K-jo zM*!rH=Zfbq4aKLI zrQyex<(Zh{JC7ehOMMU>nqSE^u)DX3$~YW%U#GQXc@{dJqJmJ&VvFwrer5+GpQT&S zFAdC0H)2G5tBI*@11|Ww>~e0;3>k-#n9^Mm?)RPE-(c z#Z)mYraOQJR4G&G>&;vTBZ@*O&o0T;IXO~r1x6iwrpn=nIrSNk?ZSH26XljDUxt;9@2Iw=t#jLuFz8xKAm8p z!#V_!`ebC2`qQ<-#@)58y}%an+Xzli?+!@DJu}v*T*B5= z+;dy6$l!(;;ODhbv4B0q6Y6p}6K&L4=31~{wMu#ACO?#ySHA&@KuOy>yO!^Oc z6a$#hlJ*#5GRfPwtz$E-BD-c0 zwZ6HuVH+f6-0ugD2Tn&?)wQ*TG8#UKfz9O7}gh8vQ3Rt++ft&h68mL7KBX@w9Ck?%k1sIQsSUsPzjczS?eB1moo%gP`}S zj+=uy+gn=_nUw)7-+8zyJAM`1SX(SM<}J8B-3aVOVM}hM(PTRnm}P*@7oZ-(r?a_z zI`r7yFfpORK6(cJl~pe#p)t^O%PQUNL$o+6lg0_}`PD5+ZW;xVT#*S4<+nmswDm^W zi3wHbApH+&yLh5u8^)lkf={LmW}U3dIc+xm=aN>vxF~VcZbI|H&*@$8zyoeEfzrII zQnoN(JS)h26WDWIhJ&bHUe7v6h#-h6sZN<4MO9c`b0T9aJ2R#L8e_#9kX&@6C6TlI zIQ?p=x-7E!IA=xOj^qxt&X;3SI0Sa=QV^<#sTdetF_`k?ae z;do+FPnwI)N2sb-mXq6RaLVPUjnD4dL(YADt4>SqE1gZikBOY0lZM)H!T$gXxTO#U z3|M-ewFDEve-V;02_Gwue&EoNq-v3(p18q1y=pv$PPk%nPhU(_S4@c+A#&Kj`kGzN zA7}wUBz|AkpDG6Lf!>fD%G)))i>+&a;$x zaq=6cK|G9i_o?jlIPRo-+n}LI0g#OP=kTrVYt5S8XoP`F^Z*WhI@S)EqzR#GRFHX! z>my_zyNnU|8qzbr#3@Hj4ysw!D2r|grG8V6oL4_sF&>p$**Jv9<{p5wA~_w|4rP z)VPmkB6!pS0o{&C^a8obt*@tpe9Fa#BRTvAJ*tx)KM=Kla$hVQ{1)y_?%nU~DASqiYoQoa2t zqT2IL3j@SP;0Vab1ozK0az(Ae?K7a3RkA?@M?071bMk|llGjjli9;%2a2OmM3g;s? zCS1;qFK$LgKPrmi^sZq=+E>(j_7r zQ`WJ>G6xE(#OJ0fXjvmU-I1x>!yIC)#tf%)gpzvm)}~u4h2fF1dVhs!TIr!&34T^# zz&#h9^yMT!j5N1c_Mi?f!r!!cjPi_$-03l5BLF-tuSWNeZ4#79@S(3qXMHz7D1Ic86)ziifxL*k_Rks z2PFCd*0_TTYPV+o=mZYqYZHt{IuFLWi|H{J+1Dkd`A$6#TI6P))h9M258o+KwEX<^ z_7saqTgxcmzf`&_FG6+>gB%R!pTfF5H(F`siW0coTjp*stHwQQZ92;8uj9*ux}%70Di0$S1EmzxvfpPewTDz@!61e47tW)Xj!K%yO!~cm1lBM(>b= z(?38fQYfO59qt!zxxgOu17x<#Yovg|$+~snv6PQL%>Mu?&9}dFyf*=S$ImR>{d)S- z@2}lL*+I9-W1ZxEf4F870JQsqdh*Jl`ft(+L+>r zE<n@w9N#%nk=-mC$k;o^tdU~*67;*^6ubX3xyGiCKD)|`tbgxVBzl$RBW772i z%QBsz`h%0e_QefpbVJbeeZxC@^``~~pm?E|{bJ`hezZFWhC!pOXy zolmV6u>6ZRHt%qTHFAg4WB7T-J?lE+G0DzAKF89pBADS@ zdBW`-5CfmjwLQ{UBO=_Bk&vexdvQ+Wjf9^y-a=JelB$0oYXVElYfV~c;fyJ8fwR|h z90ER-a@Jt(@Lz5R?+lD%*A;=S=o*2!8jYiUqZr^1m<;3}!i2kx6t4bjsRhYM$`D#i z{LBv^1s=WYTGB`@cHRYOT2feNl_R)5gjJ0;!|if;m#VEM(h?<#2sZ@~QL@vfVN(KH|Y{C;LOO`Fby7^{eRXA_hZ{dy1}P zlW|sz?EszKs033-j?yNQVxwH^za(wJRsaRhudOr>YaN7P9A!S^4n1p~zOuTwyc0pf##iO&ymC+0w(ahq zC^k571~)Bp`mV8UZy>Zu0A@Kp!i9T+V%^+96Zuami1C0qC;tGgPyW!hX$)IP0D-@; zu6k(gZem-zl2o?@?&x!#GwoW|?dB`BwihHWPfQNO-m1bjeCvI|Kqo!%#al&)DP{xd z=~%HsGv)!x6e8<{K0u1oYPkZYg{xo@j}fZ-0S7?dgs5;Q_$SQ z7?##iDP|x5+!8wVtnFoDx{lFQ5=g>lf#}D}$iN($jitI%g<`(Uc^U1^ z0JJ~<()L?;<%$rKN#-!>-6}&)rW0G4vm0BI?JOMH{p=k5JJ+1s=nplVmu0-qF+&0F zPa?f>l~^6aBD0bUbwalLReR!^m5Dsg%S9~6$ON&-IrUNxBE4P|MNrDSat3P--pbnA z<~d{i(HRFH#h+T}6l7wPcP+gvI08maJ+Vi%I1CR;LMS9b#VMqv#Q-;@NDVO31Bzf+ z2C3>6Li!&lxk5Pvdeq?5nav<-=aSxOx0XUl9SUt24cNALtScGjNty23&4uJsBxK;b z9D$1UpAtnq#+&8ByRg}BU^~~GU)#XeaI6YT#u&2?Qh2LQ;TBPoN_#u@h)d+}%Q_SD zD(Ba~TGPHrH2G4=3tURf1A@FVuR==Za(|V2B&(7sH>p$TBBzmPc?9FH z*0VJ$SgtJuFsd0N!xe6%eQQqT{JUaU*D-Sjs~S9#k`sbTkaDN6??NMXE7{&p5wwog z3?n44KYQA-mfCAM{M&d$DA-(Qr>U;>KF@2XsfUyck)EX1RsG~^YHlJtf%7ih_3PGz z#`I*eY1dM~1+>c}kG;F!xTrM7nI)3m;#HA{rx@&OoU+s}EiYBB8_PmQ;74!6rElJw zEy;NpK3gBWgRL8AKQnwBRGmd+t>}&z-GN~u@s7NDiqcmcVCOv3C86AowIZ5Bf-)(* ziUdv#I2wc+kQzfJ2C3>0+}zrLLSq7g-EM{rCUA~P`+X(8vy_j>z`WcwMNt;jbw${Ws!bmPJrXmvm(>4S^*?3UEAdh!*AD$ zrJ$1PV#Nzd0sDDaA_r<5ai6V2qBNElQr$qNMO87UKPK;C=mmAs_-$@B{i@`;s2?sk z81$smbl66q?{4Ne;^Syu53lD%(MYAI$A7ENMdX34fg6GTEOs8%*G&RqC5gPVAKXxJ zk?BvG+9?zjU96)DLB>BSf-5NCRe2reDsl@RpGua**-GBQBaEb(e6t;_aydB|t$5fv zo^#r$n}r@@vjeb&ARd{f*~u7@wh|17ejD;M#Au@VNOQ;)T1k~77aI;(?E$`CzNVqL z)7tjn8RTV!a6+#cBl=b5RFV9>xm6#4KJM+YCMk#Q$m>-01+ayc?+v)lCql)$anM&Ys@qAXYH6%nZZV84 z!0pMvIP|W*=3leymN>VTV5EV_6>fA{VR)EsRv07L(oVp%)Xct&&27368I*=mjDuM^ zY^`e@#l_PS02sjGRP+RYg=*P2j0;&fC^3xZfl=E=@ClYdfMg1Uo7Nj=Un?cTWCf|_ND&V_at0Pwzgo)n+&W2Q4) z^zdI;YZmucU+S%yR6als52xYQyGzUTx4V#CuINY$mixUjdG)GR{{Uduw9Wf-60uOn zs^gsVRGZz2X{t6YH49s(WP!u&!Q;^MsjecLObBN3Mml3Tt|{WzB9ZUSI!VY@+`}@})tZFd%!rs;vk{Fi+bOh&v?^L@YOk3H+!^yYG#5iU@ z#>bLPY*T{}C7l5OTcEvF~sTF5sP}mK-zvoUy;(`lEOZ~#65l}&qKBP{m4U}if zKuLCRFykC5`{tq6Y!dd)Xb|GyDP(cRGDjbcP=?w=sm}Llh~Wcl+?G|(>P~9xdfXQ` z!W2vaoHLAc^gZgm29Y!pO?9Ujl(RC0T%p4Pm;`gywk?Z!DZRHGa(#dL^-A8t3t1jm zOAY5F6OohLRn^_Rl6XJPlLp7lJWv57ueUe=AL&fFjolBDaPPp#%8zm?QmWiA2kXyT za|U!O7^yy#fMf~fpi_+WBn)Pja12C|oMQvti1v&qZQ(!}Bom){mCwk2lmj`-xa5vV zqqdLClRMp?o;#8GRb4>b>If|@WeEUmF#`lD_uc&~qJu67pJ`qQBRTwYTn)vzw7kEE zbF)aS;ymzGj|cqoO=`o)(6jK=H&89)^SoP$E420Jh9}h5Ij(qRbfo)js~OPbyA#O# zJq>l%5VRU{B$LPkq5!U>DxYk0#YL>7@WRo&IEg{p{YfX1bM5I(N#AghY^te&UnDv4X2Lh;5!x@JS1;Nz%XwJi465?&1| z*p_$~_phEexyurL2TJU;>kBl3JB=}#Nh4%NBwz;4Ng2l-Xl}(WwqSz&%BGvfu(h>DW~`ZSG;bDzg6oqo^fU9Gvz)N_G9h!3)ag0YNA5ted!-(B>?x zAiC9!{qwHnlVZpGDlkvtYfA1xcW*MF5=g4Z#f}$ld0#SaJ64k^VeJBs>|?o)jK z0BAeJdz*15s6Wfvtp5ONT|gBrBr!;vvyb8odI63=s&Y6gxd5wUAOHy?ILWDn#liy| zjFFO|5Hj*dUJ2<=!!^IO=4kwjlvN6<2pn;o;A6R{SuHNl+U(ct^F~_{3>7#T9Zx2z zT1_lc8Rh-t5k`LZJDBhXuUel)u$Jh{cmAzaNkBRS-#zh)R_XyAoMu=O-cqtOKR)H? zf4lhl)G|dZPQq+T(H=nLFQ7HOrlEqu>ggdHXT)i^6O{v;dUM{gH5)6te2m&?e9k=rNK)0;~{9#v|sCDeA?cQnt&?l4&P#cM+w#dR!K2+FER zBa9QCgyS{YriEb*?00c)1~a%RIT@>$HkQ-Qv&;v|4+E(uzu{8kfaJmp*ZV!ZsFDs? zk&OC*Tl#uDX}ab2u;62$$4aQ$HH0!Osl2kB{KtV>&_Y|1K0)i=hieMtiyKIHw+sC0 za-haXuN0EX1~+s(Qaciycc}(ZWj8>Io4190o@Rz@7iXlPADK)Rd~$NPw-U>_XqC#b-!i;H<}w1{r)0CKK;#~p@v82VLf zy&mf9%;>pge=$Pi7+$y)Ev?krY%tq11NMMkKnWp9;DRai(2}cK$nd0wQt}qY%=~~i zB%f1NVUx*siXrA?;DR|*oMcwywzrY6Fshhh>4q6#eLd+@N4=8bJwhn669c<%-@zw5 z9^#Al8KGx+X$X6JqEBmfBrJy4kb=0#UzAEs>m;er>bkDi1DPdU9n|Q!uz}vw=i8GjV~oGk`lx(1UDF5`c+$vI^sl2Sff*);{b*L^(TpotpzXJxG>9*ZdY;Y>&fRbNr+NAjzFLN8qjWI~bgo(pFmk*-@#V7iEmD#%bX$v2GtJS&SALeUHakwTq}n&jz_I=SK$^yA`7>o zu*f6654o#)L=#ICnP*Rxg5VRoJ+tpaS3@Vh(#D-|2pi*+A1^14dF0eL(=5dzEFy39 zVPYMReAh#DZrYZT$pIk1N0ttG$mCH?(e1ZlrYP|x+Xo_oTO2~|i4~#;@4k%M`}S2)0Hz`G#EQ?t%StLvNte zPSIA{HTxt@wE}^W{n7q4fvG_?-QY-~M^rc}-@*sdw`{Gh6z;q`+W_!7AAhA^WkHkx ze8-+WYdhJ7#(lNBTUo4jh^w?@gX@m9ZDx(62v`SEoxS;_x!zbnrw9Ni9Z9T)#Fx7S zf4)?~e%Z$Yi(CnB(j|s(D+{~;$}#gC=ku;o&em6XnZeoyTW{0aw6zGOd!H^t^5Cdo zKZ~iy(y!aXZEe=p9$HVmp6Ew&+v!xaKv&c4#M6DQMH@iass~Ono@zZuP>)DfTQw23 z4qLfBhkk2R+(&I>Wrv-Ef(KG7o&L{`LH3J>4X}rhXFofhGxQX1xFXJ!wsKmJIwvyD zK4-^5dCpH2qXa2CNfRmZ3lY~PvHDc@w=W?wl3jDPS0E+`=Z|W$GZ^49IKgfeKmg;g z{An<3r*$ky(c6L&++Z?;f=8gJ9w`#j%8LZZGRxfaz&?OhU9!!2aAuJX?cC#_1A&U^ zqltXMDPnhV{{Yva=mvDQt*2?BVa62ha>pCJhxD#`)+q+-nOXPCkQs(qVjsww>RDPz zOU;2CXDYcLHa&i(vh|&@+IhE69T<{LYzlQp zGZ@eS;0ysvOGO|Oo3(dt$3C?BX`l!sf*A=iC}Ml}{Ob+G@mwlM3a24R=t1Z)T?wkw zL+5N8itTLVb*3Q~Gh1fW{$Y%6JaO8vH5(h4ttYy;Wod3cR~X4$o&vQZUVmrmN{&g6 z-~b1q85zg9uA)fRWy6i@$IIB!u*{1sHak>8#IMWcfzyC;GI*uCWxTYVZ53pb1UMZ* zJu~0wT1hNZ848)-zTD-@TWo`>_|mivM>Y-2FmLkn8y>!( zS7O}>K9%LV#;rTw#}rB-Scw1;(J_pWYND<(&E}~M)v2{Z8+lKZC)oYaDy_T7PWH?& zXK%`R1oZ%VR$iNL4b|N7-Lk?6%w+H~c^p;fwB`<^$O4{AagqmKp0qV$j^joN6eZcg z&Pus_f;|tVNi_F1Gc5N`0!Z6A=K~*mj@5vYM!&h!llNPQ8RTza)1EjTYR&9&+oT_E zmCLgn#+`QY)cRtTwGq>%?~$>=&rXNX`twcHA!%*=*p4KK5~msK*0HXyB!FAVY&RGC z<&JPO!2GLv(sL-?_<}l7W+RJTF5^_RmT6yWZx}rb@rtlgG)?-FjFYt^9N=Ty zy(eY{B==U@L>^`4=XYa(2VuY--lnp2`>Aa%u!nb?aKXBdOlGg&X~OpAOKJBagaufi z)1Ky;7Ml!%7O+X?WDV`e81(c8nze>>;JZX60|1@Bja8N@0XxY24LbT&)8L6@a-@)O zy-6OG$wOtW&35;x6opC7T;q)KjQUfHBbMh(mX9;xdHR~2H1~=^(-DF=$9m3*ZY|~W z8G}sHZ6IuL=Jh^A#4tO07M;&Tw zNsRXED|J17wKoSF7HBvZ$Dyr*fC*!O21)u>ZHA?9s0Q*u1$u-1Df2zT#I~+yxAHEKIYEwlVty9yZw9`Pca#Ww3N!#daaNv$> zBH}n&b!iiNhQS1JgH)eE8$q-3k_bG4DH156e=;@0di`r6)g;s8@@4tqC--mY4{FyA zq~ITaz|=Ki+>U#;iAVtMKXeYc{#EA}H+qcsj%3JYJ4)lA2e9?8OD-{v)kwz}ZQDlg zTyy!>l;oq(QrBZQ!wKbEN+nIQ7s)61hB)H7DI9I*kAF&`)0)e=)oiV&`#i7n<2W4R zrc0UJBce2}FIE)$f<_r-U+)^ox46F4&LxTM;9eVdR>xuOTJLWJ!a1Z0>$ETgayJ3c zgGnpy#9-i_o%j@$in&|usc$kyS9fruupA14_V(KP`84TQYXxlbG8?zy>sHz?EQ81l zr{)6a;+Ewjva?GV-Z)`H1kB$des>idgOARy zw0~)zC_#;LlBXXvb2^OgeKd0E(frG_$t#_q2poWY>RmeOHi2yZ?22~=Q}^?dYJ9<+ zHQGY|mPZGd0Y4MdNNk{A!M?Xpn*A zovzFu4T6N@r3u-AYfaR?-xEv_#y0>CKK4gb^yykV*e-L^tzzl2S}^isau44s2g(np z6}U#>gIA#pfl9H-#z#MmE=+-3jAUoto+DKyfaKG;?^Gg#MRVtwMb+AhLsxT1W+riO)F%0uN(J zEX=Eg&mF13LW~Y6LX75^6(N#QDDy@)XCH+~>?c7Y1?2ZpQ*0ae{{Rr5dW`iiUeILzK`gEdK$VfH{m%y$lO z2N*aVGg=Z%slxon8RMSyN<@^f3Bc?0t2V~~#`wqwKSTcj*Qu7el!;Z?51e!DNrKIs zU}BsU4hL#|AOTMuaZJro)int8+bJ#_{M$%H?#=B2Upe8Uua-;G7RmqbXki{0@xxg*hW~-E|9=&biyLPr&E+cO@A23cqKGk~C zO&?jdnQg}9a!i>USxFeLCEP;qjGU+=cd4yiBUiZ7Wo8m>M&5P zI1@&`RPweYj~{m*rYWnv8A!ujHc>3dg? z(`B-2by*u|S&118LFXCvuBm6Rzd-MEw>FdtmZuw#jVZr+^!Q94o-%o~IR~ zX=7@CeRV4%=L;NQ7SH=x=qsffkA;%ap|grrcNh}m=3k*btCVR#^@K zZgz}z9=`MgD90>T(a9X~d6P=G4BZt-;~4KuZMO>@upt*99FJc0H0cuoFw2+6%y)SO+63WiLRpSeg7$#%ddjY^Aod`PtZl|fMQUN8qB7_dlg6EbXbw1gx z87xE+n9;=m7PrO29yZa9IKQN5A-0JgZ7c zUzj&vdYQ%>XgquR)H0DeK$6B<779l@4}YanljZBj6*#z+Vi2OLs^{iW$@8z)}R*Zkr^axuWxf&4R0b@BSb-4k-3-nl&>9VK+dDX zdhNqrN2Ok!-e^8k9=TpfHQq@aa<0jcI)j`MUMr{ENo%Y_d=Hq=oM83`gU{2wdw(5{ zM`}!snaN%0liD9XGF}jVV!wC~r+S*kXd<}Zy-GR|KpivO`k&=pJ_zJhX|3aYN~#2j zk^ln-KD1n`nSrrzt7^*VN8Vof>J2dCxcp>xwKMru^>FMqVyKAI_tN-c?=a1df#*rTx5$5lP#Df_e~Y z+r^StF$b?5DF~?~03!t%VmWph{01p4T3E8PNE-*}e+qeW(hba@0g<%&R#u}H`1fVE zDGUOhfBN(x*xi!dBw;2n>&mxqeQP#*DVpge0ZN0Ce~4$TUA34>2?sa>k3&<*EODu6 z2mnwdV>?Y80PsK$zlx{|yEi8s5IF$-Y439qPKj_8LxZ_-mB8tdPi;lEGcE!zbL~}h z+qkE^b|d|I1_ZBCI6tL31~aX(ybnN_2Q@xvoyvJyhkjiv-Mla^yr!5 zaj}Ng1oEW+05M2u85f~vxS9)YS&q~r(K$IkTFr(9whY%$fYRV#bi(@k)qOa$(wn#> z*ip8CLHWt_u7R!IM>iJ|1A+5xudxTVA za_qZ^IIT;oJ6RS+wq5K7z#Up>qjPd?8X{!m3jyUdRTP=m7g?Ai| zr;dM0*#g{08X&;QBOL*&R`3|1`G?Hl6OO~Mrz~P#TcYt&A`=?<%K0P!ay@-1k1$fr z>yyuF&uQd};cdV_yxak*H;(Yzn2F{7T<1M_G$b;Q+V@+@Atj8ANC!B_YR!NwkG4^g zhy04QEb%aoX&)+$utm_22Lu|KSM5@OtFZ?z%tmwdsuM1wxVaKS%JNNsN-jS?_i4sk zn^^=ml8F^g{=8@SMr$^Ewo+oY+5~54+ttrg&$S|$ozcn4%fpA~X+EFQm4Mv)L%YWv z!~syAq;Z4jMKyZ}5y%ZjymXk*jmk~!LD4%-x*l^*`|tPexbLkw|F zu1CZA+Fj|(E!zZi`BJ^&tk1OUCEE`3; zAD1o1J#alfv<1xzu$ebaa~#q;@~Uz`>}rnHcgvg#u8|$4MHoSW$?j@V83b-WN<&9i zrfL>3>lV^MY!D_Fa+C9J<0idzhy}8K?Rk!whmPG6B#a?Y&JWDrHhIl@L&l<6JsXpn zmJ--ovme>FNN~JzJ9<_&oRM8$4=|Q0ncCelJNwj=>Nd=;WwbuX-2uumKOsyU2%A5&chuXd1mXh{K> zZXkB+RBo;2odxBzk)%NGBWP^5p`mO_?s8g;|kaX@(*#I zyqff>B)N{kZ_(B8H#PD1`9S`iHX7fXigOSEa=iZ0X z#XXICZE8^%Yn5Jwk01~SY*y8k?Y5x+xV3G|oF7m{c{RlOx7dX51*B#@NH`d$=o+Kx z6PcxR>Vk<=CWqiEF#Hw`A6{%N9kH9>mn?Oa;!2Bv8g7^vJE^M zgc^7>0VM{I8d?A;!kR?_fCw66yUswkBn%wndep^Lx{TtZ2A-tznm|C{qi`~&lp2|x zRD~xSx_i_Um5B_z;B^Cti3EL%7@&mDQJAlj5{>~^#z$tS7WdjaiNV~R^`%`ceb;{_W$emy9#(W4S59M1>mXhLTIogb&dvXUS-mvYgg6au#6y9ROp+cS*1JfhD zbo>nFlN&1Cd5IqQfZPbqeJUvKQdU$PhXnhKdeVKCRE8iV%f-n!&V9M8vu`|;x0@I) zgz~2i&meo#u#G5Rb=2|6y?5X#Cq22x^QktwT!XZ)mKZA@joPGu`O1@E23&)Y$Tf4G zx%R~&m~-DXu@=fVTuuhjgN>t)FjG%QX4TYLp*{+k8GCZUPdGDDIDPUsV{d+WMznxw+=DXj{g9qYOvfHSY#1` zJ$2yeR)UkoWuR^Ce zE$)5sSFE?e6Qs@NvX;WD-=NMtx_)(}=1F2U(6EYC8QOWk9P)kYC}jCVOi(^>cKi0v zdM*WtgBaUs0O0a^SCVUKE8iF)3`AfB$5Y2)Uaxzfu}oK}L+xH&efEo>uL%)0(m^Kx zfx$IUCfc0(qa*p7j7~W8Y}8i{W{|r!8ID-iyfOWie$#Nv_Jli=c31*BXM>&%bCb;^ zv%IazbGYDRlU9axdOgkc>#mn+ArYcD46BC5Kao6D%{Rl+%`A{=8?C&k%OeqyyYQ^N zHXE%D_)9B{n6d!=>-5cZm)ep`r%P#Ys~aDgUJ_V?@7EcqmG7YX4)Eh!`I1`Og}O21 zspwNY5;N3)D(Gx4;FbnkLabw#%Q@h;zph1j95Q{D)Zr1h( z+BX2`e~C%t{uJCsmCsbQ)ao0y5Pu%Eqr`M9FY25@^bZ_Tkk308Z7;YT8B0$ZoA&jk>E75IEXT z1cTQ#wPp5*Er8TyEh|a0pRXA9tsp|N8RT`NVA#u=>Pv4RG;Of#UFV?%c|7xwYe@9S z=9X9^ot32*29Go61yxOjzb*8wV zEtbNWIOn!HaqC+wmNU$W5LLK}Ka?_%rB5XfPhKlK%(m1Sj-$R)AIhX++oe4_ z47C=b*7_y7Dw!mC7@gz$y-(9TR#u^@*~FfDjnhnxy%^*t&D0LudRBI~dFQ+~(1MZ2 z5Zk+gGEe^iTC3dLK{d2b<*LibcPud6@x@Yzuhj1JYp7n~mH@j}J>;l7k~q)3W>2bL z$1!sP>{&4BC>i8&jP|Pf9I|;2KJ`%;T$LR`IKZd)hgr70jN951Cc+6g$4>s@r7dhW zbFX8zLFodnL>pO z>9XPJXN7JW+L~F-yn&B}Lj)kTA@tv_(A zfh7t2Ui8{;L{*IWk?wT^Xn+ALq<<$NKsz}P<=o)NR zT4lL(9%=pVd*z3J!nTW^^rY{i6YNf<5d=yAP%sB?%AvcrwY`Mf-6(WDss?gtnKd>M zY88UkAqBcDXuTD96dC#IN7AZ*4_bI!QD7WpVt!g;s?0(rfPSordk`4H@8JXa1Y}{3m08OeMcgYL|wOM1Gx9DHGETX zfXwkO?ux2gZ?hWHv+)F%6FsvchEs)a;bDyD=}yfLlw;pOdf=NYK7$2EDA>3NnOD^lkZX%G$XMQNF?(Kz`+1xKT}h%kz->I-Y1NTY8P90 z{N5O-&(@%h;Y{K`pCIEMxfB6b_IcQOaG`e220cOQeX3Sj5;TDqJd)q%-mJMYGb%6` zJx8}()j4jG0p%+Omw}Gto++jU?ZgZ!jD_jgR4W8bRJ!i+&QzX&p1)cmS5-c186*Sd z1BLohLb3o_ayNf;9stb%4y+i=#Alpwp0$~%Pj_u?=39^nKQTRk{{R}bJ=#Yq?ipM& zehcgMsAG7q?Ag*l7y`ur=lp2%0upU5Y*t8PY1EL+17L3d0QJ>K?Iky3P?{A(2s{SI zCj@?#NZzHTz_l4jWFsX{AY+_+){<%#QNpPkg;pVpF()H9#yxS`k3o&qbip;WmllWT zX9Y3S7|9h%+fP5)@S1ph_uUe_7-Q3y71jA-TrHEc~ zI(GEyN04k^f*XVOawXoo$;jvvzE9S)&Woqa%P~!@w;wN0u082A)nqcE+GBEd-x0q7{ZK+14w_O|w`Ya0B3=O?K-&T8mBoP8*!^rRy@Q?>I^r(e7m2LqFi zocmL>qbpgDHYSa?9OtR`tpY(5fw91+(!f7y#Ws+=H+3K#O{SKn7Bs|2PH8hy7Bq$E z0!};DeZ`flTK%1uYHr07 zPpx2F8E&OUC>50FXc^C8^)%L_G;Eeh+wBb@0YOpdazB+-m_3cG&f{q@lkRsMS4nGV zBS2Yp=bgTsS0&<$nH5uO0+O66jAt0YKZ&J%YzHhOn&Be0#z-ZXC$ajP-?hCK7Z6)o zobUvy20``4de%j}X+EU3cL&S)c7xeUjPvbP?j0wS7Rp3% z(b1P^z(oTd_{U$TN|Mt~nn)H&w?PgHmdW{u?Sb!E7K?7l=UDHKT(H488*$I$UWsWT zk59ENkDnWfJ^gB4hzz(-_F^K)j(1?7VgUF0S2?O#C4~O~ZMQ(lbGRta86%#ahP#Wu zvs^5sVWikX=bVx4?O4{fcQ-Kon(&ZvN;w@5@c=zBLVZBW)6(5m*2#jb(8;<}(~Ren z-n|2^O?lO%Eo-kl5)6iH9y=ZddK&OCoa2wmi6CVSLRezAK6&{`1M#jA?)3XJ=&F4T=1YJ&-@S7%(Fp!F3Oy93YWj@&ZOXD66`@y8oT{{R}$w~Ad#=tBfMBRFY2z~u8? zG#XBuZ6iXl84SF!JqOaSxceddJ-jWoR0RI%KKQC~T?7_(c2F}m#Pb)a>5T9IKh~v7 zYg=Y3Z4$=k?;fmw8p0OWcb8^YDiv|Kf^tahis=v$hJL55O}dSej7ET-wFzJt4Dxb+ zDy==kNp!a8zbF|e`c$#B67dgizh8PRAi0=91Il?ly~*e+pVDsbWxFXc1IziC4oNxn zs`r<|_UOWgFv5Aq@e#rNs@{=gY~V7u+dRjBdV!j&S!xBxWiuG#`{3^<&>!k*MUOnT zH$MmIP)Y;RSi1U86BVv zB0|{Q2i|f&mTRK4(#M(SNKclhArD3)p*1Qrlih4M3Wt}*2|bimU!c)Fo}X=Egv1V8 zscudyI{dZN$!-og&s-mFD(^QaTbkXWNR))oiXqM;vF&YlbF9U`S98Z$K-gyu7usjJ)m_1EA!e z!nxUXX*CIc#iyi&{_tQx3I}oxHE=ooI#)}^3P@D`BmN$hV(R3{I>&DNg0MUQGINqC z)|yr8NFoQ9KfGdaNUc@SWHJVUj^;cu=!iR?Q|VQu^#Us$E=@-0o5Twm9ryrsJu*k~ zuI3nHhBbyI3aT&wrdry?X$Xca;CDSq^{Y6jleh&f6jXpwMHB#((?hza-Zcx7$_n)B zf!=@zagd{_=qo;3*whqbgSaob>rq|YLu`enIAh2?dV5zfHm0{~Vz!8^iG!E#?TTp* z#?gW&m&{G-%E5snI|B5_u{CadLwV0jBhf$6;A5JTT((m;cCy}E7q=2giB#e%y zuUz!0?R87hGTcHk%Tqysoyx|J8(?LZ<&<)G9q0n-%#oidfFy9=*17w;2__G^DCLxb2xaP^^v!PDq*25p zhwiTc9^TZKDJ+rgh~Ve+??%9JuW6>+$BAR|<=wk~@Q&Yz6@D!m3mKB?2Hd#8@5$73QO?KADnhGqdGV7>lqdU^`KEMhBh65&AZPfvOq8Bw7(XY8*Jl$VKtGO>)s^AhGhK8-30=82VOeMT%KUfhmeX^0336Gm;N#64VZf zt?c8E2^xs9SPpZZ--TGUiYTQEZ0BK6NN!Fs#wwnhaeX;0@+ki9IRnu98nV7*H)S$6 zI0cyU0RI3zsPY3%fMqCpFv0p)J#VDkTFzcMMl+q~JBU52pbehj@zivtlg$a(MOTm^ zG7*I%liP~IGKo)4CJe^V4!fh z=kqmo$5DBaT%lBBv;)?a?BTUT5C%v`BsV0H$NS zcIwMkNZ5Pmlo!YWP8c7(pQqB4>K2=0A@knY`tL9trvkRjA{N zB?%HLsOSI{Bd{eO38&&%Jb-c zwSlDRwo7d_&>nQDA&F3DZhC{qT9nsOliS1O$M)-E%ny)E%zU8IYn# zn}fG}cB)fq*2Wnv?xIL#WgwB%@xj3KqS!Q#40lcDHvvUCJzo+^oGbu9!Cd8F$=h0Pslv{SHLQUx}b zG=$IrMK+h309s5^(Lf1-OlZ-%ihUGZ2wD-2DlaU7inU8l;bMoEBIKTPNRfbdAH9qk zz4fHpDf0@&dO52Y6xK1KG>&kn3lr=)rEsxUX_np>oH44xM=XD;9gEj!Sou_kQ75r%*>FpAjH>xDj01-1PCe??{{V?2^9)dxF_E}PG6@42 z0DGSGz~0+UZF3w7!bX$=+d1U+$E{qtlH7zZnbGAwUE3@ z=m{&&%n9yD=ku!8OQqkaceiM8a^^NAc8%2>*~#14b}Qw#_4pXOM>}XhaWF+Kr7@%~#DBBE_c`rTM6&6! zvP2JK~UV-v53zKmO=+4<7qvJ^&RWbbx~*|gwD)}hiZlH4+MTy zjju^-HjU-Q7ROnBP!Bx!<; zW17jWF2nh;U`5yu?*{sIta(V!%(x>2@rr(+DVsAHT|p!}fj21Uj=x&R z5x~Vaar)J$U7~R$UwuwTdX_U_+`JE%l~wzvwsY2-Bv!5#Y2#RO*dajx zFLuUikh!=l;%Nxo_ka}ixP_4K&pc$D=O>TA4z#QT=hGZaRkCAW;sD_D`eve<@61dx9&_ z{1>aseH8YWELq|q)SvFR82k-+WRj^xSdLd5_ReblgQ>okszGq42v{VZ=-q!RRuq

${footer(state)} `; diff --git a/app/templates/activeBackground/index.js b/app/templates/activeBackground/index.js index ac718129..8312b69b 100644 --- a/app/templates/activeBackground/index.js +++ b/app/templates/activeBackground/index.js @@ -1,10 +1,14 @@ const html = require('choo/html'); const assets = require('../../../common/assets'); -module.exports = function() { - const backgrounds = assets.match(/background/); - const src = backgrounds[Math.floor(Math.random() * backgrounds.length)]; +module.exports = function(state) { + if (!state.backgroundUrl) { + const backgrounds = assets.match(/background/); + state.backgroundUrl = + backgrounds[Math.floor(Math.random() * backgrounds.length)]; + } + return html`
- +
`; }; diff --git a/app/templates/header/index.js b/app/templates/header/index.js index f5fd56f2..a2f749fb 100644 --- a/app/templates/header/index.js +++ b/app/templates/header/index.js @@ -1,5 +1,4 @@ const html = require('choo/html'); -const assets = require('../../../common/assets'); /* The current weback config uses package.json to generate version.json for /__version__ meaning `require` returns the @@ -18,16 +17,6 @@ module.exports = function(state) { const header = html`
Date: Thu, 21 Jun 2018 11:28:31 -0700 Subject: [PATCH 011/368] improved background rendering slightly --- app/routes/index.js | 3 +-- .../activeBackground/activeBackground.css | 17 ++++++++++------- app/templates/activeBackground/index.js | 14 ++++++-------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/routes/index.js b/app/routes/index.js index 368c3f1e..cc58ccff 100644 --- a/app/routes/index.js +++ b/app/routes/index.js @@ -18,8 +18,7 @@ function banner(state, emit) { function body(template) { return function(state, emit) { - const b = html` - ${activeBackground(state, emit)} + const b = html` ${banner(state, emit)} ${header(state)}
diff --git a/app/templates/activeBackground/activeBackground.css b/app/templates/activeBackground/activeBackground.css index ef57484d..de7ef2d7 100644 --- a/app/templates/activeBackground/activeBackground.css +++ b/app/templates/activeBackground/activeBackground.css @@ -1,11 +1,14 @@ .background { - position: absolute; - left: 0; - top: 0; - height: 100%; - z-index: -1; + background-position: center center; + background-repeat: no-repeat; + background-attachment: fixed; + background-size: cover; } -.background > img { - height: 100%; +.background_1 { + background-image: url('../assets/background_1.jpg'); +} + +.background_2 { + background-image: url('../assets/background_2.jpg'); } diff --git a/app/templates/activeBackground/index.js b/app/templates/activeBackground/index.js index 8312b69b..a4b7e4c2 100644 --- a/app/templates/activeBackground/index.js +++ b/app/templates/activeBackground/index.js @@ -1,14 +1,12 @@ -const html = require('choo/html'); const assets = require('../../../common/assets'); module.exports = function(state) { - if (!state.backgroundUrl) { - const backgrounds = assets.match(/background/); - state.backgroundUrl = - backgrounds[Math.floor(Math.random() * backgrounds.length)]; + if (!state.backgroundClass) { + const backgrounds = assets.match(/background_/); + state.backgroundClass = `background_${Math.floor( + Math.random() * backgrounds.length + ) + 1}`; } - return html`
- -
`; + return state.backgroundClass; }; From e4a0028f5d31e545dc3869a42e8ec39bfdc4b4f3 Mon Sep 17 00:00:00 2001 From: Emily Hou Date: Thu, 21 Jun 2018 13:57:53 -0700 Subject: [PATCH 012/368] add streaming --- app/api.js | 41 +++++++++++++++++++++++------------------ app/ece.js | 8 +++----- server/prod.js | 2 +- server/routes/ws.js | 40 +++++++++++++++++++++++----------------- 4 files changed, 50 insertions(+), 41 deletions(-) diff --git a/app/api.js b/app/api.js index 30d0be36..12f0f64f 100644 --- a/app/api.js +++ b/app/api.js @@ -107,7 +107,8 @@ async function upload( metadata, verifierB64, keychain, - onprogress + onprogress, + canceller ) { const metadataHeader = arrayToB64(new Uint8Array(metadata)); const fileMeta = { @@ -115,23 +116,25 @@ async function upload( authorization: `send-v1 ${verifierB64}` }; - //send file header - ws.send(JSON.stringify(fileMeta)); - - function listenForRes() { + function listenForResponse() { return new Promise((resolve, reject) => { ws.addEventListener('message', function(msg) { const response = JSON.parse(msg.data); - resolve({ - url: response.url, - id: response.id, - ownerToken: response.owner - }); + if (response.error) { + reject(response.error); + } else { + resolve({ + url: response.url, + id: response.id, + ownerToken: response.owner + }); + } }); }); } - const resPromise = listenForRes(); + const resPromise = listenForResponse(); + ws.send(JSON.stringify(fileMeta)); const reader = stream.getReader(); let state = await reader.read(); @@ -139,8 +142,9 @@ async function upload( while (!state.done) { const buf = state.value; ws.send(buf); - if (ws.readyState !== 1) { - throw new Error(0); //should this be here + + if (canceller.cancelled) { + throw new Error(0); } onprogress([Math.min(streamInfo.fileSize, size), streamInfo.fileSize]); @@ -148,10 +152,10 @@ async function upload( state = await reader.read(); } - const res = await resPromise; + const response = await resPromise; ws.close(); - return res; + return response; } export async function uploadWs( @@ -166,12 +170,12 @@ export async function uploadWs( const port = window.location.port; const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; const ws = await asyncInitWebSocket(`${protocol}//${host}:${port}/api/ws`); - - //console.log(`made connection to websocket: ws://${host}:${port}/api/ws`) + const canceller = { cancelled: false }; return { cancel: function() { ws.close(4000, 'upload cancelled'); + canceller.cancelled = true; }, result: upload( ws, @@ -180,7 +184,8 @@ export async function uploadWs( metadata, verifierB64, keychain, - onprogress + onprogress, + canceller ) }; } diff --git a/app/ece.js b/app/ece.js index 1a9ecb23..c962106a 100644 --- a/app/ece.js +++ b/app/ece.js @@ -6,7 +6,7 @@ const TAG_LENGTH = 16; const KEY_LENGTH = 16; const MODE_ENCRYPT = 'encrypt'; const MODE_DECRYPT = 'decrypt'; -const RS = 1024 * 1024; +const RS = 1048576; const encoder = new TextEncoder(); @@ -16,7 +16,7 @@ function generateSalt(len) { return randSalt.buffer; } -export class ECETransformer { +class ECETransformer { constructor(mode, ikm, rs, salt) { this.mode = mode; this.prevChunk; @@ -139,7 +139,6 @@ export class ECETransformer { return Buffer.concat([Buffer.from(this.salt), nums]); } - //salt is arraybuffer, rs is int, length is int readHeader(buffer) { if (buffer.length < 21) { throw new Error('chunk too small for reading header'); @@ -259,7 +258,7 @@ class BlobSlicer { } } -export class BlobSliceStream extends ReadableStream { +class BlobSliceStream extends ReadableStream { constructor(blob, size, mode) { super(new BlobSlicer(blob, size, mode)); } @@ -272,7 +271,6 @@ mode: string, either 'encrypt' or 'decrypt' rs: int containing record size, optional salt: ArrayBuffer containing salt of KEY_LENGTH length, optional */ - export default class ECE { constructor(input, key, mode, rs, salt) { if (rs === undefined) { diff --git a/server/prod.js b/server/prod.js index 0d850eea..a59f6ec8 100644 --- a/server/prod.js +++ b/server/prod.js @@ -12,7 +12,7 @@ if (config.sentry_dsn) { const app = express(); expressWs(app, null, { perMessageDeflate: false }); -app.ws('/api/ws', require('./routes/ws')); //want to move this into routes/index.js but it's not working... +app.ws('/api/ws', require('./routes/ws')); routes(app); app.use( diff --git a/server/routes/ws.js b/server/routes/ws.js index 514060e5..4734daaa 100644 --- a/server/routes/ws.js +++ b/server/routes/ws.js @@ -10,17 +10,17 @@ const log = mozlog('send.upload'); module.exports = async function(ws, req) { let fileStream; - try { - ws.on('close', e => { - if (e !== 1000) { - if (fileStream !== undefined) { - fileStream.destroy(); - } + ws.on('close', e => { + if (e !== 1000) { + if (fileStream !== undefined) { + fileStream.destroy(); } - }); + } + }); - let first = true; - ws.on('message', function(message) { + let first = true; + ws.on('message', function(message) { + try { if (first) { const newId = crypto.randomBytes(5).toString('hex'); const owner = crypto.randomBytes(10).toString('hex'); @@ -29,11 +29,13 @@ module.exports = async function(ws, req) { const metadata = fileInfo.fileMetadata; const auth = fileInfo.authorization; - /* if (!metadata || !auth) { - return res.sendStatus(400); + ws.send( + JSON.stringify({ + error: 400 + }) + ); } - */ const meta = { owner, @@ -60,9 +62,13 @@ module.exports = async function(ws, req) { first = false; } - }); - } catch (e) { - log.error('upload', e); - //res.sendStatus(500); - } + } catch (e) { + log.error('upload', e); + ws.send( + JSON.stringify({ + error: 500 + }) + ); + } + }); }; From 12ccce30169262c9e4e94b3a7c620f572fed0c2c Mon Sep 17 00:00:00 2001 From: Emily Hou Date: Thu, 21 Jun 2018 16:36:34 -0700 Subject: [PATCH 013/368] fix checking file early --- app/api.js | 5 ++--- app/fileManager.js | 2 +- server/routes/index.js | 4 ---- server/routes/ws.js | 6 +++--- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/app/api.js b/app/api.js index 12f0f64f..876756ba 100644 --- a/app/api.js +++ b/app/api.js @@ -141,11 +141,11 @@ async function upload( let size = 0; while (!state.done) { const buf = state.value; - ws.send(buf); - if (canceller.cancelled) { + ws.close(4000, 'upload cancelled'); throw new Error(0); } + ws.send(buf); onprogress([Math.min(streamInfo.fileSize, size), streamInfo.fileSize]); size += streamInfo.recordSize; @@ -174,7 +174,6 @@ export async function uploadWs( return { cancel: function() { - ws.close(4000, 'upload cancelled'); canceller.cancelled = true; }, result: upload( diff --git a/app/fileManager.js b/app/fileManager.js index 786f99f8..e29a05e2 100644 --- a/app/fileManager.js +++ b/app/fileManager.js @@ -52,7 +52,7 @@ export default function(state, emitter) { checkFiles(); }); - emitter.on('navigate', checkFiles); + //emitter.on('navigate', checkFiles); emitter.on('render', () => { lastRender = Date.now(); diff --git a/server/routes/index.js b/server/routes/index.js index 65e98aa0..4b7d6f31 100644 --- a/server/routes/index.js +++ b/server/routes/index.js @@ -62,10 +62,6 @@ module.exports = function(app) { app.post(`/api/params/:id${ID_REGEX}`, owner, require('./params')); app.post(`/api/info/:id${ID_REGEX}`, owner, require('./info')); - if (!IS_DEV) { - app.ws('/api/ws', require('./ws')); - } - app.get('/__version__', function(req, res) { res.sendFile(require.resolve('../../dist/version.json')); }); diff --git a/server/routes/ws.js b/server/routes/ws.js index 4734daaa..c29757e1 100644 --- a/server/routes/ws.js +++ b/server/routes/ws.js @@ -44,13 +44,13 @@ module.exports = async function(ws, req) { nonce: crypto.randomBytes(16).toString('base64') }; + const protocol = config.env === 'production' ? 'https' : req.protocol; + const url = `${protocol}://${req.get('host')}/download/${newId}/`; + const limiter = new Limiter(config.max_file_size); fileStream = wsStream(ws, { binary: true }).pipe(limiter); storage.set(newId, fileStream, meta); - const protocol = config.env === 'production' ? 'https' : req.protocol; - const url = `${protocol}://${req.get('host')}/download/${newId}/`; - ws.send( JSON.stringify({ url, From dafe4884fcd285300f0de02cddb691f71cf889db Mon Sep 17 00:00:00 2001 From: Emily Hou Date: Fri, 22 Jun 2018 13:17:23 -0700 Subject: [PATCH 014/368] revisions --- app/api.js | 107 +++++++++++++++++-------------- app/ece.js | 6 +- app/fileReceiver.js | 23 +++---- app/fileSender.js | 4 +- app/keychain.js | 4 +- package-lock.json | 10 --- package.json | 3 +- server/routes/ws.js | 10 +-- test/frontend/tests/api-tests.js | 8 +-- 9 files changed, 86 insertions(+), 89 deletions(-) diff --git a/app/api.js b/app/api.js index 876756ba..d8cd9b9b 100644 --- a/app/api.js +++ b/app/api.js @@ -100,8 +100,30 @@ function asyncInitWebSocket(server) { }); } +function listenForResponse(ws, canceller) { + return new Promise((resolve, reject) => { + ws.addEventListener('message', function(msg) { + try { + const response = JSON.parse(msg.data); + if (response.error) { + throw new Error(response.error); + } else { + resolve({ + url: response.url, + id: response.id, + ownerToken: response.owner + }); + } + } catch (e) { + canceller.cancelled = true; + canceller.error = e; + reject(e); + } + }); + }); +} + async function upload( - ws, stream, streamInfo, metadata, @@ -110,55 +132,51 @@ async function upload( onprogress, canceller ) { - const metadataHeader = arrayToB64(new Uint8Array(metadata)); - const fileMeta = { - fileMetadata: metadataHeader, - authorization: `send-v1 ${verifierB64}` - }; + const host = window.location.hostname; + const port = window.location.port; + const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; + const error = { cancelled: false }; + const ws = await asyncInitWebSocket(`${protocol}//${host}:${port}/api/ws`); - function listenForResponse() { - return new Promise((resolve, reject) => { - ws.addEventListener('message', function(msg) { - const response = JSON.parse(msg.data); - if (response.error) { - reject(response.error); - } else { - resolve({ - url: response.url, - id: response.id, - ownerToken: response.owner - }); - } - }); - }); - } + try { + const metadataHeader = arrayToB64(new Uint8Array(metadata)); + const fileMeta = { + fileMetadata: metadataHeader, + authorization: `send-v1 ${verifierB64}` + }; - const resPromise = listenForResponse(); - ws.send(JSON.stringify(fileMeta)); + const responsePromise = listenForResponse(ws, error); - const reader = stream.getReader(); - let state = await reader.read(); - let size = 0; - while (!state.done) { - const buf = state.value; - if (canceller.cancelled) { - ws.close(4000, 'upload cancelled'); - throw new Error(0); + ws.send(JSON.stringify(fileMeta)); + + const reader = stream.getReader(); + let state = await reader.read(); + let size = 0; + while (!state.done) { + const buf = state.value; + if (canceller.cancelled) { + throw new Error(0); + } + if (error.cancelled) { + throw new Error(error.error); + } + ws.send(buf); + + onprogress([Math.min(streamInfo.fileSize, size), streamInfo.fileSize]); + size += streamInfo.recordSize; + state = await reader.read(); } - ws.send(buf); - onprogress([Math.min(streamInfo.fileSize, size), streamInfo.fileSize]); - size += streamInfo.recordSize; - state = await reader.read(); + const response = await responsePromise; //promise only fufills if response is good + ws.close(); + return response; + } catch (e) { + ws.close(4000); + throw e; } - - const response = await resPromise; - - ws.close(); - return response; } -export async function uploadWs( +export function uploadWs( encrypted, info, metadata, @@ -166,10 +184,6 @@ export async function uploadWs( keychain, onprogress ) { - const host = window.location.hostname; - const port = window.location.port; - const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; - const ws = await asyncInitWebSocket(`${protocol}//${host}:${port}/api/ws`); const canceller = { cancelled: false }; return { @@ -177,7 +191,6 @@ export async function uploadWs( canceller.cancelled = true; }, result: upload( - ws, encrypted, info, metadata, diff --git a/app/ece.js b/app/ece.js index c962106a..eb86c6c0 100644 --- a/app/ece.js +++ b/app/ece.js @@ -282,11 +282,11 @@ export default class ECE { this.streamInfo = { recordSize: rs, - fileSize: input.size + 16 * Math.floor(input.size / (rs - 17)) + fileSize: 21 + input.size + 16 * Math.floor(input.size / (rs - 17)) }; - input = new BlobSliceStream(input, rs, mode); + const inputStream = new BlobSliceStream(input, rs, mode); const ts = new TransformStream(new ECETransformer(mode, key, rs, salt)); - this.stream = input.pipeThrough(ts); + this.stream = inputStream.pipeThrough(ts); } } diff --git a/app/fileReceiver.js b/app/fileReceiver.js index d35123c4..385b749b 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -51,25 +51,18 @@ export default class FileReceiver extends Nanobus { this.state = 'ready'; } - async streamToArrayBuffer(stream) { + async streamToArrayBuffer(stream, streamSize) { const reader = stream.getReader(); - const chunks = []; - let length = 0; + const result = new Int8Array(streamSize); + let offset = 0; let state = await reader.read(); while (!state.done) { - chunks.push(state.value); - length += state.value.length; + result.set(state.value, offset); + offset += state.value.length; state = await reader.read(); } - const result = new Int8Array(length); - let offset = 0; - for (let i = 0; i < chunks.length; i++) { - result.set(chunks[i], offset); - offset += chunks[i].length; - } - return result.buffer; } @@ -93,8 +86,10 @@ export default class FileReceiver extends Nanobus { const dec = await this.keychain.decryptStream(ciphertext); const plainstream = dec.stream; - - const plaintext = await this.streamToArrayBuffer(plainstream); + const plaintext = await this.streamToArrayBuffer( + plainstream, + dec.streamInfo.fileSize + ); if (!noSave) { await saveFile({ diff --git a/app/fileSender.js b/app/fileSender.js index 71b416c9..4f0a64a4 100644 --- a/app/fileSender.js +++ b/app/fileSender.js @@ -65,11 +65,11 @@ export default class FileSender extends Nanobus { this.msg = 'encryptingFile'; this.emit('encrypting'); - const enc = await this.keychain.encryptStream(this.file); + const enc = this.keychain.encryptStream(this.file); const metadata = await this.keychain.encryptMetadata(this.file); const authKeyB64 = await this.keychain.authKeyB64(); - this.uploadRequest = await uploadWs( + this.uploadRequest = uploadWs( enc.stream, enc.streamInfo, metadata, diff --git a/app/keychain.js b/app/keychain.js index 89e217e6..75778990 100644 --- a/app/keychain.js +++ b/app/keychain.js @@ -179,12 +179,12 @@ export default class Keychain { return ciphertext; } - async encryptStream(plaintext) { + encryptStream(plaintext) { const enc = new ECE(plaintext, this.rawSecret, 'encrypt'); return enc; } - async decryptStream(encstream) { + decryptStream(encstream) { const dec = new ECE(encstream, this.rawSecret, 'decrypt'); return dec; } diff --git a/package-lock.json b/package-lock.json index 3516b329..6247b8a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4373,16 +4373,6 @@ "integrity": "sha512-KEyUw8AwRET2iFjFsI1EJQrJ/fHeGiJtgpYgEWG3yDv4l/To/m3a2GaYfeGyB3lsWdvbesjF5XCMx+SVBgAAYw==", "requires": { "ws": "5.2.0" - }, - "dependencies": { - "ws": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.0.tgz", - "integrity": "sha512-c18dMeW+PEQdDFzkhDsnBAlS4Z8KGStBQQUcQ5mf7Nf689jyGk0594L+i9RaQuf4gog6SvWLJorz2NfSaqxZ7w==", - "requires": { - "async-limiter": "1.0.0" - } - } } }, "extend": { diff --git a/package.json b/package.json index 66a89781..77e8e22f 100644 --- a/package.json +++ b/package.json @@ -132,8 +132,7 @@ "mozlog": "^2.2.0", "raven": "^2.4.2", "redis": "^2.8.0", - "websocket-stream": "^5.1.2", - "ws": "^5.2.0" + "websocket-stream": "^5.1.2" }, "availableLanguages": [ "en-US", diff --git a/server/routes/ws.js b/server/routes/ws.js index c29757e1..50ef9055 100644 --- a/server/routes/ws.js +++ b/server/routes/ws.js @@ -11,15 +11,13 @@ module.exports = async function(ws, req) { let fileStream; ws.on('close', e => { - if (e !== 1000) { - if (fileStream !== undefined) { - fileStream.destroy(); - } + if (e !== 1000 && fileStream !== undefined) { + fileStream.destroy(); } }); let first = true; - ws.on('message', function(message) { + ws.on('message', async function(message) { try { if (first) { const newId = crypto.randomBytes(5).toString('hex'); @@ -35,6 +33,7 @@ module.exports = async function(ws, req) { error: 400 }) ); + ws.close(); } const meta = { @@ -69,6 +68,7 @@ module.exports = async function(ws, req) { error: 500 }) ); + ws.close(); } }); }; diff --git a/test/frontend/tests/api-tests.js b/test/frontend/tests/api-tests.js index 89b63c1a..1aa5a19f 100644 --- a/test/frontend/tests/api-tests.js +++ b/test/frontend/tests/api-tests.js @@ -13,11 +13,11 @@ describe('API', function() { describe('websocket upload', function() { it('returns file info on success', async function() { const keychain = new Keychain(); - const enc = await keychain.encryptStream(plaintext); + const enc = keychain.encryptStream(plaintext); const meta = await keychain.encryptMetadata(metadata); const verifierB64 = await keychain.authKeyB64(); const p = function() {}; - const up = await api.uploadWs( + const up = api.uploadWs( enc.stream, enc.streamInfo, meta, @@ -34,11 +34,11 @@ describe('API', function() { it('can be cancelled', async function() { const keychain = new Keychain(); - const enc = await keychain.encryptStream(plaintext); + const enc = keychain.encryptStream(plaintext); const meta = await keychain.encryptMetadata(metadata); const verifierB64 = await keychain.authKeyB64(); const p = function() {}; - const up = await api.uploadWs( + const up = api.uploadWs( enc.stream, enc.streamInfo, meta, From c157e4d31cdf9ade399b18feed5bb062bf354cbf Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Fri, 22 Jun 2018 13:32:24 -0700 Subject: [PATCH 015/368] created server/bin/ for server entrypoints - added server/bin/test.js for the frontend test runner --- docs/build.md | 4 ++-- package.json | 2 +- server/{ => bin}/dev.js | 14 +++++++------- server/{ => bin}/prod.js | 10 +++++----- server/bin/test.js | 18 ++++++++++++++++++ test/frontend/runner.js | 2 +- webpack.config.js | 2 +- 7 files changed, 35 insertions(+), 17 deletions(-) rename server/{ => bin}/dev.js (62%) rename server/{ => bin}/prod.js (71%) create mode 100644 server/bin/test.js diff --git a/docs/build.md b/docs/build.md index 78ebd66f..f440f410 100644 --- a/docs/build.md +++ b/docs/build.md @@ -2,11 +2,11 @@ Send has two build configurations, development and production. Both can be run v # Development -`npm start` launches a `webpack-dev-server` on port 8080 that compiles the assets and watches files for changes. It also serves the backend API and frontend unit tests via the `server/dev.js` entrypoint. The frontend tests can be run in the browser by navigating to http://localhost:8080/test and will rerun automatically as the watched files are saved with changes. +`npm start` launches a `webpack-dev-server` on port 8080 that compiles the assets and watches files for changes. It also serves the backend API and frontend unit tests via the `server/bin/dev.js` entrypoint. The frontend tests can be run in the browser by navigating to http://localhost:8080/test and will rerun automatically as the watched files are saved with changes. # Production -`npm run build` compiles the assets and writes the files to the `dist/` directory. `npm run prod` launches an Express server on port 1443 that serves the backend API and frontend static assets from `dist/` via the `server/prod.js` entrypoint. +`npm run build` compiles the assets and writes the files to the `dist/` directory. `npm run prod` launches an Express server on port 1443 that serves the backend API and frontend static assets from `dist/` via the `server/bin/prod.js` entrypoint. # Notable differences diff --git a/package.json b/package.json index 77e8e22f..b927d113 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "test-integration": "docker-compose up --abort-on-container-exit --exit-code-from integration-tests --build --remove-orphans --quiet-pull && docker-compose down", "test-integration-stage": "cross-env BASE_URL=https://send.stage.mozaws.net npm run test-integration", "start": "npm run clean && cross-env NODE_ENV=development webpack-dev-server", - "prod": "node server/prod.js" + "prod": "node server/bin/prod.js" }, "lint-staged": { "*.js": [ diff --git a/server/dev.js b/server/bin/dev.js similarity index 62% rename from server/dev.js rename to server/bin/dev.js index 463a01b3..d94eb8c4 100644 --- a/server/dev.js +++ b/server/bin/dev.js @@ -1,15 +1,15 @@ -const assets = require('../common/assets'); -const locales = require('../common/locales'); -const routes = require('./routes'); -const pages = require('./routes/pages'); -const tests = require('../test/frontend/routes'); +const assets = require('../../common/assets'); +const locales = require('../../common/locales'); +const routes = require('../routes'); +const pages = require('../routes/pages'); +const tests = require('../../test/frontend/routes'); const express = require('express'); const expressWs = require('express-ws'); -const config = require('./config'); +const config = require('../config'); const wsapp = express(); expressWs(wsapp, null, { perMessageDeflate: false }); -wsapp.ws('/api/ws', require('./routes/ws')); +wsapp.ws('/api/ws', require('../routes/ws')); wsapp.listen(8081, config.listen_address); module.exports = function(app, devServer) { diff --git a/server/prod.js b/server/bin/prod.js similarity index 71% rename from server/prod.js rename to server/bin/prod.js index a59f6ec8..d52393ed 100644 --- a/server/prod.js +++ b/server/bin/prod.js @@ -1,9 +1,9 @@ const express = require('express'); const path = require('path'); const Raven = require('raven'); -const config = require('./config'); -const routes = require('./routes'); -const pages = require('./routes/pages'); +const config = require('../config'); +const routes = require('../routes'); +const pages = require('../routes/pages'); const expressWs = require('express-ws'); if (config.sentry_dsn) { @@ -12,11 +12,11 @@ if (config.sentry_dsn) { const app = express(); expressWs(app, null, { perMessageDeflate: false }); -app.ws('/api/ws', require('./routes/ws')); +app.ws('/api/ws', require('../routes/ws')); routes(app); app.use( - express.static(path.resolve(__dirname, '../dist/'), { + express.static(path.resolve(__dirname, '../../dist/'), { setHeaders: function(res) { res.set('Cache-Control', 'public, max-age=31536000, immutable'); res.removeHeader('Pragma'); diff --git a/server/bin/test.js b/server/bin/test.js new file mode 100644 index 00000000..b5f349a5 --- /dev/null +++ b/server/bin/test.js @@ -0,0 +1,18 @@ +const assets = require('../../common/assets'); +const locales = require('../../common/locales'); +const routes = require('../routes'); +const pages = require('../routes/pages'); +const tests = require('../../test/frontend/routes'); +const expressWs = require('express-ws'); + +module.exports = function(app, devServer) { + assets.setMiddleware(devServer.middleware); + locales.setMiddleware(devServer.middleware); + expressWs(app, null, { perMessageDeflate: false }); + app.ws('/api/ws', require('../routes/ws')); + routes(app); + tests(app); + // webpack-dev-server routes haven't been added yet + // so wait for next tick to add 404 handler + process.nextTick(() => app.use(pages.notfound)); +}; diff --git a/test/frontend/runner.js b/test/frontend/runner.js index d474b2d8..3ae95f2f 100644 --- a/test/frontend/runner.js +++ b/test/frontend/runner.js @@ -7,7 +7,7 @@ const webpack = require('webpack'); const config = require('../../webpack.config'); const middleware = require('webpack-dev-middleware'); const express = require('express'); -const devRoutes = require('../../server/dev'); +const devRoutes = require('../../server/bin/test'); const app = express(); const wpm = middleware(webpack(config), { logLevel: 'silent' }); diff --git a/webpack.config.js b/webpack.config.js index fb085c73..6619f697 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -209,7 +209,7 @@ module.exports = { devServer: { compress: true, host: '0.0.0.0', - before: IS_DEV ? require('./server/dev') : undefined, + before: IS_DEV ? require('./server/bin/dev') : undefined, proxy: { '/api/ws': { target: 'ws://localhost:8081', From c103c7fd7a0c17a76d1f7ddff25375e0c7fe46af Mon Sep 17 00:00:00 2001 From: Donovan Preston Date: Fri, 22 Jun 2018 16:47:33 -0400 Subject: [PATCH 016/368] Update dependencies --- android/app/app.iml | 11 ++++++----- android/app/build.gradle | 4 ++-- android/build.gradle | 4 ++-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/android/app/app.iml b/android/app/app.iml index 5eda7aaa..418506f8 100644 --- a/android/app/app.iml +++ b/android/app/app.iml @@ -42,7 +42,7 @@ @@ -149,31 +149,32 @@ + - + + + - - + - diff --git a/android/app/build.gradle b/android/app/build.gradle index b654a1b5..33631428 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -24,9 +24,9 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" + implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.android.support:appcompat-v7:27.1.1' - implementation 'com.android.support.constraint:constraint-layout:1.1.0' + implementation 'com.android.support.constraint:constraint-layout:1.1.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' diff --git a/android/build.gradle b/android/build.gradle index 521fee58..7c715ccf 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,13 +1,13 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.2.30' + ext.kotlin_version = '1.2.50' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.2' + classpath 'com.android.tools.build:gradle:3.1.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong From b5d7e99ba5d8627c21cc0c45044fd9d0c6ef8c4f Mon Sep 17 00:00:00 2001 From: Donovan Preston Date: Fri, 22 Jun 2018 16:48:21 -0400 Subject: [PATCH 017/368] Serve ui out of local html files; pass text/plain and image/* data to the webview using a data url --- android/app/src/main/AndroidManifest.xml | 4 +- android/app/src/main/assets/index.html | 188 ++++++++++++++++++ .../app/src/main/assets/intent-target.html | 20 ++ .../send/sendandroid/IntentActivity.kt | 28 --- .../mozilla/send/sendandroid/MainActivity.kt | 42 +++- 5 files changed, 250 insertions(+), 32 deletions(-) create mode 100644 android/app/src/main/assets/index.html create mode 100644 android/app/src/main/assets/intent-target.html delete mode 100644 android/app/src/main/java/com/mozilla/send/sendandroid/IntentActivity.kt diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 838b119d..992e1612 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ package="com.mozilla.send.sendandroid"> + - - @@ -30,7 +29,6 @@ - \ No newline at end of file diff --git a/android/app/src/main/assets/index.html b/android/app/src/main/assets/index.html new file mode 100644 index 00000000..73434fe9 --- /dev/null +++ b/android/app/src/main/assets/index.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + + + + + + Firefox Send + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + +
+
Private, Encrypted File Sharing
+
+
Send files through a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
+ + Learn more + +
+
+ +
+ Drop your file here to start uploading +
+ + For the most reliable operation, it’s best to keep your file under 1GB + + + +
+ +
+ +
+ + + + \ No newline at end of file diff --git a/android/app/src/main/assets/intent-target.html b/android/app/src/main/assets/intent-target.html new file mode 100644 index 00000000..17a43f44 --- /dev/null +++ b/android/app/src/main/assets/intent-target.html @@ -0,0 +1,20 @@ + + + + + + Firefox Send + + + +
output
+ + + + \ No newline at end of file diff --git a/android/app/src/main/java/com/mozilla/send/sendandroid/IntentActivity.kt b/android/app/src/main/java/com/mozilla/send/sendandroid/IntentActivity.kt deleted file mode 100644 index f518da3b..00000000 --- a/android/app/src/main/java/com/mozilla/send/sendandroid/IntentActivity.kt +++ /dev/null @@ -1,28 +0,0 @@ -package com.mozilla.send.sendandroid - - -import android.support.v7.app.AppCompatActivity -import android.os.Bundle -import android.content.Intent -import android.util.Log -import android.net.Uri - -class IntentActivity : AppCompatActivity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - val intent = getIntent() - val action = intent.getAction() - val type = intent.getType() - if (Intent.ACTION_SEND.equals(action) && type != null) { - if ("text/plain".equals(type)) { - val sharedText = intent.getStringExtra(Intent.EXTRA_TEXT) - Log.w("INTENT", "text/plain " + sharedText); - } else if (type.startsWith("image/")) { - val imageUri = intent.getParcelableExtra(Intent.EXTRA_STREAM) as Uri - - Log.w("INTENT", "image/ " + imageUri); - } - } - } -} diff --git a/android/app/src/main/java/com/mozilla/send/sendandroid/MainActivity.kt b/android/app/src/main/java/com/mozilla/send/sendandroid/MainActivity.kt index e362501e..fc123456 100644 --- a/android/app/src/main/java/com/mozilla/send/sendandroid/MainActivity.kt +++ b/android/app/src/main/java/com/mozilla/send/sendandroid/MainActivity.kt @@ -7,11 +7,23 @@ import im.delight.android.webview.AdvancedWebView import android.graphics.Bitmap import android.content.Intent import android.annotation.SuppressLint +import android.net.Uri import android.webkit.WebView +import android.webkit.WebMessage import android.util.Log +import android.util.Base64 +import android.provider.MediaStore +import android.R.attr.data + + + + + + class MainActivity : AppCompatActivity(), AdvancedWebView.Listener { private var mWebView: AdvancedWebView? = null + private var mToShare: String? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -23,7 +35,28 @@ class MainActivity : AppCompatActivity(), AdvancedWebView.Listener { val webSettings = mWebView!!.getSettings() webSettings.setJavaScriptEnabled(true) - mWebView!!.loadUrl("https://send.firefox.com") + val intent = getIntent() + val action = intent.getAction() + val type = intent.getType() + if (Intent.ACTION_SEND.equals(action) && type != null) { + if (type.equals("text/plain")) { + val sharedText = intent.getStringExtra(Intent.EXTRA_TEXT) + Log.w("INTENT", "text/plain " + sharedText) + mToShare = "data:text/plain;base64," + Base64.encodeToString(sharedText.toByteArray(), 16).trim() + } else if (type.startsWith("image/")) { + val imageUri = intent.getParcelableExtra(Intent.EXTRA_STREAM) as Uri + Log.w("INTENT", "image/ " + imageUri) + mToShare = "data:text/plain;base64," + Base64.encodeToString(imageUri.path.toByteArray(), 16).trim() + + // TODO Currently this causes a Permission Denied error + // val stream = contentResolver.openInputStream(imageUri) + } + mWebView!!.loadUrl("file:///android_asset/intent-target.html") + + } else { + mWebView!!.loadUrl("file:///android_asset/index.html") + } + } @SuppressLint("NewApi") @@ -66,6 +99,13 @@ class MainActivity : AppCompatActivity(), AdvancedWebView.Listener { override fun onPageFinished(url: String) { Log.w("MAIN", "onPageFinished") + if (mToShare != null) { + Log.w("INTENT", mToShare) + + val webView = findViewById(R.id.webview) as AdvancedWebView + webView.postWebMessage(WebMessage(mToShare), Uri.EMPTY) + } + } override fun onPageError(errorCode: Int, description: String, failingUrl: String) { From a4cf46c0eb64318e65305b82864605a2447ad59a Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Mon, 25 Jun 2018 10:57:52 -0700 Subject: [PATCH 018/368] fixed minor streaming nits --- app/api.js | 11 +---- app/fileReceiver.js | 2 +- app/fileSender.js | 1 - server/routes/ws.js | 69 +++++++++++++++----------------- test/frontend/tests/api-tests.js | 18 +-------- 5 files changed, 36 insertions(+), 65 deletions(-) diff --git a/app/api.js b/app/api.js index d8cd9b9b..4101f9a8 100644 --- a/app/api.js +++ b/app/api.js @@ -128,7 +128,6 @@ async function upload( streamInfo, metadata, verifierB64, - keychain, onprogress, canceller ) { @@ -176,14 +175,7 @@ async function upload( } } -export function uploadWs( - encrypted, - info, - metadata, - verifierB64, - keychain, - onprogress -) { +export function uploadWs(encrypted, info, metadata, verifierB64, onprogress) { const canceller = { cancelled: false }; return { @@ -195,7 +187,6 @@ export function uploadWs( info, metadata, verifierB64, - keychain, onprogress, canceller ) diff --git a/app/fileReceiver.js b/app/fileReceiver.js index 385b749b..2a22fbca 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -53,7 +53,7 @@ export default class FileReceiver extends Nanobus { async streamToArrayBuffer(stream, streamSize) { const reader = stream.getReader(); - const result = new Int8Array(streamSize); + const result = new Uint8Array(streamSize); let offset = 0; let state = await reader.read(); diff --git a/app/fileSender.js b/app/fileSender.js index 4f0a64a4..7c3c4de1 100644 --- a/app/fileSender.js +++ b/app/fileSender.js @@ -74,7 +74,6 @@ export default class FileSender extends Nanobus { enc.streamInfo, metadata, authKeyB64, - this.keychain, p => { this.progress = p; this.emit('progress'); diff --git a/server/routes/ws.js b/server/routes/ws.js index 50ef9055..ea81573c 100644 --- a/server/routes/ws.js +++ b/server/routes/ws.js @@ -16,51 +16,46 @@ module.exports = async function(ws, req) { } }); - let first = true; - ws.on('message', async function(message) { + ws.once('message', async function(message) { try { - if (first) { - const newId = crypto.randomBytes(5).toString('hex'); - const owner = crypto.randomBytes(10).toString('hex'); + const newId = crypto.randomBytes(5).toString('hex'); + const owner = crypto.randomBytes(10).toString('hex'); - const fileInfo = JSON.parse(message); - const metadata = fileInfo.fileMetadata; - const auth = fileInfo.authorization; - - if (!metadata || !auth) { - ws.send( - JSON.stringify({ - error: 400 - }) - ); - ws.close(); - } - - const meta = { - owner, - metadata, - auth: auth.split(' ')[1], - nonce: crypto.randomBytes(16).toString('base64') - }; - - const protocol = config.env === 'production' ? 'https' : req.protocol; - const url = `${protocol}://${req.get('host')}/download/${newId}/`; - - const limiter = new Limiter(config.max_file_size); - fileStream = wsStream(ws, { binary: true }).pipe(limiter); - storage.set(newId, fileStream, meta); + const fileInfo = JSON.parse(message); + const metadata = fileInfo.fileMetadata; + const auth = fileInfo.authorization; + if (!metadata || !auth) { ws.send( JSON.stringify({ - url, - owner: meta.owner, - id: newId, - authentication: `send-v1 ${meta.nonce}` + error: 400 }) ); - - first = false; + return ws.close(); } + + const meta = { + owner, + metadata, + auth: auth.split(' ')[1], + nonce: crypto.randomBytes(16).toString('base64') + }; + + const protocol = config.env === 'production' ? 'https' : req.protocol; + const url = `${protocol}://${req.get('host')}/download/${newId}/`; + + const limiter = new Limiter(config.max_file_size); + fileStream = wsStream(ws, { binary: true }).pipe(limiter); + storage.set(newId, fileStream, meta); + + ws.send( + JSON.stringify({ + url, + owner: meta.owner, + id: newId, + authentication: `send-v1 ${meta.nonce}` + }) + ); } catch (e) { log.error('upload', e); ws.send( diff --git a/test/frontend/tests/api-tests.js b/test/frontend/tests/api-tests.js index 1aa5a19f..22e221e4 100644 --- a/test/frontend/tests/api-tests.js +++ b/test/frontend/tests/api-tests.js @@ -17,14 +17,7 @@ describe('API', function() { const meta = await keychain.encryptMetadata(metadata); const verifierB64 = await keychain.authKeyB64(); const p = function() {}; - const up = api.uploadWs( - enc.stream, - enc.streamInfo, - meta, - verifierB64, - keychain, - p - ); + const up = api.uploadWs(enc.stream, enc.streamInfo, meta, verifierB64, p); const result = await up.result; assert.ok(result.url); @@ -38,14 +31,7 @@ describe('API', function() { const meta = await keychain.encryptMetadata(metadata); const verifierB64 = await keychain.authKeyB64(); const p = function() {}; - const up = api.uploadWs( - enc.stream, - enc.streamInfo, - meta, - verifierB64, - keychain, - p - ); + const up = api.uploadWs(enc.stream, enc.streamInfo, meta, verifierB64, p); up.cancel(); try { await up.result; From 9d04514f8eba40f670965ce16f0a7d364722d12e Mon Sep 17 00:00:00 2001 From: Emily Hou Date: Mon, 25 Jun 2018 11:26:48 -0700 Subject: [PATCH 019/368] stream footer --- app/api.js | 13 +++++++------ server/routes/ws.js | 8 ++++++-- server/streamparser.js | 23 +++++++++++++++++++++++ 3 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 server/streamparser.js diff --git a/app/api.js b/app/api.js index 4101f9a8..7ec1341e 100644 --- a/app/api.js +++ b/app/api.js @@ -115,6 +115,7 @@ function listenForResponse(ws, canceller) { }); } } catch (e) { + ws.close(); canceller.cancelled = true; canceller.error = e; reject(e); @@ -134,7 +135,6 @@ async function upload( const host = window.location.hostname; const port = window.location.port; const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; - const error = { cancelled: false }; const ws = await asyncInitWebSocket(`${protocol}//${host}:${port}/api/ws`); try { @@ -144,7 +144,7 @@ async function upload( authorization: `send-v1 ${verifierB64}` }; - const responsePromise = listenForResponse(ws, error); + const responsePromise = listenForResponse(ws, canceller); ws.send(JSON.stringify(fileMeta)); @@ -154,17 +154,17 @@ async function upload( while (!state.done) { const buf = state.value; if (canceller.cancelled) { - throw new Error(0); - } - if (error.cancelled) { - throw new Error(error.error); + throw canceller.error; } + ws.send(buf); onprogress([Math.min(streamInfo.fileSize, size), streamInfo.fileSize]); size += streamInfo.recordSize; state = await reader.read(); } + const footer = new Uint8Array([0]); + ws.send(footer); const response = await responsePromise; //promise only fufills if response is good ws.close(); @@ -180,6 +180,7 @@ export function uploadWs(encrypted, info, metadata, verifierB64, onprogress) { return { cancel: function() { + canceller.error = new Error(0); canceller.cancelled = true; }, result: upload( diff --git a/server/routes/ws.js b/server/routes/ws.js index ea81573c..f2f6250d 100644 --- a/server/routes/ws.js +++ b/server/routes/ws.js @@ -3,6 +3,7 @@ const storage = require('../storage'); const config = require('../config'); const mozlog = require('../log'); const Limiter = require('../limiter'); +const Parser = require('../streamparser'); const wsStream = require('websocket-stream/stream'); const log = mozlog('send.upload'); @@ -45,7 +46,10 @@ module.exports = async function(ws, req) { const url = `${protocol}://${req.get('host')}/download/${newId}/`; const limiter = new Limiter(config.max_file_size); - fileStream = wsStream(ws, { binary: true }).pipe(limiter); + const parser = new Parser(); + fileStream = wsStream(ws, { binary: true }) + .pipe(limiter) + .pipe(parser); storage.set(newId, fileStream, meta); ws.send( @@ -60,7 +64,7 @@ module.exports = async function(ws, req) { log.error('upload', e); ws.send( JSON.stringify({ - error: 500 + error: e === 'limit' ? 413 : 500 }) ); ws.close(); diff --git a/server/streamparser.js b/server/streamparser.js new file mode 100644 index 00000000..d7f7b110 --- /dev/null +++ b/server/streamparser.js @@ -0,0 +1,23 @@ +const { Transform } = require('stream'); + +class StreamParser extends Transform { + constructor() { + super(); + let res; + this.promise = new Promise(resolve => { + res = resolve; + }); + this.res = res; + } + + _transform(chunk, encoding, callback) { + if (chunk.byteLength === 1 && chunk[0] === 0) { + this.res(); + } else { + this.push(chunk); + } + callback(); + } +} + +module.exports = StreamParser; From beccd8090225371b8e39282efa916c48c739be88 Mon Sep 17 00:00:00 2001 From: Emily Hou <39499244+emily-hou1@users.noreply.github.com> Date: Mon, 25 Jun 2018 11:52:29 -0700 Subject: [PATCH 020/368] small storage fix (#858) --- server/routes/ws.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/routes/ws.js b/server/routes/ws.js index f2f6250d..e9ea3858 100644 --- a/server/routes/ws.js +++ b/server/routes/ws.js @@ -52,6 +52,8 @@ module.exports = async function(ws, req) { .pipe(parser); storage.set(newId, fileStream, meta); + await parser.promise; + ws.send( JSON.stringify({ url, From 126ea8c7e60a0ad5fac72015985605d2ef50e5fb Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Mon, 25 Jun 2018 14:01:08 -0700 Subject: [PATCH 021/368] use a Duplex stream for EOF --- app/fileManager.js | 2 +- server/routes/ws.js | 41 +++++++++++++++++++++++++---------------- server/streamparser.js | 18 +++++------------- 3 files changed, 31 insertions(+), 30 deletions(-) diff --git a/app/fileManager.js b/app/fileManager.js index e29a05e2..786f99f8 100644 --- a/app/fileManager.js +++ b/app/fileManager.js @@ -52,7 +52,7 @@ export default function(state, emitter) { checkFiles(); }); - //emitter.on('navigate', checkFiles); + emitter.on('navigate', checkFiles); emitter.on('render', () => { lastRender = Date.now(); diff --git a/server/routes/ws.js b/server/routes/ws.js index e9ea3858..df9f2ba3 100644 --- a/server/routes/ws.js +++ b/server/routes/ws.js @@ -50,26 +50,35 @@ module.exports = async function(ws, req) { fileStream = wsStream(ws, { binary: true }) .pipe(limiter) .pipe(parser); - storage.set(newId, fileStream, meta); + await storage.set(newId, fileStream, meta); - await parser.promise; + if (ws.readyState === 1) { + // if the socket is closed by a cancelled upload the stream + // ends without an error so we need to check the state + // before sending a reply. - ws.send( - JSON.stringify({ - url, - owner: meta.owner, - id: newId, - authentication: `send-v1 ${meta.nonce}` - }) - ); + // TODO: we should handle cancelled uploads differently + // in order to avoid having to check socket state and clean + // up storage, possibly with an exception that we can catch. + ws.send( + JSON.stringify({ + url, + owner: meta.owner, + id: newId, + authentication: `send-v1 ${meta.nonce}` + }) + ); + } } catch (e) { log.error('upload', e); - ws.send( - JSON.stringify({ - error: e === 'limit' ? 413 : 500 - }) - ); - ws.close(); + if (ws.readyState === 1) { + ws.send( + JSON.stringify({ + error: e === 'limit' ? 413 : 500 + }) + ); + ws.close(); + } } }); }; diff --git a/server/streamparser.js b/server/streamparser.js index d7f7b110..e59476d0 100644 --- a/server/streamparser.js +++ b/server/streamparser.js @@ -1,23 +1,15 @@ -const { Transform } = require('stream'); +const { Duplex } = require('stream'); -class StreamParser extends Transform { - constructor() { - super(); - let res; - this.promise = new Promise(resolve => { - res = resolve; - }); - this.res = res; - } - - _transform(chunk, encoding, callback) { +class StreamParser extends Duplex { + _write(chunk, encoding, callback) { if (chunk.byteLength === 1 && chunk[0] === 0) { - this.res(); + this.push(null); } else { this.push(chunk); } callback(); } + _read() {} } module.exports = StreamParser; From 9472d5eaa662a5b1eb534d01aca744c598769693 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Wed, 27 Jun 2018 09:20:16 -0700 Subject: [PATCH 022/368] added delay when ws.bufferedAmount is high --- app/api.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/api.js b/app/api.js index 7ec1341e..f32b5abf 100644 --- a/app/api.js +++ b/app/api.js @@ -1,4 +1,4 @@ -import { arrayToB64, b64ToArray } from './utils'; +import { arrayToB64, b64ToArray, delay } from './utils'; function post(obj) { return { @@ -162,6 +162,9 @@ async function upload( onprogress([Math.min(streamInfo.fileSize, size), streamInfo.fileSize]); size += streamInfo.recordSize; state = await reader.read(); + while (ws.bufferedAmount > streamInfo.recordSize * 2) { + await delay(); + } } const footer = new Uint8Array([0]); ws.send(footer); From 5f79a9fb6de4caf0e9866881aa254066c5c6103b Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 28 Jun 2018 11:15:16 -0700 Subject: [PATCH 023/368] fixes downloading files as .part --- app/fileReceiver.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/fileReceiver.js b/app/fileReceiver.js index 2a22fbca..aef142b0 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -63,7 +63,7 @@ export default class FileReceiver extends Nanobus { state = await reader.read(); } - return result.buffer; + return result.slice(0, offset).buffer; } async download(noSave = false) { @@ -85,10 +85,9 @@ export default class FileReceiver extends Nanobus { this.emit('decrypting'); const dec = await this.keychain.decryptStream(ciphertext); - const plainstream = dec.stream; const plaintext = await this.streamToArrayBuffer( - plainstream, - dec.streamInfo.fileSize + dec.stream, + this.fileInfo.size ); if (!noSave) { From 38ef52d3ba7ac7433f12667ae75cd9c80b5954ef Mon Sep 17 00:00:00 2001 From: Emily Date: Fri, 29 Jun 2018 09:36:08 -0700 Subject: [PATCH 024/368] uses fetch.body --- app/api.js | 63 ++++++++++++++++++++++++++++++++++++ app/ece.js | 79 +++++++++++++++++++++++++++++++++++++++------ app/fileReceiver.js | 74 ++++++++++++++++++++++++++++++++++-------- 3 files changed, 192 insertions(+), 24 deletions(-) diff --git a/app/api.js b/app/api.js index f32b5abf..0219d006 100644 --- a/app/api.js +++ b/app/api.js @@ -197,6 +197,69 @@ export function uploadWs(encrypted, info, metadata, verifierB64, onprogress) { }; } +//////////////////////// + +async function downloadS(id, keychain, onprogress, signal) { + const auth = await keychain.authHeader(); + try { + const response = await fetch(`/api/download/${id}`, { + signal: signal , + method: 'GET', + headers: {'Authorization': auth} + }); + + if (response.status !== 200) { + throw new Error(response.status); + } + + const authHeader = response.headers.get('WWW-Authenticate'); + if (authHeader) { + keychain.nonce = parseNonce(authHeader); + } + + const fileSize = response.headers.get('Content-Length'); + onprogress([0, fileSize]); + + console.log(response.body); + if (response.body) { + return response.body; + } + return response.blob(); + + } catch (err) { + if (err.name === 'AbortError') { + throw new Error('0'); + } else { + throw err; + } + } +} + +async function tryDownloadStream(id, keychain, onprogress, signal, tries = 1) { + try { + const result = await downloadS(id, keychain, onprogress, signal); + return result; + } catch (e) { + if (e.message === '401' && --tries > 0) { + return tryDownloadStream(id, keychain, onprogress, signal, tries); + } + throw e; + } +} + +export function downloadStream(id, keychain, onprogress) { + const controller = new AbortController(); + function cancel() { + controller.abort(); + } + return { + cancel, + result: tryDownloadStream(id, keychain, onprogress, controller.signal, 2) + }; +} + +////////////////// + function download(id, keychain, onprogress, canceller) { const xhr = new XMLHttpRequest(); canceller.oncancel = function() { diff --git a/app/ece.js b/app/ece.js index eb86c6c0..12605811 100644 --- a/app/ece.js +++ b/app/ece.js @@ -1,5 +1,5 @@ require('buffer'); -import { ReadableStream, TransformStream } from 'web-streams-polyfill'; +import { TransformStream } from 'web-streams-polyfill'; const NONCE_LENGTH = 12; const TAG_LENGTH = 16; @@ -258,14 +258,67 @@ class BlobSlicer { } } -class BlobSliceStream extends ReadableStream { - constructor(blob, size, mode) { - super(new BlobSlicer(blob, size, mode)); +class StreamSlicer { + constructor(rs, mode) { + this.mode = mode; + this.rs = rs; + this.chunkSize = mode === MODE_ENCRYPT ? rs - 17 : 21; + this.partialChunk = new Uint8Array(this.chunkSize); //where partial chunks are saved + this.offset = 0; + } + + send(buf, controller) { + //console.log("sent a record") + controller.enqueue(buf); + if (this.chunkSize === 21) { + this.chunkSize = this.rs; + this.partialChunk = new Uint8Array(this.chunkSize); + } + } + + //reslice input uint8arrays into record sized chunks + transform(chunk, controller) { + //console.log('Received chunk') // with %d bytes.', chunk.byteLength) + let i = 0; + + if (this.offset > 0) { //send off the partial chunk + const len = Math.min(chunk.byteLength, (this.chunkSize - this.offset)); + this.partialChunk.set((chunk.slice(0, len)), this.offset); + this.offset += len; + i += len; + + if (this.offset === this.chunkSize) { + this.send(this.partialChunk, controller); + this.offset = 0; + } + } + + while (i < chunk.byteLength) { //send off whole records and stick last bit in partialChunk + if ((chunk.byteLength - i) > this.chunkSize) { + const record = chunk.slice(i, i + this.chunkSize); + i += this.chunkSize; + this.send(record, controller); + } else { + const end = chunk.slice(i, end); + this.partialChunk.set(end); + this.offset = end.length; + i += end.length; + } + } + } + + flush(controller) { + if (this.offset > 0) { + console.log("sent a partial record") + controller.enqueue(this.partialChunk.slice(0, this.offset)); + } } } + + /* -input: a blob containing data to be transformed +input: a blob or a readable stream containing data to be transformed key: Uint8Array containing key of size KEY_LENGTH mode: string, either 'encrypt' or 'decrypt' rs: int containing record size, optional @@ -280,11 +333,17 @@ export default class ECE { salt = generateSalt(KEY_LENGTH); } - this.streamInfo = { - recordSize: rs, - fileSize: 21 + input.size + 16 * Math.floor(input.size / (rs - 17)) - }; - const inputStream = new BlobSliceStream(input, rs, mode); + let inputStream; + if (input instanceof Blob) { + this.streamInfo = { + recordSize: rs, + fileSize: 21 + input.size + 16 * Math.floor(input.size / (rs - 17)) + }; + inputStream = new ReadableStream(new BlobSlicer(input, rs, mode)); + } else { + const sliceStream = new TransformStream(new StreamSlicer(rs, mode)); + inputStream = input.pipeThrough(sliceStream); + } const ts = new TransformStream(new ECETransformer(mode, key, rs, salt)); this.stream = inputStream.pipeThrough(ts); diff --git a/app/fileReceiver.js b/app/fileReceiver.js index aef142b0..5ca9f62b 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -1,7 +1,7 @@ import Nanobus from 'nanobus'; import Keychain from './keychain'; import { bytes } from './utils'; -import { metadata, downloadFile } from './api'; +import { metadata, downloadFile, downloadStream} from './api'; export default class FileReceiver extends Nanobus { constructor(fileInfo) { @@ -51,24 +51,64 @@ export default class FileReceiver extends Nanobus { this.state = 'ready'; } - async streamToArrayBuffer(stream, streamSize) { - const reader = stream.getReader(); - const result = new Uint8Array(streamSize); - let offset = 0; + /* + async streamToArrayBuffer(stream, streamSize) { + try { + var finish; + const promise = new Promise((resolve) => { + finish = resolve; + }); + const result = new Uint8Array(streamSize); + let offset = 0; - let state = await reader.read(); - while (!state.done) { - result.set(state.value, offset); - offset += state.value.length; - state = await reader.read(); + + const writer = new WritableStream( + { + write(chunk) { + result.set(state.value, offset); + offset += state.value.length; + }, + close() { + //resolve a promise or something + finish.resolve(); + } + } + ); + + stream.pipeTo(writer); + + await promise; + return result.slice(0, offset).buffer; + + } catch (e) { + console.log(e) } + } + */ - return result.slice(0, offset).buffer; + async streamToArrayBuffer(stream, streamSize) { + try { + const result = new Uint8Array(streamSize); + let offset = 0; + console.log("reading...") + const reader = stream.getReader(); + let state = await reader.read(); + console.log("read done") + while (!state.done) { + result.set(state.value, offset); + offset += state.value.length; + state = await reader.read(); + } + + return result.slice(0, offset).buffer; + } catch (e) { + console.log(e) + } } async download(noSave = false) { this.state = 'downloading'; - this.downloadRequest = await downloadFile( + this.downloadRequest = await downloadStream( this.fileInfo.id, this.keychain, p => { @@ -78,18 +118,22 @@ export default class FileReceiver extends Nanobus { ); try { + const ciphertext = await this.downloadRequest.result; this.downloadRequest = null; this.msg = 'decryptingFile'; this.state = 'decrypting'; this.emit('decrypting'); - const dec = await this.keychain.decryptStream(ciphertext); - const plaintext = await this.streamToArrayBuffer( + const dec = this.keychain.decryptStream(ciphertext); + + let plaintext = await this.streamToArrayBuffer( dec.stream, this.fileInfo.size ); + if (plaintext === undefined) { plaintext = (new Uint8Array(1)).buffer; } + if (!noSave) { await saveFile({ plaintext, @@ -97,8 +141,10 @@ export default class FileReceiver extends Nanobus { type: this.fileInfo.type }); } + this.msg = 'downloadFinish'; this.state = 'complete'; + } catch (e) { this.downloadRequest = null; throw e; From cc7ea7351382b62106c0b7af5fe8581b1537cab2 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Fri, 29 Jun 2018 15:14:55 -0700 Subject: [PATCH 025/368] updated deps --- package-lock.json | 7947 ++++++++++++++++++++++++++------------------- package.json | 64 +- 2 files changed, 4719 insertions(+), 3292 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6247b8a6..f3584f98 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,63 +4,6 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.40", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.40.tgz", - "integrity": "sha512-eVXQSbu/RimU6OKcK2/gDJVTFcxXJI4sHbIqw2mhwMZeQ2as/8AhS9DGkEDoHMBBNJZ5B0US63lF56x+KDcxiA==", - "dev": true, - "requires": { - "@babel/highlight": "7.0.0-beta.40" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.40", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.40.tgz", - "integrity": "sha512-mOhhTrzieV6VO7odgzFGFapiwRK0ei8RZRhfzHhb6cpX3QM8XXuCLXWjN8qBB7JReDdUR80V3LFfFrGUYevhNg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, "@f/has": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@f/has/-/has-1.0.1.tgz", @@ -89,6 +32,31 @@ "integrity": "sha1-9vGlzl05caSt6RoR0i1MRZrNN18=", "dev": true }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz", + "integrity": "sha512-LAQ1d4OPfSJ/BMbI2DuizmYrrkD9JMaTdi2hQTlI53lQ4kRQPyZQRS4CYQ7O66bnBBnP/oYdRxbk++X0xuFU6A==", + "dev": true + }, + "@samverschueren/stream-to-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", + "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==", + "dev": true, + "requires": { + "any-observable": "0.3.0" + } + }, "@sinonjs/formatio": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", @@ -108,51 +76,27 @@ "through": "2.3.8" } }, - "abab": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", - "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", - "dev": true - }, "accepts": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "dev": true, "requires": { "mime-types": "2.1.17", "negotiator": "0.6.1" } }, "acorn": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz", - "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ==", - "dev": true + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==" }, "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "requires": { - "acorn": "4.0.13" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } - } - }, - "acorn-globals": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", - "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", - "dev": true, - "requires": { - "acorn": "5.4.1" + "acorn": "5.7.1" } }, "acorn-jsx": { @@ -173,12 +117,12 @@ } }, "acorn-node": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.3.0.tgz", - "integrity": "sha512-efP54n3d1aLfjL2UMdaXa6DsswwzJeI5rqhbFvXMrKiJ6eJFpf+7R0zN7t8IC+XKn2YOAFAv6xbBNgHUkoHWLw==", - "dev": true, + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.5.2.tgz", + "integrity": "sha512-krFKvw/d1F17AN3XZbybIUzEY4YEPNiGo05AfP3dBlfVKrMHETKpgjpuZkSF8qDNt9UkQcqj7am8yJLseklCMg==", "requires": { - "acorn": "5.4.1", + "acorn": "5.7.1", + "acorn-dynamic-import": "3.0.0", "xtend": "4.0.1" } }, @@ -249,9 +193,9 @@ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "any-observable": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.2.0.tgz", - "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", "dev": true }, "anymatch": { @@ -276,9 +220,9 @@ } }, "app-root-path": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", - "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz", + "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=", "dev": true }, "application-config": { @@ -339,12 +283,6 @@ "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", "dev": true }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true - }, "array-filter": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", @@ -373,9 +311,9 @@ } }, "array-iterate": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.1.tgz", - "integrity": "sha1-hlv3+K851rCYLGCQKRSsdrwBCPY=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.2.tgz", + "integrity": "sha512-1hWSHTIlG/8wtYD+PPX5AOBtKWngpDFjrsrHgZpe+JdgNGz0udYu6ZIkAa/xuenIUEqFv7DvE2Yr60jxweJSrQ==", "dev": true }, "array-map": { @@ -447,6 +385,23 @@ "dev": true, "requires": { "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } } }, "assert-plus": { @@ -487,16 +442,10 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, "atob": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", - "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", "dev": true }, "autoprefixer": { @@ -506,7 +455,7 @@ "dev": true, "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000810", + "caniuse-db": "1.0.30000861", "normalize-range": "0.1.2", "num2fraction": "1.2.2", "postcss": "5.2.18", @@ -519,26 +468,26 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000810", + "caniuse-db": "1.0.30000861", "electron-to-chromium": "1.3.33" } } } }, "aws-sdk": { - "version": "2.206.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.206.0.tgz", - "integrity": "sha1-I1yhCVdsiI8kZ9HBDDOvfjQtO+E=", + "version": "2.266.1", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.266.1.tgz", + "integrity": "sha512-b8lisloCETh0Fx0il540i+Hbgf3hyegQ6ezoJFggfc1HIbqzvIjVJYJhOsYl1fL1o+iMUaVU4ZH8cSyoMFR2Tw==", "requires": { "buffer": "4.9.1", "events": "1.1.1", + "ieee754": "1.1.8", "jmespath": "0.15.0", "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", "uuid": "3.1.0", - "xml2js": "0.4.17", - "xmlbuilder": "4.2.1" + "xml2js": "0.4.17" } }, "aws-sign": { @@ -547,18 +496,6 @@ "integrity": "sha1-PYHKabR0seFlGHKLUcJP8Lvtxuk=", "dev": true }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true - }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -571,9 +508,9 @@ } }, "babel-core": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -803,14 +740,15 @@ } }, "babel-plugin-istanbul": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", - "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", + "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", "dev": true, "requires": { + "babel-plugin-syntax-object-rest-spread": "6.13.0", "find-up": "2.1.0", - "istanbul-lib-instrument": "1.9.2", - "test-exclude": "4.2.0" + "istanbul-lib-instrument": "1.10.1", + "test-exclude": "4.2.1" } }, "babel-plugin-syntax-async-functions": { @@ -1183,15 +1121,15 @@ } }, "babel-plugin-yo-yoify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-yo-yoify/-/babel-plugin-yo-yoify-1.0.2.tgz", - "integrity": "sha512-M2aJCgNknRGpwju5sEXeauAsb4Ior4zgwq8EbUigqEU1B4UETa1ySs64nZff9F2BNddzZ2c7h4ypGrck0ppmSA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/babel-plugin-yo-yoify/-/babel-plugin-yo-yoify-1.0.3.tgz", + "integrity": "sha512-HRTwsrV4UduQ014wm+hBUU2yrxeRZH7Dk+9sYLIBbV36uxuvOSpaTq+BybwxJl++abZTiqtSFZryztG/+ADidQ==", "dev": true, "requires": { "@f/is-svg": "1.0.0", "@f/svg-namespace": "1.0.1", "camel-case": "3.0.0", - "hyperx": "2.3.3", + "hyperx": "2.4.0", "is-boolean-attribute": "0.0.1", "normalize-html-whitespace": "0.2.0", "yo-yoify": "4.3.0" @@ -1215,9 +1153,9 @@ } }, "babel-preset-env": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", - "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "dev": true, "requires": { "babel-plugin-check-es2015-constants": "6.22.0", @@ -1247,9 +1185,33 @@ "babel-plugin-transform-es2015-unicode-regex": "6.24.1", "babel-plugin-transform-exponentiation-operator": "6.24.1", "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.11.3", + "browserslist": "3.2.8", "invariant": "2.2.2", "semver": "5.5.0" + }, + "dependencies": { + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000861", + "electron-to-chromium": "1.3.50" + } + }, + "caniuse-lite": { + "version": "1.0.30000861", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000861.tgz", + "integrity": "sha512-aeEQ4kyd41qCl8XFbCjWgVBI3EOd66M9sC43MFn0kuD/vcrNqvoIAlKon4xdp8yMCYvVjdCltI3lgArj8I6cNA==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.50", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.50.tgz", + "integrity": "sha1-dDi3b5K0G5GfP73TUPvQdX2s3fc=", + "dev": true + } } }, "babel-preset-es2015": { @@ -1315,7 +1277,7 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.0", + "babel-core": "6.26.3", "babel-runtime": "6.26.0", "core-js": "2.5.3", "home-or-tmp": "2.0.0", @@ -1382,9 +1344,9 @@ "dev": true }, "bail": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.2.tgz", - "integrity": "sha1-99bBcxYwqfnw1NNe0fli4gdKF2Q=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.3.tgz", + "integrity": "sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg==", "dev": true }, "balanced-match": { @@ -1417,18 +1379,53 @@ "is-descriptor": "1.0.2" } }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, "base64-js": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz", - "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" }, "batch": { "version": "0.6.1", @@ -1436,26 +1433,6 @@ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "bel": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/bel/-/bel-5.1.7.tgz", - "integrity": "sha512-f3aAzoq2ilK3ErDsv47uo2qK9NTKHkguI7j6sJi6ynKS9vPG180QGU8BzHas6xPnIsKj+m7YXlDSm9BmaZHNrg==", - "requires": { - "hyperx": "2.3.3", - "is-electron": "2.1.0", - "pelo": "0.1.0" - } - }, "big.js": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", @@ -1523,7 +1500,7 @@ "on-finished": "2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.15" + "type-is": "1.6.16" } }, "bonjour": { @@ -1601,25 +1578,7 @@ "browser-process-hrtime": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", - "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=", - "dev": true - }, - "browser-resolve": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", - "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } + "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=" }, "browser-stdout": { "version": "1.3.1", @@ -1628,34 +1587,34 @@ "dev": true }, "browserify-aes": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", - "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { "buffer-xor": "1.0.3", "cipher-base": "1.0.4", - "create-hash": "1.1.3", + "create-hash": "1.2.0", "evp_bytestokey": "1.0.3", "inherits": "2.0.3", "safe-buffer": "5.1.1" } }, "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "requires": { - "browserify-aes": "1.1.1", - "browserify-des": "1.0.0", + "browserify-aes": "1.2.0", + "browserify-des": "1.0.1", "evp_bytestokey": "1.0.3" } }, "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.1.tgz", + "integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==", "dev": true, "requires": { "cipher-base": "1.0.4", @@ -1681,11 +1640,11 @@ "requires": { "bn.js": "4.11.8", "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", "elliptic": "6.4.0", "inherits": "2.0.3", - "parse-asn1": "5.1.0" + "parse-asn1": "5.1.1" } }, "browserify-zlib": { @@ -1712,11 +1671,17 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "base64-js": "1.2.3", + "base64-js": "1.3.0", "ieee754": "1.1.8", "isarray": "1.0.0" } }, + "buffer-from": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", + "dev": true + }, "buffer-indexof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", @@ -1762,7 +1727,7 @@ "move-concurrently": "1.0.1", "promise-inflight": "1.0.1", "rimraf": "2.6.2", - "ssri": "5.2.4", + "ssri": "5.3.0", "unique-filename": "1.1.0", "y18n": "4.0.0" }, @@ -1812,6 +1777,12 @@ "estraverse": "4.2.0" } }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", @@ -1831,7 +1802,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, "requires": { "no-case": "2.3.2", "upper-case": "1.1.3" @@ -1865,7 +1835,7 @@ "dev": true, "requires": { "browserslist": "1.7.7", - "caniuse-db": "1.0.30000810", + "caniuse-db": "1.0.30000861", "lodash.memoize": "4.1.2", "lodash.uniq": "4.5.0" }, @@ -1876,16 +1846,16 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000810", + "caniuse-db": "1.0.30000861", "electron-to-chromium": "1.3.33" } } } }, "caniuse-db": { - "version": "1.0.30000810", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000810.tgz", - "integrity": "sha1-vSWDDEHvq2Qzmi44H0lnc0PIRQk=", + "version": "1.0.30000861", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000861.tgz", + "integrity": "sha1-byeEChMMEMCx4A+rdynB+vj0zNM=", "dev": true }, "caniuse-lite": { @@ -1894,16 +1864,10 @@ "integrity": "sha512-vT0JLmHdvq1UVbYXioxCXHYdNw55tyvi+IUWyX0Zeh1OFQi2IllYtm38IJnSgHWCv/zUnX1hdhy3vMJvuTNSqw==", "dev": true }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, "ccount": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.2.tgz", - "integrity": "sha1-U7ai+BW7d7nChx97mnLDol8djok=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.3.tgz", + "integrity": "sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw==", "dev": true }, "center-align": { @@ -1929,27 +1893,27 @@ } }, "character-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.1.tgz", - "integrity": "sha1-92hxvl72bdt/j440eOzDdMJ9bco=", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.2.tgz", + "integrity": "sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ==", "dev": true }, "character-entities-html4": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.1.tgz", - "integrity": "sha1-NZoqSg9+KdPcKsmb2+Ie45Q46lA=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.2.tgz", + "integrity": "sha512-sIrXwyna2+5b0eB9W149izTPJk/KkJTg6mEzDGibwBUkyH1SbDa+nf515Ppdi3MaH35lW0JFJDWeq9Luzes1Iw==", "dev": true }, "character-entities-legacy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.1.tgz", - "integrity": "sha1-9Ad53xoQGHK7UQo9KV4fzPFHIC8=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz", + "integrity": "sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA==", "dev": true }, "character-reference-invalid": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.1.tgz", - "integrity": "sha1-lCg191Dk7GGjCOYMLvjMEBEgLvw=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz", + "integrity": "sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ==", "dev": true }, "chardet": { @@ -1998,20 +1962,23 @@ } }, "choo": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/choo/-/choo-6.10.0.tgz", - "integrity": "sha512-5dSzBXh1PeyzKgzTTVMiIyO+2J/THwft/O65WDBnmMwwM2AveM2iDrHMcdzMm1Pr4U+44+hqAprBJbPigPYy5Q==", + "version": "6.12.1", + "resolved": "https://registry.npmjs.org/choo/-/choo-6.12.1.tgz", + "integrity": "sha512-oNZ5fQSOx0gddjX/46CGVsbwtiz3FeSfNKjouhannFzo5LOOokFlcLwqeY/8WOJ+x5aLVbDb/XoRCB/2qcUcsA==", "requires": { - "bel": "5.1.7", "document-ready": "2.0.1", + "nanoassert": "1.1.0", "nanobus": "4.3.3", - "nanohref": "3.0.1", - "nanolocation": "1.0.0", + "nanocomponent": "6.5.2", + "nanohref": "3.0.3", + "nanohtml": "1.2.4", + "nanolocation": "1.0.1", + "nanolru": "1.0.0", "nanomorph": "5.1.3", "nanoquery": "1.2.0", "nanoraf": "3.0.1", - "nanorouter": "3.0.1", - "nanotiming": "7.3.0", + "nanorouter": "3.1.1", + "nanotiming": "7.3.1", "scroll-to-anchor": "1.1.0", "xtend": "4.0.1" } @@ -2074,68 +2041,11 @@ "is-descriptor": "0.1.6" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -2291,13 +2201,13 @@ "dev": true }, "clone-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz", - "integrity": "sha1-6uCiQT9VwJQvgYwin+/OhF1/Oxw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz", + "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==", "dev": true, "requires": { "is-regexp": "1.0.0", - "is-supported-regexp-flag": "1.0.0" + "is-supported-regexp-flag": "1.0.1" } }, "co": { @@ -2322,9 +2232,9 @@ "dev": true }, "collapse-white-space": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.3.tgz", - "integrity": "sha1-S5BvZw5aljqHt2sOFolkM0G2Ajw=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.4.tgz", + "integrity": "sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw==", "dev": true }, "collection-visit": { @@ -2447,20 +2357,21 @@ "dev": true }, "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { + "buffer-from": "1.1.0", "inherits": "2.0.3", - "readable-stream": "2.3.4", + "readable-stream": "2.3.6", "typedarray": "0.0.6" }, "dependencies": { "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "1.0.2", @@ -2468,14 +2379,14 @@ "isarray": "1.0.0", "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", + "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -2519,36 +2430,49 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, - "content-type-parser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", - "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", - "dev": true - }, "convert-source-map": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" }, "convict": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/convict/-/convict-4.0.2.tgz", - "integrity": "sha1-oVFl1DwhHRJfV8ZNKLxWHcKdNb4=", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/convict/-/convict-4.3.1.tgz", + "integrity": "sha512-BLgyHUJREKCHVZ8rbXKIuNTDX/Is2GB/HZyUqh1IwvV0EeYBWtX+54OCG8tkIiAxB2yKowdP19+RHY5kCQ/SOg==", "requires": { - "depd": "1.1.1", - "json5": "0.5.1", + "depd": "1.1.2", + "json5": "1.0.1", "lodash.clonedeep": "4.5.0", - "moment": "2.19.3", + "moment": "2.22.2", "validator": "7.2.0", - "varify": "0.2.0", - "yargs-parser": "7.0.0" + "yargs-parser": "10.0.0" }, "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "1.2.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "moment": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" + }, + "yargs-parser": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.0.0.tgz", + "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", + "requires": { + "camelcase": "4.1.0" + } } } }, @@ -2589,9 +2513,9 @@ "dev": true }, "copy-webpack-plugin": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.0.tgz", - "integrity": "sha512-ROQ85fWKuhJfUkBTdHvfV+Zv6Ltm3G/vPVFdLPFwzWzd9RUY1yLw3rt6FmKK2PaeNQCNvmwgFhuarkjuV4PVDQ==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz", + "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==", "dev": true, "requires": { "cacache": "10.0.4", @@ -2601,7 +2525,7 @@ "loader-utils": "1.1.0", "minimatch": "3.0.4", "p-limit": "1.2.0", - "serialize-javascript": "1.4.0" + "serialize-javascript": "1.5.0" } }, "core-js": { @@ -2615,15 +2539,14 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", + "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", "dev": true, "requires": { "is-directory": "0.3.1", - "js-yaml": "3.10.0", - "parse-json": "4.0.0", - "require-from-string": "2.0.1" + "js-yaml": "3.12.0", + "parse-json": "4.0.0" }, "dependencies": { "esprima": { @@ -2633,21 +2556,31 @@ "dev": true }, "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { "argparse": "1.0.10", "esprima": "4.0.0" } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "1.3.1", + "json-parse-better-errors": "1.0.2" + } } } }, "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "requires": { "bn.js": "4.11.8", @@ -2655,39 +2588,55 @@ } }, "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { "cipher-base": "1.0.4", "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.10" + "md5.js": "1.3.4", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" } }, "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { "cipher-base": "1.0.4", - "create-hash": "1.1.3", + "create-hash": "1.2.0", "inherits": "2.0.3", - "ripemd160": "2.0.1", + "ripemd160": "2.0.2", "safe-buffer": "5.1.1", - "sha.js": "2.4.10" + "sha.js": "2.4.11" } }, "cross-env": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.1.3.tgz", - "integrity": "sha512-UOokgwvDzCT0mqRSLEkJzUhYXB1vK3E5UgDrD41QiXsm9UetcW2rCGHYz/O3p873lMJ1VZbFCF9Izkwh7nYR5A==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", + "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", "dev": true, "requires": { - "cross-spawn": "5.1.0", + "cross-spawn": "6.0.5", "is-windows": "1.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "1.0.4", + "path-key": "2.0.1", + "semver": "5.5.0", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + } } }, "cross-spawn": { @@ -2721,17 +2670,17 @@ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { - "browserify-cipher": "1.0.0", + "browserify-cipher": "1.0.1", "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", + "create-ecdh": "4.0.3", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "diffie-hellman": "5.0.3", "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", + "pbkdf2": "3.0.16", + "public-encrypt": "4.0.2", "randombytes": "2.0.6", - "randomfill": "1.0.3" + "randomfill": "1.0.4" } }, "css-color-function": { @@ -2770,9 +2719,9 @@ "dev": true }, "css-loader": { - "version": "0.28.10", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.10.tgz", - "integrity": "sha512-X1IJteKnW9Llmrd+lJ0f7QZHh9Arf+11S7iRcoT2+riig3BK0QaCaOtubAulMK6Itbo08W6d3l8sW21r+Jhp5Q==", + "version": "0.28.11", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz", + "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -3021,7 +2970,7 @@ "postcss-discard-empty": "2.1.0", "postcss-discard-overridden": "0.1.1", "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", + "postcss-filter-plugins": "2.0.3", "postcss-merge-idents": "2.1.7", "postcss-merge-longhand": "2.0.2", "postcss-merge-rules": "2.1.2", @@ -3062,21 +3011,6 @@ } } }, - "cssom": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", - "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", - "dev": true - }, - "cssstyle": { - "version": "0.2.37", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", - "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", - "dev": true, - "requires": { - "cssom": "0.3.2" - } - }, "ctype": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", @@ -3110,25 +3044,13 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.38" + "es5-ext": "0.10.45" } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } + "dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==" }, "dasherize": { "version": "2.0.0", @@ -3236,11 +3158,46 @@ "isobject": "3.0.1" }, "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, @@ -3329,15 +3286,15 @@ "dev": true }, "diff": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", - "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { "bn.js": "4.11.8", @@ -3353,6 +3310,17 @@ "requires": { "arrify": "1.0.1", "path-type": "3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + } } }, "dns-equal": { @@ -3545,8 +3513,7 @@ "dom-walk": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", - "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", - "dev": true + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" }, "domain-browser": { "version": "1.2.0", @@ -3560,19 +3527,10 @@ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", "dev": true }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "dev": true, - "requires": { - "webidl-conversions": "4.0.2" - } - }, "domhandler": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", - "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { "domelementtype": "1.3.0" @@ -3657,16 +3615,6 @@ } } }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -3692,7 +3640,7 @@ "requires": { "bn.js": "4.11.8", "brorand": "1.1.0", - "hash.js": "1.1.3", + "hash.js": "1.1.4", "hmac-drbg": "1.0.1", "inherits": "2.0.3", "minimalistic-assert": "1.0.0", @@ -3779,13 +3727,14 @@ } }, "es5-ext": { - "version": "0.10.38", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz", - "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==", + "version": "0.10.45", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", + "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "dev": true, "requires": { "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "es6-symbol": "3.1.1", + "next-tick": "1.0.0" } }, "es6-iterator": { @@ -3795,7 +3744,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38", + "es5-ext": "0.10.45", "es6-symbol": "3.1.1" } }, @@ -3806,7 +3755,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38", + "es5-ext": "0.10.45", "es6-iterator": "2.0.3", "es6-set": "0.1.5", "es6-symbol": "3.1.1", @@ -3835,7 +3784,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38", + "es5-ext": "0.10.45", "es6-iterator": "2.0.3", "es6-symbol": "3.1.1", "event-emitter": "0.3.5" @@ -3848,7 +3797,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38" + "es5-ext": "0.10.45" } }, "es6-templates": { @@ -3868,7 +3817,7 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38", + "es5-ext": "0.10.45", "es6-iterator": "2.0.3", "es6-symbol": "3.1.1" } @@ -3912,37 +3861,37 @@ "requires": { "es6-map": "0.1.5", "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", + "esrecurse": "4.2.1", "estraverse": "4.2.0" } }, "eslint": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", - "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { "ajv": "5.5.2", "babel-code-frame": "6.26.0", - "chalk": "2.3.2", - "concat-stream": "1.6.0", + "chalk": "2.4.1", + "concat-stream": "1.6.2", "cross-spawn": "5.1.0", "debug": "3.1.0", "doctrine": "2.1.0", "eslint-scope": "3.7.1", "eslint-visitor-keys": "1.0.0", "espree": "3.5.4", - "esquery": "1.0.0", + "esquery": "1.0.1", "esutils": "2.0.2", "file-entry-cache": "2.0.0", "functional-red-black-tree": "1.0.1", "glob": "7.1.2", - "globals": "11.3.0", + "globals": "11.7.0", "ignore": "3.3.7", "imurmurhash": "0.1.4", "inquirer": "3.3.0", "is-resolvable": "1.1.0", - "js-yaml": "3.11.0", + "js-yaml": "3.12.0", "json-stable-stringify-without-jsonify": "1.0.1", "levn": "0.3.0", "lodash": "4.17.5", @@ -3953,6 +3902,7 @@ "path-is-inside": "1.0.2", "pluralize": "7.0.0", "progress": "2.0.0", + "regexpp": "1.1.0", "require-uncached": "1.0.3", "semver": "5.5.0", "strip-ansi": "4.0.0", @@ -3961,12 +3911,6 @@ "text-table": "0.2.0" }, "dependencies": { - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", @@ -3983,14 +3927,14 @@ } }, "chalk": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", - "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.3.0" + "supports-color": "5.4.0" } }, "debug": { @@ -4009,9 +3953,9 @@ "dev": true }, "globals": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz", - "integrity": "sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw==", + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", "dev": true }, "has-flag": { @@ -4021,9 +3965,9 @@ "dev": true }, "js-yaml": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", - "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { "argparse": "1.0.10", @@ -4040,27 +3984,13 @@ } }, "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" } - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, - "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.3.2", - "lodash": "4.17.5", - "slice-ansi": "1.0.0", - "string-width": "2.1.1" - } } } }, @@ -4100,7 +4030,7 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "4.2.0", + "esrecurse": "4.2.1", "estraverse": "4.2.0" } }, @@ -4116,23 +4046,15 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.5.3", + "acorn": "5.7.1", "acorn-jsx": "3.0.1" - }, - "dependencies": { - "acorn": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", - "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", - "dev": true - } } }, "esprima": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", - "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=", - "optional": true + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true }, "espurify": { "version": "1.7.0", @@ -4144,22 +4066,21 @@ } }, "esquery": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", - "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { "estraverse": "4.2.0" } }, "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "4.2.0" } }, "estraverse": { @@ -4186,12 +4107,12 @@ "dev": true, "requires": { "d": "1.0.0", - "es5-ext": "0.10.38" + "es5-ext": "0.10.45" } }, "event-stream": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", "dev": true, "requires": { @@ -4255,7 +4176,7 @@ "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=", "dev": true, "requires": { - "clone-regexp": "1.0.0" + "clone-regexp": "1.0.1" } }, "exit-hook": { @@ -4282,48 +4203,23 @@ "fill-range": "2.2.3" } }, - "expect": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.0.tgz", - "integrity": "sha512-Fiy862jT3qc70hwIHwwCBNISmaqBrfWKKrtqyMJ6iwZr+6KXtcnHojZFtd63TPRvRl8EQTJ+YXYy2lK6/6u+Hw==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "jest-diff": "22.4.0", - "jest-get-type": "22.1.0", - "jest-matcher-utils": "22.4.0", - "jest-message-util": "22.4.0", - "jest-regex-util": "22.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - } - } - }, "expect-ct": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.1.0.tgz", - "integrity": "sha1-UnNWeN4YUwiQ2Ne5XwrGNkCVgJQ=" + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.1.1.tgz", + "integrity": "sha512-ngXzTfoRGG7fYens3/RMb6yYoVLvLMfmsSllP/mZPxNHgFq41TmPSLF/nLY7fwoclI2vElvAmILFWGUYqdjfCg==" }, "expose-loader": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.4.tgz", - "integrity": "sha512-lweINkewAXcQtNjd7j1gO3cd8O/8lNYijsEwH4YZ+Dv3gT2Kh9/YvJov5Mdp2A75QIhgOvsSyRa/ZG3wYjNZpA==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.5.tgz", + "integrity": "sha512-iPowgKUZkTPX5PznYsmifVj9Bob0w2wTHVkt/eYNPSzyebkUgIedmskf/kcfEIWpiWjg3JRjnW+a17XypySMuw==", "dev": true }, "express": { - "version": "4.16.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", - "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "requires": { - "accepts": "1.3.4", + "accepts": "1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", @@ -4335,35 +4231,52 @@ "encodeurl": "1.0.2", "escape-html": "1.0.3", "etag": "1.8.1", - "finalhandler": "1.1.0", + "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", "methods": "1.1.2", "on-finished": "2.3.0", "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", + "proxy-addr": "2.0.3", "qs": "6.5.1", "range-parser": "1.2.0", "safe-buffer": "5.1.1", - "send": "0.16.1", - "serve-static": "1.13.1", + "send": "0.16.2", + "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.3.1", - "type-is": "1.6.15", + "statuses": "1.4.0", + "type-is": "1.6.16", "utils-merge": "1.0.1", "vary": "1.1.2" }, "dependencies": { + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "2.1.18", + "negotiator": "0.6.1" + } + }, + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "requires": { + "mime-db": "1.33.0" + } + }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" } } }, @@ -4452,40 +4365,334 @@ } }, "extract-zip": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", - "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", "dev": true, "requires": { - "concat-stream": "1.6.0", + "concat-stream": "1.6.2", "debug": "2.6.9", - "mkdirp": "0.5.0", + "mkdirp": "0.5.1", "yauzl": "2.4.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, "fast-deep-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", "dev": true }, + "fast-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz", + "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "@nodelib/fs.stat": "1.1.0", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.2", + "micromatch": "3.1.10" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -4618,24 +4825,17 @@ } }, "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "requires": { "debug": "2.6.9", "encodeurl": "1.0.2", "escape-html": "1.0.3", "on-finished": "2.3.0", "parseurl": "1.3.2", - "statuses": "1.3.1", + "statuses": "1.4.0", "unpipe": "1.0.0" - }, - "dependencies": { - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" - } } }, "find-cache-dir": { @@ -4683,9 +4883,9 @@ "dev": true }, "fluent": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/fluent/-/fluent-0.6.3.tgz", - "integrity": "sha512-NQS729z/Pza0b8LwKAy6IyJNNfZk1pcYoLFvTDXTkRfJEKShDNRRpgB7DS4rsf/iIDBJG6c51XgnOEMXAcEaZg==" + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/fluent/-/fluent-0.6.4.tgz", + "integrity": "sha512-EXfMJmnGbUgaIC1myIzDk5akAF6+1JrI7KVnNCba2ou7WCKc/2CWa8QshfhImVtettOvEs0z0UVdMrS6zX7pxA==" }, "fluent-intl-polyfill": { "version": "0.1.0", @@ -4702,19 +4902,19 @@ "integrity": "sha512-SzRtXNaIcCyRabIpcv+AQd0gn+tXv1wfDDvej3wtBo1/XV0iDnCw5XzbARRRmZMW+IEg+Q26jup6vYgnDam4dg==" }, "flush-write-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", - "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", "dev": true, "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.5" + "readable-stream": "2.3.6" }, "dependencies": { "readable-stream": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", - "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "1.0.2", @@ -4722,14 +4922,14 @@ "isarray": "1.0.0", "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", + "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -4826,13 +5026,13 @@ "dev": true, "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.5" + "readable-stream": "2.3.6" }, "dependencies": { "readable-stream": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", - "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "1.0.2", @@ -4840,14 +5040,14 @@ "isarray": "1.0.0", "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", + "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -5815,9 +6015,9 @@ "dev": true }, "get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", "dev": true }, "get-stream": { @@ -5832,23 +6032,6 @@ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, "ghauth": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ghauth/-/ghauth-3.0.0.tgz", @@ -5864,9 +6047,9 @@ } }, "git-rev-sync": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/git-rev-sync/-/git-rev-sync-1.10.0.tgz", - "integrity": "sha1-6KxP0JZyRJFI/2lOLXxqbuNck6Y=", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/git-rev-sync/-/git-rev-sync-1.12.0.tgz", + "integrity": "sha1-RGhAbH5sO6TPRYeZnhrbKNnRr1U=", "dev": true, "requires": { "escape-string-regexp": "1.0.5", @@ -6004,11 +6187,16 @@ } } }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, "global": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "dev": true, "requires": { "min-document": "2.19.0", "process": "0.5.2" @@ -6064,9 +6252,9 @@ "dev": true }, "growl": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "handle-thing": { @@ -6075,22 +6263,6 @@ "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } - }, "has": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", @@ -6175,18 +6347,19 @@ } }, "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "2.0.3", + "safe-buffer": "5.1.1" } }, "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.4.tgz", + "integrity": "sha512-A6RlQvvZEtFS5fLU43IDu0QUmBy+fDO9VMdTXvufKwIkt/rFfvICAViCax5fbDO4zdNzaC3/27ZhKUok5bAJyw==", "dev": true, "requires": { "inherits": "2.0.3", @@ -6212,13 +6385,13 @@ "dev": true }, "helmet": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.12.0.tgz", - "integrity": "sha512-CgkctpvreQLL6X3EL2Igs/92+75ZFIsrob9/Rdwf2hQCBGH/DxLk4xFPxAAl6jYnnus/YXfFEVXHEJf8TJTwlA==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.12.1.tgz", + "integrity": "sha512-/CsAcbPIHgiGde395IkHUZyRLW126RJ6AtxFy6Y6bxhd44Qq8cZ5BBFZ0xNUSbcgX57j32Emh3OhWz/0XgAB5Q==", "requires": { "dns-prefetch-control": "0.1.0", "dont-sniff-mimetype": "1.0.0", - "expect-ct": "0.1.0", + "expect-ct": "0.1.1", "frameguard": "3.0.0", "helmet-csp": "2.7.0", "hide-powered-by": "1.0.0", @@ -6253,7 +6426,7 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "1.1.3", + "hash.js": "1.1.4", "minimalistic-assert": "1.0.0", "minimalistic-crypto-utils": "1.0.1" } @@ -6334,15 +6507,6 @@ "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", "dev": true }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "dev": true, - "requires": { - "whatwg-encoding": "1.0.3" - } - }, "html-entities": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", @@ -6391,17 +6555,17 @@ "dev": true, "requires": { "domelementtype": "1.3.0", - "domhandler": "2.4.1", + "domhandler": "2.4.2", "domutils": "1.7.0", "entities": "1.1.1", "inherits": "2.0.3", - "readable-stream": "2.3.4" + "readable-stream": "2.3.6" }, "dependencies": { "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "1.0.2", @@ -6409,14 +6573,14 @@ "isarray": "1.0.0", "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", + "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -6586,16 +6750,16 @@ } }, "hyperscript-attribute-to-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hyperscript-attribute-to-property/-/hyperscript-attribute-to-property-1.0.0.tgz", - "integrity": "sha1-glMI1Ju44pV5I/cxmBvMgRytev8=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hyperscript-attribute-to-property/-/hyperscript-attribute-to-property-1.0.1.tgz", + "integrity": "sha512-N++cqwJ58/cTBYh4zUhqnlOEF7GgStWxIqjNHFDHD13fmH7Iah4PksZLcxqmxAwn3loUyXSVGw1NTnRlOTqN5Q==" }, "hyperx": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/hyperx/-/hyperx-2.3.3.tgz", - "integrity": "sha512-EE3FCnKEv+tQSt8yZAsY9bZXknFnsOSw1TWTECrRj+kNd+gt0R/tRHNcoy5uk1F/a7tWd7bjPGQJX/2pfmJglQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/hyperx/-/hyperx-2.4.0.tgz", + "integrity": "sha512-43jbOQfVkm9U0oAyBZ4Vt2eB0hZWS5EyrOhR3ZbgUrcprutGu9s/C476OVFL3QU1iynKO5s9kZsWrZm19gJKjg==", "requires": { - "hyperscript-attribute-to-property": "1.0.0" + "hyperscript-attribute-to-property": "1.0.1" } }, "iconv-lite": { @@ -6615,27 +6779,27 @@ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", "dev": true, "requires": { - "postcss": "6.0.19" + "postcss": "6.0.23" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "has-flag": { @@ -6645,14 +6809,14 @@ "dev": true }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "source-map": { @@ -6662,9 +6826,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -6694,6 +6858,12 @@ "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", "dev": true }, + "import-lazy": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", + "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==", + "dev": true + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -7031,9 +7201,9 @@ "dev": true }, "ipaddr.js": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", - "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", + "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" }, "is": { "version": "0.2.7", @@ -7048,26 +7218,18 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } + "kind-of": "3.2.2" } }, "is-alphabetical": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.1.tgz", - "integrity": "sha1-x3B5zJHU76x3W+EDS/LSQ/lebwg=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.2.tgz", + "integrity": "sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg==", "dev": true }, "is-alphanumeric": { @@ -7077,13 +7239,13 @@ "dev": true }, "is-alphanumerical": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.1.tgz", - "integrity": "sha1-37SqTRCF4zvbYcLe6cgOnGwZ9Ts=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz", + "integrity": "sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg==", "dev": true, "requires": { - "is-alphabetical": "1.0.1", - "is-decimal": "1.0.1" + "is-alphabetical": "1.0.2", + "is-decimal": "1.0.2" } }, "is-arrayish": { @@ -7104,8 +7266,7 @@ "is-boolean-attribute": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/is-boolean-attribute/-/is-boolean-attribute-0.0.1.tgz", - "integrity": "sha1-JKtZt9y52jYSx3PmDGVlZeWgmAw=", - "dev": true + "integrity": "sha1-JKtZt9y52jYSx3PmDGVlZeWgmAw=" }, "is-buffer": { "version": "1.1.6", @@ -7137,20 +7298,12 @@ } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } + "kind-of": "3.2.2" } }, "is-date-object": { @@ -7160,26 +7313,26 @@ "dev": true }, "is-decimal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.1.tgz", - "integrity": "sha1-9ftqlJlq2ejjdh+/vQkfH8qMToI=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.2.tgz", + "integrity": "sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg==", "dev": true }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } @@ -7196,11 +7349,6 @@ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, - "is-electron": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.1.0.tgz", - "integrity": "sha512-dkg5xT383+M6zIbbXW/z7n2nz4SFUi2OSyhntnFYkRdtV+HVEfdjEK+5AWisfYgkpe3WYjTIuh7toaKmSfFVWw==" - }, "is-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", @@ -7237,12 +7385,6 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "is-generator-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", - "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", - "dev": true - }, "is-glob": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", @@ -7253,9 +7395,9 @@ } }, "is-hexadecimal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.1.tgz", - "integrity": "sha1-bghLvJIGH7sJcexYts5tQE4k2mk=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz", + "integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==", "dev": true }, "is-number": { @@ -7280,29 +7422,12 @@ "dev": true }, "is-observable": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", - "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "symbol-observable": "0.2.4" - } - }, - "is-odd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", - "dev": true, - "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } + "symbol-observable": "1.2.0" } }, "is-path-cwd": { @@ -7398,9 +7523,9 @@ "dev": true }, "is-supported-regexp-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz", - "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz", + "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==", "dev": true }, "is-svg": { @@ -7418,12 +7543,6 @@ "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", "dev": true }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -7431,9 +7550,9 @@ "dev": true }, "is-whitespace-character": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.1.tgz", - "integrity": "sha1-muAXbzKCtlRXoZks2whPil+DPjs=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz", + "integrity": "sha512-SzM+T5GKUCtLhlHFKt2SDAX2RFzfS6joT91F2/WSi9LxgFdsnhfPK/UIA+JhRR2xuyLdrCys2PiFDrtn1fU5hQ==", "dev": true }, "is-windows": { @@ -7443,9 +7562,9 @@ "dev": true }, "is-word-character": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.1.tgz", - "integrity": "sha1-WgP6HqkazopusMfNdw64bWXIvvs=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.2.tgz", + "integrity": "sha512-T3FlsX8rCHAH8e7RE7PfOPZVFQlcV3XRF9eOOBQ1uf70OxO7CjjSOjeImMPCADBdYWcStAbVbYvJ1m2D3tb+EA==", "dev": true }, "is-wsl": { @@ -7480,22 +7599,16 @@ "isarray": "1.0.0" } }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, "istanbul-lib-coverage": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.2.tgz", - "integrity": "sha512-tZYA0v5A7qBSsOzcebJJ/z3lk3oSzH62puG78DbBA1+zupipX2CakDyiPV3pOb8He+jBwVimuwB0dTnh38hX0w==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", "dev": true }, "istanbul-lib-instrument": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.2.tgz", - "integrity": "sha512-nz8t4HQ2206a/3AXi+NHFWEa844DMpPsgbcUteJbt1j8LX1xg56H9rOMnhvcvVvPbW60qAIyrSk44H8ZDqaSSA==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "dev": true, "requires": { "babel-generator": "6.26.1", @@ -7503,516 +7616,46 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.2", + "istanbul-lib-coverage": "1.2.0", "semver": "5.5.0" } }, - "jest-config": { - "version": "22.4.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.4.2.tgz", - "integrity": "sha512-oG31qYO73/3vj/Q8aM2RgzmHndTkz9nRk8ISybfuJqqbf0RW7OUjHVOZPLOUiwLWtz52Yq2HkjIblsyhbA7vrg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "glob": "7.1.2", - "jest-environment-jsdom": "22.4.1", - "jest-environment-node": "22.4.1", - "jest-get-type": "22.1.0", - "jest-jasmine2": "22.4.2", - "jest-regex-util": "22.1.0", - "jest-resolve": "22.4.2", - "jest-util": "22.4.1", - "jest-validate": "22.4.2", - "pretty-format": "22.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-diff": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.0.tgz", - "integrity": "sha512-+/t20WmnkOkB8MOaGaPziI8zWKxquMvYw4Ub+wOzi7AUhmpFXz43buWSxVoZo4J5RnCozpGbX3/FssjJ5KV9Nw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "diff": "3.3.1", - "jest-get-type": "22.1.0", - "pretty-format": "22.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "22.4.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.1.tgz", - "integrity": "sha512-x/JzAoH+dWPBnIMv5OQKiIR0TYf6UvbRjsIuDZ11yDFXkHKGJZg6jNnLAsokAm3cq9kUa2hH5BPUC9XU4n1ELQ==", - "dev": true, - "requires": { - "jest-mock": "22.2.0", - "jest-util": "22.4.1", - "jsdom": "11.6.2" - } - }, - "jest-environment-node": { - "version": "22.4.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.1.tgz", - "integrity": "sha512-wj9+zzfRgnUbm5VwFOCGgG1QmbucUyrjPKBKUJdLW8K5Ss5zrNc1k+v6feZhFg6sS3ZGnjgtIyklaxEARxu+LQ==", - "dev": true, - "requires": { - "jest-mock": "22.2.0", - "jest-util": "22.4.1" - } - }, "jest-get-type": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", - "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", + "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==", "dev": true }, - "jest-jasmine2": { - "version": "22.4.2", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.4.2.tgz", - "integrity": "sha512-KZaIHpXQ0AIlvQJFCU0uoXxtz5GG47X14r9upMe7VXE55UazoMZBFnQb9TX2HoYX2/AxJYnjHuvwKVCFqOrEtw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "co": "4.6.0", - "expect": "22.4.0", - "graceful-fs": "4.1.11", - "is-generator-fn": "1.0.0", - "jest-diff": "22.4.0", - "jest-matcher-utils": "22.4.0", - "jest-message-util": "22.4.0", - "jest-snapshot": "22.4.0", - "jest-util": "22.4.1", - "source-map-support": "0.5.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", - "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", - "dev": true, - "requires": { - "source-map": "0.6.1" - } - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-matcher-utils": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.0.tgz", - "integrity": "sha512-03m3issxUXpWMwDYTfmL8hRNewUB0yCRTeXPm+eq058rZxLHD9f5NtSSO98CWHqe4UyISIxd9Ao9iDVjHWd2qg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "jest-get-type": "22.1.0", - "pretty-format": "22.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-message-util": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.0.tgz", - "integrity": "sha512-eyCJB0T3hrlpFF2FqQoIB093OulP+1qvATQmD3IOgJgMGqPL6eYw8TbC5P/VCWPqKhGL51xvjIIhow5eZ2wHFw==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.40", - "chalk": "2.3.1", - "micromatch": "2.3.11", - "slash": "1.0.0", - "stack-utils": "1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-mock": { - "version": "22.2.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-22.2.0.tgz", - "integrity": "sha512-eOfoUYLOB/JlxChOFkh/bzpWGqUXb9I+oOpkprHHs9L7nUNfL8Rk28h1ycWrqzWCEQ/jZBg/xIv7VdQkfAkOhw==", - "dev": true - }, - "jest-regex-util": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.1.0.tgz", - "integrity": "sha512-on0LqVS6Xeh69sw3d1RukVnur+lVOl3zkmb0Q54FHj9wHoq6dbtWqb3TSlnVUyx36hqjJhjgs/QLqs07Bzu72Q==", - "dev": true - }, - "jest-resolve": { - "version": "22.4.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.4.2.tgz", - "integrity": "sha512-P1hSfcc2HJYT5t+WPu/11OfFMa7m8pBb2Gf2vm6W9OVs7YTXQ5RCC3nDqaYZQaTqxEM1ZZaTcQGcE6U2xMOsqQ==", - "dev": true, - "requires": { - "browser-resolve": "1.11.2", - "chalk": "2.3.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-snapshot": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.4.0.tgz", - "integrity": "sha512-6Zz4F9G1Nbr93kfm5h3A2+OkE+WGpgJlskYE4iSNN2uYfoTL5b9W6aB9Orpx+ueReHyqmy7HET7Z3EmYlL3hKw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "jest-diff": "22.4.0", - "jest-matcher-utils": "22.4.0", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "pretty-format": "22.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-util": { - "version": "22.4.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.4.1.tgz", - "integrity": "sha512-9ySBdJY2qVWpg0OvZbGcFXE2NgwccpZVj384E9bx7brKFc7l5anpqah15mseWcz7FLDk7/N+LyYgqFme7Rez2Q==", - "dev": true, - "requires": { - "callsites": "2.0.0", - "chalk": "2.3.1", - "graceful-fs": "4.1.11", - "is-ci": "1.1.0", - "jest-message-util": "22.4.0", - "mkdirp": "0.5.1", - "source-map": "0.6.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, "jest-validate": { - "version": "22.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.2.tgz", - "integrity": "sha512-TLOgc/EULFBjMCAqZp5OdVvjxV16DZpfthd/UyPzM6lRmgWluohNVemAdnL3JvugU1s2Q2npcIqtbOtiPjaZ0A==", + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.2.0.tgz", + "integrity": "sha1-Z8i5CeEa8XAXZSOIlMZ6wykbGV4=", "dev": true, "requires": { - "chalk": "2.3.1", - "jest-config": "22.4.2", - "jest-get-type": "22.1.0", + "chalk": "2.4.1", + "jest-get-type": "22.4.3", "leven": "2.1.0", - "pretty-format": "22.4.0" + "pretty-format": "23.2.0" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "has-flag": { @@ -8022,9 +7665,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -8038,9 +7681,9 @@ "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "js-base64": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", - "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", + "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==", "dev": true }, "js-tokens": { @@ -8057,229 +7700,6 @@ "requires": { "argparse": "1.0.10", "esprima": "2.7.3" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - } - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "jsdom": { - "version": "11.6.2", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.6.2.tgz", - "integrity": "sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q==", - "dev": true, - "requires": { - "abab": "1.0.4", - "acorn": "5.4.1", - "acorn-globals": "4.1.0", - "array-equal": "1.0.0", - "browser-process-hrtime": "0.1.2", - "content-type-parser": "1.0.2", - "cssom": "0.3.2", - "cssstyle": "0.2.37", - "domexception": "1.0.1", - "escodegen": "1.9.0", - "html-encoding-sniffer": "1.0.2", - "left-pad": "1.2.0", - "nwmatcher": "1.4.3", - "parse5": "4.0.0", - "pn": "1.1.0", - "request": "2.83.0", - "request-promise-native": "1.0.5", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.3", - "w3c-hr-time": "1.0.1", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.3", - "whatwg-url": "6.4.0", - "ws": "4.1.0", - "xml-name-validator": "3.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "dev": true, - "requires": { - "hoek": "4.2.1" - } - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "dev": true, - "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "dev": true, - "requires": { - "hoek": "4.2.1" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "dev": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.17" - } - }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "dev": true, - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.1.0" - } - }, - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true - }, - "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "dev": true, - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "dev": true, - "requires": { - "hoek": "4.2.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "ws": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", - "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", - "dev": true, - "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1" - } - } } }, "jsesc": { @@ -8295,15 +7715,9 @@ "dev": true }, "json-parse-better-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", - "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "json-schema-traverse": { @@ -8333,7 +7747,8 @@ "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true }, "jsonfile": { "version": "2.4.0", @@ -8414,26 +7829,6 @@ "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", "dev": true }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, "just-extend": { "version": "1.1.27", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", @@ -8519,12 +7914,6 @@ } } }, - "left-pad": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz", - "integrity": "sha1-0wpzxrggHY99jnlWupYWCHpo4O4=", - "dev": true - }, "leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", @@ -8542,38 +7931,40 @@ } }, "lint-staged": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-7.0.0.tgz", - "integrity": "sha512-6Z89we28Qy1Ez7ZxO8yYfPKqzdxkSjnURq1d3RS2gKkZrA135xN+ptF3EWHrcHyBMmgA20vA7dGCQGj+OMS22g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-7.2.0.tgz", + "integrity": "sha512-jPoIMbmgtWMUrz/l0rhBVa1j6H71zr0rEoxDWBA333PZcaqBvELdg0Sf4tdGHlwrBM0GXaXMVgTRkLTm2vA7Jg==", "dev": true, "requires": { - "app-root-path": "2.0.1", - "chalk": "2.3.1", + "app-root-path": "2.1.0", + "chalk": "2.4.1", "commander": "2.14.1", - "cosmiconfig": "4.0.0", + "cosmiconfig": "5.0.5", "debug": "3.1.0", "dedent": "0.7.0", "execa": "0.9.0", "find-parent-dir": "0.3.0", "is-glob": "4.0.0", - "jest-validate": "22.4.2", - "listr": "0.13.0", + "is-windows": "1.0.2", + "jest-validate": "23.2.0", + "listr": "0.14.1", "lodash": "4.17.5", "log-symbols": "2.2.0", - "micromatch": "3.1.9", + "micromatch": "3.1.10", "npm-which": "3.0.1", "p-map": "1.2.0", "path-is-inside": "1.0.2", "pify": "3.0.0", - "please-upgrade-node": "3.0.1", - "staged-git-files": "1.1.0", + "please-upgrade-node": "3.0.2", + "staged-git-files": "1.1.1", + "string-argv": "0.0.2", "stringify-object": "3.2.2" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" @@ -8592,34 +7983,23 @@ "dev": true }, "braces": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", - "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", - "define-property": "1.0.0", "extend-shallow": "2.0.1", "fill-range": "4.0.0", "isobject": "3.0.1", - "kind-of": "6.0.2", "repeat-element": "1.1.2", - "snapdragon": "0.8.1", + "snapdragon": "0.8.2", "snapdragon-node": "2.1.1", "split-string": "3.1.0", "to-regex": "3.0.2" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -8632,14 +8012,14 @@ } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "debug": { @@ -8662,7 +8042,7 @@ "extend-shallow": "2.0.1", "posix-character-classes": "0.1.1", "regex-not": "1.0.2", - "snapdragon": "0.8.1", + "snapdragon": "0.8.2", "to-regex": "3.0.2" }, "dependencies": { @@ -8693,6 +8073,46 @@ "is-extendable": "0.1.1" } }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -8724,7 +8144,7 @@ "extend-shallow": "2.0.1", "fragment-cache": "0.2.1", "regex-not": "1.0.2", - "snapdragon": "0.8.1", + "snapdragon": "0.8.2", "to-regex": "3.0.2" }, "dependencies": { @@ -8778,43 +8198,32 @@ "dev": true }, "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "kind-of": "6.0.2" } }, "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" } }, "is-number": { @@ -8850,30 +8259,30 @@ "dev": true }, "micromatch": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", - "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", - "braces": "2.3.1", + "braces": "2.3.2", "define-property": "2.0.2", "extend-shallow": "3.0.2", "extglob": "2.0.4", "fragment-cache": "0.2.1", "kind-of": "6.0.2", - "nanomatch": "1.2.9", + "nanomatch": "1.2.13", "object.pick": "1.3.0", "regex-not": "1.0.2", - "snapdragon": "0.8.1", + "snapdragon": "0.8.2", "to-regex": "3.0.2" } }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -8882,16 +8291,16 @@ } }, "listr": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.13.0.tgz", - "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.1.tgz", + "integrity": "sha512-MSMUUVN1f8aRnPi4034RkOqdiUlpYW+FqwFE3aL0uYNPRavkt2S2SsSpDDofn8BDpqv2RNnsdOcCHWsChcq77A==", "dev": true, "requires": { - "chalk": "1.1.3", + "@samverschueren/stream-to-observable": "0.3.0", "cli-truncate": "0.2.1", "figures": "1.7.0", "indent-string": "2.1.0", - "is-observable": "0.2.0", + "is-observable": "1.1.0", "is-promise": "2.1.0", "is-stream": "1.1.0", "listr-silent-renderer": "1.1.1", @@ -8901,8 +8310,7 @@ "log-update": "1.0.2", "ora": "0.2.3", "p-map": "1.2.0", - "rxjs": "5.5.6", - "stream-to-observable": "0.2.0", + "rxjs": "6.2.1", "strip-ansi": "3.0.1" }, "dependencies": { @@ -9009,7 +8417,7 @@ }, "onetime": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, @@ -9026,15 +8434,33 @@ } }, "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + } } }, "loader-runner": { @@ -9086,6 +8512,12 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -9103,12 +8535,6 @@ "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, "lodash.template": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", @@ -9207,7 +8633,7 @@ }, "onetime": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, @@ -9236,9 +8662,9 @@ "dev": true }, "lolex": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.2.tgz", - "integrity": "sha512-A5pN2tkFj7H0dGIAM6MFvHKMJcPnjZsOMvR7ujCjfgW5TbV6H9vb1PgxLtHvjqNZTHsUolz+6/WEO0N1xNx2ng==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.0.tgz", + "integrity": "sha512-uJkH2e0BVfU5KOJUevbTOtpDduooSarH5PopO+LfM/vZf8Z9sJzODqKev804JYM2i++ktJfUmC1le4LwFQ1VMg==", "dev": true }, "longest": { @@ -9275,8 +8701,7 @@ "lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" }, "lru-cache": { "version": "4.1.1", @@ -9288,19 +8713,12 @@ "yallist": "2.1.2" } }, - "macaddress": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", - "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", - "dev": true - }, "magic-string": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.21.3.tgz", - "integrity": "sha1-h+IBAJ6/3m9G3FdXMFpwr3HjFiQ=", - "dev": true, + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", + "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", "requires": { - "vlq": "0.2.3" + "sourcemap-codec": "1.4.1" } }, "make-dir": { @@ -9340,15 +8758,15 @@ } }, "markdown-escapes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.1.tgz", - "integrity": "sha1-GZTfLTr0gR3lmmcUk0wrIpJzRRg=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.2.tgz", + "integrity": "sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA==", "dev": true }, "markdown-table": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.1.tgz", - "integrity": "sha1-Sz3ToTPRUYuO8NvHCb8qG0gkvIw=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.2.tgz", + "integrity": "sha512-NcWuJFHDA8V3wkDgR/j4+gZx+YQwstPgfQDV8ndUeWWzta3dnDTBxpVzqS9lkmJAuV5YX35lmyojl6HO5JXAgw==", "dev": true }, "math-expression-evaluator": { @@ -9358,9 +8776,9 @@ "dev": true }, "mathml-tag-names": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.0.1.tgz", - "integrity": "sha1-jUEmgWi/htEQK5gQnijlMeejRXg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.0.tgz", + "integrity": "sha512-3Zs9P/0zzwTob2pdgT0CHZuMbnSUSp8MB1bddfm+HDmnFWHGT4jvEZRf+2RuPoa+cjdn/z25SEt5gFTqdhvJAg==", "dev": true }, "md5": { @@ -9381,18 +8799,6 @@ "requires": { "hash-base": "3.0.4", "inherits": "2.0.3" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - } } }, "mdast-util-compact": { @@ -9401,8 +8807,8 @@ "integrity": "sha1-zbX4TitqLTEU3zO9BdnLMuPECDo=", "dev": true, "requires": { - "unist-util-modify-children": "1.1.1", - "unist-util-visit": "1.3.0" + "unist-util-modify-children": "1.1.2", + "unist-util-visit": "1.3.1" } }, "mdn-data": { @@ -9468,27 +8874,63 @@ "dev": true }, "meow": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.0.tgz", - "integrity": "sha512-Me/kel335m6vMKmEmA6c87Z6DUFW3JqkINRnxkbC+A/PUm0D5Fl2dEBQrPKnqCL9Te/CIa1MUt/0InMJhuC/sw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", + "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", "dev": true, "requires": { "camelcase-keys": "4.2.0", "decamelize-keys": "1.1.0", "loud-rejection": "1.6.0", - "minimist": "1.2.0", "minimist-options": "3.0.2", "normalize-package-data": "2.4.0", "read-pkg-up": "3.0.0", "redent": "2.0.0", - "trim-newlines": "2.0.0" + "trim-newlines": "2.0.0", + "yargs-parser": "10.1.0" }, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "1.3.1", + "json-parse-better-errors": "1.0.2" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" + } }, "read-pkg-up": { "version": "3.0.0", @@ -9499,6 +8941,15 @@ "find-up": "2.1.0", "read-pkg": "3.0.0" } + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } } } }, @@ -9516,11 +8967,16 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", - "dev": true, "requires": { "source-map": "0.5.7" } }, + "merge2": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", + "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", + "dev": true + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -9591,12 +9047,14 @@ "mime-db": { "version": "1.30.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=", + "dev": true }, "mime-types": { "version": "2.1.17", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "dev": true, "requires": { "mime-db": "1.30.0" } @@ -9611,7 +9069,6 @@ "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, "requires": { "dom-walk": "0.1.1" } @@ -9658,14 +9115,14 @@ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { - "concat-stream": "1.6.0", + "concat-stream": "1.6.2", "duplexify": "3.5.4", "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.2", + "flush-write-stream": "1.0.3", "from2": "2.3.0", "parallel-transform": "1.1.0", "pump": "2.0.1", - "pumpify": "1.4.0", + "pumpify": "1.5.1", "stream-each": "1.2.2", "through2": "2.0.3" } @@ -9700,27 +9157,28 @@ } }, "mocha": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.4.tgz", - "integrity": "sha512-nMOpAPFosU1B4Ix1jdhx5e3q7XO55ic5a8cgYvW27CequcEY+BabS0kUVL1Cw1V5PuVHZWeNRWFLmEPexo79VA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", "dev": true, "requires": { "browser-stdout": "1.3.1", - "commander": "2.11.0", + "commander": "2.15.1", "debug": "3.1.0", "diff": "3.5.0", "escape-string-regexp": "1.0.5", "glob": "7.1.2", - "growl": "1.10.3", + "growl": "1.10.5", "he": "1.1.1", + "minimatch": "3.0.4", "mkdirp": "0.5.1", - "supports-color": "4.4.0" + "supports-color": "5.4.0" }, "dependencies": { "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, "debug": { @@ -9732,25 +9190,19 @@ "ms": "2.0.0" } }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } @@ -9764,7 +9216,8 @@ "moment": { "version": "2.19.3", "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.3.tgz", - "integrity": "sha1-vbmdJw1tf9p4zA+6zoVeJ/59pp8=" + "integrity": "sha1-vbmdJw1tf9p4zA+6zoVeJ/59pp8=", + "dev": true }, "moment-timezone": { "version": "0.5.5", @@ -9837,6 +9290,11 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "mutexify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.2.0.tgz", + "integrity": "sha512-oprzxd2zhfrJqEuB98qc1dRMMonClBQ57UPDjnbcrah4orEMTq1jq3+AcdFe5ePzdbJXI7zmdhfftIdMnhYFoQ==" + }, "nan": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", @@ -9849,29 +9307,80 @@ "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.1.0.tgz", "integrity": "sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40=" }, + "nanobench": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nanobench/-/nanobench-2.1.1.tgz", + "integrity": "sha512-z+Vv7zElcjN+OpzAxAquUayFLGK3JI/ubCl0Oh64YQqsTGG09CGqieJVQw4ui8huDnnAgrvTv93qi5UaOoNj8A==", + "requires": { + "browser-process-hrtime": "0.1.2", + "chalk": "1.1.3", + "mutexify": "1.2.0", + "pretty-hrtime": "1.0.3" + } + }, "nanobus": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/nanobus/-/nanobus-4.3.3.tgz", "integrity": "sha512-4/uzl+LkMGoVv/9eMzH2QFvefmlJErT0KR7EmuYbmht2QvxSEqTjhFFOZ/KHE6chH58fKL3njrOcEwbYV0h9Yw==", "requires": { - "nanotiming": "7.3.0", + "nanotiming": "7.3.1", "remove-array-items": "1.0.0" } }, + "nanocomponent": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/nanocomponent/-/nanocomponent-6.5.2.tgz", + "integrity": "sha512-k/C/Taxno+imoQL6/8tlbMuwvXq4fwjKHphBuZ8Sh/8NiaCBixMWitRZ3uW0Pyz1mrPOHhs6evkKngR1Y8Vi2g==", + "requires": { + "global": "4.3.2", + "nanoassert": "1.1.0", + "nanomorph": "5.1.3", + "nanotiming": "7.3.1", + "on-load": "3.4.1" + } + }, "nanohref": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/nanohref/-/nanohref-3.0.1.tgz", - "integrity": "sha512-YfDhNcglFDIISfKVnXHovDaaglTauD2ThidaTZuyV6NE0lQMvGs5UfSoa1GvX6Nd9p2TfFeYzzc+TtjH+htu+Q==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/nanohref/-/nanohref-3.0.3.tgz", + "integrity": "sha1-GU14Vhwi1z2QBkZKfRJGOWVS9sw=", + "requires": { + "nanoassert": "1.1.0" + } + }, + "nanohtml": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/nanohtml/-/nanohtml-1.2.4.tgz", + "integrity": "sha512-Fr87YV9ANgqkw4rX7+dMrjefVZWHnitkAqr5bliQ/a6/aYY8haruePBXS6lrEerx/VQNY7qWIGR6PPad08czfg==", + "requires": { + "acorn": "5.7.1", + "camel-case": "3.0.0", + "convert-source-map": "1.5.1", + "hyperx": "2.4.0", + "is-boolean-attribute": "0.0.1", + "nanoassert": "1.1.0", + "nanobench": "2.1.1", + "normalize-html-whitespace": "0.2.0", + "through2": "2.0.3", + "transform-ast": "2.4.4" + } }, "nanolocation": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nanolocation/-/nanolocation-1.0.1.tgz", + "integrity": "sha512-9Q+YZ/UQ2T2qyJpe3YWmzc8AGrkFHN5G6T0NYmeMGIovTO/0eFCgEOuobKQAlee2Q/Qw3jbntXWRVvfnzAjQ5Q==", + "requires": { + "nanoassert": "1.1.0" + } + }, + "nanolru": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nanolocation/-/nanolocation-1.0.0.tgz", - "integrity": "sha1-FbXHrwWJXRqfIfDRNkldmURQaGs=" + "resolved": "https://registry.npmjs.org/nanolru/-/nanolru-1.0.0.tgz", + "integrity": "sha512-GyQkE8M32pULhQk7Sko5raoIbPalAk90ICG+An4fq6fCsFHsP6fB2K46WGXVdoJpy4SGMnZ/EKbo123fZJomWg==" }, "nanomatch": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { "arr-diff": "4.0.0", @@ -9879,12 +9388,11 @@ "define-property": "2.0.2", "extend-shallow": "3.0.2", "fragment-cache": "0.2.1", - "is-odd": "2.0.0", "is-windows": "1.0.2", "kind-of": "6.0.2", "object.pick": "1.3.0", "regex-not": "1.0.2", - "snapdragon": "0.8.1", + "snapdragon": "0.8.2", "to-regex": "3.0.2" }, "dependencies": { @@ -9930,27 +9438,29 @@ "integrity": "sha1-q5+5wle5rcxx2CmCy1jY+jUDdko=" }, "nanorouter": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/nanorouter/-/nanorouter-3.0.1.tgz", - "integrity": "sha512-i3PLabdN+Lc7agnJ3dTgQSHy5e5xOyuAeoIvPC0hlLOlFegt95mlg9xFhFC17+PK0A1iP6ev2FCkSMMTVt6zUA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/nanorouter/-/nanorouter-3.1.1.tgz", + "integrity": "sha512-nQ1YRpVzc/0cQA3lG/wCe0ooLtmzLQeIO0VKDRJduVN+KaL5aW5pUDRQDu5EvamiF3lDmbNLYiUkBfjPxOY6fA==", "requires": { - "wayfarer": "6.6.3" + "nanoassert": "1.1.0", + "wayfarer": "6.6.4" } }, "nanoscheduler": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nanoscheduler/-/nanoscheduler-1.0.2.tgz", - "integrity": "sha512-hYNfVK18oB14U/We4smU0XGFwnah9J60TrhiUw5GLFCMgyHb+rhFVQ/ZovIq7UH8nUnXbpfUq6IJqbdjN9JR/w==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/nanoscheduler/-/nanoscheduler-1.0.3.tgz", + "integrity": "sha512-jBbrF3qdU9321r8n9X7yu18DjP31Do2ItJm3mWrt90wJTrnDO+HXpoV7ftaUglAtjgj9s+OaCxGufbvx6pvbEQ==", "requires": { "nanoassert": "1.1.0" } }, "nanotiming": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/nanotiming/-/nanotiming-7.3.0.tgz", - "integrity": "sha512-lNJ8Ch+fI2yIt9tlgO3G/1Md00S23FghTFVYqKnXseIegcRgHg/fEm7Abw8Imakk0fpNGiK9eSSlopnsE61uMw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/nanotiming/-/nanotiming-7.3.1.tgz", + "integrity": "sha512-l3lC7v/PfOuRWQa8vV29Jo6TG10wHtnthLElFXs4Te4Aas57Fo4n1Q8LH9n+NDh9riOzTVvb2QNBhTS4JUKNjw==", "requires": { - "nanoscheduler": "1.0.2" + "nanoassert": "1.1.0", + "nanoscheduler": "1.0.3" } }, "natural-compare": { @@ -9973,15 +9483,33 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, + "neo-async": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", + "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, "nise": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.2.5.tgz", - "integrity": "sha512-Es4hGuq3lpip5PckrB+Qpuma282M0UJANJ+jxAgI+0wWTL9X6MtNv+M385JgqsAE8hv6NvD3lv8CQtXgEnvlpQ==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", + "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { "@sinonjs/formatio": "2.0.0", "just-extend": "1.1.27", - "lolex": "2.3.2", + "lolex": "2.7.0", "path-to-regexp": "1.7.0", "text-encoding": "0.6.4" }, @@ -10007,7 +9535,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, "requires": { "lower-case": "1.1.4" } @@ -10043,14 +9570,14 @@ "process": "0.11.10", "punycode": "1.3.2", "querystring-es3": "0.2.1", - "readable-stream": "2.3.4", + "readable-stream": "2.3.6", "stream-browserify": "2.0.1", - "stream-http": "2.8.0", - "string_decoder": "1.0.3", - "timers-browserify": "2.0.6", + "stream-http": "2.8.3", + "string_decoder": "1.1.1", + "timers-browserify": "2.0.10", "tty-browserify": "0.0.0", "url": "0.11.0", - "util": "0.10.3", + "util": "0.10.4", "vm-browserify": "0.0.4" }, "dependencies": { @@ -10061,9 +9588,9 @@ "dev": true }, "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "1.0.2", @@ -10071,14 +9598,14 @@ "isarray": "1.0.0", "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", + "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -10123,8 +9650,7 @@ "normalize-html-whitespace": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/normalize-html-whitespace/-/normalize-html-whitespace-0.2.0.tgz", - "integrity": "sha1-EBci9kI1Ucdc24+dEE/4UNrx4Q4=", - "dev": true + "integrity": "sha1-EBci9kI1Ucdc24+dEE/4UNrx4Q4=" }, "normalize-package-data": { "version": "2.4.0", @@ -10178,14 +9704,14 @@ } }, "npm-run-all": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.2.tgz", - "integrity": "sha512-Z2aRlajMK4SQ8u19ZA75NZZu7wupfCNQWdYosIi8S6FgBdGf/8Y6Hgyjdc8zU2cYmIRVCx1nM80tJPkdEd+UYg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.3.tgz", + "integrity": "sha512-aOG0N3Eo/WW+q6sUIdzcV2COS8VnTZCmdji0VQIAZF3b+a3YWb0AD0vFIyjKec18A7beLGbaQ5jFTNI2bPt9Cg==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "chalk": "2.3.1", - "cross-spawn": "5.1.0", + "ansi-styles": "3.2.1", + "chalk": "2.4.1", + "cross-spawn": "6.0.5", "memorystream": "0.3.1", "minimatch": "3.0.4", "ps-tree": "1.1.0", @@ -10195,23 +9721,36 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "1.0.4", + "path-key": "2.0.1", + "semver": "5.5.0", + "shebang-command": "1.2.0", + "which": "1.3.0" } }, "has-flag": { @@ -10220,10 +9759,52 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "1.3.1", + "json-parse-better-errors": "1.0.2" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" + } + }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -10326,16 +9907,10 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, - "nwmatcher": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", - "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", - "dev": true - }, "nyc": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.5.0.tgz", - "integrity": "sha512-xIYK189By0YiM5/T4TviHu3J7bV7lCj5WYJfyZK3z03QgAaQ60WcLaJuXf0zhKoI6PBnUR92ZpSwBICCrgSBGg==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", + "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "dev": true, "requires": { "archy": "1.0.0", @@ -10348,22 +9923,22 @@ "find-up": "2.1.0", "foreground-child": "1.5.6", "glob": "7.1.2", - "istanbul-lib-coverage": "1.1.2", + "istanbul-lib-coverage": "1.2.0", "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.9.2", + "istanbul-lib-instrument": "1.10.1", "istanbul-lib-report": "1.1.3", "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.1.4", + "istanbul-reports": "1.4.0", "md5-hex": "1.3.0", "merge-source-map": "1.1.0", - "micromatch": "2.3.11", + "micromatch": "3.1.10", "mkdirp": "0.5.1", "resolve-from": "2.0.0", "rimraf": "2.6.2", "signal-exit": "3.0.2", "spawn-wrap": "1.4.2", - "test-exclude": "4.2.0", - "yargs": "10.1.2", + "test-exclude": "4.2.1", + "yargs": "11.1.0", "yargs-parser": "8.1.0" }, "dependencies": { @@ -10406,20 +9981,22 @@ "dev": true }, "arr-diff": { - "version": "2.0.0", + "version": "4.0.0", "bundled": true, - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } + "dev": true }, "arr-flatten": { "version": "1.1.0", "bundled": true, "dev": true }, + "arr-union": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, "array-unique": { - "version": "0.2.1", + "version": "0.3.2", "bundled": true, "dev": true }, @@ -10428,11 +10005,21 @@ "bundled": true, "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, "async": { "version": "1.5.2", "bundled": true, "dev": true }, + "atob": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, "babel-code-frame": { "version": "6.26.0", "bundled": true, @@ -10453,7 +10040,7 @@ "babel-types": "6.26.0", "detect-indent": "4.0.0", "jsesc": "1.3.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "source-map": "0.5.7", "trim-right": "1.0.1" } @@ -10471,7 +10058,7 @@ "bundled": true, "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.6", "regenerator-runtime": "0.11.1" } }, @@ -10484,7 +10071,7 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "lodash": "4.17.5" + "lodash": "4.17.10" } }, "babel-traverse": { @@ -10499,8 +10086,8 @@ "babylon": "6.18.0", "debug": "2.6.9", "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.5" + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { @@ -10510,7 +10097,7 @@ "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", - "lodash": "4.17.5", + "lodash": "4.17.10", "to-fast-properties": "1.0.3" } }, @@ -10524,6 +10111,66 @@ "bundled": true, "dev": true }, + "base": { + "version": "0.11.2", + "bundled": true, + "dev": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, "brace-expansion": { "version": "1.1.11", "bundled": true, @@ -10534,13 +10181,30 @@ } }, "braces": { - "version": "1.8.5", + "version": "2.3.2", "bundled": true, "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "builtin-modules": { @@ -10548,6 +10212,29 @@ "bundled": true, "dev": true }, + "cache-base": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, "caching-transform": { "version": "1.0.1", "bundled": true, @@ -10586,6 +10273,32 @@ "supports-color": "2.0.0" } }, + "class-utils": { + "version": "0.3.6", + "bundled": true, + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, "cliui": { "version": "2.1.0", "bundled": true, @@ -10610,11 +10323,25 @@ "bundled": true, "dev": true }, + "collection-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, "commondir": { "version": "1.0.1", "bundled": true, "dev": true }, + "component-emitter": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, "concat-map": { "version": "0.0.1", "bundled": true, @@ -10625,8 +10352,13 @@ "bundled": true, "dev": true }, + "copy-descriptor": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, "core-js": { - "version": "2.5.3", + "version": "2.5.6", "bundled": true, "dev": true }, @@ -10635,7 +10367,7 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.3", "which": "1.3.0" } }, @@ -10657,6 +10389,11 @@ "bundled": true, "dev": true }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, "default-require-extensions": { "version": "1.0.0", "bundled": true, @@ -10665,6 +10402,53 @@ "strip-bom": "2.0.0" } }, + "define-property": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, "detect-indent": { "version": "4.0.0", "bundled": true, @@ -10710,7 +10494,7 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.3", "shebang-command": "1.2.0", "which": "1.3.0" } @@ -10718,44 +10502,139 @@ } }, "expand-brackets": { - "version": "0.1.5", + "version": "2.1.4", "bundled": true, "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, - "expand-range": { - "version": "1.8.2", + "extend-shallow": { + "version": "3.0.2", "bundled": true, "dev": true, "requires": { - "fill-range": "2.2.3" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } } }, "extglob": { - "version": "0.3.2", + "version": "2.0.4", "bundled": true, "dev": true, "requires": { - "is-extglob": "1.0.0" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } } }, - "filename-regex": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, "fill-range": { - "version": "2.2.3", + "version": "4.0.0", "bundled": true, "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "find-cache-dir": { @@ -10781,14 +10660,6 @@ "bundled": true, "dev": true }, - "for-own": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, "foreground-child": { "version": "1.5.6", "bundled": true, @@ -10798,6 +10669,14 @@ "signal-exit": "3.0.2" } }, + "fragment-cache": { + "version": "0.2.1", + "bundled": true, + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, "fs.realpath": { "version": "1.0.0", "bundled": true, @@ -10813,6 +10692,11 @@ "bundled": true, "dev": true }, + "get-value": { + "version": "2.0.6", + "bundled": true, + "dev": true + }, "glob": { "version": "7.1.2", "bundled": true, @@ -10826,23 +10710,6 @@ "path-is-absolute": "1.0.1" } }, - "glob-base": { - "version": "0.3.0", - "bundled": true, - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } - }, - "glob-parent": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, "globals": { "version": "9.18.0", "bundled": true, @@ -10887,8 +10754,62 @@ "bundled": true, "dev": true }, + "has-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "hosted-git-info": { - "version": "2.5.0", + "version": "2.6.0", "bundled": true, "dev": true }, @@ -10912,7 +10833,7 @@ "dev": true }, "invariant": { - "version": "2.2.2", + "version": "2.2.4", "bundled": true, "dev": true, "requires": { @@ -10924,6 +10845,14 @@ "bundled": true, "dev": true }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, "is-arrayish": { "version": "0.2.1", "bundled": true, @@ -10942,17 +10871,29 @@ "builtin-modules": "1.1.1" } }, - "is-dotfile": { - "version": "1.0.3", - "bundled": true, - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", + "is-data-descriptor": { + "version": "0.1.4", "bundled": true, "dev": true, "requires": { - "is-primitive": "2.0.0" + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } } }, "is-extendable": { @@ -10960,11 +10901,6 @@ "bundled": true, "dev": true }, - "is-extglob": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, "is-finite": { "version": "1.0.2", "bundled": true, @@ -10978,31 +10914,43 @@ "bundled": true, "dev": true }, - "is-glob": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, "is-number": { - "version": "2.1.0", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" } }, - "is-posix-bracket": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "is-primitive": { + "is-odd": { "version": "2.0.0", "bundled": true, - "dev": true + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "bundled": true, + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } }, "is-stream": { "version": "1.1.0", @@ -11014,6 +10962,11 @@ "bundled": true, "dev": true }, + "is-windows": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, "isarray": { "version": "1.0.0", "bundled": true, @@ -11025,15 +10978,12 @@ "dev": true }, "isobject": { - "version": "2.1.0", + "version": "3.0.1", "bundled": true, - "dev": true, - "requires": { - "isarray": "1.0.0" - } + "dev": true }, "istanbul-lib-coverage": { - "version": "1.1.2", + "version": "1.2.0", "bundled": true, "dev": true }, @@ -11046,7 +10996,7 @@ } }, "istanbul-lib-instrument": { - "version": "1.9.2", + "version": "1.10.1", "bundled": true, "dev": true, "requires": { @@ -11055,7 +11005,7 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.2", + "istanbul-lib-coverage": "1.2.0", "semver": "5.5.0" } }, @@ -11064,7 +11014,7 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.1.2", + "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", "path-parse": "1.0.5", "supports-color": "3.2.3" @@ -11086,7 +11036,7 @@ "dev": true, "requires": { "debug": "3.1.0", - "istanbul-lib-coverage": "1.1.2", + "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", "rimraf": "2.6.2", "source-map": "0.5.7" @@ -11103,7 +11053,7 @@ } }, "istanbul-reports": { - "version": "1.1.4", + "version": "1.4.0", "bundled": true, "dev": true, "requires": { @@ -11171,7 +11121,7 @@ } }, "lodash": { - "version": "4.17.5", + "version": "4.17.10", "bundled": true, "dev": true }, @@ -11189,7 +11139,7 @@ } }, "lru-cache": { - "version": "4.1.1", + "version": "4.1.3", "bundled": true, "dev": true, "requires": { @@ -11197,6 +11147,19 @@ "yallist": "2.1.2" } }, + "map-cache": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, "md5-hex": { "version": "1.3.0", "bundled": true, @@ -11234,23 +11197,30 @@ } }, "micromatch": { - "version": "2.3.11", + "version": "3.1.10", "bundled": true, "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } } }, "mimic-fn": { @@ -11271,6 +11241,25 @@ "bundled": true, "dev": true }, + "mixin-deep": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.1", "bundled": true, @@ -11284,23 +11273,51 @@ "bundled": true, "dev": true }, + "nanomatch": { + "version": "1.2.9", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, "normalize-package-data": { "version": "2.4.0", "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.5.0", + "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", "semver": "5.5.0", - "validate-npm-package-license": "3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { @@ -11321,13 +11338,54 @@ "bundled": true, "dev": true }, - "object.omit": { - "version": "2.0.1", + "object-copy": { + "version": "0.1.0", "bundled": true, "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "object.pick": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } } }, "once": { @@ -11388,17 +11446,6 @@ "bundled": true, "dev": true }, - "parse-glob": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - } - }, "parse-json": { "version": "2.2.0", "bundled": true, @@ -11407,6 +11454,11 @@ "error-ex": "1.3.1" } }, + "pascalcase": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, "path-exists": { "version": "2.1.0", "bundled": true, @@ -11477,8 +11529,8 @@ } } }, - "preserve": { - "version": "0.2.0", + "posix-character-classes": { + "version": "0.1.1", "bundled": true, "dev": true }, @@ -11487,43 +11539,6 @@ "bundled": true, "dev": true }, - "randomatic": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, "read-pkg": { "version": "1.1.0", "bundled": true, @@ -11559,19 +11574,15 @@ "bundled": true, "dev": true }, - "regex-cache": { - "version": "0.4.4", + "regex-not": { + "version": "1.0.2", "bundled": true, "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, "repeat-element": { "version": "1.1.2", "bundled": true, @@ -11605,6 +11616,16 @@ "bundled": true, "dev": true }, + "resolve-url": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "ret": { + "version": "0.1.15", + "bundled": true, + "dev": true + }, "right-align": { "version": "0.1.3", "bundled": true, @@ -11622,6 +11643,14 @@ "glob": "7.1.2" } }, + "safe-regex": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, "semver": { "version": "5.5.0", "bundled": true, @@ -11632,6 +11661,27 @@ "bundled": true, "dev": true }, + "set-value": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, "shebang-command": { "version": "1.2.0", "bundled": true, @@ -11655,11 +11705,125 @@ "bundled": true, "dev": true }, + "snapdragon": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, "source-map": { "version": "0.5.7", "bundled": true, "dev": true }, + "source-map-resolve": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, "spawn-wrap": { "version": "1.4.2", "bundled": true, @@ -11674,23 +11838,60 @@ } }, "spdx-correct": { - "version": "1.0.2", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, - "spdx-expression-parse": { - "version": "1.0.4", + "spdx-exceptions": { + "version": "2.1.0", "bundled": true, "dev": true }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, "spdx-license-ids": { - "version": "1.2.2", + "version": "3.0.0", "bundled": true, "dev": true }, + "split-string": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "static-extend": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, "string-width": { "version": "2.1.1", "bundled": true, @@ -11742,15 +11943,265 @@ "dev": true }, "test-exclude": { - "version": "4.2.0", + "version": "4.2.1", "bundled": true, "dev": true, "requires": { "arrify": "1.0.1", - "micromatch": "2.3.11", + "micromatch": "3.1.10", "object-assign": "4.1.1", "read-pkg-up": "1.0.1", "require-main-filename": "1.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "braces": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + } } }, "to-fast-properties": { @@ -11758,6 +12209,44 @@ "bundled": true, "dev": true }, + "to-object-path": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + } + } + }, "trim-right": { "version": "1.0.1", "bundled": true, @@ -11794,13 +12283,106 @@ "dev": true, "optional": true }, - "validate-npm-package-license": { - "version": "3.0.1", + "union-value": { + "version": "1.0.0", "bundled": true, "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "bundled": true, + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "bundled": true, + "dev": true + }, + "use": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { @@ -11882,11 +12464,11 @@ "dev": true }, "yargs": { - "version": "10.1.2", + "version": "11.1.0", "bundled": true, "dev": true, "requires": { - "cliui": "4.0.0", + "cliui": "4.1.0", "decamelize": "1.2.0", "find-up": "2.1.0", "get-caller-file": "1.0.2", @@ -11897,7 +12479,7 @@ "string-width": "2.1.1", "which-module": "2.0.0", "y18n": "3.2.1", - "yargs-parser": "8.1.0" + "yargs-parser": "9.0.2" }, "dependencies": { "ansi-regex": { @@ -11905,8 +12487,13 @@ "bundled": true, "dev": true }, + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, "cliui": { - "version": "4.0.0", + "version": "4.1.0", "bundled": true, "dev": true, "requires": { @@ -11922,6 +12509,14 @@ "requires": { "ansi-regex": "3.0.0" } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "4.1.0" + } } } }, @@ -11973,43 +12568,6 @@ "requires": { "is-descriptor": "0.1.6" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } } } }, @@ -12111,10 +12669,9 @@ "dev": true }, "on-load": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/on-load/-/on-load-3.3.4.tgz", - "integrity": "sha512-WhwvSW0hZndA7HjN1O3AypgaAahFPTOmJ43bQUTQHsiHhtp9/kk+WlMnd/skqBkWuiNcQqNwKo2ZiwwRWStJIA==", - "dev": true, + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/on-load/-/on-load-3.4.1.tgz", + "integrity": "sha512-Q3v6aurn5Pif4Rk1QZhnH/azZiKZqiroCcRkPlEccwTl4UFomAGFAqZz8XRCGN/KtuX4DwXCn9SB/edSSoV+Hg==", "requires": { "global": "4.3.2", "nanoassert": "1.1.0" @@ -12189,7 +12746,7 @@ }, "onetime": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, @@ -12322,13 +12879,13 @@ "requires": { "cyclist": "0.2.2", "inherits": "2.0.3", - "readable-stream": "2.3.5" + "readable-stream": "2.3.6" }, "dependencies": { "readable-stream": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", - "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "1.0.2", @@ -12336,14 +12893,14 @@ "isarray": "1.0.0", "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", + "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -12361,30 +12918,30 @@ } }, "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", "dev": true, "requires": { "asn1.js": "4.10.1", - "browserify-aes": "1.1.1", - "create-hash": "1.1.3", + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" + "pbkdf2": "3.0.16" } }, "parse-entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.1.tgz", - "integrity": "sha1-gRLYhHExnyerrk1klksSL+ThuJA=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.2.tgz", + "integrity": "sha512-5N9lmQ7tmxfXf+hO3X6KRG6w7uYO/HL9fHalSySTdyn63C3WNvTM/1R8tn1u1larNcEbo3Slcy2bsVDQqvEpUg==", "dev": true, "requires": { - "character-entities": "1.2.1", - "character-entities-legacy": "1.1.1", - "character-reference-invalid": "1.1.1", - "is-alphanumerical": "1.0.1", - "is-decimal": "1.0.1", - "is-hexadecimal": "1.0.1" + "character-entities": "1.2.2", + "character-entities-legacy": "1.1.2", + "character-reference-invalid": "1.1.2", + "is-alphanumerical": "1.0.2", + "is-decimal": "1.0.2", + "is-hexadecimal": "1.0.2" } }, "parse-glob": { @@ -12417,13 +12974,12 @@ } }, "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.1" + "error-ex": "1.3.1" } }, "parse-link-header": { @@ -12447,12 +13003,6 @@ } } }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true - }, "parseurl": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", @@ -12470,6 +13020,12 @@ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", "dev": true }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -12506,12 +13062,22 @@ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "pify": "3.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "pause-stream": { @@ -12524,35 +13090,24 @@ } }, "pbkdf2": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", + "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "dev": true, "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", "safe-buffer": "5.1.1", - "sha.js": "2.4.10" + "sha.js": "2.4.11" } }, - "pelo": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/pelo/-/pelo-0.1.0.tgz", - "integrity": "sha512-+oVixa69fxS/X+3s1DaSJVQLG/ukHfjK2pHCmpIgjRChp73lnAfbqOYZ0MEo5C5yVkYeUJSoWAcRK0lx0hvOjQ==" - }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -12654,10 +13209,13 @@ "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==" }, "please-upgrade-node": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.0.1.tgz", - "integrity": "sha1-CmgfLBiRXlQzpcos2U4Lggangts=", - "dev": true + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.0.2.tgz", + "integrity": "sha512-bslfSeW+ksUbB/sYZeEdKFyTG4YWU9YKRvqfSRvZKE675khAuBUPqV5RUwJZaGuWmVQLweK45Q+lPHFVnSlSug==", + "dev": true, + "requires": { + "semver-compare": "1.0.0" + } }, "pleeease-filters": { "version": "4.0.0", @@ -12729,12 +13287,6 @@ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", "dev": true }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", - "dev": true - }, "portfinder": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", @@ -12767,7 +13319,7 @@ "dev": true, "requires": { "chalk": "1.1.3", - "js-base64": "2.4.3", + "js-base64": "2.4.5", "source-map": "0.5.7", "supports-color": "3.2.3" }, @@ -13910,13 +14462,12 @@ } }, "postcss-filter-plugins": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", + "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", "dev": true, "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" + "postcss": "5.2.18" } }, "postcss-font-family-system-ui": { @@ -14046,14 +14597,12 @@ } }, "postcss-html": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.12.0.tgz", - "integrity": "sha512-KxKUpj7AY7nlCbLcTOYxdfJnGE7QFAfU2n95ADj1Q90RM/pOLdz8k3n4avOyRFs7MDQHcRzJQWM1dehCwJxisQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.28.0.tgz", + "integrity": "sha512-H+ucbGVR+lsZySspOApeQU9yC6Q3t75lwJYa3Im93fKAUt5DScKOSErShC0aC7USdn2jsT1LxubcC5vYu/VJYw==", "dev": true, "requires": { - "htmlparser2": "3.9.2", - "remark": "8.0.0", - "unist-util-find-all-after": "1.0.1" + "htmlparser2": "3.9.2" } }, "postcss-image-set-polyfill": { @@ -14251,9 +14800,9 @@ } }, "postcss-less": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-1.1.3.tgz", - "integrity": "sha512-WS0wsQxRm+kmN8wEYAGZ3t4lnoNfoyx9EJZrhiPR1K0lMHR0UNWnz52Ya5QRXChHtY75Ef+kDc05FpnBujebgw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-2.0.0.tgz", + "integrity": "sha512-pPNsVnpCB13nBMOcl5GVh8JGmB0JGFjqkLUDzKdVpptFFKEe9wFdEzvh2j4lD2AD+7qcrUfw9Ta+oi5+Fw7jjQ==", "dev": true, "requires": { "postcss": "5.2.18" @@ -14292,15 +14841,6 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, "require-from-string": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", @@ -14340,15 +14880,6 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, "require-from-string": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", @@ -14388,15 +14919,6 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, "require-from-string": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", @@ -14406,26 +14928,27 @@ } }, "postcss-loader": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.1.tgz", - "integrity": "sha512-f0J/DWE/hyO9/LH0WHpXkny/ZZ238sSaG3p1SRBtVZnFWUtD7GXIEgHoBg8cnAeRbmEvUxHQptY46zWfwNYj/w==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.5.tgz", + "integrity": "sha512-pV7kB5neJ0/1tZ8L1uGOBNTVBCSCXQoIsZMsrwvO8V2rKGa2tBl/f80GGVxow2jJnRJ2w1ocx693EKhZAb9Isg==", "dev": true, "requires": { "loader-utils": "1.1.0", - "postcss": "6.0.19", + "postcss": "6.0.23", "postcss-load-config": "1.2.0", "schema-utils": "0.4.5" }, "dependencies": { "ajv": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.1.tgz", - "integrity": "sha1-KKarxJOiq+D7TIUHrK7bQ/pVBnE=", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", + "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", "dev": true, "requires": { - "fast-deep-equal": "1.0.0", + "fast-deep-equal": "2.0.1", "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ansi-styles": { @@ -14438,31 +14961,43 @@ } }, "chalk": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", - "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.3.0" + "supports-color": "5.4.0" } }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.3.2", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.3.0" + "supports-color": "5.4.0" } }, "schema-utils": { @@ -14471,7 +15006,7 @@ "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", "dev": true, "requires": { - "ajv": "6.2.1", + "ajv": "6.5.1", "ajv-keywords": "3.1.0" } }, @@ -14482,9 +15017,9 @@ "dev": true }, "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -14492,6 +15027,16 @@ } } }, + "postcss-markdown": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/postcss-markdown/-/postcss-markdown-0.28.0.tgz", + "integrity": "sha512-F0Vc8eHKDKTmensntXpd35LSAoXXtykhPY+IRfn4AnN4m+irav3QawmtSWLhsmbElKna8l1/HObYnbiM/Wok9Q==", + "dev": true, + "requires": { + "remark": "9.0.0", + "unist-util-find-all-after": "1.0.2" + } + }, "postcss-media-minmax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-3.0.0.tgz", @@ -14591,7 +15136,7 @@ "caniuse-api": "1.6.1", "postcss": "5.2.18", "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" + "vendors": "1.0.2" }, "dependencies": { "browserslist": { @@ -14600,7 +15145,7 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000810", + "caniuse-db": "1.0.30000861", "electron-to-chromium": "1.3.33" } } @@ -14663,27 +15208,27 @@ "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", "dev": true, "requires": { - "postcss": "6.0.19" + "postcss": "6.0.23" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "has-flag": { @@ -14693,14 +15238,14 @@ "dev": true }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "source-map": { @@ -14710,9 +15255,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -14727,27 +15272,27 @@ "dev": true, "requires": { "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.19" + "postcss": "6.0.23" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "has-flag": { @@ -14757,14 +15302,14 @@ "dev": true }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "source-map": { @@ -14774,9 +15319,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -14791,27 +15336,27 @@ "dev": true, "requires": { "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.19" + "postcss": "6.0.23" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "has-flag": { @@ -14821,14 +15366,14 @@ "dev": true }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "source-map": { @@ -14838,9 +15383,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -14855,27 +15400,27 @@ "dev": true, "requires": { "icss-replace-symbols": "1.1.0", - "postcss": "6.0.19" + "postcss": "6.0.23" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "has-flag": { @@ -14885,14 +15430,14 @@ "dev": true }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "source-map": { @@ -14902,9 +15447,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -15232,30 +15777,30 @@ "integrity": "sha512-rBkDbaHAu5uywbCR2XE8a25tats3xSOsGNx6mppK6Q9kSFGKc/FyAzfci+fWM2l+K402p1D0pNcfDGxeje5IKg==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "lodash": "4.17.5", "log-symbols": "2.2.0", - "postcss": "6.0.19" + "postcss": "6.0.23" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "has-flag": { @@ -15265,14 +15810,14 @@ "dev": true }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "source-map": { @@ -15282,9 +15827,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -15304,27 +15849,27 @@ "integrity": "sha1-t1Pv9sfArqXoN1++TN6L+QY/8UI=", "dev": true, "requires": { - "postcss": "6.0.19" + "postcss": "6.0.23" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "has-flag": { @@ -15334,14 +15879,14 @@ "dev": true }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "source-map": { @@ -15351,9 +15896,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -15362,33 +15907,33 @@ } }, "postcss-sass": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.3.0.tgz", - "integrity": "sha512-nZJEFS2bT007CmzMjlZfZwcZKpSJ/JeFiVEdgrgvGZtAnORU+5BvN0cioNuDAVxwXHXp3hksCJzbZYPWkuw41Q==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.3.2.tgz", + "integrity": "sha512-0HgxikiZ07VKYr98KT+k7/rAzyMgZlP+3+R8vUti56T2dPdhW0OhPGDQzddxY/N2iDtBVZQqCHRDA09j5I6EWg==", "dev": true, "requires": { "gonzales-pe": "4.2.3", - "postcss": "6.0.19" + "postcss": "6.0.22" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "has-flag": { @@ -15398,14 +15943,14 @@ "dev": true }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", + "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "source-map": { @@ -15415,9 +15960,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -15426,32 +15971,32 @@ } }, "postcss-scss": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-1.0.4.tgz", - "integrity": "sha512-IFj42Hz2cBHHFvZTqkJqU08JCCM/MZU5/uNkTUZBaBFP2d4C5unw4HyCL52RfCwJb6KoVUD3eoepxMh1dfBFCQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-1.0.6.tgz", + "integrity": "sha512-4EFYGHcEw+H3E06PT/pQQri06u/1VIIPjeJQaM8skB80vZuXMhp4cSNV5azmdNkontnOID/XYWEvEEELLFB1ww==", "dev": true, "requires": { - "postcss": "6.0.19" + "postcss": "6.0.23" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "has-flag": { @@ -15461,14 +16006,14 @@ "dev": true }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "source-map": { @@ -15478,9 +16023,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -15687,6 +16232,12 @@ } } }, + "postcss-syntax": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.28.0.tgz", + "integrity": "sha512-9W3T1fSE9QWKyW6s84kZapv0BP5uvj7mNBp34kwI93uGWULzZjaKv4xR4phubBD53cRgaM/qnvquVK1KLsl+Kg==", + "dev": true + }, "postcss-unique-selectors": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", @@ -15734,19 +16285,19 @@ "dev": true }, "prettier": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", - "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.7.tgz", + "integrity": "sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==", "dev": true }, "pretty-format": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", - "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", + "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", "dev": true, "requires": { "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" + "ansi-styles": "3.2.1" }, "dependencies": { "ansi-regex": { @@ -15756,9 +16307,9 @@ "dev": true }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" @@ -15766,6 +16317,11 @@ } } }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -15775,8 +16331,7 @@ "process": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", - "dev": true + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" }, "process-nextick-args": { "version": "2.0.0", @@ -15796,12 +16351,12 @@ "dev": true }, "proxy-addr": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", - "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", + "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "requires": { "forwarded": "0.1.2", - "ipaddr.js": "1.5.2" + "ipaddr.js": "1.6.0" } }, "proxy-from-env": { @@ -15851,15 +16406,15 @@ "dev": true }, "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", + "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", "dev": true, "requires": { "bn.js": "4.11.8", "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", + "create-hash": "1.2.0", + "parse-asn1": "5.1.1", "randombytes": "2.0.6" } }, @@ -15874,14 +16429,52 @@ } }, "pumpify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", - "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "duplexify": "3.5.4", + "duplexify": "3.6.0", "inherits": "2.0.3", "pump": "2.0.1" + }, + "dependencies": { + "duplexify": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "dev": true, + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } } }, "punycode": { @@ -15890,31 +16483,45 @@ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" }, "puppeteer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.1.1.tgz", - "integrity": "sha1-rb8l5J9e8DRDwQq44JqVTKDHv+4=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.5.0.tgz", + "integrity": "sha512-eELwFtFxL+uhmg4jPZOZXzSrPEYy4CaYQNbcchBbfxY+KjMpnv6XGf/aYWaQG49OTpfi2/DMziXtDM8XuJgoUA==", "dev": true, "requires": { - "debug": "2.6.9", - "extract-zip": "1.6.6", - "https-proxy-agent": "2.1.1", - "mime": "1.4.1", + "debug": "3.1.0", + "extract-zip": "1.6.7", + "https-proxy-agent": "2.2.1", + "mime": "2.3.1", "progress": "2.0.0", "proxy-from-env": "1.0.0", "rimraf": "2.6.2", - "ws": "3.3.3" + "ws": "5.2.0" }, "dependencies": { - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1", - "ultron": "1.1.1" + "ms": "2.0.0" } + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "dev": true, + "requires": { + "agent-base": "4.2.0", + "debug": "3.1.0" + } + }, + "mime": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "dev": true } } }, @@ -16019,9 +16626,9 @@ } }, "randomfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", - "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { "randombytes": "2.0.6", @@ -16034,22 +16641,17 @@ "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, "raven": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raven/-/raven-2.4.2.tgz", - "integrity": "sha1-ASnircMHiGRv1TC2fQioziXU9tw=", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/raven/-/raven-2.6.3.tgz", + "integrity": "sha512-bKre7qlDW+y1+G2bUtCuntdDYc8o5v1T233t0vmJfbj8ttGOgLrGRlYB8saelVMW9KUAJNLrhFkAKOwFWFJonw==", "requires": { "cookie": "0.3.1", "md5": "2.2.1", - "stack-trace": "0.0.9", + "stack-trace": "0.0.10", "timed-out": "4.0.1", "uuid": "3.0.0" }, "dependencies": { - "stack-trace": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" - }, "uuid": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz", @@ -16058,9 +16660,9 @@ } }, "raven-js": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/raven-js/-/raven-js-3.23.1.tgz", - "integrity": "sha512-cfkGRgz1TkFmEM5ahPWkIEav2+3zr32qMaBvKizzxN7fZapLbCrxMHMLDn7LSVGN0+dyPKY18imv3i0dkLRoKg==", + "version": "3.26.3", + "resolved": "https://registry.npmjs.org/raven-js/-/raven-js-3.26.3.tgz", + "integrity": "sha512-VPAsPfK73A9VPcJx5X/kt0GxOqUGpGDM8vdzsYNQXMhYemyZGiW1JX1AI+f4jxm37Apijj6VVtCyJcYFz3ocSQ==", "dev": true }, "raw-body": { @@ -16101,14 +16703,14 @@ } }, "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "4.0.0", + "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -16275,15 +16877,6 @@ } } }, - "redeyed": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", - "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", - "optional": true, - "requires": { - "esprima": "3.0.0" - } - }, "redis": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz", @@ -16392,6 +16985,12 @@ "safe-regex": "1.1.0" } }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true + }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -16433,58 +17032,58 @@ "dev": true }, "remark": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-8.0.0.tgz", - "integrity": "sha512-K0PTsaZvJlXTl9DN6qYlvjTkqSZBFELhROZMrblm2rB+085flN84nz4g/BscKRMqDvhzlK1oQ/xnWQumdeNZYw==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-9.0.0.tgz", + "integrity": "sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==", "dev": true, "requires": { - "remark-parse": "4.0.0", - "remark-stringify": "4.0.0", - "unified": "6.1.6" + "remark-parse": "5.0.0", + "remark-stringify": "5.0.0", + "unified": "6.2.0" } }, "remark-parse": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-4.0.0.tgz", - "integrity": "sha512-XZgICP2gJ1MHU7+vQaRM+VA9HEL3X253uwUM/BGgx3iv6TH2B3bF3B8q00DKcyP9YrJV+/7WOWEWBFF/u8cIsw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", + "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", "dev": true, "requires": { - "collapse-white-space": "1.0.3", - "is-alphabetical": "1.0.1", - "is-decimal": "1.0.1", - "is-whitespace-character": "1.0.1", - "is-word-character": "1.0.1", - "markdown-escapes": "1.0.1", - "parse-entities": "1.1.1", + "collapse-white-space": "1.0.4", + "is-alphabetical": "1.0.2", + "is-decimal": "1.0.2", + "is-whitespace-character": "1.0.2", + "is-word-character": "1.0.2", + "markdown-escapes": "1.0.2", + "parse-entities": "1.1.2", "repeat-string": "1.6.1", - "state-toggle": "1.0.0", + "state-toggle": "1.0.1", "trim": "0.0.1", - "trim-trailing-lines": "1.1.0", - "unherit": "1.1.0", - "unist-util-remove-position": "1.1.1", - "vfile-location": "2.0.2", + "trim-trailing-lines": "1.1.1", + "unherit": "1.1.1", + "unist-util-remove-position": "1.1.2", + "vfile-location": "2.0.3", "xtend": "4.0.1" } }, "remark-stringify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-4.0.0.tgz", - "integrity": "sha512-xLuyKTnuQer3ke9hkU38SUYLiTmS078QOnoFavztmbt/pAJtNSkNtFgR0U//uCcmG0qnyxao+PDuatQav46F1w==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-5.0.0.tgz", + "integrity": "sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w==", "dev": true, "requires": { - "ccount": "1.0.2", + "ccount": "1.0.3", "is-alphanumeric": "1.0.0", - "is-decimal": "1.0.1", - "is-whitespace-character": "1.0.1", + "is-decimal": "1.0.2", + "is-whitespace-character": "1.0.2", "longest-streak": "2.0.2", - "markdown-escapes": "1.0.1", - "markdown-table": "1.1.1", + "markdown-escapes": "1.0.2", + "markdown-table": "1.1.2", "mdast-util-compact": "1.0.1", - "parse-entities": "1.1.1", + "parse-entities": "1.1.2", "repeat-string": "1.6.1", - "state-toggle": "1.0.0", - "stringify-entities": "1.3.1", - "unherit": "1.1.0", + "state-toggle": "1.0.1", + "stringify-entities": "1.3.2", + "unherit": "1.1.1", "xtend": "4.0.1" } }, @@ -16566,26 +17165,6 @@ } } }, - "request-promise-core": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", - "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", - "dev": true, - "requires": { - "lodash": "4.17.5" - } - }, - "request-promise-native": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", - "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", - "dev": true, - "requires": { - "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.3" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -16593,9 +17172,9 @@ "dev": true }, "require-from-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.1.tgz", - "integrity": "sha1-xUUjPp19pmFunVmt+zn8n1iGdv8=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, "require-main-filename": { @@ -16688,12 +17267,12 @@ } }, "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "requires": { - "hash-base": "2.0.2", + "hash-base": "3.0.4", "inherits": "2.0.3" } }, @@ -16731,20 +17310,12 @@ } }, "rxjs": { - "version": "5.5.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.6.tgz", - "integrity": "sha512-v4Q5HDC0FHAQ7zcBX7T2IL6O5ltl1a2GX4ENjPXg6SjDY69Cmx9v4113C99a4wGF16ClPv5Z8mghuYorVkg/kg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", + "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", "dev": true, "requires": { - "symbol-observable": "1.0.1" - }, - "dependencies": { - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true - } + "tslib": "1.9.3" } }, "safe-buffer": { @@ -16807,10 +17378,16 @@ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, "send": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", - "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "requires": { "debug": "2.6.9", "depd": "1.1.2", @@ -16824,20 +17401,13 @@ "ms": "2.0.0", "on-finished": "2.3.0", "range-parser": "1.2.0", - "statuses": "1.3.1" - }, - "dependencies": { - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" - } + "statuses": "1.4.0" } }, "serialize-javascript": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz", - "integrity": "sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", "dev": true }, "serve-index": { @@ -16856,14 +17426,14 @@ } }, "serve-static": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", - "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "requires": { "encodeurl": "1.0.2", "escape-html": "1.0.3", "parseurl": "1.3.2", - "send": "0.16.1" + "send": "0.16.2" } }, "set-blocking": { @@ -16872,15 +17442,6 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "set-getter": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", - "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", - "dev": true, - "requires": { - "to-object-path": "0.3.0" - } - }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", @@ -16922,9 +17483,9 @@ "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" }, "sha.js": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz", - "integrity": "sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==", + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { "inherits": "2.0.3", @@ -16993,17 +17554,17 @@ } }, "sinon": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.4.2.tgz", - "integrity": "sha512-cpOHpnRyY3Dk9dTHBYMfVBB0HUCSKIpxW07X6OGW2NiYPovs4AkcL8Q8MzecbAROjbfRA9esJCmlZgikxDz7DA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.5.0.tgz", + "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { "@sinonjs/formatio": "2.0.0", - "diff": "3.3.1", + "diff": "3.5.0", "lodash.get": "4.4.2", - "lolex": "2.3.2", - "nise": "1.2.5", - "supports-color": "5.2.0", + "lolex": "2.7.0", + "nise": "1.4.2", + "supports-color": "5.4.0", "type-detect": "4.0.8" }, "dependencies": { @@ -17014,9 +17575,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -17040,9 +17601,9 @@ } }, "snapdragon": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", - "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { "base": "0.11.2", @@ -17051,8 +17612,8 @@ "extend-shallow": "2.0.1", "map-cache": "0.2.2", "source-map": "0.5.7", - "source-map-resolve": "0.5.1", - "use": "2.0.2" + "source-map-resolve": "0.5.2", + "use": "3.1.0" }, "dependencies": { "define-property": { @@ -17072,63 +17633,6 @@ "requires": { "is-extendable": "0.1.1" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -17152,11 +17656,46 @@ "is-descriptor": "1.0.2" } }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, @@ -17247,16 +17786,15 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.0.3", + "atob": "2.1.1", "decode-uri-component": "0.2.0", "resolve-url": "0.2.1", "source-map-url": "0.4.0", @@ -17278,6 +17816,11 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "sourcemap-codec": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.1.tgz", + "integrity": "sha512-hX1eNBNuilj8yfFnECh0DzLgwKpBLMIvmhgEhixXNui8lMLBInTI8Kyxt++RwJnMNu7cAUo635L2+N1TxMJCzA==" + }, "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", @@ -17423,40 +17966,10 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", - "dev": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, "ssri": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.2.4.tgz", - "integrity": "sha512-UnEAgMZa15973iH7cUi0AHjJn1ACDIkaMyZILoqwN6yzt+4P81I8tBc5Hl+qwi5auMplZtPQsHrPBR5vJLcQtQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -17473,22 +17986,16 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, - "stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", - "dev": true - }, "staged-git-files": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.0.tgz", - "integrity": "sha1-GpuxMcGIVgECPHqt3T1UwiFCxSY=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.1.tgz", + "integrity": "sha512-H89UNKr1rQJvI1c/PIR3kiAMBV23yvR7LItZiV74HWZwzt7f3YHuujJ9nJZlt58WlFox7XQsOahexwk7nTe69A==", "dev": true }, "state-toggle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.0.tgz", - "integrity": "sha1-0g+aYWu08MO5i5GSLSW2QKorxCU=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.1.tgz", + "integrity": "sha512-Qe8QntFrrpWTnHwvwj2FZTgv+PKIsp0B9VxLzLLbSpPXWOgRgc5LVj/aTiSfK1RqIeF9jeC1UeOH8Q8y60A7og==", "dev": true }, "static-extend": { @@ -17509,63 +18016,6 @@ "requires": { "is-descriptor": "0.1.6" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -17574,12 +18024,6 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, "stream-browserify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", @@ -17587,13 +18031,13 @@ "dev": true, "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.4" + "readable-stream": "2.3.6" }, "dependencies": { "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "1.0.2", @@ -17601,14 +18045,14 @@ "isarray": "1.0.0", "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", + "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -17636,22 +18080,22 @@ } }, "stream-http": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", - "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "requires": { "builtin-status-codes": "3.0.0", "inherits": "2.0.3", - "readable-stream": "2.3.4", + "readable-stream": "2.3.6", "to-arraybuffer": "1.0.1", "xtend": "4.0.1" }, "dependencies": { "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "1.0.2", @@ -17659,14 +18103,14 @@ "isarray": "1.0.0", "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", + "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "5.1.1" @@ -17679,15 +18123,6 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, - "stream-to-observable": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.2.0.tgz", - "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=", - "dev": true, - "requires": { - "any-observable": "0.2.0" - } - }, "strftime": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/strftime/-/strftime-0.10.0.tgz", @@ -17699,6 +18134,12 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, + "string-argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz", + "integrity": "sha1-2sMECGkMIfPDYwo/86BYd73L1zY=", + "dev": true + }, "string-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", @@ -17750,15 +18191,15 @@ "dev": true }, "stringify-entities": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.1.tgz", - "integrity": "sha1-sVDsLXKsTBtfMktR+2soyc3/BYw=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", + "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", "dev": true, "requires": { - "character-entities-html4": "1.1.1", - "character-entities-legacy": "1.1.1", - "is-alphanumerical": "1.0.1", - "is-hexadecimal": "1.0.1" + "character-entities-html4": "1.1.2", + "character-entities-legacy": "1.1.2", + "is-alphanumerical": "1.0.2", + "is-hexadecimal": "1.0.2" } }, "stringify-object": { @@ -17772,12 +18213,6 @@ "is-regexp": "1.0.0" } }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -17817,42 +18252,45 @@ "dev": true }, "stylelint": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-9.1.1.tgz", - "integrity": "sha512-BYhAUd8ZiMcRx9cgVOWhckiixK93zXfYB2IwBZxcH+sFE7fp2nvs6xbx97P/wa3obhRLVukrIOH/1BHiukcuOQ==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-9.3.0.tgz", + "integrity": "sha512-u59pWTlrdwjqriJtTvO1a0wRK1mfbQQp7jLt27SX4zl2HmtVHOM/I1wd43xHTvUJZDKp1PTOpqRAamU3gFvmOA==", "dev": true, "requires": { - "autoprefixer": "8.0.0", + "autoprefixer": "8.6.4", "balanced-match": "1.0.0", - "chalk": "2.3.1", - "cosmiconfig": "4.0.0", + "chalk": "2.4.1", + "cosmiconfig": "5.0.5", "debug": "3.1.0", "execall": "1.0.0", "file-entry-cache": "2.0.0", - "get-stdin": "5.0.1", - "globby": "7.1.1", + "get-stdin": "6.0.0", + "globby": "8.0.1", "globjoin": "0.1.4", "html-tags": "2.0.0", "ignore": "3.3.7", + "import-lazy": "3.1.0", "imurmurhash": "0.1.4", "known-css-properties": "0.6.1", "lodash": "4.17.5", "log-symbols": "2.2.0", - "mathml-tag-names": "2.0.1", - "meow": "4.0.0", + "mathml-tag-names": "2.1.0", + "meow": "5.0.0", "micromatch": "2.3.11", "normalize-selector": "0.2.0", "pify": "3.0.0", - "postcss": "6.0.19", - "postcss-html": "0.12.0", - "postcss-less": "1.1.3", + "postcss": "6.0.23", + "postcss-html": "0.28.0", + "postcss-less": "2.0.0", + "postcss-markdown": "0.28.0", "postcss-media-query-parser": "0.2.3", "postcss-reporter": "5.0.0", "postcss-resolve-nested-selector": "0.1.1", "postcss-safe-parser": "3.0.1", - "postcss-sass": "0.3.0", - "postcss-scss": "1.0.4", + "postcss-sass": "0.3.2", + "postcss-scss": "1.0.6", "postcss-selector-parser": "3.1.1", + "postcss-syntax": "0.28.0", "postcss-value-parser": "3.3.0", "resolve-from": "4.0.0", "signal-exit": "3.0.2", @@ -17861,59 +18299,57 @@ "style-search": "0.1.0", "sugarss": "1.0.1", "svg-tags": "1.0.0", - "table": "4.0.3" + "table": "4.0.2" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "autoprefixer": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.0.0.tgz", - "integrity": "sha512-XBEqAoESCyGu3daYmWcTC37Dwmjvs0y40UtUO3MMX+Pd/w7jwNFfUKNtxoMFu0u0wcotP+arDpU3JVH54UV79Q==", + "version": "8.6.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.4.tgz", + "integrity": "sha512-9D0OoxWCqq9Okp9wD+igaCf6ZaNjYNFSCKxgMLAxAGqXwpapaZ+D0PBv265VHQLgam8a7gld4E6KgJJM6SKfQQ==", "dev": true, "requires": { - "browserslist": "3.1.1", - "caniuse-lite": "1.0.30000808", + "browserslist": "3.2.8", + "caniuse-lite": "1.0.30000861", "normalize-range": "0.1.2", "num2fraction": "1.2.2", - "postcss": "6.0.19", + "postcss": "6.0.23", "postcss-value-parser": "3.3.0" } }, "browserslist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.1.1.tgz", - "integrity": "sha512-zHGaPnTt70ywm+glR7uMJFZSl+ADGO67SgD2ae20L+Y3KJUeH4fVa89OkTqKCqAnXFE9mO4LTHBKBqKRlr7VNw==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000810", - "electron-to-chromium": "1.3.33" - }, - "dependencies": { - "caniuse-lite": { - "version": "1.0.30000810", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000810.tgz", - "integrity": "sha512-/0Q00Oie9C72P8zQHtFvzmkrMC3oOFUnMWjCy5F2+BE8lzICm91hQPhh0+XIsAFPKOe2Dh3pKgbRmU3EKxfldA==", - "dev": true - } + "caniuse-lite": "1.0.30000861", + "electron-to-chromium": "1.3.50" } }, + "caniuse-lite": { + "version": "1.0.30000861", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000861.tgz", + "integrity": "sha512-aeEQ4kyd41qCl8XFbCjWgVBI3EOd66M9sC43MFn0kuD/vcrNqvoIAlKon4xdp8yMCYvVjdCltI3lgArj8I6cNA==", + "dev": true + }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "debug": { @@ -17925,6 +18361,27 @@ "ms": "2.0.0" } }, + "electron-to-chromium": { + "version": "1.3.50", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.50.tgz", + "integrity": "sha1-dDi3b5K0G5GfP73TUPvQdX2s3fc=", + "dev": true + }, + "globby": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "dev": true, + "requires": { + "array-union": "1.0.2", + "dir-glob": "2.0.0", + "fast-glob": "2.2.2", + "glob": "7.1.2", + "ignore": "3.3.7", + "pify": "3.0.0", + "slash": "1.0.0" + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -17932,14 +18389,14 @@ "dev": true }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "postcss-selector-parser": { @@ -17966,9 +18423,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -18062,27 +18519,27 @@ "integrity": "sha512-3qgLZytikQQEVn1/FrhY7B68gPUUGY3R1Q1vTiD5xT+Ti1DP/8iZuwFet9ONs5+bmL8pZoDQ6JrQHVgrNlK6mA==", "dev": true, "requires": { - "postcss": "6.0.19" + "postcss": "6.0.23" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "has-flag": { @@ -18092,14 +18549,14 @@ "dev": true }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "source-map": { @@ -18109,9 +18566,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -18191,60 +18648,49 @@ "integrity": "sha1-tvmpANSWpX8CQI8iGYwQndoGMEE=" }, "symbol-observable": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", - "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", - "dev": true - }, - "symbol-tree": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", "dev": true }, "table": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", - "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "6.1.1", - "ajv-keywords": "3.1.0", - "chalk": "2.3.1", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.1", "lodash": "4.17.5", "slice-ansi": "1.0.0", "string-width": "2.1.1" }, "dependencies": { - "ajv": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.1.1.tgz", - "integrity": "sha1-l41Zf7wrfQ5aXD3esUmmgvKr+g4=", - "dev": true, - "requires": { - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "has-flag": { @@ -18254,9 +18700,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -18271,18 +18717,210 @@ "dev": true }, "test-exclude": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.0.tgz", - "integrity": "sha512-8hMFzjxbPv6xSlwGhXSvOMJ/vTy3bkng+2pxmf6E1z6VF7I9nIyNfvHtaw+NBPgvz647gADBbMSbwLfZYppT/w==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "dev": true, "requires": { "arrify": "1.0.1", - "micromatch": "2.3.11", + "micromatch": "3.1.10", "object-assign": "4.1.1", "read-pkg-up": "1.0.1", "require-main-filename": "1.0.1" }, "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -18293,26 +18931,86 @@ "pinkie-promise": "2.0.1" } }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "kind-of": "6.0.2" } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "error-ex": "1.3.1" + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "path-exists": { @@ -18324,34 +19022,6 @@ "pinkie-promise": "2.0.1" } }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, "read-pkg-up": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", @@ -18361,15 +19031,6 @@ "find-up": "1.1.2", "read-pkg": "1.1.0" } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } } } }, @@ -18394,38 +19055,36 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true }, "through2": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, "requires": { - "readable-stream": "2.3.4", + "readable-stream": "2.3.6", "xtend": "4.0.1" }, "dependencies": { "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", "isarray": "1.0.0", "process-nextick-args": "2.0.0", "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", + "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "5.1.1" } @@ -18450,9 +19109,9 @@ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "timers-browserify": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz", - "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", "dev": true, "requires": { "setimmediate": "1.0.5" @@ -18521,51 +19180,25 @@ } } }, - "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", - "dev": true, - "requires": { - "punycode": "1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true - } - } - }, "transform-ast": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.3.0.tgz", - "integrity": "sha512-/W08Nystm018XAPImV9TUhK50E5XIlE05V+WNuGugeXQ8C9Gm+Z1MT88qh8EVQIb4gEIwW0aaS2aChVgEdMVgA==", - "dev": true, + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", + "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", "requires": { - "acorn-node": "1.3.0", + "acorn-node": "1.5.2", "convert-source-map": "1.5.1", - "is-buffer": "1.1.6", - "magic-string": "0.21.3", - "merge-source-map": "1.0.4" + "dash-ast": "1.0.0", + "is-buffer": "2.0.3", + "magic-string": "0.23.2", + "merge-source-map": "1.0.4", + "nanobench": "2.1.1" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" + } } }, "trim": { @@ -18587,15 +19220,21 @@ "dev": true }, "trim-trailing-lines": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.0.tgz", - "integrity": "sha1-eu+7eAjfnWafbaLkOMrIxGradoQ=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz", + "integrity": "sha512-bWLv9BbWbbd7mlqqs2oQYnLD/U/ZqeJeJwbO0FG2zA1aTq+HTvxfHNKFa/HGCVyJpDiioUYaBhfiT6rgk+l4mg==", "dev": true }, "trough": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.1.tgz", - "integrity": "sha1-qf2LA5Swro//guBjOgo2zK1bX4Y=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.2.tgz", + "integrity": "sha512-FHkoUZvG6Egrv9XZAyYGKEyb1JMsFphgPjoczkZC2y6W93U1jswcVURB8MUvtsahEPEVACyxD47JAL63vF4JsQ==", + "dev": true + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", "dev": true }, "tty-browserify": { @@ -18610,13 +19249,6 @@ "integrity": "sha1-rWgbaPUyGtKCfEz7G31d8s/pQu4=", "dev": true }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -18633,12 +19265,27 @@ "dev": true }, "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.17" + "mime-types": "2.1.18" + }, + "dependencies": { + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "requires": { + "mime-db": "1.33.0" + } + } } }, "typedarray": { @@ -18766,9 +19413,9 @@ "dev": true }, "unherit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.0.tgz", - "integrity": "sha1-a5qu379z3xdWrZ4xbdmBiFhAzX0=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.1.tgz", + "integrity": "sha512-+XZuV691Cn4zHsK0vkKYwBEwB74T3IZIcxrgn2E4rKwTfFyI1zCh7X7grwh9Re08fdPlarIdyWgI8aVB3F5A5g==", "dev": true, "requires": { "inherits": "2.0.3", @@ -18776,17 +19423,16 @@ } }, "unified": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/unified/-/unified-6.1.6.tgz", - "integrity": "sha512-pW2f82bCIo2ifuIGYcV12fL96kMMYgw7JKVEgh7ODlrM9rj6vXSY3BV+H6lCcv1ksxynFf582hwWLnA1qRFy4w==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", + "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", "dev": true, "requires": { - "bail": "1.0.2", + "bail": "1.0.3", "extend": "3.0.1", "is-plain-obj": "1.1.0", - "trough": "1.0.1", + "trough": "1.0.2", "vfile": "2.3.0", - "x-is-function": "1.0.4", "x-is-string": "0.1.0" } }, @@ -18831,15 +19477,6 @@ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, - "uniqid": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "dev": true, - "requires": { - "macaddress": "0.2.8" - } - }, "uniqs": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", @@ -18865,51 +19502,51 @@ } }, "unist-util-find-all-after": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.1.tgz", - "integrity": "sha1-TlUSq/734GFnga7Pex7XUcAK+Qg=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz", + "integrity": "sha512-nDl79mKpffXojLpCimVXnxhlH/jjaTnDuScznU9J4jjsaUtBdDbxmlc109XtcqxY4SDO0SwzngsxxW8DIISt1w==", "dev": true, "requires": { - "unist-util-is": "2.1.1" + "unist-util-is": "2.1.2" } }, "unist-util-is": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.1.tgz", - "integrity": "sha1-DDEmKeP5YMZukx6BLT2A53AQlHs=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.2.tgz", + "integrity": "sha512-YkXBK/H9raAmG7KXck+UUpnKiNmUdB+aBGrknfQ4EreE1banuzrKABx3jP6Z5Z3fMSPMQQmeXBlKpCbMwBkxVw==", "dev": true }, "unist-util-modify-children": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-1.1.1.tgz", - "integrity": "sha1-ZtfmpEnm9nIguXarPLi166w55R0=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-1.1.2.tgz", + "integrity": "sha512-GRi04yhng1WqBf5RBzPkOtWAadcZS2gvuOgNn/cyJBYNxtTuyYqTKN0eg4rC1YJwGnzrqfRB3dSKm8cNCjNirg==", "dev": true, "requires": { - "array-iterate": "1.1.1" + "array-iterate": "1.1.2" } }, "unist-util-remove-position": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.1.tgz", - "integrity": "sha1-WoXBVV/BugwQG4ZwfRXlD6TIcbs=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz", + "integrity": "sha512-XxoNOBvq1WXRKXxgnSYbtCF76TJrRoe5++pD4cCBsssSiWSnPEktyFrFLE8LTk3JW5mt9hB0Sk5zn4x/JeWY7Q==", "dev": true, "requires": { - "unist-util-visit": "1.3.0" + "unist-util-visit": "1.3.1" } }, "unist-util-stringify-position": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.1.tgz", - "integrity": "sha1-PMvcU2ee7W7PN3fdf14yKcG2qjw=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", + "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", "dev": true }, "unist-util-visit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.3.0.tgz", - "integrity": "sha512-9ntYcxPFtl44gnwXrQKZ5bMqXMY0ZHzUpqMFiU4zcc8mmf/jzYm8GhYgezuUlX4cJIM1zIDYaO6fG/fI+L6iiQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.3.1.tgz", + "integrity": "sha512-0fdB9EQJU0tho5tK0VzOJzAQpPv2LyLZ030b10GxuzAWEfvd54mpY7BMjQ1L69k2YNvL+SvxRzH0yUIehOO8aA==", "dev": true, "requires": { - "unist-util-is": "2.1.1" + "unist-util-is": "2.1.2" } }, "units-css": { @@ -18979,11 +19616,33 @@ } } }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true + }, "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } }, "urix": { "version": "0.1.0", @@ -19031,96 +19690,19 @@ "dev": true }, "use": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", - "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { - "define-property": "0.2.5", - "isobject": "3.0.1", - "lazy-cache": "2.0.2" + "kind-of": "6.0.2" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true - }, - "lazy-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", - "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", - "dev": true, - "requires": { - "set-getter": "0.1.0" - } } } }, @@ -19130,20 +19712,12 @@ "integrity": "sha1-Qw/VEKt/yVtdWRDJAteYgMIIQ2s=" }, "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dev": true, "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } + "inherits": "2.0.3" } }, "util-deprecate": { @@ -19172,12 +19746,49 @@ "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" }, "val-loader": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/val-loader/-/val-loader-1.1.0.tgz", - "integrity": "sha512-8m62XF42FcfrBBl02rtDY9hQhDcDczrEcr60/aSMxlzJiXAcbAimRPvsDoDa5QcGAusOgOmVTpFtK5EbfZdDwA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/val-loader/-/val-loader-1.1.1.tgz", + "integrity": "sha512-JLqLXJWCVLXTxbUeHhLpWkgl3+X3U8Bl0vY7rTFZgFSbLJaEtAxuD2ixy/cM8w/gzC7sS3NE5IDSzClDt332sw==", "dev": true, "requires": { - "loader-utils": "1.1.0" + "loader-utils": "1.1.0", + "schema-utils": "0.4.5" + }, + "dependencies": { + "ajv": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", + "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "dev": true, + "requires": { + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "dev": true, + "requires": { + "ajv": "6.5.1", + "ajv-keywords": "3.1.0" + } + } } }, "validate-npm-package-license": { @@ -19195,46 +19806,17 @@ "resolved": "https://registry.npmjs.org/validator/-/validator-7.2.0.tgz", "integrity": "sha512-c8NGTUYeBEcUIGeMppmNVKHE7wwfm3mYbNZxV+c5mlv9fDHI7Ad3p07qfNrn/CvpdkK2k61fOLRO2sTEhgQXmg==" }, - "varify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/varify/-/varify-0.2.0.tgz", - "integrity": "sha1-GR2p/p3EzWjQ0USY1OKpEP9OZRY=", - "optional": true, - "requires": { - "redeyed": "1.0.1", - "through": "2.3.8" - } - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "vendors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", - "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz", + "integrity": "sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==", "dev": true }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, "vfile": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", @@ -19243,23 +19825,23 @@ "requires": { "is-buffer": "1.1.6", "replace-ext": "1.0.0", - "unist-util-stringify-position": "1.1.1", - "vfile-message": "1.0.0" + "unist-util-stringify-position": "1.1.2", + "vfile-message": "1.0.1" } }, "vfile-location": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.2.tgz", - "integrity": "sha1-02dcWch3SY5JK0dW/2Xkrxp1IlU=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.3.tgz", + "integrity": "sha512-zM5/l4lfw1CBoPx3Jimxoc5RNDAHHpk6AM6LM0pTIkm5SUSsx8ZekZ0PVdf0WEZ7kjlhSt7ZlqbRL6Cd6dBs6A==", "dev": true }, "vfile-message": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.0.0.tgz", - "integrity": "sha512-HPREhzTOB/sNDc9/Mxf8w0FmHnThg5CRSJdR9VRFkD2riqYWs+fuXlj5z8mIpv2LrD7uU41+oPWFOL4Mjlf+dw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.0.1.tgz", + "integrity": "sha512-vSGCkhNvJzO6VcWC6AlJW4NtYOVtS+RgCaqFIYUjoGIlHnFL+i0LbtYvonDWOMcB97uTPT4PRsyYY7REWC9vug==", "dev": true, "requires": { - "unist-util-stringify-position": "1.1.1" + "unist-util-stringify-position": "1.1.2" } }, "viewport-dimensions": { @@ -19268,12 +19850,6 @@ "integrity": "sha1-3nQHR9tTh/0XJfUXXpG6x2r982w=", "dev": true }, - "vlq": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", - "dev": true - }, "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", @@ -19283,30 +19859,894 @@ "indexof": "0.0.1" } }, - "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", - "dev": true, - "requires": { - "browser-process-hrtime": "0.1.2" - } - }, "watchpack": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", - "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", "dev": true, "requires": { - "async": "2.6.0", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" + "chokidar": "2.0.4", + "graceful-fs": "4.1.11", + "neo-async": "2.5.1" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "3.1.10", + "normalize-path": "2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.1.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "2.1.2" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true, + "optional": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + } } }, "wayfarer": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/wayfarer/-/wayfarer-6.6.3.tgz", - "integrity": "sha512-DiScqFrKfETMeJ0OTmSv9Cncw/Yq3+pSs2+AlqLvgINpLlbnyts8dvFEdX3ggHdpt1nmQ7YE26mfpHXBowo0yQ==", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/wayfarer/-/wayfarer-6.6.4.tgz", + "integrity": "sha512-5ZRE4iwcIYytikTN9somy5oz/K7hEPK0YfrjCEN6zr5vlqadJ+r+GQmDzsV5zg5aW0qZvctxo443B1YFWSywpw==", "requires": { "xtend": "4.0.1" } @@ -19326,21 +20766,15 @@ "integrity": "sha1-NxkkXpCSgtk5Z4JfRLzVUOnAOZU=", "dev": true }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, "webpack": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz", - "integrity": "sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", + "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", "dev": true, "requires": { - "acorn": "5.4.1", + "acorn": "5.7.1", "acorn-dynamic-import": "2.0.2", - "ajv": "6.1.1", + "ajv": "6.5.1", "ajv-keywords": "3.1.0", "async": "2.6.0", "enhanced-resolve": "3.4.1", @@ -19357,26 +20791,44 @@ "supports-color": "4.5.0", "tapable": "0.2.8", "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.4.0", + "watchpack": "1.6.0", "webpack-sources": "1.1.0", "yargs": "8.0.2" }, "dependencies": { - "ajv": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.1.1.tgz", - "integrity": "sha1-l41Zf7wrfQ5aXD3esUmmgvKr+g4=", + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", "dev": true, "requires": { - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "acorn": "4.0.13" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } } }, - "ajv-keywords": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz", - "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=", + "ajv": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.1.tgz", + "integrity": "sha512-pgZos1vgOHDiC7gKNbZW8eKvCnNXARv2oqrGQT7Hzbq5Azp7aZG6DJzADnkuSq7RH6qkXp4J/m68yPX/2uBHyQ==", + "dev": true, + "requires": { + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, "has-flag": { @@ -19385,6 +20837,12 @@ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "supports-color": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", @@ -19453,7 +20911,7 @@ "compression": "1.7.1", "connect-history-api-fallback": "1.5.0", "del": "3.0.0", - "express": "4.16.2", + "express": "4.16.3", "html-entities": "1.2.1", "http-proxy-middleware": "0.17.4", "internal-ip": "1.2.0", @@ -19872,26 +21330,6 @@ } } }, - "whatwg-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", - "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.19" - } - }, - "whatwg-url": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", - "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", - "dev": true, - "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" - } - }, "whet.extend": { "version": "0.9.9", "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", @@ -20006,12 +21444,6 @@ "async-limiter": "1.0.0" } }, - "x-is-function": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/x-is-function/-/x-is-function-1.0.4.tgz", - "integrity": "sha1-XSlNw9Joy90GJYDgxd93o5HR+h4=", - "dev": true - }, "x-is-string": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", @@ -20029,12 +21461,6 @@ "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=", "dev": true }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, "xml2js": { "version": "0.4.17", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", @@ -20094,6 +21520,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, "requires": { "camelcase": "4.1.0" } @@ -20113,12 +21540,12 @@ "integrity": "sha512-txj2+d99KbSg3+GvFawb04vwB7dnIvERzxfndOogbiumKlKKbMR+zFyHInZfdGXDswIo7ce3ZExxD4sb8mD87g==", "dev": true, "requires": { - "acorn": "5.4.1", + "acorn": "5.7.1", "convert-source-map": "1.5.1", - "hyperx": "2.3.3", - "on-load": "3.3.4", + "hyperx": "2.4.0", + "on-load": "3.4.1", "through2": "2.0.3", - "transform-ast": "2.3.0" + "transform-ast": "2.4.4" } } } diff --git a/package.json b/package.json index b927d113..0583f3b9 100644 --- a/package.json +++ b/package.json @@ -56,81 +56,81 @@ }, "devDependencies": { "asmcrypto.js": "^0.22.0", - "babel-core": "^6.26.0", + "babel-core": "^6.26.3", "babel-loader": "^7.1.4", - "babel-plugin-istanbul": "^4.1.5", - "babel-plugin-yo-yoify": "^1.0.2", - "babel-preset-env": "^1.6.1", + "babel-plugin-istanbul": "^4.1.6", + "babel-plugin-yo-yoify": "^1.0.3", + "babel-preset-env": "^1.7.0", "babel-preset-es2015": "^6.24.1", "babel-preset-stage-2": "^6.24.1", "babel-preset-stage-3": "^6.24.1", - "base64-js": "^1.2.3", - "copy-webpack-plugin": "^4.5.0", - "cross-env": "^5.1.3", - "css-loader": "^0.28.10", + "base64-js": "^1.3.0", + "copy-webpack-plugin": "^4.5.2", + "cross-env": "^5.2.0", + "css-loader": "^0.28.11", "css-mqpacker": "^6.0.2", - "eslint": "^4.18.2", + "eslint": "^4.19.1", "eslint-plugin-mocha": "^4.12.1", "eslint-plugin-node": "^6.0.1", "eslint-plugin-security": "^1.4.0", - "expose-loader": "^0.7.4", + "expose-loader": "^0.7.5", "extract-loader": "^1.0.2", "extract-text-webpack-plugin": "^3.0.2", "fast-text-encoding": "^1.0.0", "file-loader": "^1.1.11", "fluent-intl-polyfill": "^0.1.0", - "git-rev-sync": "^1.10.0", + "git-rev-sync": "^1.12.0", "github-changes": "^1.1.2", "html-loader": "^0.5.5", "http_ece": "^1.0.5", "husky": "^0.14.3", - "lint-staged": "^7.0.0", - "mocha": "^5.0.4", + "lint-staged": "^7.2.0", + "mocha": "^5.2.0", "nanobus": "^4.3.2", - "nanotiming": "^7.3.0", - "npm-run-all": "^4.1.2", + "nanotiming": "^7.3.1", + "npm-run-all": "^4.1.3", "nsp": "^3.2.1", - "nyc": "^11.5.0", + "nyc": "^11.9.0", "postcss-cssnext": "^3.1.0", "postcss-import": "^11.1.0", - "postcss-loader": "^2.1.1", - "prettier": "^1.11.1", + "postcss-loader": "^2.1.5", + "prettier": "^1.13.7", "proxyquire": "^1.8.0", - "puppeteer": "^1.1.1", - "raven-js": "^3.23.1", + "puppeteer": "^1.5.0", + "raven-js": "^3.26.3", "redis-mock": "^0.21.0", - "require-from-string": "^2.0.1", + "require-from-string": "^2.0.2", "rimraf": "^2.6.2", - "sinon": "^4.4.2", + "sinon": "^4.5.0", "string-hash": "^1.1.3", - "stylelint": "^9.1.1", + "stylelint": "^9.3.0", "stylelint-config-standard": "^18.2.0", "stylelint-no-unsupported-browser-features": "^2.0.0", "svgo": "^1.0.5", "svgo-loader": "^2.1.0", "testpilot-ga": "^0.3.0", - "val-loader": "^1.1.0", + "val-loader": "^1.1.1", "web-streams-polyfill": "^1.3.2", - "webpack": "^3.11.0", + "webpack": "^3.12.0", "webpack-dev-middleware": "^2.0.6", "webpack-dev-server": "2.9.1", "webpack-manifest-plugin": "^1.3.2", "webpack-unassert-loader": "^1.2.0" }, "dependencies": { - "aws-sdk": "^2.206.0", + "aws-sdk": "^2.266.1", "babel-polyfill": "^6.26.0", - "choo": "^6.10.0", + "choo": "^6.12.1", "cldr-core": "^32.0.0", - "convict": "^4.0.1", - "express": "^4.16.2", + "convict": "^4.3.1", + "express": "^4.16.3", "express-ws": "^4.0.0", - "fluent": "^0.6.3", + "fluent": "^0.6.4", "fluent-langneg": "^0.1.0", - "helmet": "^3.12.0", + "helmet": "^3.12.1", "mkdirp": "^0.5.1", "mozlog": "^2.2.0", - "raven": "^2.4.2", + "raven": "^2.6.3", "redis": "^2.8.0", "websocket-stream": "^5.1.2" }, From 62ed0a411fa79d4e7f9505abfab529ca9a9a3b32 Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 5 Jul 2018 12:40:49 -0700 Subject: [PATCH 026/368] sw --- app/api.js | 58 ++++++++--------- app/ece.js | 85 +++++++++++++++---------- app/fileManager.js | 13 ++++ app/fileReceiver.js | 86 ++++++++------------------ app/fileSender.js | 2 +- app/keychain.js | 13 ++-- app/main.js | 8 +++ app/serviceWorker.js | 38 ++++++++++++ build/generate_asset_map.js | 1 + package-lock.json | 13 ++++ package.json | 5 +- server/routes/jsconfig.js | 2 + test/frontend/tests/api-tests.js | 6 +- test/frontend/tests/streaming-tests.js | 6 +- webpack.config.js | 2 +- webpackSw.config.js | 40 ++++++++++++ 16 files changed, 245 insertions(+), 133 deletions(-) create mode 100644 app/serviceWorker.js create mode 100644 webpackSw.config.js diff --git a/app/api.js b/app/api.js index 0219d006..168b3abc 100644 --- a/app/api.js +++ b/app/api.js @@ -1,4 +1,7 @@ import { arrayToB64, b64ToArray, delay } from './utils'; +import { ReadableStream as PolyRS} from 'web-streams-polyfill'; +import { createReadableStreamWrapper } from '@mattiasbuelens/web-streams-adapter'; +const RS = createReadableStreamWrapper(PolyRS); function post(obj) { return { @@ -201,38 +204,32 @@ export function uploadWs(encrypted, info, metadata, verifierB64, onprogress) { async function downloadS(id, keychain, onprogress, signal) { const auth = await keychain.authHeader(); - try { - const response = await fetch(`/api/download/${id}`, { - signal: signal , - method: 'GET', - headers: {'Authorization': auth} - }); - if (response.status !== 200) { - throw new Error(response.status); - } + const response = await fetch(`/api/download/${id}`, { + signal: signal, + method: 'GET', + headers: { Authorization: auth } + }); - const authHeader = response.headers.get('WWW-Authenticate'); - if (authHeader) { - keychain.nonce = parseNonce(authHeader); - } - - const fileSize = response.headers.get('Content-Length'); - onprogress([0, fileSize]); - - console.log(response.body); - if (response.body) { - return response.body; - } - return response.blob(); - - } catch (err) { - if (err.name === 'AbortError') { - throw new Error('0'); - } else { - throw err; - } + if (response.status !== 200) { + throw new Error(response.status); } + + const authHeader = response.headers.get('WWW-Authenticate'); + if (authHeader) { + keychain.nonce = parseNonce(authHeader); + } + + const fileSize = response.headers.get('Content-Length'); + + //right now only chrome allows obtaining a stream from fetch + //for other browsers we fetch as a blob and convert to polyfill stream later + if (response.body) { + console.log("STREAM") + return RS(response.body); + } + return response.blob(); + } async function tryDownloadStream(id, keychain, onprogress, signal, tries = 1) { @@ -243,6 +240,9 @@ async function tryDownloadStream(id, keychain, onprogress, signal, tries = 1) { if (e.message === '401' && --tries > 0) { return tryDownloadStream(id, keychain, onprogress, signal, tries); } + if (e.name === 'AbortError') { + throw new Error('0'); + } throw e; } } diff --git a/app/ece.js b/app/ece.js index 12605811..e80b2e65 100644 --- a/app/ece.js +++ b/app/ece.js @@ -1,12 +1,15 @@ require('buffer'); -import { TransformStream } from 'web-streams-polyfill'; +import { TransformStream as PolyTS, ReadableStream as PolyRS } from 'web-streams-polyfill'; +import { createReadableStreamWrapper, createTransformStreamWrapper } from '@mattiasbuelens/web-streams-adapter'; +const toTS = createTransformStreamWrapper(PolyTS); +const toRS = createReadableStreamWrapper(PolyRS); const NONCE_LENGTH = 12; const TAG_LENGTH = 16; const KEY_LENGTH = 16; const MODE_ENCRYPT = 'encrypt'; const MODE_DECRYPT = 'decrypt'; -const RS = 1048576; +const RS = 1024 * 1024; const encoder = new TextEncoder(); @@ -218,13 +221,14 @@ class ECETransformer { } async flush(controller) { + //console.log('ece stream ends') if (this.prevChunk) { await this.transformPrevChunk(true, controller); } } } -class BlobSlicer { +export class BlobSlicer { constructor(blob, rs, mode) { this.blob = blob; this.index = 0; @@ -262,28 +266,27 @@ class StreamSlicer { constructor(rs, mode) { this.mode = mode; this.rs = rs; - this.chunkSize = mode === MODE_ENCRYPT ? rs - 17 : 21; + this.chunkSize = (mode === MODE_ENCRYPT) ? (rs - 17) : 21; this.partialChunk = new Uint8Array(this.chunkSize); //where partial chunks are saved - this.offset = 0; + this.offset = 0; } send(buf, controller) { - //console.log("sent a record") controller.enqueue(buf); - if (this.chunkSize === 21) { + if (this.chunkSize === 21 && this.mode === MODE_DECRYPT) { this.chunkSize = this.rs; - this.partialChunk = new Uint8Array(this.chunkSize); } + this.partialChunk = new Uint8Array(this.chunkSize); } - //reslice input uint8arrays into record sized chunks + //reslice input into record sized chunks transform(chunk, controller) { - //console.log('Received chunk') // with %d bytes.', chunk.byteLength) + //console.log('Received chunk with %d bytes.', chunk.byteLength) let i = 0; - if (this.offset > 0) { //send off the partial chunk + if (this.offset > 0) { const len = Math.min(chunk.byteLength, (this.chunkSize - this.offset)); - this.partialChunk.set((chunk.slice(0, len)), this.offset); + this.partialChunk.set(chunk.slice(0, len), this.offset); this.offset += len; i += len; @@ -293,32 +296,41 @@ class StreamSlicer { } } - while (i < chunk.byteLength) { //send off whole records and stick last bit in partialChunk - if ((chunk.byteLength - i) > this.chunkSize) { + while (i < chunk.byteLength) { + if ((chunk.byteLength - i) >= this.chunkSize) { const record = chunk.slice(i, i + this.chunkSize); i += this.chunkSize; this.send(record, controller); } else { - const end = chunk.slice(i, end); + const end = chunk.slice(i, this.chunkSize); + i += end.length; this.partialChunk.set(end); this.offset = end.length; - i += end.length; } } } flush(controller) { + //console.log('slice stream ends') if (this.offset > 0) { - console.log("sent a partial record") controller.enqueue(this.partialChunk.slice(0, this.offset)); } } } - +async function stream2blob(stream) { + const chunks = []; + const reader = stream.getReader(); + let state = await reader.read(); + while (!state.done) { + chunks.push(state.value); + state = await reader.read(); + } + return new Blob(chunks); +} /* -input: a blob or a readable stream containing data to be transformed +input: a blob or a ReadableStream containing data to be transformed key: Uint8Array containing key of size KEY_LENGTH mode: string, either 'encrypt' or 'decrypt' rs: int containing record size, optional @@ -326,26 +338,37 @@ salt: ArrayBuffer containing salt of KEY_LENGTH length, optional */ export default class ECE { constructor(input, key, mode, rs, salt) { + this.input = input; + this.key = key; + this.mode = mode; + this.rs = rs; + this.salt = salt; if (rs === undefined) { - rs = RS; + this.rs = RS; } if (salt === undefined) { - salt = generateSalt(KEY_LENGTH); + this.salt = generateSalt(KEY_LENGTH); } + } + info() { + return { + recordSize: this.rs, + fileSize: 21 + this.input.size + 16 * Math.floor(this.input.size / (this.rs - 17)) + }; + } + + transform() { let inputStream; - if (input instanceof Blob) { - this.streamInfo = { - recordSize: rs, - fileSize: 21 + input.size + 16 * Math.floor(input.size / (rs - 17)) - }; - inputStream = new ReadableStream(new BlobSlicer(input, rs, mode)); + + if (this.input instanceof Blob) { + inputStream = toRS(new ReadableStream(new BlobSlicer(this.input, this.rs, this.mode))); } else { - const sliceStream = new TransformStream(new StreamSlicer(rs, mode)); - inputStream = input.pipeThrough(sliceStream); + const sliceStream = toTS(new TransformStream(new StreamSlicer(this.rs, this.mode))); + inputStream = this.input.pipeThrough(sliceStream); } - const ts = new TransformStream(new ECETransformer(mode, key, rs, salt)); - this.stream = inputStream.pipeThrough(ts); + const cryptoStream = toTS(new TransformStream(new ECETransformer(this.mode, this.key, this.rs, this.salt))); + return inputStream.pipeThrough(cryptoStream); } } diff --git a/app/fileManager.js b/app/fileManager.js index 786f99f8..88f024f9 100644 --- a/app/fileManager.js +++ b/app/fileManager.js @@ -36,6 +36,12 @@ export default function(state, emitter) { } } + function register() { + navigator.serviceWorker.register('/serviceWorker.js') + .then( reg => console.log("registration successful or already installed")) + .catch( e => console.log(e) ); + } + function updateProgress() { if (updateTitle) { emitter.emit('DOMTitleChange', percent(state.transfer.progressRatio)); @@ -162,6 +168,13 @@ export default function(state, emitter) { } } } + + const info = { + key: file.secretKey, + nonce: file.nonce + } + navigator.serviceWorker.controller.postMessage(info); + render(); }); diff --git a/app/fileReceiver.js b/app/fileReceiver.js index 5ca9f62b..cf23dcb2 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -1,7 +1,7 @@ import Nanobus from 'nanobus'; import Keychain from './keychain'; import { bytes } from './utils'; -import { metadata, downloadFile, downloadStream} from './api'; +import { metadata, downloadFile, downloadStream } from './api'; export default class FileReceiver extends Nanobus { constructor(fileInfo) { @@ -51,89 +51,56 @@ export default class FileReceiver extends Nanobus { this.state = 'ready'; } - /* - async streamToArrayBuffer(stream, streamSize) { - try { - var finish; - const promise = new Promise((resolve) => { - finish = resolve; - }); - const result = new Uint8Array(streamSize); - let offset = 0; - - - const writer = new WritableStream( - { - write(chunk) { - result.set(state.value, offset); - offset += state.value.length; - }, - close() { - //resolve a promise or something - finish.resolve(); - } - } - ); - - stream.pipeTo(writer); - - await promise; - return result.slice(0, offset).buffer; - - } catch (e) { - console.log(e) - } - } - */ - - async streamToArrayBuffer(stream, streamSize) { + async streamToArrayBuffer(stream, streamSize, onprogress) { try { const result = new Uint8Array(streamSize); let offset = 0; - console.log("reading...") const reader = stream.getReader(); let state = await reader.read(); - console.log("read done") while (!state.done) { result.set(state.value, offset); offset += state.value.length; state = await reader.read(); + onprogress([offset, streamSize]); } + onprogress([streamSize, streamSize]); return result.slice(0, offset).buffer; } catch (e) { - console.log(e) + console.log(e); + throw (e); } } async download(noSave = false) { - this.state = 'downloading'; - this.downloadRequest = await downloadStream( - this.fileInfo.id, - this.keychain, - p => { - this.progress = p; - this.emit('progress'); - } - ); + const onprogress = p => { + this.progress = p; + this.emit('progress'); + } try { + this.state = 'downloading'; + this.downloadRequest = downloadStream( + this.fileInfo.id, + this.keychain + ); - const ciphertext = await this.downloadRequest.result; + onprogress([0, this.fileInfo.size]); + const download = await this.downloadRequest.result; + const plainstream = this.keychain.decryptStream(download); + + //temporary + const plaintext = await this.streamToArrayBuffer( + plainstream, + this.fileInfo.size, + onprogress + ); this.downloadRequest = null; + this.msg = 'decryptingFile'; this.state = 'decrypting'; this.emit('decrypting'); - const dec = this.keychain.decryptStream(ciphertext); - - let plaintext = await this.streamToArrayBuffer( - dec.stream, - this.fileInfo.size - ); - - if (plaintext === undefined) { plaintext = (new Uint8Array(1)).buffer; } - if (!noSave) { await saveFile({ plaintext, @@ -144,7 +111,6 @@ export default class FileReceiver extends Nanobus { this.msg = 'downloadFinish'; this.state = 'complete'; - } catch (e) { this.downloadRequest = null; throw e; diff --git a/app/fileSender.js b/app/fileSender.js index 7c3c4de1..08cf307e 100644 --- a/app/fileSender.js +++ b/app/fileSender.js @@ -65,7 +65,7 @@ export default class FileSender extends Nanobus { this.msg = 'encryptingFile'; this.emit('encrypting'); - const enc = this.keychain.encryptStream(this.file); + const enc = await this.keychain.encryptStream(this.file); const metadata = await this.keychain.encryptMetadata(this.file); const authKeyB64 = await this.keychain.authKeyB64(); diff --git a/app/keychain.js b/app/keychain.js index 75778990..d02ff83b 100644 --- a/app/keychain.js +++ b/app/keychain.js @@ -180,13 +180,16 @@ export default class Keychain { } encryptStream(plaintext) { - const enc = new ECE(plaintext, this.rawSecret, 'encrypt'); - return enc; + const ece = new ECE(plaintext, this.rawSecret, 'encrypt'); + return { + stream: ece.transform(), + streamInfo: ece.info() + }; } - decryptStream(encstream) { - const dec = new ECE(encstream, this.rawSecret, 'decrypt'); - return dec; + decryptStream(cryptotext) { + const ece = new ECE(cryptotext, this.rawSecret, 'decrypt'); + return ece.transform(); } async decryptFile(ciphertext) { diff --git a/app/main.js b/app/main.js index 353afa1a..fb13587a 100644 --- a/app/main.js +++ b/app/main.js @@ -9,11 +9,18 @@ import storage from './storage'; import metrics from './metrics'; import experiments from './experiments'; import Raven from 'raven-js'; +import assets from '../common/assets'; if (navigator.doNotTrack !== '1' && window.RAVEN_CONFIG) { Raven.config(window.SENTRY_ID, window.RAVEN_CONFIG).install(); } +function register(state, emitter) { + navigator.serviceWorker.register('serviceWorker.js') + .then( reg => console.log("registration successful or already installed")) + .catch( e => console.log(e) ); +} + app.use((state, emitter) => { state.transfer = null; state.fileInfo = null; @@ -44,6 +51,7 @@ app.use((state, emitter) => { }); }); +app.use(register); app.use(metrics); app.use(fileManager); app.use(dragManager); diff --git a/app/serviceWorker.js b/app/serviceWorker.js new file mode 100644 index 00000000..624a6028 --- /dev/null +++ b/app/serviceWorker.js @@ -0,0 +1,38 @@ +import Keychain from './keychain'; + +self.addEventListener('install', (event) => { + console.log("install event on sw") + self.skipWaiting(); +}); + +async function decryptStream(request) { + console.log("DOWNLOAD FETCH") + //make actual request to server, get response back, decrypt it, send it + const response = await fetch(req, + { + method: 'GET', + headers: { Authorization: auth } + } + ); + + if (response.status !== 200) { + console.log(response.status) + throw new Error(response.status); + } + + const body = response.body; + console.log(body); + + return response; +} + +self.onfetch = (event) => { + const req = event.request.clone(); + if (req.url.includes('/api/download')) { + event.respondWith(decryptStream(req)); + } +}; + +self.onmessage = (event) => { + self.keychain = new Keychain(event.data.key, event.data.nonce); +}; \ No newline at end of file diff --git a/build/generate_asset_map.js b/build/generate_asset_map.js index de0999c9..97a93432 100644 --- a/build/generate_asset_map.js +++ b/build/generate_asset_map.js @@ -20,6 +20,7 @@ module.exports = function() { const files = fs.readdirSync(path.join(__dirname, '..', 'assets')); const code = `module.exports = { "package.json": require('../package.json'), + "serviceWorker.js" : require('../app/serviceWorker.js'), ${files.map(kv).join(',\n')} };`; return { diff --git a/package-lock.json b/package-lock.json index 6247b8a6..b8c6358e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -89,6 +89,11 @@ "integrity": "sha1-9vGlzl05caSt6RoR0i1MRZrNN18=", "dev": true }, + "@mattiasbuelens/web-streams-adapter": { + "version": "0.1.0-alpha.1", + "resolved": "https://registry.npmjs.org/@mattiasbuelens/web-streams-adapter/-/web-streams-adapter-0.1.0-alpha.1.tgz", + "integrity": "sha512-8YK2ZY6CAgrzFGfW2uPyNDMYvh7OmWjrlbdP+GeHiMJhzPF3XwrQaHyLQ4IZqGTj8NW879ttfbcqbLqQxWvtsw==" + }, "@sinonjs/formatio": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", @@ -1172,6 +1177,14 @@ "regenerator-transform": "0.10.1" } }, + "babel-plugin-transform-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", + "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", + "requires": { + "babel-runtime": "6.26.0" + } + }, "babel-plugin-transform-strict-mode": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", diff --git a/package.json b/package.json index b927d113..a0685123 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "prepush": "npm test", "check": "nsp check", "clean": "rimraf dist", - "build": "npm run clean && webpack -p", + "build": "npm run clean && webpack -p && webpack --config webpackSw.config.js -p", "lint": "npm-run-all lint:*", "lint:css": "stylelint app/*.css app/**/*.css", "lint:js": "eslint .", @@ -118,8 +118,11 @@ "webpack-unassert-loader": "^1.2.0" }, "dependencies": { + "@mattiasbuelens/web-streams-adapter": "0.1.0-alpha.1", "aws-sdk": "^2.206.0", + "babel-plugin-transform-runtime": "^6.23.0", "babel-polyfill": "^6.26.0", + "babel-runtime": "^6.26.0", "choo": "^6.10.0", "cldr-core": "^32.0.0", "convict": "^4.0.1", diff --git a/server/routes/jsconfig.js b/server/routes/jsconfig.js index 23e07374..20854998 100644 --- a/server/routes/jsconfig.js +++ b/server/routes/jsconfig.js @@ -1,4 +1,5 @@ const config = require('../config'); +const assets = require('../../common/assets'); let sentry = ''; if (config.sentry_id) { @@ -36,6 +37,7 @@ if (isIE && !isUnsupportedPage) { } var MAXFILESIZE = ${config.max_file_size}; var EXPIRE_SECONDS = ${config.expire_seconds}; +var SERVICEWORKER = '${assets.get('serviceWorker.js')}'; ${ga} ${sentry} `; diff --git a/test/frontend/tests/api-tests.js b/test/frontend/tests/api-tests.js index 22e221e4..301a09de 100644 --- a/test/frontend/tests/api-tests.js +++ b/test/frontend/tests/api-tests.js @@ -13,7 +13,7 @@ describe('API', function() { describe('websocket upload', function() { it('returns file info on success', async function() { const keychain = new Keychain(); - const enc = keychain.encryptStream(plaintext); + const enc = await keychain.encryptStream(plaintext); const meta = await keychain.encryptMetadata(metadata); const verifierB64 = await keychain.authKeyB64(); const p = function() {}; @@ -22,12 +22,12 @@ describe('API', function() { const result = await up.result; assert.ok(result.url); assert.ok(result.id); - assert.ok(result.ownerToken); + assert.ok(result.ownerToken); }); it('can be cancelled', async function() { const keychain = new Keychain(); - const enc = keychain.encryptStream(plaintext); + const enc = await keychain.encryptStream(plaintext); const meta = await keychain.encryptMetadata(metadata); const verifierB64 = await keychain.authKeyB64(); const p = function() {}; diff --git a/test/frontend/tests/streaming-tests.js b/test/frontend/tests/streaming-tests.js index 355fcaa0..77fdec5a 100644 --- a/test/frontend/tests/streaming-tests.js +++ b/test/frontend/tests/streaming-tests.js @@ -31,7 +31,8 @@ describe('Streaming', function() { const blob = new Blob([str], { type: 'text/plain' }); it('can encrypt', async function() { - const encStream = new ECE(blob, key, 'encrypt', rs, salt).stream; + const ece = new ECE(blob, key, 'encrypt', rs, salt); + const encStream = await ece.transform(); const reader = encStream.getReader(); let result = Buffer.from([]); @@ -47,7 +48,8 @@ describe('Streaming', function() { it('can decrypt', async function() { const encBlob = new Blob([encrypted]); - const decStream = await new ECE(encBlob, key, 'decrypt', rs).stream; + const ece = new ECE(encBlob, key, 'decrypt', rs); + const decStream = await ece.transform() const reader = decStream.getReader(); let result = Buffer.from([]); diff --git a/webpack.config.js b/webpack.config.js index 6619f697..dcf4ffb8 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -40,7 +40,7 @@ module.exports = { test: /\.js$/, oneOf: [ { - include: require.resolve('./assets/cryptofill'), + include: [require.resolve('./assets/cryptofill')], use: [ { loader: 'file-loader', diff --git a/webpackSw.config.js b/webpackSw.config.js new file mode 100644 index 00000000..ded7bc29 --- /dev/null +++ b/webpackSw.config.js @@ -0,0 +1,40 @@ +const path = require('path'); +const webpack = require('webpack'); + +const regularJSOptions = { + babelrc: false, + presets: [['env', { modules: false }], 'stage-2'], + // yo-yoify converts html template strings to direct dom api calls + plugins: [ + "transform-runtime", { + //"polyfill": false, + //"regenerator": true + } + ] +}; + +const entry = { + serviceWorker: ['./app/serviceWorker.js'] +}; + +module.exports = { + entry, + output: { + filename: '[name].js', + path: path.resolve(__dirname, 'dist'), + publicPath: '/' + }, + module: { + rules: [ + { + loader: 'babel-loader', + // exclude: /node_modules/, + include: [ + path.resolve(__dirname, 'app'), + path.resolve(__dirname, 'node_modules/buffer') + ], + options: regularJSOptions + } + ] + } +}; \ No newline at end of file From f98bc0878ca6a3e6dac6842770d604799811f308 Mon Sep 17 00:00:00 2001 From: Emily Date: Fri, 6 Jul 2018 15:49:50 -0700 Subject: [PATCH 027/368] saves stream to file --- app/api.js | 19 ++-- app/ece.js | 62 ++++++------- app/fileManager.js | 13 +-- app/fileReceiver.js | 116 +++++++------------------ app/keychain.js | 30 +++---- app/main.js | 11 +-- app/serviceWorker.js | 39 +++++---- app/utils.js | 16 ++-- package-lock.json | 5 ++ package.json | 1 - server/bin/prod.js | 1 + test/frontend/tests/api-tests.js | 2 +- test/frontend/tests/streaming-tests.js | 2 +- webpackSw.config.js | 20 ++--- 14 files changed, 136 insertions(+), 201 deletions(-) diff --git a/app/api.js b/app/api.js index 168b3abc..2047c2c2 100644 --- a/app/api.js +++ b/app/api.js @@ -1,5 +1,5 @@ import { arrayToB64, b64ToArray, delay } from './utils'; -import { ReadableStream as PolyRS} from 'web-streams-polyfill'; +import { ReadableStream as PolyRS } from 'web-streams-polyfill'; import { createReadableStreamWrapper } from '@mattiasbuelens/web-streams-adapter'; const RS = createReadableStreamWrapper(PolyRS); @@ -202,9 +202,10 @@ export function uploadWs(encrypted, info, metadata, verifierB64, onprogress) { //////////////////////// -async function downloadS(id, keychain, onprogress, signal) { +async function downloadS(id, keychain, signal) { const auth = await keychain.authHeader(); + //this will be already funneled through serviceworker const response = await fetch(`/api/download/${id}`, { signal: signal, method: 'GET', @@ -223,22 +224,20 @@ async function downloadS(id, keychain, onprogress, signal) { const fileSize = response.headers.get('Content-Length'); //right now only chrome allows obtaining a stream from fetch - //for other browsers we fetch as a blob and convert to polyfill stream later + //for other browsers we fetch as a blob and convert to polyfill stream later if (response.body) { - console.log("STREAM") return RS(response.body); } return response.blob(); - } -async function tryDownloadStream(id, keychain, onprogress, signal, tries = 1) { +async function tryDownloadStream(id, keychain, signal, tries = 1) { try { - const result = await downloadS(id, keychain, onprogress, signal); + const result = await downloadS(id, keychain, signal); return result; } catch (e) { if (e.message === '401' && --tries > 0) { - return tryDownloadStream(id, keychain, onprogress, signal, tries); + return tryDownloadStream(id, keychain, signal, tries); } if (e.name === 'AbortError') { throw new Error('0'); @@ -247,14 +246,14 @@ async function tryDownloadStream(id, keychain, onprogress, signal, tries = 1) { } } -export function downloadStream(id, keychain, onprogress) { +export function downloadStream(id, keychain) { const controller = new AbortController(); function cancel() { controller.abort(); } return { cancel, - result: tryDownloadStream(id, keychain, onprogress, controller.signal, 2) + result: tryDownloadStream(id, keychain, controller.signal, 2) }; } diff --git a/app/ece.js b/app/ece.js index e80b2e65..07b06a5a 100644 --- a/app/ece.js +++ b/app/ece.js @@ -1,8 +1,16 @@ require('buffer'); -import { TransformStream as PolyTS, ReadableStream as PolyRS } from 'web-streams-polyfill'; -import { createReadableStreamWrapper, createTransformStreamWrapper } from '@mattiasbuelens/web-streams-adapter'; +/* +import { + TransformStream as PolyTS, + ReadableStream as PolyRS +} from 'web-streams-polyfill'; +import { + createReadableStreamWrapper, + createTransformStreamWrapper +} from '@mattiasbuelens/web-streams-adapter'; const toTS = createTransformStreamWrapper(PolyTS); const toRS = createReadableStreamWrapper(PolyRS); +*/ const NONCE_LENGTH = 12; const TAG_LENGTH = 16; @@ -15,7 +23,7 @@ const encoder = new TextEncoder(); function generateSalt(len) { const randSalt = new Uint8Array(len); - window.crypto.getRandomValues(randSalt); + crypto.getRandomValues(randSalt); return randSalt.buffer; } @@ -31,7 +39,7 @@ class ECETransformer { } async generateKey() { - const inputKey = await window.crypto.subtle.importKey( + const inputKey = await crypto.subtle.importKey( 'raw', this.ikm, 'HKDF', @@ -39,7 +47,7 @@ class ECETransformer { ['deriveKey'] ); - return window.crypto.subtle.deriveKey( + return crypto.subtle.deriveKey( { name: 'HKDF', salt: this.salt, @@ -57,7 +65,7 @@ class ECETransformer { } async generateNonceBase() { - const inputKey = await window.crypto.subtle.importKey( + const inputKey = await crypto.subtle.importKey( 'raw', this.ikm, 'HKDF', @@ -65,9 +73,9 @@ class ECETransformer { ['deriveKey'] ); - const base = await window.crypto.subtle.exportKey( + const base = await crypto.subtle.exportKey( 'raw', - await window.crypto.subtle.deriveKey( + await crypto.subtle.deriveKey( { name: 'HKDF', salt: this.salt, @@ -156,7 +164,7 @@ class ECETransformer { async encryptRecord(buffer, seq, isLast) { const nonce = this.generateNonce(seq); - const encrypted = await window.crypto.subtle.encrypt( + const encrypted = await crypto.subtle.encrypt( { name: 'AES-GCM', iv: nonce }, this.key, this.pad(buffer, isLast) @@ -166,7 +174,7 @@ class ECETransformer { async decryptRecord(buffer, seq, isLast) { const nonce = this.generateNonce(seq); - const data = await window.crypto.subtle.decrypt( + const data = await crypto.subtle.decrypt( { name: 'AES-GCM', iv: nonce, @@ -266,7 +274,7 @@ class StreamSlicer { constructor(rs, mode) { this.mode = mode; this.rs = rs; - this.chunkSize = (mode === MODE_ENCRYPT) ? (rs - 17) : 21; + this.chunkSize = mode === MODE_ENCRYPT ? rs - 17 : 21; this.partialChunk = new Uint8Array(this.chunkSize); //where partial chunks are saved this.offset = 0; } @@ -285,7 +293,7 @@ class StreamSlicer { let i = 0; if (this.offset > 0) { - const len = Math.min(chunk.byteLength, (this.chunkSize - this.offset)); + const len = Math.min(chunk.byteLength, this.chunkSize - this.offset); this.partialChunk.set(chunk.slice(0, len), this.offset); this.offset += len; i += len; @@ -297,7 +305,7 @@ class StreamSlicer { } while (i < chunk.byteLength) { - if ((chunk.byteLength - i) >= this.chunkSize) { + if (chunk.byteLength - i >= this.chunkSize) { const record = chunk.slice(i, i + this.chunkSize); i += this.chunkSize; this.send(record, controller); @@ -318,17 +326,6 @@ class StreamSlicer { } } -async function stream2blob(stream) { - const chunks = []; - const reader = stream.getReader(); - let state = await reader.read(); - while (!state.done) { - chunks.push(state.value); - state = await reader.read(); - } - return new Blob(chunks); -} - /* input: a blob or a ReadableStream containing data to be transformed key: Uint8Array containing key of size KEY_LENGTH @@ -354,7 +351,8 @@ export default class ECE { info() { return { recordSize: this.rs, - fileSize: 21 + this.input.size + 16 * Math.floor(this.input.size / (this.rs - 17)) + fileSize: + 21 + this.input.size + 16 * Math.floor(this.input.size / (this.rs - 17)) }; } @@ -362,13 +360,19 @@ export default class ECE { let inputStream; if (this.input instanceof Blob) { - inputStream = toRS(new ReadableStream(new BlobSlicer(this.input, this.rs, this.mode))); + inputStream = new ReadableStream( + new BlobSlicer(this.input, this.rs, this.mode) + ); //inputStream = toRS(new ReadableStream(new BlobSlicer(this.input, this.rs, this.mode))); } else { - const sliceStream = toTS(new TransformStream(new StreamSlicer(this.rs, this.mode))); + const sliceStream = new TransformStream( + new StreamSlicer(this.rs, this.mode) + ); //const sliceStream = toTS(new TransformStream(new StreamSlicer(this.rs, this.mode))); inputStream = this.input.pipeThrough(sliceStream); } - const cryptoStream = toTS(new TransformStream(new ECETransformer(this.mode, this.key, this.rs, this.salt))); - return inputStream.pipeThrough(cryptoStream); + const cryptoStream = new TransformStream( + new ECETransformer(this.mode, this.key, this.rs, this.salt) + ); //const cryptoStream = toTS(new TransformStream(new ECETransformer(this.mode, this.key, this.rs, this.salt))); + return inputStream.pipeThrough(cryptoStream); //return toRS(inputStream.pipeThrough(cryptoStream)); } } diff --git a/app/fileManager.js b/app/fileManager.js index 88f024f9..704d3578 100644 --- a/app/fileManager.js +++ b/app/fileManager.js @@ -36,12 +36,6 @@ export default function(state, emitter) { } } - function register() { - navigator.serviceWorker.register('/serviceWorker.js') - .then( reg => console.log("registration successful or already installed")) - .catch( e => console.log(e) ); - } - function updateProgress() { if (updateTitle) { emitter.emit('DOMTitleChange', percent(state.transfer.progressRatio)); @@ -156,6 +150,7 @@ export default function(state, emitter) { emitter.on('getMetadata', async () => { const file = state.fileInfo; + const receiver = new FileReceiver(file); try { await receiver.getMetadata(); @@ -169,12 +164,6 @@ export default function(state, emitter) { } } - const info = { - key: file.secretKey, - nonce: file.nonce - } - navigator.serviceWorker.controller.postMessage(info); - render(); }); diff --git a/app/fileReceiver.js b/app/fileReceiver.js index cf23dcb2..c610b76a 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -1,7 +1,7 @@ import Nanobus from 'nanobus'; import Keychain from './keychain'; import { bytes } from './utils'; -import { metadata, downloadFile, downloadStream } from './api'; +import { metadata } from './api'; export default class FileReceiver extends Nanobus { constructor(fileInfo) { @@ -52,107 +52,57 @@ export default class FileReceiver extends Nanobus { } async streamToArrayBuffer(stream, streamSize, onprogress) { - try { - const result = new Uint8Array(streamSize); - let offset = 0; - const reader = stream.getReader(); - let state = await reader.read(); - while (!state.done) { - result.set(state.value, offset); - offset += state.value.length; - state = await reader.read(); - onprogress([offset, streamSize]); - } - - onprogress([streamSize, streamSize]); - return result.slice(0, offset).buffer; - } catch (e) { - console.log(e); - throw (e); + const result = new Uint8Array(streamSize); + let offset = 0; + const reader = stream.getReader(); + let state = await reader.read(); + while (!state.done) { + result.set(state.value, offset); + offset += state.value.length; + state = await reader.read(); + onprogress([offset, streamSize]); } + + onprogress([streamSize, streamSize]); + return result.slice(0, offset).buffer; } async download(noSave = false) { const onprogress = p => { this.progress = p; this.emit('progress'); - } + }; try { this.state = 'downloading'; - this.downloadRequest = downloadStream( - this.fileInfo.id, - this.keychain - ); + + const auth = await this.keychain.authHeader(); + const info = { + key: this.fileInfo.secretKey, + nonce: this.fileInfo.nonce, + filename: this.fileInfo.name, + auth: auth + }; + navigator.serviceWorker.controller.postMessage(info); onprogress([0, this.fileInfo.size]); - const download = await this.downloadRequest.result; - const plainstream = this.keychain.decryptStream(download); - - //temporary - const plaintext = await this.streamToArrayBuffer( - plainstream, - this.fileInfo.size, - onprogress - ); - this.downloadRequest = null; - - this.msg = 'decryptingFile'; - this.state = 'decrypting'; - this.emit('decrypting'); if (!noSave) { - await saveFile({ - plaintext, - name: decodeURIComponent(this.fileInfo.name), - type: this.fileInfo.type - }); + const downloadUrl = `${location.protocol}//${ + location.host + }/api/download/${this.fileInfo.id}`; + const a = document.createElement('a'); + a.href = downloadUrl; + document.body.appendChild(a); + a.click(); + URL.revokeObjectURL(downloadUrl); } - this.msg = 'downloadFinish'; - this.state = 'complete'; + //this.msg = 'downloadFinish'; + //this.state = 'complete'; } catch (e) { this.downloadRequest = null; throw e; } } } - -async function saveFile(file) { - return new Promise(function(resolve, reject) { - const dataView = new DataView(file.plaintext); - const blob = new Blob([dataView], { type: file.type }); - - if (navigator.msSaveBlob) { - navigator.msSaveBlob(blob, file.name); - return resolve(); - } else if (/iPhone|fxios/i.test(navigator.userAgent)) { - // This method is much slower but createObjectURL - // is buggy on iOS - const reader = new FileReader(); - reader.addEventListener('loadend', function() { - if (reader.error) { - return reject(reader.error); - } - if (reader.result) { - const a = document.createElement('a'); - a.href = reader.result; - a.download = file.name; - document.body.appendChild(a); - a.click(); - } - resolve(); - }); - reader.readAsDataURL(blob); - } else { - const downloadUrl = URL.createObjectURL(blob); - const a = document.createElement('a'); - a.href = downloadUrl; - a.download = file.name; - document.body.appendChild(a); - a.click(); - URL.revokeObjectURL(downloadUrl); - setTimeout(resolve, 100); - } - }); -} diff --git a/app/keychain.js b/app/keychain.js index d02ff83b..ab57b852 100644 --- a/app/keychain.js +++ b/app/keychain.js @@ -9,14 +9,14 @@ export default class Keychain { if (ivB64) { this.iv = b64ToArray(ivB64); } else { - this.iv = window.crypto.getRandomValues(new Uint8Array(12)); + this.iv = crypto.getRandomValues(new Uint8Array(12)); } if (secretKeyB64) { this.rawSecret = b64ToArray(secretKeyB64); } else { - this.rawSecret = window.crypto.getRandomValues(new Uint8Array(16)); + this.rawSecret = crypto.getRandomValues(new Uint8Array(16)); } - this.secretKeyPromise = window.crypto.subtle.importKey( + this.secretKeyPromise = crypto.subtle.importKey( 'raw', this.rawSecret, 'HKDF', @@ -24,7 +24,7 @@ export default class Keychain { ['deriveKey'] ); this.encryptKeyPromise = this.secretKeyPromise.then(function(secretKey) { - return window.crypto.subtle.deriveKey( + return crypto.subtle.deriveKey( { name: 'HKDF', salt: new Uint8Array(), @@ -41,7 +41,7 @@ export default class Keychain { ); }); this.metaKeyPromise = this.secretKeyPromise.then(function(secretKey) { - return window.crypto.subtle.deriveKey( + return crypto.subtle.deriveKey( { name: 'HKDF', salt: new Uint8Array(), @@ -58,7 +58,7 @@ export default class Keychain { ); }); this.authKeyPromise = this.secretKeyPromise.then(function(secretKey) { - return window.crypto.subtle.deriveKey( + return crypto.subtle.deriveKey( { name: 'HKDF', salt: new Uint8Array(), @@ -91,12 +91,12 @@ export default class Keychain { } setPassword(password, shareUrl) { - this.authKeyPromise = window.crypto.subtle + this.authKeyPromise = crypto.subtle .importKey('raw', encoder.encode(password), { name: 'PBKDF2' }, false, [ 'deriveKey' ]) .then(passwordKey => - window.crypto.subtle.deriveKey( + crypto.subtle.deriveKey( { name: 'PBKDF2', salt: encoder.encode(shareUrl), @@ -115,7 +115,7 @@ export default class Keychain { } setAuthKey(authKeyB64) { - this.authKeyPromise = window.crypto.subtle.importKey( + this.authKeyPromise = crypto.subtle.importKey( 'raw', b64ToArray(authKeyB64), { @@ -129,13 +129,13 @@ export default class Keychain { async authKeyB64() { const authKey = await this.authKeyPromise; - const rawAuth = await window.crypto.subtle.exportKey('raw', authKey); + const rawAuth = await crypto.subtle.exportKey('raw', authKey); return arrayToB64(new Uint8Array(rawAuth)); } async authHeader() { const authKey = await this.authKeyPromise; - const sig = await window.crypto.subtle.sign( + const sig = await crypto.subtle.sign( { name: 'HMAC' }, @@ -147,7 +147,7 @@ export default class Keychain { async encryptFile(plaintext) { const encryptKey = await this.encryptKeyPromise; - const ciphertext = await window.crypto.subtle.encrypt( + const ciphertext = await crypto.subtle.encrypt( { name: 'AES-GCM', iv: this.iv, @@ -161,7 +161,7 @@ export default class Keychain { async encryptMetadata(metadata) { const metaKey = await this.metaKeyPromise; - const ciphertext = await window.crypto.subtle.encrypt( + const ciphertext = await crypto.subtle.encrypt( { name: 'AES-GCM', iv: new Uint8Array(12), @@ -194,7 +194,7 @@ export default class Keychain { async decryptFile(ciphertext) { const encryptKey = await this.encryptKeyPromise; - const plaintext = await window.crypto.subtle.decrypt( + const plaintext = await crypto.subtle.decrypt( { name: 'AES-GCM', iv: this.iv, @@ -208,7 +208,7 @@ export default class Keychain { async decryptMetadata(ciphertext) { const metaKey = await this.metaKeyPromise; - const plaintext = await window.crypto.subtle.decrypt( + const plaintext = await crypto.subtle.decrypt( { name: 'AES-GCM', iv: new Uint8Array(12), diff --git a/app/main.js b/app/main.js index fb13587a..41934485 100644 --- a/app/main.js +++ b/app/main.js @@ -9,18 +9,11 @@ import storage from './storage'; import metrics from './metrics'; import experiments from './experiments'; import Raven from 'raven-js'; -import assets from '../common/assets'; if (navigator.doNotTrack !== '1' && window.RAVEN_CONFIG) { Raven.config(window.SENTRY_ID, window.RAVEN_CONFIG).install(); } -function register(state, emitter) { - navigator.serviceWorker.register('serviceWorker.js') - .then( reg => console.log("registration successful or already installed")) - .catch( e => console.log(e) ); -} - app.use((state, emitter) => { state.transfer = null; state.fileInfo = null; @@ -51,7 +44,9 @@ app.use((state, emitter) => { }); }); -app.use(register); +app.use(() => { + navigator.serviceWorker.register('/serviceWorker.js'); +}); app.use(metrics); app.use(fileManager); app.use(dragManager); diff --git a/app/serviceWorker.js b/app/serviceWorker.js index 624a6028..b16e8520 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -1,38 +1,41 @@ import Keychain from './keychain'; -self.addEventListener('install', (event) => { - console.log("install event on sw") +self.addEventListener('install', event => { self.skipWaiting(); }); async function decryptStream(request) { - console.log("DOWNLOAD FETCH") - //make actual request to server, get response back, decrypt it, send it - const response = await fetch(req, - { - method: 'GET', - headers: { Authorization: auth } - } - ); + const response = await fetch(request.url, { + method: 'GET', + headers: { Authorization: self.auth } + }); if (response.status !== 200) { - console.log(response.status) - throw new Error(response.status); + return response; } - const body = response.body; - console.log(body); + const body = response.body; //stream + const decrypted = self.keychain.decryptStream(body); - return response; + const headers = { + headers: { + 'Content-Disposition': 'attachment; filename=' + self.filename + } + }; + + const newRes = new Response(decrypted, headers); + return newRes; } -self.onfetch = (event) => { +self.onfetch = event => { const req = event.request.clone(); if (req.url.includes('/api/download')) { event.respondWith(decryptStream(req)); } }; -self.onmessage = (event) => { +self.onmessage = event => { self.keychain = new Keychain(event.data.key, event.data.nonce); -}; \ No newline at end of file + self.filename = event.data.filename; + self.auth = event.data.auth; +}; diff --git a/app/utils.js b/app/utils.js index f675476e..e3c900a6 100644 --- a/app/utils.js +++ b/app/utils.js @@ -24,7 +24,7 @@ function loadShim(polyfill) { async function canHasSend() { try { - const key = await window.crypto.subtle.generateKey( + const key = await crypto.subtle.generateKey( { name: 'AES-GCM', length: 128 @@ -32,25 +32,25 @@ async function canHasSend() { true, ['encrypt', 'decrypt'] ); - await window.crypto.subtle.encrypt( + await crypto.subtle.encrypt( { name: 'AES-GCM', - iv: window.crypto.getRandomValues(new Uint8Array(12)), + iv: crypto.getRandomValues(new Uint8Array(12)), tagLength: 128 }, key, new ArrayBuffer(8) ); - await window.crypto.subtle.importKey( + await crypto.subtle.importKey( 'raw', - window.crypto.getRandomValues(new Uint8Array(16)), + crypto.getRandomValues(new Uint8Array(16)), 'PBKDF2', false, ['deriveKey'] ); - await window.crypto.subtle.importKey( + await crypto.subtle.importKey( 'raw', - window.crypto.getRandomValues(new Uint8Array(16)), + crypto.getRandomValues(new Uint8Array(16)), 'HKDF', false, ['deriveKey'] @@ -75,7 +75,7 @@ function copyToClipboard(str) { if (navigator.userAgent.match(/iphone|ipad|ipod/i)) { const range = document.createRange(); range.selectNodeContents(aux); - const sel = window.getSelection(); + const sel = getSelection(); sel.removeAllRanges(); sel.addRange(range); aux.setSelectionRange(0, str.length); diff --git a/package-lock.json b/package-lock.json index b8c6358e..7ca004fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17701,6 +17701,11 @@ "any-observable": "0.2.0" } }, + "streamsaver": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/streamsaver/-/streamsaver-1.0.1.tgz", + "integrity": "sha1-R11ASXO15pJqVX8OTNhVijUg4Hw=" + }, "strftime": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/strftime/-/strftime-0.10.0.tgz", diff --git a/package.json b/package.json index a0685123..dce00a5a 100644 --- a/package.json +++ b/package.json @@ -122,7 +122,6 @@ "aws-sdk": "^2.206.0", "babel-plugin-transform-runtime": "^6.23.0", "babel-polyfill": "^6.26.0", - "babel-runtime": "^6.26.0", "choo": "^6.10.0", "cldr-core": "^32.0.0", "convict": "^4.0.1", diff --git a/server/bin/prod.js b/server/bin/prod.js index d52393ed..a193d84c 100644 --- a/server/bin/prod.js +++ b/server/bin/prod.js @@ -11,6 +11,7 @@ if (config.sentry_dsn) { } const app = express(); + expressWs(app, null, { perMessageDeflate: false }); app.ws('/api/ws', require('../routes/ws')); routes(app); diff --git a/test/frontend/tests/api-tests.js b/test/frontend/tests/api-tests.js index 301a09de..eaf4b04a 100644 --- a/test/frontend/tests/api-tests.js +++ b/test/frontend/tests/api-tests.js @@ -22,7 +22,7 @@ describe('API', function() { const result = await up.result; assert.ok(result.url); assert.ok(result.id); - assert.ok(result.ownerToken); + assert.ok(result.ownerToken); }); it('can be cancelled', async function() { diff --git a/test/frontend/tests/streaming-tests.js b/test/frontend/tests/streaming-tests.js index 77fdec5a..44f898d8 100644 --- a/test/frontend/tests/streaming-tests.js +++ b/test/frontend/tests/streaming-tests.js @@ -49,7 +49,7 @@ describe('Streaming', function() { it('can decrypt', async function() { const encBlob = new Blob([encrypted]); const ece = new ECE(encBlob, key, 'decrypt', rs); - const decStream = await ece.transform() + const decStream = await ece.transform(); const reader = decStream.getReader(); let result = Buffer.from([]); diff --git a/webpackSw.config.js b/webpackSw.config.js index ded7bc29..d56f9b71 100644 --- a/webpackSw.config.js +++ b/webpackSw.config.js @@ -1,16 +1,9 @@ const path = require('path'); -const webpack = require('webpack'); const regularJSOptions = { babelrc: false, - presets: [['env', { modules: false }], 'stage-2'], - // yo-yoify converts html template strings to direct dom api calls - plugins: [ - "transform-runtime", { - //"polyfill": false, - //"regenerator": true - } - ] + presets: [['env'], 'stage-2'], + plugins: ['transform-runtime'] }; const entry = { @@ -24,17 +17,14 @@ module.exports = { path: path.resolve(__dirname, 'dist'), publicPath: '/' }, + module: { rules: [ { loader: 'babel-loader', - // exclude: /node_modules/, - include: [ - path.resolve(__dirname, 'app'), - path.resolve(__dirname, 'node_modules/buffer') - ], + exclude: /node_modules/, options: regularJSOptions } ] } -}; \ No newline at end of file +}; From 921df9e1aa7c6d0125e7c7554c8fe73364bc45f7 Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 9 Jul 2018 15:39:06 -0700 Subject: [PATCH 028/368] dupe network request bug --- app/api.js | 7 ++-- app/fileReceiver.js | 53 ++++++++++++++++++++++++--- app/serviceWorker.js | 50 ++++++++++++++++++++++--- app/templates/downloadButton/index.js | 1 + 4 files changed, 96 insertions(+), 15 deletions(-) diff --git a/app/api.js b/app/api.js index 2047c2c2..d87147d7 100644 --- a/app/api.js +++ b/app/api.js @@ -13,7 +13,7 @@ function post(obj) { }; } -function parseNonce(header) { +export function parseNonce(header) { header = header || ''; return header.split(' ')[1]; } @@ -162,8 +162,8 @@ async function upload( ws.send(buf); - onprogress([Math.min(streamInfo.fileSize, size), streamInfo.fileSize]); - size += streamInfo.recordSize; + onprogress([size, streamInfo.fileSize]); + size += buf.length; state = await reader.read(); while (ws.bufferedAmount > streamInfo.recordSize * 2) { await delay(); @@ -205,7 +205,6 @@ export function uploadWs(encrypted, info, metadata, verifierB64, onprogress) { async function downloadS(id, keychain, signal) { const auth = await keychain.authHeader(); - //this will be already funneled through serviceworker const response = await fetch(`/api/download/${id}`, { signal: signal, method: 'GET', diff --git a/app/fileReceiver.js b/app/fileReceiver.js index c610b76a..603cd34f 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -1,7 +1,7 @@ import Nanobus from 'nanobus'; import Keychain from './keychain'; -import { bytes } from './utils'; -import { metadata } from './api'; +import { delay, bytes } from './utils'; +import { parseNonce, metadata } from './api'; export default class FileReceiver extends Nanobus { constructor(fileInfo) { @@ -67,12 +67,34 @@ export default class FileReceiver extends Nanobus { return result.slice(0, offset).buffer; } + sendMessageToSw(msg) { + return new Promise( (resolve, reject) => { + const channel = new MessageChannel(); + + channel.port1.onmessage = function(event) { + if(event.data.error !== undefined) { + reject(event.data.error); + } else { + resolve(event.data); + } + } + navigator.serviceWorker.controller.postMessage(msg, [channel.port2]); + }); + } + async download(noSave = false) { const onprogress = p => { this.progress = p; this.emit('progress'); }; + this.downloadRequest = { + cancel: () => { + this.sendMessageToSw('cancel'); + //throw new Error(0); + } + } + try { this.state = 'downloading'; @@ -83,9 +105,9 @@ export default class FileReceiver extends Nanobus { filename: this.fileInfo.name, auth: auth }; - navigator.serviceWorker.controller.postMessage(info); + await this.sendMessageToSw(info); - onprogress([0, this.fileInfo.size]); + console.log("SENDING REQUEST FROM PAGE ONCE") if (!noSave) { const downloadUrl = `${location.protocol}//${ @@ -96,12 +118,31 @@ export default class FileReceiver extends Nanobus { document.body.appendChild(a); a.click(); URL.revokeObjectURL(downloadUrl); + + /* + const auth = await this.sendMessageToSw('authHeader'); + if (auth) { + this.keychain.nonce = parseNonce(auth); + } + */ + + let prog = 0; + while (prog < this.fileInfo.size) { + prog = await this.sendMessageToSw('progress'); + onprogress([prog, this.fileInfo.size]); + await delay(); + } } - //this.msg = 'downloadFinish'; - //this.state = 'complete'; + this.downloadRequest = null; + this.msg = 'downloadFinish'; + this.state = 'complete'; + } catch (e) { this.downloadRequest = null; + if (e === 'cancelled') { + throw new Error(0); + } throw e; } } diff --git a/app/serviceWorker.js b/app/serviceWorker.js index b16e8520..f6bef69e 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -5,17 +5,33 @@ self.addEventListener('install', event => { }); async function decryptStream(request) { + self.controller = new AbortController(); + console.log("SW INTERCEPTED DOWNLOAD") + console.log(request) const response = await fetch(request.url, { method: 'GET', - headers: { Authorization: self.auth } + headers: { Authorization: self.auth }, + signal: controller.signal }); if (response.status !== 200) { + console.log(response.status); return response; } + self.authHeader = response.headers.get('WWW-Authenticate'); + + const body = response.body; //stream - const decrypted = self.keychain.decryptStream(body); + + const progStream = new TransformStream({ + transform: (chunk, controller) => { + self.progress += chunk.length; + controller.enqueue(chunk); + } + }); + + const decrypted = self.keychain.decryptStream(body.pipeThrough(progStream)); const headers = { headers: { @@ -35,7 +51,31 @@ self.onfetch = event => { }; self.onmessage = event => { - self.keychain = new Keychain(event.data.key, event.data.nonce); - self.filename = event.data.filename; - self.auth = event.data.auth; + if (event.data.key) { + if (!self.keychain) { + self.keychain = new Keychain(event.data.key, event.data.nonce); + } + self.filename = event.data.filename; + self.auth = event.data.auth; + self.progress = 0; + self.cancelled = false; + event.ports[0].postMessage("file info received"); + + } else if (event.data === "progress") { + if (self.cancelled) { + event.ports[0].postMessage({error: "cancelled"}); + } else { + event.ports[0].postMessage(self.progress); + } + + } else if (event.data === "authHeader") { + event.ports[0].postMessage(self.authHeader); + + } else if (event.data === "cancel") { + self.cancelled = true; + if (self.controller) { + self.controller.abort(); + } + event.ports[0].postMessage("download cancelled"); + } }; diff --git a/app/templates/downloadButton/index.js b/app/templates/downloadButton/index.js index e1cac538..bcad365b 100644 --- a/app/templates/downloadButton/index.js +++ b/app/templates/downloadButton/index.js @@ -8,6 +8,7 @@ module.exports = function(state, emit) { function download(event) { event.preventDefault(); + console.log("DOWNLOAD FIRE") emit('download', state.fileInfo); } }; From 6db3009e5f5e38897eedf23b9a5c6ad04b2dcfd7 Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 9 Jul 2018 17:00:19 -0700 Subject: [PATCH 029/368] download cancel and progress --- app/fileReceiver.js | 15 ++++++--------- app/serviceWorker.js | 27 ++++++++++----------------- app/templates/downloadButton/index.js | 1 - package.json | 2 +- webpackSw.config.js | 4 ++++ 5 files changed, 21 insertions(+), 28 deletions(-) diff --git a/app/fileReceiver.js b/app/fileReceiver.js index 603cd34f..29de8df6 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -68,17 +68,17 @@ export default class FileReceiver extends Nanobus { } sendMessageToSw(msg) { - return new Promise( (resolve, reject) => { + return new Promise((resolve, reject) => { const channel = new MessageChannel(); channel.port1.onmessage = function(event) { - if(event.data.error !== undefined) { + if (event.data.error !== undefined) { reject(event.data.error); } else { resolve(event.data); } - } - navigator.serviceWorker.controller.postMessage(msg, [channel.port2]); + }; + navigator.serviceWorker.controller.postMessage(msg, [channel.port2]); }); } @@ -93,7 +93,7 @@ export default class FileReceiver extends Nanobus { this.sendMessageToSw('cancel'); //throw new Error(0); } - } + }; try { this.state = 'downloading'; @@ -107,7 +107,7 @@ export default class FileReceiver extends Nanobus { }; await this.sendMessageToSw(info); - console.log("SENDING REQUEST FROM PAGE ONCE") + console.log('SENDING REQUEST FROM PAGE ONCE'); if (!noSave) { const downloadUrl = `${location.protocol}//${ @@ -119,12 +119,10 @@ export default class FileReceiver extends Nanobus { a.click(); URL.revokeObjectURL(downloadUrl); - /* const auth = await this.sendMessageToSw('authHeader'); if (auth) { this.keychain.nonce = parseNonce(auth); } - */ let prog = 0; while (prog < this.fileInfo.size) { @@ -137,7 +135,6 @@ export default class FileReceiver extends Nanobus { this.downloadRequest = null; this.msg = 'downloadFinish'; this.state = 'complete'; - } catch (e) { this.downloadRequest = null; if (e === 'cancelled') { diff --git a/app/serviceWorker.js b/app/serviceWorker.js index f6bef69e..815bc099 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -6,8 +6,8 @@ self.addEventListener('install', event => { async function decryptStream(request) { self.controller = new AbortController(); - console.log("SW INTERCEPTED DOWNLOAD") - console.log(request) + //console.log('SW INTERCEPTED DOWNLOAD'); + const response = await fetch(request.url, { method: 'GET', headers: { Authorization: self.auth }, @@ -15,13 +15,11 @@ async function decryptStream(request) { }); if (response.status !== 200) { - console.log(response.status); return response; } self.authHeader = response.headers.get('WWW-Authenticate'); - const body = response.body; //stream const progStream = new TransformStream({ @@ -52,30 +50,25 @@ self.onfetch = event => { self.onmessage = event => { if (event.data.key) { - if (!self.keychain) { - self.keychain = new Keychain(event.data.key, event.data.nonce); - } + self.keychain = new Keychain(event.data.key, event.data.nonce); self.filename = event.data.filename; self.auth = event.data.auth; self.progress = 0; self.cancelled = false; - event.ports[0].postMessage("file info received"); - - } else if (event.data === "progress") { + event.ports[0].postMessage('file info received'); + } else if (event.data === 'progress') { if (self.cancelled) { - event.ports[0].postMessage({error: "cancelled"}); + event.ports[0].postMessage({ error: 'cancelled' }); } else { event.ports[0].postMessage(self.progress); } - - } else if (event.data === "authHeader") { - event.ports[0].postMessage(self.authHeader); - - } else if (event.data === "cancel") { + } else if (event.data === 'authHeader') { + event.ports[0].postMessage(self.authHeader); + } else if (event.data === 'cancel') { self.cancelled = true; if (self.controller) { self.controller.abort(); } - event.ports[0].postMessage("download cancelled"); + event.ports[0].postMessage('download cancelled'); } }; diff --git a/app/templates/downloadButton/index.js b/app/templates/downloadButton/index.js index bcad365b..e1cac538 100644 --- a/app/templates/downloadButton/index.js +++ b/app/templates/downloadButton/index.js @@ -8,7 +8,6 @@ module.exports = function(state, emit) { function download(event) { event.preventDefault(); - console.log("DOWNLOAD FIRE") emit('download', state.fileInfo); } }; diff --git a/package.json b/package.json index dce00a5a..6b746261 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "prepush": "npm test", "check": "nsp check", "clean": "rimraf dist", - "build": "npm run clean && webpack -p && webpack --config webpackSw.config.js -p", + "build": "npm run clean && webpack && webpack --config webpackSw.config.js", "lint": "npm-run-all lint:*", "lint:css": "stylelint app/*.css app/**/*.css", "lint:js": "eslint .", diff --git a/webpackSw.config.js b/webpackSw.config.js index d56f9b71..4fa33fc8 100644 --- a/webpackSw.config.js +++ b/webpackSw.config.js @@ -1,10 +1,12 @@ const path = require('path'); +/* const regularJSOptions = { babelrc: false, presets: [['env'], 'stage-2'], plugins: ['transform-runtime'] }; +*/ const entry = { serviceWorker: ['./app/serviceWorker.js'] @@ -18,6 +20,7 @@ module.exports = { publicPath: '/' }, + /* module: { rules: [ { @@ -27,4 +30,5 @@ module.exports = { } ] } + */ }; From 16d7af843b1501c0f04d726cabdfe33adede18dd Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Tue, 10 Jul 2018 10:47:50 -0700 Subject: [PATCH 030/368] new dev webpack config for great deving --- package.json | 2 +- webpack.dev.config.js | 226 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 227 insertions(+), 1 deletion(-) create mode 100644 webpack.dev.config.js diff --git a/package.json b/package.json index dce00a5a..8c0a6ea2 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "test:frontend": "cross-env NODE_ENV=development node test/frontend/runner.js && nyc report --reporter=html", "test-integration": "docker-compose up --abort-on-container-exit --exit-code-from integration-tests --build --remove-orphans --quiet-pull && docker-compose down", "test-integration-stage": "cross-env BASE_URL=https://send.stage.mozaws.net npm run test-integration", - "start": "npm run clean && cross-env NODE_ENV=development webpack-dev-server", + "start": "npm run clean && cross-env NODE_ENV=development webpack-dev-server --config webpack.dev.config.js", "prod": "node server/bin/prod.js" }, "lint-staged": { diff --git a/webpack.dev.config.js b/webpack.dev.config.js new file mode 100644 index 00000000..8ae75509 --- /dev/null +++ b/webpack.dev.config.js @@ -0,0 +1,226 @@ +const path = require('path'); +const webpack = require('webpack'); +const CopyPlugin = require('copy-webpack-plugin'); +const ManifestPlugin = require('webpack-manifest-plugin'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const IS_DEV = process.env.NODE_ENV === 'development'; + +const regularJSOptions = { + babelrc: false, + presets: [['env', { modules: false }], 'stage-2'], + // yo-yoify converts html template strings to direct dom api calls + plugins: ['yo-yoify'] +}; + +const entry = { + // babel-polyfill and fluent are directly included in vendor + // because they are not explicitly referenced by app + vendor: ['babel-polyfill', 'fluent'], + app: ['./app/main.js'], + style: ['./app/main.css'], + serviceWorker: ['./app/serviceWorker.js'] +}; + +if (IS_DEV) { + entry.tests = ['./test/frontend/index.js']; + // istanbul instruments the source for code coverage + regularJSOptions.plugins.push('istanbul'); +} + +module.exports = { + entry, + output: { + filename: '[name].js', + path: path.resolve(__dirname, 'dist'), + publicPath: '/' + }, + devtool: IS_DEV && 'inline-source-map', + module: { + rules: [ + { + test: /\.js$/, + oneOf: [ + { + include: [require.resolve('./assets/cryptofill')], + use: [ + { + loader: 'file-loader', + options: { + name: '[name].[hash:8].[ext]' + } + } + ] + }, + { + // inlines version from package.json into header/index.js + include: require.resolve('./app/templates/header'), + use: [ + { + loader: 'babel-loader', + options: regularJSOptions + }, + './build/version_loader' + ] + }, + { + // fluent gets exposed as a global so that each language script + // can load independently and share it. + include: [path.dirname(require.resolve('fluent'))], + use: [ + { + loader: 'expose-loader', + options: 'fluent' + }, + { + loader: 'babel-loader', + options: { + presets: [['env', { modules: false }], 'stage-3'] + } + } + ] + }, + { + include: [ + path.resolve(__dirname, 'app'), + path.resolve(__dirname, 'common') + ] + }, + { + loader: 'babel-loader', + include: [ + // some dependencies need to get re-babeled because we + // have different targets than their default configs + path.resolve(__dirname, 'node_modules/testpilot-ga/src'), + path.resolve(__dirname, 'node_modules/fluent-intl-polyfill'), + path.resolve(__dirname, 'node_modules/intl-pluralrules') + ], + options: regularJSOptions + }, + { + // Strip asserts from our deps, mainly choojs family + include: [path.resolve(__dirname, 'node_modules')], + loader: 'webpack-unassert-loader' + } + ] + }, + { + test: /\.(png|jpg)$/, + loader: 'file-loader', + options: { + name: '[name].[hash:8].[ext]' + } + }, + { + test: /\.svg$/, + use: [ + { + loader: 'file-loader', + options: { + name: '[name].[hash:8].[ext]' + } + }, + { + loader: 'svgo-loader', + options: { + plugins: [ + { removeViewBox: false }, // true causes stretched images + { convertStyleToAttrs: true }, // for CSP, no unsafe-eval + { removeTitle: true } // for smallness + ] + } + } + ] + }, + { + // creates style.css with all styles + test: /\.css$/, + use: ExtractTextPlugin.extract({ + use: [ + { + loader: 'css-loader', + options: { modules: false, importLoaders: 1 } + }, + 'postcss-loader' + ] + }) + }, + { + // creates version.json for /__version__ from package.json + test: require.resolve('./package.json'), + use: [ + { + loader: 'file-loader', + options: { + name: 'version.json' + } + }, + 'extract-loader', + './build/package_json_loader' + ] + }, + { + // creates a js script for each ftl + test: /\.ftl$/, + use: [ + { + loader: 'file-loader', + options: { + name: '[path][name].[hash:8].js' + } + }, + 'extract-loader', + './build/fluent_loader' + ] + }, + { + // creates test.js for /test + test: require.resolve('./test/frontend/index.js'), + use: ['babel-loader', 'val-loader'] + }, + { + // loads all assets from assets/ for use by common/assets.js + test: require.resolve('./build/generate_asset_map.js'), + use: ['babel-loader', 'val-loader'] + }, + { + // loads all the ftl from public/locales for use by common/locales.js + test: require.resolve('./build/generate_l10n_map.js'), + use: ['babel-loader', 'val-loader'] + } + ] + }, + plugins: [ + new CopyPlugin([ + { + context: 'public', + from: '*.*' + } + ]), + new webpack.IgnorePlugin(/dist/), // used in common/*.js + new webpack.IgnorePlugin(/require-from-string/), // used in common/locales.js + new webpack.HashedModuleIdsPlugin(), + // new webpack.optimize.CommonsChunkPlugin({ + // name: 'vendor', + // minChunks: ({ resource }) => /node_modules/.test(resource) + // }), + // new webpack.optimize.CommonsChunkPlugin({ + // name: 'runtime' + // }), + new ExtractTextPlugin({ + filename: 'style.[contenthash:8].css' + }), + new ManifestPlugin() // used by server side to resolve hashed assets + ], + devServer: { + compress: true, + host: '0.0.0.0', + before: IS_DEV ? require('./server/bin/dev') : undefined, + proxy: { + '/api/ws': { + target: 'ws://localhost:8081', + ws: true, + secure: false + } + } + } +}; From ff7969a7ef34edf11076317083e3c9dd1d0d5f8a Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 11 Jul 2018 16:52:46 -0700 Subject: [PATCH 031/368] fix download workflow tests --- app/api.js | 21 +-- app/ece.js | 22 +-- app/fileReceiver.js | 45 ++--- app/serviceWorker.js | 105 ++++++------ package.json | 2 +- server/routes/jsconfig.js | 2 - test/frontend/tests/workflow-tests.js | 3 +- webpack.dev.config.js | 226 ++++++++++++++++++++++++++ 8 files changed, 327 insertions(+), 99 deletions(-) create mode 100644 webpack.dev.config.js diff --git a/app/api.js b/app/api.js index d87147d7..26b24a2c 100644 --- a/app/api.js +++ b/app/api.js @@ -1,7 +1,4 @@ import { arrayToB64, b64ToArray, delay } from './utils'; -import { ReadableStream as PolyRS } from 'web-streams-polyfill'; -import { createReadableStreamWrapper } from '@mattiasbuelens/web-streams-adapter'; -const RS = createReadableStreamWrapper(PolyRS); function post(obj) { return { @@ -58,10 +55,12 @@ export async function setParams(id, owner_token, params) { export async function fileInfo(id, owner_token) { const response = await fetch(`/api/info/${id}`, post({ owner_token })); + if (response.ok) { const obj = await response.json(); return obj; } + throw new Error(response.status); } @@ -211,23 +210,17 @@ async function downloadS(id, keychain, signal) { headers: { Authorization: auth } }); - if (response.status !== 200) { - throw new Error(response.status); - } - const authHeader = response.headers.get('WWW-Authenticate'); if (authHeader) { keychain.nonce = parseNonce(authHeader); } - const fileSize = response.headers.get('Content-Length'); - - //right now only chrome allows obtaining a stream from fetch - //for other browsers we fetch as a blob and convert to polyfill stream later - if (response.body) { - return RS(response.body); + if (response.status !== 200) { + throw new Error(response.status); } - return response.blob(); + //const fileSize = response.headers.get('Content-Length'); + + return response.body; } async function tryDownloadStream(id, keychain, signal, tries = 1) { diff --git a/app/ece.js b/app/ece.js index 07b06a5a..9dbc6948 100644 --- a/app/ece.js +++ b/app/ece.js @@ -1,16 +1,4 @@ require('buffer'); -/* -import { - TransformStream as PolyTS, - ReadableStream as PolyRS -} from 'web-streams-polyfill'; -import { - createReadableStreamWrapper, - createTransformStreamWrapper -} from '@mattiasbuelens/web-streams-adapter'; -const toTS = createTransformStreamWrapper(PolyTS); -const toRS = createReadableStreamWrapper(PolyRS); -*/ const NONCE_LENGTH = 12; const TAG_LENGTH = 16; @@ -362,17 +350,19 @@ export default class ECE { if (this.input instanceof Blob) { inputStream = new ReadableStream( new BlobSlicer(this.input, this.rs, this.mode) - ); //inputStream = toRS(new ReadableStream(new BlobSlicer(this.input, this.rs, this.mode))); + ); } else { + // eslint-disable-next-line no-undef const sliceStream = new TransformStream( new StreamSlicer(this.rs, this.mode) - ); //const sliceStream = toTS(new TransformStream(new StreamSlicer(this.rs, this.mode))); + ); inputStream = this.input.pipeThrough(sliceStream); } + // eslint-disable-next-line no-undef const cryptoStream = new TransformStream( new ECETransformer(this.mode, this.key, this.rs, this.salt) - ); //const cryptoStream = toTS(new TransformStream(new ECETransformer(this.mode, this.key, this.rs, this.salt))); - return inputStream.pipeThrough(cryptoStream); //return toRS(inputStream.pipeThrough(cryptoStream)); + ); + return inputStream.pipeThrough(cryptoStream); } } diff --git a/app/fileReceiver.js b/app/fileReceiver.js index 29de8df6..ceffccf6 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -1,7 +1,7 @@ import Nanobus from 'nanobus'; import Keychain from './keychain'; import { delay, bytes } from './utils'; -import { parseNonce, metadata } from './api'; +import { metadata } from './api'; export default class FileReceiver extends Nanobus { constructor(fileInfo) { @@ -72,12 +72,15 @@ export default class FileReceiver extends Nanobus { const channel = new MessageChannel(); channel.port1.onmessage = function(event) { - if (event.data.error !== undefined) { + if (event.data === undefined) { + reject('bad response from serviceWorker'); + } else if (event.data.error !== undefined) { reject(event.data.error); } else { resolve(event.data); } }; + navigator.serviceWorker.controller.postMessage(msg, [channel.port2]); }); } @@ -90,26 +93,34 @@ export default class FileReceiver extends Nanobus { this.downloadRequest = { cancel: () => { - this.sendMessageToSw('cancel'); - //throw new Error(0); + this.sendMessageToSw({ request: 'cancel', id: this.fileInfo.id }); + throw new Error(0); } }; try { this.state = 'downloading'; - const auth = await this.keychain.authHeader(); const info = { - key: this.fileInfo.secretKey, - nonce: this.fileInfo.nonce, + request: 'init', + id: this.fileInfo.id, filename: this.fileInfo.name, - auth: auth + key: this.fileInfo.secretKey, + requiresPassword: this.fileInfo.requiresPassword, + password: this.fileInfo.password, + url: this.fileInfo.url, + noSave }; await this.sendMessageToSw(info); - console.log('SENDING REQUEST FROM PAGE ONCE'); + onprogress([0, this.fileInfo.size]); - if (!noSave) { + if (noSave) { + const res = await fetch(`/api/download/${this.fileInfo.id}`); + if (res.status !== 200) { + throw new Error(res.status); + } + } else { const downloadUrl = `${location.protocol}//${ location.host }/api/download/${this.fileInfo.id}`; @@ -119,14 +130,13 @@ export default class FileReceiver extends Nanobus { a.click(); URL.revokeObjectURL(downloadUrl); - const auth = await this.sendMessageToSw('authHeader'); - if (auth) { - this.keychain.nonce = parseNonce(auth); - } - let prog = 0; while (prog < this.fileInfo.size) { - prog = await this.sendMessageToSw('progress'); + const msg = await this.sendMessageToSw({ + request: 'progress', + id: this.fileInfo.id + }); + prog = msg.progress; onprogress([prog, this.fileInfo.size]); await delay(); } @@ -137,9 +147,6 @@ export default class FileReceiver extends Nanobus { this.state = 'complete'; } catch (e) { this.downloadRequest = null; - if (e === 'cancelled') { - throw new Error(0); - } throw e; } } diff --git a/app/serviceWorker.js b/app/serviceWorker.js index 815bc099..cf504e20 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -1,44 +1,50 @@ import Keychain from './keychain'; +import { downloadStream } from './api'; + +let noSave = false; +const map = new Map(); self.addEventListener('install', event => { self.skipWaiting(); }); +self.addEventListener('activate', event => { + self.clients.claim(); +}); + async function decryptStream(request) { - self.controller = new AbortController(); - //console.log('SW INTERCEPTED DOWNLOAD'); + const id = request.url.split('/')[5]; + try { + const file = map.get(id); - const response = await fetch(request.url, { - method: 'GET', - headers: { Authorization: self.auth }, - signal: controller.signal - }); + file.download = downloadStream(id, file.keychain); - if (response.status !== 200) { - return response; + const stream = await file.download.result; + + // eslint-disable-next-line no-undef + const progStream = new TransformStream({ + transform: (chunk, controller) => { + file.progress += chunk.length; + controller.enqueue(chunk); + } + }); + + const readStream = stream.pipeThrough(progStream); + const decrypted = file.keychain.decryptStream(readStream); + + const headers = { + 'Content-Disposition': 'attachment; filename=' + file.filename + }; + + return new Response(decrypted, { headers }); + } catch (e) { + if (noSave) { + return new Response(null, { status: e.message }); + } + + const redirectRes = await fetch(`/download/${id}`); + return new Response(redirectRes.body, { status: 302 }); } - - self.authHeader = response.headers.get('WWW-Authenticate'); - - const body = response.body; //stream - - const progStream = new TransformStream({ - transform: (chunk, controller) => { - self.progress += chunk.length; - controller.enqueue(chunk); - } - }); - - const decrypted = self.keychain.decryptStream(body.pipeThrough(progStream)); - - const headers = { - headers: { - 'Content-Disposition': 'attachment; filename=' + self.filename - } - }; - - const newRes = new Response(decrypted, headers); - return newRes; } self.onfetch = event => { @@ -49,25 +55,32 @@ self.onfetch = event => { }; self.onmessage = event => { - if (event.data.key) { - self.keychain = new Keychain(event.data.key, event.data.nonce); - self.filename = event.data.filename; - self.auth = event.data.auth; - self.progress = 0; - self.cancelled = false; + if (event.data.request === 'init') { + noSave = event.data.noSave; + const info = { + keychain: new Keychain(event.data.key), + filename: event.data.filename, + progress: 0, + cancelled: false + }; + if (event.data.requiresPassword) { + info.keychain.setPassword(event.data.password, event.data.url); + } + map.set(event.data.id, info); + event.ports[0].postMessage('file info received'); - } else if (event.data === 'progress') { - if (self.cancelled) { + } else if (event.data.request === 'progress') { + const file = map.get(event.data.id); + if (file.cancelled) { event.ports[0].postMessage({ error: 'cancelled' }); } else { - event.ports[0].postMessage(self.progress); + event.ports[0].postMessage({ progress: file.progress }); } - } else if (event.data === 'authHeader') { - event.ports[0].postMessage(self.authHeader); - } else if (event.data === 'cancel') { - self.cancelled = true; - if (self.controller) { - self.controller.abort(); + } else if (event.data.request === 'cancel') { + const file = map.get(event.data.id); + file.cancelled = true; + if (file.download) { + file.download.cancel(); } event.ports[0].postMessage('download cancelled'); } diff --git a/package.json b/package.json index 6b746261..7e9603db 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "test:frontend": "cross-env NODE_ENV=development node test/frontend/runner.js && nyc report --reporter=html", "test-integration": "docker-compose up --abort-on-container-exit --exit-code-from integration-tests --build --remove-orphans --quiet-pull && docker-compose down", "test-integration-stage": "cross-env BASE_URL=https://send.stage.mozaws.net npm run test-integration", - "start": "npm run clean && cross-env NODE_ENV=development webpack-dev-server", + "start": "npm run clean && cross-env NODE_ENV=development webpack-dev-server --config webpack.dev.config.js", "prod": "node server/bin/prod.js" }, "lint-staged": { diff --git a/server/routes/jsconfig.js b/server/routes/jsconfig.js index 20854998..23e07374 100644 --- a/server/routes/jsconfig.js +++ b/server/routes/jsconfig.js @@ -1,5 +1,4 @@ const config = require('../config'); -const assets = require('../../common/assets'); let sentry = ''; if (config.sentry_id) { @@ -37,7 +36,6 @@ if (isIE && !isUnsupportedPage) { } var MAXFILESIZE = ${config.max_file_size}; var EXPIRE_SECONDS = ${config.expire_seconds}; -var SERVICEWORKER = '${assets.get('serviceWorker.js')}'; ${ga} ${sentry} `; diff --git a/test/frontend/tests/workflow-tests.js b/test/frontend/tests/workflow-tests.js index eed956da..6aee7ecf 100644 --- a/test/frontend/tests/workflow-tests.js +++ b/test/frontend/tests/workflow-tests.js @@ -8,6 +8,7 @@ const noSave = !headless; // only run the saveFile code if headless // FileSender uses a File in real life but a Blob works for testing const blob = new Blob(['hello world!'], { type: 'text/plain' }); blob.name = 'test.txt'; +navigator.serviceWorker.register('/serviceWorker.js'); describe('Upload / Download flow', function() { it('can only download once by default', async function() { @@ -67,7 +68,7 @@ describe('Upload / Download flow', function() { try { // We can't decrypt without IV from metadata // but let's try to download anyway - await fr.download(); + await fr.download(noSave); assert.fail('downloaded file with bad password'); } catch (e) { assert.equal(e.message, '401'); diff --git a/webpack.dev.config.js b/webpack.dev.config.js new file mode 100644 index 00000000..8ae75509 --- /dev/null +++ b/webpack.dev.config.js @@ -0,0 +1,226 @@ +const path = require('path'); +const webpack = require('webpack'); +const CopyPlugin = require('copy-webpack-plugin'); +const ManifestPlugin = require('webpack-manifest-plugin'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const IS_DEV = process.env.NODE_ENV === 'development'; + +const regularJSOptions = { + babelrc: false, + presets: [['env', { modules: false }], 'stage-2'], + // yo-yoify converts html template strings to direct dom api calls + plugins: ['yo-yoify'] +}; + +const entry = { + // babel-polyfill and fluent are directly included in vendor + // because they are not explicitly referenced by app + vendor: ['babel-polyfill', 'fluent'], + app: ['./app/main.js'], + style: ['./app/main.css'], + serviceWorker: ['./app/serviceWorker.js'] +}; + +if (IS_DEV) { + entry.tests = ['./test/frontend/index.js']; + // istanbul instruments the source for code coverage + regularJSOptions.plugins.push('istanbul'); +} + +module.exports = { + entry, + output: { + filename: '[name].js', + path: path.resolve(__dirname, 'dist'), + publicPath: '/' + }, + devtool: IS_DEV && 'inline-source-map', + module: { + rules: [ + { + test: /\.js$/, + oneOf: [ + { + include: [require.resolve('./assets/cryptofill')], + use: [ + { + loader: 'file-loader', + options: { + name: '[name].[hash:8].[ext]' + } + } + ] + }, + { + // inlines version from package.json into header/index.js + include: require.resolve('./app/templates/header'), + use: [ + { + loader: 'babel-loader', + options: regularJSOptions + }, + './build/version_loader' + ] + }, + { + // fluent gets exposed as a global so that each language script + // can load independently and share it. + include: [path.dirname(require.resolve('fluent'))], + use: [ + { + loader: 'expose-loader', + options: 'fluent' + }, + { + loader: 'babel-loader', + options: { + presets: [['env', { modules: false }], 'stage-3'] + } + } + ] + }, + { + include: [ + path.resolve(__dirname, 'app'), + path.resolve(__dirname, 'common') + ] + }, + { + loader: 'babel-loader', + include: [ + // some dependencies need to get re-babeled because we + // have different targets than their default configs + path.resolve(__dirname, 'node_modules/testpilot-ga/src'), + path.resolve(__dirname, 'node_modules/fluent-intl-polyfill'), + path.resolve(__dirname, 'node_modules/intl-pluralrules') + ], + options: regularJSOptions + }, + { + // Strip asserts from our deps, mainly choojs family + include: [path.resolve(__dirname, 'node_modules')], + loader: 'webpack-unassert-loader' + } + ] + }, + { + test: /\.(png|jpg)$/, + loader: 'file-loader', + options: { + name: '[name].[hash:8].[ext]' + } + }, + { + test: /\.svg$/, + use: [ + { + loader: 'file-loader', + options: { + name: '[name].[hash:8].[ext]' + } + }, + { + loader: 'svgo-loader', + options: { + plugins: [ + { removeViewBox: false }, // true causes stretched images + { convertStyleToAttrs: true }, // for CSP, no unsafe-eval + { removeTitle: true } // for smallness + ] + } + } + ] + }, + { + // creates style.css with all styles + test: /\.css$/, + use: ExtractTextPlugin.extract({ + use: [ + { + loader: 'css-loader', + options: { modules: false, importLoaders: 1 } + }, + 'postcss-loader' + ] + }) + }, + { + // creates version.json for /__version__ from package.json + test: require.resolve('./package.json'), + use: [ + { + loader: 'file-loader', + options: { + name: 'version.json' + } + }, + 'extract-loader', + './build/package_json_loader' + ] + }, + { + // creates a js script for each ftl + test: /\.ftl$/, + use: [ + { + loader: 'file-loader', + options: { + name: '[path][name].[hash:8].js' + } + }, + 'extract-loader', + './build/fluent_loader' + ] + }, + { + // creates test.js for /test + test: require.resolve('./test/frontend/index.js'), + use: ['babel-loader', 'val-loader'] + }, + { + // loads all assets from assets/ for use by common/assets.js + test: require.resolve('./build/generate_asset_map.js'), + use: ['babel-loader', 'val-loader'] + }, + { + // loads all the ftl from public/locales for use by common/locales.js + test: require.resolve('./build/generate_l10n_map.js'), + use: ['babel-loader', 'val-loader'] + } + ] + }, + plugins: [ + new CopyPlugin([ + { + context: 'public', + from: '*.*' + } + ]), + new webpack.IgnorePlugin(/dist/), // used in common/*.js + new webpack.IgnorePlugin(/require-from-string/), // used in common/locales.js + new webpack.HashedModuleIdsPlugin(), + // new webpack.optimize.CommonsChunkPlugin({ + // name: 'vendor', + // minChunks: ({ resource }) => /node_modules/.test(resource) + // }), + // new webpack.optimize.CommonsChunkPlugin({ + // name: 'runtime' + // }), + new ExtractTextPlugin({ + filename: 'style.[contenthash:8].css' + }), + new ManifestPlugin() // used by server side to resolve hashed assets + ], + devServer: { + compress: true, + host: '0.0.0.0', + before: IS_DEV ? require('./server/bin/dev') : undefined, + proxy: { + '/api/ws': { + target: 'ws://localhost:8081', + ws: true, + secure: false + } + } + } +}; From b76899a353fdaf2fd9b68425ad019ed40366e53e Mon Sep 17 00:00:00 2001 From: Emily Date: Thu, 12 Jul 2018 11:22:49 -0700 Subject: [PATCH 032/368] fix download cancel --- app/fileReceiver.js | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/app/fileReceiver.js b/app/fileReceiver.js index ceffccf6..dc5ab526 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -94,7 +94,6 @@ export default class FileReceiver extends Nanobus { this.downloadRequest = { cancel: () => { this.sendMessageToSw({ request: 'cancel', id: this.fileInfo.id }); - throw new Error(0); } }; @@ -129,17 +128,17 @@ export default class FileReceiver extends Nanobus { document.body.appendChild(a); a.click(); URL.revokeObjectURL(downloadUrl); + } - let prog = 0; - while (prog < this.fileInfo.size) { - const msg = await this.sendMessageToSw({ - request: 'progress', - id: this.fileInfo.id - }); - prog = msg.progress; - onprogress([prog, this.fileInfo.size]); - await delay(); - } + let prog = 0; + while (prog < this.fileInfo.size) { + const msg = await this.sendMessageToSw({ + request: 'progress', + id: this.fileInfo.id + }); + prog = msg.progress; + onprogress([prog, this.fileInfo.size]); + await delay(); } this.downloadRequest = null; @@ -147,6 +146,9 @@ export default class FileReceiver extends Nanobus { this.state = 'complete'; } catch (e) { this.downloadRequest = null; + if (e === 'cancelled') { + throw new Error(0); + } throw e; } } From ebf6bda467c5a2a05b9c2cec9492b6fbbe021d14 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Thu, 12 Jul 2018 13:13:49 -0700 Subject: [PATCH 033/368] updated to webpack 4 --- app/main.js | 1 + app/templates/header/index.js | 12 +- build/fluent_loader.js | 2 +- build/package_json_loader.js | 11 - build/readme.md | 8 +- build/version_loader.js | 5 - build/version_plugin.js | 25 + common/assets.js | 2 +- common/locales.js | 2 +- package-lock.json | 10729 ++++++++++++++++++-------------- package.json | 83 +- server/bin/dev.js | 10 +- server/layout.js | 3 +- test/frontend/runner.js | 2 +- webpack.config.js | 120 +- webpack.dev.config.js | 226 - webpackSw.config.js | 34 - 17 files changed, 6052 insertions(+), 5223 deletions(-) delete mode 100644 build/package_json_loader.js delete mode 100644 build/version_loader.js create mode 100644 build/version_plugin.js delete mode 100644 webpack.dev.config.js delete mode 100644 webpackSw.config.js diff --git a/app/main.js b/app/main.js index 41934485..95d26472 100644 --- a/app/main.js +++ b/app/main.js @@ -9,6 +9,7 @@ import storage from './storage'; import metrics from './metrics'; import experiments from './experiments'; import Raven from 'raven-js'; +import './main.css'; if (navigator.doNotTrack !== '1' && window.RAVEN_CONFIG) { Raven.config(window.SENTRY_ID, window.RAVEN_CONFIG).install(); diff --git a/app/templates/header/index.js b/app/templates/header/index.js index a2f749fb..b5fbf882 100644 --- a/app/templates/header/index.js +++ b/app/templates/header/index.js @@ -1,15 +1,5 @@ const html = require('choo/html'); -/* - The current weback config uses package.json to generate - version.json for /__version__ meaning `require` returns the - string 'version.json' in the frontend context but the json - on the server. - - We want `version` to be constant at build time so this file - has a custom loader (/build/version_loader.js) just to replace - string with the value from package.json. 🤢 -*/ -const version = require('../../../package.json').version || 'VERSION'; +const version = require('../../../package.json').version; const browser = browserName(); module.exports = function(state) { diff --git a/build/fluent_loader.js b/build/fluent_loader.js index b5e4f392..53abc6d9 100644 --- a/build/fluent_loader.js +++ b/build/fluent_loader.js @@ -17,7 +17,7 @@ function merge(m1, m2) { } module.exports = function(source) { - const localeExp = this.options.locale || /([^/]+)\/[^/]+\.ftl$/; + const localeExp = /([^/]+)\/[^/]+\.ftl$/; const result = localeExp.exec(this.resourcePath); const locale = result && result[1]; if (!locale) { diff --git a/build/package_json_loader.js b/build/package_json_loader.js deleted file mode 100644 index a03678f5..00000000 --- a/build/package_json_loader.js +++ /dev/null @@ -1,11 +0,0 @@ -const commit = require('git-rev-sync').short(); - -module.exports = function(source) { - const pkg = JSON.parse(source); - const version = { - commit, - source: pkg.homepage, - version: process.env.CIRCLE_TAG || `v${pkg.version}` - }; - return `module.exports = '${JSON.stringify(version)}'`; -}; diff --git a/build/readme.md b/build/readme.md index ff0f9c5d..ff4809da 100644 --- a/build/readme.md +++ b/build/readme.md @@ -12,13 +12,9 @@ This loader enumerates all the files in `assets/` so that `common/assets.js` can This loader enumerates all the ftl files in `public/locales` so that the fluent loader can create it's js files. -## Package.json Loader +## Version Plugin -This loader creates a `version.json` file that gets exposed by the `/__version__` route from the `package.json` file and current git commit hash. - -## Version Loader - -This loader substitutes the string "VERSION" for the version string specified in `package.json`. This is a workaround because `package.json` already uses the `package_json_loader`. See [app/templates/header/index.js](../app/templates/header/index.js) for more info. +Creates a `version.json` file that gets exposed by the `/__version__` route from the `package.json` file and current git commit hash. # See Also diff --git a/build/version_loader.js b/build/version_loader.js deleted file mode 100644 index 78a2c019..00000000 --- a/build/version_loader.js +++ /dev/null @@ -1,5 +0,0 @@ -const version = require('../package.json').version; - -module.exports = function(source) { - return source.replace('VERSION', version); -}; diff --git a/build/version_plugin.js b/build/version_plugin.js new file mode 100644 index 00000000..07ea70a3 --- /dev/null +++ b/build/version_plugin.js @@ -0,0 +1,25 @@ +const commit = require('git-rev-sync').short(); +const pkg = require('../package.json'); + +const version = JSON.stringify({ + commit, + source: pkg.homepage, + version: process.env.CIRCLE_TAG || `v${pkg.version}` +}); + +class VersionPlugin { + apply(compiler) { + compiler.hooks.emit.tap('VersionPlugin', compilation => { + compilation.assets['version.json'] = { + source() { + return version; + }, + size() { + return version.length + } + } + }) + } +} + +module.exports = VersionPlugin; diff --git a/common/assets.js b/common/assets.js index 3f301d39..d19b5bd7 100644 --- a/common/assets.js +++ b/common/assets.js @@ -1,6 +1,6 @@ const genmap = require('../build/generate_asset_map'); const isServer = typeof genmap === 'function'; -const prefix = isServer ? '/' : ''; +const prefix = ''; let manifest = {}; try { //eslint-disable-next-line node/no-missing-require diff --git a/common/locales.js b/common/locales.js index ba1476de..bfbdf5bf 100644 --- a/common/locales.js +++ b/common/locales.js @@ -1,7 +1,7 @@ const gen = require('../build/generate_l10n_map'); const isServer = typeof gen === 'function'; -const prefix = isServer ? '/' : ''; +const prefix = ''; let manifest = {}; try { // eslint-disable-next-line node/no-missing-require diff --git a/package-lock.json b/package-lock.json index 7ca004fd..e006f897 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,44 +4,854 @@ "lockfileVersion": 1, "requires": true, "dependencies": { - "@babel/code-frame": { - "version": "7.0.0-beta.40", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.40.tgz", - "integrity": "sha512-eVXQSbu/RimU6OKcK2/gDJVTFcxXJI4sHbIqw2mhwMZeQ2as/8AhS9DGkEDoHMBBNJZ5B0US63lF56x+KDcxiA==", + "@dannycoates/webpack-dev-server": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@dannycoates/webpack-dev-server/-/webpack-dev-server-3.1.4.tgz", + "integrity": "sha512-pMxEq7smsvxtbn4s01aVLXnAOiSa1IsUtWZqBc6ZLwaExYRcRsC4Io4Cy3MCdkVpl9+A39y/38mw/RUtflvBeQ==", "dev": true, "requires": { - "@babel/highlight": "7.0.0-beta.40" - } - }, - "@babel/highlight": { - "version": "7.0.0-beta.40", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.40.tgz", - "integrity": "sha512-mOhhTrzieV6VO7odgzFGFapiwRK0ei8RZRhfzHhb6cpX3QM8XXuCLXWjN8qBB7JReDdUR80V3LFfFrGUYevhNg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "ansi-html": "0.0.7", + "array-includes": "3.0.3", + "bonjour": "3.5.0", + "chokidar": "2.0.4", + "compression": "1.7.1", + "connect-history-api-fallback": "1.5.0", + "debug": "3.1.0", + "del": "3.0.0", + "express": "4.16.3", + "html-entities": "1.2.1", + "http-proxy-middleware": "0.18.0", + "import-local": "1.0.0", + "internal-ip": "1.2.0", + "ip": "1.1.5", + "killable": "1.0.0", + "loglevel": "1.6.1", + "opn": "5.2.0", + "portfinder": "1.0.13", + "selfsigned": "1.10.2", + "serve-index": "1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.1.4", + "spdy": "3.4.7", + "strip-ansi": "3.0.1", + "supports-color": "5.4.0", + "webpack-dev-middleware": "3.1.3", + "webpack-log": "1.1.2", + "yargs": "11.0.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "color-convert": "1.9.1" + "micromatch": "3.1.10", + "normalize-path": "2.1.1" } }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.1.0" + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "requires": { + "globby": "6.1.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "p-map": "1.2.0", + "pify": "3.0.0", + "rimraf": "2.6.2" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "2.1.2" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "has-flag": { @@ -50,14 +860,174 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "http-proxy-middleware": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", + "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "dev": true, + "requires": { + "http-proxy": "1.16.2", + "is-glob": "4.0.0", + "lodash": "4.17.5", + "micromatch": "3.1.10" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + } + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true, + "optional": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "0.10.0", + "uuid": "3.1.0" + } + }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" } + }, + "yargs": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", + "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", + "dev": true, + "requires": { + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "2.1.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "9.0.2" + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } } } }, @@ -94,6 +1064,39 @@ "resolved": "https://registry.npmjs.org/@mattiasbuelens/web-streams-adapter/-/web-streams-adapter-0.1.0-alpha.1.tgz", "integrity": "sha512-8YK2ZY6CAgrzFGfW2uPyNDMYvh7OmWjrlbdP+GeHiMJhzPF3XwrQaHyLQ4IZqGTj8NW879ttfbcqbLqQxWvtsw==" }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "1.0.1", + "glob-to-regexp": "0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.0.tgz", + "integrity": "sha512-LAQ1d4OPfSJ/BMbI2DuizmYrrkD9JMaTdi2hQTlI53lQ4kRQPyZQRS4CYQ7O66bnBBnP/oYdRxbk++X0xuFU6A==", + "dev": true + }, + "@samverschueren/stream-to-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", + "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==", + "dev": true, + "requires": { + "any-observable": "0.3.0" + }, + "dependencies": { + "any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true + } + } + }, "@sinonjs/formatio": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", @@ -103,6 +1106,363 @@ "samsam": "1.3.0" } }, + "@webassemblyjs/ast": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.5.13.tgz", + "integrity": "sha512-49nwvW/Hx9i+OYHg+mRhKZfAlqThr11Dqz8TsrvqGKMhdI2ijy3KBJOun2Z4770TPjrIJhR6KxChQIDaz8clDA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.5.13", + "@webassemblyjs/helper-wasm-bytecode": "1.5.13", + "@webassemblyjs/wast-parser": "1.5.13", + "debug": "3.1.0", + "mamacro": "0.0.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.5.13.tgz", + "integrity": "sha512-vrvvB18Kh4uyghSKb0NTv+2WZx871WL2NzwMj61jcq2bXkyhRC+8Q0oD7JGVf0+5i/fKQYQSBCNMMsDMRVAMqA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.5.13.tgz", + "integrity": "sha512-dBh2CWYqjaDlvMmRP/kudxpdh30uXjIbpkLj9HQe+qtYlwvYjPRjdQXrq1cTAAOUSMTtzqbXIxEdEZmyKfcwsg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.5.13.tgz", + "integrity": "sha512-v7igWf1mHcpJNbn4m7e77XOAWXCDT76Xe7Is1VQFXc4K5jRcFrl9D0NrqM4XifQ0bXiuTSkTKMYqDxu5MhNljA==", + "dev": true, + "requires": { + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.5.13.tgz", + "integrity": "sha512-yN6ScQQDFCiAXnVctdVO/J5NQRbwyTbQzsGzEgXsAnrxhjp0xihh+nNHQTMrq5UhOqTb5LykpJAvEv9AT0jnAQ==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.5.13" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.5.13.tgz", + "integrity": "sha512-hSIKzbXjVMRvy3Jzhgu+vDd/aswJ+UMEnLRCkZDdknZO3Z9e6rp1DAs0tdLItjCFqkz9+0BeOPK/mk3eYvVzZg==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.5.13.tgz", + "integrity": "sha512-zxJXULGPLB7r+k+wIlvGlXpT4CYppRz8fLUM/xobGHc9Z3T6qlmJD9ySJ2jknuktuuiR9AjnNpKYDECyaiX+QQ==", + "dev": true, + "requires": { + "debug": "3.1.0", + "mamacro": "0.0.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.5.13.tgz", + "integrity": "sha512-0n3SoNGLvbJIZPhtMFq0XmmnA/YmQBXaZKQZcW8maGKwLpVcgjNrxpFZHEOLKjXJYVN5Il8vSfG7nRX50Zn+aw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.5.13.tgz", + "integrity": "sha512-IJ/goicOZ5TT1axZFSnlAtz4m8KEjYr12BNOANAwGFPKXM4byEDaMNXYowHMG0yKV9a397eU/NlibFaLwr1fbw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.13", + "@webassemblyjs/helper-buffer": "1.5.13", + "@webassemblyjs/helper-wasm-bytecode": "1.5.13", + "@webassemblyjs/wasm-gen": "1.5.13", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/ieee754": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.5.13.tgz", + "integrity": "sha512-TseswvXEPpG5TCBKoLx9tT7+/GMACjC1ruo09j46ULRZWYm8XHpDWaosOjTnI7kr4SRJFzA6MWoUkAB+YCGKKg==", + "dev": true, + "requires": { + "ieee754": "1.1.12" + }, + "dependencies": { + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", + "dev": true + } + } + }, + "@webassemblyjs/leb128": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.5.13.tgz", + "integrity": "sha512-0NRMxrL+GG3eISGZBmLBLAVjphbN8Si15s7jzThaw1UE9e5BY1oH49/+MA1xBzxpf1OW5sf9OrPDOclk9wj2yg==", + "dev": true, + "requires": { + "long": "4.0.0" + }, + "dependencies": { + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "dev": true + } + } + }, + "@webassemblyjs/utf8": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.5.13.tgz", + "integrity": "sha512-Ve1ilU2N48Ew0lVGB8FqY7V7hXjaC4+PeZM+vDYxEd+R2iQ0q+Wb3Rw8v0Ri0+rxhoz6gVGsnQNb4FjRiEH/Ng==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.5.13.tgz", + "integrity": "sha512-X7ZNW4+Hga4f2NmqENnHke2V/mGYK/xnybJSIXImt1ulxbCOEs/A+ZK/Km2jgihjyVxp/0z0hwIcxC6PrkWtgw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.13", + "@webassemblyjs/helper-buffer": "1.5.13", + "@webassemblyjs/helper-wasm-bytecode": "1.5.13", + "@webassemblyjs/helper-wasm-section": "1.5.13", + "@webassemblyjs/wasm-gen": "1.5.13", + "@webassemblyjs/wasm-opt": "1.5.13", + "@webassemblyjs/wasm-parser": "1.5.13", + "@webassemblyjs/wast-printer": "1.5.13", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.5.13.tgz", + "integrity": "sha512-yfv94Se8R73zmr8GAYzezFHc3lDwE/lBXQddSiIZEKZFuqy7yWtm3KMwA1uGbv5G1WphimJxboXHR80IgX1hQA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.13", + "@webassemblyjs/helper-wasm-bytecode": "1.5.13", + "@webassemblyjs/ieee754": "1.5.13", + "@webassemblyjs/leb128": "1.5.13", + "@webassemblyjs/utf8": "1.5.13" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.5.13.tgz", + "integrity": "sha512-IkXSkgzVhQ0QYAdIayuCWMmXSYx0dHGU8Ah/AxJf1gBvstMWVnzJnBwLsXLyD87VSBIcsqkmZ28dVb0mOC3oBg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.13", + "@webassemblyjs/helper-buffer": "1.5.13", + "@webassemblyjs/wasm-gen": "1.5.13", + "@webassemblyjs/wasm-parser": "1.5.13", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.5.13.tgz", + "integrity": "sha512-XnYoIcu2iqq8/LrtmdnN3T+bRjqYFjRHqWbqK3osD/0r/Fcv4d9ecRzjVtC29ENEuNTK4mQ9yyxCBCbK8S/cpg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.13", + "@webassemblyjs/helper-api-error": "1.5.13", + "@webassemblyjs/helper-wasm-bytecode": "1.5.13", + "@webassemblyjs/ieee754": "1.5.13", + "@webassemblyjs/leb128": "1.5.13", + "@webassemblyjs/utf8": "1.5.13" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.5.13.tgz", + "integrity": "sha512-Lbz65T0LQ1LgzKiUytl34CwuhMNhaCLgrh0JW4rJBN6INnBB8NMwUfQM+FxTnLY9qJ+lHJL/gCM5xYhB9oWi4A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.13", + "@webassemblyjs/floating-point-hex-parser": "1.5.13", + "@webassemblyjs/helper-api-error": "1.5.13", + "@webassemblyjs/helper-code-frame": "1.5.13", + "@webassemblyjs/helper-fsm": "1.5.13", + "long": "3.2.0", + "mamacro": "0.0.3" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.5.13", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.5.13.tgz", + "integrity": "sha512-QcwogrdqcBh8Z+eUF8SG+ag5iwQSXxQJELBEHmLkk790wgQgnIMmntT2sMAMw53GiFNckArf5X0bsCA44j3lWQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.5.13", + "@webassemblyjs/wast-parser": "1.5.13", + "long": "3.2.0" + } + }, + "@webpack-contrib/schema-utils": { + "version": "1.0.0-beta.0", + "resolved": "https://registry.npmjs.org/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz", + "integrity": "sha512-LonryJP+FxQQHsjGBi6W786TQB1Oym+agTpY0c+Kj8alnIw+DLUJb6SI8Y1GHGhLCH1yPRrucjObUmxNICQ1pg==", + "dev": true, + "requires": { + "ajv": "6.5.2", + "ajv-keywords": "3.1.0", + "chalk": "2.4.1", + "strip-ansi": "4.0.0", + "text-table": "0.2.0", + "webpack-log": "1.1.2" + }, + "dependencies": { + "ajv": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", + "dev": true, + "requires": { + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, "JSONStream": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.8.4.tgz", @@ -113,16 +1473,11 @@ "through": "2.3.8" } }, - "abab": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", - "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", - "dev": true - }, "accepts": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "dev": true, "requires": { "mime-types": "2.1.17", "negotiator": "0.6.1" @@ -131,34 +1486,7 @@ "acorn": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz", - "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "dev": true, - "requires": { - "acorn": "4.0.13" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } - } - }, - "acorn-globals": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", - "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", - "dev": true, - "requires": { - "acorn": "5.4.1" - } + "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ==" }, "acorn-jsx": { "version": "3.0.1", @@ -181,7 +1509,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.3.0.tgz", "integrity": "sha512-efP54n3d1aLfjL2UMdaXa6DsswwzJeI5rqhbFvXMrKiJ6eJFpf+7R0zN7t8IC+XKn2YOAFAv6xbBNgHUkoHWLw==", - "dev": true, "requires": { "acorn": "5.4.1", "xtend": "4.0.1" @@ -214,23 +1541,6 @@ "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=", "dev": true }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true, - "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, "ansi-escapes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", @@ -253,33 +1563,6 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "any-observable": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.2.0.tgz", - "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=", - "dev": true - }, - "anymatch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", - "dev": true, - "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - } - } - }, "app-root-path": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", @@ -344,12 +1627,6 @@ "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", "dev": true }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true - }, "array-filter": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", @@ -472,15 +1749,6 @@ "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", "dev": true }, - "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", - "dev": true, - "requires": { - "lodash": "4.17.5" - } - }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", @@ -492,58 +1760,26 @@ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, "atob": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", "dev": true }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000810", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000810", - "electron-to-chromium": "1.3.33" - } - } - } - }, "aws-sdk": { - "version": "2.206.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.206.0.tgz", - "integrity": "sha1-I1yhCVdsiI8kZ9HBDDOvfjQtO+E=", + "version": "2.273.1", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.273.1.tgz", + "integrity": "sha512-JFsL+YCQGEjV/cZp6BlJ11Sg4O0wchCtBANqeOGRvEd2hPKey04p2nmwZVy+vApkA7IOI/pARbIwZRZ+V5ntng==", "requires": { "buffer": "4.9.1", "events": "1.1.1", + "ieee754": "1.1.8", "jmespath": "0.15.0", "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", "uuid": "3.1.0", - "xml2js": "0.4.17", - "xmlbuilder": "4.2.1" + "xml2js": "0.4.17" } }, "aws-sign": { @@ -552,18 +1788,6 @@ "integrity": "sha1-PYHKabR0seFlGHKLUcJP8Lvtxuk=", "dev": true }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true - }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -576,9 +1800,9 @@ } }, "babel-core": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", - "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { "babel-code-frame": "6.26.0", @@ -808,14 +2032,386 @@ } }, "babel-plugin-istanbul": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz", - "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", + "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", "dev": true, "requires": { + "babel-plugin-syntax-object-rest-spread": "6.13.0", "find-up": "2.1.0", - "istanbul-lib-instrument": "1.9.2", - "test-exclude": "4.2.0" + "istanbul-lib-instrument": "1.10.1", + "test-exclude": "4.2.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", + "dev": true, + "requires": { + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + } + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "test-exclude": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + } } }, "babel-plugin-syntax-async-functions": { @@ -1177,14 +2773,6 @@ "regenerator-transform": "0.10.1" } }, - "babel-plugin-transform-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", - "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", - "requires": { - "babel-runtime": "6.26.0" - } - }, "babel-plugin-transform-strict-mode": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", @@ -1196,9 +2784,9 @@ } }, "babel-plugin-yo-yoify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-yo-yoify/-/babel-plugin-yo-yoify-1.0.2.tgz", - "integrity": "sha512-M2aJCgNknRGpwju5sEXeauAsb4Ior4zgwq8EbUigqEU1B4UETa1ySs64nZff9F2BNddzZ2c7h4ypGrck0ppmSA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-yo-yoify/-/babel-plugin-yo-yoify-2.0.0.tgz", + "integrity": "sha512-wmNnRBVN3YD14+BqZR4iAxStFEGaJ3oV2x8QTDkYAfA7hc5Auh9dlonQD+DzsnvomNLzsT56zZDvayIlB050+g==", "dev": true, "requires": { "@f/is-svg": "1.0.0", @@ -1228,9 +2816,9 @@ } }, "babel-preset-env": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", - "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "dev": true, "requires": { "babel-plugin-check-es2015-constants": "6.22.0", @@ -1260,9 +2848,33 @@ "babel-plugin-transform-es2015-unicode-regex": "6.24.1", "babel-plugin-transform-exponentiation-operator": "6.24.1", "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "2.11.3", + "browserslist": "3.2.8", "invariant": "2.2.2", "semver": "5.5.0" + }, + "dependencies": { + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000865", + "electron-to-chromium": "1.3.52" + } + }, + "caniuse-lite": { + "version": "1.0.30000865", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", + "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.52", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", + "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", + "dev": true + } } }, "babel-preset-es2015": { @@ -1328,7 +2940,7 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.0", + "babel-core": "6.26.3", "babel-runtime": "6.26.0", "core-js": "2.5.3", "home-or-tmp": "2.0.0", @@ -1439,9 +3051,9 @@ } }, "base64-js": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz", - "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" }, "batch": { "version": "0.6.1", @@ -1449,26 +3061,6 @@ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "bel": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/bel/-/bel-5.1.7.tgz", - "integrity": "sha512-f3aAzoq2ilK3ErDsv47uo2qK9NTKHkguI7j6sJi6ynKS9vPG180QGU8BzHas6xPnIsKj+m7YXlDSm9BmaZHNrg==", - "requires": { - "hyperx": "2.3.3", - "is-electron": "2.1.0", - "pelo": "0.1.0" - } - }, "big.js": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", @@ -1614,25 +3206,7 @@ "browser-process-hrtime": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", - "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=", - "dev": true - }, - "browser-resolve": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", - "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", - "dev": true, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } + "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=" }, "browser-stdout": { "version": "1.3.1", @@ -1725,7 +3299,7 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "base64-js": "1.2.3", + "base64-js": "1.3.0", "ieee754": "1.1.8", "isarray": "1.0.0" } @@ -1825,6 +3399,12 @@ "estraverse": "4.2.0" } }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", @@ -1844,7 +3424,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "dev": true, "requires": { "no-case": "2.3.2", "upper-case": "1.1.3" @@ -1871,64 +3450,18 @@ "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, - "caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000810", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000810", - "electron-to-chromium": "1.3.33" - } - } - } - }, - "caniuse-db": { - "version": "1.0.30000810", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000810.tgz", - "integrity": "sha1-vSWDDEHvq2Qzmi44H0lnc0PIRQk=", - "dev": true - }, "caniuse-lite": { "version": "1.0.30000808", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000808.tgz", "integrity": "sha512-vT0JLmHdvq1UVbYXioxCXHYdNw55tyvi+IUWyX0Zeh1OFQi2IllYtm38IJnSgHWCv/zUnX1hdhy3vMJvuTNSqw==", "dev": true }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, "ccount": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.2.tgz", "integrity": "sha1-U7ai+BW7d7nChx97mnLDol8djok=", "dev": true }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true, - "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" - } - }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", @@ -1976,55 +3509,23 @@ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true, - "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } - } - }, "choo": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/choo/-/choo-6.10.0.tgz", - "integrity": "sha512-5dSzBXh1PeyzKgzTTVMiIyO+2J/THwft/O65WDBnmMwwM2AveM2iDrHMcdzMm1Pr4U+44+hqAprBJbPigPYy5Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/choo/-/choo-6.13.0.tgz", + "integrity": "sha512-OsXC4v8zKcGAJ+C3fTVxU30daZIWFcQwTZlHKWzHzZvEaRaaBGF95jqTd3XYV5+Eitx/SaklbqtaoWUAKCG/Nw==", "requires": { - "bel": "5.1.7", "document-ready": "2.0.1", + "nanoassert": "1.1.0", "nanobus": "4.3.3", + "nanocomponent": "6.5.2", "nanohref": "3.0.1", - "nanolocation": "1.0.0", + "nanohtml": "1.2.4", + "nanolru": "1.0.0", "nanomorph": "5.1.3", "nanoquery": "1.2.0", "nanoraf": "3.0.1", "nanorouter": "3.0.1", - "nanotiming": "7.3.0", + "nanotiming": "7.3.1", "scroll-to-anchor": "1.1.0", "xtend": "4.0.1" } @@ -2035,6 +3536,15 @@ "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "dev": true }, + "chrome-trace-event": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", + "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", + "dev": true, + "requires": { + "tslib": "1.9.3" + } + }, "ci-info": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", @@ -2057,15 +3567,6 @@ "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", "dev": true }, - "clap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz", - "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", - "dev": true, - "requires": { - "chalk": "1.1.3" - } - }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", @@ -2385,17 +3886,6 @@ "color-name": "1.1.3" } }, - "colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", - "dev": true, - "requires": { - "color": "0.11.4", - "css-color-names": "0.0.4", - "has": "1.0.1" - } - }, "colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", @@ -2532,36 +4022,49 @@ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, - "content-type-parser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", - "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", - "dev": true - }, "convert-source-map": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" }, "convict": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/convict/-/convict-4.0.2.tgz", - "integrity": "sha1-oVFl1DwhHRJfV8ZNKLxWHcKdNb4=", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/convict/-/convict-4.3.1.tgz", + "integrity": "sha512-BLgyHUJREKCHVZ8rbXKIuNTDX/Is2GB/HZyUqh1IwvV0EeYBWtX+54OCG8tkIiAxB2yKowdP19+RHY5kCQ/SOg==", "requires": { - "depd": "1.1.1", - "json5": "0.5.1", + "depd": "1.1.2", + "json5": "1.0.1", "lodash.clonedeep": "4.5.0", - "moment": "2.19.3", + "moment": "2.22.2", "validator": "7.2.0", - "varify": "0.2.0", - "yargs-parser": "7.0.0" + "yargs-parser": "10.0.0" }, "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "1.2.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "moment": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" + }, + "yargs-parser": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.0.0.tgz", + "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", + "requires": { + "camelcase": "4.1.0" + } } } }, @@ -2602,9 +4105,9 @@ "dev": true }, "copy-webpack-plugin": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.0.tgz", - "integrity": "sha512-ROQ85fWKuhJfUkBTdHvfV+Zv6Ltm3G/vPVFdLPFwzWzd9RUY1yLw3rt6FmKK2PaeNQCNvmwgFhuarkjuV4PVDQ==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz", + "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==", "dev": true, "requires": { "cacache": "10.0.4", @@ -2636,7 +4139,7 @@ "is-directory": "0.3.1", "js-yaml": "3.10.0", "parse-json": "4.0.0", - "require-from-string": "2.0.1" + "require-from-string": "2.0.2" }, "dependencies": { "esprima": { @@ -2694,13 +4197,28 @@ } }, "cross-env": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.1.3.tgz", - "integrity": "sha512-UOokgwvDzCT0mqRSLEkJzUhYXB1vK3E5UgDrD41QiXsm9UetcW2rCGHYz/O3p873lMJ1VZbFCF9Izkwh7nYR5A==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", + "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", "dev": true, "requires": { - "cross-spawn": "5.1.0", + "cross-spawn": "6.0.5", "is-windows": "1.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "1.0.4", + "path-key": "2.0.1", + "semver": "5.5.0", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + } } }, "cross-spawn": { @@ -2776,32 +4294,78 @@ } } }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, "css-loader": { - "version": "0.28.10", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.10.tgz", - "integrity": "sha512-X1IJteKnW9Llmrd+lJ0f7QZHh9Arf+11S7iRcoT2+riig3BK0QaCaOtubAulMK6Itbo08W6d3l8sW21r+Jhp5Q==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.0.tgz", + "integrity": "sha512-tMXlTYf3mIMt3b0dDCOQFJiVvxbocJ5Ho577WiGPYPZcqVEO218L2iU22pDXzkTZCLDE+9AmGSUkWxeh/nZReA==", "dev": true, "requires": { "babel-code-frame": "6.26.0", "css-selector-tokenizer": "0.7.0", - "cssnano": "3.10.0", "icss-utils": "2.1.0", "loader-utils": "1.1.0", "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", + "postcss": "6.0.23", "postcss-modules-extract-imports": "1.2.0", "postcss-modules-local-by-default": "1.2.0", "postcss-modules-scope": "1.1.0", "postcss-modules-values": "1.3.0", "postcss-value-parser": "3.3.0", "source-list-map": "2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "2.4.1", + "source-map": "0.6.1", + "supports-color": "5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } } }, "css-mqpacker": { @@ -3014,46 +4578,6 @@ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", "dev": true }, - "cssnano": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "dev": true, - "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.1", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.2", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" - } - }, "csso": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.0.tgz", @@ -3075,21 +4599,6 @@ } } }, - "cssom": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz", - "integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=", - "dev": true - }, - "cssstyle": { - "version": "0.2.37", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", - "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", - "dev": true, - "requires": { - "cssom": "0.3.2" - } - }, "ctype": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", @@ -3117,31 +4626,10 @@ "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", "dev": true }, - "d": { + "dash-ast": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true, - "requires": { - "es5-ext": "0.10.38" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==" }, "dasherize": { "version": "2.0.0", @@ -3257,12 +4745,6 @@ } } }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, "del": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", @@ -3412,131 +4894,6 @@ "resolved": "https://registry.npmjs.org/document-ready/-/document-ready-2.0.1.tgz", "integrity": "sha1-PjvzHTI1uU4jLnssX6GmNOhzuuQ=" }, - "doiuse": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/doiuse/-/doiuse-4.0.0.tgz", - "integrity": "sha512-j2KwY4eJdysCnRY/CVYG3/cE0t5SEOCtGMvdfVLkcmyay9W43rmZbb4bOmkCN25aJ9EkkRhxCJe44uMt92WqgQ==", - "dev": true, - "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000808", - "css-rule-stream": "1.1.0", - "duplexer2": "0.0.2", - "jsonfilter": "1.1.2", - "ldjson-stream": "1.2.1", - "lodash": "4.17.5", - "multimatch": "2.1.0", - "postcss": "6.0.18", - "source-map": "0.5.7", - "through2": "0.6.5", - "yargs": "8.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" - } - }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - } - } - } - }, "dom-serializer": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", @@ -3558,8 +4915,7 @@ "dom-walk": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", - "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", - "dev": true + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" }, "domain-browser": { "version": "1.2.0", @@ -3573,15 +4929,6 @@ "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", "dev": true }, - "domexception": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", - "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", - "dev": true, - "requires": { - "webidl-conversions": "4.0.2" - } - }, "domhandler": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", @@ -3670,16 +5017,6 @@ } } }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -3731,18 +5068,6 @@ "once": "1.4.0" } }, - "enhanced-resolve": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", - "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" - } - }, "entities": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", @@ -3791,41 +5116,6 @@ "is-symbol": "1.0.1" } }, - "es5-ext": { - "version": "0.10.38", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz", - "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==", - "dev": true, - "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38", - "es6-symbol": "3.1.1" - } - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, "es6-promise": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", @@ -3841,29 +5131,6 @@ "es6-promise": "4.2.4" } }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" - } - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38" - } - }, "es6-templates": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", @@ -3874,18 +5141,6 @@ "through": "2.3.8" } }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" - } - }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -3917,27 +5172,15 @@ } } }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true, - "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.0", - "estraverse": "4.2.0" - } - }, "eslint": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.18.2.tgz", - "integrity": "sha512-qy4i3wODqKMYfz9LUI8N2qYDkHkoieTbiHpMrYUI/WbjhXJQr7lI4VngixTgaG+yHX+NBCv7nW4hA0ShbvaNKw==", + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { "ajv": "5.5.2", "babel-code-frame": "6.26.0", - "chalk": "2.3.2", + "chalk": "2.4.1", "concat-stream": "1.6.0", "cross-spawn": "5.1.0", "debug": "3.1.0", @@ -3950,12 +5193,12 @@ "file-entry-cache": "2.0.0", "functional-red-black-tree": "1.0.1", "glob": "7.1.2", - "globals": "11.3.0", + "globals": "11.7.0", "ignore": "3.3.7", "imurmurhash": "0.1.4", "inquirer": "3.3.0", "is-resolvable": "1.1.0", - "js-yaml": "3.11.0", + "js-yaml": "3.12.0", "json-stable-stringify-without-jsonify": "1.0.1", "levn": "0.3.0", "lodash": "4.17.5", @@ -3966,6 +5209,7 @@ "path-is-inside": "1.0.2", "pluralize": "7.0.0", "progress": "2.0.0", + "regexpp": "1.1.0", "require-uncached": "1.0.3", "semver": "5.5.0", "strip-ansi": "4.0.0", @@ -3996,14 +5240,14 @@ } }, "chalk": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", - "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.3.0" + "supports-color": "5.4.0" } }, "debug": { @@ -4022,9 +5266,9 @@ "dev": true }, "globals": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.3.0.tgz", - "integrity": "sha512-kkpcKNlmQan9Z5ZmgqKH/SMbSmjxQ7QjyNqfXVc8VJcoBV2UEg+sxQD15GQofGRh2hfpwUb70VC31DR7Rq5Hdw==", + "version": "11.7.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", + "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", "dev": true }, "has-flag": { @@ -4034,9 +5278,9 @@ "dev": true }, "js-yaml": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", - "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { "argparse": "1.0.10", @@ -4053,9 +5297,9 @@ } }, "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -4069,7 +5313,7 @@ "requires": { "ajv": "5.5.2", "ajv-keywords": "2.1.1", - "chalk": "2.3.2", + "chalk": "2.4.1", "lodash": "4.17.5", "slice-ansi": "1.0.0", "string-width": "2.1.1" @@ -4141,12 +5385,6 @@ } } }, - "esprima": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.0.0.tgz", - "integrity": "sha1-U88kes2ncxPlUcOqLnM0LT+099k=", - "optional": true - }, "espurify": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.7.0.tgz", @@ -4192,16 +5430,6 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.38" - } - }, "event-stream": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", @@ -4295,48 +5523,18 @@ "fill-range": "2.2.3" } }, - "expect": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-22.4.0.tgz", - "integrity": "sha512-Fiy862jT3qc70hwIHwwCBNISmaqBrfWKKrtqyMJ6iwZr+6KXtcnHojZFtd63TPRvRl8EQTJ+YXYy2lK6/6u+Hw==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "jest-diff": "22.4.0", - "jest-get-type": "22.1.0", - "jest-matcher-utils": "22.4.0", - "jest-message-util": "22.4.0", - "jest-regex-util": "22.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - } - } - }, - "expect-ct": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.1.0.tgz", - "integrity": "sha1-UnNWeN4YUwiQ2Ne5XwrGNkCVgJQ=" - }, "expose-loader": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.4.tgz", - "integrity": "sha512-lweINkewAXcQtNjd7j1gO3cd8O/8lNYijsEwH4YZ+Dv3gT2Kh9/YvJov5Mdp2A75QIhgOvsSyRa/ZG3wYjNZpA==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.5.tgz", + "integrity": "sha512-iPowgKUZkTPX5PznYsmifVj9Bob0w2wTHVkt/eYNPSzyebkUgIedmskf/kcfEIWpiWjg3JRjnW+a17XypySMuw==", "dev": true }, "express": { - "version": "4.16.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.16.2.tgz", - "integrity": "sha1-41xt/i1kt9ygpc1PIXgb4ymeB2w=", + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "requires": { - "accepts": "1.3.4", + "accepts": "1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", @@ -4348,35 +5546,120 @@ "encodeurl": "1.0.2", "escape-html": "1.0.3", "etag": "1.8.1", - "finalhandler": "1.1.0", + "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", "methods": "1.1.2", "on-finished": "2.3.0", "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", + "proxy-addr": "2.0.3", "qs": "6.5.1", "range-parser": "1.2.0", "safe-buffer": "5.1.1", - "send": "0.16.1", - "serve-static": "1.13.1", + "send": "0.16.2", + "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.3.1", - "type-is": "1.6.15", + "statuses": "1.4.0", + "type-is": "1.6.16", "utils-merge": "1.0.1", "vary": "1.1.2" }, "dependencies": { + "accepts": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "2.1.18", + "negotiator": "0.6.1" + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "unpipe": "1.0.0" + } + }, + "ipaddr.js": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", + "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" + }, + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "requires": { + "mime-db": "1.33.0" + } + }, + "proxy-addr": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", + "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.6.0" + } + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.2" + } + }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" + "type-is": { + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.18" + } } } }, @@ -4444,26 +5727,14 @@ } }, "extract-loader": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extract-loader/-/extract-loader-1.0.2.tgz", - "integrity": "sha512-hwlXWGHwzBXRNQCkDnLJuNgSkRsmYOwNz7wG9pHfA2EAgQaBCuQR71az7qL3rQT1JAMujiKPc+laet0kddVXWQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-loader/-/extract-loader-2.0.1.tgz", + "integrity": "sha512-P/jwAXSgvtnzFlPCdlsQkgLHDPzOf7Syt+GpU1LkP6TwWAYm7Exfyas3kBffc8Lfq/mDah4qnY3P1uopNzhD4A==", "dev": true, "requires": { "loader-utils": "1.1.0" } }, - "extract-text-webpack-plugin": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz", - "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", - "dev": true, - "requires": { - "async": "2.6.0", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0", - "webpack-sources": "1.1.0" - } - }, "extract-zip": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", @@ -4487,18 +5758,294 @@ } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, "fast-deep-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", "dev": true }, + "fast-glob": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.2.tgz", + "integrity": "sha512-TR6zxCKftDQnUAPvkrCWdBgDq/gbqx8A3ApnBrR5rMvpp6+KMJI0Igw7fkWPgeVK0uhRXTXdvO3O+YP0CaUX2g==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "2.2.1", + "@nodelib/fs.stat": "1.1.0", + "glob-parent": "3.1.0", + "is-glob": "4.0.0", + "merge2": "1.2.2", + "micromatch": "3.1.10" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", @@ -4630,27 +6177,6 @@ "repeat-string": "1.6.1" } }, - "finalhandler": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", - "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" - }, - "dependencies": { - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" - } - } - }, "find-cache-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", @@ -4696,9 +6222,9 @@ "dev": true }, "fluent": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/fluent/-/fluent-0.6.3.tgz", - "integrity": "sha512-NQS729z/Pza0b8LwKAy6IyJNNfZk1pcYoLFvTDXTkRfJEKShDNRRpgB7DS4rsf/iIDBJG6c51XgnOEMXAcEaZg==" + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/fluent/-/fluent-0.6.4.tgz", + "integrity": "sha512-EXfMJmnGbUgaIC1myIzDk5akAF6+1JrI7KVnNCba2ou7WCKc/2CWa8QshfhImVtettOvEs0z0UVdMrS6zX7pxA==" }, "fluent-intl-polyfill": { "version": "0.1.0", @@ -4899,910 +6425,6 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", - "dev": true, - "optional": true, - "requires": { - "nan": "2.8.0", - "node-pre-gyp": "0.6.39" - }, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" - } - }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "concat-map": "0.0.1" - } - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.1.1", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "dev": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "dev": true, - "requires": { - "mime-db": "1.27.0" - } - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.39", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" - } - }, - "npmlog": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "bundled": true, - "dev": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.5", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" - } - }, - "rimraf": { - "version": "2.6.1", - "bundled": true, - "dev": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - } - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -5827,12 +6449,6 @@ "integrity": "sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug==", "dev": true }, - "get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", - "dev": true - }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -5845,23 +6461,6 @@ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, "ghauth": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ghauth/-/ghauth-3.0.0.tgz", @@ -5877,9 +6476,9 @@ } }, "git-rev-sync": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/git-rev-sync/-/git-rev-sync-1.10.0.tgz", - "integrity": "sha1-6KxP0JZyRJFI/2lOLXxqbuNck6Y=", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/git-rev-sync/-/git-rev-sync-1.12.0.tgz", + "integrity": "sha1-RGhAbH5sO6TPRYeZnhrbKNnRr1U=", "dev": true, "requires": { "escape-string-regexp": "1.0.5", @@ -6017,16 +6616,27 @@ } } }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, "global": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "dev": true, "requires": { "min-document": "2.19.0", "process": "0.5.2" } }, + "global-modules-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.1.0.tgz", + "integrity": "sha512-3DrmGj2TP+96cABk9TfMp6f3knH/Y46dqvWznTU3Tf6/bDGLDAn15tFluQ7BcloykOcdY16U0WGq0BQblYOxJQ==", + "dev": true + }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", @@ -6076,34 +6686,12 @@ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, - "growl": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", - "dev": true - }, "handle-thing": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" - } - }, "has": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", @@ -6121,12 +6709,6 @@ "ansi-regex": "2.1.1" } }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -6225,13 +6807,13 @@ "dev": true }, "helmet": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.12.0.tgz", - "integrity": "sha512-CgkctpvreQLL6X3EL2Igs/92+75ZFIsrob9/Rdwf2hQCBGH/DxLk4xFPxAAl6jYnnus/YXfFEVXHEJf8TJTwlA==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.12.1.tgz", + "integrity": "sha512-/CsAcbPIHgiGde395IkHUZyRLW126RJ6AtxFy6Y6bxhd44Qq8cZ5BBFZ0xNUSbcgX57j32Emh3OhWz/0XgAB5Q==", "requires": { "dns-prefetch-control": "0.1.0", "dont-sniff-mimetype": "1.0.0", - "expect-ct": "0.1.0", + "expect-ct": "0.1.1", "frameguard": "3.0.0", "helmet-csp": "2.7.0", "hide-powered-by": "1.0.0", @@ -6241,6 +6823,13 @@ "nocache": "2.0.0", "referrer-policy": "1.1.0", "x-xss-protection": "1.1.0" + }, + "dependencies": { + "expect-ct": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.1.1.tgz", + "integrity": "sha512-ngXzTfoRGG7fYens3/RMb6yYoVLvLMfmsSllP/mZPxNHgFq41TmPSLF/nLY7fwoclI2vElvAmILFWGUYqdjfCg==" + } } }, "helmet-csp": { @@ -6341,21 +6930,6 @@ "resolved": "https://registry.npmjs.org/hsts/-/hsts-2.1.0.tgz", "integrity": "sha512-zXhh/DqgrTXJ7erTN6Fh5k/xjMhDGXCqdYN3wvxUvGUQvnxcFfUd8E+6vLg/nk3ss1TYMb+DhRl25fYABioTvA==" }, - "html-comment-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", - "dev": true - }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", - "dev": true, - "requires": { - "whatwg-encoding": "1.0.3" - } - }, "html-entities": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", @@ -6477,29 +7051,6 @@ "requires-port": "1.0.0" } }, - "http-proxy-middleware": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", - "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", - "dev": true, - "requires": { - "http-proxy": "1.16.2", - "is-glob": "3.1.0", - "lodash": "4.17.5", - "micromatch": "2.3.11" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, "http-signature": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", @@ -6707,6 +7258,48 @@ "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", "dev": true }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "2.1.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "import-lazy": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", + "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==", + "dev": true + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "dev": true, + "requires": { + "pkg-dir": "2.0.0", + "resolve-cwd": "2.0.0" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -7043,23 +7636,12 @@ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, - "ipaddr.js": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", - "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=" - }, "is": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", "integrity": "sha1-OzSixI81mXLzUEKEkZOucmS2NWI=", "dev": true }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true - }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", @@ -7117,8 +7699,7 @@ "is-boolean-attribute": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/is-boolean-attribute/-/is-boolean-attribute-0.0.1.tgz", - "integrity": "sha1-JKtZt9y52jYSx3PmDGVlZeWgmAw=", - "dev": true + "integrity": "sha1-JKtZt9y52jYSx3PmDGVlZeWgmAw=" }, "is-buffer": { "version": "1.1.6", @@ -7209,11 +7790,6 @@ "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, - "is-electron": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.1.0.tgz", - "integrity": "sha512-dkg5xT383+M6zIbbXW/z7n2nz4SFUi2OSyhntnFYkRdtV+HVEfdjEK+5AWisfYgkpe3WYjTIuh7toaKmSfFVWw==" - }, "is-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", @@ -7250,12 +7826,6 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, - "is-generator-fn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", - "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", - "dev": true - }, "is-glob": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", @@ -7292,15 +7862,6 @@ "integrity": "sha1-AO+8CIFsM8/ErIJR0TLhDcZQmNc=", "dev": true }, - "is-observable": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", - "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", - "dev": true, - "requires": { - "symbol-observable": "0.2.4" - } - }, "is-odd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", @@ -7416,27 +7977,12 @@ "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g=", "dev": true }, - "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", - "dev": true, - "requires": { - "html-comment-regex": "1.1.1" - } - }, "is-symbol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", "dev": true }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -7493,558 +8039,12 @@ "isarray": "1.0.0" } }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.2.tgz", - "integrity": "sha512-tZYA0v5A7qBSsOzcebJJ/z3lk3oSzH62puG78DbBA1+zupipX2CakDyiPV3pOb8He+jBwVimuwB0dTnh38hX0w==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.2.tgz", - "integrity": "sha512-nz8t4HQ2206a/3AXi+NHFWEa844DMpPsgbcUteJbt1j8LX1xg56H9rOMnhvcvVvPbW60qAIyrSk44H8ZDqaSSA==", - "dev": true, - "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.2", - "semver": "5.5.0" - } - }, - "jest-config": { - "version": "22.4.2", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-22.4.2.tgz", - "integrity": "sha512-oG31qYO73/3vj/Q8aM2RgzmHndTkz9nRk8ISybfuJqqbf0RW7OUjHVOZPLOUiwLWtz52Yq2HkjIblsyhbA7vrg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "glob": "7.1.2", - "jest-environment-jsdom": "22.4.1", - "jest-environment-node": "22.4.1", - "jest-get-type": "22.1.0", - "jest-jasmine2": "22.4.2", - "jest-regex-util": "22.1.0", - "jest-resolve": "22.4.2", - "jest-util": "22.4.1", - "jest-validate": "22.4.2", - "pretty-format": "22.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-diff": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-22.4.0.tgz", - "integrity": "sha512-+/t20WmnkOkB8MOaGaPziI8zWKxquMvYw4Ub+wOzi7AUhmpFXz43buWSxVoZo4J5RnCozpGbX3/FssjJ5KV9Nw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "diff": "3.3.1", - "jest-get-type": "22.1.0", - "pretty-format": "22.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "22.4.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-22.4.1.tgz", - "integrity": "sha512-x/JzAoH+dWPBnIMv5OQKiIR0TYf6UvbRjsIuDZ11yDFXkHKGJZg6jNnLAsokAm3cq9kUa2hH5BPUC9XU4n1ELQ==", - "dev": true, - "requires": { - "jest-mock": "22.2.0", - "jest-util": "22.4.1", - "jsdom": "11.6.2" - } - }, - "jest-environment-node": { - "version": "22.4.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-22.4.1.tgz", - "integrity": "sha512-wj9+zzfRgnUbm5VwFOCGgG1QmbucUyrjPKBKUJdLW8K5Ss5zrNc1k+v6feZhFg6sS3ZGnjgtIyklaxEARxu+LQ==", - "dev": true, - "requires": { - "jest-mock": "22.2.0", - "jest-util": "22.4.1" - } - }, "jest-get-type": { "version": "22.1.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==", "dev": true }, - "jest-jasmine2": { - "version": "22.4.2", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-22.4.2.tgz", - "integrity": "sha512-KZaIHpXQ0AIlvQJFCU0uoXxtz5GG47X14r9upMe7VXE55UazoMZBFnQb9TX2HoYX2/AxJYnjHuvwKVCFqOrEtw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "co": "4.6.0", - "expect": "22.4.0", - "graceful-fs": "4.1.11", - "is-generator-fn": "1.0.0", - "jest-diff": "22.4.0", - "jest-matcher-utils": "22.4.0", - "jest-message-util": "22.4.0", - "jest-snapshot": "22.4.0", - "jest-util": "22.4.1", - "source-map-support": "0.5.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", - "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", - "dev": true, - "requires": { - "source-map": "0.6.1" - } - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-matcher-utils": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-22.4.0.tgz", - "integrity": "sha512-03m3issxUXpWMwDYTfmL8hRNewUB0yCRTeXPm+eq058rZxLHD9f5NtSSO98CWHqe4UyISIxd9Ao9iDVjHWd2qg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "jest-get-type": "22.1.0", - "pretty-format": "22.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-message-util": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-22.4.0.tgz", - "integrity": "sha512-eyCJB0T3hrlpFF2FqQoIB093OulP+1qvATQmD3IOgJgMGqPL6eYw8TbC5P/VCWPqKhGL51xvjIIhow5eZ2wHFw==", - "dev": true, - "requires": { - "@babel/code-frame": "7.0.0-beta.40", - "chalk": "2.3.1", - "micromatch": "2.3.11", - "slash": "1.0.0", - "stack-utils": "1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-mock": { - "version": "22.2.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-22.2.0.tgz", - "integrity": "sha512-eOfoUYLOB/JlxChOFkh/bzpWGqUXb9I+oOpkprHHs9L7nUNfL8Rk28h1ycWrqzWCEQ/jZBg/xIv7VdQkfAkOhw==", - "dev": true - }, - "jest-regex-util": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-22.1.0.tgz", - "integrity": "sha512-on0LqVS6Xeh69sw3d1RukVnur+lVOl3zkmb0Q54FHj9wHoq6dbtWqb3TSlnVUyx36hqjJhjgs/QLqs07Bzu72Q==", - "dev": true - }, - "jest-resolve": { - "version": "22.4.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-22.4.2.tgz", - "integrity": "sha512-P1hSfcc2HJYT5t+WPu/11OfFMa7m8pBb2Gf2vm6W9OVs7YTXQ5RCC3nDqaYZQaTqxEM1ZZaTcQGcE6U2xMOsqQ==", - "dev": true, - "requires": { - "browser-resolve": "1.11.2", - "chalk": "2.3.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-snapshot": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-22.4.0.tgz", - "integrity": "sha512-6Zz4F9G1Nbr93kfm5h3A2+OkE+WGpgJlskYE4iSNN2uYfoTL5b9W6aB9Orpx+ueReHyqmy7HET7Z3EmYlL3hKw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "jest-diff": "22.4.0", - "jest-matcher-utils": "22.4.0", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "pretty-format": "22.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-util": { - "version": "22.4.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-22.4.1.tgz", - "integrity": "sha512-9ySBdJY2qVWpg0OvZbGcFXE2NgwccpZVj384E9bx7brKFc7l5anpqah15mseWcz7FLDk7/N+LyYgqFme7Rez2Q==", - "dev": true, - "requires": { - "callsites": "2.0.0", - "chalk": "2.3.1", - "graceful-fs": "4.1.11", - "is-ci": "1.1.0", - "jest-message-util": "22.4.0", - "mkdirp": "0.5.1", - "source-map": "0.6.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "jest-validate": { - "version": "22.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-22.4.2.tgz", - "integrity": "sha512-TLOgc/EULFBjMCAqZp5OdVvjxV16DZpfthd/UyPzM6lRmgWluohNVemAdnL3JvugU1s2Q2npcIqtbOtiPjaZ0A==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "jest-config": "22.4.2", - "jest-get-type": "22.1.0", - "leven": "2.1.0", - "pretty-format": "22.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", @@ -8062,263 +8062,18 @@ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, - "js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "2.7.3" - }, - "dependencies": { - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", - "dev": true - } - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true - }, - "jsdom": { - "version": "11.6.2", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.6.2.tgz", - "integrity": "sha512-pAeZhpbSlUp5yQcS6cBQJwkbzmv4tWFaYxHbFVSxzXefqjvtRA851Z5N2P+TguVG9YeUDcgb8pdeVQRJh0XR3Q==", - "dev": true, - "requires": { - "abab": "1.0.4", - "acorn": "5.4.1", - "acorn-globals": "4.1.0", - "array-equal": "1.0.0", - "browser-process-hrtime": "0.1.2", - "content-type-parser": "1.0.2", - "cssom": "0.3.2", - "cssstyle": "0.2.37", - "domexception": "1.0.1", - "escodegen": "1.9.0", - "html-encoding-sniffer": "1.0.2", - "left-pad": "1.2.0", - "nwmatcher": "1.4.3", - "parse5": "4.0.0", - "pn": "1.1.0", - "request": "2.83.0", - "request-promise-native": "1.0.5", - "sax": "1.2.4", - "symbol-tree": "3.2.2", - "tough-cookie": "2.3.3", - "w3c-hr-time": "1.0.1", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.3", - "whatwg-url": "6.4.0", - "ws": "4.1.0", - "xml-name-validator": "3.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "boom": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", - "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", - "dev": true, - "requires": { - "hoek": "4.2.1" - } - }, - "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "cryptiles": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", - "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", - "dev": true, - "requires": { - "boom": "5.2.0" - }, - "dependencies": { - "boom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", - "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", - "dev": true, - "requires": { - "hoek": "4.2.1" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", - "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "dev": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.17" - } - }, - "hawk": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", - "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", - "dev": true, - "requires": { - "boom": "4.3.1", - "cryptiles": "3.1.2", - "hoek": "4.2.1", - "sntp": "2.1.0" - } - }, - "hoek": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", - "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", - "dev": true - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.13.1" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true - }, - "request": { - "version": "2.83.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", - "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", - "dev": true, - "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.6.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "hawk": "6.0.2", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.17", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.1", - "safe-buffer": "5.1.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.3", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "sntp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", - "integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==", - "dev": true, - "requires": { - "hoek": "4.2.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "ws": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz", - "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", - "dev": true, - "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1" - } - } - } - }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", - "dev": true - }, "json-parse-better-errors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, "json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", @@ -8346,7 +8101,8 @@ "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true }, "jsonfile": { "version": "2.4.0", @@ -8427,32 +8183,18 @@ "integrity": "sha1-MwVCrT8KZUZlt3jz6y2an6UHrGQ=", "dev": true }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, "just-extend": { "version": "1.1.27", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.27.tgz", "integrity": "sha512-mJVp13Ix6gFo3SBAy9U/kL+oeZqzlYYYLQBwXVBlVzIsZwBqGREnOro24oC/8s8aox+rJhtZ2DiQof++IrkA+g==", "dev": true }, + "killable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz", + "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms=", + "dev": true + }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", @@ -8477,12 +8219,6 @@ "integrity": "sha512-nQRpMcHm1cQ6gmztdvLcIvxocznSMqH/y6XtERrWrHaymOYdDGroRqetJvJycxGEr1aakXiigDgn7JnzuXlk6A==", "dev": true }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", @@ -8532,12 +8268,6 @@ } } }, - "left-pad": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz", - "integrity": "sha1-0wpzxrggHY99jnlWupYWCHpo4O4=", - "dev": true - }, "leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", @@ -8555,38 +8285,46 @@ } }, "lint-staged": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-7.0.0.tgz", - "integrity": "sha512-6Z89we28Qy1Ez7ZxO8yYfPKqzdxkSjnURq1d3RS2gKkZrA135xN+ptF3EWHrcHyBMmgA20vA7dGCQGj+OMS22g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-7.2.0.tgz", + "integrity": "sha512-jPoIMbmgtWMUrz/l0rhBVa1j6H71zr0rEoxDWBA333PZcaqBvELdg0Sf4tdGHlwrBM0GXaXMVgTRkLTm2vA7Jg==", "dev": true, "requires": { "app-root-path": "2.0.1", - "chalk": "2.3.1", + "chalk": "2.4.1", "commander": "2.14.1", - "cosmiconfig": "4.0.0", + "cosmiconfig": "5.0.5", "debug": "3.1.0", "dedent": "0.7.0", "execa": "0.9.0", "find-parent-dir": "0.3.0", "is-glob": "4.0.0", - "jest-validate": "22.4.2", - "listr": "0.13.0", + "is-windows": "1.0.2", + "jest-validate": "23.4.0", + "listr": "0.14.1", "lodash": "4.17.5", "log-symbols": "2.2.0", - "micromatch": "3.1.9", + "micromatch": "3.1.10", "npm-which": "3.0.1", "p-map": "1.2.0", "path-is-inside": "1.0.2", "pify": "3.0.0", - "please-upgrade-node": "3.0.1", - "staged-git-files": "1.1.0", + "please-upgrade-node": "3.1.1", + "staged-git-files": "1.1.1", + "string-argv": "0.0.2", "stringify-object": "3.2.2" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" @@ -8605,18 +8343,16 @@ "dev": true }, "braces": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.1.tgz", - "integrity": "sha512-SO5lYHA3vO6gz66erVvedSCkp7AKWdv6VcQ2N4ysXfPxdAlxAMMAdwegGGcv1Bqwm7naF1hNdk5d6AAIEHV2nQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { "arr-flatten": "1.1.0", "array-unique": "0.3.2", - "define-property": "1.0.0", "extend-shallow": "2.0.1", "fill-range": "4.0.0", "isobject": "3.0.1", - "kind-of": "6.0.2", "repeat-element": "1.1.2", "snapdragon": "0.8.1", "snapdragon-node": "2.1.1", @@ -8624,15 +8360,6 @@ "to-regex": "3.0.2" }, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -8645,14 +8372,25 @@ } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" + } + }, + "cosmiconfig": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", + "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", + "dev": true, + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.12.0", + "parse-json": "4.0.0" } }, "debug": { @@ -8664,6 +8402,12 @@ "ms": "2.0.0" } }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -8761,6 +8505,16 @@ } } }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -8850,27 +8604,118 @@ } } }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "requires": { + "symbol-observable": "1.2.0" + } + }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, + "jest-validate": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.4.0.tgz", + "integrity": "sha1-2W7t4B7wOskJwAnpyORVGX1IwgE=", + "dev": true, + "requires": { + "chalk": "2.4.1", + "jest-get-type": "22.1.0", + "leven": "2.1.0", + "pretty-format": "23.2.0" + } + }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "1.0.10", + "esprima": "4.0.0" + } + }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, + "listr": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.1.tgz", + "integrity": "sha512-MSMUUVN1f8aRnPi4034RkOqdiUlpYW+FqwFE3aL0uYNPRavkt2S2SsSpDDofn8BDpqv2RNnsdOcCHWsChcq77A==", + "dev": true, + "requires": { + "@samverschueren/stream-to-observable": "0.3.0", + "cli-truncate": "0.2.1", + "figures": "1.7.0", + "indent-string": "2.1.0", + "is-observable": "1.1.0", + "is-promise": "2.1.0", + "is-stream": "1.1.0", + "listr-silent-renderer": "1.1.1", + "listr-update-renderer": "0.4.0", + "listr-verbose-renderer": "0.4.1", + "log-symbols": "1.0.2", + "log-update": "1.0.2", + "ora": "0.2.3", + "p-map": "1.2.0", + "rxjs": "6.2.1", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "1.1.3" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, "micromatch": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.9.tgz", - "integrity": "sha512-SlIz6sv5UPaAVVFRKodKjCg48EbNoIhgetzfK/Cy0v5U52Z6zB136M8tp0UC9jM53LYbmIRihJszvvqpKkfm9g==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", - "braces": "2.3.1", + "braces": "2.3.2", "define-property": "2.0.2", "extend-shallow": "3.0.2", "extglob": "2.0.4", @@ -8883,60 +8728,54 @@ "to-regex": "3.0.2" } }, + "please-upgrade-node": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz", + "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==", + "dev": true, + "requires": { + "semver-compare": "1.0.0" + } + }, + "pretty-format": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", + "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.1" + } + }, + "rxjs": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", + "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", + "dev": true, + "requires": { + "tslib": "1.9.3" + } + }, + "staged-git-files": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.1.tgz", + "integrity": "sha512-H89UNKr1rQJvI1c/PIR3kiAMBV23yvR7LItZiV74HWZwzt7f3YHuujJ9nJZlt58WlFox7XQsOahexwk7nTe69A==", + "dev": true + }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" } - } - } - }, - "listr": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.13.0.tgz", - "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", - "dev": true, - "requires": { - "chalk": "1.1.3", - "cli-truncate": "0.2.1", - "figures": "1.7.0", - "indent-string": "2.1.0", - "is-observable": "0.2.0", - "is-promise": "2.1.0", - "is-stream": "1.1.0", - "listr-silent-renderer": "1.1.1", - "listr-update-renderer": "0.4.0", - "listr-verbose-renderer": "0.4.1", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "ora": "0.2.3", - "p-map": "1.2.0", - "rxjs": "5.5.6", - "stream-to-observable": "0.2.0", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "dev": true, - "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" - } }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "requires": { - "chalk": "1.1.3" - } + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true } } }, @@ -9099,6 +8938,12 @@ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", @@ -9116,12 +8961,6 @@ "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", - "dev": true - }, "lodash.template": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", @@ -9254,10 +9093,10 @@ "integrity": "sha512-A5pN2tkFj7H0dGIAM6MFvHKMJcPnjZsOMvR7ujCjfgW5TbV6H9vb1PgxLtHvjqNZTHsUolz+6/WEO0N1xNx2ng==", "dev": true }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", "dev": true }, "longest-streak": { @@ -9288,8 +9127,7 @@ "lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" }, "lru-cache": { "version": "4.1.1", @@ -9301,12 +9139,6 @@ "yallist": "2.1.2" } }, - "macaddress": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", - "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", - "dev": true - }, "magic-string": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.21.3.tgz", @@ -9325,6 +9157,12 @@ "pify": "3.0.0" } }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", + "dev": true + }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", @@ -9480,41 +9318,6 @@ "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", "dev": true }, - "meow": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.0.tgz", - "integrity": "sha512-Me/kel335m6vMKmEmA6c87Z6DUFW3JqkINRnxkbC+A/PUm0D5Fl2dEBQrPKnqCL9Te/CIa1MUt/0InMJhuC/sw==", - "dev": true, - "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist": "1.2.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" - } - } - } - }, "merge": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", @@ -9529,11 +9332,16 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", - "dev": true, "requires": { "source-map": "0.5.7" } }, + "merge2": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", + "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", + "dev": true + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -9624,11 +9432,21 @@ "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, "requires": { "dom-walk": "0.1.1" } }, + "mini-css-extract-plugin": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.1.tgz", + "integrity": "sha512-XWuB3G61Rtasq/gLe7cp5cuozehE6hN+E4sxCamRR/WDiHTg+f7ZIAS024r8UJQffY+e2gGELXQZgQoFDfNDCg==", + "dev": true, + "requires": { + "@webpack-contrib/schema-utils": "1.0.0-beta.0", + "loader-utils": "1.1.0", + "webpack-sources": "1.1.0" + } + }, "minimalistic-assert": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", @@ -9713,27 +9531,28 @@ } }, "mocha": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.0.4.tgz", - "integrity": "sha512-nMOpAPFosU1B4Ix1jdhx5e3q7XO55ic5a8cgYvW27CequcEY+BabS0kUVL1Cw1V5PuVHZWeNRWFLmEPexo79VA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", "dev": true, "requires": { "browser-stdout": "1.3.1", - "commander": "2.11.0", + "commander": "2.15.1", "debug": "3.1.0", "diff": "3.5.0", "escape-string-regexp": "1.0.5", "glob": "7.1.2", - "growl": "1.10.3", + "growl": "1.10.5", "he": "1.1.1", + "minimatch": "3.0.4", "mkdirp": "0.5.1", - "supports-color": "4.4.0" + "supports-color": "5.4.0" }, "dependencies": { "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, "debug": { @@ -9751,19 +9570,25 @@ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "3.0.0" } } } @@ -9777,7 +9602,8 @@ "moment": { "version": "2.19.3", "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.3.tgz", - "integrity": "sha1-vbmdJw1tf9p4zA+6zoVeJ/59pp8=" + "integrity": "sha1-vbmdJw1tf9p4zA+6zoVeJ/59pp8=", + "dev": true }, "moment-timezone": { "version": "0.5.5", @@ -9850,36 +9676,103 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, - "nan": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", - "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", - "dev": true, - "optional": true + "mutexify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.2.0.tgz", + "integrity": "sha512-oprzxd2zhfrJqEuB98qc1dRMMonClBQ57UPDjnbcrah4orEMTq1jq3+AcdFe5ePzdbJXI7zmdhfftIdMnhYFoQ==" }, "nanoassert": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.1.0.tgz", "integrity": "sha1-TzFS4JVA/eKMdvRLGbvNHVpCR40=" }, + "nanobench": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nanobench/-/nanobench-2.1.1.tgz", + "integrity": "sha512-z+Vv7zElcjN+OpzAxAquUayFLGK3JI/ubCl0Oh64YQqsTGG09CGqieJVQw4ui8huDnnAgrvTv93qi5UaOoNj8A==", + "requires": { + "browser-process-hrtime": "0.1.2", + "chalk": "1.1.3", + "mutexify": "1.2.0", + "pretty-hrtime": "1.0.3" + } + }, "nanobus": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/nanobus/-/nanobus-4.3.3.tgz", "integrity": "sha512-4/uzl+LkMGoVv/9eMzH2QFvefmlJErT0KR7EmuYbmht2QvxSEqTjhFFOZ/KHE6chH58fKL3njrOcEwbYV0h9Yw==", "requires": { - "nanotiming": "7.3.0", + "nanotiming": "7.3.1", "remove-array-items": "1.0.0" } }, + "nanocomponent": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/nanocomponent/-/nanocomponent-6.5.2.tgz", + "integrity": "sha512-k/C/Taxno+imoQL6/8tlbMuwvXq4fwjKHphBuZ8Sh/8NiaCBixMWitRZ3uW0Pyz1mrPOHhs6evkKngR1Y8Vi2g==", + "requires": { + "global": "4.3.2", + "nanoassert": "1.1.0", + "nanomorph": "5.1.3", + "nanotiming": "7.3.1", + "on-load": "3.3.4" + } + }, "nanohref": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/nanohref/-/nanohref-3.0.1.tgz", "integrity": "sha512-YfDhNcglFDIISfKVnXHovDaaglTauD2ThidaTZuyV6NE0lQMvGs5UfSoa1GvX6Nd9p2TfFeYzzc+TtjH+htu+Q==" }, - "nanolocation": { + "nanohtml": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/nanohtml/-/nanohtml-1.2.4.tgz", + "integrity": "sha512-Fr87YV9ANgqkw4rX7+dMrjefVZWHnitkAqr5bliQ/a6/aYY8haruePBXS6lrEerx/VQNY7qWIGR6PPad08czfg==", + "requires": { + "acorn": "5.4.1", + "camel-case": "3.0.0", + "convert-source-map": "1.5.1", + "hyperx": "2.3.3", + "is-boolean-attribute": "0.0.1", + "nanoassert": "1.1.0", + "nanobench": "2.1.1", + "normalize-html-whitespace": "0.2.0", + "through2": "2.0.3", + "transform-ast": "2.4.4" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" + }, + "magic-string": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", + "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", + "requires": { + "sourcemap-codec": "1.4.1" + } + }, + "transform-ast": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", + "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", + "requires": { + "acorn-node": "1.3.0", + "convert-source-map": "1.5.1", + "dash-ast": "1.0.0", + "is-buffer": "2.0.3", + "magic-string": "0.23.2", + "merge-source-map": "1.0.4", + "nanobench": "2.1.1" + } + } + } + }, + "nanolru": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nanolocation/-/nanolocation-1.0.0.tgz", - "integrity": "sha1-FbXHrwWJXRqfIfDRNkldmURQaGs=" + "resolved": "https://registry.npmjs.org/nanolru/-/nanolru-1.0.0.tgz", + "integrity": "sha512-GyQkE8M32pULhQk7Sko5raoIbPalAk90ICG+An4fq6fCsFHsP6fB2K46WGXVdoJpy4SGMnZ/EKbo123fZJomWg==" }, "nanomatch": { "version": "1.2.9", @@ -9959,10 +9852,11 @@ } }, "nanotiming": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/nanotiming/-/nanotiming-7.3.0.tgz", - "integrity": "sha512-lNJ8Ch+fI2yIt9tlgO3G/1Md00S23FghTFVYqKnXseIegcRgHg/fEm7Abw8Imakk0fpNGiK9eSSlopnsE61uMw==", + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/nanotiming/-/nanotiming-7.3.1.tgz", + "integrity": "sha512-l3lC7v/PfOuRWQa8vV29Jo6TG10wHtnthLElFXs4Te4Aas57Fo4n1Q8LH9n+NDh9riOzTVvb2QNBhTS4JUKNjw==", "requires": { + "nanoassert": "1.1.0", "nanoscheduler": "1.0.2" } }, @@ -9986,6 +9880,18 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" }, + "neo-async": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", + "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==", + "dev": true + }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, "nise": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/nise/-/nise-1.2.5.tgz", @@ -10020,7 +9926,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, "requires": { "lower-case": "1.1.4" } @@ -10136,8 +10041,7 @@ "normalize-html-whitespace": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/normalize-html-whitespace/-/normalize-html-whitespace-0.2.0.tgz", - "integrity": "sha1-EBci9kI1Ucdc24+dEE/4UNrx4Q4=", - "dev": true + "integrity": "sha1-EBci9kI1Ucdc24+dEE/4UNrx4Q4=" }, "normalize-package-data": { "version": "2.4.0", @@ -10169,18 +10073,6 @@ "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", "dev": true }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" - } - }, "npm-path": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", @@ -10191,14 +10083,14 @@ } }, "npm-run-all": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.2.tgz", - "integrity": "sha512-Z2aRlajMK4SQ8u19ZA75NZZu7wupfCNQWdYosIi8S6FgBdGf/8Y6Hgyjdc8zU2cYmIRVCx1nM80tJPkdEd+UYg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.3.tgz", + "integrity": "sha512-aOG0N3Eo/WW+q6sUIdzcV2COS8VnTZCmdji0VQIAZF3b+a3YWb0AD0vFIyjKec18A7beLGbaQ5jFTNI2bPt9Cg==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "chalk": "2.3.1", - "cross-spawn": "5.1.0", + "ansi-styles": "3.2.1", + "chalk": "2.4.1", + "cross-spawn": "6.0.5", "memorystream": "0.3.1", "minimatch": "3.0.4", "ps-tree": "1.1.0", @@ -10208,23 +10100,36 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "1.0.4", + "path-key": "2.0.1", + "semver": "5.5.0", + "shebang-command": "1.2.0", + "which": "1.3.0" } }, "has-flag": { @@ -10234,9 +10139,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -10339,16 +10244,10 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, - "nwmatcher": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz", - "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==", - "dev": true - }, "nyc": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.5.0.tgz", - "integrity": "sha512-xIYK189By0YiM5/T4TviHu3J7bV7lCj5WYJfyZK3z03QgAaQ60WcLaJuXf0zhKoI6PBnUR92ZpSwBICCrgSBGg==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/nyc/-/nyc-11.9.0.tgz", + "integrity": "sha512-w8OdJAhXL5izerzZMdqzYKMj/pgHJyY3qEPYBjLLxrhcVoHEY9pU5ENIiZyCgG9OR7x3VcUMoD40o6PtVpfR4g==", "dev": true, "requires": { "archy": "1.0.0", @@ -10361,22 +10260,22 @@ "find-up": "2.1.0", "foreground-child": "1.5.6", "glob": "7.1.2", - "istanbul-lib-coverage": "1.1.2", + "istanbul-lib-coverage": "1.2.0", "istanbul-lib-hook": "1.1.0", - "istanbul-lib-instrument": "1.9.2", + "istanbul-lib-instrument": "1.10.1", "istanbul-lib-report": "1.1.3", "istanbul-lib-source-maps": "1.2.3", - "istanbul-reports": "1.1.4", + "istanbul-reports": "1.4.0", "md5-hex": "1.3.0", "merge-source-map": "1.1.0", - "micromatch": "2.3.11", + "micromatch": "3.1.10", "mkdirp": "0.5.1", "resolve-from": "2.0.0", "rimraf": "2.6.2", "signal-exit": "3.0.2", "spawn-wrap": "1.4.2", - "test-exclude": "4.2.0", - "yargs": "10.1.2", + "test-exclude": "4.2.1", + "yargs": "11.1.0", "yargs-parser": "8.1.0" }, "dependencies": { @@ -10419,20 +10318,22 @@ "dev": true }, "arr-diff": { - "version": "2.0.0", + "version": "4.0.0", "bundled": true, - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } + "dev": true }, "arr-flatten": { "version": "1.1.0", "bundled": true, "dev": true }, + "arr-union": { + "version": "3.1.0", + "bundled": true, + "dev": true + }, "array-unique": { - "version": "0.2.1", + "version": "0.3.2", "bundled": true, "dev": true }, @@ -10441,11 +10342,21 @@ "bundled": true, "dev": true }, + "assign-symbols": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, "async": { "version": "1.5.2", "bundled": true, "dev": true }, + "atob": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, "babel-code-frame": { "version": "6.26.0", "bundled": true, @@ -10466,7 +10377,7 @@ "babel-types": "6.26.0", "detect-indent": "4.0.0", "jsesc": "1.3.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "source-map": "0.5.7", "trim-right": "1.0.1" } @@ -10484,7 +10395,7 @@ "bundled": true, "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.6", "regenerator-runtime": "0.11.1" } }, @@ -10497,7 +10408,7 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "lodash": "4.17.5" + "lodash": "4.17.10" } }, "babel-traverse": { @@ -10512,8 +10423,8 @@ "babylon": "6.18.0", "debug": "2.6.9", "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.5" + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { @@ -10523,7 +10434,7 @@ "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", - "lodash": "4.17.5", + "lodash": "4.17.10", "to-fast-properties": "1.0.3" } }, @@ -10537,6 +10448,66 @@ "bundled": true, "dev": true }, + "base": { + "version": "0.11.2", + "bundled": true, + "dev": true, + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, "brace-expansion": { "version": "1.1.11", "bundled": true, @@ -10547,13 +10518,30 @@ } }, "braces": { - "version": "1.8.5", + "version": "2.3.2", "bundled": true, "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "builtin-modules": { @@ -10561,6 +10549,29 @@ "bundled": true, "dev": true }, + "cache-base": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "collection-visit": "1.0.0", + "component-emitter": "1.2.1", + "get-value": "2.0.6", + "has-value": "1.0.0", + "isobject": "3.0.1", + "set-value": "2.0.0", + "to-object-path": "0.3.0", + "union-value": "1.0.0", + "unset-value": "1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, "caching-transform": { "version": "1.0.1", "bundled": true, @@ -10599,6 +10610,32 @@ "supports-color": "2.0.0" } }, + "class-utils": { + "version": "0.3.6", + "bundled": true, + "dev": true, + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, "cliui": { "version": "2.1.0", "bundled": true, @@ -10623,11 +10660,25 @@ "bundled": true, "dev": true }, + "collection-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, "commondir": { "version": "1.0.1", "bundled": true, "dev": true }, + "component-emitter": { + "version": "1.2.1", + "bundled": true, + "dev": true + }, "concat-map": { "version": "0.0.1", "bundled": true, @@ -10638,8 +10689,13 @@ "bundled": true, "dev": true }, + "copy-descriptor": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, "core-js": { - "version": "2.5.3", + "version": "2.5.6", "bundled": true, "dev": true }, @@ -10648,7 +10704,7 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.3", "which": "1.3.0" } }, @@ -10670,6 +10726,11 @@ "bundled": true, "dev": true }, + "decode-uri-component": { + "version": "0.2.0", + "bundled": true, + "dev": true + }, "default-require-extensions": { "version": "1.0.0", "bundled": true, @@ -10678,6 +10739,53 @@ "strip-bom": "2.0.0" } }, + "define-property": { + "version": "2.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, "detect-indent": { "version": "4.0.0", "bundled": true, @@ -10723,7 +10831,7 @@ "bundled": true, "dev": true, "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.3", "shebang-command": "1.2.0", "which": "1.3.0" } @@ -10731,44 +10839,139 @@ } }, "expand-brackets": { - "version": "0.1.5", + "version": "2.1.4", "bundled": true, "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, - "expand-range": { - "version": "1.8.2", + "extend-shallow": { + "version": "3.0.2", "bundled": true, "dev": true, "requires": { - "fill-range": "2.2.3" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } } }, "extglob": { - "version": "0.3.2", + "version": "2.0.4", "bundled": true, "dev": true, "requires": { - "is-extglob": "1.0.0" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } } }, - "filename-regex": { - "version": "2.0.1", - "bundled": true, - "dev": true - }, "fill-range": { - "version": "2.2.3", + "version": "4.0.0", "bundled": true, "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "find-cache-dir": { @@ -10794,14 +10997,6 @@ "bundled": true, "dev": true }, - "for-own": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "requires": { - "for-in": "1.0.2" - } - }, "foreground-child": { "version": "1.5.6", "bundled": true, @@ -10811,6 +11006,14 @@ "signal-exit": "3.0.2" } }, + "fragment-cache": { + "version": "0.2.1", + "bundled": true, + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, "fs.realpath": { "version": "1.0.0", "bundled": true, @@ -10826,6 +11029,11 @@ "bundled": true, "dev": true }, + "get-value": { + "version": "2.0.6", + "bundled": true, + "dev": true + }, "glob": { "version": "7.1.2", "bundled": true, @@ -10839,23 +11047,6 @@ "path-is-absolute": "1.0.1" } }, - "glob-base": { - "version": "0.3.0", - "bundled": true, - "dev": true, - "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - } - }, - "glob-parent": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, "globals": { "version": "9.18.0", "bundled": true, @@ -10900,8 +11091,62 @@ "bundled": true, "dev": true }, + "has-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "hosted-git-info": { - "version": "2.5.0", + "version": "2.6.0", "bundled": true, "dev": true }, @@ -10925,7 +11170,7 @@ "dev": true }, "invariant": { - "version": "2.2.2", + "version": "2.2.4", "bundled": true, "dev": true, "requires": { @@ -10937,6 +11182,14 @@ "bundled": true, "dev": true }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, "is-arrayish": { "version": "0.2.1", "bundled": true, @@ -10955,17 +11208,29 @@ "builtin-modules": "1.1.1" } }, - "is-dotfile": { - "version": "1.0.3", - "bundled": true, - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", + "is-data-descriptor": { + "version": "0.1.4", "bundled": true, "dev": true, "requires": { - "is-primitive": "2.0.0" + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } } }, "is-extendable": { @@ -10973,11 +11238,6 @@ "bundled": true, "dev": true }, - "is-extglob": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, "is-finite": { "version": "1.0.2", "bundled": true, @@ -10991,31 +11251,43 @@ "bundled": true, "dev": true }, - "is-glob": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, "is-number": { - "version": "2.1.0", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { "kind-of": "3.2.2" } }, - "is-posix-bracket": { - "version": "0.1.1", - "bundled": true, - "dev": true - }, - "is-primitive": { + "is-odd": { "version": "2.0.0", "bundled": true, - "dev": true + "dev": true, + "requires": { + "is-number": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "bundled": true, + "dev": true + } + } + }, + "is-plain-object": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } }, "is-stream": { "version": "1.1.0", @@ -11027,6 +11299,11 @@ "bundled": true, "dev": true }, + "is-windows": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, "isarray": { "version": "1.0.0", "bundled": true, @@ -11038,15 +11315,12 @@ "dev": true }, "isobject": { - "version": "2.1.0", + "version": "3.0.1", "bundled": true, - "dev": true, - "requires": { - "isarray": "1.0.0" - } + "dev": true }, "istanbul-lib-coverage": { - "version": "1.1.2", + "version": "1.2.0", "bundled": true, "dev": true }, @@ -11059,7 +11333,7 @@ } }, "istanbul-lib-instrument": { - "version": "1.9.2", + "version": "1.10.1", "bundled": true, "dev": true, "requires": { @@ -11068,7 +11342,7 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "istanbul-lib-coverage": "1.1.2", + "istanbul-lib-coverage": "1.2.0", "semver": "5.5.0" } }, @@ -11077,7 +11351,7 @@ "bundled": true, "dev": true, "requires": { - "istanbul-lib-coverage": "1.1.2", + "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", "path-parse": "1.0.5", "supports-color": "3.2.3" @@ -11099,7 +11373,7 @@ "dev": true, "requires": { "debug": "3.1.0", - "istanbul-lib-coverage": "1.1.2", + "istanbul-lib-coverage": "1.2.0", "mkdirp": "0.5.1", "rimraf": "2.6.2", "source-map": "0.5.7" @@ -11116,7 +11390,7 @@ } }, "istanbul-reports": { - "version": "1.1.4", + "version": "1.4.0", "bundled": true, "dev": true, "requires": { @@ -11184,7 +11458,7 @@ } }, "lodash": { - "version": "4.17.5", + "version": "4.17.10", "bundled": true, "dev": true }, @@ -11202,7 +11476,7 @@ } }, "lru-cache": { - "version": "4.1.1", + "version": "4.1.3", "bundled": true, "dev": true, "requires": { @@ -11210,6 +11484,19 @@ "yallist": "2.1.2" } }, + "map-cache": { + "version": "0.2.2", + "bundled": true, + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "object-visit": "1.0.1" + } + }, "md5-hex": { "version": "1.3.0", "bundled": true, @@ -11247,23 +11534,30 @@ } }, "micromatch": { - "version": "2.3.11", + "version": "3.1.10", "bundled": true, "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } } }, "mimic-fn": { @@ -11284,6 +11578,25 @@ "bundled": true, "dev": true }, + "mixin-deep": { + "version": "1.3.1", + "bundled": true, + "dev": true, + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.1", "bundled": true, @@ -11297,23 +11610,51 @@ "bundled": true, "dev": true }, + "nanomatch": { + "version": "1.2.9", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "fragment-cache": "0.2.1", + "is-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, "normalize-package-data": { "version": "2.4.0", "bundled": true, "dev": true, "requires": { - "hosted-git-info": "2.5.0", + "hosted-git-info": "2.6.0", "is-builtin-module": "1.0.0", "semver": "5.5.0", - "validate-npm-package-license": "3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "bundled": true, - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" + "validate-npm-package-license": "3.0.3" } }, "npm-run-path": { @@ -11334,13 +11675,54 @@ "bundled": true, "dev": true }, - "object.omit": { - "version": "2.0.1", + "object-copy": { + "version": "0.1.0", "bundled": true, "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "object.pick": { + "version": "1.3.0", + "bundled": true, + "dev": true, + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } } }, "once": { @@ -11401,17 +11783,6 @@ "bundled": true, "dev": true }, - "parse-glob": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" - } - }, "parse-json": { "version": "2.2.0", "bundled": true, @@ -11420,6 +11791,11 @@ "error-ex": "1.3.1" } }, + "pascalcase": { + "version": "0.1.1", + "bundled": true, + "dev": true + }, "path-exists": { "version": "2.1.0", "bundled": true, @@ -11490,8 +11866,8 @@ } } }, - "preserve": { - "version": "0.2.0", + "posix-character-classes": { + "version": "0.1.1", "bundled": true, "dev": true }, @@ -11500,43 +11876,6 @@ "bundled": true, "dev": true }, - "randomatic": { - "version": "1.1.7", - "bundled": true, - "dev": true, - "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "bundled": true, - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, "read-pkg": { "version": "1.1.0", "bundled": true, @@ -11572,19 +11911,15 @@ "bundled": true, "dev": true }, - "regex-cache": { - "version": "0.4.4", + "regex-not": { + "version": "1.0.2", "bundled": true, "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, "repeat-element": { "version": "1.1.2", "bundled": true, @@ -11618,6 +11953,16 @@ "bundled": true, "dev": true }, + "resolve-url": { + "version": "0.2.1", + "bundled": true, + "dev": true + }, + "ret": { + "version": "0.1.15", + "bundled": true, + "dev": true + }, "right-align": { "version": "0.1.3", "bundled": true, @@ -11635,6 +11980,14 @@ "glob": "7.1.2" } }, + "safe-regex": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "requires": { + "ret": "0.1.15" + } + }, "semver": { "version": "5.5.0", "bundled": true, @@ -11645,6 +11998,27 @@ "bundled": true, "dev": true }, + "set-value": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, "shebang-command": { "version": "1.2.0", "bundled": true, @@ -11668,11 +12042,125 @@ "bundled": true, "dev": true }, + "snapdragon": { + "version": "0.8.2", + "bundled": true, + "dev": true, + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, "source-map": { "version": "0.5.7", "bundled": true, "dev": true }, + "source-map-resolve": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "atob": "2.1.1", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, + "source-map-url": { + "version": "0.4.0", + "bundled": true, + "dev": true + }, "spawn-wrap": { "version": "1.4.2", "bundled": true, @@ -11687,23 +12175,60 @@ } }, "spdx-correct": { - "version": "1.0.2", + "version": "3.0.0", "bundled": true, "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, - "spdx-expression-parse": { - "version": "1.0.4", + "spdx-exceptions": { + "version": "2.1.0", "bundled": true, "dev": true }, + "spdx-expression-parse": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, "spdx-license-ids": { - "version": "1.2.2", + "version": "3.0.0", "bundled": true, "dev": true }, + "split-string": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "3.0.2" + } + }, + "static-extend": { + "version": "0.1.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, "string-width": { "version": "2.1.1", "bundled": true, @@ -11755,15 +12280,265 @@ "dev": true }, "test-exclude": { - "version": "4.2.0", + "version": "4.2.1", "bundled": true, "dev": true, "requires": { "arrify": "1.0.1", - "micromatch": "2.3.11", + "micromatch": "3.1.10", "object-assign": "4.1.1", "read-pkg-up": "1.0.1", "require-main-filename": "1.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "bundled": true, + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "bundled": true, + "dev": true + }, + "braces": { + "version": "2.3.2", + "bundled": true, + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "bundled": true, + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "bundled": true, + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "bundled": true, + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "bundled": true, + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "bundled": true, + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + } } }, "to-fast-properties": { @@ -11771,6 +12546,44 @@ "bundled": true, "dev": true }, + "to-object-path": { + "version": "0.3.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "requires": { + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "regex-not": "1.0.2", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + } + } + }, "trim-right": { "version": "1.0.1", "bundled": true, @@ -11807,13 +12620,106 @@ "dev": true, "optional": true }, - "validate-npm-package-license": { - "version": "3.0.1", + "union-value": { + "version": "1.0.0", "bundled": true, "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "set-value": { + "version": "0.4.3", + "bundled": true, + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, + "unset-value": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "bundled": true, + "dev": true, + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "bundled": true, + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "bundled": true, + "dev": true + }, + "isobject": { + "version": "3.0.1", + "bundled": true, + "dev": true + } + } + }, + "urix": { + "version": "0.1.0", + "bundled": true, + "dev": true + }, + "use": { + "version": "3.1.0", + "bundled": true, + "dev": true, + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "bundled": true, + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "requires": { + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "which": { @@ -11895,11 +12801,11 @@ "dev": true }, "yargs": { - "version": "10.1.2", + "version": "11.1.0", "bundled": true, "dev": true, "requires": { - "cliui": "4.0.0", + "cliui": "4.1.0", "decamelize": "1.2.0", "find-up": "2.1.0", "get-caller-file": "1.0.2", @@ -11910,7 +12816,7 @@ "string-width": "2.1.1", "which-module": "2.0.0", "y18n": "3.2.1", - "yargs-parser": "8.1.0" + "yargs-parser": "9.0.2" }, "dependencies": { "ansi-regex": { @@ -11918,8 +12824,13 @@ "bundled": true, "dev": true }, + "camelcase": { + "version": "4.1.0", + "bundled": true, + "dev": true + }, "cliui": { - "version": "4.0.0", + "version": "4.1.0", "bundled": true, "dev": true, "requires": { @@ -11935,6 +12846,14 @@ "requires": { "ansi-regex": "3.0.0" } + }, + "yargs-parser": { + "version": "9.0.2", + "bundled": true, + "dev": true, + "requires": { + "camelcase": "4.1.0" + } } } }, @@ -12127,7 +13046,6 @@ "version": "3.3.4", "resolved": "https://registry.npmjs.org/on-load/-/on-load-3.3.4.tgz", "integrity": "sha512-WhwvSW0hZndA7HjN1O3AypgaAahFPTOmJ43bQUTQHsiHhtp9/kk+WlMnd/skqBkWuiNcQqNwKo2ZiwwRWStJIA==", - "dev": true, "requires": { "global": "4.3.2", "nanoassert": "1.1.0" @@ -12460,12 +13378,6 @@ } } }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true - }, "parseurl": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", @@ -12483,6 +13395,12 @@ "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", "dev": true }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -12549,23 +13467,12 @@ "sha.js": "2.4.10" } }, - "pelo": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/pelo/-/pelo-0.1.0.tgz", - "integrity": "sha512-+oVixa69fxS/X+3s1DaSJVQLG/ukHfjK2pHCmpIgjRChp73lnAfbqOYZ0MEo5C5yVkYeUJSoWAcRK0lx0hvOjQ==" - }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", @@ -12666,12 +13573,6 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==" }, - "please-upgrade-node": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.0.1.tgz", - "integrity": "sha1-CmgfLBiRXlQzpcos2U4Lggangts=", - "dev": true - }, "pleeease-filters": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pleeease-filters/-/pleeease-filters-4.0.0.tgz", @@ -12742,12 +13643,6 @@ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", "dev": true }, - "pn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", - "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", - "dev": true - }, "portfinder": { "version": "1.0.13", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", @@ -12773,29 +13668,6 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - }, - "dependencies": { - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } - } - }, "postcss-apply": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/postcss-apply/-/postcss-apply-0.8.0.tgz", @@ -12931,17 +13803,6 @@ } } }, - "postcss-calc": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" - } - }, "postcss-color-function": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-color-function/-/postcss-color-function-4.0.1.tgz", @@ -13523,27 +14384,6 @@ } } }, - "postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "dev": true, - "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, "postcss-cssnext": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/postcss-cssnext/-/postcss-cssnext-3.1.0.tgz", @@ -13876,62 +14716,6 @@ } } }, - "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, - "postcss-filter-plugins": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "uniqid": "4.1.1" - } - }, "postcss-font-family-system-ui": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-font-family-system-ui/-/postcss-font-family-system-ui-3.0.0.tgz", @@ -14058,17 +14842,6 @@ } } }, - "postcss-html": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.12.0.tgz", - "integrity": "sha512-KxKUpj7AY7nlCbLcTOYxdfJnGE7QFAfU2n95ADj1Q90RM/pOLdz8k3n4avOyRFs7MDQHcRzJQWM1dehCwJxisQ==", - "dev": true, - "requires": { - "htmlparser2": "3.9.2", - "remark": "8.0.0", - "unist-util-find-all-after": "1.0.1" - } - }, "postcss-image-set-polyfill": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz", @@ -14263,182 +15036,28 @@ } } }, - "postcss-less": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-1.1.3.tgz", - "integrity": "sha512-WS0wsQxRm+kmN8wEYAGZ3t4lnoNfoyx9EJZrhiPR1K0lMHR0UNWnz52Ya5QRXChHtY75Ef+kDc05FpnBujebgw==", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-load-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", - "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", - "dev": true, - "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1", - "postcss-load-options": "1.2.0", - "postcss-load-plugins": "2.3.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.7.0", - "minimist": "1.2.0", - "object-assign": "4.1.1", - "os-homedir": "1.0.2", - "parse-json": "2.2.0", - "require-from-string": "1.2.1" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", - "dev": true - } - } - }, - "postcss-load-options": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", - "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", - "dev": true, - "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" - }, - "dependencies": { - "cosmiconfig": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.7.0", - "minimist": "1.2.0", - "object-assign": "4.1.1", - "os-homedir": "1.0.2", - "parse-json": "2.2.0", - "require-from-string": "1.2.1" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", - "dev": true - } - } - }, - "postcss-load-plugins": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", - "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", - "dev": true, - "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" - }, - "dependencies": { - "cosmiconfig": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.7.0", - "minimist": "1.2.0", - "object-assign": "4.1.1", - "os-homedir": "1.0.2", - "parse-json": "2.2.0", - "require-from-string": "1.2.1" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "require-from-string": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", - "dev": true - } - } - }, "postcss-loader": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.1.tgz", - "integrity": "sha512-f0J/DWE/hyO9/LH0WHpXkny/ZZ238sSaG3p1SRBtVZnFWUtD7GXIEgHoBg8cnAeRbmEvUxHQptY46zWfwNYj/w==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", + "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", "dev": true, "requires": { "loader-utils": "1.1.0", - "postcss": "6.0.19", - "postcss-load-config": "1.2.0", + "postcss": "6.0.23", + "postcss-load-config": "2.0.0", "schema-utils": "0.4.5" }, "dependencies": { "ajv": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.1.tgz", - "integrity": "sha1-KKarxJOiq+D7TIUHrK7bQ/pVBnE=", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", "dev": true, "requires": { - "fast-deep-equal": "1.0.0", + "fast-deep-equal": "2.0.1", "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ansi-styles": { @@ -14451,31 +15070,53 @@ } }, "chalk": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", - "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.3.0" + "supports-color": "5.4.0" } }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "chalk": "2.3.2", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.3.0" + "supports-color": "5.4.0" + } + }, + "postcss-load-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", + "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", + "dev": true, + "requires": { + "cosmiconfig": "4.0.0", + "import-cwd": "2.1.0" } }, "schema-utils": { @@ -14484,7 +15125,7 @@ "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", "dev": true, "requires": { - "ajv": "6.2.1", + "ajv": "6.5.2", "ajv-keywords": "3.1.0" } }, @@ -14495,9 +15136,9 @@ "dev": true }, "supports-color": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", - "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -14505,6 +15146,83 @@ } } }, + "postcss-markdown": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/postcss-markdown/-/postcss-markdown-0.28.0.tgz", + "integrity": "sha512-F0Vc8eHKDKTmensntXpd35LSAoXXtykhPY+IRfn4AnN4m+irav3QawmtSWLhsmbElKna8l1/HObYnbiM/Wok9Q==", + "dev": true, + "requires": { + "remark": "9.0.0", + "unist-util-find-all-after": "1.0.2" + }, + "dependencies": { + "remark": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-9.0.0.tgz", + "integrity": "sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==", + "dev": true, + "requires": { + "remark-parse": "5.0.0", + "remark-stringify": "5.0.0", + "unified": "6.1.6" + } + }, + "remark-parse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", + "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", + "dev": true, + "requires": { + "collapse-white-space": "1.0.3", + "is-alphabetical": "1.0.1", + "is-decimal": "1.0.1", + "is-whitespace-character": "1.0.1", + "is-word-character": "1.0.1", + "markdown-escapes": "1.0.1", + "parse-entities": "1.1.1", + "repeat-string": "1.6.1", + "state-toggle": "1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "1.1.0", + "unherit": "1.1.0", + "unist-util-remove-position": "1.1.1", + "vfile-location": "2.0.2", + "xtend": "4.0.1" + } + }, + "remark-stringify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-5.0.0.tgz", + "integrity": "sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w==", + "dev": true, + "requires": { + "ccount": "1.0.2", + "is-alphanumeric": "1.0.0", + "is-decimal": "1.0.1", + "is-whitespace-character": "1.0.1", + "longest-streak": "2.0.2", + "markdown-escapes": "1.0.1", + "markdown-table": "1.1.1", + "mdast-util-compact": "1.0.1", + "parse-entities": "1.1.1", + "repeat-string": "1.6.1", + "state-toggle": "1.0.0", + "stringify-entities": "1.3.1", + "unherit": "1.1.0", + "xtend": "4.0.1" + } + }, + "unist-util-find-all-after": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz", + "integrity": "sha512-nDl79mKpffXojLpCimVXnxhlH/jjaTnDuScznU9J4jjsaUtBdDbxmlc109XtcqxY4SDO0SwzngsxxW8DIISt1w==", + "dev": true, + "requires": { + "unist-util-is": "2.1.1" + } + } + } + }, "postcss-media-minmax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-3.0.0.tgz", @@ -14574,102 +15292,12 @@ "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", "dev": true }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "dev": true, - "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.1" - }, - "dependencies": { - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", - "dev": true, - "requires": { - "caniuse-db": "1.0.30000810", - "electron-to-chromium": "1.3.33" - } - } - } - }, "postcss-message-helpers": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", "dev": true }, - "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-minify-params": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" - } - }, - "postcss-minify-selectors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" - } - }, "postcss-modules-extract-imports": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz", @@ -14988,37 +15616,6 @@ } } }, - "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", - "dev": true, - "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, "postcss-pseudo-class-any-link": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-4.0.0.tgz", @@ -15146,36 +15743,6 @@ } } }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", - "dev": true, - "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, - "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "dev": true, - "requires": { - "postcss": "5.2.18" - } - }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" - } - }, "postcss-replace-overflow-wrap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-2.0.0.tgz", @@ -15652,64 +16219,11 @@ "uniq": "1.0.1" } }, - "postcss-svgo": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", - "dev": true, - "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" - }, - "dependencies": { - "coa": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", - "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", - "dev": true, - "requires": { - "q": "1.5.1" - } - }, - "csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "dev": true, - "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" - } - }, - "svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "dev": true, - "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.1", - "whet.extend": "0.9.9" - } - } - } - }, - "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", - "dev": true, - "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" - } + "postcss-syntax": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.28.0.tgz", + "integrity": "sha512-9W3T1fSE9QWKyW6s84kZapv0BP5uvj7mNBp34kwI93uGWULzZjaKv4xR4phubBD53cRgaM/qnvquVK1KLsl+Kg==", + "dev": true }, "postcss-value-parser": { "version": "3.3.0", @@ -15717,29 +16231,12 @@ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", "dev": true }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", - "dev": true, - "requires": { - "has": "1.0.1", - "postcss": "5.2.18", - "uniqs": "2.0.0" - } - }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", @@ -15747,37 +16244,15 @@ "dev": true }, "prettier": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.11.1.tgz", - "integrity": "sha512-T/KD65Ot0PB97xTrG8afQ46x3oiVhnfGjGESSI9NWYcG92+OUPZKkwHqGWXH2t9jK1crnQjubECW0FuOth+hxw==", + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.7.tgz", + "integrity": "sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==", "dev": true }, - "pretty-format": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-22.4.0.tgz", - "integrity": "sha512-pvCxP2iODIIk9adXlo4S3GRj0BrJiil68kByAa1PrgG97c1tClh9dLMgp3Z6cHFZrclaABt0UH8PIhwHuFLqYA==", - "dev": true, - "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - } - } + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" }, "private": { "version": "0.1.8", @@ -15788,8 +16263,7 @@ "process": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", - "dev": true + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" }, "process-nextick-args": { "version": "2.0.0", @@ -15808,15 +16282,6 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, - "proxy-addr": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", - "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.5.2" - } - }, "proxy-from-env": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", @@ -15903,31 +16368,45 @@ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" }, "puppeteer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.1.1.tgz", - "integrity": "sha1-rb8l5J9e8DRDwQq44JqVTKDHv+4=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.5.0.tgz", + "integrity": "sha512-eELwFtFxL+uhmg4jPZOZXzSrPEYy4CaYQNbcchBbfxY+KjMpnv6XGf/aYWaQG49OTpfi2/DMziXtDM8XuJgoUA==", "dev": true, "requires": { - "debug": "2.6.9", + "debug": "3.1.0", "extract-zip": "1.6.6", - "https-proxy-agent": "2.1.1", - "mime": "1.4.1", + "https-proxy-agent": "2.2.1", + "mime": "2.3.1", "progress": "2.0.0", "proxy-from-env": "1.0.0", "rimraf": "2.6.2", - "ws": "3.3.3" + "ws": "5.2.0" }, "dependencies": { - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1", - "ultron": "1.1.1" + "ms": "2.0.0" } + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "dev": true, + "requires": { + "agent-base": "4.2.0", + "debug": "3.1.0" + } + }, + "mime": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "dev": true } } }, @@ -15942,16 +16421,6 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" - } - }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -16047,22 +16516,17 @@ "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, "raven": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raven/-/raven-2.4.2.tgz", - "integrity": "sha1-ASnircMHiGRv1TC2fQioziXU9tw=", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/raven/-/raven-2.6.3.tgz", + "integrity": "sha512-bKre7qlDW+y1+G2bUtCuntdDYc8o5v1T233t0vmJfbj8ttGOgLrGRlYB8saelVMW9KUAJNLrhFkAKOwFWFJonw==", "requires": { "cookie": "0.3.1", "md5": "2.2.1", - "stack-trace": "0.0.9", + "stack-trace": "0.0.10", "timed-out": "4.0.1", "uuid": "3.0.0" }, "dependencies": { - "stack-trace": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", - "integrity": "sha1-qPbq7KkGdMMz58Q5U/J1tFFRBpU=" - }, "uuid": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.0.tgz", @@ -16071,9 +16535,9 @@ } }, "raven-js": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/raven-js/-/raven-js-3.23.1.tgz", - "integrity": "sha512-cfkGRgz1TkFmEM5ahPWkIEav2+3zr32qMaBvKizzxN7fZapLbCrxMHMLDn7LSVGN0+dyPKY18imv3i0dkLRoKg==", + "version": "3.26.3", + "resolved": "https://registry.npmjs.org/raven-js/-/raven-js-3.26.3.tgz", + "integrity": "sha512-VPAsPfK73A9VPcJx5X/kt0GxOqUGpGDM8vdzsYNQXMhYemyZGiW1JX1AI+f4jxm37Apijj6VVtCyJcYFz3ocSQ==", "dev": true }, "raw-body": { @@ -16288,15 +16752,6 @@ } } }, - "redeyed": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-1.0.1.tgz", - "integrity": "sha1-6WwZO0DAgWsArshCaY5hGF5VSYo=", - "optional": true, - "requires": { - "esprima": "3.0.0" - } - }, "redis": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/redis/-/redis-2.8.0.tgz", @@ -16405,6 +16860,12 @@ "safe-regex": "1.1.0" } }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz", + "integrity": "sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw==", + "dev": true + }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -16445,62 +16906,6 @@ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", "dev": true }, - "remark": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-8.0.0.tgz", - "integrity": "sha512-K0PTsaZvJlXTl9DN6qYlvjTkqSZBFELhROZMrblm2rB+085flN84nz4g/BscKRMqDvhzlK1oQ/xnWQumdeNZYw==", - "dev": true, - "requires": { - "remark-parse": "4.0.0", - "remark-stringify": "4.0.0", - "unified": "6.1.6" - } - }, - "remark-parse": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-4.0.0.tgz", - "integrity": "sha512-XZgICP2gJ1MHU7+vQaRM+VA9HEL3X253uwUM/BGgx3iv6TH2B3bF3B8q00DKcyP9YrJV+/7WOWEWBFF/u8cIsw==", - "dev": true, - "requires": { - "collapse-white-space": "1.0.3", - "is-alphabetical": "1.0.1", - "is-decimal": "1.0.1", - "is-whitespace-character": "1.0.1", - "is-word-character": "1.0.1", - "markdown-escapes": "1.0.1", - "parse-entities": "1.1.1", - "repeat-string": "1.6.1", - "state-toggle": "1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "1.1.0", - "unherit": "1.1.0", - "unist-util-remove-position": "1.1.1", - "vfile-location": "2.0.2", - "xtend": "4.0.1" - } - }, - "remark-stringify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-4.0.0.tgz", - "integrity": "sha512-xLuyKTnuQer3ke9hkU38SUYLiTmS078QOnoFavztmbt/pAJtNSkNtFgR0U//uCcmG0qnyxao+PDuatQav46F1w==", - "dev": true, - "requires": { - "ccount": "1.0.2", - "is-alphanumeric": "1.0.0", - "is-decimal": "1.0.1", - "is-whitespace-character": "1.0.1", - "longest-streak": "2.0.2", - "markdown-escapes": "1.0.1", - "markdown-table": "1.1.1", - "mdast-util-compact": "1.0.1", - "parse-entities": "1.1.1", - "repeat-string": "1.6.1", - "state-toggle": "1.0.0", - "stringify-entities": "1.3.1", - "unherit": "1.1.0", - "xtend": "4.0.1" - } - }, "remove-array-items": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/remove-array-items/-/remove-array-items-1.0.0.tgz", @@ -16579,26 +16984,6 @@ } } }, - "request-promise-core": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", - "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", - "dev": true, - "requires": { - "lodash": "4.17.5" - } - }, - "request-promise-native": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", - "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", - "dev": true, - "requires": { - "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.3" - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -16606,9 +16991,9 @@ "dev": true }, "require-from-string": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.1.tgz", - "integrity": "sha1-xUUjPp19pmFunVmt+zn8n1iGdv8=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, "require-main-filename": { @@ -16642,6 +17027,23 @@ "path-parse": "1.0.5" } }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, "resolve-from": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", @@ -16682,15 +17084,6 @@ "integrity": "sha1-x3PF/iJoolV42SU5qCp6XOU77aY=", "dev": true }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true, - "requires": { - "align-text": "0.1.4" - } - }, "rimraf": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", @@ -16743,23 +17136,6 @@ "rx-lite": "4.0.8" } }, - "rxjs": { - "version": "5.5.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.6.tgz", - "integrity": "sha512-v4Q5HDC0FHAQ7zcBX7T2IL6O5ltl1a2GX4ENjPXg6SjDY69Cmx9v4113C99a4wGF16ClPv5Z8mghuYorVkg/kg==", - "dev": true, - "requires": { - "symbol-observable": "1.0.1" - }, - "dependencies": { - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", - "dev": true - } - } - }, "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", @@ -16774,6 +17150,12 @@ "ret": "0.1.15" } }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "samsam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", @@ -16785,15 +17167,6 @@ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" }, - "schema-utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", - "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", - "dev": true, - "requires": { - "ajv": "5.5.2" - } - }, "scroll-to-anchor": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/scroll-to-anchor/-/scroll-to-anchor-1.1.0.tgz", @@ -16820,32 +17193,11 @@ "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true }, - "send": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.1.tgz", - "integrity": "sha512-ElCLJdJIKPk6ux/Hocwhk7NFHpI3pVm/IZOYWqUmoxcgeyM+MpxHHKhb8QmlJDX1pU6WrgaHBkVNm73Sv7uc2A==", - "requires": { - "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.3.1" - }, - "dependencies": { - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" - } - } + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true }, "serialize-javascript": { "version": "1.4.0", @@ -16868,17 +17220,6 @@ "parseurl": "1.3.2" } }, - "serve-static": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.1.tgz", - "integrity": "sha512-hSMUZrsPa/I09VYFJwa627JJkNs0NrfL1Uzuup+GqHfToR2KcsXFymXSV90hoyw3M+msjFuQly+YzIH/q0MGlQ==", - "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.1" - } - }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -17006,9 +17347,9 @@ } }, "sinon": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.4.2.tgz", - "integrity": "sha512-cpOHpnRyY3Dk9dTHBYMfVBB0HUCSKIpxW07X6OGW2NiYPovs4AkcL8Q8MzecbAROjbfRA9esJCmlZgikxDz7DA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.5.0.tgz", + "integrity": "sha512-trdx+mB0VBBgoYucy6a9L7/jfQOmvGeaKZT4OOJ+lPAtI8623xyGr8wLiE4eojzBS8G9yXbhx42GHUOVLr4X2w==", "dev": true, "requires": { "@sinonjs/formatio": "2.0.0", @@ -17016,7 +17357,7 @@ "lodash.get": "4.4.2", "lolex": "2.3.2", "nise": "1.2.5", - "supports-color": "5.2.0", + "supports-color": "5.4.0", "type-detect": "4.0.8" }, "dependencies": { @@ -17027,9 +17368,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -17199,24 +17540,6 @@ } } }, - "sockjs": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", - "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", - "dev": true, - "requires": { - "faye-websocket": "0.10.0", - "uuid": "2.0.3" - }, - "dependencies": { - "uuid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", - "dev": true - } - } - }, "sockjs-client": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", @@ -17242,15 +17565,6 @@ } } }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "1.1.0" - } - }, "source-list-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", @@ -17260,8 +17574,7 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { "version": "0.5.1", @@ -17291,6 +17604,11 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, + "sourcemap-codec": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.1.tgz", + "integrity": "sha512-hX1eNBNuilj8yfFnECh0DzLgwKpBLMIvmhgEhixXNui8lMLBInTI8Kyxt++RwJnMNu7cAUo635L2+N1TxMJCzA==" + }, "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", @@ -17436,36 +17754,6 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "sshpk": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", - "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", - "dev": true, - "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, "ssri": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.2.4.tgz", @@ -17486,18 +17774,6 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, - "stack-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.1.tgz", - "integrity": "sha1-1PM6tU6OOHeLDKXP07OvsS22hiA=", - "dev": true - }, - "staged-git-files": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.0.tgz", - "integrity": "sha1-GpuxMcGIVgECPHqt3T1UwiFCxSY=", - "dev": true - }, "state-toggle": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.0.tgz", @@ -17587,12 +17863,6 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, "stream-browserify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", @@ -17692,29 +17962,15 @@ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" }, - "stream-to-observable": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.2.0.tgz", - "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=", - "dev": true, - "requires": { - "any-observable": "0.2.0" - } - }, - "streamsaver": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/streamsaver/-/streamsaver-1.0.1.tgz", - "integrity": "sha1-R11ASXO15pJqVX8OTNhVijUg4Hw=" - }, "strftime": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/strftime/-/strftime-0.10.0.tgz", "integrity": "sha1-s/D6QZKVICpaKJ9ta+n0kJphcZM=" }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "string-argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz", + "integrity": "sha1-2sMECGkMIfPDYwo/86BYd73L1zY=", "dev": true }, "string-hash": { @@ -17790,12 +18046,6 @@ "is-regexp": "1.0.0" } }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", - "dev": true - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -17835,35 +18085,37 @@ "dev": true }, "stylelint": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-9.1.1.tgz", - "integrity": "sha512-BYhAUd8ZiMcRx9cgVOWhckiixK93zXfYB2IwBZxcH+sFE7fp2nvs6xbx97P/wa3obhRLVukrIOH/1BHiukcuOQ==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-9.3.0.tgz", + "integrity": "sha512-u59pWTlrdwjqriJtTvO1a0wRK1mfbQQp7jLt27SX4zl2HmtVHOM/I1wd43xHTvUJZDKp1PTOpqRAamU3gFvmOA==", "dev": true, "requires": { - "autoprefixer": "8.0.0", + "autoprefixer": "8.6.5", "balanced-match": "1.0.0", - "chalk": "2.3.1", - "cosmiconfig": "4.0.0", + "chalk": "2.4.1", + "cosmiconfig": "5.0.5", "debug": "3.1.0", "execall": "1.0.0", "file-entry-cache": "2.0.0", - "get-stdin": "5.0.1", - "globby": "7.1.1", + "get-stdin": "6.0.0", + "globby": "8.0.1", "globjoin": "0.1.4", "html-tags": "2.0.0", "ignore": "3.3.7", + "import-lazy": "3.1.0", "imurmurhash": "0.1.4", "known-css-properties": "0.6.1", "lodash": "4.17.5", "log-symbols": "2.2.0", "mathml-tag-names": "2.0.1", - "meow": "4.0.0", + "meow": "5.0.0", "micromatch": "2.3.11", "normalize-selector": "0.2.0", "pify": "3.0.0", - "postcss": "6.0.19", - "postcss-html": "0.12.0", - "postcss-less": "1.1.3", + "postcss": "6.0.23", + "postcss-html": "0.28.0", + "postcss-less": "2.0.0", + "postcss-markdown": "0.28.0", "postcss-media-query-parser": "0.2.3", "postcss-reporter": "5.0.0", "postcss-resolve-nested-selector": "0.1.1", @@ -17871,6 +18123,7 @@ "postcss-sass": "0.3.0", "postcss-scss": "1.0.4", "postcss-selector-parser": "3.1.1", + "postcss-syntax": "0.28.0", "postcss-value-parser": "3.3.0", "resolve-from": "4.0.0", "signal-exit": "3.0.2", @@ -17883,55 +18136,64 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, "autoprefixer": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.0.0.tgz", - "integrity": "sha512-XBEqAoESCyGu3daYmWcTC37Dwmjvs0y40UtUO3MMX+Pd/w7jwNFfUKNtxoMFu0u0wcotP+arDpU3JVH54UV79Q==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz", + "integrity": "sha512-PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==", "dev": true, "requires": { - "browserslist": "3.1.1", - "caniuse-lite": "1.0.30000808", + "browserslist": "3.2.8", + "caniuse-lite": "1.0.30000865", "normalize-range": "0.1.2", "num2fraction": "1.2.2", - "postcss": "6.0.19", + "postcss": "6.0.23", "postcss-value-parser": "3.3.0" } }, "browserslist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.1.1.tgz", - "integrity": "sha512-zHGaPnTt70ywm+glR7uMJFZSl+ADGO67SgD2ae20L+Y3KJUeH4fVa89OkTqKCqAnXFE9mO4LTHBKBqKRlr7VNw==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000810", - "electron-to-chromium": "1.3.33" - }, - "dependencies": { - "caniuse-lite": { - "version": "1.0.30000810", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000810.tgz", - "integrity": "sha512-/0Q00Oie9C72P8zQHtFvzmkrMC3oOFUnMWjCy5F2+BE8lzICm91hQPhh0+XIsAFPKOe2Dh3pKgbRmU3EKxfldA==", - "dev": true - } + "caniuse-lite": "1.0.30000865", + "electron-to-chromium": "1.3.52" } }, + "caniuse-lite": { + "version": "1.0.30000865", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", + "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", + "dev": true + }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" + } + }, + "cosmiconfig": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", + "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", + "dev": true, + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.12.0", + "parse-json": "4.0.0" } }, "debug": { @@ -17943,21 +18205,161 @@ "ms": "2.0.0" } }, + "electron-to-chromium": { + "version": "1.3.52", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", + "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", + "dev": true + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "get-stdin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", + "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", + "dev": true + }, + "globby": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "dev": true, + "requires": { + "array-union": "1.0.2", + "dir-glob": "2.0.0", + "fast-glob": "2.2.2", + "glob": "7.1.2", + "ignore": "3.3.7", + "pify": "3.0.0", + "slash": "1.0.0" + } + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "chalk": "2.3.1", + "argparse": "1.0.10", + "esprima": "4.0.0" + } + }, + "meow": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", + "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", + "dev": true, + "requires": { + "camelcase-keys": "4.2.0", + "decamelize-keys": "1.1.0", + "loud-rejection": "1.6.0", + "minimist-options": "3.0.2", + "normalize-package-data": "2.4.0", + "read-pkg-up": "3.0.0", + "redent": "2.0.0", + "trim-newlines": "2.0.0", + "yargs-parser": "10.1.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" + } + }, + "postcss-html": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.28.0.tgz", + "integrity": "sha512-H+ucbGVR+lsZySspOApeQU9yC6Q3t75lwJYa3Im93fKAUt5DScKOSErShC0aC7USdn2jsT1LxubcC5vYu/VJYw==", + "dev": true, + "requires": { + "htmlparser2": "3.9.2" + } + }, + "postcss-less": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-2.0.0.tgz", + "integrity": "sha512-pPNsVnpCB13nBMOcl5GVh8JGmB0JGFjqkLUDzKdVpptFFKEe9wFdEzvh2j4lD2AD+7qcrUfw9Ta+oi5+Fw7jjQ==", + "dev": true, + "requires": { + "postcss": "5.2.18" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.3", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } } }, "postcss-selector-parser": { @@ -17971,6 +18373,16 @@ "uniq": "1.0.1" } }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "3.0.0" + } + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -17984,13 +18396,22 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" } + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } } } }, @@ -18010,67 +18431,160 @@ } }, "stylelint-no-unsupported-browser-features": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-2.0.0.tgz", - "integrity": "sha512-42U8HyvjgGfA/4Nlez58ffyc5y91344SseGzK5zejaqUWmqNeKGGeKzl8kVizLjxEvtEKItuoZocEzwzDKBb1Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-3.0.0.tgz", + "integrity": "sha512-5IWh21lsBxWPbALWJkZx4Gb/CeBDPl28Du962i7IoasqQl2UdOaWqeECYpU7DFHLMHixhLvx+uDTLahuERnjzA==", "dev": true, "requires": { - "doiuse": "4.0.0", + "doiuse": "4.1.0", "lodash": "4.17.5", - "postcss": "6.0.18" + "postcss": "6.0.23" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "1.9.1" } }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "caniuse-lite": "1.0.30000865", + "electron-to-chromium": "1.3.52" } }, + "caniuse-lite": { + "version": "1.0.30000865", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", + "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + } + }, + "doiuse": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/doiuse/-/doiuse-4.1.0.tgz", + "integrity": "sha512-QBvDs4nH6uJwSNwONQkBpt7SdCfjFEuQqoSkpyoUXqX7gYd9elCTVhIiIEaAFNiykwCrjIjHVcBcx1csa6EsQg==", + "dev": true, + "requires": { + "browserslist": "3.2.8", + "caniuse-lite": "1.0.30000865", + "css-rule-stream": "1.1.0", + "duplexer2": "0.0.2", + "jsonfilter": "1.1.2", + "ldjson-stream": "1.2.1", + "lodash": "4.17.5", + "multimatch": "2.1.0", + "postcss": "6.0.23", + "source-map": "0.5.7", + "through2": "0.6.5", + "yargs": "8.0.2" + } + }, + "electron-to-chromium": { + "version": "1.3.52", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", + "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "2.4.1", + "source-map": "0.6.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" } + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } } } }, @@ -18208,18 +18722,6 @@ "resolved": "https://registry.npmjs.org/symbol/-/symbol-0.3.1.tgz", "integrity": "sha1-tvmpANSWpX8CQI8iGYwQndoGMEE=" }, - "symbol-observable": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", - "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", - "dev": true - }, - "symbol-tree": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", - "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", - "dev": true - }, "table": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", @@ -18282,115 +18784,6 @@ } } }, - "tapable": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", - "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", - "dev": true - }, - "test-exclude": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.0.tgz", - "integrity": "sha512-8hMFzjxbPv6xSlwGhXSvOMJ/vTy3bkng+2pxmf6E1z6VF7I9nIyNfvHtaw+NBPgvz647gADBbMSbwLfZYppT/w==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "micromatch": "2.3.11", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } - } - } - }, "testpilot-ga": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/testpilot-ga/-/testpilot-ga-0.3.0.tgz", @@ -18412,13 +18805,13 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true }, "through2": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, "requires": { "readable-stream": "2.3.4", "xtend": "4.0.1" @@ -18428,7 +18821,6 @@ "version": "2.3.4", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -18443,7 +18835,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -18456,12 +18847,6 @@ "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=", "dev": true }, - "time-stamp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz", - "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=", - "dev": true - }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", @@ -18539,40 +18924,6 @@ } } }, - "tough-cookie": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", - "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", - "dev": true, - "requires": { - "punycode": "1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", - "dev": true - } - } - }, "transform-ast": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.3.0.tgz", @@ -18616,6 +18967,12 @@ "integrity": "sha1-qf2LA5Swro//guBjOgo2zK1bX4Y=", "dev": true }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", @@ -18628,13 +18985,6 @@ "integrity": "sha1-rWgbaPUyGtKCfEz7G31d8s/pQu4=", "dev": true }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -18665,6 +19015,30 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, + "requires": { + "commander": "2.13.0", + "source-map": "0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "uglify-js": { "version": "3.3.10", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.10.tgz", @@ -18683,72 +19057,6 @@ } } }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "dev": true, - "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.1.0" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", - "wordwrap": "0.0.2" - } - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" - } - }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" - } - } - } - }, "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", @@ -18849,21 +19157,6 @@ "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, - "uniqid": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", - "dev": true, - "requires": { - "macaddress": "0.2.8" - } - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, "unique-filename": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", @@ -18882,15 +19175,6 @@ "imurmurhash": "0.1.4" } }, - "unist-util-find-all-after": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.1.tgz", - "integrity": "sha1-TlUSq/734GFnga7Pex7XUcAK+Qg=", - "dev": true, - "requires": { - "unist-util-is": "2.1.1" - } - }, "unist-util-is": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.1.tgz", @@ -18997,11 +19281,33 @@ } } }, + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", + "dev": true + }, "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + } + } }, "urix": { "version": "0.1.0", @@ -19018,12 +19324,6 @@ "querystring": "0.2.0" } }, - "url-join": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", - "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=", - "dev": true - }, "url-parse": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz", @@ -19189,13 +19489,56 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" }, + "v8-compile-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.0.tgz", + "integrity": "sha512-qNdTUMaCjPs4eEnM3W9H94R3sU70YCuT+/ST7nUf+id1bVOrdjrpUaeZLqPBPRph3hsgn4a4BvwpxhHZx+oSDg==", + "dev": true + }, "val-loader": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/val-loader/-/val-loader-1.1.0.tgz", - "integrity": "sha512-8m62XF42FcfrBBl02rtDY9hQhDcDczrEcr60/aSMxlzJiXAcbAimRPvsDoDa5QcGAusOgOmVTpFtK5EbfZdDwA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/val-loader/-/val-loader-1.1.1.tgz", + "integrity": "sha512-JLqLXJWCVLXTxbUeHhLpWkgl3+X3U8Bl0vY7rTFZgFSbLJaEtAxuD2ixy/cM8w/gzC7sS3NE5IDSzClDt332sw==", "dev": true, "requires": { - "loader-utils": "1.1.0" + "loader-utils": "1.1.0", + "schema-utils": "0.4.5" + }, + "dependencies": { + "ajv": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", + "dev": true, + "requires": { + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "dev": true, + "requires": { + "ajv": "6.5.2", + "ajv-keywords": "3.1.0" + } + } } }, "validate-npm-package-license": { @@ -19213,46 +19556,11 @@ "resolved": "https://registry.npmjs.org/validator/-/validator-7.2.0.tgz", "integrity": "sha512-c8NGTUYeBEcUIGeMppmNVKHE7wwfm3mYbNZxV+c5mlv9fDHI7Ad3p07qfNrn/CvpdkK2k61fOLRO2sTEhgQXmg==" }, - "varify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/varify/-/varify-0.2.0.tgz", - "integrity": "sha1-GR2p/p3EzWjQ0USY1OKpEP9OZRY=", - "optional": true, - "requires": { - "redeyed": "1.0.1", - "through": "2.3.8" - } - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, - "vendors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", - "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - } - } - }, "vfile": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz", @@ -19301,26 +19609,6 @@ "indexof": "0.0.1" } }, - "w3c-hr-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", - "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", - "dev": true, - "requires": { - "browser-process-hrtime": "0.1.2" - } - }, - "watchpack": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", - "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", - "dev": true, - "requires": { - "async": "2.6.0", - "chokidar": "1.7.0", - "graceful-fs": "4.1.11" - } - }, "wayfarer": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/wayfarer/-/wayfarer-6.6.3.tgz", @@ -19344,389 +19632,1211 @@ "integrity": "sha1-NxkkXpCSgtk5Z4JfRLzVUOnAOZU=", "dev": true }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, "webpack": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz", - "integrity": "sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.16.0.tgz", + "integrity": "sha512-oNx9djAd6uAcccyfqN3hyXLNMjZHiRySZmBQ4c8FNmf1SNJGhx7n9TSvHNyXxgToRdH65g/Q97s94Ip9N6F7xg==", "dev": true, "requires": { - "acorn": "5.4.1", - "acorn-dynamic-import": "2.0.2", - "ajv": "6.1.1", + "@webassemblyjs/ast": "1.5.13", + "@webassemblyjs/helper-module-context": "1.5.13", + "@webassemblyjs/wasm-edit": "1.5.13", + "@webassemblyjs/wasm-opt": "1.5.13", + "@webassemblyjs/wasm-parser": "1.5.13", + "acorn": "5.7.1", + "acorn-dynamic-import": "3.0.0", + "ajv": "6.5.2", "ajv-keywords": "3.1.0", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.1.0", - "json-loader": "0.5.7", - "json5": "0.5.1", + "chrome-trace-event": "1.0.0", + "enhanced-resolve": "4.1.0", + "eslint-scope": "3.7.1", + "json-parse-better-errors": "1.0.2", "loader-runner": "2.3.0", "loader-utils": "1.1.0", "memory-fs": "0.4.1", + "micromatch": "3.1.10", "mkdirp": "0.5.1", + "neo-async": "2.5.1", "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.4.0", - "webpack-sources": "1.1.0", - "yargs": "8.0.2" + "schema-utils": "0.4.5", + "tapable": "1.0.0", + "uglifyjs-webpack-plugin": "1.2.7", + "watchpack": "1.6.0", + "webpack-sources": "1.1.0" }, "dependencies": { - "ajv": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.1.1.tgz", - "integrity": "sha1-l41Zf7wrfQ5aXD3esUmmgvKr+g4=", + "acorn": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "dev": true, "requires": { - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "acorn": "5.7.1" } }, - "ajv-keywords": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz", - "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=", + "ajv": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", + "dev": true, + "requires": { + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "3.1.10", + "normalize-path": "2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.1", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.1.0" + } + }, + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "tapable": "1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "2.1.2" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.9", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.1", + "to-regex": "3.0.2" + } + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true, + "optional": true + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "dev": true, + "requires": { + "ajv": "6.5.2", + "ajv-keywords": "3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "tapable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", + "dev": true + }, + "uglifyjs-webpack-plugin": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz", + "integrity": "sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==", + "dev": true, + "requires": { + "cacache": "10.0.4", + "find-cache-dir": "1.0.0", + "schema-utils": "0.4.5", + "serialize-javascript": "1.4.0", + "source-map": "0.6.1", + "uglify-es": "3.3.9", + "webpack-sources": "1.1.0", + "worker-farm": "1.6.0" + } + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "2.0.4", + "graceful-fs": "4.1.11", + "neo-async": "2.5.1" + } + } + } + }, + "webpack-cli": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.0.8.tgz", + "integrity": "sha512-KnRLJ0BUaYRqrhAMb9dv3gzdmhmgIMKo0FmdsnmfqbPGtLnnZ6tORZAvmmKfr+A0VgiVpqC60Gv7Ofg0R2CHtQ==", + "dev": true, + "requires": { + "chalk": "2.4.1", + "cross-spawn": "6.0.5", + "enhanced-resolve": "4.1.0", + "global-modules-path": "2.1.0", + "import-local": "1.0.0", + "inquirer": "6.0.0", + "interpret": "1.1.0", + "loader-utils": "1.1.0", + "supports-color": "5.4.0", + "v8-compile-cache": "2.0.0", + "yargs": "11.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + } + }, + "chardet": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.5.0.tgz", + "integrity": "sha512-9ZTaoBaePSCFvNlNGrsyI8ZVACP2svUtq0DkM7t4K2ClAa96sqOIRjAzDTc8zXzFt1cZR46rRzLTiHFSJ+Qw0g==", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "1.0.4", + "path-key": "2.0.1", + "semver": "5.5.0", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + }, + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "tapable": "1.0.0" + } + }, + "external-editor": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.0.tgz", + "integrity": "sha512-mpkfj0FEdxrIhOC04zk85X7StNtr0yXnG7zCb+8ikO8OJi2jsHh5YGoknNTyXgsbHOf1WOOcVU3kPFWT2WgCkQ==", + "dev": true, + "requires": { + "chardet": "0.5.0", + "iconv-lite": "0.4.23", + "tmp": "0.0.33" + } + }, "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "dev": true, "requires": { - "has-flag": "2.0.0" + "safer-buffer": "2.1.2" } }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "inquirer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.0.0.tgz", + "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", "dev": true, "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", + "ansi-escapes": "3.0.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "3.0.0", + "figures": "2.0.0", + "lodash": "4.17.5", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rxjs": "6.2.1", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + } + }, + "rxjs": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", + "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", + "dev": true, + "requires": { + "tslib": "1.9.3" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + }, + "tapable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", + "dev": true + }, + "yargs": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "dev": true, + "requires": { + "cliui": "4.1.0", "decamelize": "1.2.0", + "find-up": "2.1.0", "get-caller-file": "1.0.2", "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", "require-directory": "2.1.1", "require-main-filename": "1.0.1", "set-blocking": "2.0.0", "string-width": "2.1.1", "which-module": "2.0.0", "y18n": "3.2.1", - "yargs-parser": "7.0.0" + "yargs-parser": "9.0.2" + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "4.1.0" } } } }, "webpack-dev-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-2.0.6.tgz", - "integrity": "sha512-tj5LLD9r4tDuRIDa5Mu9lnY2qBBehAITv6A9irqXhw/HQquZgTx3BCd57zYbU2gMDnncA49ufK2qVQSbaKJwOw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.1.3.tgz", + "integrity": "sha512-I6Mmy/QjWU/kXwCSFGaiOoL5YEQIVmbb0o45xMoCyQAg/mClqZVTcsX327sPfekDyJWpCxb+04whNyLOIxpJdQ==", "dev": true, "requires": { "loud-rejection": "1.6.0", "memory-fs": "0.4.1", - "mime": "2.2.0", + "mime": "2.3.1", "path-is-absolute": "1.0.1", "range-parser": "1.2.0", - "url-join": "2.0.5", + "url-join": "4.0.0", "webpack-log": "1.1.2" }, "dependencies": { "mime": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.2.0.tgz", - "integrity": "sha512-0Qz9uF1ATtl8RKJG4VRfOymh7PyEor6NbrI/61lRfuRe4vx9SNATrvAeTj2EWVRKjEQGskrzWkJBBY5NbaVHIA==", - "dev": true - } - } - }, - "webpack-dev-server": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.9.1.tgz", - "integrity": "sha512-qFKs4Wg6JI6FkAQ6WFqeDCCxXEBLsDHkqJB3f9tmlqx8C68Y9vQWwcaMT4Q9H8WF32Q6QUNmgK4qQkdHfXvj/g==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", - "chokidar": "1.7.0", - "compression": "1.7.1", - "connect-history-api-fallback": "1.5.0", - "del": "3.0.0", - "express": "4.16.2", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "internal-ip": "1.2.0", - "ip": "1.1.5", - "loglevel": "1.6.1", - "opn": "5.2.0", - "portfinder": "1.0.13", - "selfsigned": "1.10.2", - "serve-index": "1.9.1", - "sockjs": "0.3.18", - "sockjs-client": "1.1.4", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "4.5.0", - "webpack-dev-middleware": "1.12.2", - "yargs": "6.6.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", "dev": true }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "1.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } - }, - "supports-color": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", - "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", - "dev": true, - "requires": { - "has-flag": "2.0.0" - } - }, - "webpack-dev-middleware": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", - "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", - "dev": true, - "requires": { - "memory-fs": "0.4.1", - "mime": "1.6.0", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "dev": true, - "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "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.1" - } - }, - "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "dev": true, - "requires": { - "camelcase": "3.0.0" - } } } }, @@ -19780,13 +20890,22 @@ } }, "webpack-manifest-plugin": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-1.3.2.tgz", - "integrity": "sha512-MX60Bv2G83Zks9pi3oLOmRgnPAnwrlMn+lftMrWBm199VQjk46/xgzBi9lPfpZldw2+EI2S+OevuLIaDuxCWRw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.0.3.tgz", + "integrity": "sha512-FZcnB3MMQ0CT0aU1+LItwywXWAixLTGUEAtN0fw15dScf2LudQwheLPUCj+QMhDlwZT+9ysfKqUFTcfUGc8bXg==", "dev": true, "requires": { "fs-extra": "0.30.0", - "lodash": "4.17.5" + "lodash": "4.17.5", + "tapable": "1.0.0" + }, + "dependencies": { + "tapable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", + "dev": true + } } }, "webpack-sources": { @@ -19890,32 +21009,6 @@ } } }, - "whatwg-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz", - "integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.19" - } - }, - "whatwg-url": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.4.0.tgz", - "integrity": "sha512-Z0CVh/YE217Foyb488eo+iBv+r7eAQ0wSTyApi9n06jhcA3z6Nidg/EGvl0UFkg7kMdKxfBzzr+o9JF+cevgMg==", - "dev": true, - "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" - } - }, - "whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", - "dev": true - }, "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", @@ -19931,18 +21024,21 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true - }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, + "requires": { + "errno": "0.1.7" + } + }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", @@ -20047,12 +21143,6 @@ "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=", "dev": true }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, "xml2js": { "version": "0.4.17", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", @@ -20112,6 +21202,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, "requires": { "camelcase": "4.1.0" } diff --git a/package.json b/package.json index 7e9603db..fabeb7f2 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "prepush": "npm test", "check": "nsp check", "clean": "rimraf dist", - "build": "npm run clean && webpack && webpack --config webpackSw.config.js", + "build": "npm run clean && webpack", "lint": "npm-run-all lint:*", "lint:css": "stylelint app/*.css app/**/*.css", "lint:js": "eslint .", @@ -30,7 +30,8 @@ "test:frontend": "cross-env NODE_ENV=development node test/frontend/runner.js && nyc report --reporter=html", "test-integration": "docker-compose up --abort-on-container-exit --exit-code-from integration-tests --build --remove-orphans --quiet-pull && docker-compose down", "test-integration-stage": "cross-env BASE_URL=https://send.stage.mozaws.net npm run test-integration", - "start": "npm run clean && cross-env NODE_ENV=development webpack-dev-server --config webpack.dev.config.js", + "start": "npm run clean && cross-env NODE_ENV=development webpack-dev-server --mode=development", + "dev": "webpack-serve", "prod": "node server/bin/prod.js" }, "lint-staged": { @@ -55,84 +56,84 @@ "node": ">=8.2.0" }, "devDependencies": { + "@dannycoates/webpack-dev-server": "^3.1.4", "asmcrypto.js": "^0.22.0", - "babel-core": "^6.26.0", + "babel-core": "^6.26.3", "babel-loader": "^7.1.4", - "babel-plugin-istanbul": "^4.1.5", - "babel-plugin-yo-yoify": "^1.0.2", - "babel-preset-env": "^1.6.1", + "babel-plugin-istanbul": "^4.1.6", + "babel-plugin-yo-yoify": "^2.0.0", + "babel-preset-env": "^1.7.0", "babel-preset-es2015": "^6.24.1", "babel-preset-stage-2": "^6.24.1", "babel-preset-stage-3": "^6.24.1", - "base64-js": "^1.2.3", - "copy-webpack-plugin": "^4.5.0", - "cross-env": "^5.1.3", - "css-loader": "^0.28.10", + "base64-js": "^1.3.0", + "copy-webpack-plugin": "^4.5.2", + "cross-env": "^5.2.0", + "css-loader": "^1.0.0", "css-mqpacker": "^6.0.2", - "eslint": "^4.18.2", + "eslint": "^4.19.1", "eslint-plugin-mocha": "^4.12.1", "eslint-plugin-node": "^6.0.1", "eslint-plugin-security": "^1.4.0", - "expose-loader": "^0.7.4", - "extract-loader": "^1.0.2", - "extract-text-webpack-plugin": "^3.0.2", + "expose-loader": "^0.7.5", + "extract-loader": "^2.0.1", "fast-text-encoding": "^1.0.0", "file-loader": "^1.1.11", "fluent-intl-polyfill": "^0.1.0", - "git-rev-sync": "^1.10.0", + "git-rev-sync": "^1.12.0", "github-changes": "^1.1.2", "html-loader": "^0.5.5", "http_ece": "^1.0.5", "husky": "^0.14.3", - "lint-staged": "^7.0.0", - "mocha": "^5.0.4", + "lint-staged": "^7.2.0", + "mini-css-extract-plugin": "^0.4.1", + "mocha": "^5.2.0", "nanobus": "^4.3.2", - "nanotiming": "^7.3.0", - "npm-run-all": "^4.1.2", + "nanotiming": "^7.3.1", + "npm-run-all": "^4.1.3", "nsp": "^3.2.1", - "nyc": "^11.5.0", + "nyc": "^11.9.0", "postcss-cssnext": "^3.1.0", "postcss-import": "^11.1.0", - "postcss-loader": "^2.1.1", - "prettier": "^1.11.1", + "postcss-loader": "^2.1.5", + "prettier": "^1.13.7", "proxyquire": "^1.8.0", - "puppeteer": "^1.1.1", - "raven-js": "^3.23.1", + "puppeteer": "^1.5.0", + "raven-js": "^3.26.3", "redis-mock": "^0.21.0", - "require-from-string": "^2.0.1", + "require-from-string": "^2.0.2", "rimraf": "^2.6.2", - "sinon": "^4.4.2", + "sinon": "^4.5.0", "string-hash": "^1.1.3", - "stylelint": "^9.1.1", + "stylelint": "^9.3.0", "stylelint-config-standard": "^18.2.0", - "stylelint-no-unsupported-browser-features": "^2.0.0", + "stylelint-no-unsupported-browser-features": "^3.0.0", "svgo": "^1.0.5", "svgo-loader": "^2.1.0", "testpilot-ga": "^0.3.0", - "val-loader": "^1.1.0", + "val-loader": "^1.1.1", "web-streams-polyfill": "^1.3.2", - "webpack": "^3.11.0", - "webpack-dev-middleware": "^2.0.6", - "webpack-dev-server": "2.9.1", - "webpack-manifest-plugin": "^1.3.2", + "webpack": "^4.15.1", + "webpack-cli": "^3.0.8", + "webpack-dev-middleware": "^3.1.3", + "webpack-manifest-plugin": "^2.0.3", "webpack-unassert-loader": "^1.2.0" }, "dependencies": { "@mattiasbuelens/web-streams-adapter": "0.1.0-alpha.1", - "aws-sdk": "^2.206.0", - "babel-plugin-transform-runtime": "^6.23.0", + "aws-sdk": "^2.266.1", "babel-polyfill": "^6.26.0", - "choo": "^6.10.0", + "choo": "^6.12.1", "cldr-core": "^32.0.0", - "convict": "^4.0.1", - "express": "^4.16.2", + "convict": "^4.3.1", + "express": "^4.16.3", "express-ws": "^4.0.0", - "fluent": "^0.6.3", + "fluent": "^0.6.4", "fluent-langneg": "^0.1.0", - "helmet": "^3.12.0", + "helmet": "^3.12.1", "mkdirp": "^0.5.1", "mozlog": "^2.2.0", - "raven": "^2.4.2", + "raven": "^2.6.3", "redis": "^2.8.0", "websocket-stream": "^5.1.2" }, diff --git a/server/bin/dev.js b/server/bin/dev.js index d94eb8c4..329f3c0c 100644 --- a/server/bin/dev.js +++ b/server/bin/dev.js @@ -7,12 +7,12 @@ const express = require('express'); const expressWs = require('express-ws'); const config = require('../config'); -const wsapp = express(); -expressWs(wsapp, null, { perMessageDeflate: false }); -wsapp.ws('/api/ws', require('../routes/ws')); -wsapp.listen(8081, config.listen_address); - module.exports = function(app, devServer) { + const wsapp = express(); + expressWs(wsapp, null, { perMessageDeflate: false }); + wsapp.ws('/api/ws', require('../routes/ws')); + wsapp.listen(8081, config.listen_address); + assets.setMiddleware(devServer.middleware); locales.setMiddleware(devServer.middleware); routes(app); diff --git a/server/layout.js b/server/layout.js index bc665e3a..51baa9f5 100644 --- a/server/layout.js +++ b/server/layout.js @@ -66,7 +66,8 @@ module.exports = function(state, body = '') { ${firaTag} - + + diff --git a/test/frontend/runner.js b/test/frontend/runner.js index 3ae95f2f..c96c3160 100644 --- a/test/frontend/runner.js +++ b/test/frontend/runner.js @@ -10,7 +10,7 @@ const express = require('express'); const devRoutes = require('../../server/bin/test'); const app = express(); -const wpm = middleware(webpack(config), { logLevel: 'silent' }); +const wpm = middleware(webpack(config()), { logLevel: 'silent' }); app.use(wpm); devRoutes(app, { middleware: wpm }); diff --git a/webpack.config.js b/webpack.config.js index dcf4ffb8..540afc90 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -2,38 +2,29 @@ const path = require('path'); const webpack = require('webpack'); const CopyPlugin = require('copy-webpack-plugin'); const ManifestPlugin = require('webpack-manifest-plugin'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const IS_DEV = process.env.NODE_ENV === 'development'; +const VersionPlugin = require('./build/version_plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); -const regularJSOptions = { +const webJsOptions = { babelrc: false, presets: [['env', { modules: false }], 'stage-2'], // yo-yoify converts html template strings to direct dom api calls plugins: ['yo-yoify'] }; -const entry = { - // babel-polyfill and fluent are directly included in vendor - // because they are not explicitly referenced by app - vendor: ['babel-polyfill', 'fluent'], - app: ['./app/main.js'], - style: ['./app/main.css'] -}; - -if (IS_DEV) { - entry.tests = ['./test/frontend/index.js']; - // istanbul instruments the source for code coverage - regularJSOptions.plugins.push('istanbul'); -} - -module.exports = { - entry, +const web = { + target: 'web', + entry: { + // babel-polyfill and fluent are directly included in vendor + // because they are not explicitly referenced by app + vendor: ['babel-polyfill', 'fluent'], + app: ['./app/main.js'] + }, output: { - filename: '[name].[chunkhash:8].js', + filename: '[name].[hash:8].js', path: path.resolve(__dirname, 'dist'), publicPath: '/' }, - devtool: IS_DEV && 'inline-source-map', module: { rules: [ { @@ -50,17 +41,6 @@ module.exports = { } ] }, - { - // inlines version from package.json into header/index.js - include: require.resolve('./app/templates/header'), - use: [ - { - loader: 'babel-loader', - options: regularJSOptions - }, - './build/version_loader' - ] - }, { // fluent gets exposed as a global so that each language script // can load independently and share it. @@ -89,7 +69,7 @@ module.exports = { path.resolve(__dirname, 'node_modules/fluent-intl-polyfill'), path.resolve(__dirname, 'node_modules/intl-pluralrules') ], - options: regularJSOptions + options: webJsOptions }, { // Strip asserts from our deps, mainly choojs family @@ -129,28 +109,15 @@ module.exports = { { // creates style.css with all styles test: /\.css$/, - use: ExtractTextPlugin.extract({ - use: [ - { - loader: 'css-loader', - options: { modules: false, importLoaders: 1 } - }, - 'postcss-loader' - ] - }) - }, - { - // creates version.json for /__version__ from package.json - test: require.resolve('./package.json'), use: [ + MiniCssExtractPlugin.loader, { - loader: 'file-loader', + loader: 'css-loader', options: { - name: 'version.json' + importLoaders: 1 } }, - 'extract-loader', - './build/package_json_loader' + 'postcss-loader' ] }, { @@ -164,6 +131,7 @@ module.exports = { } }, 'extract-loader', + 'babel-loader', './build/fluent_loader' ] }, @@ -184,6 +152,17 @@ module.exports = { } ] }, + optimization: { + splitChunks: { + cacheGroups: { + style: { + name: 'style', + test: /\.css$/, + chunks: 'all' + } + } + } + }, plugins: [ new CopyPlugin([ { @@ -194,22 +173,16 @@ module.exports = { new webpack.IgnorePlugin(/dist/), // used in common/*.js new webpack.IgnorePlugin(/require-from-string/), // used in common/locales.js new webpack.HashedModuleIdsPlugin(), - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: ({ resource }) => /node_modules/.test(resource) - }), - new webpack.optimize.CommonsChunkPlugin({ - name: 'runtime' - }), - new ExtractTextPlugin({ - filename: 'style.[contenthash:8].css' + new MiniCssExtractPlugin({ + filename: '[name].[contenthash:8].css' }), + new VersionPlugin(), new ManifestPlugin() // used by server side to resolve hashed assets ], devServer: { compress: true, + hot: false, host: '0.0.0.0', - before: IS_DEV ? require('./server/bin/dev') : undefined, proxy: { '/api/ws': { target: 'ws://localhost:8081', @@ -219,3 +192,30 @@ module.exports = { } } }; + +const serviceWorker = { + target: 'webworker', + entry: { + serviceWorker: './app/serviceWorker.js' + }, + output: { + filename: '[name].js', + path: path.resolve(__dirname, 'dist'), + publicPath: '/' + } +} + +module.exports = (env, argv) => { + // TODO: why are styles not output in 'production' mode? + const mode = 'development' //argv.mode || 'production'; + console.error(`mode: ${mode}`); + web.mode = serviceWorker.mode = mode; + if (mode === 'development') { + web.devtool = 'inline-source-map'; + web.devServer.before = require('./server/bin/dev'); + web.entry.tests = ['./test/frontend/index.js']; + // istanbul instruments the source for code coverage + webJsOptions.plugins.push('istanbul'); + } + return [web, serviceWorker] +} diff --git a/webpack.dev.config.js b/webpack.dev.config.js deleted file mode 100644 index 8ae75509..00000000 --- a/webpack.dev.config.js +++ /dev/null @@ -1,226 +0,0 @@ -const path = require('path'); -const webpack = require('webpack'); -const CopyPlugin = require('copy-webpack-plugin'); -const ManifestPlugin = require('webpack-manifest-plugin'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -const IS_DEV = process.env.NODE_ENV === 'development'; - -const regularJSOptions = { - babelrc: false, - presets: [['env', { modules: false }], 'stage-2'], - // yo-yoify converts html template strings to direct dom api calls - plugins: ['yo-yoify'] -}; - -const entry = { - // babel-polyfill and fluent are directly included in vendor - // because they are not explicitly referenced by app - vendor: ['babel-polyfill', 'fluent'], - app: ['./app/main.js'], - style: ['./app/main.css'], - serviceWorker: ['./app/serviceWorker.js'] -}; - -if (IS_DEV) { - entry.tests = ['./test/frontend/index.js']; - // istanbul instruments the source for code coverage - regularJSOptions.plugins.push('istanbul'); -} - -module.exports = { - entry, - output: { - filename: '[name].js', - path: path.resolve(__dirname, 'dist'), - publicPath: '/' - }, - devtool: IS_DEV && 'inline-source-map', - module: { - rules: [ - { - test: /\.js$/, - oneOf: [ - { - include: [require.resolve('./assets/cryptofill')], - use: [ - { - loader: 'file-loader', - options: { - name: '[name].[hash:8].[ext]' - } - } - ] - }, - { - // inlines version from package.json into header/index.js - include: require.resolve('./app/templates/header'), - use: [ - { - loader: 'babel-loader', - options: regularJSOptions - }, - './build/version_loader' - ] - }, - { - // fluent gets exposed as a global so that each language script - // can load independently and share it. - include: [path.dirname(require.resolve('fluent'))], - use: [ - { - loader: 'expose-loader', - options: 'fluent' - }, - { - loader: 'babel-loader', - options: { - presets: [['env', { modules: false }], 'stage-3'] - } - } - ] - }, - { - include: [ - path.resolve(__dirname, 'app'), - path.resolve(__dirname, 'common') - ] - }, - { - loader: 'babel-loader', - include: [ - // some dependencies need to get re-babeled because we - // have different targets than their default configs - path.resolve(__dirname, 'node_modules/testpilot-ga/src'), - path.resolve(__dirname, 'node_modules/fluent-intl-polyfill'), - path.resolve(__dirname, 'node_modules/intl-pluralrules') - ], - options: regularJSOptions - }, - { - // Strip asserts from our deps, mainly choojs family - include: [path.resolve(__dirname, 'node_modules')], - loader: 'webpack-unassert-loader' - } - ] - }, - { - test: /\.(png|jpg)$/, - loader: 'file-loader', - options: { - name: '[name].[hash:8].[ext]' - } - }, - { - test: /\.svg$/, - use: [ - { - loader: 'file-loader', - options: { - name: '[name].[hash:8].[ext]' - } - }, - { - loader: 'svgo-loader', - options: { - plugins: [ - { removeViewBox: false }, // true causes stretched images - { convertStyleToAttrs: true }, // for CSP, no unsafe-eval - { removeTitle: true } // for smallness - ] - } - } - ] - }, - { - // creates style.css with all styles - test: /\.css$/, - use: ExtractTextPlugin.extract({ - use: [ - { - loader: 'css-loader', - options: { modules: false, importLoaders: 1 } - }, - 'postcss-loader' - ] - }) - }, - { - // creates version.json for /__version__ from package.json - test: require.resolve('./package.json'), - use: [ - { - loader: 'file-loader', - options: { - name: 'version.json' - } - }, - 'extract-loader', - './build/package_json_loader' - ] - }, - { - // creates a js script for each ftl - test: /\.ftl$/, - use: [ - { - loader: 'file-loader', - options: { - name: '[path][name].[hash:8].js' - } - }, - 'extract-loader', - './build/fluent_loader' - ] - }, - { - // creates test.js for /test - test: require.resolve('./test/frontend/index.js'), - use: ['babel-loader', 'val-loader'] - }, - { - // loads all assets from assets/ for use by common/assets.js - test: require.resolve('./build/generate_asset_map.js'), - use: ['babel-loader', 'val-loader'] - }, - { - // loads all the ftl from public/locales for use by common/locales.js - test: require.resolve('./build/generate_l10n_map.js'), - use: ['babel-loader', 'val-loader'] - } - ] - }, - plugins: [ - new CopyPlugin([ - { - context: 'public', - from: '*.*' - } - ]), - new webpack.IgnorePlugin(/dist/), // used in common/*.js - new webpack.IgnorePlugin(/require-from-string/), // used in common/locales.js - new webpack.HashedModuleIdsPlugin(), - // new webpack.optimize.CommonsChunkPlugin({ - // name: 'vendor', - // minChunks: ({ resource }) => /node_modules/.test(resource) - // }), - // new webpack.optimize.CommonsChunkPlugin({ - // name: 'runtime' - // }), - new ExtractTextPlugin({ - filename: 'style.[contenthash:8].css' - }), - new ManifestPlugin() // used by server side to resolve hashed assets - ], - devServer: { - compress: true, - host: '0.0.0.0', - before: IS_DEV ? require('./server/bin/dev') : undefined, - proxy: { - '/api/ws': { - target: 'ws://localhost:8081', - ws: true, - secure: false - } - } - } -}; diff --git a/webpackSw.config.js b/webpackSw.config.js deleted file mode 100644 index 4fa33fc8..00000000 --- a/webpackSw.config.js +++ /dev/null @@ -1,34 +0,0 @@ -const path = require('path'); - -/* -const regularJSOptions = { - babelrc: false, - presets: [['env'], 'stage-2'], - plugins: ['transform-runtime'] -}; -*/ - -const entry = { - serviceWorker: ['./app/serviceWorker.js'] -}; - -module.exports = { - entry, - output: { - filename: '[name].js', - path: path.resolve(__dirname, 'dist'), - publicPath: '/' - }, - - /* - module: { - rules: [ - { - loader: 'babel-loader', - exclude: /node_modules/, - options: regularJSOptions - } - ] - } - */ -}; From ddeaf8076db3fa7437acc1e9071be05a42d850ee Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Thu, 12 Jul 2018 14:27:49 -0700 Subject: [PATCH 034/368] added wss to csp connect-src --- server/routes/index.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/routes/index.js b/server/routes/index.js index 4b7d6f31..3cf1600a 100644 --- a/server/routes/index.js +++ b/server/routes/index.js @@ -25,6 +25,9 @@ module.exports = function(app) { defaultSrc: ["'self'"], connectSrc: [ "'self'", + 'wss://*.dev.lcip.org', + 'wss://*.mozaws.net', + 'wss://send.firefox.com', 'https://sentry.prod.mozaws.net', 'https://www.google-analytics.com' ], From 5677390a45590c3369f31ae3951167bde08f6654 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Thu, 12 Jul 2018 15:32:07 -0700 Subject: [PATCH 035/368] added content-length to sw response --- app/fileReceiver.js | 1 + app/serviceWorker.js | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/fileReceiver.js b/app/fileReceiver.js index dc5ab526..bdef873e 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -108,6 +108,7 @@ export default class FileReceiver extends Nanobus { requiresPassword: this.fileInfo.requiresPassword, password: this.fileInfo.password, url: this.fileInfo.url, + size: this.fileInfo.size, noSave }; await this.sendMessageToSw(info); diff --git a/app/serviceWorker.js b/app/serviceWorker.js index cf504e20..f592b30f 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -33,7 +33,8 @@ async function decryptStream(request) { const decrypted = file.keychain.decryptStream(readStream); const headers = { - 'Content-Disposition': 'attachment; filename=' + file.filename + 'Content-Disposition': 'attachment; filename=' + file.filename, + 'Content-Length': file.size }; return new Response(decrypted, { headers }); @@ -60,6 +61,7 @@ self.onmessage = event => { const info = { keychain: new Keychain(event.data.key), filename: event.data.filename, + size: event.data.size, progress: 0, cancelled: false }; From 1a78f57515dcb7237dfcb97786a06fb3d552bca7 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Thu, 12 Jul 2018 20:48:07 -0700 Subject: [PATCH 036/368] don't set cache header on serviceWorker.js --- build/generate_asset_map.js | 2 - package-lock.json | 12793 +++++++++++----------------------- server/bin/prod.js | 6 +- webpack.config.js | 42 +- 4 files changed, 4117 insertions(+), 8726 deletions(-) diff --git a/build/generate_asset_map.js b/build/generate_asset_map.js index 97a93432..6289e54c 100644 --- a/build/generate_asset_map.js +++ b/build/generate_asset_map.js @@ -19,8 +19,6 @@ function kv(f) { module.exports = function() { const files = fs.readdirSync(path.join(__dirname, '..', 'assets')); const code = `module.exports = { - "package.json": require('../package.json'), - "serviceWorker.js" : require('../app/serviceWorker.js'), ${files.map(kv).join(',\n')} };`; return { diff --git a/package-lock.json b/package-lock.json index e006f897..5c1a3714 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "array-includes": "3.0.3", "bonjour": "3.5.0", "chokidar": "2.0.4", - "compression": "1.7.1", + "compression": "1.7.2", "connect-history-api-fallback": "1.5.0", "debug": "3.1.0", "del": "3.0.0", @@ -26,9 +26,9 @@ "ip": "1.1.5", "killable": "1.0.0", "loglevel": "1.6.1", - "opn": "5.2.0", + "opn": "5.3.0", "portfinder": "1.0.13", - "selfsigned": "1.10.2", + "selfsigned": "1.10.3", "serve-index": "1.9.1", "sockjs": "0.3.19", "sockjs-client": "1.1.4", @@ -36,110 +36,10 @@ "strip-ansi": "3.0.1", "supports-color": "5.4.0", "webpack-dev-middleware": "3.1.3", - "webpack-log": "1.1.2", + "webpack-log": "1.2.0", "yargs": "11.0.0" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.1", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.4", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.1.0" - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -149,848 +49,6 @@ "ms": "2.0.0" } }, - "del": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", - "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", - "dev": true, - "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "dev": true, - "optional": true, - "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "http-proxy-middleware": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", - "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", - "dev": true, - "requires": { - "http-proxy": "1.16.2", - "is-glob": "4.0.0", - "lodash": "4.17.5", - "micromatch": "3.1.10" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - } - }, - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true, - "optional": true - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "dev": true, - "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.1.0" - } - }, "supports-color": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", @@ -999,35 +57,6 @@ "requires": { "has-flag": "3.0.0" } - }, - "yargs": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", - "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", - "dev": true, - "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" - } - }, - "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } } } }, @@ -1087,14 +116,6 @@ "dev": true, "requires": { "any-observable": "0.3.0" - }, - "dependencies": { - "any-observable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", - "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", - "dev": true - } } }, "@sinonjs/formatio": { @@ -1380,11 +401,11 @@ "dev": true, "requires": { "ajv": "6.5.2", - "ajv-keywords": "3.1.0", + "ajv-keywords": "3.2.0", "chalk": "2.4.1", "strip-ansi": "4.0.0", "text-table": "0.2.0", - "webpack-log": "1.1.2" + "webpack-log": "1.2.0" }, "dependencies": { "ajv": { @@ -1399,6 +420,12 @@ "uri-js": "4.2.2" } }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true + }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", @@ -1411,7 +438,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, "chalk": { @@ -1431,12 +458,6 @@ "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -1474,19 +495,26 @@ } }, "accepts": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", - "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", - "dev": true, + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.17", + "mime-types": "2.1.18", "negotiator": "0.6.1" } }, "acorn": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.4.1.tgz", - "integrity": "sha512-XLmq3H/BVvW6/GbxKryGxWORz1ebilSsUDlyC27bXhWGWAZWkGwS6FLHjOlwFXNFoWFQEO/Df4u0YYd0K3BQgQ==" + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==" + }, + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "requires": { + "acorn": "5.7.1" + } }, "acorn-jsx": { "version": "3.0.1", @@ -1506,18 +534,19 @@ } }, "acorn-node": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.3.0.tgz", - "integrity": "sha512-efP54n3d1aLfjL2UMdaXa6DsswwzJeI5rqhbFvXMrKiJ6eJFpf+7R0zN7t8IC+XKn2YOAFAv6xbBNgHUkoHWLw==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.5.2.tgz", + "integrity": "sha512-krFKvw/d1F17AN3XZbybIUzEY4YEPNiGo05AfP3dBlfVKrMHETKpgjpuZkSF8qDNt9UkQcqj7am8yJLseklCMg==", "requires": { - "acorn": "5.4.1", + "acorn": "5.7.1", + "acorn-dynamic-import": "3.0.0", "xtend": "4.0.1" } }, "agent-base": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", - "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", "dev": true, "requires": { "es6-promisify": "5.0.0" @@ -1530,21 +559,21 @@ "dev": true, "requires": { "co": "4.6.0", - "fast-deep-equal": "1.0.0", + "fast-deep-equal": "1.1.0", "fast-json-stable-stringify": "2.0.0", "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz", - "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", "dev": true }, "ansi-escapes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz", - "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", "dev": true }, "ansi-html": { @@ -1563,10 +592,26 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, + "any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "3.1.10", + "normalize-path": "2.1.1" + } + }, "app-root-path": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", - "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.1.0.tgz", + "integrity": "sha1-mL9lmTJ+zqGZMJhm6BQDaP0uZGo=", "dev": true }, "application-config": { @@ -1601,13 +646,10 @@ } }, "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "1.1.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true }, "arr-flatten": { "version": "1.1.0", @@ -1651,13 +693,13 @@ "dev": true, "requires": { "define-properties": "1.1.2", - "es-abstract": "1.10.0" + "es-abstract": "1.12.0" } }, "array-iterate": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.1.tgz", - "integrity": "sha1-hlv3+K851rCYLGCQKRSsdrwBCPY=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.2.tgz", + "integrity": "sha512-1hWSHTIlG/8wtYD+PPX5AOBtKWngpDFjrsrHgZpe+JdgNGz0udYu6ZIkAa/xuenIUEqFv7DvE2Yr60jxweJSrQ==", "dev": true }, "array-map": { @@ -1688,9 +730,9 @@ "dev": true }, "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "arrify": { @@ -1719,7 +761,7 @@ "requires": { "bn.js": "4.11.8", "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "minimalistic-assert": "1.0.1" } }, "assert": { @@ -1729,6 +771,23 @@ "dev": true, "requires": { "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } } }, "assert-plus": { @@ -1749,6 +808,12 @@ "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", "dev": true }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, "async-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", @@ -1761,15 +826,41 @@ "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, "atob": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", - "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", "dev": true }, + "autoprefixer": { + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz", + "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", + "dev": true, + "requires": { + "browserslist": "2.11.3", + "caniuse-lite": "1.0.30000865", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "6.0.23", + "postcss-value-parser": "3.3.0" + }, + "dependencies": { + "browserslist": { + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", + "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000865", + "electron-to-chromium": "1.3.52" + } + } + } + }, "aws-sdk": { - "version": "2.273.1", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.273.1.tgz", - "integrity": "sha512-JFsL+YCQGEjV/cZp6BlJ11Sg4O0wchCtBANqeOGRvEd2hPKey04p2nmwZVy+vApkA7IOI/pARbIwZRZ+V5ntng==", + "version": "2.274.1", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.274.1.tgz", + "integrity": "sha512-kQPy4accfxbTOaxezj85Ce9X3zYWkOEkIRM9KTkjFiod/x26naSkuBlv+0gnSm9Z2qK+3z4VpQB3ZOO+oYBdjw==", "requires": { "buffer": "4.9.1", "events": "1.1.1", @@ -1818,12 +909,20 @@ "convert-source-map": "1.5.1", "debug": "2.6.9", "json5": "0.5.1", - "lodash": "4.17.5", + "lodash": "4.17.10", "minimatch": "3.0.4", "path-is-absolute": "1.0.1", "private": "0.1.8", "slash": "1.0.0", "source-map": "0.5.7" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + } } }, "babel-generator": { @@ -1837,7 +936,7 @@ "babel-types": "6.26.0", "detect-indent": "4.0.0", "jsesc": "1.3.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "source-map": "0.5.7", "trim-right": "1.0.1" } @@ -1885,7 +984,7 @@ "babel-helper-function-name": "6.24.1", "babel-runtime": "6.26.0", "babel-types": "6.26.0", - "lodash": "4.17.5" + "lodash": "4.17.10" } }, "babel-helper-explode-assignable-expression": { @@ -1962,7 +1061,7 @@ "requires": { "babel-runtime": "6.26.0", "babel-types": "6.26.0", - "lodash": "4.17.5" + "lodash": "4.17.10" } }, "babel-helper-remap-async-to-generator": { @@ -2003,9 +1102,9 @@ } }, "babel-loader": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.4.tgz", - "integrity": "sha512-/hbyEvPzBJuGpk9o80R0ZyTej6heEOr59GoEUtn8qFKbnx4cJm9FWES6J/iv644sYgrtVw9JJQkjaLW/bqb5gw==", + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.5.tgz", + "integrity": "sha512-iCHfbieL5d1LfOQeeVJEUyD9rTwBcP/fcEbRCfempxTDuqrKpu0AZjLAQHEQa3Yqyj9ORKe2iHfoj4rHLf7xpw==", "dev": true, "requires": { "find-cache-dir": "1.0.0", @@ -2041,377 +1140,6 @@ "find-up": "2.1.0", "istanbul-lib-instrument": "1.10.1", "test-exclude": "4.2.1" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.1", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", - "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", - "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", - "dev": true, - "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - } - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } - }, - "test-exclude": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", - "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" - } - } } }, "babel-plugin-syntax-async-functions": { @@ -2537,7 +1265,7 @@ "babel-template": "6.26.0", "babel-traverse": "6.26.0", "babel-types": "6.26.0", - "lodash": "4.17.5" + "lodash": "4.17.10" } }, "babel-plugin-transform-es2015-classes": { @@ -2621,15 +1349,15 @@ "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", "babel-runtime": "6.26.0", "babel-template": "6.26.0" } }, "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", - "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "dev": true, "requires": { "babel-plugin-transform-strict-mode": "6.24.1", @@ -2792,7 +1520,7 @@ "@f/is-svg": "1.0.0", "@f/svg-namespace": "1.0.1", "camel-case": "3.0.0", - "hyperx": "2.3.3", + "hyperx": "2.4.0", "is-boolean-attribute": "0.0.1", "normalize-html-whitespace": "0.2.0", "yo-yoify": "4.3.0" @@ -2804,15 +1532,8 @@ "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { "babel-runtime": "6.26.0", - "core-js": "2.5.3", + "core-js": "2.5.7", "regenerator-runtime": "0.10.5" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" - } } }, "babel-preset-env": { @@ -2835,7 +1556,7 @@ "babel-plugin-transform-es2015-function-name": "6.24.1", "babel-plugin-transform-es2015-literals": "6.22.0", "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", "babel-plugin-transform-es2015-modules-umd": "6.24.1", "babel-plugin-transform-es2015-object-super": "6.24.1", @@ -2849,32 +1570,8 @@ "babel-plugin-transform-exponentiation-operator": "6.24.1", "babel-plugin-transform-regenerator": "6.26.0", "browserslist": "3.2.8", - "invariant": "2.2.2", + "invariant": "2.2.4", "semver": "5.5.0" - }, - "dependencies": { - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000865", - "electron-to-chromium": "1.3.52" - } - }, - "caniuse-lite": { - "version": "1.0.30000865", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", - "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.52", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", - "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", - "dev": true - } } }, "babel-preset-es2015": { @@ -2895,7 +1592,7 @@ "babel-plugin-transform-es2015-function-name": "6.24.1", "babel-plugin-transform-es2015-literals": "6.22.0", "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", "babel-plugin-transform-es2015-modules-umd": "6.24.1", "babel-plugin-transform-es2015-object-super": "6.24.1", @@ -2942,9 +1639,9 @@ "requires": { "babel-core": "6.26.3", "babel-runtime": "6.26.0", - "core-js": "2.5.3", + "core-js": "2.5.7", "home-or-tmp": "2.0.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "mkdirp": "0.5.1", "source-map-support": "0.4.18" } @@ -2954,8 +1651,15 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.3", + "core-js": "2.5.7", "regenerator-runtime": "0.11.1" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + } } }, "babel-template": { @@ -2968,7 +1672,7 @@ "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", - "lodash": "4.17.5" + "lodash": "4.17.10" } }, "babel-traverse": { @@ -2984,8 +1688,8 @@ "babylon": "6.18.0", "debug": "2.6.9", "globals": "9.18.0", - "invariant": "2.2.2", - "lodash": "4.17.5" + "invariant": "2.2.4", + "lodash": "4.17.10" } }, "babel-types": { @@ -2996,7 +1700,7 @@ "requires": { "babel-runtime": "6.26.0", "esutils": "2.0.2", - "lodash": "4.17.5", + "lodash": "4.17.10", "to-fast-properties": "1.0.3" } }, @@ -3007,9 +1711,9 @@ "dev": true }, "bail": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.2.tgz", - "integrity": "sha1-99bBcxYwqfnw1NNe0fli4gdKF2Q=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.3.tgz", + "integrity": "sha512-1X8CnjFVQ+a+KW36uBNMTU5s8+v5FzeqrP7hTG5aTb4aPreSbZJlhwPon9VKMuEVgV++JM+SQrALY3kr7eswdg==", "dev": true }, "balanced-match": { @@ -3042,11 +1746,34 @@ "is-descriptor": "1.0.2" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } } } }, @@ -3099,6 +1826,12 @@ "isarray": "0.0.1", "string_decoder": "0.10.31" } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true } } }, @@ -3123,12 +1856,12 @@ "content-type": "1.0.4", "debug": "2.6.9", "depd": "1.1.2", - "http-errors": "1.6.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.19", "on-finished": "2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.15" + "type-is": "1.6.16" } }, "bonjour": { @@ -3187,14 +1920,32 @@ } }, "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "extend-shallow": "2.0.1", + "fill-range": "4.0.0", + "isobject": "3.0.1", + "repeat-element": "1.1.2", + "snapdragon": "0.8.2", + "snapdragon-node": "2.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "brorand": { @@ -3215,39 +1966,40 @@ "dev": true }, "browserify-aes": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", - "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { "buffer-xor": "1.0.3", "cipher-base": "1.0.4", - "create-hash": "1.1.3", + "create-hash": "1.2.0", "evp_bytestokey": "1.0.3", "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "requires": { - "browserify-aes": "1.1.1", - "browserify-des": "1.0.0", + "browserify-aes": "1.2.0", + "browserify-des": "1.0.2", "evp_bytestokey": "1.0.3" } }, "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, "requires": { "cipher-base": "1.0.4", "des.js": "1.0.0", - "inherits": "2.0.3" + "inherits": "2.0.3", + "safe-buffer": "5.1.2" } }, "browserify-rsa": { @@ -3268,11 +2020,11 @@ "requires": { "bn.js": "4.11.8", "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", "elliptic": "6.4.0", "inherits": "2.0.3", - "parse-asn1": "5.1.0" + "parse-asn1": "5.1.1" } }, "browserify-zlib": { @@ -3285,13 +2037,13 @@ } }, "browserslist": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", - "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000808", - "electron-to-chromium": "1.3.33" + "caniuse-lite": "1.0.30000865", + "electron-to-chromium": "1.3.52" } }, "buffer": { @@ -3304,6 +2056,12 @@ "isarray": "1.0.0" } }, + "buffer-from": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", + "dev": true + }, "buffer-indexof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", @@ -3343,13 +2101,13 @@ "chownr": "1.0.1", "glob": "7.1.2", "graceful-fs": "4.1.11", - "lru-cache": "4.1.1", + "lru-cache": "4.1.3", "mississippi": "2.0.0", "mkdirp": "0.5.1", "move-concurrently": "1.0.1", "promise-inflight": "1.0.1", "rimraf": "2.6.2", - "ssri": "5.2.4", + "ssri": "5.3.0", "unique-filename": "1.1.0", "y18n": "4.0.0" }, @@ -3377,14 +2135,6 @@ "to-object-path": "0.3.0", "union-value": "1.0.0", "unset-value": "1.0.0" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "call-matcher": { @@ -3393,9 +2143,9 @@ "integrity": "sha1-UTTQd5hPcSpU2tPL9i3ijc5BbKg=", "dev": true, "requires": { - "core-js": "2.5.3", + "core-js": "2.5.7", "deep-equal": "1.0.1", - "espurify": "1.7.0", + "espurify": "1.8.1", "estraverse": "4.2.0" } }, @@ -3435,14 +2185,21 @@ "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" }, "camelcase-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", - "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "4.1.0", - "map-obj": "2.0.0", - "quick-lru": "1.1.0" + "camelcase": "2.1.1", + "map-obj": "1.0.1" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } } }, "camelize": { @@ -3450,16 +2207,40 @@ "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, + "caniuse-api": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-2.0.0.tgz", + "integrity": "sha1-sd21pZZrFvSNxJmERNS7xsfZ2DQ=", + "dev": true, + "requires": { + "browserslist": "2.11.3", + "caniuse-lite": "1.0.30000865", + "lodash.memoize": "4.1.2", + "lodash.uniq": "4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", + "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000865", + "electron-to-chromium": "1.3.52" + } + } + } + }, "caniuse-lite": { - "version": "1.0.30000808", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000808.tgz", - "integrity": "sha512-vT0JLmHdvq1UVbYXioxCXHYdNw55tyvi+IUWyX0Zeh1OFQi2IllYtm38IJnSgHWCv/zUnX1hdhy3vMJvuTNSqw==", + "version": "1.0.30000865", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", + "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", "dev": true }, "ccount": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.2.tgz", - "integrity": "sha1-U7ai+BW7d7nChx97mnLDol8djok=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.3.tgz", + "integrity": "sha512-Jt9tIBkRc9POUof7QA/VwWd+58fKkEEfI+/t1/eOlxKM7ZhrczNzMFefge7Ai+39y1pR/pP6cI19guHy3FSLmw==", "dev": true }, "chalk": { @@ -3475,27 +2256,27 @@ } }, "character-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.1.tgz", - "integrity": "sha1-92hxvl72bdt/j440eOzDdMJ9bco=", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.2.tgz", + "integrity": "sha512-sMoHX6/nBiy3KKfC78dnEalnpn0Az0oSNvqUWYTtYrhRI5iUIYsROU48G+E+kMFQzqXaJ8kHJZ85n7y6/PHgwQ==", "dev": true }, "character-entities-html4": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.1.tgz", - "integrity": "sha1-NZoqSg9+KdPcKsmb2+Ie45Q46lA=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.2.tgz", + "integrity": "sha512-sIrXwyna2+5b0eB9W149izTPJk/KkJTg6mEzDGibwBUkyH1SbDa+nf515Ppdi3MaH35lW0JFJDWeq9Luzes1Iw==", "dev": true }, "character-entities-legacy": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.1.tgz", - "integrity": "sha1-9Ad53xoQGHK7UQo9KV4fzPFHIC8=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.2.tgz", + "integrity": "sha512-9NB2VbXtXYWdXzqrvAHykE/f0QJxzaKIpZ5QzNZrrgQ7Iyxr2vnfS8fCBNVW9nUEZE0lo57nxKRqnzY/dKrwlA==", "dev": true }, "character-reference-invalid": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.1.tgz", - "integrity": "sha1-lCg191Dk7GGjCOYMLvjMEBEgLvw=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.2.tgz", + "integrity": "sha512-7I/xceXfKyUJmSAn/jw8ve/9DyOP7XxufNYLI9Px7CmsKgEUaZLUTax6nZxGQtaoiZCjpu6cHPj20xC/vqRReQ==", "dev": true }, "chardet": { @@ -3509,6 +2290,27 @@ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.2", + "fsevents": "1.2.4", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "lodash.debounce": "4.0.8", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.1.0" + } + }, "choo": { "version": "6.13.0", "resolved": "https://registry.npmjs.org/choo/-/choo-6.13.0.tgz", @@ -3518,13 +2320,13 @@ "nanoassert": "1.1.0", "nanobus": "4.3.3", "nanocomponent": "6.5.2", - "nanohref": "3.0.1", + "nanohref": "3.0.3", "nanohtml": "1.2.4", "nanolru": "1.0.0", "nanomorph": "5.1.3", "nanoquery": "1.2.0", "nanoraf": "3.0.1", - "nanorouter": "3.0.1", + "nanorouter": "3.1.1", "nanotiming": "7.3.1", "scroll-to-anchor": "1.1.0", "xtend": "4.0.1" @@ -3546,9 +2348,9 @@ } }, "ci-info": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.2.tgz", - "integrity": "sha512-uTGIPNx/nSpBdsF6xnseRXLLtfr9VLqkz8ZqHXr3Y7b6SftyRxBGjwMtJj1OhNbmlc1wZzLNAlAcvyIiE8a6ZA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz", + "integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==", "dev": true }, "cipher-base": { @@ -3558,7 +2360,7 @@ "dev": true, "requires": { "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "circular-json": { @@ -3587,69 +2389,6 @@ "requires": { "is-descriptor": "0.1.6" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -3659,9 +2398,9 @@ "integrity": "sha1-M7OO+WyaGD9SilZGBJRaqqTs6nE=" }, "clean-css": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.9.tgz", - "integrity": "sha1-Nc7ornaHpJuYA09w3gDE7dOCYwE=", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz", + "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", "dev": true, "requires": { "source-map": "0.5.7" @@ -3688,11 +2427,18 @@ "integrity": "sha1-LR738hig54biFFQFYtS9F3/jLZc=", "dev": true, "requires": { - "colors": "1.1.2", + "colors": "1.3.0", "lodash": "3.10.1", "string-width": "1.0.2" }, "dependencies": { + "colors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.0.tgz", + "integrity": "sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw==", + "dev": true, + "optional": true + }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -3766,52 +2512,47 @@ "dev": true }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", "wrap-ansi": "2.1.0" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "ansi-regex": "3.0.0" } } } }, "clone": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.3.tgz", - "integrity": "sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, "clone-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.0.tgz", - "integrity": "sha1-6uCiQT9VwJQvgYwin+/OhF1/Oxw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-1.0.1.tgz", + "integrity": "sha512-Fcij9IwRW27XedRIJnSOEupS7RVcXtObJXbcUOX93UCLqqOdRpkvzKywOOSizmEK/Is3S/RHX9dLdfo6R1Q1mw==", "dev": true, "requires": { "is-regexp": "1.0.0", - "is-supported-regexp-flag": "1.0.0" + "is-supported-regexp-flag": "1.0.1" } }, "co": { @@ -3836,9 +2577,9 @@ "dev": true }, "collapse-white-space": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.3.tgz", - "integrity": "sha1-S5BvZw5aljqHt2sOFolkM0G2Ajw=", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.4.tgz", + "integrity": "sha512-YfQ1tAUZm561vpYD+5eyWN8+UsceQbSrqqlc/6zDY2gtAE+uZLSdkkovhnGpmCThsvKBFakq4EdY/FF93E8XIw==", "dev": true }, "collection-visit": { @@ -3857,24 +2598,24 @@ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", "dev": true, "requires": { - "clone": "1.0.3", - "color-convert": "1.9.1", + "clone": "1.0.4", + "color-convert": "1.9.2", "color-string": "0.3.0" } }, "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "1.1.1" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", "dev": true }, "color-string": { @@ -3883,13 +2624,13 @@ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "1.1.1" } }, "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", + "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=", "dev": true }, "combined-stream": { @@ -3902,9 +2643,9 @@ } }, "commander": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", - "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz", + "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==", "dev": true }, "commondir": { @@ -3920,27 +2661,43 @@ "dev": true }, "compressible": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", - "integrity": "sha1-xZpcmdt2dn6YdlAOJx72OzSTvWY=", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", + "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", "dev": true, "requires": { - "mime-db": "1.30.0" + "mime-db": "1.34.0" + }, + "dependencies": { + "mime-db": { + "version": "1.34.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.34.0.tgz", + "integrity": "sha1-RS0Oz/XDA0am3B5kseruDTcZ/5o=", + "dev": true + } } }, "compression": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.1.tgz", - "integrity": "sha1-7/JgPvwuIs+G810uuTWJ+YdTc9s=", + "version": "1.7.2", + "resolved": "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz", + "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=", "dev": true, "requires": { - "accepts": "1.3.4", + "accepts": "1.3.5", "bytes": "3.0.0", - "compressible": "2.0.12", + "compressible": "2.0.14", "debug": "2.6.9", "on-headers": "1.0.1", "safe-buffer": "5.1.1", "vary": "1.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + } } }, "concat-map": { @@ -3950,40 +2707,15 @@ "dev": true }, "concat-stream": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", - "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { + "buffer-from": "1.1.0", "inherits": "2.0.3", - "readable-stream": "2.3.4", + "readable-stream": "2.3.6", "typedarray": "0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - } } }, "connect-history-api-fallback": { @@ -4038,34 +2770,6 @@ "moment": "2.22.2", "validator": "7.2.0", "yargs-parser": "10.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "1.2.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "moment": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", - "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" - }, - "yargs-parser": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.0.0.tgz", - "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", - "requires": { - "camelcase": "4.1.0" - } - } } }, "cookie": { @@ -4116,14 +2820,30 @@ "is-glob": "4.0.0", "loader-utils": "1.1.0", "minimatch": "3.0.4", - "p-limit": "1.2.0", - "serialize-javascript": "1.4.0" + "p-limit": "1.3.0", + "serialize-javascript": "1.5.0" + }, + "dependencies": { + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "dir-glob": "2.0.0", + "glob": "7.1.2", + "ignore": "3.3.10", + "pify": "3.0.0", + "slash": "1.0.0" + } + } } }, "core-js": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz", - "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=" + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" }, "core-util-is": { "version": "1.0.2", @@ -4131,39 +2851,32 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", - "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", + "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", "dev": true, "requires": { "is-directory": "0.3.1", - "js-yaml": "3.10.0", - "parse-json": "4.0.0", - "require-from-string": "2.0.2" + "js-yaml": "3.12.0", + "parse-json": "4.0.0" }, "dependencies": { - "esprima": { + "parse-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, - "js-yaml": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", - "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } } } }, "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "requires": { "bn.js": "4.11.8", @@ -4171,29 +2884,30 @@ } }, "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { "cipher-base": "1.0.4", "inherits": "2.0.3", - "ripemd160": "2.0.1", - "sha.js": "2.4.10" + "md5.js": "1.3.4", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" } }, "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { "cipher-base": "1.0.4", - "create-hash": "1.1.3", + "create-hash": "1.2.0", "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.10" + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "cross-env": { @@ -4216,7 +2930,7 @@ "path-key": "2.0.1", "semver": "5.5.0", "shebang-command": "1.2.0", - "which": "1.3.0" + "which": "1.3.1" } } } @@ -4227,9 +2941,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.1", + "lru-cache": "4.1.3", "shebang-command": "1.2.0", - "which": "1.3.0" + "which": "1.3.1" } }, "crypt": { @@ -4252,17 +2966,17 @@ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { - "browserify-cipher": "1.0.0", + "browserify-cipher": "1.0.1", "browserify-sign": "4.0.4", - "create-ecdh": "4.0.0", - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "diffie-hellman": "5.0.2", + "create-ecdh": "4.0.3", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "diffie-hellman": "5.0.3", "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.0", + "pbkdf2": "3.0.16", + "public-encrypt": "4.0.2", "randombytes": "2.0.6", - "randomfill": "1.0.3" + "randomfill": "1.0.4" } }, "css-color-function": { @@ -4312,60 +3026,6 @@ "postcss-modules-values": "1.3.0", "postcss-value-parser": "3.3.0", "source-list-map": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } } }, "css-mqpacker": { @@ -4375,67 +3035,7 @@ "dev": true, "requires": { "minimist": "1.2.0", - "postcss": "6.0.18" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "css-rule-stream": { @@ -4468,6 +3068,12 @@ "string_decoder": "0.10.31" } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, "through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", @@ -4527,7 +3133,7 @@ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "dev": true, "requires": { - "regenerate": "1.3.3", + "regenerate": "1.4.0", "regjsgen": "0.2.0", "regjsparser": "0.1.5" } @@ -4542,6 +3148,32 @@ "requires": { "inherits": "2.0.3", "readable-stream": "1.1.14" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } } }, "css-tree": { @@ -4550,7 +3182,7 @@ "integrity": "sha512-XC6xLW/JqIGirnZuUWHXCHRaAjje2b3OIB0Vj5RIJo6mIi/AdJo30quQl5LxUl0gkXDIrTrFGbMlcZjyFplz1A==", "dev": true, "requires": { - "mdn-data": "1.1.0", + "mdn-data": "1.1.4", "source-map": "0.5.7" } }, @@ -4579,21 +3211,21 @@ "dev": true }, "csso": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.0.tgz", - "integrity": "sha512-WtJjFP3ZsSdWhiZr4/k1B9uHPgYjFYnDxfbaJxk1hz5PDLIJ5BCRWkJqaztZ0DbP8d2ZIVwUPIJb2YmCwkPaMw==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", + "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", "dev": true, "requires": { - "css-tree": "1.0.0-alpha.27" + "css-tree": "1.0.0-alpha.29" }, "dependencies": { "css-tree": { - "version": "1.0.0-alpha.27", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.27.tgz", - "integrity": "sha512-BAYp9FyN4jLXjfvRpTDchBllDptqlK9I7OsagXCG9Am5C+5jc8eRZHgqb9x500W2OKS14MMlpQc/nmh/aA7TEQ==", + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", + "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", "dev": true, "requires": { - "mdn-data": "1.1.0", + "mdn-data": "1.1.4", "source-map": "0.5.7" } } @@ -4615,9 +3247,9 @@ } }, "cvss": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cvss/-/cvss-1.0.2.tgz", - "integrity": "sha1-32fpK/EqeW9J6Sh5nI2zunS5/NY=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cvss/-/cvss-1.0.3.tgz", + "integrity": "sha512-1FfNhEFVfeC+fgZpEr6oCOOTXifJicZS+Lq/mmUKI4Om+2O8zYspc/uhw51He+CTM5givI1dqIw5JUqyi1BWtA==", "dev": true }, "cyclist": { @@ -4626,6 +3258,15 @@ "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", "dev": true }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "0.10.45" + } + }, "dash-ast": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", @@ -4675,14 +3316,6 @@ "requires": { "decamelize": "1.2.0", "map-obj": "1.0.1" - }, - "dependencies": { - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - } } }, "decode-uri-component": { @@ -4716,15 +3349,7 @@ "dev": true, "requires": { "foreach": "2.0.5", - "object-keys": "1.0.11" - }, - "dependencies": { - "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", - "dev": true - } + "object-keys": "1.0.12" } }, "define-property": { @@ -4737,49 +3362,49 @@ "isobject": "3.0.1" }, "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } } } }, "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "dev": true, "requires": { - "globby": "5.0.0", + "globby": "6.1.0", "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.0", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", + "is-path-in-cwd": "1.0.1", + "p-map": "1.2.0", + "pify": "3.0.0", "rimraf": "2.6.2" - }, - "dependencies": { - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } } }, "delayed-stream": { @@ -4800,7 +3425,7 @@ "dev": true, "requires": { "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "minimalistic-assert": "1.0.1" } }, "destroy": { @@ -4824,15 +3449,15 @@ "dev": true }, "diff": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", - "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { "bn.js": "4.11.8", @@ -4848,6 +3473,17 @@ "requires": { "arrify": "1.0.1", "path-type": "3.0.0" + }, + "dependencies": { + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + } } }, "dns-equal": { @@ -4863,7 +3499,7 @@ "dev": true, "requires": { "ip": "1.1.5", - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "dns-prefetch-control": { @@ -4894,6 +3530,179 @@ "resolved": "https://registry.npmjs.org/document-ready/-/document-ready-2.0.1.tgz", "integrity": "sha1-PjvzHTI1uU4jLnssX6GmNOhzuuQ=" }, + "doiuse": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/doiuse/-/doiuse-4.1.0.tgz", + "integrity": "sha512-QBvDs4nH6uJwSNwONQkBpt7SdCfjFEuQqoSkpyoUXqX7gYd9elCTVhIiIEaAFNiykwCrjIjHVcBcx1csa6EsQg==", + "dev": true, + "requires": { + "browserslist": "3.2.8", + "caniuse-lite": "1.0.30000865", + "css-rule-stream": "1.1.0", + "duplexer2": "0.0.2", + "jsonfilter": "1.1.2", + "ldjson-stream": "1.2.1", + "lodash": "4.17.10", + "multimatch": "2.1.0", + "postcss": "6.0.23", + "source-map": "0.5.7", + "through2": "0.6.5", + "yargs": "8.0.2" + }, + "dependencies": { + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "xtend": "4.0.1" + } + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.3", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, "dom-serializer": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", @@ -4930,9 +3739,9 @@ "dev": true }, "domhandler": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", - "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { "domelementtype": "1.3.0" @@ -4980,52 +3789,54 @@ "dev": true, "requires": { "readable-stream": "1.1.14" - } - }, - "duplexify": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", - "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.5", - "stream-shift": "1.0.0" }, "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, "readable-stream": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", - "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "isarray": "0.0.1", + "string_decoder": "0.10.31" } }, "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "5.1.1" - } + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true } } }, + "duplexify": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.33", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.33.tgz", - "integrity": "sha1-vwBwPWKnxlI4E2V4w1LWxcBCpUU=", + "version": "1.3.52", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", + "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", "dev": true }, "elegant-spinner": { @@ -5042,10 +3853,10 @@ "requires": { "bn.js": "4.11.8", "brorand": "1.1.0", - "hash.js": "1.1.3", + "hash.js": "1.1.5", "hmac-drbg": "1.0.1", "inherits": "2.0.3", - "minimalistic-assert": "1.0.0", + "minimalistic-assert": "1.0.1", "minimalistic-crypto-utils": "1.0.1" } }, @@ -5068,6 +3879,17 @@ "once": "1.4.0" } }, + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "tapable": "1.0.0" + } + }, "entities": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", @@ -5084,24 +3906,24 @@ } }, "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "0.2.1" } }, "es-abstract": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.10.0.tgz", - "integrity": "sha512-/uh/DhdqIOSkAWifU+8nG78vlQxdLckUdI/sPgy0VhuXi2qJ7T8czBmqIYtLQVpCIFYafChnsRsB5pyb1JdmCQ==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "requires": { "es-to-primitive": "1.1.1", "function-bind": "1.1.1", - "has": "1.0.1", - "is-callable": "1.1.3", + "has": "1.0.3", + "is-callable": "1.1.4", "is-regex": "1.0.4" } }, @@ -5111,11 +3933,33 @@ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "1.1.3", + "is-callable": "1.1.4", "is-date-object": "1.0.1", "is-symbol": "1.0.1" } }, + "es5-ext": { + "version": "0.10.45", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", + "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", + "dev": true, + "requires": { + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "next-tick": "1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-symbol": "3.1.1" + } + }, "es6-promise": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", @@ -5131,6 +3975,16 @@ "es6-promise": "4.2.4" } }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.45" + } + }, "es6-templates": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", @@ -5152,16 +4006,16 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz", - "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.10.0.tgz", + "integrity": "sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g==", "dev": true, "requires": { "esprima": "3.1.3", "estraverse": "4.2.0", "esutils": "2.0.2", "optionator": "0.8.2", - "source-map": "0.5.7" + "source-map": "0.6.1" }, "dependencies": { "esprima": { @@ -5169,6 +4023,13 @@ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true } } }, @@ -5181,27 +4042,27 @@ "ajv": "5.5.2", "babel-code-frame": "6.26.0", "chalk": "2.4.1", - "concat-stream": "1.6.0", + "concat-stream": "1.6.2", "cross-spawn": "5.1.0", "debug": "3.1.0", "doctrine": "2.1.0", - "eslint-scope": "3.7.1", + "eslint-scope": "3.7.3", "eslint-visitor-keys": "1.0.0", "espree": "3.5.4", - "esquery": "1.0.0", + "esquery": "1.0.1", "esutils": "2.0.2", "file-entry-cache": "2.0.0", "functional-red-black-tree": "1.0.1", "glob": "7.1.2", "globals": "11.7.0", - "ignore": "3.3.7", + "ignore": "3.3.10", "imurmurhash": "0.1.4", "inquirer": "3.3.0", "is-resolvable": "1.1.0", "js-yaml": "3.12.0", "json-stable-stringify-without-jsonify": "1.0.1", "levn": "0.3.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "minimatch": "3.0.4", "mkdirp": "0.5.1", "natural-compare": "1.4.0", @@ -5218,12 +4079,6 @@ "text-table": "0.2.0" }, "dependencies": { - "ajv-keywords": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.1.tgz", - "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", - "dev": true - }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", @@ -5236,7 +4091,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, "chalk": { @@ -5259,34 +4114,12 @@ "ms": "2.0.0" } }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, "globals": { "version": "11.7.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.7.0.tgz", "integrity": "sha512-K8BNSPySfeShBQXsahYB/AbbWruVOTyVpgoIDnl8odPpeSfP2J5QO2oLFFdl2j7GfDCtZj2bMKar2T49itTPCg==", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" - } - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -5304,20 +4137,6 @@ "requires": { "has-flag": "3.0.0" } - }, - "table": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", - "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", - "dev": true, - "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.5", - "slice-ansi": "1.0.0", - "string-width": "2.1.1" - } } } }, @@ -5336,9 +4155,9 @@ "integrity": "sha512-Q/Cc2sW1OAISDS+Ji6lZS2KV4b7ueA/WydVWd1BECTQwVvfQy5JAi3glhINoKzoMnfnuRgNP+ZWKrGAbp3QDxw==", "dev": true, "requires": { - "ignore": "3.3.7", + "ignore": "3.3.10", "minimatch": "3.0.4", - "resolve": "1.5.0", + "resolve": "1.8.1", "semver": "5.5.0" } }, @@ -5352,12 +4171,12 @@ } }, "eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-W+B0SvF4gamyCTmUc+uITPY0989iXVfKvhwtmJocTaYoc/3khEHmEmvfY/Gn9HA9VV75jrQECsHizkNw1b68FA==", "dev": true, "requires": { - "esrecurse": "4.2.0", + "esrecurse": "4.2.1", "estraverse": "4.2.0" } }, @@ -5373,44 +4192,41 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.5.3", + "acorn": "5.7.1", "acorn-jsx": "3.0.1" - }, - "dependencies": { - "acorn": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", - "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", - "dev": true - } } }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, "espurify": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.7.0.tgz", - "integrity": "sha1-HFz2y8zDLm9jk4C9T5kfq5up0iY=", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/espurify/-/espurify-1.8.1.tgz", + "integrity": "sha512-ZDko6eY/o+D/gHCWyHTU85mKDgYcS4FJj7S+YD6WIInm7GQ6AnOjmcL4+buFV/JOztVLELi/7MmuGU5NHta0Mg==", "dev": true, "requires": { - "core-js": "2.5.3" + "core-js": "2.5.7" } }, "esquery": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.0.tgz", - "integrity": "sha1-z7qLV9f7qT8XKYqKAGoEzaE9gPo=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { "estraverse": "4.2.0" } }, "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0", - "object-assign": "4.1.1" + "estraverse": "4.2.0" } }, "estraverse": { @@ -5432,7 +4248,7 @@ }, "event-stream": { "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", "dev": true, "requires": { @@ -5446,9 +4262,9 @@ } }, "eventemitter3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", "dev": true }, "events": { @@ -5462,7 +4278,7 @@ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "dev": true, "requires": { - "original": "1.0.0" + "original": "1.0.1" } }, "evp_bytestokey": { @@ -5472,13 +4288,13 @@ "dev": true, "requires": { "md5.js": "1.3.4", - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "execa": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz", - "integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { "cross-spawn": "5.1.0", @@ -5496,7 +4312,7 @@ "integrity": "sha1-c9CQTjlbPKsGWLCNCewlMH8pu3M=", "dev": true, "requires": { - "clone-regexp": "1.0.0" + "clone-regexp": "1.0.1" } }, "exit-hook": { @@ -5506,12 +4322,38 @@ "dev": true }, "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } } }, "expand-range": { @@ -5520,9 +4362,62 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "2.2.4" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.0.0", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } } }, + "expect-ct": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.1.1.tgz", + "integrity": "sha512-ngXzTfoRGG7fYens3/RMb6yYoVLvLMfmsSllP/mZPxNHgFq41TmPSLF/nLY7fwoclI2vElvAmILFWGUYqdjfCg==" + }, "expose-loader": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.5.tgz", @@ -5566,100 +4461,10 @@ "vary": "1.1.2" }, "dependencies": { - "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", - "requires": { - "mime-types": "2.1.18", - "negotiator": "0.6.1" - } - }, - "finalhandler": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", - "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" - } - }, - "ipaddr.js": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", - "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" - }, - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "requires": { - "mime-db": "1.33.0" - } - }, - "proxy-addr": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", - "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", - "requires": { - "forwarded": "0.1.2", - "ipaddr.js": "1.6.0" - } - }, - "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", - "requires": { - "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "fresh": "0.5.2", - "http-errors": "1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" - } - }, - "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", - "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", - "send": "0.16.2" - } - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.18" - } + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" } } }, @@ -5668,7 +4473,7 @@ "resolved": "https://registry.npmjs.org/express-ws/-/express-ws-4.0.0.tgz", "integrity": "sha512-KEyUw8AwRET2iFjFsI1EJQrJ/fHeGiJtgpYgEWG3yDv4l/To/m3a2GaYfeGyB3lsWdvbesjF5XCMx+SVBgAAYw==", "requires": { - "ws": "5.2.0" + "ws": "5.2.2" } }, "extend": { @@ -5699,9 +4504,9 @@ } }, "external-editor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", - "integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { "chardet": "0.4.2", @@ -5710,19 +4515,67 @@ } }, "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "is-extglob": "1.0.0" + "array-unique": "0.3.2", + "define-property": "1.0.0", + "expand-brackets": "2.1.4", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" }, "dependencies": { - "is-extglob": { + "define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } } } }, @@ -5736,32 +4589,21 @@ } }, "extract-zip": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.6.tgz", - "integrity": "sha1-EpDt6NINCHK0Kf0/NRyhKOxe+Fw=", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", "dev": true, "requires": { - "concat-stream": "1.6.0", + "concat-stream": "1.6.2", "debug": "2.6.9", - "mkdirp": "0.5.0", + "mkdirp": "0.5.1", "yauzl": "2.4.1" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "integrity": "sha1-HXMHam35hs2TROFecfzAWkyavxI=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } } }, "fast-deep-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", - "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", "dev": true }, "fast-glob": { @@ -5776,274 +4618,6 @@ "is-glob": "4.0.0", "merge2": "1.2.2", "micromatch": "3.1.10" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.1", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - } - } } }, "fast-json-stable-stringify": { @@ -6115,29 +4689,6 @@ "requires": { "loader-utils": "1.1.0", "schema-utils": "0.4.5" - }, - "dependencies": { - "ajv": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.2.1.tgz", - "integrity": "sha1-KKarxJOiq+D7TIUHrK7bQ/pVBnE=", - "dev": true, - "requires": { - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, - "schema-utils": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", - "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", - "dev": true, - "requires": { - "ajv": "6.2.1", - "ajv-keywords": "3.1.0" - } - } } }, "filename-regex": { @@ -6165,16 +4716,40 @@ } }, "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "1.1.7", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "0.1.1" + } + } + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "unpipe": "1.0.0" } }, "find-cache-dir": { @@ -6184,7 +4759,7 @@ "dev": true, "requires": { "commondir": "1.0.1", - "make-dir": "1.2.0", + "make-dir": "1.3.0", "pkg-dir": "2.0.0" } }, @@ -6213,6 +4788,43 @@ "del": "2.2.2", "graceful-fs": "4.1.11", "write": "0.2.1" + }, + "dependencies": { + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "flatten": { @@ -6241,37 +4853,31 @@ "integrity": "sha512-SzRtXNaIcCyRabIpcv+AQd0gn+tXv1wfDDvej3wtBo1/XV0iDnCw5XzbARRRmZMW+IEg+Q26jup6vYgnDam4dg==" }, "flush-write-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz", - "integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", "dev": true, "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.5" + "readable-stream": "2.3.6" + } + }, + "follow-redirects": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.1.tgz", + "integrity": "sha512-v9GI1hpaqq1ZZR6pBD1+kI7O24PhDvNGNodjS3MdcEqyrahCp8zbtpv+2B/krUnSmUH80lbAS7MrdeK5IylgKg==", + "dev": true, + "requires": { + "debug": "3.1.0" }, "dependencies": { - "readable-stream": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", - "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" + "ms": "2.0.0" } } } @@ -6365,33 +4971,7 @@ "dev": true, "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", - "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - } + "readable-stream": "2.3.6" } }, "fs-extra": { @@ -6416,7 +4996,7 @@ "graceful-fs": "4.1.11", "iferr": "0.1.5", "imurmurhash": "0.1.4", - "readable-stream": "1.1.14" + "readable-stream": "2.3.6" } }, "fs.realpath": { @@ -6425,6 +5005,535 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "2.10.0", + "node-pre-gyp": "0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "1.2.0", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "2.1.2" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "2.2.4" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "2.6.9", + "iconv-lite": "0.4.21", + "sax": "1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.7", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.1" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "0.5.1", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.1", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "1.0.1", + "fs-minipass": "1.2.5", + "minipass": "2.2.4", + "minizlib": "1.1.0", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.1", + "yallist": "3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -6438,9 +5547,9 @@ "dev": true }, "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, "get-own-enumerable-property-symbols": { @@ -6449,6 +5558,12 @@ "integrity": "sha512-TtY/sbOemiMKPRUDDanGCSgBYe7Mf0vbRsWnBZ+9yghpZ1MvcpSpuZFjHdEeY/LZjZy0vdLjS77L6HosisFiug==", "dev": true }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -6573,6 +5688,15 @@ "is-glob": "2.0.1" }, "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", @@ -6591,27 +5715,22 @@ } }, "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "3.1.0", + "path-dirname": "1.0.2" }, "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "2.1.1" } } } @@ -6644,17 +5763,24 @@ "dev": true }, "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { "array-union": "1.0.2", - "dir-glob": "2.0.0", "glob": "7.1.2", - "ignore": "3.3.7", - "pify": "3.0.0", - "slash": "1.0.0" + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "globjoin": { @@ -6686,6 +5812,12 @@ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, "handle-thing": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", @@ -6693,9 +5825,9 @@ "dev": true }, "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { "function-bind": "1.1.1" @@ -6709,6 +5841,18 @@ "ansi-regex": "2.1.1" } }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -6718,14 +5862,6 @@ "get-value": "2.0.6", "has-values": "1.0.0", "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "has-values": { @@ -6738,25 +5874,11 @@ "kind-of": "4.0.0" }, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true }, "kind-of": { "version": "4.0.0", @@ -6770,22 +5892,23 @@ } }, "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "hash.js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { "inherits": "2.0.3", - "minimalistic-assert": "1.0.0" + "safe-buffer": "5.1.2" + } + }, + "hash.js": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", + "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" } }, "hawk": { @@ -6823,13 +5946,6 @@ "nocache": "2.0.0", "referrer-policy": "1.1.0", "x-xss-protection": "1.1.0" - }, - "dependencies": { - "expect-ct": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.1.1.tgz", - "integrity": "sha512-ngXzTfoRGG7fYens3/RMb6yYoVLvLMfmsSllP/mZPxNHgFq41TmPSLF/nLY7fwoclI2vElvAmILFWGUYqdjfCg==" - } } }, "helmet-csp": { @@ -6855,8 +5971,8 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.0", + "hash.js": "1.1.5", + "minimalistic-assert": "1.0.1", "minimalistic-crypto-utils": "1.0.1" } }, @@ -6877,9 +5993,9 @@ } }, "hosted-git-info": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", "dev": true }, "hpack.js": { @@ -6889,35 +6005,9 @@ "dev": true, "requires": { "inherits": "2.0.3", - "obuf": "1.1.1", - "readable-stream": "2.3.4", - "wbuf": "1.7.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - } + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "wbuf": "1.7.3" } }, "hpkp": { @@ -6944,25 +6034,24 @@ "requires": { "es6-templates": "0.2.3", "fastparse": "1.1.1", - "html-minifier": "3.5.9", + "html-minifier": "3.5.18", "loader-utils": "1.1.0", "object-assign": "4.1.1" } }, "html-minifier": { - "version": "3.5.9", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.9.tgz", - "integrity": "sha512-EZqO91XJwkj8BeLx9C12sKB/AHoTANaZax39vEOP9f/X/9jgJ3r1O2+neabuHqpz5kJO71TapP9JrtCY39su1A==", + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.18.tgz", + "integrity": "sha512-sczoq/9zeXiKZMj8tsQzHJE7EyjrpMHvblTLuh9o8h5923a6Ts5uQ/3YdY+xIqJYRjzHQPlrHjfjh0BtwPJG0g==", "dev": true, "requires": { "camel-case": "3.0.0", - "clean-css": "4.1.9", - "commander": "2.14.1", + "clean-css": "4.1.11", + "commander": "2.16.0", "he": "1.1.1", - "ncname": "1.0.0", "param-case": "2.1.1", "relateurl": "0.2.7", - "uglify-js": "3.3.10" + "uglify-js": "3.4.4" } }, "html-tags": { @@ -6978,37 +6067,11 @@ "dev": true, "requires": { "domelementtype": "1.3.0", - "domhandler": "2.4.1", + "domhandler": "2.4.2", "domutils": "1.7.0", "entities": "1.1.1", "inherits": "2.0.3", - "readable-stream": "2.3.4" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - } + "readable-stream": "2.3.6" } }, "http-deceiver": { @@ -7018,39 +6081,45 @@ "dev": true }, "http-errors": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", - "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "1.1.1", + "depd": "1.1.2", "inherits": "2.0.3", - "setprototypeof": "1.0.3", + "setprototypeof": "1.1.0", "statuses": "1.4.0" - }, - "dependencies": { - "depd": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", - "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" - } } }, "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", "dev": true }, "http-proxy": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", - "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "dev": true, "requires": { - "eventemitter3": "1.2.0", + "eventemitter3": "3.1.0", + "follow-redirects": "1.5.1", "requires-port": "1.0.0" } }, + "http-proxy-middleware": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", + "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "dev": true, + "requires": { + "http-proxy": "1.17.0", + "is-glob": "4.0.0", + "lodash": "4.17.10", + "micromatch": "3.1.10" + } + }, "http-signature": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", @@ -7078,12 +6147,12 @@ "dev": true }, "https-proxy-agent": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.1.1.tgz", - "integrity": "sha512-LK6tQUR/VOkTI6ygAfWUKKP95I+e6M1h7N3PncGu1CATHCnex+CAv9ttR0lbHu1Uk2PXm/WoAHFo6JCGwMjVMw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "dev": true, "requires": { - "agent-base": "4.2.0", + "agent-base": "4.2.1", "debug": "3.1.0" }, "dependencies": { @@ -7107,6 +6176,20 @@ "is-ci": "1.1.0", "normalize-path": "1.0.0", "strip-indent": "2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + } } }, "hyperquest": { @@ -7137,6 +6220,12 @@ "string_decoder": "0.10.31" } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, "through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", @@ -7150,16 +6239,16 @@ } }, "hyperscript-attribute-to-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hyperscript-attribute-to-property/-/hyperscript-attribute-to-property-1.0.0.tgz", - "integrity": "sha1-glMI1Ju44pV5I/cxmBvMgRytev8=" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hyperscript-attribute-to-property/-/hyperscript-attribute-to-property-1.0.1.tgz", + "integrity": "sha512-N++cqwJ58/cTBYh4zUhqnlOEF7GgStWxIqjNHFDHD13fmH7Iah4PksZLcxqmxAwn3loUyXSVGw1NTnRlOTqN5Q==" }, "hyperx": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/hyperx/-/hyperx-2.3.3.tgz", - "integrity": "sha512-EE3FCnKEv+tQSt8yZAsY9bZXknFnsOSw1TWTECrRj+kNd+gt0R/tRHNcoy5uk1F/a7tWd7bjPGQJX/2pfmJglQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/hyperx/-/hyperx-2.4.0.tgz", + "integrity": "sha512-43jbOQfVkm9U0oAyBZ4Vt2eB0hZWS5EyrOhR3ZbgUrcprutGu9s/C476OVFL3QU1iynKO5s9kZsWrZm19gJKjg==", "requires": { - "hyperscript-attribute-to-property": "1.0.0" + "hyperscript-attribute-to-property": "1.0.1" } }, "iconv-lite": { @@ -7179,61 +6268,7 @@ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", "dev": true, "requires": { - "postcss": "6.0.19" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "ieee754": { @@ -7253,9 +6288,9 @@ "dev": true }, "ignore": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", - "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, "import-cwd": { @@ -7274,14 +6309,6 @@ "dev": true, "requires": { "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } } }, "import-lazy": { @@ -7348,13 +6375,13 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.0.0", - "chalk": "2.3.1", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", "cli-cursor": "2.1.0", "cli-width": "2.2.0", - "external-editor": "2.1.0", + "external-editor": "2.2.0", "figures": "2.0.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "mute-stream": "0.0.7", "run-async": "2.3.0", "rx-lite": "4.0.8", @@ -7371,31 +6398,25 @@ "dev": true }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -7406,9 +6427,9 @@ } }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -7436,173 +6457,6 @@ "dev": true, "requires": { "meow": "3.7.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "1.3.1" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "2.0.1" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "0.2.1" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "4.0.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - } } }, "interpret": { @@ -7616,12 +6470,12 @@ "dev": true }, "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "1.4.0" } }, "invert-kv": { @@ -7636,6 +6490,11 @@ "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, + "ipaddr.js": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", + "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=" + }, "is": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", @@ -7643,26 +6502,35 @@ "dev": true }, "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "3.2.2" }, "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } } } }, "is-alphabetical": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.1.tgz", - "integrity": "sha1-x3B5zJHU76x3W+EDS/LSQ/lebwg=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.2.tgz", + "integrity": "sha512-V0xN4BYezDHcBSKb1QHUFMlR4as/XEuCZBzMJUU4n7+Cbt33SmUnSol+pnXFvLxSHNq2CemUXNdaXV6Flg7+xg==", "dev": true }, "is-alphanumeric": { @@ -7672,13 +6540,13 @@ "dev": true }, "is-alphanumerical": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.1.tgz", - "integrity": "sha1-37SqTRCF4zvbYcLe6cgOnGwZ9Ts=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.2.tgz", + "integrity": "sha512-pyfU/0kHdISIgslFfZN9nfY1Gk3MquQgUm1mJTjdkEPpkAKNWuBTSqFwewOpR7N351VkErCiyV71zX7mlQQqsg==", "dev": true, "requires": { - "is-alphabetical": "1.0.1", - "is-decimal": "1.0.1" + "is-alphabetical": "1.0.2", + "is-decimal": "1.0.2" } }, "is-arrayish": { @@ -7702,9 +6570,9 @@ "integrity": "sha1-JKtZt9y52jYSx3PmDGVlZeWgmAw=" }, "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" }, "is-builtin-module": { "version": "1.0.0", @@ -7716,9 +6584,9 @@ } }, "is-callable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true }, "is-ci": { @@ -7727,23 +6595,32 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.1.2" + "ci-info": "1.1.3" } }, "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "3.2.2" }, "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } } } }, @@ -7754,26 +6631,26 @@ "dev": true }, "is-decimal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.1.tgz", - "integrity": "sha1-9ftqlJlq2ejjdh+/vQkfH8qMToI=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.2.tgz", + "integrity": "sha512-TRzl7mOCchnhchN+f3ICUCzYvL9ul7R+TYOsZ8xia++knyZAJfv/uA1FvQXsAnYIl1T3B2X5E/J7Wb1QXiIBXg==", "dev": true }, "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" }, "dependencies": { "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } @@ -7836,18 +6713,35 @@ } }, "is-hexadecimal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.1.tgz", - "integrity": "sha1-bghLvJIGH7sJcexYts5tQE4k2mk=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.2.tgz", + "integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==", "dev": true }, "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "3.2.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } } }, "is-obj": { @@ -7862,21 +6756,13 @@ "integrity": "sha1-AO+8CIFsM8/ErIJR0TLhDcZQmNc=", "dev": true }, - "is-odd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", - "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", "dev": true, "requires": { - "is-number": "4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } + "symbol-observable": "1.2.0" } }, "is-path-cwd": { @@ -7886,9 +6772,9 @@ "dev": true }, "is-path-in-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", - "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { "is-path-inside": "1.0.1" @@ -7916,14 +6802,6 @@ "dev": true, "requires": { "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "is-posix-bracket": { @@ -7950,7 +6828,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.1" + "has": "1.0.3" } }, "is-regexp": { @@ -7972,9 +6850,9 @@ "dev": true }, "is-supported-regexp-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.0.tgz", - "integrity": "sha1-i1IMhfrnolM4LUsCZS4EVXbhO7g=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz", + "integrity": "sha512-3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==", "dev": true }, "is-symbol": { @@ -7990,9 +6868,9 @@ "dev": true }, "is-whitespace-character": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.1.tgz", - "integrity": "sha1-muAXbzKCtlRXoZks2whPil+DPjs=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz", + "integrity": "sha512-SzM+T5GKUCtLhlHFKt2SDAX2RFzfS6joT91F2/WSi9LxgFdsnhfPK/UIA+JhRR2xuyLdrCys2PiFDrtn1fU5hQ==", "dev": true }, "is-windows": { @@ -8002,9 +6880,9 @@ "dev": true }, "is-word-character": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.1.tgz", - "integrity": "sha1-WgP6HqkazopusMfNdw64bWXIvvs=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.2.tgz", + "integrity": "sha512-T3FlsX8rCHAH8e7RE7PfOPZVFQlcV3XRF9eOOBQ1uf70OxO7CjjSOjeImMPCADBdYWcStAbVbYvJ1m2D3tb+EA==", "dev": true }, "is-wsl": { @@ -8031,29 +6909,90 @@ "dev": true }, "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz", + "integrity": "sha512-GvgM/uXRwm+gLlvkWHTjDAvwynZkL9ns15calTrmhGgowlwJBbWMYzWbKqE2DT6JDP1AFXKa+Zi0EkqNCUqY0A==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz", + "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "dev": true, "requires": { - "isarray": "1.0.0" + "babel-generator": "6.26.1", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.2.0", + "semver": "5.5.0" } }, "jest-get-type": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.1.0.tgz", - "integrity": "sha512-nD97IVOlNP6fjIN5i7j5XRH+hFsHL7VlauBbzRvueaaUe70uohrkz7pL/N8lx/IAwZRTJ//wOdVgh85OgM7g3w==", + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", + "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==", "dev": true }, + "jest-validate": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.4.0.tgz", + "integrity": "sha1-2W7t4B7wOskJwAnpyORVGX1IwgE=", + "dev": true, + "requires": { + "chalk": "2.4.1", + "jest-get-type": "22.4.3", + "leven": "2.1.0", + "pretty-format": "23.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.2" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" }, "js-base64": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", - "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==", + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.6.tgz", + "integrity": "sha512-O9SR2NVICx6rCqh1qsU91QZ5IoNa+2T1ROJ0OQlfvATKGmnjsAvg3r0E5ufPZ4a95jdKTPXhFWiE/sOZ7a5Rtg==", "dev": true }, "js-tokens": { @@ -8062,6 +7001,16 @@ "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", "dev": true }, + "js-yaml": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "dev": true, + "requires": { + "argparse": "1.0.10", + "esprima": "4.0.0" + } + }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", @@ -8069,9 +7018,9 @@ "dev": true }, "json-parse-better-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz", - "integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "json-schema-traverse": { @@ -8099,10 +7048,12 @@ "dev": true }, "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "1.2.0" + } }, "jsonfile": { "version": "2.4.0", @@ -8131,12 +7082,6 @@ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, "readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", @@ -8159,6 +7104,12 @@ "through": "2.3.8" } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, "through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", @@ -8196,13 +7147,10 @@ "dev": true }, "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true }, "klaw": { "version": "1.3.1", @@ -8256,6 +7204,12 @@ "string_decoder": "0.10.31" } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, "through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", @@ -8290,9 +7244,9 @@ "integrity": "sha512-jPoIMbmgtWMUrz/l0rhBVa1j6H71zr0rEoxDWBA333PZcaqBvELdg0Sf4tdGHlwrBM0GXaXMVgTRkLTm2vA7Jg==", "dev": true, "requires": { - "app-root-path": "2.0.1", + "app-root-path": "2.1.0", "chalk": "2.4.1", - "commander": "2.14.1", + "commander": "2.16.0", "cosmiconfig": "5.0.5", "debug": "3.1.0", "dedent": "0.7.0", @@ -8302,7 +7256,7 @@ "is-windows": "1.0.2", "jest-validate": "23.4.0", "listr": "0.14.1", - "lodash": "4.17.5", + "lodash": "4.17.10", "log-symbols": "2.2.0", "micromatch": "3.1.10", "npm-which": "3.0.1", @@ -8315,60 +7269,13 @@ "stringify-object": "3.2.2" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.1", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } + "color-convert": "1.9.2" } }, "chalk": { @@ -8382,17 +7289,6 @@ "supports-color": "5.4.0" } }, - "cosmiconfig": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", - "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.0", - "parse-json": "4.0.0" - } - }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -8402,109 +7298,56 @@ "ms": "2.0.0" } }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "execa": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz", + "integrity": "sha512-BbUMBiX4hqiHZUA5+JujIjNb6TyAlp2D5KLheMjMluwOuzcnylDL4AxZYLLn1n2AGB49eSWwyKvvEQoRpnAtmA==", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } + "has-flag": "3.0.0" } - }, + } + } + }, + "listr": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.1.tgz", + "integrity": "sha512-MSMUUVN1f8aRnPi4034RkOqdiUlpYW+FqwFE3aL0uYNPRavkt2S2SsSpDDofn8BDpqv2RNnsdOcCHWsChcq77A==", + "dev": true, + "requires": { + "@samverschueren/stream-to-observable": "0.3.0", + "cli-truncate": "0.2.1", + "figures": "1.7.0", + "indent-string": "2.1.0", + "is-observable": "1.1.0", + "is-promise": "2.1.0", + "is-stream": "1.1.0", + "listr-silent-renderer": "1.1.1", + "listr-update-renderer": "0.4.0", + "listr-verbose-renderer": "0.4.1", + "log-symbols": "1.0.2", + "log-update": "1.0.2", + "ora": "0.2.3", + "p-map": "1.2.0", + "rxjs": "6.2.1", + "strip-ansi": "3.0.1" + }, + "dependencies": { "figures": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", @@ -8515,267 +7358,14 @@ "object-assign": "4.1.1" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } + "chalk": "1.1.3" } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-observable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", - "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", - "dev": true, - "requires": { - "symbol-observable": "1.2.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "jest-validate": { - "version": "23.4.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.4.0.tgz", - "integrity": "sha1-2W7t4B7wOskJwAnpyORVGX1IwgE=", - "dev": true, - "requires": { - "chalk": "2.4.1", - "jest-get-type": "22.1.0", - "leven": "2.1.0", - "pretty-format": "23.2.0" - } - }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, - "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "listr": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.1.tgz", - "integrity": "sha512-MSMUUVN1f8aRnPi4034RkOqdiUlpYW+FqwFE3aL0uYNPRavkt2S2SsSpDDofn8BDpqv2RNnsdOcCHWsChcq77A==", - "dev": true, - "requires": { - "@samverschueren/stream-to-observable": "0.3.0", - "cli-truncate": "0.2.1", - "figures": "1.7.0", - "indent-string": "2.1.0", - "is-observable": "1.1.0", - "is-promise": "2.1.0", - "is-stream": "1.1.0", - "listr-silent-renderer": "1.1.1", - "listr-update-renderer": "0.4.0", - "listr-verbose-renderer": "0.4.1", - "log-symbols": "1.0.2", - "log-update": "1.0.2", - "ora": "0.2.3", - "p-map": "1.2.0", - "rxjs": "6.2.1", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "log-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", - "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", - "dev": true, - "requires": { - "chalk": "1.1.3" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - } - }, - "please-upgrade-node": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz", - "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==", - "dev": true, - "requires": { - "semver-compare": "1.0.0" - } - }, - "pretty-format": { - "version": "23.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", - "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0", - "ansi-styles": "3.2.1" - } - }, - "rxjs": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", - "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, - "staged-git-files": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.1.tgz", - "integrity": "sha512-H89UNKr1rQJvI1c/PIR3kiAMBV23yvR7LItZiV74HWZwzt7f3YHuujJ9nJZlt58WlFox7XQsOahexwk7nTe69A==", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true } } }, @@ -8861,7 +7451,7 @@ }, "onetime": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, @@ -8878,15 +7468,24 @@ } }, "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "loader-runner": { @@ -8904,6 +7503,14 @@ "big.js": "3.2.0", "emojis-list": "2.1.0", "json5": "0.5.1" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + } } }, "locate-path": { @@ -8917,9 +7524,9 @@ } }, "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==" + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" }, "lodash._reinterpolate": { "version": "3.0.0", @@ -8992,39 +7599,33 @@ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "chalk": "2.3.1" + "chalk": "2.4.1" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -9059,7 +7660,7 @@ }, "onetime": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, @@ -9082,15 +7683,19 @@ "dev": true }, "loglevelnext": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.3.tgz", - "integrity": "sha512-OCxd/b78TijTB4b6zVqLbMrxhebyvdZKwqpL0VHUZ0pYhavXaPD4l6Xrr4n5xqTYWiqtb0i7ikSoJY/myQ/Org==", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz", + "integrity": "sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==", + "dev": true, + "requires": { + "es6-symbol": "3.1.1", + "object.assign": "4.1.0" + } }, "lolex": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.3.2.tgz", - "integrity": "sha512-A5pN2tkFj7H0dGIAM6MFvHKMJcPnjZsOMvR7ujCjfgW5TbV6H9vb1PgxLtHvjqNZTHsUolz+6/WEO0N1xNx2ng==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.1.tgz", + "integrity": "sha512-Oo2Si3RMKV3+lV5MsSWplDQFoTClz/24S0MMHYcgGWWmFXr6TMlqcqk/l1GtH+d5wLBwNRiqGnwDRMirtFalJw==", "dev": true }, "long": { @@ -9106,9 +7711,9 @@ "dev": true }, "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { "js-tokens": "3.0.2" @@ -9130,9 +7735,9 @@ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" }, "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { "pseudomap": "1.0.2", @@ -9140,18 +7745,17 @@ } }, "magic-string": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.21.3.tgz", - "integrity": "sha1-h+IBAJ6/3m9G3FdXMFpwr3HjFiQ=", - "dev": true, + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", + "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", "requires": { - "vlq": "0.2.3" + "sourcemap-codec": "1.4.1" } }, "make-dir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", - "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { "pify": "3.0.0" @@ -9170,9 +7774,9 @@ "dev": true }, "map-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, "map-stream": { @@ -9191,15 +7795,15 @@ } }, "markdown-escapes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.1.tgz", - "integrity": "sha1-GZTfLTr0gR3lmmcUk0wrIpJzRRg=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.2.tgz", + "integrity": "sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA==", "dev": true }, "markdown-table": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.1.tgz", - "integrity": "sha1-Sz3ToTPRUYuO8NvHCb8qG0gkvIw=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.2.tgz", + "integrity": "sha512-NcWuJFHDA8V3wkDgR/j4+gZx+YQwstPgfQDV8ndUeWWzta3dnDTBxpVzqS9lkmJAuV5YX35lmyojl6HO5JXAgw==", "dev": true }, "math-expression-evaluator": { @@ -9208,10 +7812,16 @@ "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", "dev": true }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, "mathml-tag-names": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.0.1.tgz", - "integrity": "sha1-jUEmgWi/htEQK5gQnijlMeejRXg=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.0.tgz", + "integrity": "sha512-3Zs9P/0zzwTob2pdgT0CHZuMbnSUSp8MB1bddfm+HDmnFWHGT4jvEZRf+2RuPoa+cjdn/z25SEt5gFTqdhvJAg==", "dev": true }, "md5": { @@ -9222,6 +7832,13 @@ "charenc": "0.0.2", "crypt": "0.0.2", "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + } } }, "md5.js": { @@ -9232,18 +7849,6 @@ "requires": { "hash-base": "3.0.4", "inherits": "2.0.3" - }, - "dependencies": { - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" - } - } } }, "mdast-util-compact": { @@ -9252,14 +7857,14 @@ "integrity": "sha1-zbX4TitqLTEU3zO9BdnLMuPECDo=", "dev": true, "requires": { - "unist-util-modify-children": "1.1.1", - "unist-util-visit": "1.3.0" + "unist-util-modify-children": "1.1.2", + "unist-util-visit": "1.3.1" } }, "mdn-data": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.0.tgz", - "integrity": "sha512-jC6B3BFC07cCOU8xx1d+sQtDkVIpGKWv4TzK7pN7PyObdbwlIFJbHYk8ofvr0zrU8SkV1rSi87KAHhWCdLGw1Q==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", + "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", "dev": true }, "media-typer": { @@ -9283,33 +7888,7 @@ "dev": true, "requires": { "errno": "0.1.7", - "readable-stream": "2.3.4" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - } + "readable-stream": "2.3.6" } }, "memorystream": { @@ -9318,6 +7897,24 @@ "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", "dev": true }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + } + }, "merge": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", @@ -9348,50 +7945,24 @@ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" }, "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - } + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "2.0.2", + "extend-shallow": "3.0.2", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.13", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" } }, "miller-rabin": { @@ -9410,16 +7981,16 @@ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" }, "mime-db": { - "version": "1.30.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", - "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" }, "mime-types": { - "version": "2.1.17", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", - "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.30.0" + "mime-db": "1.33.0" } }, "mimic-fn": { @@ -9448,9 +8019,9 @@ } }, "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, "minimalistic-crypto-utils": { @@ -9469,9 +8040,9 @@ } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "minimist-options": { "version": "3.0.2", @@ -9489,14 +8060,14 @@ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { - "concat-stream": "1.6.0", - "duplexify": "3.5.4", + "concat-stream": "1.6.2", + "duplexify": "3.6.0", "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.2", + "flush-write-stream": "1.0.3", "from2": "2.3.0", "parallel-transform": "1.1.0", "pump": "2.0.1", - "pumpify": "1.4.0", + "pumpify": "1.5.1", "stream-each": "1.2.2", "through2": "2.0.3" } @@ -9528,6 +8099,13 @@ "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } } }, "mocha": { @@ -9564,24 +8142,6 @@ "ms": "2.0.0" } }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "supports-color": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", @@ -9600,10 +8160,9 @@ "dev": true }, "moment": { - "version": "2.19.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.19.3.tgz", - "integrity": "sha1-vbmdJw1tf9p4zA+6zoVeJ/59pp8=", - "dev": true + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" }, "moment-timezone": { "version": "0.5.5", @@ -9611,7 +8170,7 @@ "integrity": "sha1-odVBCnLBil8pPyouYocKgK1DLa4=", "dev": true, "requires": { - "moment": "2.19.3" + "moment": "2.22.2" } }, "move-concurrently": { @@ -9681,6 +8240,13 @@ "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.2.0.tgz", "integrity": "sha512-oprzxd2zhfrJqEuB98qc1dRMMonClBQ57UPDjnbcrah4orEMTq1jq3+AcdFe5ePzdbJXI7zmdhfftIdMnhYFoQ==" }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true, + "optional": true + }, "nanoassert": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-1.1.0.tgz", @@ -9715,58 +8281,32 @@ "nanoassert": "1.1.0", "nanomorph": "5.1.3", "nanotiming": "7.3.1", - "on-load": "3.3.4" + "on-load": "3.4.1" } }, "nanohref": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/nanohref/-/nanohref-3.0.1.tgz", - "integrity": "sha512-YfDhNcglFDIISfKVnXHovDaaglTauD2ThidaTZuyV6NE0lQMvGs5UfSoa1GvX6Nd9p2TfFeYzzc+TtjH+htu+Q==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/nanohref/-/nanohref-3.0.3.tgz", + "integrity": "sha1-GU14Vhwi1z2QBkZKfRJGOWVS9sw=", + "requires": { + "nanoassert": "1.1.0" + } }, "nanohtml": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/nanohtml/-/nanohtml-1.2.4.tgz", "integrity": "sha512-Fr87YV9ANgqkw4rX7+dMrjefVZWHnitkAqr5bliQ/a6/aYY8haruePBXS6lrEerx/VQNY7qWIGR6PPad08czfg==", "requires": { - "acorn": "5.4.1", + "acorn": "5.7.1", "camel-case": "3.0.0", "convert-source-map": "1.5.1", - "hyperx": "2.3.3", + "hyperx": "2.4.0", "is-boolean-attribute": "0.0.1", "nanoassert": "1.1.0", "nanobench": "2.1.1", "normalize-html-whitespace": "0.2.0", "through2": "2.0.3", "transform-ast": "2.4.4" - }, - "dependencies": { - "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" - }, - "magic-string": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.23.2.tgz", - "integrity": "sha512-oIUZaAxbcxYIp4AyLafV6OVKoB3YouZs0UTCJ8mOKBHNyJgGDaMJ4TgA+VylJh6fx7EQCC52XkbURxxG9IoJXA==", - "requires": { - "sourcemap-codec": "1.4.1" - } - }, - "transform-ast": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", - "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", - "requires": { - "acorn-node": "1.3.0", - "convert-source-map": "1.5.1", - "dash-ast": "1.0.0", - "is-buffer": "2.0.3", - "magic-string": "0.23.2", - "merge-source-map": "1.0.4", - "nanobench": "2.1.1" - } - } } }, "nanolru": { @@ -9775,9 +8315,9 @@ "integrity": "sha512-GyQkE8M32pULhQk7Sko5raoIbPalAk90ICG+An4fq6fCsFHsP6fB2K46WGXVdoJpy4SGMnZ/EKbo123fZJomWg==" }, "nanomatch": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { "arr-diff": "4.0.0", @@ -9785,33 +8325,12 @@ "define-property": "2.0.2", "extend-shallow": "3.0.2", "fragment-cache": "0.2.1", - "is-odd": "2.0.0", "is-windows": "1.0.2", "kind-of": "6.0.2", "object.pick": "1.3.0", "regex-not": "1.0.2", - "snapdragon": "0.8.1", + "snapdragon": "0.8.2", "to-regex": "3.0.2" - }, - "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } } }, "nanomorph": { @@ -9836,17 +8355,18 @@ "integrity": "sha1-q5+5wle5rcxx2CmCy1jY+jUDdko=" }, "nanorouter": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/nanorouter/-/nanorouter-3.0.1.tgz", - "integrity": "sha512-i3PLabdN+Lc7agnJ3dTgQSHy5e5xOyuAeoIvPC0hlLOlFegt95mlg9xFhFC17+PK0A1iP6ev2FCkSMMTVt6zUA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/nanorouter/-/nanorouter-3.1.1.tgz", + "integrity": "sha512-nQ1YRpVzc/0cQA3lG/wCe0ooLtmzLQeIO0VKDRJduVN+KaL5aW5pUDRQDu5EvamiF3lDmbNLYiUkBfjPxOY6fA==", "requires": { - "wayfarer": "6.6.3" + "nanoassert": "1.1.0", + "wayfarer": "6.6.4" } }, "nanoscheduler": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nanoscheduler/-/nanoscheduler-1.0.2.tgz", - "integrity": "sha512-hYNfVK18oB14U/We4smU0XGFwnah9J60TrhiUw5GLFCMgyHb+rhFVQ/ZovIq7UH8nUnXbpfUq6IJqbdjN9JR/w==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/nanoscheduler/-/nanoscheduler-1.0.3.tgz", + "integrity": "sha512-jBbrF3qdU9321r8n9X7yu18DjP31Do2ItJm3mWrt90wJTrnDO+HXpoV7ftaUglAtjgj9s+OaCxGufbvx6pvbEQ==", "requires": { "nanoassert": "1.1.0" } @@ -9857,7 +8377,7 @@ "integrity": "sha512-l3lC7v/PfOuRWQa8vV29Jo6TG10wHtnthLElFXs4Te4Aas57Fo4n1Q8LH9n+NDh9riOzTVvb2QNBhTS4JUKNjw==", "requires": { "nanoassert": "1.1.0", - "nanoscheduler": "1.0.2" + "nanoscheduler": "1.0.3" } }, "natural-compare": { @@ -9866,15 +8386,6 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "ncname": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", - "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", - "dev": true, - "requires": { - "xml-char-classes": "1.0.0" - } - }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", @@ -9886,6 +8397,12 @@ "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==", "dev": true }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, "nice-try": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", @@ -9893,14 +8410,14 @@ "dev": true }, "nise": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/nise/-/nise-1.2.5.tgz", - "integrity": "sha512-Es4hGuq3lpip5PckrB+Qpuma282M0UJANJ+jxAgI+0wWTL9X6MtNv+M385JgqsAE8hv6NvD3lv8CQtXgEnvlpQ==", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.2.tgz", + "integrity": "sha512-BxH/DxoQYYdhKgVAfqVy4pzXRZELHOIewzoesxpjYvpU+7YOalQhGNPf7wAx8pLrTNPrHRDlLOkAl8UI0ZpXjw==", "dev": true, "requires": { "@sinonjs/formatio": "2.0.0", "just-extend": "1.1.27", - "lolex": "2.3.2", + "lolex": "2.7.1", "path-to-regexp": "1.7.0", "text-encoding": "0.6.4" }, @@ -9936,9 +8453,9 @@ "integrity": "sha1-ICtIAhoMTL3i34DeFaF0Q8i0OYA=" }, "node-forge": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", - "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", "dev": true }, "node-libs-browser": { @@ -9961,14 +8478,14 @@ "process": "0.11.10", "punycode": "1.3.2", "querystring-es3": "0.2.1", - "readable-stream": "2.3.4", + "readable-stream": "2.3.6", "stream-browserify": "2.0.1", - "stream-http": "2.8.0", - "string_decoder": "1.0.3", - "timers-browserify": "2.0.6", + "stream-http": "2.8.3", + "string_decoder": "1.1.1", + "timers-browserify": "2.0.10", "tty-browserify": "0.0.0", "url": "0.11.0", - "util": "0.10.3", + "util": "0.10.4", "vm-browserify": "0.0.4" }, "dependencies": { @@ -9978,30 +8495,6 @@ "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true }, - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", @@ -10028,14 +8521,6 @@ "requires": { "colors": "0.5.1", "underscore": "1.4.4" - }, - "dependencies": { - "colors": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.5.1.tgz", - "integrity": "sha1-fQAj6usVTo7p/Oddy5I9DtFmd3Q=", - "dev": true - } } }, "normalize-html-whitespace": { @@ -10049,17 +8534,20 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.5.0", + "hosted-git-info": "2.7.1", "is-builtin-module": "1.0.0", "semver": "5.5.0", - "validate-npm-package-license": "3.0.1" + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", - "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", - "dev": true + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } }, "normalize-range": { "version": "0.1.2", @@ -10079,7 +8567,7 @@ "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==", "dev": true, "requires": { - "which": "1.3.0" + "which": "1.3.1" } }, "npm-run-all": { @@ -10105,7 +8593,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, "chalk": { @@ -10129,13 +8617,55 @@ "path-key": "2.0.1", "semver": "5.5.0", "shebang-command": "1.2.0", - "which": "1.3.0" + "which": "1.3.1" } }, - "has-flag": { + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" + } + }, + "path-type": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "supports-color": { @@ -10164,9 +8694,9 @@ "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", "dev": true, "requires": { - "commander": "2.14.1", + "commander": "2.16.0", "npm-path": "2.0.4", - "which": "1.3.0" + "which": "1.3.1" } }, "nsp": { @@ -10175,10 +8705,10 @@ "integrity": "sha512-dLmGi7IGixJEHKetErIH460MYiYIzAoxuVsloZFu9e1p9U8K0yULx7YQ1+VzrjZbB+wqq67ES1SfOvKVb/qMDQ==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "cli-table2": "0.2.0", - "cvss": "1.0.2", - "https-proxy-agent": "2.1.1", + "cvss": "1.0.3", + "https-proxy-agent": "2.2.1", "inquirer": "3.3.0", "nodesecurity-npm-utils": "6.0.0", "semver": "5.5.0", @@ -10187,39 +8717,150 @@ }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, - "has-flag": { + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" } + }, + "yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.3", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } } } }, @@ -12906,55 +11547,28 @@ "is-descriptor": "0.1.6" } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "kind-of": "3.2.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "is-buffer": "1.1.6" } } } }, "object-keys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", - "integrity": "sha1-zd7AKZiwkb5CvxA1rjLknxy26mc=", - "dev": true, - "requires": { - "foreach": "2.0.5", - "indexof": "0.0.1", - "is": "0.2.7" - } + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", + "dev": true }, "object-visit": { "version": "1.0.1", @@ -12963,14 +11577,18 @@ "dev": true, "requires": { "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "function-bind": "1.1.1", + "has-symbols": "1.0.0", + "object-keys": "1.0.12" } }, "object.getownpropertydescriptors": { @@ -12980,7 +11598,7 @@ "dev": true, "requires": { "define-properties": "1.1.2", - "es-abstract": "1.10.0" + "es-abstract": "1.12.0" } }, "object.omit": { @@ -13000,14 +11618,6 @@ "dev": true, "requires": { "isobject": "3.0.1" - }, - "dependencies": { - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - } } }, "object.values": { @@ -13017,15 +11627,15 @@ "dev": true, "requires": { "define-properties": "1.1.2", - "es-abstract": "1.10.0", + "es-abstract": "1.12.0", "function-bind": "1.1.1", - "has": "1.0.1" + "has": "1.0.3" } }, "obuf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", - "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, "on-finished": { @@ -13043,9 +11653,9 @@ "dev": true }, "on-load": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/on-load/-/on-load-3.3.4.tgz", - "integrity": "sha512-WhwvSW0hZndA7HjN1O3AypgaAahFPTOmJ43bQUTQHsiHhtp9/kk+WlMnd/skqBkWuiNcQqNwKo2ZiwwRWStJIA==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/on-load/-/on-load-3.4.1.tgz", + "integrity": "sha512-Q3v6aurn5Pif4Rk1QZhnH/azZiKZqiroCcRkPlEccwTl4UFomAGFAqZz8XRCGN/KtuX4DwXCn9SB/edSSoV+Hg==", "requires": { "global": "4.3.2", "nanoassert": "1.1.0" @@ -13075,9 +11685,9 @@ } }, "opn": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz", - "integrity": "sha512-Jd/GpzPyHF4P2/aNOVmS3lfMSWV9J7cOhCG1s08XCEAsPkB7lp6ddiU0J7XzyQRDUh8BqJ7PchfINjR8jyofRQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", "dev": true, "requires": { "is-wsl": "1.1.0" @@ -13120,7 +11730,7 @@ }, "onetime": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "dev": true }, @@ -13137,24 +11747,12 @@ } }, "original": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", - "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.1.tgz", + "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==", "dev": true, "requires": { - "url-parse": "1.0.5" - }, - "dependencies": { - "url-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", - "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", - "dev": true, - "requires": { - "querystringify": "0.0.4", - "requires-port": "1.0.0" - } - } + "url-parse": "1.4.1" } }, "os-browserify": { @@ -13178,23 +11776,6 @@ "execa": "0.7.0", "lcid": "1.0.0", "mem": "1.1.0" - }, - "dependencies": { - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "5.1.0", - "get-stream": "3.0.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" - } - } } }, "os-tmpdir": { @@ -13210,9 +11791,9 @@ "dev": true }, "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { "p-try": "1.0.0" @@ -13224,7 +11805,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "1.3.0" } }, "p-map": { @@ -13253,33 +11834,7 @@ "requires": { "cyclist": "0.2.2", "inherits": "2.0.3", - "readable-stream": "2.3.5" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", - "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - } + "readable-stream": "2.3.6" } }, "param-case": { @@ -13292,30 +11847,30 @@ } }, "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", "dev": true, "requires": { "asn1.js": "4.10.1", - "browserify-aes": "1.1.1", - "create-hash": "1.1.3", + "browserify-aes": "1.2.0", + "create-hash": "1.2.0", "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" + "pbkdf2": "3.0.16" } }, "parse-entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.1.tgz", - "integrity": "sha1-gRLYhHExnyerrk1klksSL+ThuJA=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.1.2.tgz", + "integrity": "sha512-5N9lmQ7tmxfXf+hO3X6KRG6w7uYO/HL9fHalSySTdyn63C3WNvTM/1R8tn1u1larNcEbo3Slcy2bsVDQqvEpUg==", "dev": true, "requires": { - "character-entities": "1.2.1", - "character-entities-legacy": "1.1.1", - "character-reference-invalid": "1.1.1", - "is-alphanumerical": "1.0.1", - "is-decimal": "1.0.1", - "is-hexadecimal": "1.0.1" + "character-entities": "1.2.2", + "character-entities-legacy": "1.1.2", + "character-reference-invalid": "1.1.2", + "is-alphanumerical": "1.0.2", + "is-decimal": "1.0.2", + "is-hexadecimal": "1.0.2" } }, "parse-glob": { @@ -13348,13 +11903,12 @@ } }, "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.1" + "error-ex": "1.3.2" } }, "parse-link-header": { @@ -13366,6 +11920,17 @@ "xtend": "2.0.6" }, "dependencies": { + "object-keys": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", + "integrity": "sha1-zd7AKZiwkb5CvxA1rjLknxy26mc=", + "dev": true, + "requires": { + "foreach": "2.0.5", + "indexof": "0.0.1", + "is": "0.2.7" + } + }, "xtend": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", @@ -13437,12 +12002,22 @@ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "pify": "3.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } } }, "pause-stream": { @@ -13455,16 +12030,16 @@ } }, "pbkdf2": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", + "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "dev": true, "requires": { - "create-hash": "1.1.3", - "create-hmac": "1.1.6", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.10" + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" } }, "pend": { @@ -13501,60 +12076,18 @@ "dev": true, "requires": { "browserslist": "2.11.3", - "postcss": "6.0.18", + "postcss": "6.0.23", "reduce-css-calc": "1.3.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "browserslist": { + "version": "2.11.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz", + "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "dev": true, "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" + "caniuse-lite": "1.0.30000865", + "electron-to-chromium": "1.3.52" } } } @@ -13573,6 +12106,15 @@ "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==" }, + "please-upgrade-node": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz", + "integrity": "sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ==", + "dev": true, + "requires": { + "semver-compare": "1.0.0" + } + }, "pleeease-filters": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pleeease-filters/-/pleeease-filters-4.0.0.tgz", @@ -13580,61 +12122,7 @@ "dev": true, "requires": { "onecolor": "3.0.5", - "postcss": "6.0.18" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "pluralize": { @@ -13652,14 +12140,6 @@ "async": "1.5.2", "debug": "2.6.9", "mkdirp": "0.5.1" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - } } }, "posix-character-classes": { @@ -13668,1405 +12148,24 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, - "postcss-apply": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/postcss-apply/-/postcss-apply-0.8.0.tgz", - "integrity": "sha1-FOVEu7XLbxweBIhXll15rgZrE0M=", + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "balanced-match": "0.4.2", - "postcss": "6.0.18" + "chalk": "2.4.1", + "source-map": "0.6.1", + "supports-color": "5.4.0" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-attribute-case-insensitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-2.0.0.tgz", - "integrity": "sha1-lNxCLI+QmX8WvTOjZUu77AhJY7Q=", - "dev": true, - "requires": { - "postcss": "6.0.18", - "postcss-selector-parser": "2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-function": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-color-function/-/postcss-color-function-4.0.1.tgz", - "integrity": "sha1-QCs/LOvD9pR+YY+2vjZU++zvZEQ=", - "dev": true, - "requires": { - "css-color-function": "1.3.3", - "postcss": "6.0.18", - "postcss-message-helpers": "2.0.0", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-gray": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-4.1.0.tgz", - "integrity": "sha512-L4iLKQLdqChz6ZOgGb6dRxkBNw78JFYcJmBz1orHpZoeLtuhDDGegRtX9gSyfoCIM7rWZ3VNOyiqqvk83BEN+w==", - "dev": true, - "requires": { - "color": "2.0.1", - "postcss": "6.0.18", - "postcss-message-helpers": "2.0.0", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "color": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color/-/color-2.0.1.tgz", - "integrity": "sha512-ubUCVVKfT7r2w2D3qtHakj8mbmKms+tThR8gI8zEYCbUBl8/voqFGt3kgBqGwXAopgXybnkuOq+qMYCRrp4cXw==", - "dev": true, - "requires": { - "color-convert": "1.9.1", - "color-string": "1.5.2" - } - }, - "color-string": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", - "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", - "dev": true, - "requires": { - "color-name": "1.1.3", - "simple-swizzle": "0.2.2" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-hex-alpha": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-3.0.0.tgz", - "integrity": "sha1-HlPmyKyyN5Vej9CLfs2xuLgwn5U=", - "dev": true, - "requires": { - "color": "1.0.3", - "postcss": "6.0.18", - "postcss-message-helpers": "2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "color": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/color/-/color-1.0.3.tgz", - "integrity": "sha1-5I6DLYXxTvaU+0aIEcLVz+cptV0=", - "dev": true, - "requires": { - "color-convert": "1.9.1", - "color-string": "1.5.2" - } - }, - "color-string": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", - "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", - "dev": true, - "requires": { - "color-name": "1.1.3", - "simple-swizzle": "0.2.2" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-hsl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hsl/-/postcss-color-hsl-2.0.0.tgz", - "integrity": "sha1-EnA2ZvoxBDDj8wpFTawThjF9WEQ=", - "dev": true, - "requires": { - "postcss": "6.0.18", - "postcss-value-parser": "3.3.0", - "units-css": "0.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-hwb": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-hwb/-/postcss-color-hwb-3.0.0.tgz", - "integrity": "sha1-NAKxnvTYSXVAwftQcr6YY8qVVx4=", - "dev": true, - "requires": { - "color": "1.0.3", - "postcss": "6.0.18", - "postcss-message-helpers": "2.0.0", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "color": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/color/-/color-1.0.3.tgz", - "integrity": "sha1-5I6DLYXxTvaU+0aIEcLVz+cptV0=", - "dev": true, - "requires": { - "color-convert": "1.9.1", - "color-string": "1.5.2" - } - }, - "color-string": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", - "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", - "dev": true, - "requires": { - "color-name": "1.1.3", - "simple-swizzle": "0.2.2" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-rebeccapurple": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-3.0.0.tgz", - "integrity": "sha1-7rrwPTY7QwC5Z5K9MIHBntZlE9M=", - "dev": true, - "requires": { - "postcss": "6.0.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-rgb": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rgb/-/postcss-color-rgb-2.0.0.tgz", - "integrity": "sha1-FFOcinExSUtILg3RzCZf9lFLUmM=", - "dev": true, - "requires": { - "postcss": "6.0.18", - "postcss-value-parser": "3.3.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-color-rgba-fallback": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-3.0.0.tgz", - "integrity": "sha1-N9XJNToHoJJwkSqCYGu0Kg1wLAQ=", - "dev": true, - "requires": { - "postcss": "6.0.18", - "postcss-value-parser": "3.3.0", - "rgb-hex": "2.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-cssnext": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/postcss-cssnext/-/postcss-cssnext-3.1.0.tgz", - "integrity": "sha512-awPDhI4OKetcHCr560iVCoDuP6e/vn0r6EAqdWPpAavJMvkBSZ6kDpSN4b3mB3Ti57hQMunHHM8Wvx9PeuYXtA==", - "dev": true, - "requires": { - "autoprefixer": "7.2.6", - "caniuse-api": "2.0.0", - "chalk": "2.3.1", - "pixrem": "4.0.1", - "pleeease-filters": "4.0.0", - "postcss": "6.0.18", - "postcss-apply": "0.8.0", - "postcss-attribute-case-insensitive": "2.0.0", - "postcss-calc": "6.0.1", - "postcss-color-function": "4.0.1", - "postcss-color-gray": "4.1.0", - "postcss-color-hex-alpha": "3.0.0", - "postcss-color-hsl": "2.0.0", - "postcss-color-hwb": "3.0.0", - "postcss-color-rebeccapurple": "3.0.0", - "postcss-color-rgb": "2.0.0", - "postcss-color-rgba-fallback": "3.0.0", - "postcss-custom-media": "6.0.0", - "postcss-custom-properties": "6.2.0", - "postcss-custom-selectors": "4.0.1", - "postcss-font-family-system-ui": "3.0.0", - "postcss-font-variant": "3.0.0", - "postcss-image-set-polyfill": "0.3.5", - "postcss-initial": "2.0.0", - "postcss-media-minmax": "3.0.0", - "postcss-nesting": "4.2.1", - "postcss-pseudo-class-any-link": "4.0.0", - "postcss-pseudoelements": "5.0.0", - "postcss-replace-overflow-wrap": "2.0.0", - "postcss-selector-matches": "3.0.1", - "postcss-selector-not": "3.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "autoprefixer": { - "version": "7.2.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.2.6.tgz", - "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", - "dev": true, - "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000808", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.18", - "postcss-value-parser": "3.3.0" - } - }, - "caniuse-api": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-2.0.0.tgz", - "integrity": "sha1-sd21pZZrFvSNxJmERNS7xsfZ2DQ=", - "dev": true, - "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000808", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "postcss-calc": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-6.0.1.tgz", - "integrity": "sha1-PSQXG79udinUIqQ26/5t2VEfQzA=", - "dev": true, - "requires": { - "css-unit-converter": "1.1.1", - "postcss": "6.0.18", - "postcss-selector-parser": "2.2.3", - "reduce-css-calc": "2.1.4" - } - }, - "reduce-css-calc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz", - "integrity": "sha512-i/vWQbyd3aJRmip9OVSN9V6nIjLf/gg/ctxb0CpvHWtcRysFl/ngDBQD+rqavxdw/doScA3GMBXhzkHQ4GCzFQ==", - "dev": true, - "requires": { - "css-unit-converter": "1.1.1", - "postcss-value-parser": "3.3.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-custom-media": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-6.0.0.tgz", - "integrity": "sha1-vlMnhBEOyylQRPtTlaGABushpzc=", - "dev": true, - "requires": { - "postcss": "6.0.18" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-custom-properties": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-6.2.0.tgz", - "integrity": "sha512-eNR2h9T9ciKMoQEORrPjH33XeN/nuvVuxArOKmHtsFbGbNss631tgTrKou3/pmjAZbA4QQkhLIkPQkIk3WW+8w==", - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "postcss": "6.0.18" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-custom-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-4.0.1.tgz", - "integrity": "sha1-eBOC+UxS5yfvXKR3bqKt9JphE4I=", - "dev": true, - "requires": { - "postcss": "6.0.18", - "postcss-selector-matches": "3.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-font-family-system-ui": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-family-system-ui/-/postcss-font-family-system-ui-3.0.0.tgz", - "integrity": "sha512-58G/hTxMSSKlIRpcPUjlyo6hV2MEzvcVO2m4L/T7Bb2fJTG4DYYfQjQeRvuimKQh1V1sOzCIz99g+H2aFNtlQw==", - "dev": true, - "requires": { - "postcss": "6.0.18" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-font-variant": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-3.0.0.tgz", - "integrity": "sha1-CMzIj2BQuoLtjvLMdsDGprQfGD4=", - "dev": true, - "requires": { - "postcss": "6.0.18" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-image-set-polyfill": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz", - "integrity": "sha1-Dxk0E3AM8fgr05Bm7wFtZaShgYE=", - "dev": true, - "requires": { - "postcss": "6.0.18", - "postcss-media-query-parser": "0.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-import": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-11.1.0.tgz", - "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", - "dev": true, - "requires": { - "postcss": "6.0.18", - "postcss-value-parser": "3.3.0", - "read-cache": "1.0.0", - "resolve": "1.5.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-initial": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-2.0.0.tgz", - "integrity": "sha1-cnFfczbgu3k1HZnuZcSiU6hEG6Q=", - "dev": true, - "requires": { - "lodash.template": "4.4.0", - "postcss": "6.0.18" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "postcss-loader": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", - "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", - "dev": true, - "requires": { - "loader-utils": "1.1.0", - "postcss": "6.0.23", - "postcss-load-config": "2.0.0", - "schema-utils": "0.4.5" - }, - "dependencies": { - "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, "chalk": { @@ -15080,55 +12179,6 @@ "supports-color": "5.4.0" } }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - } - }, - "postcss-load-config": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", - "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", - "dev": true, - "requires": { - "cosmiconfig": "4.0.0", - "import-cwd": "2.1.0" - } - }, - "schema-utils": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", - "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", - "dev": true, - "requires": { - "ajv": "6.5.2", - "ajv-keywords": "3.1.0" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -15146,6 +12196,456 @@ } } }, + "postcss-apply": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/postcss-apply/-/postcss-apply-0.8.0.tgz", + "integrity": "sha1-FOVEu7XLbxweBIhXll15rgZrE0M=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "balanced-match": "0.4.2", + "postcss": "6.0.23" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "postcss-attribute-case-insensitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-2.0.0.tgz", + "integrity": "sha1-lNxCLI+QmX8WvTOjZUu77AhJY7Q=", + "dev": true, + "requires": { + "postcss": "6.0.23", + "postcss-selector-parser": "2.2.3" + } + }, + "postcss-calc": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-6.0.1.tgz", + "integrity": "sha1-PSQXG79udinUIqQ26/5t2VEfQzA=", + "dev": true, + "requires": { + "css-unit-converter": "1.1.1", + "postcss": "6.0.23", + "postcss-selector-parser": "2.2.3", + "reduce-css-calc": "2.1.4" + }, + "dependencies": { + "reduce-css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.4.tgz", + "integrity": "sha512-i/vWQbyd3aJRmip9OVSN9V6nIjLf/gg/ctxb0CpvHWtcRysFl/ngDBQD+rqavxdw/doScA3GMBXhzkHQ4GCzFQ==", + "dev": true, + "requires": { + "css-unit-converter": "1.1.1", + "postcss-value-parser": "3.3.0" + } + } + } + }, + "postcss-color-function": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-function/-/postcss-color-function-4.0.1.tgz", + "integrity": "sha1-QCs/LOvD9pR+YY+2vjZU++zvZEQ=", + "dev": true, + "requires": { + "css-color-function": "1.3.3", + "postcss": "6.0.23", + "postcss-message-helpers": "2.0.0", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-color-gray": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-4.1.0.tgz", + "integrity": "sha512-L4iLKQLdqChz6ZOgGb6dRxkBNw78JFYcJmBz1orHpZoeLtuhDDGegRtX9gSyfoCIM7rWZ3VNOyiqqvk83BEN+w==", + "dev": true, + "requires": { + "color": "2.0.1", + "postcss": "6.0.23", + "postcss-message-helpers": "2.0.0", + "reduce-function-call": "1.0.2" + }, + "dependencies": { + "color": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color/-/color-2.0.1.tgz", + "integrity": "sha512-ubUCVVKfT7r2w2D3qtHakj8mbmKms+tThR8gI8zEYCbUBl8/voqFGt3kgBqGwXAopgXybnkuOq+qMYCRrp4cXw==", + "dev": true, + "requires": { + "color-convert": "1.9.2", + "color-string": "1.5.2" + } + }, + "color-string": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", + "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", + "dev": true, + "requires": { + "color-name": "1.1.1", + "simple-swizzle": "0.2.2" + } + } + } + }, + "postcss-color-hex-alpha": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-3.0.0.tgz", + "integrity": "sha1-HlPmyKyyN5Vej9CLfs2xuLgwn5U=", + "dev": true, + "requires": { + "color": "1.0.3", + "postcss": "6.0.23", + "postcss-message-helpers": "2.0.0" + }, + "dependencies": { + "color": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/color/-/color-1.0.3.tgz", + "integrity": "sha1-5I6DLYXxTvaU+0aIEcLVz+cptV0=", + "dev": true, + "requires": { + "color-convert": "1.9.2", + "color-string": "1.5.2" + } + }, + "color-string": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", + "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", + "dev": true, + "requires": { + "color-name": "1.1.1", + "simple-swizzle": "0.2.2" + } + } + } + }, + "postcss-color-hsl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-hsl/-/postcss-color-hsl-2.0.0.tgz", + "integrity": "sha1-EnA2ZvoxBDDj8wpFTawThjF9WEQ=", + "dev": true, + "requires": { + "postcss": "6.0.23", + "postcss-value-parser": "3.3.0", + "units-css": "0.4.0" + } + }, + "postcss-color-hwb": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-hwb/-/postcss-color-hwb-3.0.0.tgz", + "integrity": "sha1-NAKxnvTYSXVAwftQcr6YY8qVVx4=", + "dev": true, + "requires": { + "color": "1.0.3", + "postcss": "6.0.23", + "postcss-message-helpers": "2.0.0", + "reduce-function-call": "1.0.2" + }, + "dependencies": { + "color": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/color/-/color-1.0.3.tgz", + "integrity": "sha1-5I6DLYXxTvaU+0aIEcLVz+cptV0=", + "dev": true, + "requires": { + "color-convert": "1.9.2", + "color-string": "1.5.2" + } + }, + "color-string": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", + "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", + "dev": true, + "requires": { + "color-name": "1.1.1", + "simple-swizzle": "0.2.2" + } + } + } + }, + "postcss-color-rebeccapurple": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-3.1.0.tgz", + "integrity": "sha512-212hJUk9uSsbwO5ECqVjmh/iLsmiVL1xy9ce9TVf+X3cK/ZlUIlaMdoxje/YpsL9cmUH3I7io+/G2LyWx5rg1g==", + "dev": true, + "requires": { + "postcss": "6.0.23", + "postcss-values-parser": "1.5.0" + } + }, + "postcss-color-rgb": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-rgb/-/postcss-color-rgb-2.0.0.tgz", + "integrity": "sha1-FFOcinExSUtILg3RzCZf9lFLUmM=", + "dev": true, + "requires": { + "postcss": "6.0.23", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-color-rgba-fallback": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-rgba-fallback/-/postcss-color-rgba-fallback-3.0.0.tgz", + "integrity": "sha1-N9XJNToHoJJwkSqCYGu0Kg1wLAQ=", + "dev": true, + "requires": { + "postcss": "6.0.23", + "postcss-value-parser": "3.3.0", + "rgb-hex": "2.1.0" + } + }, + "postcss-cssnext": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-cssnext/-/postcss-cssnext-3.1.0.tgz", + "integrity": "sha512-awPDhI4OKetcHCr560iVCoDuP6e/vn0r6EAqdWPpAavJMvkBSZ6kDpSN4b3mB3Ti57hQMunHHM8Wvx9PeuYXtA==", + "dev": true, + "requires": { + "autoprefixer": "7.2.6", + "caniuse-api": "2.0.0", + "chalk": "2.4.1", + "pixrem": "4.0.1", + "pleeease-filters": "4.0.0", + "postcss": "6.0.23", + "postcss-apply": "0.8.0", + "postcss-attribute-case-insensitive": "2.0.0", + "postcss-calc": "6.0.1", + "postcss-color-function": "4.0.1", + "postcss-color-gray": "4.1.0", + "postcss-color-hex-alpha": "3.0.0", + "postcss-color-hsl": "2.0.0", + "postcss-color-hwb": "3.0.0", + "postcss-color-rebeccapurple": "3.1.0", + "postcss-color-rgb": "2.0.0", + "postcss-color-rgba-fallback": "3.0.0", + "postcss-custom-media": "6.0.0", + "postcss-custom-properties": "6.3.1", + "postcss-custom-selectors": "4.0.1", + "postcss-font-family-system-ui": "3.0.0", + "postcss-font-variant": "3.0.0", + "postcss-image-set-polyfill": "0.3.5", + "postcss-initial": "2.0.0", + "postcss-media-minmax": "3.0.0", + "postcss-nesting": "4.2.1", + "postcss-pseudo-class-any-link": "4.0.0", + "postcss-pseudoelements": "5.0.0", + "postcss-replace-overflow-wrap": "2.0.0", + "postcss-selector-matches": "3.0.1", + "postcss-selector-not": "3.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.2" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "postcss-custom-media": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-6.0.0.tgz", + "integrity": "sha1-vlMnhBEOyylQRPtTlaGABushpzc=", + "dev": true, + "requires": { + "postcss": "6.0.23" + } + }, + "postcss-custom-properties": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-6.3.1.tgz", + "integrity": "sha512-zoiwn4sCiUFbr4KcgcNZLFkR6gVQom647L+z1p/KBVHZ1OYwT87apnS42atJtx6XlX2yI7N5fjXbFixShQO2QQ==", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "postcss": "6.0.23" + } + }, + "postcss-custom-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-4.0.1.tgz", + "integrity": "sha1-eBOC+UxS5yfvXKR3bqKt9JphE4I=", + "dev": true, + "requires": { + "postcss": "6.0.23", + "postcss-selector-matches": "3.0.1" + } + }, + "postcss-font-family-system-ui": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-family-system-ui/-/postcss-font-family-system-ui-3.0.0.tgz", + "integrity": "sha512-58G/hTxMSSKlIRpcPUjlyo6hV2MEzvcVO2m4L/T7Bb2fJTG4DYYfQjQeRvuimKQh1V1sOzCIz99g+H2aFNtlQw==", + "dev": true, + "requires": { + "postcss": "6.0.23" + } + }, + "postcss-font-variant": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-3.0.0.tgz", + "integrity": "sha1-CMzIj2BQuoLtjvLMdsDGprQfGD4=", + "dev": true, + "requires": { + "postcss": "6.0.23" + } + }, + "postcss-html": { + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.28.0.tgz", + "integrity": "sha512-H+ucbGVR+lsZySspOApeQU9yC6Q3t75lwJYa3Im93fKAUt5DScKOSErShC0aC7USdn2jsT1LxubcC5vYu/VJYw==", + "dev": true, + "requires": { + "htmlparser2": "3.9.2" + } + }, + "postcss-image-set-polyfill": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/postcss-image-set-polyfill/-/postcss-image-set-polyfill-0.3.5.tgz", + "integrity": "sha1-Dxk0E3AM8fgr05Bm7wFtZaShgYE=", + "dev": true, + "requires": { + "postcss": "6.0.23", + "postcss-media-query-parser": "0.2.3" + } + }, + "postcss-import": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-11.1.0.tgz", + "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", + "dev": true, + "requires": { + "postcss": "6.0.23", + "postcss-value-parser": "3.3.0", + "read-cache": "1.0.0", + "resolve": "1.8.1" + } + }, + "postcss-initial": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-2.0.0.tgz", + "integrity": "sha1-cnFfczbgu3k1HZnuZcSiU6hEG6Q=", + "dev": true, + "requires": { + "lodash.template": "4.4.0", + "postcss": "6.0.23" + } + }, + "postcss-less": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-2.0.0.tgz", + "integrity": "sha512-pPNsVnpCB13nBMOcl5GVh8JGmB0JGFjqkLUDzKdVpptFFKEe9wFdEzvh2j4lD2AD+7qcrUfw9Ta+oi5+Fw7jjQ==", + "dev": true, + "requires": { + "postcss": "5.2.18" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.4.6", + "source-map": "0.5.7", + "supports-color": "3.2.3" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + } + } + }, + "postcss-load-config": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.0.0.tgz", + "integrity": "sha512-V5JBLzw406BB8UIfsAWSK2KSwIJ5yoEIVFb4gVkXci0QdKgA24jLmHZ/ghe/GgX0lJ0/D1uUK1ejhzEY94MChQ==", + "dev": true, + "requires": { + "cosmiconfig": "4.0.0", + "import-cwd": "2.1.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-4.0.0.tgz", + "integrity": "sha512-6e5vDdrXZD+t5v0L8CrurPeybg4Fmf+FCSYxXKYVAqLUtyCSbuyqE059d0kDthTNRzKVjL7QMgNpEUlsoYH3iQ==", + "dev": true, + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.12.0", + "parse-json": "4.0.0", + "require-from-string": "2.0.2" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" + } + } + } + }, + "postcss-loader": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", + "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "postcss": "6.0.23", + "postcss-load-config": "2.0.0", + "schema-utils": "0.4.5" + } + }, "postcss-markdown": { "version": "0.28.0", "resolved": "https://registry.npmjs.org/postcss-markdown/-/postcss-markdown-0.28.0.tgz", @@ -15154,73 +12654,6 @@ "requires": { "remark": "9.0.0", "unist-util-find-all-after": "1.0.2" - }, - "dependencies": { - "remark": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark/-/remark-9.0.0.tgz", - "integrity": "sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==", - "dev": true, - "requires": { - "remark-parse": "5.0.0", - "remark-stringify": "5.0.0", - "unified": "6.1.6" - } - }, - "remark-parse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", - "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", - "dev": true, - "requires": { - "collapse-white-space": "1.0.3", - "is-alphabetical": "1.0.1", - "is-decimal": "1.0.1", - "is-whitespace-character": "1.0.1", - "is-word-character": "1.0.1", - "markdown-escapes": "1.0.1", - "parse-entities": "1.1.1", - "repeat-string": "1.6.1", - "state-toggle": "1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "1.1.0", - "unherit": "1.1.0", - "unist-util-remove-position": "1.1.1", - "vfile-location": "2.0.2", - "xtend": "4.0.1" - } - }, - "remark-stringify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-5.0.0.tgz", - "integrity": "sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w==", - "dev": true, - "requires": { - "ccount": "1.0.2", - "is-alphanumeric": "1.0.0", - "is-decimal": "1.0.1", - "is-whitespace-character": "1.0.1", - "longest-streak": "2.0.2", - "markdown-escapes": "1.0.1", - "markdown-table": "1.1.1", - "mdast-util-compact": "1.0.1", - "parse-entities": "1.1.1", - "repeat-string": "1.6.1", - "state-toggle": "1.0.0", - "stringify-entities": "1.3.1", - "unherit": "1.1.0", - "xtend": "4.0.1" - } - }, - "unist-util-find-all-after": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz", - "integrity": "sha512-nDl79mKpffXojLpCimVXnxhlH/jjaTnDuScznU9J4jjsaUtBdDbxmlc109XtcqxY4SDO0SwzngsxxW8DIISt1w==", - "dev": true, - "requires": { - "unist-util-is": "2.1.1" - } - } } }, "postcss-media-minmax": { @@ -15229,61 +12662,7 @@ "integrity": "sha1-Z1JWA3pD70C8Twdgv9BtTcadSNI=", "dev": true, "requires": { - "postcss": "6.0.18" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "postcss-media-query-parser": { @@ -15304,61 +12683,7 @@ "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", "dev": true, "requires": { - "postcss": "6.0.19" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "postcss-modules-local-by-default": { @@ -15368,61 +12693,7 @@ "dev": true, "requires": { "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.19" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "postcss-modules-scope": { @@ -15432,61 +12703,7 @@ "dev": true, "requires": { "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.19" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "postcss-modules-values": { @@ -15496,61 +12713,7 @@ "dev": true, "requires": { "icss-replace-symbols": "1.1.0", - "postcss": "6.0.19" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "postcss-nesting": { @@ -15559,61 +12722,7 @@ "integrity": "sha512-IkyWXICwagCnlaviRexi7qOdwPw3+xVVjgFfGsxmztvRVaNxAlrypOIKqDE5mxY+BVxnId1rnUKBRQoNE2VDaA==", "dev": true, "requires": { - "postcss": "6.0.18" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "postcss-pseudo-class-any-link": { @@ -15622,62 +12731,8 @@ "integrity": "sha1-kVKgYT00UHIFE+iJKFS65C0O5o4=", "dev": true, "requires": { - "postcss": "6.0.18", + "postcss": "6.0.23", "postcss-selector-parser": "2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } } }, "postcss-pseudoelements": { @@ -15686,61 +12741,7 @@ "integrity": "sha1-7vGU6NUkZFylIKlJ6V5RjoEkAss=", "dev": true, "requires": { - "postcss": "6.0.18" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "postcss-replace-overflow-wrap": { @@ -15749,61 +12750,7 @@ "integrity": "sha1-eU22+qVPjbEAhUOSqTr0V2i04ls=", "dev": true, "requires": { - "postcss": "6.0.18" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "postcss-reporter": { @@ -15812,59 +12759,36 @@ "integrity": "sha512-rBkDbaHAu5uywbCR2XE8a25tats3xSOsGNx6mppK6Q9kSFGKc/FyAzfci+fWM2l+K402p1D0pNcfDGxeje5IKg==", "dev": true, "requires": { - "chalk": "2.3.1", - "lodash": "4.17.5", + "chalk": "2.4.1", + "lodash": "4.17.10", "log-symbols": "2.2.0", - "postcss": "6.0.19" + "postcss": "6.0.23" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -15884,108 +12808,48 @@ "integrity": "sha1-t1Pv9sfArqXoN1++TN6L+QY/8UI=", "dev": true, "requires": { - "postcss": "6.0.19" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "postcss-sass": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.3.0.tgz", - "integrity": "sha512-nZJEFS2bT007CmzMjlZfZwcZKpSJ/JeFiVEdgrgvGZtAnORU+5BvN0cioNuDAVxwXHXp3hksCJzbZYPWkuw41Q==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.3.2.tgz", + "integrity": "sha512-0HgxikiZ07VKYr98KT+k7/rAzyMgZlP+3+R8vUti56T2dPdhW0OhPGDQzddxY/N2iDtBVZQqCHRDA09j5I6EWg==", "dev": true, "requires": { "gonzales-pe": "4.2.3", - "postcss": "6.0.19" + "postcss": "6.0.22" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", + "version": "6.0.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", + "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "source-map": "0.6.1", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, "source-map": { @@ -15995,9 +12859,9 @@ "dev": true }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -16006,66 +12870,12 @@ } }, "postcss-scss": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-1.0.4.tgz", - "integrity": "sha512-IFj42Hz2cBHHFvZTqkJqU08JCCM/MZU5/uNkTUZBaBFP2d4C5unw4HyCL52RfCwJb6KoVUD3eoepxMh1dfBFCQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-1.0.6.tgz", + "integrity": "sha512-4EFYGHcEw+H3E06PT/pQQri06u/1VIIPjeJQaM8skB80vZuXMhp4cSNV5azmdNkontnOID/XYWEvEEELLFB1ww==", "dev": true, "requires": { - "postcss": "6.0.19" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "postcss-selector-matches": { @@ -16075,66 +12885,14 @@ "dev": true, "requires": { "balanced-match": "0.4.2", - "postcss": "6.0.18" + "postcss": "6.0.23" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, "balanced-match": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", "dev": true - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } } } }, @@ -16145,66 +12903,14 @@ "dev": true, "requires": { "balanced-match": "0.4.2", - "postcss": "6.0.18" + "postcss": "6.0.23" }, "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, "balanced-match": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", "dev": true - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.18.tgz", - "integrity": "sha512-X8MyLi3OYI1o71u0SsefWLpGBo5xnGiK1Pn+nrZFplc671Ts7L8aPwEbPIO8AWpulK5wuaVzyM9Rw6R8o7hYBw==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } } } }, @@ -16231,6 +12937,17 @@ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", "dev": true }, + "postcss-values-parser": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-1.5.0.tgz", + "integrity": "sha512-3M3p+2gMp0AH3da530TlX8kiO1nxdTnc3C6vr8dMxRLIlh8UYkz0/wcwptSXjhtx2Fr0TySI7a+BHDQ8NL7LaQ==", + "dev": true, + "requires": { + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } + }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -16249,6 +12966,33 @@ "integrity": "sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==", "dev": true }, + "pretty-format": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.2.0.tgz", + "integrity": "sha1-OwqqY8AYpTWDNzwcs6XZbMXoMBc=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0", + "ansi-styles": "3.2.1" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.2" + } + } + } + }, "pretty-hrtime": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", @@ -16282,6 +13026,15 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, + "proxy-addr": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", + "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.6.0" + } + }, "proxy-from-env": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", @@ -16329,15 +13082,15 @@ "dev": true }, "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", + "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", "dev": true, "requires": { "bn.js": "4.11.8", "browserify-rsa": "4.0.1", - "create-hash": "1.1.3", - "parse-asn1": "5.1.0", + "create-hash": "1.2.0", + "parse-asn1": "5.1.1", "randombytes": "2.0.6" } }, @@ -16352,12 +13105,12 @@ } }, "pumpify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", - "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "duplexify": "3.5.4", + "duplexify": "3.6.0", "inherits": "2.0.3", "pump": "2.0.1" } @@ -16368,19 +13121,19 @@ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" }, "puppeteer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.5.0.tgz", - "integrity": "sha512-eELwFtFxL+uhmg4jPZOZXzSrPEYy4CaYQNbcchBbfxY+KjMpnv6XGf/aYWaQG49OTpfi2/DMziXtDM8XuJgoUA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.6.0.tgz", + "integrity": "sha512-88epdIp3lw0LxI+sIHgdgZdq/u5zRnzgU2vJGvcyuGqHQrtRUeICTexTyT1KoKhTGG0mAKFRV9c7IJ179agm7A==", "dev": true, "requires": { "debug": "3.1.0", - "extract-zip": "1.6.6", + "extract-zip": "1.6.7", "https-proxy-agent": "2.2.1", "mime": "2.3.1", "progress": "2.0.0", "proxy-from-env": "1.0.0", "rimraf": "2.6.2", - "ws": "5.2.0" + "ws": "5.2.2" }, "dependencies": { "debug": { @@ -16392,16 +13145,6 @@ "ms": "2.0.0" } }, - "https-proxy-agent": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", - "dev": true, - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - } - }, "mime": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", @@ -16433,9 +13176,9 @@ "dev": true }, "querystringify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", - "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz", + "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==", "dev": true }, "quick-lru": { @@ -16451,43 +13194,21 @@ "dev": true }, "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", + "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true } } }, @@ -16497,17 +13218,17 @@ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "randomfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.3.tgz", - "integrity": "sha512-YL6GrhrWoic0Eq8rXVbMptH7dAxCs0J+mh5Y0euNekPPYaxEmdVGim6GdoxoRzKW2yJoU8tueifS7mYxvcFDEQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { "randombytes": "2.0.6", - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "range-parser": { @@ -16549,6 +13270,29 @@ "http-errors": "1.6.2", "iconv-lite": "0.4.19", "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.4.0" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } } }, "read": { @@ -16578,93 +13322,59 @@ } }, "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "4.0.0", + "load-json-file": "1.1.0", "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "path-type": "1.1.0" } }, "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" }, "dependencies": { - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "error-ex": "1.3.1" - } - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "2.3.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "pinkie-promise": "2.0.1" } } } }, "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true, + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "readdirp": { @@ -16675,34 +13385,8 @@ "requires": { "graceful-fs": "4.1.11", "minimatch": "3.0.4", - "readable-stream": "2.3.4", + "readable-stream": "2.3.6", "set-immediate-shim": "1.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - } } }, "recast": { @@ -16731,25 +13415,17 @@ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "resolve": "1.5.0" + "resolve": "1.8.1" } }, "redent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", - "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "3.2.0", - "strip-indent": "2.0.0" - }, - "dependencies": { - "indent-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true - } + "indent-string": "2.1.0", + "strip-indent": "1.0.1" } }, "redis": { @@ -16758,14 +13434,14 @@ "integrity": "sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==", "requires": { "double-ended-queue": "2.1.0-0", - "redis-commands": "1.3.1", + "redis-commands": "1.3.5", "redis-parser": "2.6.0" } }, "redis-commands": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.1.tgz", - "integrity": "sha1-gdgm9F+pyLIBH0zXoP5ZfSQdRCs=" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.3.5.tgz", + "integrity": "sha512-foGF8u6MXGFF++1TZVC6icGXuMYPftKXt1FBT2vrfU9ZATNtZJ8duRC5d1lEfE8hyVe3jhelHGB91oB7I6qLsA==" }, "redis-mock": { "version": "0.21.0", @@ -16820,15 +13496,15 @@ "integrity": "sha1-NXdOtzW/UPtsB46DM0tHI1AgfXk=" }, "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" }, "regenerator-transform": { "version": "0.10.1", @@ -16872,7 +13548,7 @@ "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "dev": true, "requires": { - "regenerate": "1.3.3", + "regenerate": "1.4.0", "regjsgen": "0.2.0", "regjsparser": "0.1.5" } @@ -16906,6 +13582,62 @@ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", "dev": true }, + "remark": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/remark/-/remark-9.0.0.tgz", + "integrity": "sha512-amw8rGdD5lHbMEakiEsllmkdBP+/KpjW/PRK6NSGPZKCQowh0BT4IWXDAkRMyG3SB9dKPXWMviFjNusXzXNn3A==", + "dev": true, + "requires": { + "remark-parse": "5.0.0", + "remark-stringify": "5.0.0", + "unified": "6.2.0" + } + }, + "remark-parse": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-5.0.0.tgz", + "integrity": "sha512-b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==", + "dev": true, + "requires": { + "collapse-white-space": "1.0.4", + "is-alphabetical": "1.0.2", + "is-decimal": "1.0.2", + "is-whitespace-character": "1.0.2", + "is-word-character": "1.0.2", + "markdown-escapes": "1.0.2", + "parse-entities": "1.1.2", + "repeat-string": "1.6.1", + "state-toggle": "1.0.1", + "trim": "0.0.1", + "trim-trailing-lines": "1.1.1", + "unherit": "1.1.1", + "unist-util-remove-position": "1.1.2", + "vfile-location": "2.0.3", + "xtend": "4.0.1" + } + }, + "remark-stringify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-5.0.0.tgz", + "integrity": "sha512-Ws5MdA69ftqQ/yhRF9XhVV29mhxbfGhbz0Rx5bQH+oJcNhhSM6nCu1EpLod+DjrFGrU0BMPs+czVmJZU7xiS7w==", + "dev": true, + "requires": { + "ccount": "1.0.3", + "is-alphanumeric": "1.0.0", + "is-decimal": "1.0.2", + "is-whitespace-character": "1.0.2", + "longest-streak": "2.0.2", + "markdown-escapes": "1.0.2", + "markdown-table": "1.1.2", + "mdast-util-compact": "1.0.1", + "parse-entities": "1.1.2", + "repeat-string": "1.6.1", + "state-toggle": "1.0.1", + "stringify-entities": "1.3.2", + "unherit": "1.1.1", + "xtend": "4.0.1" + } + }, "remove-array-items": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/remove-array-items/-/remove-array-items-1.0.0.tgz", @@ -17010,6 +13742,14 @@ "requires": { "caller-path": "0.1.0", "resolve-from": "1.0.1" + }, + "dependencies": { + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + } } }, "requires-port": { @@ -17019,9 +13759,9 @@ "dev": true }, "resolve": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", - "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { "path-parse": "1.0.5" @@ -17034,20 +13774,12 @@ "dev": true, "requires": { "resolve-from": "3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } } }, "resolve-from": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", - "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, "resolve-url": { @@ -17094,12 +13826,12 @@ } }, "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "requires": { - "hash-base": "2.0.2", + "hash-base": "3.0.4", "inherits": "2.0.3" } }, @@ -17136,10 +13868,19 @@ "rx-lite": "4.0.8" } }, + "rxjs": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", + "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", + "dev": true, + "requires": { + "tslib": "1.9.3" + } + }, "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex": { "version": "1.1.0", @@ -17167,6 +13908,48 @@ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" }, + "schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "dev": true, + "requires": { + "ajv": "6.5.2", + "ajv-keywords": "3.2.0" + }, + "dependencies": { + "ajv": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", + "dev": true, + "requires": { + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + } + } + }, "scroll-to-anchor": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/scroll-to-anchor/-/scroll-to-anchor-1.1.0.tgz", @@ -17179,12 +13962,12 @@ "dev": true }, "selfsigned": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.2.tgz", - "integrity": "sha1-tESVgNmZKbZbEKSDiTAaZZIIh1g=", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz", + "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==", "dev": true, "requires": { - "node-forge": "0.7.1" + "node-forge": "0.7.5" } }, "semver": { @@ -17199,10 +13982,30 @@ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "debug": "2.6.9", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", + "fresh": "0.5.2", + "http-errors": "1.6.3", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" + } + }, "serialize-javascript": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.4.0.tgz", - "integrity": "sha1-fJWFFNtqwkQ6irwGLcn3iGp/YAU=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", "dev": true }, "serve-index": { @@ -17211,30 +14014,32 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { - "accepts": "1.3.4", + "accepts": "1.3.5", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "1.0.3", - "http-errors": "1.6.2", - "mime-types": "2.1.17", + "http-errors": "1.6.3", + "mime-types": "2.1.18", "parseurl": "1.3.2" } }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.2" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "set-getter": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", - "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", - "dev": true, - "requires": { - "to-object-path": "0.3.0" - } - }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", @@ -17271,18 +14076,18 @@ "dev": true }, "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, "sha.js": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz", - "integrity": "sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==", + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "shebang-command": { @@ -17335,13 +14140,13 @@ "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "dev": true, "requires": { - "is-arrayish": "0.3.1" + "is-arrayish": "0.3.2" }, "dependencies": { "is-arrayish": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.1.tgz", - "integrity": "sha1-wt/DhquqDD4zxI2z/ocFnmkGXv0=", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true } } @@ -17353,20 +14158,14 @@ "dev": true, "requires": { "@sinonjs/formatio": "2.0.0", - "diff": "3.3.1", + "diff": "3.5.0", "lodash.get": "4.4.2", - "lolex": "2.3.2", - "nise": "1.2.5", + "lolex": "2.7.1", + "nise": "1.4.2", "supports-color": "5.4.0", "type-detect": "4.0.8" }, "dependencies": { - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "supports-color": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", @@ -17394,9 +14193,9 @@ } }, "snapdragon": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", - "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { "base": "0.11.2", @@ -17405,8 +14204,8 @@ "extend-shallow": "2.0.1", "map-cache": "0.2.2", "source-map": "0.5.7", - "source-map-resolve": "0.5.1", - "use": "2.0.2" + "source-map-resolve": "0.5.2", + "use": "3.1.1" }, "dependencies": { "define-property": { @@ -17426,63 +14225,6 @@ "requires": { "is-extendable": "0.1.1" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -17506,11 +14248,34 @@ "is-descriptor": "1.0.2" } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "6.0.2" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + } } } }, @@ -17521,6 +14286,23 @@ "dev": true, "requires": { "kind-of": "3.2.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } } }, "sntp": { @@ -17540,6 +14322,16 @@ } } }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "0.10.0", + "uuid": "3.1.0" + } + }, "sockjs-client": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", @@ -17551,7 +14343,7 @@ "faye-websocket": "0.11.1", "inherits": "2.0.3", "json3": "3.3.2", - "url-parse": "1.2.0" + "url-parse": "1.4.1" }, "dependencies": { "faye-websocket": { @@ -17577,12 +14369,12 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.0.3", + "atob": "2.1.1", "decode-uri-component": "0.2.0", "resolve-url": "0.2.1", "source-map-url": "0.4.0", @@ -17610,24 +14402,35 @@ "integrity": "sha512-hX1eNBNuilj8yfFnECh0DzLgwKpBLMIvmhgEhixXNui8lMLBInTI8Kyxt++RwJnMNu7cAUo635L2+N1TxMJCzA==" }, "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-license-ids": "1.2.2" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", "dev": true }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" + } + }, "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", "dev": true }, "spdy": { @@ -17639,50 +14442,24 @@ "debug": "2.6.9", "handle-thing": "1.2.5", "http-deceiver": "1.2.7", - "safe-buffer": "5.1.1", + "safe-buffer": "5.1.2", "select-hose": "2.0.0", - "spdy-transport": "2.0.20" + "spdy-transport": "2.1.0" } }, "spdy-transport": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", - "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", + "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { "debug": "2.6.9", "detect-node": "2.0.3", "hpack.js": "2.1.6", - "obuf": "1.1.1", - "readable-stream": "2.3.4", - "safe-buffer": "5.1.1", - "wbuf": "1.7.2" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - } + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2", + "wbuf": "1.7.3" } }, "specificity": { @@ -17736,6 +14513,12 @@ "string_decoder": "0.10.31" } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, "through2": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", @@ -17755,18 +14538,18 @@ "dev": true }, "ssri": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.2.4.tgz", - "integrity": "sha512-UnEAgMZa15973iH7cUi0AHjJn1ACDIkaMyZILoqwN6yzt+4P81I8tBc5Hl+qwi5auMplZtPQsHrPBR5vJLcQtQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "5.1.2" } }, "stable": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.6.tgz", - "integrity": "sha1-kQ9dKu17Ugxud3SZwfMuE5/eyxA=", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "dev": true }, "stack-trace": { @@ -17774,10 +14557,16 @@ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" }, + "staged-git-files": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.1.tgz", + "integrity": "sha512-H89UNKr1rQJvI1c/PIR3kiAMBV23yvR7LItZiV74HWZwzt7f3YHuujJ9nJZlt58WlFox7XQsOahexwk7nTe69A==", + "dev": true + }, "state-toggle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.0.tgz", - "integrity": "sha1-0g+aYWu08MO5i5GSLSW2QKorxCU=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.1.tgz", + "integrity": "sha512-Qe8QntFrrpWTnHwvwj2FZTgv+PKIsp0B9VxLzLLbSpPXWOgRgc5LVj/aTiSfK1RqIeF9jeC1UeOH8Q8y60A7og==", "dev": true }, "static-extend": { @@ -17798,63 +14587,6 @@ "requires": { "is-descriptor": "0.1.6" } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true } } }, @@ -17870,33 +14602,7 @@ "dev": true, "requires": { "inherits": "2.0.3", - "readable-stream": "2.3.4" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - } + "readable-stream": "2.3.6" } }, "stream-combiner": { @@ -17919,42 +14625,16 @@ } }, "stream-http": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", - "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "requires": { "builtin-status-codes": "3.0.0", "inherits": "2.0.3", - "readable-stream": "2.3.4", + "readable-stream": "2.3.6", "to-arraybuffer": "1.0.1", "xtend": "4.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1" - } - } } }, "stream-shift": { @@ -18013,26 +14693,28 @@ "dev": true, "requires": { "define-properties": "1.1.2", - "es-abstract": "1.10.0", + "es-abstract": "1.12.0", "function-bind": "1.1.1" } }, "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "5.1.2" + } }, "stringify-entities": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.1.tgz", - "integrity": "sha1-sVDsLXKsTBtfMktR+2soyc3/BYw=", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", + "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", "dev": true, "requires": { - "character-entities-html4": "1.1.1", - "character-entities-legacy": "1.1.1", - "is-alphanumerical": "1.0.1", - "is-hexadecimal": "1.0.1" + "character-entities-html4": "1.1.2", + "character-entities-legacy": "1.1.2", + "is-alphanumerical": "1.0.2", + "is-hexadecimal": "1.0.2" } }, "stringify-object": { @@ -18055,10 +14737,13 @@ } }, "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } }, "strip-eof": { "version": "1.0.0", @@ -18067,10 +14752,13 @@ "dev": true }, "strip-indent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", - "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } }, "strip-json-comments": { "version": "2.0.1", @@ -18101,13 +14789,13 @@ "globby": "8.0.1", "globjoin": "0.1.4", "html-tags": "2.0.0", - "ignore": "3.3.7", + "ignore": "3.3.10", "import-lazy": "3.1.0", "imurmurhash": "0.1.4", "known-css-properties": "0.6.1", - "lodash": "4.17.5", + "lodash": "4.17.10", "log-symbols": "2.2.0", - "mathml-tag-names": "2.0.1", + "mathml-tag-names": "2.1.0", "meow": "5.0.0", "micromatch": "2.3.11", "normalize-selector": "0.2.0", @@ -18120,8 +14808,8 @@ "postcss-reporter": "5.0.0", "postcss-resolve-nested-selector": "0.1.1", "postcss-safe-parser": "3.0.1", - "postcss-sass": "0.3.0", - "postcss-scss": "1.0.4", + "postcss-sass": "0.3.2", + "postcss-scss": "1.0.6", "postcss-selector-parser": "3.1.1", "postcss-syntax": "0.28.0", "postcss-value-parser": "3.3.0", @@ -18132,7 +14820,7 @@ "style-search": "0.1.0", "sugarss": "1.0.1", "svg-tags": "1.0.0", - "table": "4.0.3" + "table": "4.0.2" }, "dependencies": { "ansi-styles": { @@ -18141,9 +14829,24 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, "autoprefixer": { "version": "8.6.5", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz", @@ -18158,21 +14861,27 @@ "postcss-value-parser": "3.3.0" } }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "caniuse-lite": "1.0.30000865", - "electron-to-chromium": "1.3.52" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, - "caniuse-lite": { - "version": "1.0.30000865", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", - "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", - "dev": true + "camelcase-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-4.2.0.tgz", + "integrity": "sha1-oqpfsa9oh1glnDLBQUJteJI7m3c=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "map-obj": "2.0.0", + "quick-lru": "1.1.0" + } }, "chalk": { "version": "2.4.1", @@ -18185,17 +14894,6 @@ "supports-color": "5.4.0" } }, - "cosmiconfig": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.5.tgz", - "integrity": "sha512-94j37OtvxS5w7qr7Ta6dt67tWdnOxigBVN4VnSxNXFez9o18PGQ0D33SchKP17r9LAcWVTYV72G6vDayAUBFIg==", - "dev": true, - "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.12.0", - "parse-json": "4.0.0" - } - }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", @@ -18205,17 +14903,23 @@ "ms": "2.0.0" } }, - "electron-to-chromium": { - "version": "1.3.52", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", - "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", - "dev": true + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } }, - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } }, "get-stdin": { "version": "6.0.0", @@ -18233,27 +14937,65 @@ "dir-glob": "2.0.0", "fast-glob": "2.2.2", "glob": "7.1.2", - "ignore": "3.3.7", + "ignore": "3.3.10", "pify": "3.0.0", "slash": "1.0.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", "dev": true }, - "js-yaml": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", - "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "is-extglob": "1.0.0" } }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "4.0.0", + "pify": "3.0.0", + "strip-bom": "3.0.0" + } + }, + "map-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "dev": true + }, "meow": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", @@ -18268,98 +15010,47 @@ "read-pkg-up": "3.0.0", "redent": "2.0.0", "trim-newlines": "2.0.0", - "yargs-parser": "10.1.0" + "yargs-parser": "10.0.0" } }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" } }, - "postcss-html": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.28.0.tgz", - "integrity": "sha512-H+ucbGVR+lsZySspOApeQU9yC6Q3t75lwJYa3Im93fKAUt5DScKOSErShC0aC7USdn2jsT1LxubcC5vYu/VJYw==", + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "htmlparser2": "3.9.2" + "error-ex": "1.3.2", + "json-parse-better-errors": "1.0.2" } }, - "postcss-less": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-2.0.0.tgz", - "integrity": "sha512-pPNsVnpCB13nBMOcl5GVh8JGmB0JGFjqkLUDzKdVpptFFKEe9wFdEzvh2j4lD2AD+7qcrUfw9Ta+oi5+Fw7jjQ==", + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "postcss": "5.2.18" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - }, - "dependencies": { - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "postcss": { - "version": "5.2.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", - "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", - "dev": true, - "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.3", - "source-map": "0.5.7", - "supports-color": "3.2.3" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "1.0.0" - } - } + "pify": "3.0.0" } }, "postcss-selector-parser": { @@ -18373,6 +15064,17 @@ "uniq": "1.0.1" } }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" + } + }, "read-pkg-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", @@ -18383,16 +15085,32 @@ "read-pkg": "3.0.0" } }, + "redent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-2.0.0.tgz", + "integrity": "sha1-wbIAe0LVfrE4kHmzyDM2OdXhzKo=", + "dev": true, + "requires": { + "indent-string": "3.2.0", + "strip-indent": "2.0.0" + } + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", "dev": true }, "supports-color": { @@ -18404,14 +15122,11 @@ "has-flag": "3.0.0" } }, - "yargs-parser": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", - "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, - "requires": { - "camelcase": "4.1.0" - } + "trim-newlines": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", + "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "dev": true } } }, @@ -18437,155 +15152,8 @@ "dev": true, "requires": { "doiuse": "4.1.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "postcss": "6.0.23" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "dev": true, - "requires": { - "caniuse-lite": "1.0.30000865", - "electron-to-chromium": "1.3.52" - } - }, - "caniuse-lite": { - "version": "1.0.30000865", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", - "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", - "dev": true - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" - } - }, - "doiuse": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/doiuse/-/doiuse-4.1.0.tgz", - "integrity": "sha512-QBvDs4nH6uJwSNwONQkBpt7SdCfjFEuQqoSkpyoUXqX7gYd9elCTVhIiIEaAFNiykwCrjIjHVcBcx1csa6EsQg==", - "dev": true, - "requires": { - "browserslist": "3.2.8", - "caniuse-lite": "1.0.30000865", - "css-rule-stream": "1.1.0", - "duplexer2": "0.0.2", - "jsonfilter": "1.1.2", - "ldjson-stream": "1.2.1", - "lodash": "4.17.5", - "multimatch": "2.1.0", - "postcss": "6.0.23", - "source-map": "0.5.7", - "through2": "0.6.5", - "yargs": "8.0.2" - } - }, - "electron-to-chromium": { - "version": "1.3.52", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", - "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - }, - "through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", - "dev": true, - "requires": { - "readable-stream": "1.0.34", - "xtend": "4.0.1" - } - }, - "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "dev": true, - "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "7.0.0" - } - } } }, "sugarss": { @@ -18594,61 +15162,7 @@ "integrity": "sha512-3qgLZytikQQEVn1/FrhY7B68gPUUGY3R1Q1vTiD5xT+Ti1DP/8iZuwFet9ONs5+bmL8pZoDQ6JrQHVgrNlK6mA==", "dev": true, "requires": { - "postcss": "6.0.19" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", - "dev": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", - "dev": true, - "requires": { - "ansi-styles": "3.2.0", - "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "postcss": { - "version": "6.0.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.19.tgz", - "integrity": "sha512-f13HRz0HtVwVaEuW6J6cOUCBLFtymhgyLPV7t4QEk2UD3twRI9IluDcQNdzQdBpiixkXj2OmzejhhTbSbDxNTg==", - "dev": true, - "requires": { - "chalk": "2.3.1", - "source-map": "0.6.1", - "supports-color": "5.2.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } + "postcss": "6.0.23" } }, "supports-color": { @@ -18674,20 +15188,20 @@ "css-select-base-adapter": "0.1.0", "css-tree": "1.0.0-alpha25", "css-url-regex": "1.1.0", - "csso": "3.5.0", + "csso": "3.5.1", "js-yaml": "3.10.0", "mkdirp": "0.5.1", "object.values": "1.0.4", "sax": "1.2.4", - "stable": "0.1.6", + "stable": "0.1.8", "unquote": "1.1.1", "util.promisify": "1.0.0" }, "dependencies": { - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, "js-yaml": { @@ -18722,61 +15236,50 @@ "resolved": "https://registry.npmjs.org/symbol/-/symbol-0.3.1.tgz", "integrity": "sha1-tvmpANSWpX8CQI8iGYwQndoGMEE=" }, + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + }, "table": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", - "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", + "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "6.1.1", - "ajv-keywords": "3.1.0", - "chalk": "2.3.1", - "lodash": "4.17.5", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.1", + "lodash": "4.17.10", "slice-ansi": "1.0.0", "string-width": "2.1.1" }, "dependencies": { - "ajv": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.1.1.tgz", - "integrity": "sha1-l41Zf7wrfQ5aXD3esUmmgvKr+g4=", - "dev": true, - "requires": { - "fast-deep-equal": "1.0.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" - } - }, "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -18784,6 +15287,25 @@ } } }, + "tapable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", + "dev": true + }, + "test-exclude": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.1.tgz", + "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "micromatch": "3.1.10", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "require-main-filename": "1.0.1" + } + }, "testpilot-ga": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/testpilot-ga/-/testpilot-ga-0.3.0.tgz", @@ -18813,32 +15335,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "requires": { - "readable-stream": "2.3.4", + "readable-stream": "2.3.6", "xtend": "4.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", - "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "5.1.1" - } - } } }, "thunky": { @@ -18853,9 +15351,9 @@ "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" }, "timers-browserify": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.6.tgz", - "integrity": "sha512-HQ3nbYRAowdVd0ckGFvmJPPCOH/CHleFN/Y0YQCX1DVaB7t+KFvisuyN09fuP8Jtp1CpfSh8O8bMkHbdbPe6Pw==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", "dev": true, "requires": { "setimmediate": "1.0.5" @@ -18889,6 +15387,23 @@ "dev": true, "requires": { "kind-of": "3.2.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } } }, "to-regex": { @@ -18911,30 +15426,20 @@ "requires": { "is-number": "3.0.0", "repeat-string": "1.6.1" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - } - } } }, "transform-ast": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.3.0.tgz", - "integrity": "sha512-/W08Nystm018XAPImV9TUhK50E5XIlE05V+WNuGugeXQ8C9Gm+Z1MT88qh8EVQIb4gEIwW0aaS2aChVgEdMVgA==", - "dev": true, + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/transform-ast/-/transform-ast-2.4.4.tgz", + "integrity": "sha512-AxjeZAcIOUO2lev2GDe3/xZ1Q0cVGjIMk5IsriTy8zbWlsEnjeB025AhkhBJHoy997mXpLd4R+kRbvnnQVuQHQ==", "requires": { - "acorn-node": "1.3.0", + "acorn-node": "1.5.2", "convert-source-map": "1.5.1", - "is-buffer": "1.1.6", - "magic-string": "0.21.3", - "merge-source-map": "1.0.4" + "dash-ast": "1.0.0", + "is-buffer": "2.0.3", + "magic-string": "0.23.2", + "merge-source-map": "1.0.4", + "nanobench": "2.1.1" } }, "trim": { @@ -18944,9 +15449,9 @@ "dev": true }, "trim-newlines": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz", - "integrity": "sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", "dev": true }, "trim-right": { @@ -18956,15 +15461,15 @@ "dev": true }, "trim-trailing-lines": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.0.tgz", - "integrity": "sha1-eu+7eAjfnWafbaLkOMrIxGradoQ=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.1.tgz", + "integrity": "sha512-bWLv9BbWbbd7mlqqs2oQYnLD/U/ZqeJeJwbO0FG2zA1aTq+HTvxfHNKFa/HGCVyJpDiioUYaBhfiT6rgk+l4mg==", "dev": true }, "trough": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.1.tgz", - "integrity": "sha1-qf2LA5Swro//guBjOgo2zK1bX4Y=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.2.tgz", + "integrity": "sha512-FHkoUZvG6Egrv9XZAyYGKEyb1JMsFphgPjoczkZC2y6W93U1jswcVURB8MUvtsahEPEVACyxD47JAL63vF4JsQ==", "dev": true }, "tslib": { @@ -19001,12 +15506,12 @@ "dev": true }, "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "version": "1.6.16", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", + "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.17" + "mime-types": "2.1.18" } }, "typedarray": { @@ -19015,15 +15520,39 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "uglify-js": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.4.tgz", + "integrity": "sha512-RiB1kNcC9RMyqwRrjXC+EjgLoXULoDnCaOnEDzUCHkBN0bHwmtF5rzDMiDWU29gu0kXCRRWwtcTAVFWRECmU2Q==", "dev": true, "requires": { - "commander": "2.13.0", + "commander": "2.16.0", "source-map": "0.6.1" }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "uglifyjs-webpack-plugin": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz", + "integrity": "sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==", + "dev": true, + "requires": { + "cacache": "10.0.4", + "find-cache-dir": "1.0.0", + "schema-utils": "0.4.5", + "serialize-javascript": "1.5.0", + "source-map": "0.6.1", + "uglify-es": "3.3.9", + "webpack-sources": "1.1.0", + "worker-farm": "1.6.0" + }, "dependencies": { "commander": { "version": "2.13.0", @@ -19036,24 +15565,16 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - } - } - }, - "uglify-js": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.10.tgz", - "integrity": "sha512-dNib7aUDNZFJNTXFyq0CDmLRVOsnY1F+IQgt2FAOdZFx2+LvKVLbbIb/fL+BYKCv3YH3bPCE/6M/JaxChtQLHQ==", - "dev": true, - "requires": { - "commander": "2.14.1", - "source-map": "0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, + "requires": { + "commander": "2.13.0", + "source-map": "0.6.1" + } } } }, @@ -19071,7 +15592,7 @@ "acorn": "4.0.13", "call-matcher": "1.0.1", "deep-equal": "1.0.1", - "espurify": "1.7.0", + "espurify": "1.8.1", "estraverse": "4.2.0", "esutils": "2.0.2", "object-assign": "4.1.1" @@ -19092,9 +15613,9 @@ "dev": true }, "unherit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.0.tgz", - "integrity": "sha1-a5qu379z3xdWrZ4xbdmBiFhAzX0=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.1.tgz", + "integrity": "sha512-+XZuV691Cn4zHsK0vkKYwBEwB74T3IZIcxrgn2E4rKwTfFyI1zCh7X7grwh9Re08fdPlarIdyWgI8aVB3F5A5g==", "dev": true, "requires": { "inherits": "2.0.3", @@ -19102,17 +15623,16 @@ } }, "unified": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/unified/-/unified-6.1.6.tgz", - "integrity": "sha512-pW2f82bCIo2ifuIGYcV12fL96kMMYgw7JKVEgh7ODlrM9rj6vXSY3BV+H6lCcv1ksxynFf582hwWLnA1qRFy4w==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz", + "integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==", "dev": true, "requires": { - "bail": "1.0.2", + "bail": "1.0.3", "extend": "3.0.1", "is-plain-obj": "1.1.0", - "trough": "1.0.1", + "trough": "1.0.2", "vfile": "2.3.0", - "x-is-function": "1.0.4", "x-is-string": "0.1.0" } }, @@ -19175,43 +15695,52 @@ "imurmurhash": "0.1.4" } }, + "unist-util-find-all-after": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz", + "integrity": "sha512-nDl79mKpffXojLpCimVXnxhlH/jjaTnDuScznU9J4jjsaUtBdDbxmlc109XtcqxY4SDO0SwzngsxxW8DIISt1w==", + "dev": true, + "requires": { + "unist-util-is": "2.1.2" + } + }, "unist-util-is": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.1.tgz", - "integrity": "sha1-DDEmKeP5YMZukx6BLT2A53AQlHs=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.2.tgz", + "integrity": "sha512-YkXBK/H9raAmG7KXck+UUpnKiNmUdB+aBGrknfQ4EreE1banuzrKABx3jP6Z5Z3fMSPMQQmeXBlKpCbMwBkxVw==", "dev": true }, "unist-util-modify-children": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-1.1.1.tgz", - "integrity": "sha1-ZtfmpEnm9nIguXarPLi166w55R0=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-1.1.2.tgz", + "integrity": "sha512-GRi04yhng1WqBf5RBzPkOtWAadcZS2gvuOgNn/cyJBYNxtTuyYqTKN0eg4rC1YJwGnzrqfRB3dSKm8cNCjNirg==", "dev": true, "requires": { - "array-iterate": "1.1.1" + "array-iterate": "1.1.2" } }, "unist-util-remove-position": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.1.tgz", - "integrity": "sha1-WoXBVV/BugwQG4ZwfRXlD6TIcbs=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.2.tgz", + "integrity": "sha512-XxoNOBvq1WXRKXxgnSYbtCF76TJrRoe5++pD4cCBsssSiWSnPEktyFrFLE8LTk3JW5mt9hB0Sk5zn4x/JeWY7Q==", "dev": true, "requires": { - "unist-util-visit": "1.3.0" + "unist-util-visit": "1.3.1" } }, "unist-util-stringify-position": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.1.tgz", - "integrity": "sha1-PMvcU2ee7W7PN3fdf14yKcG2qjw=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", + "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", "dev": true }, "unist-util-visit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.3.0.tgz", - "integrity": "sha512-9ntYcxPFtl44gnwXrQKZ5bMqXMY0ZHzUpqMFiU4zcc8mmf/jzYm8GhYgezuUlX4cJIM1zIDYaO6fG/fI+L6iiQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.3.1.tgz", + "integrity": "sha512-0fdB9EQJU0tho5tK0VzOJzAQpPv2LyLZ030b10GxuzAWEfvd54mpY7BMjQ1L69k2YNvL+SvxRzH0yUIehOO8aA==", "dev": true, "requires": { - "unist-util-is": "2.1.1" + "unist-util-is": "2.1.2" } }, "units-css": { @@ -19272,12 +15801,6 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true } } }, @@ -19324,22 +15847,20 @@ "querystring": "0.2.0" } }, + "url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", + "dev": true + }, "url-parse": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.2.0.tgz", - "integrity": "sha512-DT1XbYAfmQP65M/mE6OALxmXzZ/z1+e5zk2TcSKe/KiYbNGZxgtttzC0mR/sjopbpOXcbniq7eIKmocJnUWlEw==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.1.tgz", + "integrity": "sha512-x95Td74QcvICAA0+qERaVkRpTGKyBHHYdwL2LXZm5t/gBtCB9KQSO/0zQgSTYEV1p0WcvSg79TLNPSvd5IDJMQ==", "dev": true, "requires": { - "querystringify": "1.0.0", + "querystringify": "2.0.0", "requires-port": "1.0.0" - }, - "dependencies": { - "querystringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", - "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=", - "dev": true - } } }, "urlsafe-base64": { @@ -19349,98 +15870,10 @@ "dev": true }, "use": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", - "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", - "dev": true, - "requires": { - "define-property": "0.2.5", - "isobject": "3.0.1", - "lazy-cache": "2.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "lazy-cache": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", - "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", - "dev": true, - "requires": { - "set-getter": "0.1.0" - } - } - } + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true }, "utcstring": { "version": "0.1.0", @@ -19448,20 +15881,12 @@ "integrity": "sha1-Qw/VEKt/yVtdWRDJAteYgMIIQ2s=" }, "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dev": true, "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } + "inherits": "2.0.3" } }, "util-deprecate": { @@ -19503,52 +15928,16 @@ "requires": { "loader-utils": "1.1.0", "schema-utils": "0.4.5" - }, - "dependencies": { - "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", - "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", - "dev": true, - "requires": { - "ajv": "6.5.2", - "ajv-keywords": "3.1.0" - } - } } }, "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "1.0.2", - "spdx-expression-parse": "1.0.4" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "validator": { @@ -19569,23 +15958,31 @@ "requires": { "is-buffer": "1.1.6", "replace-ext": "1.0.0", - "unist-util-stringify-position": "1.1.1", - "vfile-message": "1.0.0" + "unist-util-stringify-position": "1.1.2", + "vfile-message": "1.0.1" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } }, "vfile-location": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.2.tgz", - "integrity": "sha1-02dcWch3SY5JK0dW/2Xkrxp1IlU=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.3.tgz", + "integrity": "sha512-zM5/l4lfw1CBoPx3Jimxoc5RNDAHHpk6AM6LM0pTIkm5SUSsx8ZekZ0PVdf0WEZ7kjlhSt7ZlqbRL6Cd6dBs6A==", "dev": true }, "vfile-message": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.0.0.tgz", - "integrity": "sha512-HPREhzTOB/sNDc9/Mxf8w0FmHnThg5CRSJdR9VRFkD2riqYWs+fuXlj5z8mIpv2LrD7uU41+oPWFOL4Mjlf+dw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.0.1.tgz", + "integrity": "sha512-vSGCkhNvJzO6VcWC6AlJW4NtYOVtS+RgCaqFIYUjoGIlHnFL+i0LbtYvonDWOMcB97uTPT4PRsyYY7REWC9vug==", "dev": true, "requires": { - "unist-util-stringify-position": "1.1.1" + "unist-util-stringify-position": "1.1.2" } }, "viewport-dimensions": { @@ -19594,12 +15991,6 @@ "integrity": "sha1-3nQHR9tTh/0XJfUXXpG6x2r982w=", "dev": true }, - "vlq": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", - "dev": true - }, "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", @@ -19609,21 +16000,32 @@ "indexof": "0.0.1" } }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "2.0.4", + "graceful-fs": "4.1.11", + "neo-async": "2.5.1" + } + }, "wayfarer": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/wayfarer/-/wayfarer-6.6.3.tgz", - "integrity": "sha512-DiScqFrKfETMeJ0OTmSv9Cncw/Yq3+pSs2+AlqLvgINpLlbnyts8dvFEdX3ggHdpt1nmQ7YE26mfpHXBowo0yQ==", + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/wayfarer/-/wayfarer-6.6.4.tgz", + "integrity": "sha512-5ZRE4iwcIYytikTN9somy5oz/K7hEPK0YfrjCEN6zr5vlqadJ+r+GQmDzsV5zg5aW0qZvctxo443B1YFWSywpw==", "requires": { "xtend": "4.0.1" } }, "wbuf": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", - "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "1.0.0" + "minimalistic-assert": "1.0.1" } }, "web-streams-polyfill": { @@ -19646,10 +16048,10 @@ "acorn": "5.7.1", "acorn-dynamic-import": "3.0.0", "ajv": "6.5.2", - "ajv-keywords": "3.1.0", + "ajv-keywords": "3.2.0", "chrome-trace-event": "1.0.0", "enhanced-resolve": "4.1.0", - "eslint-scope": "3.7.1", + "eslint-scope": "3.7.3", "json-parse-better-errors": "1.0.2", "loader-runner": "2.3.0", "loader-utils": "1.1.0", @@ -19665,21 +16067,6 @@ "webpack-sources": "1.1.0" }, "dependencies": { - "acorn": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", - "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", - "dev": true - }, - "acorn-dynamic-import": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", - "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", - "dev": true, - "requires": { - "acorn": "5.7.1" - } - }, "ajv": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", @@ -19692,925 +16079,23 @@ "uri-js": "4.2.2" } }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", "dev": true }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.1", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "chokidar": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", - "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", - "dev": true, - "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.2.4", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "lodash.debounce": "4.0.8", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.1.0" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "tapable": "1.0.0" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - } - } - }, - "fsevents": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", - "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", - "dev": true, - "optional": true, - "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.10.0" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "dev": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.2" - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "dev": true, - "optional": true - }, - "semver": { - "version": "5.5.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true - } - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "2.1.1" - } - } - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "1.1.6" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.1", - "to-regex": "3.0.2" - } - }, - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", - "dev": true, - "optional": true - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "1.1.0" - } - }, - "schema-utils": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", - "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", - "dev": true, - "requires": { - "ajv": "6.5.2", - "ajv-keywords": "3.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "tapable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", - "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", - "dev": true - }, - "uglifyjs-webpack-plugin": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz", - "integrity": "sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==", - "dev": true, - "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "schema-utils": "0.4.5", - "serialize-javascript": "1.4.0", - "source-map": "0.6.1", - "uglify-es": "3.3.9", - "webpack-sources": "1.1.0", - "worker-farm": "1.6.0" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "2.0.4", - "graceful-fs": "4.1.11", - "neo-async": "2.5.1" - } } } }, @@ -20645,7 +16130,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, "chalk": { @@ -20665,17 +16150,6 @@ "integrity": "sha512-9ZTaoBaePSCFvNlNGrsyI8ZVACP2svUtq0DkM7t4K2ClAa96sqOIRjAzDTc8zXzFt1cZR46rRzLTiHFSJ+Qw0g==", "dev": true }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - } - }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -20686,18 +16160,7 @@ "path-key": "2.0.1", "semver": "5.5.0", "shebang-command": "1.2.0", - "which": "1.3.0" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "tapable": "1.0.0" + "which": "1.3.1" } }, "external-editor": { @@ -20711,12 +16174,6 @@ "tmp": "0.0.33" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "iconv-lite": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", @@ -20732,13 +16189,13 @@ "integrity": "sha512-tISQWRwtcAgrz+SHPhTH7d3e73k31gsOy6i1csonLc0u1dVK/wYvuOnFeiWqC5OXFIYbmrIFInef31wbT8MEJg==", "dev": true, "requires": { - "ansi-escapes": "3.0.0", + "ansi-escapes": "3.1.0", "chalk": "2.4.1", "cli-cursor": "2.1.0", "cli-width": "2.2.0", "external-editor": "3.0.0", "figures": "2.0.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "mute-stream": "0.0.7", "run-async": "2.3.0", "rxjs": "6.2.1", @@ -20747,15 +16204,6 @@ "through": "2.3.8" } }, - "rxjs": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", - "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", - "dev": true, - "requires": { - "tslib": "1.9.3" - } - }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -20774,12 +16222,6 @@ "has-flag": "3.0.0" } }, - "tapable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", - "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", - "dev": true - }, "yargs": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", @@ -20789,7 +16231,7 @@ "cliui": "4.1.0", "decamelize": "1.2.0", "find-up": "2.1.0", - "get-caller-file": "1.0.2", + "get-caller-file": "1.0.3", "os-locale": "2.1.0", "require-directory": "2.1.1", "require-main-filename": "1.0.1", @@ -20823,7 +16265,7 @@ "path-is-absolute": "1.0.1", "range-parser": "1.2.0", "url-join": "4.0.0", - "webpack-log": "1.1.2" + "webpack-log": "1.2.0" }, "dependencies": { "mime": { @@ -20831,57 +16273,45 @@ "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", "dev": true - }, - "url-join": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", - "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", - "dev": true } } }, "webpack-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.1.2.tgz", - "integrity": "sha512-B53SD4N4BHpZdUwZcj4st2QT7gVfqZtqHDruC1N+K2sciq0Rt/3F1Dx6RlylVkcrToMLTaiaeT48k9Lq4iDVDA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz", + "integrity": "sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==", "dev": true, "requires": { - "chalk": "2.3.1", + "chalk": "2.4.1", "log-symbols": "2.2.0", - "loglevelnext": "1.0.3", + "loglevelnext": "1.0.5", "uuid": "3.1.0" }, "dependencies": { "ansi-styles": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", - "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "1.9.2" } }, "chalk": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", - "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.0", + "ansi-styles": "3.2.1", "escape-string-regexp": "1.0.5", - "supports-color": "5.2.0" + "supports-color": "5.4.0" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, "supports-color": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", - "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "3.0.0" @@ -20896,16 +16326,8 @@ "dev": true, "requires": { "fs-extra": "0.30.0", - "lodash": "4.17.5", + "lodash": "4.17.10", "tapable": "1.0.0" - }, - "dependencies": { - "tapable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", - "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", - "dev": true - } } }, "webpack-sources": { @@ -20932,18 +16354,10 @@ "integrity": "sha1-GE/d6xb5Yno9TGGHylMZ6WIOn/Y=", "dev": true, "requires": { - "escodegen": "1.9.0", + "escodegen": "1.10.0", "esprima": "4.0.0", "estraverse": "4.2.0", "unassert": "1.5.1" - }, - "dependencies": { - "esprima": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true - } } }, "websocket-driver": { @@ -20952,7 +16366,7 @@ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "dev": true, "requires": { - "http-parser-js": "0.4.10", + "http-parser-js": "0.4.13", "websocket-extensions": "0.1.3" } }, @@ -20967,52 +16381,30 @@ "resolved": "https://registry.npmjs.org/websocket-stream/-/websocket-stream-5.1.2.tgz", "integrity": "sha512-lchLOk435iDWs0jNuL+hiU14i3ERSrMA0IKSiJh7z6X/i4XNsutBZrtqu2CPOZuA4G/zabiqVAos0vW+S7GEVw==", "requires": { - "duplexify": "3.5.4", + "duplexify": "3.6.0", "inherits": "2.0.3", "readable-stream": "2.3.6", - "safe-buffer": "5.1.1", + "safe-buffer": "5.1.2", "ws": "3.3.3", "xtend": "4.0.1" }, "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "5.1.1" - } - }, "ws": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { "async-limiter": "1.0.0", - "safe-buffer": "5.1.1", + "safe-buffer": "5.1.2", "ultron": "1.1.1" } } } }, "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "2.0.0" @@ -21113,19 +16505,13 @@ } }, "ws": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.0.tgz", - "integrity": "sha512-c18dMeW+PEQdDFzkhDsnBAlS4Z8KGStBQQUcQ5mf7Nf689jyGk0594L+i9RaQuf4gog6SvWLJorz2NfSaqxZ7w==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", "requires": { "async-limiter": "1.0.0" } }, - "x-is-function": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/x-is-function/-/x-is-function-1.0.4.tgz", - "integrity": "sha1-XSlNw9Joy90GJYDgxd93o5HR+h4=", - "dev": true - }, "x-is-string": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", @@ -21137,12 +16523,6 @@ "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.1.0.tgz", "integrity": "sha512-rx3GzJlgEeZ08MIcDsU2vY2B1QEriUKJTSiNHHUIem6eg9pzVOr2TL3Y4Pd6TMAM5D5azGjcxqI62piITBDHVg==" }, - "xml-char-classes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", - "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=", - "dev": true - }, "xml2js": { "version": "0.4.17", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", @@ -21157,7 +16537,7 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", "requires": { - "lodash": "4.17.5" + "lodash": "4.17.10" } }, "xtend": { @@ -21178,31 +16558,40 @@ "dev": true }, "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz", + "integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==", "dev": true, "requires": { - "camelcase": "4.1.0", - "cliui": "3.2.0", + "cliui": "4.1.0", "decamelize": "1.2.0", - "get-caller-file": "1.0.2", + "find-up": "2.1.0", + "get-caller-file": "1.0.3", "os-locale": "2.1.0", - "read-pkg-up": "2.0.0", "require-directory": "2.1.1", "require-main-filename": "1.0.1", "set-blocking": "2.0.0", "string-width": "2.1.1", "which-module": "2.0.0", "y18n": "3.2.1", - "yargs-parser": "7.0.0" + "yargs-parser": "9.0.2" + }, + "dependencies": { + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } } }, "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true, + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.0.0.tgz", + "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", "requires": { "camelcase": "4.1.0" } @@ -21222,12 +16611,12 @@ "integrity": "sha512-txj2+d99KbSg3+GvFawb04vwB7dnIvERzxfndOogbiumKlKKbMR+zFyHInZfdGXDswIo7ce3ZExxD4sb8mD87g==", "dev": true, "requires": { - "acorn": "5.4.1", + "acorn": "5.7.1", "convert-source-map": "1.5.1", - "hyperx": "2.3.3", - "on-load": "3.3.4", + "hyperx": "2.4.0", + "on-load": "3.4.1", "through2": "2.0.3", - "transform-ast": "2.3.0" + "transform-ast": "2.4.4" } } } diff --git a/server/bin/prod.js b/server/bin/prod.js index a193d84c..72acecd5 100644 --- a/server/bin/prod.js +++ b/server/bin/prod.js @@ -18,8 +18,10 @@ routes(app); app.use( express.static(path.resolve(__dirname, '../../dist/'), { - setHeaders: function(res) { - res.set('Cache-Control', 'public, max-age=31536000, immutable'); + setHeaders: function(res, path) { + if (!/serviceWorker\.js$/.test(path)) { + res.set('Cache-Control', 'public, max-age=31536000, immutable'); + } res.removeHeader('Pragma'); } }) diff --git a/webpack.config.js b/webpack.config.js index 540afc90..af14de58 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -3,7 +3,7 @@ const webpack = require('webpack'); const CopyPlugin = require('copy-webpack-plugin'); const ManifestPlugin = require('webpack-manifest-plugin'); const VersionPlugin = require('./build/version_plugin'); -const MiniCssExtractPlugin = require("mini-css-extract-plugin"); +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); const webJsOptions = { babelrc: false, @@ -12,6 +12,18 @@ const webJsOptions = { plugins: ['yo-yoify'] }; +const serviceWorker = { + target: 'webworker', + entry: { + serviceWorker: './app/serviceWorker.js' + }, + output: { + filename: '[name].js', + path: path.resolve(__dirname, 'dist'), + publicPath: '/' + } +}; + const web = { target: 'web', entry: { @@ -193,29 +205,19 @@ const web = { } }; -const serviceWorker = { - target: 'webworker', - entry: { - serviceWorker: './app/serviceWorker.js' - }, - output: { - filename: '[name].js', - path: path.resolve(__dirname, 'dist'), - publicPath: '/' - } -} - -module.exports = (env, argv) => { +module.exports = () => { + //(env, argv) => { // TODO: why are styles not output in 'production' mode? - const mode = 'development' //argv.mode || 'production'; + const mode = 'development'; //argv.mode || 'production'; console.error(`mode: ${mode}`); web.mode = serviceWorker.mode = mode; if (mode === 'development') { - web.devtool = 'inline-source-map'; - web.devServer.before = require('./server/bin/dev'); - web.entry.tests = ['./test/frontend/index.js']; // istanbul instruments the source for code coverage webJsOptions.plugins.push('istanbul'); + web.devServer.before = require('./server/bin/dev'); + web.entry.tests = ['./test/frontend/index.js']; + web.devtool = 'inline-source-map'; + serviceWorker.devtool = 'inline-source-map'; } - return [web, serviceWorker] -} + return [serviceWorker, web]; +}; From 787d22776116444f55ed65c101d20402172f976e Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Fri, 13 Jul 2018 11:13:09 -0700 Subject: [PATCH 037/368] got webpack production mode running --- .vscode/settings.json | 2 + app/fileReceiver.js | 4 +- app/serviceWorker.js | 2 + package-lock.json | 124 ++++++++---------------------------------- package.json | 2 +- server/layout.js | 3 +- webpack.config.js | 52 +++++++----------- 7 files changed, 51 insertions(+), 138 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..7a73a41b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/app/fileReceiver.js b/app/fileReceiver.js index bdef873e..5ee9eb4b 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -104,6 +104,7 @@ export default class FileReceiver extends Nanobus { request: 'init', id: this.fileInfo.id, filename: this.fileInfo.name, + type: this.fileInfo.type, key: this.fileInfo.secretKey, requiresPassword: this.fileInfo.requiresPassword, password: this.fileInfo.password, @@ -128,7 +129,6 @@ export default class FileReceiver extends Nanobus { a.href = downloadUrl; document.body.appendChild(a); a.click(); - URL.revokeObjectURL(downloadUrl); } let prog = 0; @@ -139,7 +139,7 @@ export default class FileReceiver extends Nanobus { }); prog = msg.progress; onprogress([prog, this.fileInfo.size]); - await delay(); + await delay(1000); } this.downloadRequest = null; diff --git a/app/serviceWorker.js b/app/serviceWorker.js index f592b30f..e590abe3 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -34,6 +34,7 @@ async function decryptStream(request) { const headers = { 'Content-Disposition': 'attachment; filename=' + file.filename, + 'Content-Type': file.type, 'Content-Length': file.size }; @@ -61,6 +62,7 @@ self.onmessage = event => { const info = { keychain: new Keychain(event.data.key), filename: event.data.filename, + type: event.data.type, size: event.data.size, progress: 0, cancelled: false diff --git a/package-lock.json b/package-lock.json index 5c1a3714..ba2104a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -394,96 +394,6 @@ "long": "3.2.0" } }, - "@webpack-contrib/schema-utils": { - "version": "1.0.0-beta.0", - "resolved": "https://registry.npmjs.org/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz", - "integrity": "sha512-LonryJP+FxQQHsjGBi6W786TQB1Oym+agTpY0c+Kj8alnIw+DLUJb6SI8Y1GHGhLCH1yPRrucjObUmxNICQ1pg==", - "dev": true, - "requires": { - "ajv": "6.5.2", - "ajv-keywords": "3.2.0", - "chalk": "2.4.1", - "strip-ansi": "4.0.0", - "text-table": "0.2.0", - "webpack-log": "1.2.0" - }, - "dependencies": { - "ajv": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", - "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", - "dev": true, - "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" - } - }, - "ajv-keywords": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "1.9.2" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" - } - }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "3.0.0" - } - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, "JSONStream": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-0.8.4.tgz", @@ -4588,6 +4498,29 @@ "loader-utils": "1.1.0" } }, + "extract-text-webpack-plugin": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz", + "integrity": "sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==", + "dev": true, + "requires": { + "async": "2.6.1", + "loader-utils": "1.1.0", + "schema-utils": "0.4.5", + "webpack-sources": "1.1.0" + }, + "dependencies": { + "async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", + "dev": true, + "requires": { + "lodash": "4.17.10" + } + } + } + }, "extract-zip": { "version": "1.6.7", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", @@ -8007,17 +7940,6 @@ "dom-walk": "0.1.1" } }, - "mini-css-extract-plugin": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.1.tgz", - "integrity": "sha512-XWuB3G61Rtasq/gLe7cp5cuozehE6hN+E4sxCamRR/WDiHTg+f7ZIAS024r8UJQffY+e2gGELXQZgQoFDfNDCg==", - "dev": true, - "requires": { - "@webpack-contrib/schema-utils": "1.0.0-beta.0", - "loader-utils": "1.1.0", - "webpack-sources": "1.1.0" - } - }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", diff --git a/package.json b/package.json index fabeb7f2..0fb687ff 100644 --- a/package.json +++ b/package.json @@ -77,6 +77,7 @@ "eslint-plugin-security": "^1.4.0", "expose-loader": "^0.7.5", "extract-loader": "^2.0.1", + "extract-text-webpack-plugin": "^4.0.0-beta.0", "fast-text-encoding": "^1.0.0", "file-loader": "^1.1.11", "fluent-intl-polyfill": "^0.1.0", @@ -86,7 +87,6 @@ "http_ece": "^1.0.5", "husky": "^0.14.3", "lint-staged": "^7.2.0", - "mini-css-extract-plugin": "^0.4.1", "mocha": "^5.2.0", "nanobus": "^4.3.2", "nanotiming": "^7.3.1", diff --git a/server/layout.js b/server/layout.js index 51baa9f5..26438d79 100644 --- a/server/layout.js +++ b/server/layout.js @@ -30,7 +30,7 @@ module.exports = function(state, body = '') { ${state.title} - + @@ -67,7 +67,6 @@ module.exports = function(state, body = '') { ${firaTag} - diff --git a/webpack.config.js b/webpack.config.js index af14de58..fd88d4d9 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -3,7 +3,7 @@ const webpack = require('webpack'); const CopyPlugin = require('copy-webpack-plugin'); const ManifestPlugin = require('webpack-manifest-plugin'); const VersionPlugin = require('./build/version_plugin'); -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); const webJsOptions = { babelrc: false, @@ -121,16 +121,17 @@ const web = { { // creates style.css with all styles test: /\.css$/, - use: [ - MiniCssExtractPlugin.loader, - { - loader: 'css-loader', - options: { - importLoaders: 1 - } - }, - 'postcss-loader' - ] + use: ExtractTextPlugin.extract({ + use: [ + { + loader: 'css-loader', + options: { + importLoaders: 1 + } + }, + 'postcss-loader' + ] + }) }, { // creates a js script for each ftl @@ -164,17 +165,6 @@ const web = { } ] }, - optimization: { - splitChunks: { - cacheGroups: { - style: { - name: 'style', - test: /\.css$/, - chunks: 'all' - } - } - } - }, plugins: [ new CopyPlugin([ { @@ -185,13 +175,14 @@ const web = { new webpack.IgnorePlugin(/dist/), // used in common/*.js new webpack.IgnorePlugin(/require-from-string/), // used in common/locales.js new webpack.HashedModuleIdsPlugin(), - new MiniCssExtractPlugin({ - filename: '[name].[contenthash:8].css' + new ExtractTextPlugin({ + filename: '[name].[hash:8].css' }), new VersionPlugin(), new ManifestPlugin() // used by server side to resolve hashed assets ], devServer: { + before: require('./server/bin/dev'), compress: true, hot: false, host: '0.0.0.0', @@ -205,19 +196,16 @@ const web = { } }; -module.exports = () => { - //(env, argv) => { - // TODO: why are styles not output in 'production' mode? - const mode = 'development'; //argv.mode || 'production'; +module.exports = (env, argv) => { + const mode = argv.mode || 'production'; console.error(`mode: ${mode}`); web.mode = serviceWorker.mode = mode; if (mode === 'development') { // istanbul instruments the source for code coverage webJsOptions.plugins.push('istanbul'); - web.devServer.before = require('./server/bin/dev'); web.entry.tests = ['./test/frontend/index.js']; - web.devtool = 'inline-source-map'; - serviceWorker.devtool = 'inline-source-map'; + web.devtool = 'source-map'; + serviceWorker.devtool = 'source-map'; } - return [serviceWorker, web]; + return [web, serviceWorker]; }; From 2a63a5b103602b13dd03d696198abaf056d84017 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Fri, 13 Jul 2018 11:36:51 -0700 Subject: [PATCH 038/368] sourcemaps for prod cuz why not --- webpack.config.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webpack.config.js b/webpack.config.js index fd88d4d9..349f41e0 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -21,7 +21,8 @@ const serviceWorker = { filename: '[name].js', path: path.resolve(__dirname, 'dist'), publicPath: '/' - } + }, + devtool: 'source-map' }; const web = { @@ -181,6 +182,7 @@ const web = { new VersionPlugin(), new ManifestPlugin() // used by server side to resolve hashed assets ], + devtool: 'source-map', devServer: { before: require('./server/bin/dev'), compress: true, @@ -204,8 +206,6 @@ module.exports = (env, argv) => { // istanbul instruments the source for code coverage webJsOptions.plugins.push('istanbul'); web.entry.tests = ['./test/frontend/index.js']; - web.devtool = 'source-map'; - serviceWorker.devtool = 'source-map'; } return [web, serviceWorker]; }; From f4f8332f96b34f288c75645229ad6df465505932 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Fri, 13 Jul 2018 17:05:19 -0700 Subject: [PATCH 039/368] WIP on shimming streams in firefox --- app/ece.js | 12 ++++++++++-- app/serviceWorker.js | 5 +++-- app/transformStream.js | 25 +++++++++++++++++++++++++ package-lock.json | 11 ++++++----- package.json | 4 ++-- 5 files changed, 46 insertions(+), 11 deletions(-) create mode 100644 app/transformStream.js diff --git a/app/ece.js b/app/ece.js index 9dbc6948..631116a9 100644 --- a/app/ece.js +++ b/app/ece.js @@ -1,4 +1,12 @@ -require('buffer'); +import 'buffer'; +import TransformStream from './transformStream'; +import { ReadableStream as ReadableStreamPony } from 'web-streams-ponyfill'; +try { + new ReadableStream().pipeThrough(new TransformStream()); +} catch (e) { + // eslint-disable-next-line no-global-assign + ReadableStream = ReadableStreamPony; +} const NONCE_LENGTH = 12; const TAG_LENGTH = 16; @@ -316,7 +324,7 @@ class StreamSlicer { /* input: a blob or a ReadableStream containing data to be transformed -key: Uint8Array containing key of size KEY_LENGTH +key: Uint8Array containing key of size KEY_LENGTH mode: string, either 'encrypt' or 'decrypt' rs: int containing record size, optional salt: ArrayBuffer containing salt of KEY_LENGTH length, optional diff --git a/app/serviceWorker.js b/app/serviceWorker.js index e590abe3..f017e433 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -1,5 +1,6 @@ import Keychain from './keychain'; import { downloadStream } from './api'; +import TransformStream from './transformStream'; let noSave = false; const map = new Map(); @@ -37,8 +38,8 @@ async function decryptStream(request) { 'Content-Type': file.type, 'Content-Length': file.size }; - - return new Response(decrypted, { headers }); + const body = decrypted.local ? decrypted.nativeReadable : decrypted; + return new Response(body, { headers }); } catch (e) { if (noSave) { return new Response(null, { status: e.message }); diff --git a/app/transformStream.js b/app/transformStream.js new file mode 100644 index 00000000..f0dc1605 --- /dev/null +++ b/app/transformStream.js @@ -0,0 +1,25 @@ +/* global TransformStream */ +import { createReadableStreamWrapper } from '@mattiasbuelens/web-streams-adapter'; +import { TransformStream as TransformStreamPony } from 'web-streams-ponyfill'; + +const toNative = createReadableStreamWrapper(ReadableStream); + +class TransformStreamLocal { + constructor(transformer) { + this.stream = new TransformStreamPony(transformer); + this.local = true; + } + get nativeReadable() { + return toNative(this.stream.readable); + } + get readable() { + return this.stream.readable; + } + get writable() { + return this.stream.writable; + } +} + +export default (typeof TransformStream === 'function' + ? TransformStream + : TransformStreamLocal); diff --git a/package-lock.json b/package-lock.json index a141807d..86861d71 100644 --- a/package-lock.json +++ b/package-lock.json @@ -91,7 +91,8 @@ "@mattiasbuelens/web-streams-adapter": { "version": "0.1.0-alpha.1", "resolved": "https://registry.npmjs.org/@mattiasbuelens/web-streams-adapter/-/web-streams-adapter-0.1.0-alpha.1.tgz", - "integrity": "sha512-8YK2ZY6CAgrzFGfW2uPyNDMYvh7OmWjrlbdP+GeHiMJhzPF3XwrQaHyLQ4IZqGTj8NW879ttfbcqbLqQxWvtsw==" + "integrity": "sha512-8YK2ZY6CAgrzFGfW2uPyNDMYvh7OmWjrlbdP+GeHiMJhzPF3XwrQaHyLQ4IZqGTj8NW879ttfbcqbLqQxWvtsw==", + "dev": true }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", @@ -16276,10 +16277,10 @@ "minimalistic-assert": "1.0.1" } }, - "web-streams-polyfill": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-1.3.2.tgz", - "integrity": "sha1-NxkkXpCSgtk5Z4JfRLzVUOnAOZU=", + "web-streams-ponyfill": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/web-streams-ponyfill/-/web-streams-ponyfill-1.4.2.tgz", + "integrity": "sha512-LCHW+fE2UBJ2vjhqJujqmoxh1ytEDEr0dPO3CabMdMDJPKmsaxzS90V1Ar6LtNE5VHLqxR4YMEj1i4lzMAccIA==", "dev": true }, "webpack": { diff --git a/package.json b/package.json index 0fb687ff..f7f9bb87 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ }, "devDependencies": { "@dannycoates/webpack-dev-server": "^3.1.4", + "@mattiasbuelens/web-streams-adapter": "0.1.0-alpha.1", "asmcrypto.js": "^0.22.0", "babel-core": "^6.26.3", "babel-loader": "^7.1.4", @@ -112,7 +113,7 @@ "svgo-loader": "^2.1.0", "testpilot-ga": "^0.3.0", "val-loader": "^1.1.1", - "web-streams-polyfill": "^1.3.2", + "web-streams-ponyfill": "^1.4.2", "webpack": "^4.15.1", "webpack-cli": "^3.0.8", "webpack-dev-middleware": "^3.1.3", @@ -120,7 +121,6 @@ "webpack-unassert-loader": "^1.2.0" }, "dependencies": { - "@mattiasbuelens/web-streams-adapter": "0.1.0-alpha.1", "aws-sdk": "^2.266.1", "babel-polyfill": "^6.26.0", "choo": "^6.12.1", From f58b6194cea7b52b2de66f6ead18df165b6b1923 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Tue, 17 Jul 2018 11:40:01 -0700 Subject: [PATCH 040/368] updated streams ponyfill --- app/ece.js | 14 ++++---------- app/serviceWorker.js | 6 +++--- app/streams.js | 35 +++++++++++++++++++++++++++++++++++ app/transformStream.js | 25 ------------------------- 4 files changed, 42 insertions(+), 38 deletions(-) create mode 100644 app/streams.js delete mode 100644 app/transformStream.js diff --git a/app/ece.js b/app/ece.js index 631116a9..75cd3aa8 100644 --- a/app/ece.js +++ b/app/ece.js @@ -1,12 +1,8 @@ import 'buffer'; -import TransformStream from './transformStream'; -import { ReadableStream as ReadableStreamPony } from 'web-streams-ponyfill'; -try { - new ReadableStream().pipeThrough(new TransformStream()); -} catch (e) { - // eslint-disable-next-line no-global-assign - ReadableStream = ReadableStreamPony; -} +import { + TStream as TransformStream, + RStream as ReadableStream +} from './streams'; const NONCE_LENGTH = 12; const TAG_LENGTH = 16; @@ -360,14 +356,12 @@ export default class ECE { new BlobSlicer(this.input, this.rs, this.mode) ); } else { - // eslint-disable-next-line no-undef const sliceStream = new TransformStream( new StreamSlicer(this.rs, this.mode) ); inputStream = this.input.pipeThrough(sliceStream); } - // eslint-disable-next-line no-undef const cryptoStream = new TransformStream( new ECETransformer(this.mode, this.key, this.rs, this.salt) ); diff --git a/app/serviceWorker.js b/app/serviceWorker.js index f017e433..f78b5cd3 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -1,6 +1,6 @@ import Keychain from './keychain'; import { downloadStream } from './api'; -import TransformStream from './transformStream'; +import { TStream as TransformStream, wrapReadable } from './streams'; let noSave = false; const map = new Map(); @@ -30,7 +30,7 @@ async function decryptStream(request) { } }); - const readStream = stream.pipeThrough(progStream); + const readStream = wrapReadable(stream).pipeThrough(progStream); const decrypted = file.keychain.decryptStream(readStream); const headers = { @@ -38,7 +38,7 @@ async function decryptStream(request) { 'Content-Type': file.type, 'Content-Length': file.size }; - const body = decrypted.local ? decrypted.nativeReadable : decrypted; + const body = decrypted.isPony ? decrypted.toNative() : decrypted; return new Response(body, { headers }); } catch (e) { if (noSave) { diff --git a/app/streams.js b/app/streams.js new file mode 100644 index 00000000..5e8e254e --- /dev/null +++ b/app/streams.js @@ -0,0 +1,35 @@ +/* global TransformStream ReadableStream */ +import { createReadableStreamWrapper } from '@mattiasbuelens/web-streams-adapter'; +import { + TransformStream as TransformStreamPony, + ReadableStream as ReadableStreamPony +} from 'web-streams-ponyfill'; + +const toNativeReadable = createReadableStreamWrapper(ReadableStream); +const toPonyReadable = createReadableStreamWrapper(ReadableStreamPony); + +export let TStream; +if (typeof TransformStream === 'function') { + TStream = TransformStream; +} else { + TStream = TransformStreamPony; + TStream.prototype.isPony = true; +} + +export let RStream = ReadableStream; +try { + new ReadableStream().pipeThrough(new TransformStream()); +} catch (e) { + RStream = ReadableStreamPony; + RStream.prototype.isPony = true; + RStream.prototype.toNative = function() { + return toNativeReadable(this); + }; +} + +export function wrapReadable(stream) { + if (RStream === ReadableStream) { + return stream; + } + return toPonyReadable(stream); +} diff --git a/app/transformStream.js b/app/transformStream.js deleted file mode 100644 index f0dc1605..00000000 --- a/app/transformStream.js +++ /dev/null @@ -1,25 +0,0 @@ -/* global TransformStream */ -import { createReadableStreamWrapper } from '@mattiasbuelens/web-streams-adapter'; -import { TransformStream as TransformStreamPony } from 'web-streams-ponyfill'; - -const toNative = createReadableStreamWrapper(ReadableStream); - -class TransformStreamLocal { - constructor(transformer) { - this.stream = new TransformStreamPony(transformer); - this.local = true; - } - get nativeReadable() { - return toNative(this.stream.readable); - } - get readable() { - return this.stream.readable; - } - get writable() { - return this.stream.writable; - } -} - -export default (typeof TransformStream === 'function' - ? TransformStream - : TransformStreamLocal); From f12d3abe7962c7acba3d53e79283af448a53c84c Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Wed, 18 Jul 2018 16:39:14 -0700 Subject: [PATCH 041/368] refactored stream transforms --- app/ece.js | 29 ++++++++------------ app/serviceWorker.js | 37 ++++++++++++++----------- app/streams.js | 65 ++++++++++++++++++++++---------------------- package-lock.json | 12 -------- package.json | 2 -- 5 files changed, 65 insertions(+), 80 deletions(-) diff --git a/app/ece.js b/app/ece.js index 75cd3aa8..28743473 100644 --- a/app/ece.js +++ b/app/ece.js @@ -1,15 +1,12 @@ import 'buffer'; -import { - TStream as TransformStream, - RStream as ReadableStream -} from './streams'; +import { transform } from './streams'; const NONCE_LENGTH = 12; const TAG_LENGTH = 16; const KEY_LENGTH = 16; const MODE_ENCRYPT = 'encrypt'; const MODE_DECRYPT = 'decrypt'; -const RS = 1024 * 1024; +const RS = 1024 * 64; const encoder = new TextEncoder(); @@ -277,6 +274,7 @@ class StreamSlicer { this.chunkSize = this.rs; } this.partialChunk = new Uint8Array(this.chunkSize); + this.offset = 0; } //reslice input into record sized chunks @@ -292,26 +290,25 @@ class StreamSlicer { if (this.offset === this.chunkSize) { this.send(this.partialChunk, controller); - this.offset = 0; } } while (i < chunk.byteLength) { - if (chunk.byteLength - i >= this.chunkSize) { + const remainingBytes = chunk.byteLength - i; + if (remainingBytes >= this.chunkSize) { const record = chunk.slice(i, i + this.chunkSize); i += this.chunkSize; this.send(record, controller); } else { - const end = chunk.slice(i, this.chunkSize); - i += end.length; + const end = chunk.slice(i, i + remainingBytes); + i += end.byteLength; this.partialChunk.set(end); - this.offset = end.length; + this.offset = end.byteLength; } } } flush(controller) { - //console.log('slice stream ends') if (this.offset > 0) { controller.enqueue(this.partialChunk.slice(0, this.offset)); } @@ -356,15 +353,11 @@ export default class ECE { new BlobSlicer(this.input, this.rs, this.mode) ); } else { - const sliceStream = new TransformStream( - new StreamSlicer(this.rs, this.mode) - ); - inputStream = this.input.pipeThrough(sliceStream); + inputStream = transform(this.input, new StreamSlicer(this.rs, this.mode)); } - - const cryptoStream = new TransformStream( + return transform( + inputStream, new ECETransformer(this.mode, this.key, this.rs, this.salt) ); - return inputStream.pipeThrough(cryptoStream); } } diff --git a/app/serviceWorker.js b/app/serviceWorker.js index f78b5cd3..280e7ae8 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -1,6 +1,6 @@ import Keychain from './keychain'; import { downloadStream } from './api'; -import { TStream as TransformStream, wrapReadable } from './streams'; +import { transform } from './streams'; let noSave = false; const map = new Map(); @@ -17,29 +17,26 @@ async function decryptStream(request) { const id = request.url.split('/')[5]; try { const file = map.get(id); + const keychain = new Keychain(file.key); - file.download = downloadStream(id, file.keychain); + file.download = downloadStream(id, keychain); - const stream = await file.download.result; + const body = await file.download.result; - // eslint-disable-next-line no-undef - const progStream = new TransformStream({ + const readStream = transform(body, { transform: (chunk, controller) => { file.progress += chunk.length; controller.enqueue(chunk); } }); - - const readStream = wrapReadable(stream).pipeThrough(progStream); - const decrypted = file.keychain.decryptStream(readStream); + const decrypted = keychain.decryptStream(readStream); const headers = { 'Content-Disposition': 'attachment; filename=' + file.filename, 'Content-Type': file.type, 'Content-Length': file.size }; - const body = decrypted.isPony ? decrypted.toNative() : decrypted; - return new Response(body, { headers }); + return new Response(decrypted, { headers }); } catch (e) { if (noSave) { return new Response(null, { status: e.message }); @@ -47,6 +44,9 @@ async function decryptStream(request) { const redirectRes = await fetch(`/download/${id}`); return new Response(redirectRes.body, { status: 302 }); + } finally { + // TODO: need to clean up, but not break progress + // map.delete(id) } } @@ -61,7 +61,7 @@ self.onmessage = event => { if (event.data.request === 'init') { noSave = event.data.noSave; const info = { - keychain: new Keychain(event.data.key), + key: event.data.key, filename: event.data.filename, type: event.data.type, size: event.data.size, @@ -69,23 +69,28 @@ self.onmessage = event => { cancelled: false }; if (event.data.requiresPassword) { - info.keychain.setPassword(event.data.password, event.data.url); + info.password = event.data.password; + info.url = event.data.url; } map.set(event.data.id, info); event.ports[0].postMessage('file info received'); } else if (event.data.request === 'progress') { const file = map.get(event.data.id); - if (file.cancelled) { + if (!file) { + event.ports[0].postMessage({ progress: 0 }); + } else if (file.cancelled) { event.ports[0].postMessage({ error: 'cancelled' }); } else { event.ports[0].postMessage({ progress: file.progress }); } } else if (event.data.request === 'cancel') { const file = map.get(event.data.id); - file.cancelled = true; - if (file.download) { - file.download.cancel(); + if (file) { + file.cancelled = true; + if (file.download) { + file.download.cancel(); + } } event.ports[0].postMessage('download cancelled'); } diff --git a/app/streams.js b/app/streams.js index 5e8e254e..b1e95603 100644 --- a/app/streams.js +++ b/app/streams.js @@ -1,35 +1,36 @@ -/* global TransformStream ReadableStream */ -import { createReadableStreamWrapper } from '@mattiasbuelens/web-streams-adapter'; -import { - TransformStream as TransformStreamPony, - ReadableStream as ReadableStreamPony -} from 'web-streams-ponyfill'; +/* global ReadableStream */ -const toNativeReadable = createReadableStreamWrapper(ReadableStream); -const toPonyReadable = createReadableStreamWrapper(ReadableStreamPony); +export function transform(readable, transformer) { + const reader = readable.getReader(); + const tstream = new ReadableStream({ + start(controller) { + if (transformer.start) { + return transformer.start(controller); + } + }, + async pull(controller) { + let enqueued = false; + const c = { + enqueue(d) { + enqueued = true; + controller.enqueue(d); + } + }; + while (!enqueued) { + const x = await reader.read(); + if (x.done) { + if (transformer.flush) { + await transformer.flush(controller); + } + return controller.close(); + } + await transformer.transform(x.value, c); + } + }, + cancel() { + readable.cancel(); + } + }); -export let TStream; -if (typeof TransformStream === 'function') { - TStream = TransformStream; -} else { - TStream = TransformStreamPony; - TStream.prototype.isPony = true; -} - -export let RStream = ReadableStream; -try { - new ReadableStream().pipeThrough(new TransformStream()); -} catch (e) { - RStream = ReadableStreamPony; - RStream.prototype.isPony = true; - RStream.prototype.toNative = function() { - return toNativeReadable(this); - }; -} - -export function wrapReadable(stream) { - if (RStream === ReadableStream) { - return stream; - } - return toPonyReadable(stream); + return tstream; } diff --git a/package-lock.json b/package-lock.json index 86861d71..54e0f37e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -88,12 +88,6 @@ "integrity": "sha1-9vGlzl05caSt6RoR0i1MRZrNN18=", "dev": true }, - "@mattiasbuelens/web-streams-adapter": { - "version": "0.1.0-alpha.1", - "resolved": "https://registry.npmjs.org/@mattiasbuelens/web-streams-adapter/-/web-streams-adapter-0.1.0-alpha.1.tgz", - "integrity": "sha512-8YK2ZY6CAgrzFGfW2uPyNDMYvh7OmWjrlbdP+GeHiMJhzPF3XwrQaHyLQ4IZqGTj8NW879ttfbcqbLqQxWvtsw==", - "dev": true - }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -16277,12 +16271,6 @@ "minimalistic-assert": "1.0.1" } }, - "web-streams-ponyfill": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/web-streams-ponyfill/-/web-streams-ponyfill-1.4.2.tgz", - "integrity": "sha512-LCHW+fE2UBJ2vjhqJujqmoxh1ytEDEr0dPO3CabMdMDJPKmsaxzS90V1Ar6LtNE5VHLqxR4YMEj1i4lzMAccIA==", - "dev": true - }, "webpack": { "version": "4.16.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.16.0.tgz", diff --git a/package.json b/package.json index f7f9bb87..ebf16081 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,6 @@ }, "devDependencies": { "@dannycoates/webpack-dev-server": "^3.1.4", - "@mattiasbuelens/web-streams-adapter": "0.1.0-alpha.1", "asmcrypto.js": "^0.22.0", "babel-core": "^6.26.3", "babel-loader": "^7.1.4", @@ -113,7 +112,6 @@ "svgo-loader": "^2.1.0", "testpilot-ga": "^0.3.0", "val-loader": "^1.1.1", - "web-streams-ponyfill": "^1.4.2", "webpack": "^4.15.1", "webpack-cli": "^3.0.8", "webpack-dev-middleware": "^3.1.3", From 282cf0b595f118576af23f7f021dca3feee6966c Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Thu, 19 Jul 2018 12:11:55 -0700 Subject: [PATCH 042/368] use lib for setting content-disposition for more correctness --- app/serviceWorker.js | 3 ++- package.json | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/serviceWorker.js b/app/serviceWorker.js index 280e7ae8..06cddce1 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -1,6 +1,7 @@ import Keychain from './keychain'; import { downloadStream } from './api'; import { transform } from './streams'; +import contentDisposition from 'content-disposition'; let noSave = false; const map = new Map(); @@ -32,7 +33,7 @@ async function decryptStream(request) { const decrypted = keychain.decryptStream(readStream); const headers = { - 'Content-Disposition': 'attachment; filename=' + file.filename, + 'Content-Disposition': contentDisposition(file.filename), 'Content-Type': file.type, 'Content-Length': file.size }; diff --git a/package.json b/package.json index ebf16081..42b9ecb8 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,7 @@ "babel-preset-stage-2": "^6.24.1", "babel-preset-stage-3": "^6.24.1", "base64-js": "^1.3.0", + "content-disposition": "^0.5.2", "copy-webpack-plugin": "^4.5.2", "cross-env": "^5.2.0", "css-loader": "^1.0.0", From f32ebd913ac591eb2b51c5fdc777db0eba14dd00 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Thu, 19 Jul 2018 13:20:10 -0700 Subject: [PATCH 043/368] send nonce to sw --- app/fileReceiver.js | 1 + app/serviceWorker.js | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/fileReceiver.js b/app/fileReceiver.js index 5ee9eb4b..e694245b 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -110,6 +110,7 @@ export default class FileReceiver extends Nanobus { password: this.fileInfo.password, url: this.fileInfo.url, size: this.fileInfo.size, + nonce: this.keychain.nonce, noSave }; await this.sendMessageToSw(info); diff --git a/app/serviceWorker.js b/app/serviceWorker.js index 06cddce1..a539b1d8 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -18,7 +18,7 @@ async function decryptStream(request) { const id = request.url.split('/')[5]; try { const file = map.get(id); - const keychain = new Keychain(file.key); + const keychain = new Keychain(file.key, file.nonce); file.download = downloadStream(id, keychain); @@ -63,6 +63,7 @@ self.onmessage = event => { noSave = event.data.noSave; const info = { key: event.data.key, + nonce: event.data.nonce, filename: event.data.filename, type: event.data.type, size: event.data.size, From 38fd349d9b058cd7b15b5bb9819727d2b0344f6d Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Thu, 19 Jul 2018 14:46:12 -0700 Subject: [PATCH 044/368] use TransformStream if available --- app/ece.js | 9 ++++++--- app/serviceWorker.js | 4 ++-- app/streams.js | 7 +++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/ece.js b/app/ece.js index 28743473..86ed29cd 100644 --- a/app/ece.js +++ b/app/ece.js @@ -1,5 +1,5 @@ import 'buffer'; -import { transform } from './streams'; +import { transformStream } from './streams'; const NONCE_LENGTH = 12; const TAG_LENGTH = 16; @@ -353,9 +353,12 @@ export default class ECE { new BlobSlicer(this.input, this.rs, this.mode) ); } else { - inputStream = transform(this.input, new StreamSlicer(this.rs, this.mode)); + inputStream = transformStream( + this.input, + new StreamSlicer(this.rs, this.mode) + ); } - return transform( + return transformStream( inputStream, new ECETransformer(this.mode, this.key, this.rs, this.salt) ); diff --git a/app/serviceWorker.js b/app/serviceWorker.js index a539b1d8..e02e6845 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -1,6 +1,6 @@ import Keychain from './keychain'; import { downloadStream } from './api'; -import { transform } from './streams'; +import { transformStream } from './streams'; import contentDisposition from 'content-disposition'; let noSave = false; @@ -24,7 +24,7 @@ async function decryptStream(request) { const body = await file.download.result; - const readStream = transform(body, { + const readStream = transformStream(body, { transform: (chunk, controller) => { file.progress += chunk.length; controller.enqueue(chunk); diff --git a/app/streams.js b/app/streams.js index b1e95603..8a1c49f5 100644 --- a/app/streams.js +++ b/app/streams.js @@ -1,6 +1,9 @@ -/* global ReadableStream */ +/* global ReadableStream TransformStream */ -export function transform(readable, transformer) { +export function transformStream(readable, transformer) { + if (typeof TransformStream === 'function') { + return readable.pipeThrough(new TransformStream(transformer)); + } const reader = readable.getReader(); const tstream = new ReadableStream({ start(controller) { From 7673715c65ce0ddd56f8e00cba50e940ef8bdf85 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Mon, 23 Jul 2018 09:49:16 -0700 Subject: [PATCH 045/368] disabled frontend tests in ci frontend tests are failing in puppeteer but work in the browsers. --- app/serviceWorker.js | 10 +- app/streams.js | 12 +- package-lock.json | 227 ++++++++++++++++++++------ package.json | 15 +- test/frontend/routes.js | 2 +- test/frontend/runner.js | 7 +- test/frontend/tests/workflow-tests.js | 44 ++--- 7 files changed, 223 insertions(+), 94 deletions(-) diff --git a/app/serviceWorker.js b/app/serviceWorker.js index e02e6845..8194e988 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -19,6 +19,9 @@ async function decryptStream(request) { try { const file = map.get(id); const keychain = new Keychain(file.key, file.nonce); + if (file.requiresPassword) { + keychain.setPassword(file.password, file.url); + } file.download = downloadStream(id, keychain); @@ -65,15 +68,14 @@ self.onmessage = event => { key: event.data.key, nonce: event.data.nonce, filename: event.data.filename, + requiresPassword: event.data.requiresPassword, + password: event.data.password, + url: event.data.url, type: event.data.type, size: event.data.size, progress: 0, cancelled: false }; - if (event.data.requiresPassword) { - info.password = event.data.password; - info.url = event.data.url; - } map.set(event.data.id, info); event.ports[0].postMessage('file info received'); diff --git a/app/streams.js b/app/streams.js index 8a1c49f5..d0e7b972 100644 --- a/app/streams.js +++ b/app/streams.js @@ -5,7 +5,7 @@ export function transformStream(readable, transformer) { return readable.pipeThrough(new TransformStream(transformer)); } const reader = readable.getReader(); - const tstream = new ReadableStream({ + return new ReadableStream({ start(controller) { if (transformer.start) { return transformer.start(controller); @@ -13,27 +13,25 @@ export function transformStream(readable, transformer) { }, async pull(controller) { let enqueued = false; - const c = { + const wrappedController = { enqueue(d) { enqueued = true; controller.enqueue(d); } }; while (!enqueued) { - const x = await reader.read(); - if (x.done) { + const data = await reader.read(); + if (data.done) { if (transformer.flush) { await transformer.flush(controller); } return controller.close(); } - await transformer.transform(x.value, c); + await transformer.transform(data.value, wrappedController); } }, cancel() { readable.cancel(); } }); - - return tstream; } diff --git a/package-lock.json b/package-lock.json index 54e0f37e..841eba08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -763,9 +763,9 @@ } }, "aws-sdk": { - "version": "2.274.1", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.274.1.tgz", - "integrity": "sha512-kQPy4accfxbTOaxezj85Ce9X3zYWkOEkIRM9KTkjFiod/x26naSkuBlv+0gnSm9Z2qK+3z4VpQB3ZOO+oYBdjw==", + "version": "2.279.1", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.279.1.tgz", + "integrity": "sha512-2vkvg53XaTmPYW6f7YFUEHfNGzOZqKzUboaEkjz/wblmQmDS7J5DO5KTv52wsNFOICBGXgZPCblwD+oP7iT8iA==", "requires": { "buffer": "4.9.1", "events": "1.1.1", @@ -775,7 +775,7 @@ "sax": "1.2.1", "url": "0.10.3", "uuid": "3.1.0", - "xml2js": "0.4.17" + "xml2js": "0.4.19" } }, "aws-sign": { @@ -2665,16 +2665,26 @@ "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" }, "convict": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/convict/-/convict-4.3.1.tgz", - "integrity": "sha512-BLgyHUJREKCHVZ8rbXKIuNTDX/Is2GB/HZyUqh1IwvV0EeYBWtX+54OCG8tkIiAxB2yKowdP19+RHY5kCQ/SOg==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/convict/-/convict-4.3.2.tgz", + "integrity": "sha512-boheda33rJm3jcIz8c3rAUSvrBpVkNP2OIxDu8E/ZM+v9zVe3lgVg2TQlUOYYjtnLKZe37h9zYyUXFcoD9X3FA==", "requires": { "depd": "1.1.2", "json5": "1.0.1", "lodash.clonedeep": "4.5.0", "moment": "2.22.2", - "validator": "7.2.0", - "yargs-parser": "10.0.0" + "validator": "10.4.0", + "yargs-parser": "10.1.0" + }, + "dependencies": { + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "requires": { + "camelcase": "4.1.0" + } + } } }, "cookie": { @@ -5679,9 +5689,9 @@ } }, "global-modules-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.1.0.tgz", - "integrity": "sha512-3DrmGj2TP+96cABk9TfMp6f3knH/Y46dqvWznTU3Tf6/bDGLDAn15tFluQ7BcloykOcdY16U0WGq0BQblYOxJQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.0.tgz", + "integrity": "sha512-HchvMJNYh9dGSCy8pOQ2O8u/hoXaL+0XhnrwH0RyLiSXMMTl9W3N6KUU73+JFOg5PGjtzl6VZzUQsnrpm7Szag==", "dev": true }, "globals": { @@ -7454,7 +7464,8 @@ "lodash": { "version": "4.17.10", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true }, "lodash._reinterpolate": { "version": "3.0.0", @@ -13499,9 +13510,9 @@ } }, "raven-js": { - "version": "3.26.3", - "resolved": "https://registry.npmjs.org/raven-js/-/raven-js-3.26.3.tgz", - "integrity": "sha512-VPAsPfK73A9VPcJx5X/kt0GxOqUGpGDM8vdzsYNQXMhYemyZGiW1JX1AI+f4jxm37Apijj6VVtCyJcYFz3ocSQ==", + "version": "3.26.4", + "resolved": "https://registry.npmjs.org/raven-js/-/raven-js-3.26.4.tgz", + "integrity": "sha512-5VmC3IWhTQJkaiQaCY0S5V8za4bpUgbbuVT1MkDH7JVqgu8CPQ750XaFF8BVRbLV9F5nvoz7n0UT0CKteDuZAg==", "dev": true }, "raw-body": { @@ -15389,14 +15400,62 @@ } }, "stylelint-no-unsupported-browser-features": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-3.0.0.tgz", - "integrity": "sha512-5IWh21lsBxWPbALWJkZx4Gb/CeBDPl28Du962i7IoasqQl2UdOaWqeECYpU7DFHLMHixhLvx+uDTLahuERnjzA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/stylelint-no-unsupported-browser-features/-/stylelint-no-unsupported-browser-features-3.0.1.tgz", + "integrity": "sha512-h5kxriwzvACnsiQcRfWCkpV22tz3ikC7HoVMcK5ZeDZ1dhhoY7E95wwqVC5NhNhKpRPtK5ioIi4HWl3oB1S71g==", "dev": true, "requires": { "doiuse": "4.1.0", "lodash": "4.17.10", - "postcss": "6.0.23" + "postcss": "7.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.2" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" + } + }, + "postcss": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.1.tgz", + "integrity": "sha512-c6M68yZX0bWnZ0GcX8duWcfweGeGQvYgw6w4xksRePDmrpCrLMqneN07xwce17ACWBAr0S+DoI0T31axZ21TKg==", + "dev": true, + "requires": { + "chalk": "2.4.1", + "source-map": "0.6.1", + "supports-color": "5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } } }, "sugarss": { @@ -16184,9 +16243,9 @@ } }, "validator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-7.2.0.tgz", - "integrity": "sha512-c8NGTUYeBEcUIGeMppmNVKHE7wwfm3mYbNZxV+c5mlv9fDHI7Ad3p07qfNrn/CvpdkK2k61fOLRO2sTEhgQXmg==" + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-10.4.0.tgz", + "integrity": "sha512-Q/wBy3LB1uOyssgNlXSRmaf22NxjvDNZM2MtIQ4jaEOAB61xsh1TQxsq1CgzUMBV1lDrVMogIh8GjG1DYW0zLg==" }, "vary": { "version": "1.1.2", @@ -16272,9 +16331,9 @@ } }, "webpack": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.16.0.tgz", - "integrity": "sha512-oNx9djAd6uAcccyfqN3hyXLNMjZHiRySZmBQ4c8FNmf1SNJGhx7n9TSvHNyXxgToRdH65g/Q97s94Ip9N6F7xg==", + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.16.1.tgz", + "integrity": "sha512-6jpzObU18y7lXDJz7XCLvzgrqcJ0rZ2jhKvnTivza9gM2GvPW93xxtmEll2GgmdC0zVQAtbHrH/9BtyMjSDZfA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.5.13", @@ -16288,7 +16347,7 @@ "ajv-keywords": "3.2.0", "chrome-trace-event": "1.0.0", "enhanced-resolve": "4.1.0", - "eslint-scope": "3.7.3", + "eslint-scope": "4.0.0", "json-parse-better-errors": "1.0.2", "loader-runner": "2.3.0", "loader-utils": "1.1.0", @@ -16322,6 +16381,16 @@ "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", "dev": true }, + "eslint-scope": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "dev": true, + "requires": { + "esrecurse": "4.2.1", + "estraverse": "4.2.0" + } + }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", @@ -16337,22 +16406,22 @@ } }, "webpack-cli": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.0.8.tgz", - "integrity": "sha512-KnRLJ0BUaYRqrhAMb9dv3gzdmhmgIMKo0FmdsnmfqbPGtLnnZ6tORZAvmmKfr+A0VgiVpqC60Gv7Ofg0R2CHtQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.0.tgz", + "integrity": "sha512-p5NeKDtYwjZozUWq6kGNs9w+Gtw/CPvyuXjXn2HMdz8Tie+krjEg8oAtonvIyITZdvpF7XG9xDHwscLr2c+ugQ==", "dev": true, "requires": { "chalk": "2.4.1", "cross-spawn": "6.0.5", "enhanced-resolve": "4.1.0", - "global-modules-path": "2.1.0", + "global-modules-path": "2.3.0", "import-local": "1.0.0", "inquirer": "6.0.0", "interpret": "1.1.0", "loader-utils": "1.1.0", "supports-color": "5.4.0", "v8-compile-cache": "2.0.0", - "yargs": "11.1.0" + "yargs": "12.0.1" }, "dependencies": { "ansi-regex": { @@ -16400,6 +16469,15 @@ "which": "1.3.1" } }, + "decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "dev": true, + "requires": { + "xregexp": "4.0.0" + } + }, "external-editor": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.0.tgz", @@ -16411,6 +16489,15 @@ "tmp": "0.0.33" } }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "3.0.0" + } + }, "iconv-lite": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", @@ -16441,6 +16528,40 @@ "through": "2.3.8" } }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "3.0.0", + "path-exists": "3.0.0" + } + }, + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "dev": true, + "requires": { + "p-try": "2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "2.0.0" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", @@ -16460,14 +16581,14 @@ } }, "yargs": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", - "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.1.tgz", + "integrity": "sha512-B0vRAp1hRX4jgIOWFtjfNjd9OA9RWYZ6tqGA9/I/IrTMsxmKvtWy+ersM+jzpQqbC3YfLzeABPdeTgcJ9eu1qQ==", "dev": true, "requires": { "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", + "decamelize": "2.0.0", + "find-up": "3.0.0", "get-caller-file": "1.0.3", "os-locale": "2.1.0", "require-directory": "2.1.1", @@ -16476,13 +16597,13 @@ "string-width": "2.1.1", "which-module": "2.0.0", "y18n": "3.2.1", - "yargs-parser": "9.0.2" + "yargs-parser": "10.1.0" } }, "yargs-parser": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", - "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", "dev": true, "requires": { "camelcase": "4.1.0" @@ -16761,21 +16882,24 @@ "integrity": "sha512-rx3GzJlgEeZ08MIcDsU2vY2B1QEriUKJTSiNHHUIem6eg9pzVOr2TL3Y4Pd6TMAM5D5azGjcxqI62piITBDHVg==" }, "xml2js": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", - "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "requires": { "sax": "1.2.1", - "xmlbuilder": "4.2.1" + "xmlbuilder": "9.0.7" } }, "xmlbuilder": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", - "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", - "requires": { - "lodash": "4.17.10" - } + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + }, + "xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==", + "dev": true }, "xtend": { "version": "4.0.1", @@ -16829,6 +16953,7 @@ "version": "10.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.0.0.tgz", "integrity": "sha512-+DHejWujTVYeMHLff8U96rLc4uE4Emncoftvn5AjhB1Jw1pWxLzgBUT/WYbPrHmy6YPEBTZQx5myHhVcuuu64g==", + "dev": true, "requires": { "camelcase": "4.1.0" } diff --git a/package.json b/package.json index 42b9ecb8..4ae33937 100644 --- a/package.json +++ b/package.json @@ -25,13 +25,12 @@ "changelog": "github-changes -o mozilla -r send --only-pulls --use-commit-body --no-merges", "contributors": "git shortlog -s | awk -F\\t '{print $2}' > CONTRIBUTORS", "release": "npm-run-all contributors changelog", - "test": "npm-run-all test:*", + "test": "npm-run-all test:b*", "test:backend": "nyc mocha --reporter=min test/backend", "test:frontend": "cross-env NODE_ENV=development node test/frontend/runner.js && nyc report --reporter=html", "test-integration": "docker-compose up --abort-on-container-exit --exit-code-from integration-tests --build --remove-orphans --quiet-pull && docker-compose down", "test-integration-stage": "cross-env BASE_URL=https://send.stage.mozaws.net npm run test-integration", "start": "npm run clean && cross-env NODE_ENV=development webpack-dev-server --mode=development", - "dev": "webpack-serve", "prod": "node server/bin/prod.js" }, "lint-staged": { @@ -100,7 +99,7 @@ "prettier": "^1.13.7", "proxyquire": "^1.8.0", "puppeteer": "^1.5.0", - "raven-js": "^3.26.3", + "raven-js": "^3.26.4", "redis-mock": "^0.21.0", "require-from-string": "^2.0.2", "rimraf": "^2.6.2", @@ -108,23 +107,23 @@ "string-hash": "^1.1.3", "stylelint": "^9.3.0", "stylelint-config-standard": "^18.2.0", - "stylelint-no-unsupported-browser-features": "^3.0.0", + "stylelint-no-unsupported-browser-features": "^3.0.1", "svgo": "^1.0.5", "svgo-loader": "^2.1.0", "testpilot-ga": "^0.3.0", "val-loader": "^1.1.1", - "webpack": "^4.15.1", - "webpack-cli": "^3.0.8", + "webpack": "^4.16.1", + "webpack-cli": "^3.1.0", "webpack-dev-middleware": "^3.1.3", "webpack-manifest-plugin": "^2.0.3", "webpack-unassert-loader": "^1.2.0" }, "dependencies": { - "aws-sdk": "^2.266.1", + "aws-sdk": "^2.279.1", "babel-polyfill": "^6.26.0", "choo": "^6.12.1", "cldr-core": "^32.0.0", - "convict": "^4.3.1", + "convict": "^4.3.2", "express": "^4.16.3", "express-ws": "^4.0.0", "fluent": "^0.6.4", diff --git a/test/frontend/routes.js b/test/frontend/routes.js index 4641f724..42151ac2 100644 --- a/test/frontend/routes.js +++ b/test/frontend/routes.js @@ -30,7 +30,7 @@ module.exports = function(app) { - + diff --git a/test/frontend/runner.js b/test/frontend/runner.js index c96c3160..c95b4040 100644 --- a/test/frontend/runner.js +++ b/test/frontend/runner.js @@ -10,7 +10,9 @@ const express = require('express'); const devRoutes = require('../../server/bin/test'); const app = express(); -const wpm = middleware(webpack(config()), { logLevel: 'silent' }); +const wpm = middleware(webpack(config(null, { mode: 'development' })), { + logLevel: 'silent' +}); app.use(wpm); devRoutes(app, { middleware: wpm }); @@ -30,7 +32,8 @@ const server = app.listen(async function() { page.on('pageerror', console.log.bind(console)); await page.goto(`http://127.0.0.1:${server.address().port}/test`); await page.waitFor(() => typeof runner.testResults !== 'undefined', { - timeout: 5000 + polling: 1000, + timeout: 15000 }); const results = await page.evaluate(() => runner.testResults); const coverage = await page.evaluate(() => __coverage__); diff --git a/test/frontend/tests/workflow-tests.js b/test/frontend/tests/workflow-tests.js index d348385d..0ed96108 100644 --- a/test/frontend/tests/workflow-tests.js +++ b/test/frontend/tests/workflow-tests.js @@ -6,11 +6,12 @@ const headless = /Headless/.test(navigator.userAgent); const noSave = !headless; // only run the saveFile code if headless // FileSender uses a File in real life but a Blob works for testing -const blob = new Blob(['hello world!'], { type: 'text/plain' }); +const blob = new Blob([new ArrayBuffer(1024 * 128)], { type: 'text/plain' }); blob.name = 'test.txt'; navigator.serviceWorker.register('/serviceWorker.js'); describe('Upload / Download flow', function() { + this.timeout(0); it('can only download once by default', async function() { const fs = new FileSender(blob); const file = await fs.upload(); @@ -22,6 +23,7 @@ describe('Upload / Download flow', function() { }); await fr.getMetadata(); await fr.download(noSave); + try { await fr.download(noSave); assert.fail('downloaded again'); @@ -136,6 +138,7 @@ describe('Upload / Download flow', function() { }); it('can increase download count on download', async function() { + this.timeout(0); const fs = new FileSender(blob); const file = await fs.upload(); const fr = new FileReceiver({ @@ -145,32 +148,31 @@ describe('Upload / Download flow', function() { requiresPassword: false }); await fr.getMetadata(); - await fr.download(noSave); await file.updateDownloadCount(); assert.equal(file.dtotal, 1); }); - it('does not increase download count when download cancelled', async function() { - const fs = new FileSender(blob); - const file = await fs.upload(); - const fr = new FileReceiver({ - secretKey: file.toJSON().secretKey, - id: file.id, - nonce: file.keychain.nonce, - requiresPassword: false - }); - await fr.getMetadata(); - fr.once('progress', () => fr.cancel()); + // it('does not increase download count when download cancelled', async function() { + // const fs = new FileSender(blob); + // const file = await fs.upload(); + // const fr = new FileReceiver({ + // secretKey: file.toJSON().secretKey, + // id: file.id, + // nonce: file.keychain.nonce, + // requiresPassword: false + // }); + // await fr.getMetadata(); + // fr.once('progress', () => fr.cancel()); - try { - await fr.download(noSave); - assert.fail('not cancelled'); - } catch (e) { - await file.updateDownloadCount(); - assert.equal(file.dtotal, 0); - } - }); + // try { + // await fr.download(noSave); + // assert.fail('not cancelled'); + // } catch (e) { + // await file.updateDownloadCount(); + // assert.equal(file.dtotal, 0); + // } + // }); it('can allow multiple downloads', async function() { const fs = new FileSender(blob); From 5483dc2506c9b0c78f243bd5df7cf9f47803d403 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Mon, 23 Jul 2018 15:12:58 -0700 Subject: [PATCH 046/368] use actual file size in dl progress. detect cancelled stream --- app/api.js | 2 +- app/keychain.js | 1 + app/serviceWorker.js | 44 +++++++++++++++++++--------------- app/streams.js | 9 ++++--- server/routes/metadata.js | 2 -- test/backend/metadata-tests.js | 7 ++---- 6 files changed, 35 insertions(+), 30 deletions(-) diff --git a/app/api.js b/app/api.js index a2e7ef96..d766f6ce 100644 --- a/app/api.js +++ b/app/api.js @@ -74,7 +74,7 @@ export async function metadata(id, keychain) { const data = await result.response.json(); const meta = await keychain.decryptMetadata(b64ToArray(data.metadata)); return { - size: data.size, + size: meta.size, ttl: data.ttl, iv: meta.iv, name: meta.name, diff --git a/app/keychain.js b/app/keychain.js index ab57b852..cc867e29 100644 --- a/app/keychain.js +++ b/app/keychain.js @@ -172,6 +172,7 @@ export default class Keychain { JSON.stringify({ iv: arrayToB64(this.iv), name: metadata.name, + size: metadata.size, type: metadata.type || 'application/octet-stream' }) ) diff --git a/app/serviceWorker.js b/app/serviceWorker.js index 8194e988..e2c5f271 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -14,8 +14,7 @@ self.addEventListener('activate', event => { self.clients.claim(); }); -async function decryptStream(request) { - const id = request.url.split('/')[5]; +async function decryptStream(id) { try { const file = map.get(id); const keychain = new Keychain(file.key, file.nonce); @@ -27,20 +26,29 @@ async function decryptStream(request) { const body = await file.download.result; - const readStream = transformStream(body, { - transform: (chunk, controller) => { - file.progress += chunk.length; - controller.enqueue(chunk); + const decrypted = keychain.decryptStream(body); + const readStream = transformStream( + decrypted, + { + transform(chunk, controller) { + file.progress += chunk.length; + controller.enqueue(chunk); + } + }, + function oncancel() { + // NOTE: cancel doesn't currently fire on chrome + // https://bugs.chromium.org/p/chromium/issues/detail?id=638494 + file.download.cancel(); + map.delete(id); } - }); - const decrypted = keychain.decryptStream(readStream); + ); const headers = { 'Content-Disposition': contentDisposition(file.filename), 'Content-Type': file.type, 'Content-Length': file.size }; - return new Response(decrypted, { headers }); + return new Response(readStream, { headers }); } catch (e) { if (noSave) { return new Response(null, { status: e.message }); @@ -48,16 +56,14 @@ async function decryptStream(request) { const redirectRes = await fetch(`/download/${id}`); return new Response(redirectRes.body, { status: 302 }); - } finally { - // TODO: need to clean up, but not break progress - // map.delete(id) } } self.onfetch = event => { - const req = event.request.clone(); + const req = event.request; if (req.url.includes('/api/download')) { - event.respondWith(decryptStream(req)); + const id = req.url.split('/')[5]; + event.respondWith(decryptStream(id)); } }; @@ -73,8 +79,7 @@ self.onmessage = event => { url: event.data.url, type: event.data.type, size: event.data.size, - progress: 0, - cancelled: false + progress: 0 }; map.set(event.data.id, info); @@ -82,19 +87,20 @@ self.onmessage = event => { } else if (event.data.request === 'progress') { const file = map.get(event.data.id); if (!file) { - event.ports[0].postMessage({ progress: 0 }); - } else if (file.cancelled) { event.ports[0].postMessage({ error: 'cancelled' }); } else { + if (file.progress === file.size) { + map.delete(event.data.id); + } event.ports[0].postMessage({ progress: file.progress }); } } else if (event.data.request === 'cancel') { const file = map.get(event.data.id); if (file) { - file.cancelled = true; if (file.download) { file.download.cancel(); } + map.delete(event.data.id); } event.ports[0].postMessage('download cancelled'); } diff --git a/app/streams.js b/app/streams.js index d0e7b972..0971fa58 100644 --- a/app/streams.js +++ b/app/streams.js @@ -1,6 +1,6 @@ /* global ReadableStream TransformStream */ -export function transformStream(readable, transformer) { +export function transformStream(readable, transformer, oncancel) { if (typeof TransformStream === 'function') { return readable.pipeThrough(new TransformStream(transformer)); } @@ -30,8 +30,11 @@ export function transformStream(readable, transformer) { await transformer.transform(data.value, wrappedController); } }, - cancel() { - readable.cancel(); + cancel(reason) { + readable.cancel(reason); + if (oncancel) { + oncancel(reason); + } } }); } diff --git a/server/routes/metadata.js b/server/routes/metadata.js index a671cee6..2e50537c 100644 --- a/server/routes/metadata.js +++ b/server/routes/metadata.js @@ -4,12 +4,10 @@ module.exports = async function(req, res) { const id = req.params.id; const meta = req.meta; try { - const size = await storage.length(id); const ttl = await storage.ttl(id); res.send({ metadata: meta.metadata, finalDownload: meta.dl + 1 === meta.dlimit, - size, ttl }); } catch (e) { diff --git a/test/backend/metadata-tests.js b/test/backend/metadata-tests.js index fbaeaefd..9208b912 100644 --- a/test/backend/metadata-tests.js +++ b/test/backend/metadata-tests.js @@ -30,16 +30,15 @@ describe('/api/metadata', function() { storage.length.reset(); }); - it('calls storage.[ttl|length] with the id parameter', async function() { + it('calls storage.ttl with the id parameter', async function() { const req = request('x'); const res = response(); await metadataRoute(req, res); sinon.assert.calledWith(storage.ttl, 'x'); - sinon.assert.calledWith(storage.length, 'x'); }); it('sends a 404 on failure', async function() { - storage.length.returns(Promise.reject(new Error())); + storage.ttl.returns(Promise.reject(new Error())); const res = response(); await metadataRoute(request('x'), res); sinon.assert.calledWith(res.sendStatus, 404); @@ -47,7 +46,6 @@ describe('/api/metadata', function() { it('returns a json object', async function() { storage.ttl.returns(Promise.resolve(123)); - storage.length.returns(Promise.resolve(987)); const meta = { dlimit: 1, dl: 0, @@ -58,7 +56,6 @@ describe('/api/metadata', function() { sinon.assert.calledWithMatch(res.send, { metadata: 'foo', finalDownload: true, - size: 987, ttl: 123 }); }); From 5e9e63944b4dd7a2c6c634432197bee8ad9d76b0 Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Wed, 25 Jul 2018 12:29:19 -0700 Subject: [PATCH 047/368] extracted blobSlicer, fixed download cancel tests --- app/blobSlicer.js | 27 ++++++++++++++++++ app/ece.js | 37 ++----------------------- app/fileReceiver.js | 2 +- app/serviceWorker.js | 5 +++- test/frontend/tests/streaming-tests.js | 7 +++-- test/frontend/tests/workflow-tests.js | 38 +++++++++++++------------- 6 files changed, 58 insertions(+), 58 deletions(-) create mode 100644 app/blobSlicer.js diff --git a/app/blobSlicer.js b/app/blobSlicer.js new file mode 100644 index 00000000..a13d97a3 --- /dev/null +++ b/app/blobSlicer.js @@ -0,0 +1,27 @@ +export default class BlobSlicer { + constructor(blob, size) { + this.blob = blob; + this.index = 0; + this.chunkSize = size; + } + + pull(controller) { + return new Promise((resolve, reject) => { + const bytesLeft = this.blob.size - this.index; + if (bytesLeft <= 0) { + controller.close(); + return resolve(); + } + const size = Math.min(this.chunkSize, bytesLeft); + const blob = this.blob.slice(this.index, this.index + size); + const reader = new FileReader(); + reader.onload = () => { + controller.enqueue(new Uint8Array(reader.result)); + resolve(); + }; + reader.onerror = reject; + reader.readAsArrayBuffer(blob); + this.index += size; + }); + } +} diff --git a/app/ece.js b/app/ece.js index 86ed29cd..952e0271 100644 --- a/app/ece.js +++ b/app/ece.js @@ -1,4 +1,5 @@ import 'buffer'; +import BlobSlicer from './blobSlicer'; import { transformStream } from './streams'; const NONCE_LENGTH = 12; @@ -225,40 +226,6 @@ class ECETransformer { } } -export class BlobSlicer { - constructor(blob, rs, mode) { - this.blob = blob; - this.index = 0; - this.mode = mode; - this.chunkSize = mode === MODE_ENCRYPT ? rs - 17 : rs; - } - - pull(controller) { - return new Promise((resolve, reject) => { - const bytesLeft = this.blob.size - this.index; - if (bytesLeft <= 0) { - controller.close(); - return resolve(); - } - let size = 1; - if (this.mode === MODE_DECRYPT && this.index === 0) { - size = Math.min(21, bytesLeft); - } else { - size = Math.min(this.chunkSize, bytesLeft); - } - const blob = this.blob.slice(this.index, this.index + size); - const reader = new FileReader(); - reader.onload = () => { - controller.enqueue(new Uint8Array(reader.result)); - resolve(); - }; - reader.onerror = reject; - reader.readAsArrayBuffer(blob); - this.index += size; - }); - } -} - class StreamSlicer { constructor(rs, mode) { this.mode = mode; @@ -350,7 +317,7 @@ export default class ECE { if (this.input instanceof Blob) { inputStream = new ReadableStream( - new BlobSlicer(this.input, this.rs, this.mode) + new BlobSlicer(this.input, this.rs - 17) ); } else { inputStream = transformStream( diff --git a/app/fileReceiver.js b/app/fileReceiver.js index e694245b..d9ede78a 100644 --- a/app/fileReceiver.js +++ b/app/fileReceiver.js @@ -148,7 +148,7 @@ export default class FileReceiver extends Nanobus { this.state = 'complete'; } catch (e) { this.downloadRequest = null; - if (e === 'cancelled') { + if (e === 'cancelled' || e.message === '400') { throw new Error(0); } throw e; diff --git a/app/serviceWorker.js b/app/serviceWorker.js index e2c5f271..ffe6be4c 100644 --- a/app/serviceWorker.js +++ b/app/serviceWorker.js @@ -15,8 +15,11 @@ self.addEventListener('activate', event => { }); async function decryptStream(id) { + const file = map.get(id); + if (!file) { + return new Response(null, { status: 400 }); + } try { - const file = map.get(id); const keychain = new Keychain(file.key, file.nonce); if (file.requiresPassword) { keychain.setPassword(file.password, file.url); diff --git a/test/frontend/tests/streaming-tests.js b/test/frontend/tests/streaming-tests.js index 44f898d8..2735f149 100644 --- a/test/frontend/tests/streaming-tests.js +++ b/test/frontend/tests/streaming-tests.js @@ -3,6 +3,7 @@ require('buffer'); import assert from 'assert'; import { b64ToArray } from '../../../app/utils'; +import BlobSlicer from '../../../app/blobSlicer'; import ECE from '../../../app/ece.js'; const rs = 36; @@ -47,8 +48,10 @@ describe('Streaming', function() { }); it('can decrypt', async function() { - const encBlob = new Blob([encrypted]); - const ece = new ECE(encBlob, key, 'decrypt', rs); + const blobStream = new ReadableStream( + new BlobSlicer(new Blob([encrypted]), rs) + ); + const ece = new ECE(blobStream, key, 'decrypt', rs); const decStream = await ece.transform(); const reader = decStream.getReader(); diff --git a/test/frontend/tests/workflow-tests.js b/test/frontend/tests/workflow-tests.js index 0ed96108..70123820 100644 --- a/test/frontend/tests/workflow-tests.js +++ b/test/frontend/tests/workflow-tests.js @@ -153,26 +153,26 @@ describe('Upload / Download flow', function() { assert.equal(file.dtotal, 1); }); - // it('does not increase download count when download cancelled', async function() { - // const fs = new FileSender(blob); - // const file = await fs.upload(); - // const fr = new FileReceiver({ - // secretKey: file.toJSON().secretKey, - // id: file.id, - // nonce: file.keychain.nonce, - // requiresPassword: false - // }); - // await fr.getMetadata(); - // fr.once('progress', () => fr.cancel()); + it('does not increase download count when download cancelled', async function() { + const fs = new FileSender(blob); + const file = await fs.upload(); + const fr = new FileReceiver({ + secretKey: file.toJSON().secretKey, + id: file.id, + nonce: file.keychain.nonce, + requiresPassword: false + }); + await fr.getMetadata(); + fr.once('progress', () => fr.cancel()); - // try { - // await fr.download(noSave); - // assert.fail('not cancelled'); - // } catch (e) { - // await file.updateDownloadCount(); - // assert.equal(file.dtotal, 0); - // } - // }); + try { + await fr.download(noSave); + assert.fail('not cancelled'); + } catch (e) { + await file.updateDownloadCount(); + assert.equal(file.dtotal, 0); + } + }); it('can allow multiple downloads', async function() { const fs = new FileSender(blob); From 5c7b4ace9a8aaf65961bc1664a97bb41b6369eba Mon Sep 17 00:00:00 2001 From: Danny Coates Date: Wed, 25 Jul 2018 12:46:40 -0700 Subject: [PATCH 048/368] updated deps & re-enabled frontend tests --- package-lock.json | 44 +++++++++++++-------------- package.json | 10 +++--- test/frontend/tests/workflow-tests.js | 5 ++- 3 files changed, 31 insertions(+), 28 deletions(-) diff --git a/package-lock.json b/package-lock.json index 841eba08..411f4ee5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -763,9 +763,9 @@ } }, "aws-sdk": { - "version": "2.279.1", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.279.1.tgz", - "integrity": "sha512-2vkvg53XaTmPYW6f7YFUEHfNGzOZqKzUboaEkjz/wblmQmDS7J5DO5KTv52wsNFOICBGXgZPCblwD+oP7iT8iA==", + "version": "2.280.1", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.280.1.tgz", + "integrity": "sha512-NdATmKYTWKvRsUo7F0hhMbSVbk4kHdQb8aWSJpXRccXsOTviNSxTIOvaube8RXT7nCz+S5CckJ/fPTUTVv/vQw==", "requires": { "buffer": "4.9.1", "events": "1.1.1", @@ -5868,15 +5868,16 @@ "dev": true }, "helmet": { - "version": "3.12.1", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.12.1.tgz", - "integrity": "sha512-/CsAcbPIHgiGde395IkHUZyRLW126RJ6AtxFy6Y6bxhd44Qq8cZ5BBFZ0xNUSbcgX57j32Emh3OhWz/0XgAB5Q==", + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.13.0.tgz", + "integrity": "sha512-rCYnlbOBkeP6fCo4sXZNu91vIAWlbVgolwnUANtnzPANRf2kJZ2a6yjRnCqG23Tyl2/ExvJ8bDg4xUdNCIWnrw==", "requires": { "dns-prefetch-control": "0.1.0", "dont-sniff-mimetype": "1.0.0", "expect-ct": "0.1.1", "frameguard": "3.0.0", - "helmet-csp": "2.7.0", + "helmet-crossdomain": "0.3.0", + "helmet-csp": "2.7.1", "hide-powered-by": "1.0.0", "hpkp": "2.0.0", "hsts": "2.1.0", @@ -5886,15 +5887,19 @@ "x-xss-protection": "1.1.0" } }, + "helmet-crossdomain": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/helmet-crossdomain/-/helmet-crossdomain-0.3.0.tgz", + "integrity": "sha512-YiXhj0E35nC4Na5EPE4mTfoXMf9JTGpN4OtB4aLqShKuH9d2HNaJX5MQoglO6STVka0uMsHyG5lCut5Kzsy7Lg==" + }, "helmet-csp": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.7.0.tgz", - "integrity": "sha512-IGIAkWnxjRbgMXFA2/kmDqSIrIaSfZ6vhMHlSHw7jm7Gm9nVVXqwJ2B1YEpYrJsLrqY+w2Bbimk7snux9+sZAw==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.7.1.tgz", + "integrity": "sha512-sCHwywg4daQ2mY0YYwXSZRsgcCeerUwxMwNixGA7aMLkVmPTYBl7gJoZDHOZyXkqPrtuDT3s2B1A+RLI7WxSdQ==", "requires": { "camelize": "1.0.0", "content-security-policy-builder": "2.0.0", "dasherize": "2.0.0", - "lodash.reduce": "4.6.0", "platform": "1.3.5" } }, @@ -7502,11 +7507,6 @@ "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, - "lodash.reduce": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", - "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" - }, "lodash.template": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", @@ -13375,9 +13375,9 @@ "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" }, "puppeteer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.6.0.tgz", - "integrity": "sha512-88epdIp3lw0LxI+sIHgdgZdq/u5zRnzgU2vJGvcyuGqHQrtRUeICTexTyT1KoKhTGG0mAKFRV9c7IJ179agm7A==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.6.1.tgz", + "integrity": "sha512-qz6DLwK+PhlBMjJZOMOsgVCnweYLtmiqnmJYUDPT++ElMz+cQgbsCNKPw4YDVpg3RTbsRX/pqQqr20zrp0cuKw==", "dev": true, "requires": { "debug": "3.1.0", @@ -16331,9 +16331,9 @@ } }, "webpack": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.16.1.tgz", - "integrity": "sha512-6jpzObU18y7lXDJz7XCLvzgrqcJ0rZ2jhKvnTivza9gM2GvPW93xxtmEll2GgmdC0zVQAtbHrH/9BtyMjSDZfA==", + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.16.2.tgz", + "integrity": "sha512-Fw+RtyJD9ekQ6Mh6e/hYeoafIKK6bP6qS7EVnZ3hejt+1Ah3JCJZTGE0e5S6Eq4ijIVht6ktWOEqJfm92+5MLw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.5.13", diff --git a/package.json b/package.json index 4ae33937..5b0d9fec 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "changelog": "github-changes -o mozilla -r send --only-pulls --use-commit-body --no-merges", "contributors": "git shortlog -s | awk -F\\t '{print $2}' > CONTRIBUTORS", "release": "npm-run-all contributors changelog", - "test": "npm-run-all test:b*", + "test": "npm-run-all test:*", "test:backend": "nyc mocha --reporter=min test/backend", "test:frontend": "cross-env NODE_ENV=development node test/frontend/runner.js && nyc report --reporter=html", "test-integration": "docker-compose up --abort-on-container-exit --exit-code-from integration-tests --build --remove-orphans --quiet-pull && docker-compose down", @@ -98,7 +98,7 @@ "postcss-loader": "^2.1.5", "prettier": "^1.13.7", "proxyquire": "^1.8.0", - "puppeteer": "^1.5.0", + "puppeteer": "^1.6.1", "raven-js": "^3.26.4", "redis-mock": "^0.21.0", "require-from-string": "^2.0.2", @@ -112,14 +112,14 @@ "svgo-loader": "^2.1.0", "testpilot-ga": "^0.3.0", "val-loader": "^1.1.1", - "webpack": "^4.16.1", + "webpack": "^4.16.2", "webpack-cli": "^3.1.0", "webpack-dev-middleware": "^3.1.3", "webpack-manifest-plugin": "^2.0.3", "webpack-unassert-loader": "^1.2.0" }, "dependencies": { - "aws-sdk": "^2.279.1", + "aws-sdk": "^2.280.1", "babel-polyfill": "^6.26.0", "choo": "^6.12.1", "cldr-core": "^32.0.0", @@ -128,7 +128,7 @@ "express-ws": "^4.0.0", "fluent": "^0.6.4", "fluent-langneg": "^0.1.0", - "helmet": "^3.12.1", + "helmet": "^3.13.0", "mkdirp": "^0.5.1", "mozlog": "^2.2.0", "raven": "^2.6.3", diff --git a/test/frontend/tests/workflow-tests.js b/test/frontend/tests/workflow-tests.js index 70123820..04f5900b 100644 --- a/test/frontend/tests/workflow-tests.js +++ b/test/frontend/tests/workflow-tests.js @@ -3,7 +3,10 @@ import FileSender from '../../../app/fileSender'; import FileReceiver from '../../../app/fileReceiver'; const headless = /Headless/.test(navigator.userAgent); -const noSave = !headless; // only run the saveFile code if headless +// TODO: save on headless doesn't work as it used to since it now +// follows a link instead of fetch. Maybe there's a way to make it +// work? For now always set noSave. +const noSave = true || !headless; // only run the saveFile code if headless // FileSender uses a File in real life but a Blob works for testing const blob = new Blob([new ArrayBuffer(1024 * 128)], { type: 'text/plain' }); From a80d007e0c9d4b63b99a7c9a03ac73e7c5a54203 Mon Sep 17 00:00:00 2001 From: Donovan Preston Date: Fri, 27 Jul 2018 09:11:46 -0400 Subject: [PATCH 049/368] Hook up the android kotlin code to the send js code (#860) --- .gitignore | 3 + android/android.iml | 2 +- android/android.js | 159 +++++++++++++++ android/app/app.iml | 3 +- android/app/build.gradle | 9 + android/app/src/main/AndroidManifest.xml | 2 +- android/app/src/main/assets/background_1.jpg | Bin 0 -> 312252 bytes android/app/src/main/assets/index.css | 84 ++++++++ android/app/src/main/assets/index.html | 185 +----------------- .../app/src/main/assets/intent-target.html | 20 -- .../mozilla/send/sendandroid/MainActivity.kt | 23 ++- android/generateAndLinkBundle.js | 21 ++ app/api.js | 7 +- app/fileManager.js | 12 +- build/version_plugin.js | 6 +- webpack.config.js | 3 +- 16 files changed, 317 insertions(+), 222 deletions(-) create mode 100644 android/android.js create mode 100644 android/app/src/main/assets/background_1.jpg create mode 100644 android/app/src/main/assets/index.css delete mode 100644 android/app/src/main/assets/intent-target.html create mode 100644 android/generateAndLinkBundle.js diff --git a/.gitignore b/.gitignore index 1c5a2fc6..f12a06e0 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,6 @@ dist .nyc_output .tox .pytest_cache +android/app/src/main/assets/vendor.js +android/app/src/main/assets/android.js + diff --git a/android/android.iml b/android/android.iml index 686bd2aa..8dac7322 100644 --- a/android/android.iml +++ b/android/android.iml @@ -13,7 +13,7 @@ - + \ No newline at end of file diff --git a/android/android.js b/android/android.js new file mode 100644 index 00000000..b0ca7557 --- /dev/null +++ b/android/android.js @@ -0,0 +1,159 @@ +/* global window, document, fetch */ + +const MAXFILESIZE = 1024 * 1024 * 1024 * 2; + +const EventEmitter = require('events'); +const emitter = new EventEmitter(); + +function dom(tagName, attributes, children = []) { + const node = document.createElement(tagName); + for (const name in attributes) { + if (name.indexOf('on') === 0) { + node[name] = attributes[name]; + } else if (name === 'htmlFor') { + node.htmlFor = attributes.htmlFor; + } else if (name === 'className') { + node.className = attributes.className; + } else { + node.setAttribute(name, attributes[name]); + } + } + if (!(children instanceof Array)) { + children = [children]; + } + for (let child of children) { + if (typeof child === 'string') { + child = document.createTextNode(child); + } + node.appendChild(child); + } + return node; +} + +function uploadComplete(file) { + document.body.innerHTML = ''; + const input = dom('input', { id: 'url', value: file.url }); + const copy = dom( + 'button', + { + id: 'copy-button', + className: 'button', + onclick: () => { + input.select(); + document.execCommand('copy'); + input.blur(); + copy.textContent = 'Copied!'; + setTimeout(function() { + copy.textContent = 'Copy to clipboard'; + }, 2000); + } + }, + 'Copy to clipboard' + ); + const node = dom( + 'div', + { id: 'striped' }, + dom('div', { id: 'white' }, [ + input, + copy, + dom( + 'button', + { id: 'send-another', className: 'button', onclick: render }, + 'Send another file' + ) + ]) + ); + document.body.appendChild(node); +} + +const state = { + storage: { + files: [], + remove: function(fileId) { + console.log('REMOVE FILEID', fileId); + }, + writeFile: function(file) { + console.log('WRITEFILE', file); + }, + addFile: uploadComplete, + totalUploads: 0 + }, + transfer: null, + uploading: false, + settingPassword: false, + passwordSetError: null, + route: '/' +}; + +function upload(event) { + event.preventDefault(); + const target = event.target; + const file = target.files[0]; + if (file.size === 0) { + return; + } + if (file.size > MAXFILESIZE) { + console.log('file too big (no bigger than ' + MAXFILESIZE + ')'); + return; + } + + emitter.emit('upload', { file: file, type: 'click' }); +} + +function render() { + document.body.innerHTML = ''; + const striped = dom( + 'div', + { id: 'striped' }, + dom('div', { id: 'white' }, [ + dom('label', { id: 'label', htmlFor: 'input' }, 'Choose file'), + dom('input', { + id: 'input', + type: 'file', + name: 'input', + onchange: upload + }) + ]) + ); + document.body.appendChild(striped); +} + +emitter.on('render', function() { + document.body.innerHTML = ''; + const percent = + (state.transfer.progress[0] / state.transfer.progress[1]) * 100; + const node = dom( + 'div', + { style: 'background-color: white; width: 100%' }, + dom('span', { + style: `display: inline-block; width: ${percent}%; background-color: blue` + }) + ); + document.body.appendChild(node); +}); + +emitter.on('pushState', function(path) { + console.log('pushState ' + path + ' ' + JSON.stringify(state)); +}); + +const fileManager = require('../app/fileManager').default; +try { + fileManager(state, emitter); +} catch (e) { + console.error('error' + e); + console.error(e); +} + +window.addEventListener( + 'message', + event => { + fetch(event.data) + .then(res => res.blob()) + .then(blob => { + emitter.emit('upload', { file: blob, type: 'share' }); + }); + }, + false +); + +render(); diff --git a/android/app/app.iml b/android/app/app.iml index 418506f8..5f5dbac2 100644 --- a/android/app/app.iml +++ b/android/app/app.iml @@ -22,13 +22,14 @@ - +
`; }; diff --git a/app/pages/preview/index.js b/app/pages/preview/index.js index bfb83a54..12d6aee2 100644 --- a/app/pages/preview/index.js +++ b/app/pages/preview/index.js @@ -23,6 +23,7 @@ module.exports = function(state, emit) { return split( state, + emit, downloadedFiles(fileInfo, state, emit), html`
diff --git a/app/pages/share/index.js b/app/pages/share/index.js index 5c35a92b..2ba0d3e3 100644 --- a/app/pages/share/index.js +++ b/app/pages/share/index.js @@ -19,6 +19,7 @@ module.exports = function(state, emit) { return split( state, + emit, uploadedFileList(file, state, emit), html`
diff --git a/app/pages/signin/index.js b/app/pages/signin/index.js index d63c7a8a..16bbeb2e 100644 --- a/app/pages/signin/index.js +++ b/app/pages/signin/index.js @@ -6,7 +6,7 @@ const bytes = require('../../utils').bytes; module.exports = function(state, emit) { return html` -
+
${title(state)} +
`; function submitEmail(event) { diff --git a/app/pages/split.js b/app/pages/split.js index f5b50de1..32652bcd 100644 --- a/app/pages/split.js +++ b/app/pages/split.js @@ -1,18 +1,20 @@ const html = require('choo/html'); const title = require('../templates/title'); const signupPromo = require('../templates/signupPromo'); +const controlArea = require('../templates/controlArea'); -module.exports = function(state, a, b) { +module.exports = function(state, emit, a, b) { return html` -
-
- ${title(state)} - ${a} -
-
- ${signupPromo(state)} - ${b} -
+
+ ${controlArea(state, emit)} +
+ ${title(state)} + ${a}
+
+ ${b} +
+ ${signupPromo(state)} +
`; }; diff --git a/app/pages/unsupported/index.js b/app/pages/unsupported/index.js index 61c724f5..cb3c91b4 100644 --- a/app/pages/unsupported/index.js +++ b/app/pages/unsupported/index.js @@ -32,7 +32,7 @@ module.exports = function(state) { } return html` -
+
${title(state)}
${strings.header}
@@ -53,7 +53,7 @@ module.exports = function(state) {
${strings.explainer}
-
`; +
`; }; function outdatedStrings(state) { diff --git a/app/pages/uploads/index.js b/app/pages/uploads/index.js new file mode 100644 index 00000000..23e6ee05 --- /dev/null +++ b/app/pages/uploads/index.js @@ -0,0 +1,18 @@ +const html = require('choo/html'); +const controlArea = require('../../templates/controlArea'); +const archiveTile = require('../../templates/archiveTile'); + +module.exports = function(state, emit) { + const fileArea = state.storage.files.length + ? html`
    + ${state.storage.files.map(f => archiveTile(f, state))} +
` + : html`
nothing to see here
`; + return html`
+ ${controlArea(state, emit)} +
+

${state.translate('myUploads')}

+ ${fileArea} +
+
`; +}; diff --git a/app/pages/uploads/uploads.css b/app/pages/uploads/uploads.css new file mode 100644 index 00000000..a2a2612e --- /dev/null +++ b/app/pages/uploads/uploads.css @@ -0,0 +1,11 @@ +.myUploads { + margin: 0; + padding: 0; + display: grid; + grid-gap: 12px; + grid-template-columns: repeat(auto-fit, 150px); + grid-auto-columns: 150px; + grid-auto-rows: 160px; + list-style-type: none; + overflow: scroll; +} diff --git a/app/pages/welcome/index.js b/app/pages/welcome/index.js index 675b9e9b..0417f1e5 100644 --- a/app/pages/welcome/index.js +++ b/app/pages/welcome/index.js @@ -2,5 +2,5 @@ const fileManager = require('../../templates/fileManager'); const split = require('../split'); module.exports = function(state, emit) { - return split(state, fileManager(state, emit)); + return split(state, emit, fileManager(state, emit)); }; diff --git a/app/routes/index.js b/app/routes/index.js index 9e485f17..80ff1a04 100644 --- a/app/routes/index.js +++ b/app/routes/index.js @@ -30,11 +30,9 @@ module.exports = function() { ${modalDialog(state, emit)} ${banner(state, emit)} ${header(state, emit)} -
- ${page(state, emit)} -
+ ${page(state, emit)} ${footer(state)} - `; + `; if (state.layout) { // server side only return state.layout(state, b); @@ -45,6 +43,7 @@ module.exports = function() { app.route('/', body(require('../pages/welcome'))); app.route('/share/:id', body(require('../pages/share'))); + app.route('/uploads', body(require('../pages/uploads'))); app.route('/download/:id', body(download)); app.route('/download/:id/:key', body(download)); app.route('/unsupported/:reason', body(require('../pages/unsupported'))); diff --git a/app/templates/archiveTile/archiveTile.css b/app/templates/archiveTile/archiveTile.css new file mode 100644 index 00000000..767edcf4 --- /dev/null +++ b/app/templates/archiveTile/archiveTile.css @@ -0,0 +1,10 @@ +.archiveTile { + border: 1px solid #d7d7db; + border-radius: 4px; + width: 100%; + height: 100%; +} + +.archiveTile:hover { + border: 1px solid lightblue; +} diff --git a/app/templates/archiveTile/index.js b/app/templates/archiveTile/index.js new file mode 100644 index 00000000..9992b4b5 --- /dev/null +++ b/app/templates/archiveTile/index.js @@ -0,0 +1,8 @@ +const html = require('choo/html'); + +module.exports = function(archive) { + return html` +
  • + ${archive.name} +
  • `; +}; diff --git a/app/templates/controlArea/controlArea.css b/app/templates/controlArea/controlArea.css new file mode 100644 index 00000000..05f961ea --- /dev/null +++ b/app/templates/controlArea/controlArea.css @@ -0,0 +1,22 @@ +.controlArea { + border-right: 1px solid #d7d7db; +} + +.controlArea > ul { + margin: 0; + padding: 0; + list-style-type: none; + display: flex; + flex-direction: column; + align-items: center; +} + +.controlArea > ul > li { + margin: 12px; +} + +@media (max-device-width: 720px), (max-width: 720px) { + .controlArea > ul { + flex-direction: row; + } +} diff --git a/app/templates/controlArea/index.js b/app/templates/controlArea/index.js new file mode 100644 index 00000000..ca456bc8 --- /dev/null +++ b/app/templates/controlArea/index.js @@ -0,0 +1,28 @@ +const html = require('choo/html'); +const assets = require('../../../common/assets'); +const userAccount = require('../userAccount'); + +module.exports = function(state, emit) { + const account = state.capabilities.account + ? html`
  • + ${userAccount(state, emit)} +
  • ` + : null; + return html` + + `; +}; diff --git a/app/templates/footer/footer.css b/app/templates/footer/footer.css index 06910538..1a4d05c3 100644 --- a/app/templates/footer/footer.css +++ b/app/templates/footer/footer.css @@ -6,6 +6,7 @@ display: flex; flex-direction: row; justify-content: flex-end; + align-items: center; } .legalSection { @@ -34,6 +35,24 @@ display: none; } +.feedback { + background-color: #000; + background-image: url('../assets/feedback.svg'); + background-position: 2px 4px; + background-repeat: no-repeat; + background-size: 18px; + color: var(--primaryControlFGColor); + cursor: pointer; + display: block; + font-size: 12px; + line-height: 12px; + padding: 5px 5px 5px 20px; + text-indent: 2px; + transition: all 250ms ease-in-out; + white-space: nowrap; + margin-left: 12px; +} + @media (max-device-width: 720px), (max-width: 720px) { .footer { justify-content: flex-start; diff --git a/app/templates/footer/index.js b/app/templates/footer/index.js index 3c837eab..3833ca0f 100644 --- a/app/templates/footer/index.js +++ b/app/templates/footer/index.js @@ -1,7 +1,11 @@ const html = require('choo/html'); const assets = require('../../../common/assets'); +const version = require('../../../package.json').version; +const { browserName } = require('../../utils'); module.exports = function(state) { + const browser = browserName(); + const feedbackUrl = `https://qsurvey.mozilla.com/s3/txp-firefox-send?ver=${version}&browser=${browser}`; const footer = html`