diff --git a/.npmignore b/.npmignore
index 38f33843..4f4a63e3 100644
--- a/.npmignore
+++ b/.npmignore
@@ -64,3 +64,6 @@ yarn.lock
tests
lib/.watchmanconfig
buddybuild_postclone.sh
+bin/test.js
+.github
+example
diff --git a/README.md b/README.md
index 24751e1c..2e4d5b03 100644
--- a/README.md
+++ b/README.md
@@ -3,13 +3,16 @@
[](https://www.npmjs.com/package/react-native-firebase)
[](https://www.npmjs.com/package/react-native-firebase)
[](http://packagequality.com/#?package=react-native-firebase)
-[](/LICENSE)
[](https://discord.gg/t6bdqMs)
[](https://www.patreon.com/invertase)
**RNFirebase** makes using [Firebase](http://firebase.com) with React Native simple.
+
+
> [Current Docs](http://invertase.link/docs) | [@next Docs](http://invertase.link/v3) | [iOS Install Guide](http://invertase.link/ios) | [Android Install Guide](http://invertase.link/android) | [FAQs](http://invertase.io/react-native-firebase/#/faqs) | [Feature Requests](http://invertase.link/requests)
diff --git a/android/src/main/java/io/invertase/firebase/analytics/RNFirebaseAnalyticsPackage.java b/android/src/main/java/io/invertase/firebase/analytics/RNFirebaseAnalyticsPackage.java
index c1526610..15fe7c9e 100644
--- a/android/src/main/java/io/invertase/firebase/analytics/RNFirebaseAnalyticsPackage.java
+++ b/android/src/main/java/io/invertase/firebase/analytics/RNFirebaseAnalyticsPackage.java
@@ -1,5 +1,7 @@
package io.invertase.firebase.analytics;
+import android.support.annotation.RequiresPermission;
+
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.NativeModule;
@@ -13,6 +15,9 @@ import java.util.List;
@SuppressWarnings("unused")
public class RNFirebaseAnalyticsPackage implements ReactPackage {
+ @RequiresPermission(
+ allOf = {"android.permission.INTERNET", "android.permission.ACCESS_NETWORK_STATE", "android.permission.WAKE_LOCK"}
+ )
public RNFirebaseAnalyticsPackage() {
}
diff --git a/android/src/main/java/io/invertase/firebase/auth/RNFirebaseAuth.java b/android/src/main/java/io/invertase/firebase/auth/RNFirebaseAuth.java
index 8c0a39ee..a6c3d31c 100644
--- a/android/src/main/java/io/invertase/firebase/auth/RNFirebaseAuth.java
+++ b/android/src/main/java/io/invertase/firebase/auth/RNFirebaseAuth.java
@@ -1,5 +1,7 @@
package io.invertase.firebase.auth;
+import android.app.Activity;
+import android.os.Parcel;
import android.util.Log;
import android.net.Uri;
import android.support.annotation.NonNull;
@@ -721,6 +723,101 @@ class RNFirebaseAuth extends ReactContextBaseJavaModule {
});
}
+ /**
+ * verifyPhoneNumber
+ *
+ * @param appName
+ * @param phoneNumber
+ * @param timeout
+ */
+ @ReactMethod
+ public void verifyPhoneNumber(final String appName, final String phoneNumber, final String requestKey, final int timeout) {
+ FirebaseApp firebaseApp = FirebaseApp.getInstance(appName);
+ final FirebaseAuth firebaseAuth = FirebaseAuth.getInstance(firebaseApp);
+ final Activity activity = mReactContext.getCurrentActivity();
+
+ Log.d(TAG, "verifyPhoneNumber:" + phoneNumber);
+
+ PhoneAuthProvider.OnVerificationStateChangedCallbacks callbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
+
+ @Override
+ public void onVerificationCompleted(final PhoneAuthCredential phoneAuthCredential) {
+ Log.d(TAG, "verifyPhoneNumber:verification:onVerificationCompleted");
+ WritableMap state = Arguments.createMap();
+
+ Parcel parcel = Parcel.obtain();
+ phoneAuthCredential.writeToParcel(parcel, 0);
+
+ // verificationId
+ parcel.setDataPosition(16);
+ String verificationId = parcel.readString();
+
+ // sms Code
+ parcel.setDataPosition(parcel.dataPosition() + 8);
+ String code = parcel.readString();
+
+ state.putString("code", code);
+ state.putString("verificationId", verificationId);
+ parcel.recycle();
+ sendPhoneStateEvent(appName, requestKey, "onVerificationComplete", state);
+ }
+
+ @Override
+ public void onVerificationFailed(FirebaseException e) {
+ // This callback is invoked in an invalid request for verification is made,
+ // e.g. phone number format is incorrect, or the SMS quota for the project
+ // has been exceeded
+ Log.d(TAG, "verifyPhoneNumber:verification:onVerificationFailed");
+ WritableMap state = Arguments.createMap();
+ state.putMap("error", getJSError(e));
+ sendPhoneStateEvent(appName, requestKey, "onVerificationFailed", state);
+ }
+
+ @Override
+ public void onCodeSent(String verificationId, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
+ Log.d(TAG, "verifyPhoneNumber:verification:onCodeSent");
+ WritableMap state = Arguments.createMap();
+ state.putString("verificationId", verificationId);
+
+ // todo forceResendingToken - it's actually just an empty class ... no actual token >.>
+ // Parcel parcel = Parcel.obtain();
+ // forceResendingToken.writeToParcel(parcel, 0);
+ //
+ // // verificationId
+ // parcel.setDataPosition(0);
+ // int int1 = parcel.readInt();
+ // String token = parcel.readString();
+ //
+ // state.putString("refreshToken", token);
+ // parcel.recycle();
+
+ state.putString("verificationId", verificationId);
+ sendPhoneStateEvent(appName, requestKey, "onCodeSent", state);
+ }
+
+ @Override
+ public void onCodeAutoRetrievalTimeOut(String verificationId) {
+ super.onCodeAutoRetrievalTimeOut(verificationId);
+ Log.d(TAG, "verifyPhoneNumber:verification:onCodeAutoRetrievalTimeOut");
+ WritableMap state = Arguments.createMap();
+ state.putString("verificationId", verificationId);
+ sendPhoneStateEvent(appName, requestKey, "onCodeAutoRetrievalTimeout", state);
+ }
+ };
+
+ if (activity != null) {
+ PhoneAuthProvider.getInstance(firebaseAuth)
+ .verifyPhoneNumber(
+ phoneNumber,
+ timeout,
+ TimeUnit.SECONDS,
+ activity,
+ callbacks
+ //, PhoneAuthProvider.ForceResendingToken.zzboe() // TODO FORCE RESENDING
+ );
+ }
+ }
+
/**
* confirmPasswordReset
*
@@ -1270,4 +1367,19 @@ class RNFirebaseAuth extends ReactContextBaseJavaModule {
return userMap;
}
+
+ /**
+ * @param appName
+ * @param requestKey
+ * @param type
+ * @param state
+ */
+ private void sendPhoneStateEvent(String appName, String requestKey, String type, WritableMap state) {
+ WritableMap eventMap = Arguments.createMap();
+ eventMap.putString("appName", appName);
+ eventMap.putString("requestKey", requestKey);
+ eventMap.putString("type", type);
+ eventMap.putMap("state", state);
+ Utils.sendEvent(mReactContext, "phone_auth_state_changed", eventMap);
+ }
}
diff --git a/android/src/main/java/io/invertase/firebase/messaging/RNFirebaseMessaging.java b/android/src/main/java/io/invertase/firebase/messaging/RNFirebaseMessaging.java
index 261a4dee..87fa616e 100644
--- a/android/src/main/java/io/invertase/firebase/messaging/RNFirebaseMessaging.java
+++ b/android/src/main/java/io/invertase/firebase/messaging/RNFirebaseMessaging.java
@@ -27,6 +27,7 @@ import com.google.firebase.messaging.RemoteMessage.Notification;
import io.invertase.firebase.Utils;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Map;
import java.util.Set;
@@ -72,6 +73,18 @@ public class RNFirebaseMessaging extends ReactContextBaseJavaModule implements L
promise.resolve(FirebaseInstanceId.getInstance().getToken());
}
+ @ReactMethod
+ public void deleteInstanceId(Promise promise){
+ try {
+ Log.d(TAG, "Deleting instance id");
+ FirebaseInstanceId.getInstance().deleteInstanceId();
+ promise.resolve(null);
+ } catch (IOException e) {
+ Log.e(TAG, e.getMessage());
+ promise.reject(null, e.getMessage());
+ }
+ }
+
@ReactMethod
public void createLocalNotification(ReadableMap details) {
Bundle bundle = Arguments.toBundle(details);
diff --git a/android/src/main/java/io/invertase/firebase/storage/RNFirebaseStoragePackage.java b/android/src/main/java/io/invertase/firebase/storage/RNFirebaseStoragePackage.java
index b2668c6f..114a1218 100644
--- a/android/src/main/java/io/invertase/firebase/storage/RNFirebaseStoragePackage.java
+++ b/android/src/main/java/io/invertase/firebase/storage/RNFirebaseStoragePackage.java
@@ -1,5 +1,7 @@
package io.invertase.firebase.storage;
+import android.support.annotation.RequiresPermission;
+
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.NativeModule;
@@ -13,6 +15,9 @@ import java.util.List;
@SuppressWarnings("unused")
public class RNFirebaseStoragePackage implements ReactPackage {
+ @RequiresPermission(
+ allOf = {"android.permission.INTERNET", "android.permission.ACCESS_NETWORK_STATE", "android.permission.READ_EXTERNAL_STORAGE", "android.permission.WRITE_EXTERNAL_STORAGE"}
+ )
public RNFirebaseStoragePackage() {
}
@@ -35,7 +40,7 @@ public class RNFirebaseStoragePackage implements ReactPackage {
* listed here. Also listing a native module here doesn't imply that the JS implementation of it
* will be automatically included in the JS bundle.
*/
- // TODO: Removed in 0.47.0. Here for backwards compatability
+ // TODO: Removed in 0.47.0. Here for backwards compatibility
public List> createJSModules() {
return Collections.emptyList();
}
diff --git a/bin/test.js b/bin/test.js
new file mode 100644
index 00000000..a0152020
--- /dev/null
+++ b/bin/test.js
@@ -0,0 +1,52 @@
+const shell = require('shelljs');
+
+const WATCH_SRC = require('path').resolve('./lib');
+const WATCH_OUT = require('path').resolve('./tests/firebase');
+
+/*
+ "tests-watch-init": "wml add $(node --eval \"console.log(require('path').resolve('./lib'));\") $(node --eval \"console.log(require('path').resolve('./tests/firebase'));\")",
+ "tests-watch-start": "watchman watch $(node --eval \"console.log(require('path').resolve('./lib'));\") && wml start",
+ "tests-watch-stop": "watchman watch-del $(node --eval \"console.log(require('path').resolve('./lib'));\") && wml stop"
+ */
+
+if (process.argv.includes('watch')) {
+ if (!shell.which('wml')) {
+ shell.echo('');
+ shell.echo('---------------------------------------------------');
+ shell.echo(' Missing required npm global from library wix/wml. ');
+ shell.echo('---------------------------------------------------');
+ shell.echo('');
+ shell.exit(1);
+ }
+
+ if (!shell.which('watchman')) {
+ shell.echo('');
+ shell.echo('---------------------------------------------------');
+ shell.echo(' Missing required executable: watchman ');
+ shell.echo('---------------------------------------------------');
+ shell.echo('');
+ shell.exit(1);
+ }
+
+ if (process.argv.includes('init')) {
+ console.log(`wml add ${WATCH_SRC} ${WATCH_OUT}`);
+ if (shell.exec(`wml add ${WATCH_SRC} ${WATCH_OUT}`).code !== 0) {
+ shell.echo('Error setting up watched location via WML.');
+ shell.exit(1);
+ }
+ }
+
+ if (process.argv.includes('start')) {
+ console.log(`watchman watch ${WATCH_SRC} && wml start`);
+ const watcher = shell.exec(`watchman watch ${WATCH_SRC} && wml start`, { async: true });
+ watcher.stdout.on('data', console.log);
+ watcher.stderr.on('data', console.error);
+ }
+
+ if (process.argv.includes('stop')) {
+ console.log(`watchman watch-del ${WATCH_SRC} && wml stop && wml rm all`);
+ const watcher = shell.exec(`watchman watch-del ${WATCH_SRC} && wml stop && wml rm all`, { async: true });
+ watcher.stdout.on('data', console.log);
+ watcher.stderr.on('data', console.error);
+ }
+}
diff --git a/docs/modules/cloud-messaging.md b/docs/modules/cloud-messaging.md
index fd5f489f..5ff4fa97 100644
--- a/docs/modules/cloud-messaging.md
+++ b/docs/modules/cloud-messaging.md
@@ -53,6 +53,20 @@ firebase.messaging().getToken()
});
```
+### deleteInstanceId(): `Promise`
+
+Reset Instance ID and revokes all tokens.
+
+```javascript
+firebase.messaging().deleteInstanceId()
+ .then(() => {
+ console.log('Deleted instance id successfully');
+ })
+ .catch((error: any) => {
+ console.log(`Cannot delete instance id: ${error.message}`);
+ });
+```
+
### onTokenRefresh(listener: `Function`)
On the event a devices FCM token is refreshed by Google, the new token is returned in a callback listener.
diff --git a/index.d.ts b/index.d.ts
index e2f0c29f..9f50442f 100644
--- a/index.d.ts
+++ b/index.d.ts
@@ -8,7 +8,7 @@ declare module "react-native-firebase" {
export default class FireBase {
constructor(config?: RNFirebase.configurationOptions)
- log: any
+ log: any;
analytics(): RNFirebase.Analytics;
@@ -22,7 +22,7 @@ declare module "react-native-firebase" {
ServerValue: {
TIMESTAMP: number
}
- }
+ };
/**RNFirebase mimics the Web Firebase SDK Storage,
* whilst providing some iOS and Android specific functionality.
@@ -608,6 +608,10 @@ declare module "react-native-firebase" {
* This token can be used in the Firebase console to send messages to directly.
*/
getToken(forceRefresh?: Boolean): Promise
+ /**
+ * Reset Instance ID and revokes all tokens.
+ */
+ deleteInstanceId(): Promise
/**
* On the event a devices FCM token is refreshed by Google,
* the new token is returned in a callback listener.
diff --git a/ios/RNFirebase/RNFirebase.m b/ios/RNFirebase/RNFirebase.m
index 1bbe5f89..d6eff6ae 100644
--- a/ios/RNFirebase/RNFirebase.m
+++ b/ios/RNFirebase/RNFirebase.m
@@ -79,7 +79,7 @@ RCT_EXPORT_METHOD(deleteApp:
/**
* React native constant exports - exports native firebase apps mainly
- * @return
+ * @return NSDictionary
*/
- (NSDictionary *)constantsToExport {
NSMutableDictionary *constants = [NSMutableDictionary new];
diff --git a/ios/RNFirebase/RNFirebaseEvents.h b/ios/RNFirebase/RNFirebaseEvents.h
index ffb3d369..7cccf762 100644
--- a/ios/RNFirebase/RNFirebaseEvents.h
+++ b/ios/RNFirebase/RNFirebaseEvents.h
@@ -5,6 +5,7 @@
static NSString *const AUTH_CHANGED_EVENT = @"auth_state_changed";
static NSString *const AUTH_ID_TOKEN_CHANGED_EVENT = @"auth_id_token_changed";
+static NSString *const PHONE_AUTH_STATE_CHANGED_EVENT = @"phone_auth_state_changed";
// Database
static NSString *const DATABASE_SYNC_EVENT = @"database_sync_event";
diff --git a/ios/RNFirebase/crash/RNFirebaseCrash.m b/ios/RNFirebase/crash/RNFirebaseCrash.m
index c34b2eab..1ff364f0 100644
--- a/ios/RNFirebase/crash/RNFirebaseCrash.m
+++ b/ios/RNFirebase/crash/RNFirebaseCrash.m
@@ -7,15 +7,15 @@
RCT_EXPORT_MODULE();
RCT_EXPORT_METHOD(log:(NSString *)message) {
- FIRCrashLog(message);
+ FIRCrashLog(@"%@", message);
}
RCT_EXPORT_METHOD(logcat:(nonnull NSNumber *) level tag:(NSString *) tag message:(NSString *) message) {
- FIRCrashLog(message);
+ FIRCrashLog(@"%@", message);
}
RCT_EXPORT_METHOD(report:(NSString *) message) {
- FIRCrashLog(message);
+ FIRCrashLog(@"%@", message);
assert(NO);
}
diff --git a/ios/RNFirebase/messaging/RNFirebaseMessaging.m b/ios/RNFirebase/messaging/RNFirebaseMessaging.m
index 7415df99..b262d724 100644
--- a/ios/RNFirebase/messaging/RNFirebaseMessaging.m
+++ b/ios/RNFirebase/messaging/RNFirebaseMessaging.m
@@ -4,6 +4,7 @@
#if __has_include()
#import "RNFirebaseEvents.h"
#import
+#import
#import
#import
@@ -257,6 +258,16 @@ RCT_EXPORT_METHOD(getToken:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseR
resolve([FIRMessaging messaging].FCMToken);
}
+RCT_EXPORT_METHOD(deleteInstanceId:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
+ [[FIRInstanceID instanceID] deleteIDWithHandler:^(NSError * _Nullable error) {
+ if (!error) {
+ resolve(nil);
+ } else {
+ reject(@"instance_id_error", @"Failed to delete instance id", error);
+ }
+ }];
+}
+
RCT_EXPORT_METHOD(requestPermissions:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
if (RCTRunningInAppExtension()) {
return;
diff --git a/ios/RNFirebase/storage/RNFirebaseStorage.m b/ios/RNFirebase/storage/RNFirebaseStorage.m
index 42f6a626..8bd00f60 100644
--- a/ios/RNFirebase/storage/RNFirebaseStorage.m
+++ b/ios/RNFirebase/storage/RNFirebaseStorage.m
@@ -221,8 +221,22 @@ RCT_EXPORT_METHOD(putFile:(NSString *) appName
options.networkAccessAllowed = true;
[[PHImageManager defaultManager] requestImageDataForAsset:asset options:options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
if (info[PHImageErrorKey] == nil) {
- firmetadata.contentType = [self utiToMimeType:dataUTI];
- [self uploadData:appName data:imageData firmetadata:firmetadata path:path resolver:resolve rejecter:reject];
+ if (UTTypeConformsTo((__bridge CFStringRef)dataUTI, kUTTypeJPEG)) {
+ firmetadata.contentType = [self utiToMimeType:dataUTI];
+ [self uploadData:appName data:imageData firmetadata:firmetadata path:path resolver:resolve rejecter:reject];
+ } else {
+ // if the image UTI is not JPEG then convert to JPEG, e.g. HEI
+ CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFDataRef)imageData, NULL);
+ NSDictionary *imageInfo = (__bridge NSDictionary*)CGImageSourceCopyPropertiesAtIndex(source, 0, NULL);
+ NSDictionary *imageMetadata = [imageInfo copy];
+ NSMutableData *imageDataJPEG = [NSMutableData data];
+ CGImageDestinationRef destination = CGImageDestinationCreateWithData((__bridge CFMutableDataRef)imageDataJPEG, kUTTypeJPEG, 1, NULL);
+ CGImageDestinationAddImageFromSource(destination, source, 0, (__bridge CFDictionaryRef)imageMetadata);
+ CGImageDestinationFinalize(destination);
+ // Manually set mimetype to JPEG
+ firmetadata.contentType = @"image/jpeg";
+ [self uploadData:appName data:[NSData dataWithData:imageDataJPEG] firmetadata:firmetadata path:path resolver:resolve rejecter:reject];
+ }
} else {
reject(@"storage/request-image-data-failed", @"Could not obtain image data for the specified file.", nil);
}
diff --git a/lib/modules/auth/PhoneAuthListener.js b/lib/modules/auth/PhoneAuthListener.js
index aa6037cf..942780be 100644
--- a/lib/modules/auth/PhoneAuthListener.js
+++ b/lib/modules/auth/PhoneAuthListener.js
@@ -1,6 +1,6 @@
// @flow
import INTERNALS from './../../internals';
-import { generatePushID, isFunction, isAndroid, isIOS, isString } from './../../utils';
+import { generatePushID, isFunction, isAndroid, isIOS, isString, nativeToJSError } from './../../utils';
type PhoneAuthSnapshot = {
state: 'sent' | 'timeout' | 'verified' | 'error',
@@ -17,15 +17,16 @@ type PhoneAuthError = {
};
export default class PhoneAuthListener {
+
_auth: Object;
- _reject: Function | null;
- _resolve: Function | null;
- _promise: Promise | null;
- _credential: Object | null;
_timeout: number;
- _phoneAuthRequestKey: string;
_publicEvents: Object;
_internalEvents: Object;
+ _reject: Function | null;
+ _resolve: Function | null;
+ _credential: Object | null;
+ _promise: Promise<*> | null;
+ _phoneAuthRequestKey: string;
/**
*
@@ -33,14 +34,14 @@ export default class PhoneAuthListener {
* @param phoneNumber
* @param timeout
*/
- constructor(auth: Object, phoneNumber: string, timeout): PhoneAuthListener {
+ constructor(auth: Object, phoneNumber: string, timeout?: number) {
this._auth = auth;
this._reject = null;
this._resolve = null;
this._promise = null;
this._credential = null;
- this._timeout = timeout || 20000; // 20 secs
+ this._timeout = timeout || 20; // 20 secs
this._phoneAuthRequestKey = generatePushID();
// internal events
@@ -65,11 +66,20 @@ export default class PhoneAuthListener {
this._subscribeToEvents();
// start verification flow natively
- this._auth._native.verifyPhoneNumber(
- phoneNumber,
- this._phoneAuthRequestKey,
- this._timeout,
- );
+ if (isAndroid) {
+ this._auth._native.verifyPhoneNumber(
+ phoneNumber,
+ this._phoneAuthRequestKey,
+ this._timeout,
+ );
+ }
+
+ if (isIOS) {
+ this._auth._native.verifyPhoneNumber(
+ phoneNumber,
+ this._phoneAuthRequestKey,
+ );
+ }
}
/**
@@ -110,8 +120,6 @@ export default class PhoneAuthListener {
*/
_emitToErrorCb(snapshot) {
const error = snapshot.error;
- error.verificationId = snapshot.verificationId;
-
if (this._reject) this._reject(error);
this._auth.emit(this._publicEvents.error, error);
}
@@ -174,12 +182,12 @@ export default class PhoneAuthListener {
/**
* Internal code sent event handler
- * @param verificationId
* @private
+ * @param credential
*/
- _codeSentHandler(verificationId) {
+ _codeSentHandler(credential) {
const snapshot: PhoneAuthSnapshot = {
- verificationId,
+ verificationId: credential.verificationId,
code: null,
error: null,
state: 'sent',
@@ -199,12 +207,12 @@ export default class PhoneAuthListener {
/**
* Internal code auto retrieve timeout event handler
- * @param verificationId
* @private
+ * @param credential
*/
- _codeAutoRetrievalTimeoutHandler(verificationId) {
+ _codeAutoRetrievalTimeoutHandler(credential) {
const snapshot: PhoneAuthSnapshot = {
- verificationId,
+ verificationId: credential.verificationId,
code: null,
error: null,
state: 'timeout',
@@ -234,17 +242,19 @@ export default class PhoneAuthListener {
/**
* Internal verification failed event handler
- * @param errObject
+ * @param state
* @private
*/
- _verificationFailedHandler(errObject) {
+ _verificationFailedHandler(state) {
const snapshot: PhoneAuthSnapshot = {
- verificationId: errObject.verificationId,
+ verificationId: state.verificationId,
code: null,
error: null,
state: 'error',
};
+ const { code, message, nativeErrorMessage } = state.error;
+ snapshot.error = nativeToJSError(code, message, { nativeErrorMessage });
this._emitToObservers(snapshot);
this._emitToErrorCb(snapshot);
@@ -256,7 +266,7 @@ export default class PhoneAuthListener {
-- PUBLIC API
--------------*/
- on(event: string, observer: () => PhoneAuthSnapshot, errorCb?: () => PhoneAuthError, successCb?: () => PhoneAuthSnapshot) {
+ on(event: string, observer: () => PhoneAuthSnapshot, errorCb?: () => PhoneAuthError, successCb?: () => PhoneAuthSnapshot): this {
if (!isString(event)) {
throw new Error(INTERNALS.STRINGS.ERROR_MISSING_ARG_NAMED('event', 'string', 'on'));
}
@@ -286,17 +296,19 @@ export default class PhoneAuthListener {
* Promise .then proxy
* @param fn
*/
- then(fn) {
+ then(fn: () => PhoneAuthSnapshot) {
this._promiseDeferred();
- return this._promise.then.bind(this._promise)(fn);
+ if (this._promise) return this._promise.then.bind(this._promise)(fn);
+ return undefined; // will never get here - just to keep flow happy
}
/**
* Promise .catch proxy
* @param fn
*/
- catch(fn) {
+ catch(fn: () => Error) {
this._promiseDeferred();
- return this._promise.catch.bind(this._promise)(fn);
+ if (this._promise) return this._promise.catch.bind(this._promise)(fn);
+ return undefined; // will never get here - just to keep flow happy
}
}
diff --git a/lib/modules/auth/index.js b/lib/modules/auth/index.js
index 0fd1007a..675d0f07 100644
--- a/lib/modules/auth/index.js
+++ b/lib/modules/auth/index.js
@@ -19,6 +19,8 @@ export default class Auth extends ModuleBase {
static _NATIVE_MODULE = 'RNFirebaseAuth';
_user: User | null;
+ _native: Object;
+ _getAppEventName: Function;
_authResult: AuthResultType | null;
authenticated: boolean;
@@ -35,6 +37,13 @@ export default class Auth extends ModuleBase {
this._onAuthStateChanged.bind(this),
);
+ this.addListener(
+ // sub to internal native event - this fans out to
+ // public events based on event.type
+ this._getAppEventName('phone_auth_state_changed'),
+ this._onPhoneAuthStateChanged.bind(this),
+ );
+
this.addListener(
// sub to internal native event - this fans out to
// public event name: onIdTokenChanged
@@ -46,6 +55,16 @@ export default class Auth extends ModuleBase {
this._native.addIdTokenListener();
}
+ /**
+ * Route a phone state change event to the correct listeners
+ * @param event
+ * @private
+ */
+ _onPhoneAuthStateChanged(event: Object) {
+ const eventKey = `phone:auth:${event.requestKey}:${event.type}`;
+ this.emit(eventKey, event.state);
+ }
+
/**
* Internal auth changed listener
* @param auth
@@ -100,7 +119,7 @@ export default class Auth extends ModuleBase {
* Intercept all user actions and send their results to
* auth state change before resolving
* @param promise
- * @returns {Promise.|*}
+ * @returns {Promise.<*>}
* @private
*/
_interceptUserValue(promise) {
@@ -234,7 +253,7 @@ export default class Auth extends ModuleBase {
* @param newPassword
* @return {Promise.}
*/
- confirmPasswordReset(code: string, newPassword: string): Promise {
+ confirmPasswordReset(code: string, newPassword: string): Promise {
return this._native.confirmPasswordReset(code, newPassword);
}
@@ -245,7 +264,7 @@ export default class Auth extends ModuleBase {
* @param code
* @return {Promise.}
*/
- applyActionCode(code: string): Promise {
+ applyActionCode(code: string): Promise {
return this._native.applyActionCode(code);
}
@@ -254,9 +273,9 @@ export default class Auth extends ModuleBase {
*
* @link https://firebase.google.com/docs/reference/js/firebase.auth.Auth#checkActionCode
* @param code
- * @return {Promise.|Promise}
+ * @return {Promise.|Promise}
*/
- checkActionCode(code: string): Promise {
+ checkActionCode(code: string): Promise {
return this._native.checkActionCode(code);
}
diff --git a/lib/modules/messaging/index.js b/lib/modules/messaging/index.js
index 64307d9e..b085428e 100644
--- a/lib/modules/messaging/index.js
+++ b/lib/modules/messaging/index.js
@@ -1,4 +1,4 @@
-import { Platform } from 'react-native';
+import { Platform, NativeModules } from 'react-native';
import ModuleBase from './../../utils/ModuleBase';
import RemoteMessage from './RemoteMessage';
@@ -25,6 +25,8 @@ const WILL_PRESENT_RESULT = {
None: 'UNNotificationPresentationOptionNone',
};
+const FirebaseMessaging = NativeModules.FirebaseMessaging;
+
/**
* IOS only finish function
* @param data
@@ -109,6 +111,14 @@ export default class Messaging extends ModuleBase {
return this._native.getToken();
}
+ /**
+ * Reset Instance ID and revokes all tokens.
+ * @returns {*|Promise.<*>}
+ */
+ deleteInstanceId() {
+ return this._native.deleteInstanceId();
+ }
+
/**
* Create and display a local notification
* @param notification
diff --git a/lib/modules/perf/index.js b/lib/modules/perf/index.js
index 48f8c619..3d25ecfb 100644
--- a/lib/modules/perf/index.js
+++ b/lib/modules/perf/index.js
@@ -6,6 +6,8 @@ export default class PerformanceMonitoring extends ModuleBase {
static _NAMESPACE = 'perf';
static _NATIVE_MODULE = 'RNFirebasePerformance';
+ _native: Object;
+
constructor(firebaseApp: Object, options: Object = {}) {
super(firebaseApp, options);
}
@@ -26,8 +28,4 @@ export default class PerformanceMonitoring extends ModuleBase {
newTrace(trace: string): void {
return new Trace(this, trace);
}
-
- get namespace(): string {
- return 'firebase:perf';
- }
}
diff --git a/lib/utils/ModuleBase.js b/lib/utils/ModuleBase.js
index e8c63ef4..628ea417 100644
--- a/lib/utils/ModuleBase.js
+++ b/lib/utils/ModuleBase.js
@@ -2,10 +2,12 @@
* @flow
*/
import { NativeModules } from 'react-native';
+
import Log from '../utils/log';
-import { nativeWithApp } from './../utils';
import INTERNALS from './../internals';
import FirebaseCore from './../firebase';
+import FirebaseApp from '../firebase-app';
+import { nativeWithApp } from './../utils';
const logs = {};
@@ -24,6 +26,7 @@ const NATIVE_MODULE_EVENTS = {
],
Auth: [
'auth_state_changed',
+ 'phone_auth_state_changed',
],
Database: [
'database_transaction_event',
@@ -42,14 +45,23 @@ const DEFAULTS = {
};
export default class ModuleBase {
+ _native: Object;
+ _module: string;
+ _options: Object;
+ _appName: string;
+ _namespace: string;
+ _firebaseApp: Object;
+ _eventEmitter: Object;
+ static _NAMESPACE: string;
+ static _NATIVE_MODULE: string;
+
/**
*
* @param firebaseApp
* @param options
- * @param moduleName
* @param withEventEmitter
*/
- constructor(firebaseApp, options, withEventEmitter = false) {
+ constructor(firebaseApp: Object, options: Object, withEventEmitter: boolean = false) {
this._module = this.constructor._NATIVE_MODULE.replace('RNFirebase', '');
this._firebaseApp = firebaseApp;
this._appName = firebaseApp._name;
@@ -113,7 +125,7 @@ export default class ModuleBase {
* Returns the FirebaseApp instance for current module
* @return {*}
*/
- get app() {
+ get app(): FirebaseApp {
return this._firebaseApp;
}
@@ -128,27 +140,27 @@ export default class ModuleBase {
* Proxy functions to shared event emitter instance
* https://github.com/facebook/react-native/blob/master/Libraries/EventEmitter/EventEmitter.js
*/
- get sharedEventEmitter() {
+ get sharedEventEmitter(): Object {
return INTERNALS.SharedEventEmitter;
}
- get addListener() {
+ get addListener(): Function {
return INTERNALS.SharedEventEmitter.addListener.bind(INTERNALS.SharedEventEmitter);
}
- get once() {
+ get once(): Function {
return INTERNALS.SharedEventEmitter.once.bind(INTERNALS.SharedEventEmitter);
}
- get on() {
+ get on(): Function {
return INTERNALS.SharedEventEmitter.addListener.bind(INTERNALS.SharedEventEmitter);
}
- get emit() {
+ get emit(): Function {
return INTERNALS.SharedEventEmitter.emit.bind(INTERNALS.SharedEventEmitter);
}
- get listeners() {
+ get listeners(): Function {
return INTERNALS.SharedEventEmitter.listeners.bind(INTERNALS.SharedEventEmitter);
}
@@ -157,11 +169,11 @@ export default class ModuleBase {
return subscriptions && subscriptions.length;
}
- get removeListener() {
+ get removeListener(): Function {
return INTERNALS.SharedEventEmitter.removeListener.bind(INTERNALS.SharedEventEmitter);
}
- get removeAllListeners() {
+ get removeAllListeners(): Function {
return INTERNALS.SharedEventEmitter.removeAllListeners.bind(INTERNALS.SharedEventEmitter);
}
}
diff --git a/lib/utils/index.js b/lib/utils/index.js
index c347dd33..891eb804 100644
--- a/lib/utils/index.js
+++ b/lib/utils/index.js
@@ -7,7 +7,8 @@ import { Platform } from 'react-native';
const PUSH_CHARS = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
const AUTO_ID_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
const hasOwnProperty = Object.hasOwnProperty;
-const DEFAULT_CHUNK_SIZE = 50;
+
+// const DEFAULT_CHUNK_SIZE = 50;
// Source: https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical
const REGEXP_FIELD_NAME = new RegExp(
@@ -92,7 +93,7 @@ export function isFunction(item?: any): boolean {
* @param value
* @return {boolean}
*/
-export function isString(value): Boolean {
+export function isString(value: any): boolean {
return typeof value === 'string';
}
@@ -148,63 +149,63 @@ export function noop(): void {
}
-/**
- * Delays chunks based on sizes per event loop.
- * @param collection
- * @param chunkSize
- * @param operation
- * @param callback
- * @private
- */
-function _delayChunk(collection: Array<*>,
- chunkSize: number,
- operation: Function,
- callback: Function): void {
- const length = collection.length;
- const iterations = Math.ceil(length / chunkSize);
-
- // noinspection ES6ConvertVarToLetConst
- let thisIteration = 0;
-
- setImmediate(function next() {
- const start = thisIteration * chunkSize;
- const _end = start + chunkSize;
- const end = _end >= length ? length : _end;
- const result = operation(collection.slice(start, end), start, end);
-
- if (thisIteration++ > iterations) {
- callback(null, result);
- } else {
- setImmediate(next);
- }
- });
-}
-
-/**
- * Async each with optional chunk size limit
- * @param array
- * @param chunkSize
- * @param iterator
- * @param cb
- */
-export function each(array: Array<*>,
- chunkSize: number | Function,
- iterator: Function,
- cb?: Function): void {
- if (typeof chunkSize === 'function') {
- cb = iterator;
- iterator = chunkSize;
- chunkSize = DEFAULT_CHUNK_SIZE;
- }
-
- if (cb) {
- _delayChunk(array, chunkSize, (slice, start) => {
- for (let ii = 0, jj = slice.length; ii < jj; ii += 1) {
- iterator(slice[ii], start + ii);
- }
- }, cb);
- }
-}
+// /**
+// * Delays chunks based on sizes per event loop.
+// * @param collection
+// * @param chunkSize
+// * @param operation
+// * @param callback
+// * @private
+// */
+// function _delayChunk(collection: Array<*>,
+// chunkSize: number,
+// operation: Function,
+// callback: Function): void {
+// const length = collection.length;
+// const iterations = Math.ceil(length / chunkSize);
+//
+// // noinspection ES6ConvertVarToLetConst
+// let thisIteration = 0;
+//
+// setImmediate(function next() {
+// const start = thisIteration * chunkSize;
+// const _end = start + chunkSize;
+// const end = _end >= length ? length : _end;
+// const result = operation(collection.slice(start, end), start, end);
+//
+// if (thisIteration++ > iterations) {
+// callback(null, result);
+// } else {
+// setImmediate(next);
+// }
+// });
+// }
+//
+// /**
+// * Async each with optional chunk size limit
+// * @param array
+// * @param chunkSize
+// * @param iterator
+// * @param cb
+// */
+// export function each(array: Array<*>,
+// chunkSize: number | Function,
+// iterator: Function,
+// cb?: Function): void {
+// if (typeof chunkSize === 'function') {
+// cb = iterator;
+// iterator = chunkSize;
+// chunkSize = DEFAULT_CHUNK_SIZE;
+// }
+//
+// if (cb) {
+// _delayChunk(array, chunkSize, (slice, start) => {
+// for (let ii = 0, jj = slice.length; ii < jj; ii += 1) {
+// iterator(slice[ii], start + ii);
+// }
+// }, cb);
+// }
+// }
/**
* Returns a string typeof that's valid for Firebase usage
@@ -217,41 +218,41 @@ export function typeOf(value: any): string {
return typeof value;
}
-/**
- * Async map with optional chunk size limit
- * @param array
- * @param chunkSize
- * @param iterator
- * @param cb
- * @returns {*}
- */
-export function map(array: Array<*>,
- chunkSize: number | Function,
- iterator: Function,
- cb?: Function): void {
- if (typeof chunkSize === 'function') {
- cb = iterator;
- iterator = chunkSize;
- chunkSize = DEFAULT_CHUNK_SIZE;
- }
+// /**
+// * Async map with optional chunk size limit
+// * @param array
+// * @param chunkSize
+// * @param iterator
+// * @param cb
+// * @returns {*}
+// */
+// export function map(array: Array<*>,
+// chunkSize: number | Function,
+// iterator: Function,
+// cb?: Function): void {
+// if (typeof chunkSize === 'function') {
+// cb = iterator;
+// iterator = chunkSize;
+// chunkSize = DEFAULT_CHUNK_SIZE;
+// }
+//
+// const result = [];
+// _delayChunk(array, chunkSize, (slice, start) => {
+// for (let ii = 0, jj = slice.length; ii < jj; ii += 1) {
+// result.push(iterator(slice[ii], start + ii, array));
+// }
+// return result;
+// }, () => cb && cb(result));
+// }
- const result = [];
- _delayChunk(array, chunkSize, (slice, start) => {
- for (let ii = 0, jj = slice.length; ii < jj; ii += 1) {
- result.push(iterator(slice[ii], start + ii, array));
- }
- return result;
- }, () => cb && cb(result));
-}
-
-/**
- *
- * @param string
- * @return {string}
- */
-export function capitalizeFirstLetter(string: String) {
- return `${string.charAt(0).toUpperCase()}${string.slice(1)}`;
-}
+// /**
+// *
+// * @param string
+// * @return {string}
+// */
+// export function capitalizeFirstLetter(string: String) {
+// return `${string.charAt(0).toUpperCase()}${string.slice(1)}`;
+// }
// timestamp of last push, used to prevent local collisions if you push twice in one ms.
let lastPushTime = 0;
@@ -315,7 +316,7 @@ export function generatePushID(serverTimeOffset?: number = 0): string {
* @returns {Error}
*/
export function nativeToJSError(code: string, message: string, additionalProps?: Object = {}) {
- const error = new Error(message);
+ const error: Object = new Error(message);
error.code = code;
Object.assign(error, additionalProps);
// exclude this function from the stack
@@ -329,7 +330,7 @@ export function nativeToJSError(code: string, message: string, additionalProps?:
* @param appName
* @param NativeModule
*/
-export function nativeWithApp(appName, NativeModule) {
+export function nativeWithApp(appName: string, NativeModule: Object) {
const native = {};
const methods = Object.keys(NativeModule);
@@ -348,7 +349,7 @@ export function nativeWithApp(appName, NativeModule) {
* @param object
* @return {string}
*/
-export function objectToUniqueId(object: Object): String {
+export function objectToUniqueId(object: Object): string {
if (!isObject(object) || object === null) return JSON.stringify(object);
const keys = Object.keys(object).sort();
@@ -374,7 +375,7 @@ export function objectToUniqueId(object: Object): String {
* @param optionalCallback
* @return {Promise}
*/
-export function promiseOrCallback(promise: Promise, optionalCallback?: Function) {
+export function promiseOrCallback(promise: Promise<*>, optionalCallback?: Function) {
if (!isFunction(optionalCallback)) return promise;
return promise.then((result) => {
diff --git a/package.json b/package.json
index 123305c0..9aa3bf7b 100644
--- a/package.json
+++ b/package.json
@@ -11,12 +11,12 @@
"build": "./node_modules/.bin/babel --source-maps=true --out-dir=dist .",
"publish_pages": "gh-pages -d public/",
"docs-serve-local": "docsify serve docs",
+ "test-cli": "node ./bin/test.js",
"tests-packager": "cd tests && npm run start",
"tests-npm-install": "cd tests && npm install",
"tests-pod-install": "cd tests && npm run ios:pod:install",
- "tests-watch-init": "wml add $(node --eval \"console.log(require('path').resolve('./lib'));\") $(node --eval \"console.log(require('path').resolve('./tests/firebase'));\")",
- "tests-watch-start": "watchman watch $(node --eval \"console.log(require('path').resolve('./lib'));\") && wml start",
- "tests-watch-stop": "watchman watch-del $(node --eval \"console.log(require('path').resolve('./lib'));\") && wml stop"
+ "tests-watch-start": "npm run test-cli watch init start",
+ "tests-watch-stop": "npm run test-cli watch stop"
},
"repository": {
"type": "git",
@@ -74,6 +74,7 @@
"react": "^15.3.0",
"react-dom": "^15.3.0",
"react-native": "^0.44.0",
+ "shelljs": "^0.7.8",
"wml": "0.0.82"
},
"dependencies": {
diff --git a/tests/.babelrc b/tests/.babelrc
index d6ff3f1b..0c5dcafa 100644
--- a/tests/.babelrc
+++ b/tests/.babelrc
@@ -1,5 +1,16 @@
{
"presets": [
"react-native"
- ]
+ ],
+ "env": {
+ "development": {
+ "plugins": [
+ ["istanbul", {
+ "include": [
+ "**/firebase/**.js"
+ ]
+ }]
+ ]
+ }
+ }
}
diff --git a/tests/android/app/src/main/java/com/reactnativefirebasedemo/MainActivity.java b/tests/android/app/src/main/java/com/reactnativefirebasedemo/MainActivity.java
index fe7c5a28..a5fd993c 100644
--- a/tests/android/app/src/main/java/com/reactnativefirebasedemo/MainActivity.java
+++ b/tests/android/app/src/main/java/com/reactnativefirebasedemo/MainActivity.java
@@ -1,15 +1,80 @@
package com.reactnativefirebasedemo;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.net.Uri;
+import android.os.Build;
+import android.os.Bundle;
+import android.provider.Settings;
+
import com.facebook.react.ReactActivity;
public class MainActivity extends ReactActivity {
- /**
- * Returns the name of the main component registered from JavaScript.
- * This is used to schedule rendering of the component.
- */
- @Override
- protected String getMainComponentName() {
- return "ReactNativeFirebaseDemo";
+ public static final int PERMISSION_REQ_CODE = 1234;
+ public static final int OVERLAY_PERMISSION_REQ_CODE = 1235;
+
+ String[] perms = {
+ "android.permission.READ_EXTERNAL_STORAGE",
+ "android.permission.WRITE_EXTERNAL_STORAGE"
+ };
+
+ /**
+ * Returns the name of the main component registered from JavaScript.
+ * This is used to schedule rendering of the component.
+ */
+ @Override
+ protected String getMainComponentName() {
+ return "ReactNativeFirebaseDemo";
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ checkWindowPerms();
+ }
+
+ public void checkWindowPerms() {
+ // Checking if device version > 22 and we need to use new permission model
+ if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) {
+ // Checking if we can draw window overlay
+ if (!Settings.canDrawOverlays(this)) {
+ // Requesting permission for window overlay(needed for all react-native apps)
+ Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
+ Uri.parse("package:" + getPackageName()));
+ startActivityForResult(intent, OVERLAY_PERMISSION_REQ_CODE);
+ }
+ for (String perm : perms) {
+ // Checking each permission and if denied then requesting permissions
+ if (checkSelfPermission(perm) == PackageManager.PERMISSION_DENIED) {
+ requestPermissions(perms, PERMISSION_REQ_CODE);
+ break;
+ }
+ }
}
+ }
+
+ // Window overlay permission intent result
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ if (requestCode == OVERLAY_PERMISSION_REQ_CODE) {
+ checkWindowPerms();
+ }
+ }
+
+ // Permission results
+ @Override
+ public void onRequestPermissionsResult(int permsRequestCode, String[] permissions, int[] grantResults) {
+ switch (permsRequestCode) {
+ case PERMISSION_REQ_CODE:
+ // example how to get result of permissions requests (there can be more then one permission dialog)
+ // boolean readAccepted = grantResults[0]==PackageManager.PERMISSION_GRANTED;
+ // boolean writeAccepted = grantResults[1]==PackageManager.PERMISSION_GRANTED;
+ // checking permissions to prevent situation when user denied some permission
+ checkWindowPerms();
+ break;
+
+ }
+ }
}
diff --git a/tests/package-lock.json b/tests/package-lock.json
index 65026453..53bfae97 100644
--- a/tests/package-lock.json
+++ b/tests/package-lock.json
@@ -5,15 +5,15 @@
"requires": true,
"dependencies": {
"abab": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.3.tgz",
- "integrity": "sha1-uB3l9ydOxOdW15fNg08wNkJyTl0=",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
+ "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
"dev": true
},
"abbrev": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz",
- "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8="
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"absolute-path": {
"version": "0.0.0",
@@ -30,9 +30,9 @@
}
},
"acorn": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz",
- "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.2.tgz",
+ "integrity": "sha512-o96FZLJBPY1lvTuJylGA9Bk3t/GKPPJG8H0ydQQl01crzwJgspa4AEIq/pVTXigmK0PHVQhiAtn8WMBLL9D2WA==",
"dev": true
},
"acorn-globals": {
@@ -70,11 +70,13 @@
}
},
"ajv": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
- "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz",
+ "integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=",
"requires": {
"co": "4.6.0",
+ "fast-deep-equal": "1.0.0",
+ "json-schema-traverse": "0.3.1",
"json-stable-stringify": "1.0.1"
}
},
@@ -111,9 +113,9 @@
"integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE="
},
"ansi-escapes": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
- "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.0.0.tgz",
+ "integrity": "sha512-O/klc27mWNUigtv0F8NJWbLF00OcegQalkqKURWdosW08YZKi4m6CnSUSvIZG1otNJbTWhN01Hhz389DW7mvDQ=="
},
"ansi-regex": {
"version": "2.1.1",
@@ -235,7 +237,7 @@
"dev": true,
"requires": {
"define-properties": "1.1.2",
- "es-abstract": "1.8.0"
+ "es-abstract": "1.9.0"
}
},
"arrify": {
@@ -260,9 +262,9 @@
"integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y="
},
"assert-plus": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz",
- "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ="
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
},
"ast-types-flow": {
"version": "0.0.7",
@@ -291,9 +293,9 @@
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"aws-sign2": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz",
- "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8="
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
},
"aws4": {
"version": "1.6.0",
@@ -329,7 +331,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -361,7 +363,7 @@
"babel-types": "6.26.0",
"babylon": "6.18.0",
"convert-source-map": "1.5.0",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"json5": "0.5.1",
"lodash": "4.17.4",
"minimatch": "3.0.4",
@@ -376,7 +378,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -414,7 +416,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -435,7 +437,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -457,7 +459,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -479,7 +481,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -502,7 +504,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -522,7 +524,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -542,7 +544,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -562,7 +564,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -583,7 +585,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -606,7 +608,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -630,7 +632,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -650,7 +652,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -663,7 +665,7 @@
"dev": true,
"requires": {
"babel-core": "6.26.0",
- "babel-plugin-istanbul": "4.1.4",
+ "babel-plugin-istanbul": "4.1.5",
"babel-preset-jest": "19.0.0"
}
},
@@ -680,7 +682,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -699,7 +701,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -718,7 +720,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -737,13 +739,13 @@
}
},
"babel-plugin-istanbul": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.4.tgz",
- "integrity": "sha1-GN3oS/POMp/d8/QQP66SFFbY5Yc=",
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz",
+ "integrity": "sha1-Z2DN2Xf0EdPhdbsGTyvDJ9mbK24=",
"dev": true,
"requires": {
"find-up": "2.1.0",
- "istanbul-lib-instrument": "1.7.5",
+ "istanbul-lib-instrument": "1.8.0",
"test-exclude": "4.1.1"
},
"dependencies": {
@@ -817,7 +819,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -839,12 +841,21 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
}
},
+ "babel-plugin-transform-define": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-define/-/babel-plugin-transform-define-1.3.0.tgz",
+ "integrity": "sha1-lMX5RZyBDHOMx8UMvUSjGCnW8xk=",
+ "requires": {
+ "lodash": "4.17.4",
+ "traverse": "0.6.6"
+ }
+ },
"babel-plugin-transform-es2015-arrow-functions": {
"version": "6.22.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
@@ -858,7 +869,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -877,7 +888,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -900,7 +911,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -927,7 +938,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -947,7 +958,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -966,7 +977,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -986,7 +997,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1005,7 +1016,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1026,7 +1037,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1045,7 +1056,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1076,7 +1087,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1100,7 +1111,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1120,7 +1131,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1139,7 +1150,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1160,7 +1171,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1179,7 +1190,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1198,7 +1209,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1219,7 +1230,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1238,7 +1249,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1257,7 +1268,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1277,7 +1288,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1296,7 +1307,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1316,7 +1327,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1335,7 +1346,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1356,7 +1367,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1376,7 +1387,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1412,7 +1423,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1424,7 +1435,7 @@
"integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
"requires": {
"babel-runtime": "6.26.0",
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.10.5"
},
"dependencies": {
@@ -1433,7 +1444,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
},
"dependencies": {
@@ -1566,7 +1577,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1625,11 +1636,11 @@
"requires": {
"babel-core": "6.26.0",
"babel-runtime": "6.26.0",
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"home-or-tmp": "2.0.0",
"lodash": "4.17.4",
"mkdirp": "0.5.1",
- "source-map-support": "0.4.16"
+ "source-map-support": "0.4.18"
},
"dependencies": {
"babel-runtime": {
@@ -1637,7 +1648,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1675,7 +1686,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1691,7 +1702,7 @@
"babel-runtime": "6.26.0",
"babel-types": "6.26.0",
"babylon": "6.18.0",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"globals": "9.18.0",
"invariant": "2.2.2",
"lodash": "4.17.4"
@@ -1702,7 +1713,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1724,7 +1735,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
}
}
@@ -1780,9 +1791,9 @@
"integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak="
},
"big-integer": {
- "version": "1.6.24",
- "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.24.tgz",
- "integrity": "sha1-HthNAYrDwccrMH5/fZQAjo7iAxE="
+ "version": "1.6.25",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.25.tgz",
+ "integrity": "sha1-HeRan1dUKsIBIcaC+NZCIgo06CM="
},
"binary-extensions": {
"version": "1.10.0",
@@ -1802,7 +1813,7 @@
"integrity": "sha1-wIzzMMM1jhUQFqBXRvE/ApyX+pc=",
"requires": {
"bytes": "2.1.0",
- "content-type": "1.0.2",
+ "content-type": "1.0.4",
"debug": "2.2.0",
"depd": "1.0.1",
"http-errors": "1.3.1",
@@ -1834,11 +1845,11 @@
}
},
"boom": {
- "version": "2.10.1",
- "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
- "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
+ "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
"requires": {
- "hoek": "2.16.3"
+ "hoek": "4.2.0"
}
},
"bows": {
@@ -1862,7 +1873,7 @@
"resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz",
"integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=",
"requires": {
- "big-integer": "1.6.24"
+ "big-integer": "1.6.25"
}
},
"brace-expansion": {
@@ -1914,6 +1925,30 @@
"node-int64": "0.4.0"
}
},
+ "build": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/build/-/build-0.1.4.tgz",
+ "integrity": "sha1-cH/gJv/O3crL/c3zVur9pk8VEEY=",
+ "requires": {
+ "cssmin": "0.3.2",
+ "jsmin": "1.0.1",
+ "jxLoader": "0.1.1",
+ "moo-server": "1.3.0",
+ "promised-io": "0.3.5",
+ "timespan": "2.3.0",
+ "uglify-js": "1.3.5",
+ "walker": "1.0.7",
+ "winston": "2.4.0",
+ "wrench": "1.3.9"
+ },
+ "dependencies": {
+ "uglify-js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-1.3.5.tgz",
+ "integrity": "sha1-S1v/+Rhu/7qoiOTJ6UvZ/EyUkp0="
+ }
+ }
+ },
"builtin-modules": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
@@ -1989,9 +2024,9 @@
}
},
"ci-info": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.0.0.tgz",
- "integrity": "sha1-3FKF8rTiUYIWg2gcOBwziPRuxTQ=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.1.tgz",
+ "integrity": "sha512-vHDDF/bP9RYpTWtUhpJRhCFdvvp3iDWvEbuDbWgvjUrNGV1MXJrE0MPcwGtEled04m61iwdBLUIHZtDgzWS4ZQ==",
"dev": true
},
"circular-json": {
@@ -2006,11 +2041,11 @@
"integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ="
},
"cli-cursor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
- "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"requires": {
- "restore-cursor": "1.0.1"
+ "restore-cursor": "2.0.0"
}
},
"cli-width": {
@@ -2059,7 +2094,6 @@
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
"integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
- "dev": true,
"requires": {
"color-name": "1.1.3"
}
@@ -2067,8 +2101,7 @@
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"colors": {
"version": "1.1.2",
@@ -2094,7 +2127,7 @@
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz",
"integrity": "sha1-FnGKdd4oPtjmBAQWJaIGRYZ5fYo=",
"requires": {
- "mime-db": "1.29.0"
+ "mime-db": "1.30.0"
}
},
"compression": {
@@ -2159,7 +2192,7 @@
"bytes": "2.1.0",
"compression": "1.5.2",
"connect-timeout": "1.6.2",
- "content-type": "1.0.2",
+ "content-type": "1.0.4",
"cookie": "0.1.3",
"cookie-parser": "1.3.5",
"cookie-signature": "1.0.6",
@@ -2171,11 +2204,11 @@
"finalhandler": "0.4.0",
"fresh": "0.3.0",
"http-errors": "1.3.1",
- "method-override": "2.3.9",
+ "method-override": "2.3.10",
"morgan": "1.6.1",
"multiparty": "3.3.2",
"on-headers": "1.0.1",
- "parseurl": "1.3.1",
+ "parseurl": "1.3.2",
"pause": "0.1.0",
"qs": "4.0.0",
"response-time": "2.3.2",
@@ -2235,9 +2268,9 @@
"dev": true
},
"content-type": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz",
- "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0="
+ "version": "1.0.4",
+ "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.1",
@@ -2270,9 +2303,9 @@
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"core-js": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.0.tgz",
- "integrity": "sha1-VpwFCRi+ZIazg3VSAorgRmtxcIY="
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz",
+ "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs="
},
"core-util-is": {
"version": "1.0.2",
@@ -2284,6 +2317,16 @@
"resolved": "https://registry.npmjs.org/crc/-/crc-3.3.0.tgz",
"integrity": "sha1-+mIuG8OIvyVzCQgta2UgDOZwkLo="
},
+ "create-react-class": {
+ "version": "15.6.2",
+ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.2.tgz",
+ "integrity": "sha1-zx7RXxKq1/FO9fLf4F5sQvke8Co=",
+ "requires": {
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1"
+ }
+ },
"cross-spawn": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
@@ -2305,11 +2348,21 @@
}
},
"cryptiles": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
- "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
+ "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
"requires": {
- "boom": "2.10.1"
+ "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==",
+ "requires": {
+ "hoek": "4.2.0"
+ }
+ }
}
},
"csrf": {
@@ -2322,6 +2375,11 @@
"uid-safe": "2.1.4"
}
},
+ "cssmin": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/cssmin/-/cssmin-0.3.2.tgz",
+ "integrity": "sha1-3c5MVHtRCuDVlKjx+/iq+OLFwA0="
+ },
"cssom": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
@@ -2365,6 +2423,11 @@
}
}
},
+ "cycle": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
+ "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI="
+ },
"d": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
@@ -2386,24 +2449,17 @@
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"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="
- }
}
},
"dateformat": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz",
- "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc="
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
+ "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI="
},
"debug": {
- "version": "2.6.8",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz",
- "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=",
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
@@ -2460,7 +2516,7 @@
"object-assign": "4.1.1",
"pify": "2.3.0",
"pinkie-promise": "2.0.1",
- "rimraf": "2.6.1"
+ "rimraf": "2.6.2"
}
},
"delayed-stream": {
@@ -2497,9 +2553,9 @@
}
},
"diff": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.0.tgz",
- "integrity": "sha512-w0XZubFWn0Adlsapj9EAWX0FqWdO4tz8kc3RiYdWLh4k/V8PTb6i0SMgXt0vRM3zyKnT8tKO7mUlieRQHIjMNg=="
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
+ "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww=="
},
"doctrine": {
"version": "2.0.0",
@@ -2584,7 +2640,24 @@
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
"requires": {
- "iconv-lite": "0.4.18"
+ "iconv-lite": "0.4.19"
+ }
+ },
+ "envinfo": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-3.4.1.tgz",
+ "integrity": "sha1-jIDp8u7CzU4q2yxdASfOB6Kqoq4=",
+ "requires": {
+ "minimist": "1.2.0",
+ "os-name": "2.0.1",
+ "which": "1.3.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ }
}
},
"errno": {
@@ -2617,16 +2690,16 @@
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz",
"integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=",
"requires": {
- "mime-types": "2.1.16",
+ "mime-types": "2.1.17",
"negotiator": "0.6.1"
}
},
"mime-types": {
- "version": "2.1.16",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz",
- "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=",
+ "version": "2.1.17",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
"requires": {
- "mime-db": "1.29.0"
+ "mime-db": "1.30.0"
}
},
"negotiator": {
@@ -2637,13 +2710,13 @@
}
},
"es-abstract": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.0.tgz",
- "integrity": "sha512-Cf9/h5MrXtExM20gSS55YFrGKCyPrRBjIVBtVyy8vmlsDfe0NPKMWj65tPLgzyfPuapWxh5whpXCtW4+AW5mRg==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz",
+ "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==",
"dev": true,
"requires": {
"es-to-primitive": "1.1.1",
- "function-bind": "1.1.0",
+ "function-bind": "1.1.1",
"has": "1.0.1",
"is-callable": "1.1.3",
"is-regex": "1.0.4"
@@ -2741,39 +2814,23 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"escodegen": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
- "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz",
+ "integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==",
"dev": true,
"requires": {
- "esprima": "2.7.3",
- "estraverse": "1.9.3",
+ "esprima": "3.1.3",
+ "estraverse": "4.2.0",
"esutils": "2.0.2",
"optionator": "0.8.2",
- "source-map": "0.2.0"
+ "source-map": "0.5.7"
},
"dependencies": {
"esprima": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
- "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
"dev": true
- },
- "estraverse": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
- "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
- "dev": true
- },
- "source-map": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
- "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
- "dev": true,
- "optional": true,
- "requires": {
- "amdefine": "1.0.1"
- }
}
}
},
@@ -2798,22 +2855,22 @@
"babel-code-frame": "6.26.0",
"chalk": "1.1.3",
"concat-stream": "1.6.0",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"doctrine": "2.0.0",
"escope": "3.6.0",
- "espree": "3.5.0",
+ "espree": "3.5.1",
"esquery": "1.0.0",
"estraverse": "4.2.0",
"esutils": "2.0.2",
"file-entry-cache": "2.0.0",
"glob": "7.1.2",
"globals": "9.18.0",
- "ignore": "3.3.3",
+ "ignore": "3.3.5",
"imurmurhash": "0.1.4",
"inquirer": "0.12.0",
"is-my-json-valid": "2.16.1",
"is-resolvable": "1.0.0",
- "js-yaml": "3.9.1",
+ "js-yaml": "3.10.0",
"json-stable-stringify": "1.0.1",
"levn": "0.3.0",
"lodash": "4.17.4",
@@ -2832,6 +2889,113 @@
"user-home": "2.0.0"
},
"dependencies": {
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "dev": true
+ },
+ "cli-cursor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
+ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
+ "dev": true,
+ "requires": {
+ "restore-cursor": "1.0.1"
+ }
+ },
+ "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"
+ }
+ },
+ "inquirer": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
+ "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
+ "dev": true,
+ "requires": {
+ "ansi-escapes": "1.4.0",
+ "ansi-regex": "2.1.1",
+ "chalk": "1.1.3",
+ "cli-cursor": "1.0.2",
+ "cli-width": "2.2.0",
+ "figures": "1.7.0",
+ "lodash": "4.17.4",
+ "readline2": "1.0.1",
+ "run-async": "0.1.0",
+ "rx-lite": "3.1.2",
+ "string-width": "1.0.2",
+ "strip-ansi": "3.0.1",
+ "through": "2.3.8"
+ }
+ },
+ "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"
+ }
+ },
+ "js-yaml": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "4.0.0"
+ }
+ },
+ "onetime": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
+ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
+ "dev": true
+ },
+ "restore-cursor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
+ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "dev": true,
+ "requires": {
+ "exit-hook": "1.1.1",
+ "onetime": "1.1.0"
+ }
+ },
+ "run-async": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
+ "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
+ "dev": true,
+ "requires": {
+ "once": "1.4.0"
+ }
+ },
+ "rx-lite": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
+ "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=",
+ "dev": true
+ },
+ "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": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -2873,7 +3037,7 @@
"integrity": "sha512-yUtXS15gIcij68NmXmP9Ni77AQuCN0itXbCc/jWd8C6/yKZaSNXicpC8cgvjnxVdmfsosIXrjpzFq7GcDryb6A==",
"dev": true,
"requires": {
- "debug": "2.6.8",
+ "debug": "2.6.9",
"resolve": "1.4.0"
}
},
@@ -2883,14 +3047,14 @@
"integrity": "sha512-jDI/X5l/6D1rRD/3T43q8Qgbls2nq5km5KSqiwlyUbGo5+04fXhMKdCPhjwbqAa6HXWaMxj8Q4hQDIh7IadJQw==",
"dev": true,
"requires": {
- "debug": "2.6.8",
+ "debug": "2.6.9",
"pkg-dir": "1.0.0"
}
},
"eslint-plugin-flowtype": {
- "version": "2.35.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.35.0.tgz",
- "integrity": "sha512-zjXGjOsHds8b84C0Ad3VViKh+sUA9PeXKHwPRlSLwwSX0v1iUJf/6IX7wxc+w2T2tnDH8PT6B/YgtcEuNI3ssA==",
+ "version": "2.37.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.37.0.tgz",
+ "integrity": "sha512-S/CzpUkeFzCkuUhTb2YeZqOLlLIysGixZPcWBN8CeIcxC9S3/Av5fsiohAD8uSoeDNSdF9mVsCsCRdP+Yxs1AA==",
"dev": true,
"requires": {
"lodash": "4.17.4"
@@ -2904,7 +3068,7 @@
"requires": {
"builtin-modules": "1.1.1",
"contains-path": "0.1.0",
- "debug": "2.6.8",
+ "debug": "2.6.9",
"doctrine": "1.5.0",
"eslint-import-resolver-node": "0.3.1",
"eslint-module-utils": "2.1.1",
@@ -3029,12 +3193,12 @@
"dev": true
},
"espree": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.0.tgz",
- "integrity": "sha1-mDWGJb3QVYYeon4oZ+pyn69GPY0=",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-3.5.1.tgz",
+ "integrity": "sha1-DJiLirRttTEAoZVK5LqZXd0n2H4=",
"dev": true,
"requires": {
- "acorn": "5.1.1",
+ "acorn": "5.1.2",
"acorn-jsx": "3.0.1"
}
},
@@ -3095,9 +3259,9 @@
"integrity": "sha1-qG5e5r2qFgVEddp5fM3fDFVphJE="
},
"exec-sh": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.0.tgz",
- "integrity": "sha1-FPdd4/INKG75MwmbLOUKkDWc7xA=",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz",
+ "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==",
"requires": {
"merge": "1.2.0"
}
@@ -3140,7 +3304,8 @@
"exit-hook": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz",
- "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g="
+ "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=",
+ "dev": true
},
"expand-brackets": {
"version": "0.1.5",
@@ -3169,7 +3334,7 @@
"debug": "2.2.0",
"depd": "1.0.1",
"on-headers": "1.0.1",
- "parseurl": "1.3.1",
+ "parseurl": "1.3.2",
"uid-safe": "2.0.0",
"utils-merge": "1.0.0"
},
@@ -3202,6 +3367,16 @@
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
},
+ "external-editor": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.5.tgz",
+ "integrity": "sha512-Msjo64WT5W+NhOpQXh0nOHm+n0RfU1QUwDnKYvJ8dEJ8zlwLrqXNTv5mSUTJpepf41PDJGyhueTw2vNZW+Fr/w==",
+ "requires": {
+ "iconv-lite": "0.4.19",
+ "jschardet": "1.5.1",
+ "tmp": "0.0.33"
+ }
+ },
"extglob": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
@@ -3215,6 +3390,11 @@
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
},
+ "eyes": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+ "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A="
+ },
"fancy-log": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz",
@@ -3224,6 +3404,11 @@
"time-stamp": "1.1.0"
}
},
+ "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="
+ },
"fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
@@ -3249,9 +3434,9 @@
}
},
"fbjs": {
- "version": "0.8.14",
- "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz",
- "integrity": "sha1-0dviviVMNakeCfMfnNUKQLKg7Rw=",
+ "version": "0.8.16",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz",
+ "integrity": "sha1-XmdDL1UNxBtXK/VYR7ispk5TN9s=",
"requires": {
"core-js": "1.2.7",
"isomorphic-fetch": "2.2.1",
@@ -3323,12 +3508,11 @@
}
},
"figures": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
- "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
+ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"requires": {
- "escape-string-regexp": "1.0.5",
- "object-assign": "4.1.1"
+ "escape-string-regexp": "1.0.5"
}
},
"file-entry-cache": {
@@ -3337,7 +3521,7 @@
"integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=",
"dev": true,
"requires": {
- "flat-cache": "1.2.2",
+ "flat-cache": "1.3.0",
"object-assign": "4.1.1"
}
},
@@ -3565,9 +3749,9 @@
}
},
"flat-cache": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.2.tgz",
- "integrity": "sha1-+oZxTnLCHbiGAXYezy9VXRq8a5Y=",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
+ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
"dev": true,
"requires": {
"circular-json": "0.3.3",
@@ -3607,15 +3791,15 @@
"requires": {
"asynckit": "0.4.0",
"combined-stream": "1.0.5",
- "mime-types": "2.1.16"
+ "mime-types": "2.1.17"
},
"dependencies": {
"mime-types": {
- "version": "2.1.16",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz",
- "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=",
+ "version": "2.1.17",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
"requires": {
- "mime-db": "1.29.0"
+ "mime-db": "1.30.0"
}
}
}
@@ -3658,23 +3842,20 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz",
"integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==",
- "dev": true,
"optional": true,
"requires": {
- "nan": "2.6.2",
+ "nan": "2.7.0",
"node-pre-gyp": "0.6.36"
},
"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",
@@ -3683,19 +3864,16 @@
},
"ansi-regex": {
"version": "2.1.1",
- "bundled": true,
- "dev": true
+ "bundled": 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",
@@ -3705,42 +3883,35 @@
"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
+ "bundled": true
},
"bcrypt-pbkdf": {
"version": "1.0.1",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"tweetnacl": "0.14.5"
@@ -3749,7 +3920,6 @@
"block-stream": {
"version": "0.0.9",
"bundled": true,
- "dev": true,
"requires": {
"inherits": "2.0.3"
}
@@ -3757,7 +3927,6 @@
"boom": {
"version": "2.10.1",
"bundled": true,
- "dev": true,
"requires": {
"hoek": "2.16.3"
}
@@ -3765,7 +3934,6 @@
"brace-expansion": {
"version": "1.1.7",
"bundled": true,
- "dev": true,
"requires": {
"balanced-match": "0.4.2",
"concat-map": "0.0.1"
@@ -3773,53 +3941,44 @@
},
"buffer-shims": {
"version": "1.0.0",
- "bundled": true,
- "dev": true
+ "bundled": 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
+ "bundled": 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
+ "bundled": true
},
"console-control-strings": {
"version": "1.1.0",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"core-util-is": {
"version": "1.0.2",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"cryptiles": {
"version": "2.0.5",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"boom": "2.10.1"
@@ -3828,7 +3987,6 @@
"dashdash": {
"version": "1.14.1",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"assert-plus": "1.0.0"
@@ -3837,7 +3995,6 @@
"assert-plus": {
"version": "1.0.0",
"bundled": true,
- "dev": true,
"optional": true
}
}
@@ -3845,7 +4002,6 @@
"debug": {
"version": "2.6.8",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"ms": "2.0.0"
@@ -3854,24 +4010,20 @@
"deep-extend": {
"version": "0.4.2",
"bundled": true,
- "dev": true,
"optional": true
},
"delayed-stream": {
"version": "1.0.0",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"delegates": {
"version": "1.0.0",
"bundled": true,
- "dev": true,
"optional": true
},
"ecc-jsbn": {
"version": "0.1.1",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"jsbn": "0.1.1"
@@ -3880,24 +4032,20 @@
"extend": {
"version": "3.0.1",
"bundled": true,
- "dev": true,
"optional": true
},
"extsprintf": {
"version": "1.0.2",
- "bundled": true,
- "dev": true
+ "bundled": 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",
@@ -3907,13 +4055,11 @@
},
"fs.realpath": {
"version": "1.0.0",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"fstream": {
"version": "1.0.11",
"bundled": true,
- "dev": true,
"requires": {
"graceful-fs": "4.1.11",
"inherits": "2.0.3",
@@ -3924,7 +4070,6 @@
"fstream-ignore": {
"version": "1.0.5",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"fstream": "1.0.11",
@@ -3935,7 +4080,6 @@
"gauge": {
"version": "2.7.4",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"aproba": "1.1.1",
@@ -3951,7 +4095,6 @@
"getpass": {
"version": "0.1.7",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"assert-plus": "1.0.0"
@@ -3960,7 +4103,6 @@
"assert-plus": {
"version": "1.0.0",
"bundled": true,
- "dev": true,
"optional": true
}
}
@@ -3968,7 +4110,6 @@
"glob": {
"version": "7.1.2",
"bundled": true,
- "dev": true,
"requires": {
"fs.realpath": "1.0.0",
"inflight": "1.0.6",
@@ -3980,19 +4121,16 @@
},
"graceful-fs": {
"version": "4.1.11",
- "bundled": true,
- "dev": true
+ "bundled": 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",
@@ -4002,13 +4140,11 @@
"has-unicode": {
"version": "2.0.1",
"bundled": true,
- "dev": true,
"optional": true
},
"hawk": {
"version": "3.1.3",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"boom": "2.10.1",
@@ -4019,13 +4155,11 @@
},
"hoek": {
"version": "2.16.3",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"http-signature": {
"version": "1.1.1",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"assert-plus": "0.2.0",
@@ -4036,7 +4170,6 @@
"inflight": {
"version": "1.0.6",
"bundled": true,
- "dev": true,
"requires": {
"once": "1.4.0",
"wrappy": "1.0.2"
@@ -4044,19 +4177,16 @@
},
"inherits": {
"version": "2.0.3",
- "bundled": true,
- "dev": true
+ "bundled": 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"
}
@@ -4064,24 +4194,20 @@
"is-typedarray": {
"version": "1.0.0",
"bundled": true,
- "dev": true,
"optional": true
},
"isarray": {
"version": "1.0.0",
- "bundled": true,
- "dev": true
+ "bundled": 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"
@@ -4090,19 +4216,16 @@
"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"
@@ -4111,19 +4234,16 @@
"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",
@@ -4135,20 +4255,17 @@
"assert-plus": {
"version": "1.0.0",
"bundled": true,
- "dev": true,
"optional": true
}
}
},
"mime-db": {
"version": "1.27.0",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"mime-types": {
"version": "2.1.15",
"bundled": true,
- "dev": true,
"requires": {
"mime-db": "1.27.0"
}
@@ -4156,20 +4273,17 @@
"minimatch": {
"version": "3.0.4",
"bundled": true,
- "dev": true,
"requires": {
"brace-expansion": "1.1.7"
}
},
"minimist": {
"version": "0.0.8",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"mkdirp": {
"version": "0.5.1",
"bundled": true,
- "dev": true,
"requires": {
"minimist": "0.0.8"
}
@@ -4177,13 +4291,11 @@
"ms": {
"version": "2.0.0",
"bundled": true,
- "dev": true,
"optional": true
},
"node-pre-gyp": {
"version": "0.6.36",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"mkdirp": "0.5.1",
@@ -4200,7 +4312,6 @@
"nopt": {
"version": "4.0.1",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"abbrev": "1.1.0",
@@ -4210,7 +4321,6 @@
"npmlog": {
"version": "4.1.0",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"are-we-there-yet": "1.1.4",
@@ -4221,25 +4331,21 @@
},
"number-is-nan": {
"version": "1.0.1",
- "bundled": true,
- "dev": true
+ "bundled": 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"
}
@@ -4247,19 +4353,16 @@
"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",
@@ -4268,36 +4371,30 @@
},
"path-is-absolute": {
"version": "1.0.1",
- "bundled": true,
- "dev": true
+ "bundled": true
},
"performance-now": {
"version": "0.2.0",
"bundled": true,
- "dev": true,
"optional": true
},
"process-nextick-args": {
"version": "1.0.7",
- "bundled": true,
- "dev": true
+ "bundled": 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",
@@ -4309,7 +4406,6 @@
"minimist": {
"version": "1.2.0",
"bundled": true,
- "dev": true,
"optional": true
}
}
@@ -4317,7 +4413,6 @@
"readable-stream": {
"version": "2.2.9",
"bundled": true,
- "dev": true,
"requires": {
"buffer-shims": "1.0.0",
"core-util-is": "1.0.2",
@@ -4331,7 +4426,6 @@
"request": {
"version": "2.81.0",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"aws-sign2": "0.6.0",
@@ -4361,38 +4455,32 @@
"rimraf": {
"version": "2.6.1",
"bundled": true,
- "dev": true,
"requires": {
"glob": "7.1.2"
}
},
"safe-buffer": {
"version": "5.0.1",
- "bundled": true,
- "dev": true
+ "bundled": 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,
"optional": true,
"requires": {
"hoek": "2.16.3"
@@ -4401,7 +4489,6 @@
"sshpk": {
"version": "1.13.0",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"asn1": "0.2.3",
@@ -4418,7 +4505,6 @@
"assert-plus": {
"version": "1.0.0",
"bundled": true,
- "dev": true,
"optional": true
}
}
@@ -4426,7 +4512,6 @@
"string_decoder": {
"version": "1.0.1",
"bundled": true,
- "dev": true,
"requires": {
"safe-buffer": "5.0.1"
}
@@ -4434,7 +4519,6 @@
"string-width": {
"version": "1.0.2",
"bundled": true,
- "dev": true,
"requires": {
"code-point-at": "1.1.0",
"is-fullwidth-code-point": "1.0.0",
@@ -4444,13 +4528,11 @@
"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"
}
@@ -4458,13 +4540,11 @@
"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",
@@ -4474,7 +4554,6 @@
"tar-pack": {
"version": "3.4.0",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"debug": "2.6.8",
@@ -4490,7 +4569,6 @@
"tough-cookie": {
"version": "2.3.2",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"punycode": "1.4.1"
@@ -4499,7 +4577,6 @@
"tunnel-agent": {
"version": "0.6.0",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"safe-buffer": "5.0.1"
@@ -4508,30 +4585,25 @@
"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
+ "bundled": 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"
@@ -4540,7 +4612,6 @@
"wide-align": {
"version": "1.1.2",
"bundled": true,
- "dev": true,
"optional": true,
"requires": {
"string-width": "1.0.2"
@@ -4548,15 +4619,14 @@
},
"wrappy": {
"version": "1.0.2",
- "bundled": true,
- "dev": true
+ "bundled": true
}
}
},
"function-bind": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz",
- "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
"dev": true
},
"gauge": {
@@ -4602,13 +4672,6 @@
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"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="
- }
}
},
"glob": {
@@ -4697,7 +4760,7 @@
"array-uniq": "1.0.3",
"beeper": "1.1.1",
"chalk": "1.1.3",
- "dateformat": "2.0.0",
+ "dateformat": "2.2.0",
"fancy-log": "1.3.0",
"gulplog": "1.0.0",
"has-gulplog": "0.1.0",
@@ -4763,17 +4826,17 @@
}
},
"har-schema": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
- "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
},
"har-validator": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
- "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+ "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
"requires": {
- "ajv": "4.11.8",
- "har-schema": "1.0.5"
+ "ajv": "5.2.3",
+ "har-schema": "2.0.0"
}
},
"has": {
@@ -4782,7 +4845,7 @@
"integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=",
"dev": true,
"requires": {
- "function-bind": "1.1.0"
+ "function-bind": "1.1.1"
}
},
"has-ansi": {
@@ -4794,10 +4857,9 @@
}
},
"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
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
},
"has-gulplog": {
"version": "0.1.0",
@@ -4813,25 +4875,25 @@
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
},
"hawk": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
- "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
+ "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
"requires": {
- "boom": "2.10.1",
- "cryptiles": "2.0.5",
- "hoek": "2.16.3",
- "sntp": "1.0.9"
+ "boom": "4.3.1",
+ "cryptiles": "3.1.2",
+ "hoek": "4.2.0",
+ "sntp": "2.0.2"
}
},
"hoek": {
- "version": "2.16.3",
- "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
- "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0="
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
+ "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ=="
},
"hoist-non-react-statics": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz",
- "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs="
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.1.tgz",
+ "integrity": "sha1-ND24TGAYxlB3iJgkATWhQg7iLOA="
},
"home-or-tmp": {
"version": "2.0.0",
@@ -4866,35 +4928,30 @@
}
},
"http-signature": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
- "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"requires": {
- "assert-plus": "0.2.0",
+ "assert-plus": "1.0.0",
"jsprim": "1.4.1",
"sshpk": "1.13.1"
}
},
"iconv-lite": {
- "version": "0.4.18",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz",
- "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA=="
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
},
"ignore": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.3.tgz",
- "integrity": "sha1-QyNS5XrM2HqzEQ6C0/6g5HgSFW0=",
+ "version": "3.3.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.5.tgz",
+ "integrity": "sha512-JLH93mL8amZQhh/p6mfQgVBH3M6epNq3DfsXsTSuSrInVjwyYlFE1nv2AgfRCC8PoOhM0jwQ5v8s9LgbK7yGDw==",
"dev": true
},
"image-size": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.3.5.tgz",
- "integrity": "sha1-gyQOqy+1sAsEqrjHSwRx6cunrYw="
- },
- "immutable": {
- "version": "3.7.6",
- "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz",
- "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks="
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.1.tgz",
+ "integrity": "sha512-lHMlI2MykfeHAQdtydQh4fTcBQVf4zLTA91w1euBe9rbmAfJ/iyzMh8H3KD9u1RldlHaMS3tmMV5TEe9BkmW9g=="
},
"imurmurhash": {
"version": "0.1.4",
@@ -4921,29 +4978,71 @@
"integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4="
},
"inquirer": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
- "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
+ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==",
"requires": {
- "ansi-escapes": "1.4.0",
- "ansi-regex": "2.1.1",
- "chalk": "1.1.3",
- "cli-cursor": "1.0.2",
+ "ansi-escapes": "3.0.0",
+ "chalk": "2.1.0",
+ "cli-cursor": "2.1.0",
"cli-width": "2.2.0",
- "figures": "1.7.0",
+ "external-editor": "2.0.5",
+ "figures": "2.0.0",
"lodash": "4.17.4",
- "readline2": "1.0.1",
- "run-async": "0.1.0",
- "rx-lite": "3.1.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
+ "mute-stream": "0.0.7",
+ "run-async": "2.3.0",
+ "rx-lite": "4.0.8",
+ "rx-lite-aggregates": "4.0.8",
+ "string-width": "2.1.1",
+ "strip-ansi": "4.0.0",
"through": "2.3.8"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+ },
+ "ansi-styles": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
+ "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
+ "requires": {
+ "color-convert": "1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
+ "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
+ "requires": {
+ "ansi-styles": "3.2.0",
+ "escape-string-regexp": "1.0.5",
+ "supports-color": "4.4.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ },
+ "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==",
+ "requires": {
+ "has-flag": "2.0.0"
+ }
+ }
}
},
"interpret": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz",
- "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.4.tgz",
+ "integrity": "sha1-ggzdWIuGj/sZGoCVBtbJyPISsbA=",
"dev": true
},
"invariant": {
@@ -4999,7 +5098,7 @@
"integrity": "sha1-9zkzayYyNlBhqdSCcM1WrjNpMY4=",
"dev": true,
"requires": {
- "ci-info": "1.0.0"
+ "ci-info": "1.1.1"
}
},
"is-date-object": {
@@ -5040,12 +5139,9 @@
}
},
"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=",
- "requires": {
- "number-is-nan": "1.0.1"
- }
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"is-glob": {
"version": "2.0.1",
@@ -5109,6 +5205,11 @@
"resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
"integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
},
+ "is-promise": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
+ },
"is-property": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
@@ -5159,11 +5260,6 @@
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
- "isemail": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/isemail/-/isemail-1.2.0.tgz",
- "integrity": "sha1-vgPfjMPineTSxd9lASY/H6RZXpo="
- },
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -5182,7 +5278,7 @@
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
"requires": {
- "node-fetch": "1.7.2",
+ "node-fetch": "1.7.3",
"whatwg-fetch": "2.0.3"
}
},
@@ -5192,22 +5288,34 @@
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
},
"istanbul-api": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.1.13.tgz",
- "integrity": "sha1-cZf2RBNgDr3+xjR6LcPU4D+X7Vo=",
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.1.14.tgz",
+ "integrity": "sha1-JbxXAffGgMD//5E95G42GaOm5oA=",
"dev": true,
"requires": {
"async": "2.5.0",
"fileset": "2.0.3",
"istanbul-lib-coverage": "1.1.1",
"istanbul-lib-hook": "1.0.7",
- "istanbul-lib-instrument": "1.7.5",
+ "istanbul-lib-instrument": "1.8.0",
"istanbul-lib-report": "1.1.1",
"istanbul-lib-source-maps": "1.2.1",
"istanbul-reports": "1.1.2",
- "js-yaml": "3.9.1",
+ "js-yaml": "3.10.0",
"mkdirp": "0.5.1",
"once": "1.4.0"
+ },
+ "dependencies": {
+ "js-yaml": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz",
+ "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==",
+ "dev": true,
+ "requires": {
+ "argparse": "1.0.9",
+ "esprima": "4.0.0"
+ }
+ }
}
},
"istanbul-lib-coverage": {
@@ -5226,9 +5334,9 @@
}
},
"istanbul-lib-instrument": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.5.tgz",
- "integrity": "sha1-rbWW+PDLi5XnOSBjUaOKWGryGx4=",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz",
+ "integrity": "sha1-ZvbJQhzJ7EcE928tsIS6kHiitTI=",
"dev": true,
"requires": {
"babel-generator": "6.26.0",
@@ -5252,6 +5360,12 @@
"supports-color": "3.2.3"
},
"dependencies": {
+ "has-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
+ "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
+ "dev": true
+ },
"supports-color": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
@@ -5269,10 +5383,10 @@
"integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==",
"dev": true,
"requires": {
- "debug": "2.6.8",
+ "debug": "2.6.9",
"istanbul-lib-coverage": "1.1.1",
"mkdirp": "0.5.1",
- "rimraf": "2.6.1",
+ "rimraf": "2.6.2",
"source-map": "0.5.7"
}
},
@@ -5294,6 +5408,12 @@
"jest-cli": "19.0.2"
},
"dependencies": {
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=",
+ "dev": true
+ },
"bser": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz",
@@ -5320,9 +5440,9 @@
"chalk": "1.1.3",
"graceful-fs": "4.1.11",
"is-ci": "1.0.10",
- "istanbul-api": "1.1.13",
+ "istanbul-api": "1.1.14",
"istanbul-lib-coverage": "1.1.1",
- "istanbul-lib-instrument": "1.7.5",
+ "istanbul-lib-instrument": "1.8.0",
"jest-changed-files": "19.0.2",
"jest-config": "19.0.4",
"jest-environment-jsdom": "19.0.2",
@@ -5370,7 +5490,7 @@
"dev": true,
"requires": {
"anymatch": "1.3.2",
- "exec-sh": "0.2.0",
+ "exec-sh": "0.2.1",
"fb-watchman": "1.9.2",
"minimatch": "3.0.4",
"minimist": "1.2.0",
@@ -5388,6 +5508,18 @@
}
}
}
+ },
+ "throat": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz",
+ "integrity": "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w==",
+ "dev": true
+ },
+ "watch": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz",
+ "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=",
+ "dev": true
}
}
},
@@ -5440,7 +5572,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "diff": "3.3.0",
+ "diff": "3.3.1",
"jest-matcher-utils": "19.0.0",
"pretty-format": "19.0.0"
},
@@ -5466,9 +5598,9 @@
}
},
"jest-docblock": {
- "version": "20.0.3",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.0.3.tgz",
- "integrity": "sha1-F76phDQswz2DxQ++FUXqDvqkRxI="
+ "version": "20.1.0-delta.4",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.1.0-delta.4.tgz",
+ "integrity": "sha512-apbBKyQ8ET8XQbOnsjIYTvmo2+FRZIsxUkfy75IbG+SH9ILQLjEfPXq3B/iMRCGoTAeI8lwxUQoLKGbw0mrTCQ=="
},
"jest-environment-jsdom": {
"version": "19.0.2",
@@ -5498,53 +5630,36 @@
"dev": true
},
"jest-haste-map": {
- "version": "20.0.4",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.0.4.tgz",
- "integrity": "sha1-ZT61XIic48Ah97lGk/IKQVm63wM=",
+ "version": "20.1.0-delta.4",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.1.0-delta.4.tgz",
+ "integrity": "sha512-L95f3nYoxUSzqzJdOq39ggklspwkqOq/FkzvH0SYhXdpv0c0kW8DXLovxfZy5FnK4rUyeVMBI9aNQ+TvZHKT3Q==",
"requires": {
"fb-watchman": "2.0.0",
"graceful-fs": "4.1.11",
- "jest-docblock": "20.0.3",
+ "jest-docblock": "20.1.0-delta.4",
"micromatch": "2.3.11",
- "sane": "1.6.0",
+ "sane": "2.2.0",
"worker-farm": "1.5.0"
},
"dependencies": {
- "bser": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bser/-/bser-1.0.2.tgz",
- "integrity": "sha1-OBEWlwsqbe6lZG3RXdcnhES1YWk=",
- "requires": {
- "node-int64": "0.4.0"
- }
- },
"minimist": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
},
"sane": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/sane/-/sane-1.6.0.tgz",
- "integrity": "sha1-lhDEUjB6E10pwf3+JUcDQYDEZ3U=",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/sane/-/sane-2.2.0.tgz",
+ "integrity": "sha512-OSJxhHO0CgPUw3lUm3GhfREAfza45smvEI9ozuFrxKG10GHVo0ryW9FK5VYlLvxj0SV7HVKHW0voYJIRu27GWg==",
"requires": {
"anymatch": "1.3.2",
- "exec-sh": "0.2.0",
- "fb-watchman": "1.9.2",
+ "exec-sh": "0.2.1",
+ "fb-watchman": "2.0.0",
+ "fsevents": "1.1.2",
"minimatch": "3.0.4",
"minimist": "1.2.0",
"walker": "1.0.7",
- "watch": "0.10.0"
- },
- "dependencies": {
- "fb-watchman": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-1.9.2.tgz",
- "integrity": "sha1-okz0eCf4LTj7Waaa1wt247auc4M=",
- "requires": {
- "bser": "1.0.2"
- }
- }
+ "watch": "0.18.0"
}
}
}
@@ -5672,7 +5787,7 @@
"dev": true,
"requires": {
"anymatch": "1.3.2",
- "exec-sh": "0.2.0",
+ "exec-sh": "0.2.1",
"fb-watchman": "1.9.2",
"minimatch": "3.0.4",
"minimist": "1.2.0",
@@ -5690,6 +5805,12 @@
}
}
}
+ },
+ "watch": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz",
+ "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=",
+ "dev": true
}
}
},
@@ -5710,7 +5831,7 @@
"requires": {
"babel-core": "6.26.0",
"babel-jest": "19.0.0",
- "babel-plugin-istanbul": "4.1.4",
+ "babel-plugin-istanbul": "4.1.5",
"chalk": "1.1.3",
"graceful-fs": "4.1.11",
"jest-config": "19.0.4",
@@ -5760,7 +5881,7 @@
"dev": true,
"requires": {
"anymatch": "1.3.2",
- "exec-sh": "0.2.0",
+ "exec-sh": "0.2.1",
"fb-watchman": "1.9.2",
"minimatch": "3.0.4",
"minimist": "1.2.0",
@@ -5784,6 +5905,12 @@
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
"integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
"dev": true
+ },
+ "watch": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz",
+ "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw=",
+ "dev": true
}
}
},
@@ -5870,21 +5997,10 @@
}
}
},
- "joi": {
- "version": "6.10.1",
- "resolved": "https://registry.npmjs.org/joi/-/joi-6.10.1.tgz",
- "integrity": "sha1-TVDDGAeRIgAP5fFq8f+OGRe3fgY=",
- "requires": {
- "hoek": "2.16.3",
- "isemail": "1.2.0",
- "moment": "2.18.1",
- "topo": "1.1.0"
- }
- },
"js-beautify": {
- "version": "1.6.14",
- "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.6.14.tgz",
- "integrity": "sha1-07j3Mi0CuSd9WL0jgmTDJ+WARM0=",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.7.3.tgz",
+ "integrity": "sha512-mT9skIu0OWfBQPXOGJ4CgpPBgo3tj9gxi7weQdeaxxmpKIADK2g0xS0qCtQml7Ny3Ick5Cno093LKGZTzDd2UQ==",
"requires": {
"config-chain": "1.1.11",
"editorconfig": "0.13.3",
@@ -5898,14 +6014,9 @@
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
},
"js-yaml": {
- "version": "3.9.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.9.1.tgz",
- "integrity": "sha512-CbcG379L1e+mWBnLvHWWeLs8GyV/EMw862uLI3c+GxVyDHWZcjZinwuBd3iW2pgxgIlksW/1vNJa4to+RvDOww==",
- "dev": true,
- "requires": {
- "argparse": "1.0.9",
- "esprima": "4.0.0"
- }
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-0.3.7.tgz",
+ "integrity": "sha1-1znY7oZGHlSzVNan19HyrZoWf2I="
},
"jsbn": {
"version": "0.1.1",
@@ -5913,27 +6024,32 @@
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"optional": true
},
+ "jschardet": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz",
+ "integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A=="
+ },
"jsdom": {
"version": "9.12.0",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz",
"integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=",
"dev": true,
"requires": {
- "abab": "1.0.3",
+ "abab": "1.0.4",
"acorn": "4.0.13",
"acorn-globals": "3.1.0",
"array-equal": "1.0.0",
"content-type-parser": "1.0.1",
"cssom": "0.3.2",
"cssstyle": "0.2.37",
- "escodegen": "1.8.1",
+ "escodegen": "1.9.0",
"html-encoding-sniffer": "1.0.1",
- "nwmatcher": "1.4.1",
+ "nwmatcher": "1.4.2",
"parse5": "1.5.1",
- "request": "2.81.0",
+ "request": "2.83.0",
"sax": "1.2.4",
"symbol-tree": "3.2.2",
- "tough-cookie": "2.3.2",
+ "tough-cookie": "2.3.3",
"webidl-conversions": "4.0.2",
"whatwg-encoding": "1.0.1",
"whatwg-url": "4.8.0",
@@ -5959,11 +6075,21 @@
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
"integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s="
},
+ "jsmin": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/jsmin/-/jsmin-1.0.1.tgz",
+ "integrity": "sha1-570NzWSWw79IYyNb9GGj2YqjuYw="
+ },
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
},
+ "json-schema-traverse": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
+ },
"json-stable-stringify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
@@ -6010,13 +6136,6 @@
"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="
- }
}
},
"jsx-ast-utils": {
@@ -6030,6 +6149,17 @@
"resolved": "https://registry.npmjs.org/just-extend/-/just-extend-1.1.22.tgz",
"integrity": "sha1-MzCvdWyralQnAMZLLk5KoGLVL/8="
},
+ "jxLoader": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jxLoader/-/jxLoader-0.1.1.tgz",
+ "integrity": "sha1-ATTqUUTlM7WU/B/yX/GU4jXFPs0=",
+ "requires": {
+ "js-yaml": "0.3.7",
+ "moo-server": "1.3.0",
+ "promised-io": "0.3.5",
+ "walker": "1.0.7"
+ }
+ },
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
@@ -6177,6 +6307,11 @@
"lodash._root": "3.0.1"
}
},
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
+ },
"lodash.groupby": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz",
@@ -6278,6 +6413,11 @@
"pseudomap": "1.0.2"
}
},
+ "macos-release": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-1.1.0.tgz",
+ "integrity": "sha512-mmLbumEYMi5nXReB9js3WGsB8UE6cDBWyIO62Z4DNx6GbRhDxHNjA1MlzSpJ2S2KM1wyiPRA0d19uHWYYvMHjA=="
+ },
"makeerror": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz",
@@ -6304,21 +6444,29 @@
"resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
"integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo="
},
- "method-override": {
- "version": "2.3.9",
- "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.9.tgz",
- "integrity": "sha1-vRUfLONM8Bp2ykAKuVwBKxAtj3E=",
+ "merge-stream": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
+ "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
"requires": {
- "debug": "2.6.8",
+ "readable-stream": "2.3.3"
+ }
+ },
+ "method-override": {
+ "version": "2.3.10",
+ "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.10.tgz",
+ "integrity": "sha1-49r41d7hDdLc59SuiNYrvud0drQ=",
+ "requires": {
+ "debug": "2.6.9",
"methods": "1.1.2",
- "parseurl": "1.3.1",
- "vary": "1.1.1"
+ "parseurl": "1.3.2",
+ "vary": "1.1.2"
},
"dependencies": {
"vary": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz",
- "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc="
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
}
}
},
@@ -6327,6 +6475,150 @@
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
+ "metro-bundler": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/metro-bundler/-/metro-bundler-0.11.0.tgz",
+ "integrity": "sha512-z1b2HtOa1uJVrp5KOx9bvoYRPD8Gn5x+gyFTIGSev7hbDzyAmUoooFUf8yLAfyIVIb4TZGB+tjkn+Skmn41aNQ==",
+ "requires": {
+ "absolute-path": "0.0.0",
+ "async": "2.5.0",
+ "babel-core": "6.26.0",
+ "babel-generator": "6.26.0",
+ "babel-plugin-external-helpers": "6.22.0",
+ "babel-preset-es2015-node": "6.1.1",
+ "babel-preset-fbjs": "2.1.4",
+ "babel-preset-react-native": "2.1.0",
+ "babel-register": "6.26.0",
+ "babylon": "6.18.0",
+ "chalk": "1.1.3",
+ "concat-stream": "1.6.0",
+ "core-js": "2.5.1",
+ "debug": "2.6.9",
+ "denodeify": "1.2.1",
+ "fbjs": "0.8.12",
+ "graceful-fs": "4.1.11",
+ "image-size": "0.6.1",
+ "jest-docblock": "20.1.0-chi.1",
+ "jest-haste-map": "20.1.0-chi.1",
+ "json-stable-stringify": "1.0.1",
+ "json5": "0.4.0",
+ "left-pad": "1.1.3",
+ "lodash": "4.17.4",
+ "merge-stream": "1.0.1",
+ "mime-types": "2.1.11",
+ "mkdirp": "0.5.1",
+ "request": "2.83.0",
+ "rimraf": "2.6.2",
+ "source-map": "0.5.7",
+ "temp": "0.8.3",
+ "throat": "4.1.0",
+ "uglify-js": "2.7.5",
+ "write-file-atomic": "1.3.4",
+ "xpipe": "1.0.5"
+ },
+ "dependencies": {
+ "babel-preset-react-native": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-2.1.0.tgz",
+ "integrity": "sha1-kBPr2C2hyIECv1iIEP9Z4gnKK4o=",
+ "requires": {
+ "babel-plugin-check-es2015-constants": "6.22.0",
+ "babel-plugin-react-transform": "2.0.2",
+ "babel-plugin-syntax-async-functions": "6.13.0",
+ "babel-plugin-syntax-class-properties": "6.13.0",
+ "babel-plugin-syntax-flow": "6.18.0",
+ "babel-plugin-syntax-jsx": "6.18.0",
+ "babel-plugin-syntax-trailing-function-commas": "6.22.0",
+ "babel-plugin-transform-class-properties": "6.24.1",
+ "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "6.26.0",
+ "babel-plugin-transform-es2015-classes": "6.24.1",
+ "babel-plugin-transform-es2015-computed-properties": "6.24.1",
+ "babel-plugin-transform-es2015-destructuring": "6.23.0",
+ "babel-plugin-transform-es2015-for-of": "6.23.0",
+ "babel-plugin-transform-es2015-function-name": "6.24.1",
+ "babel-plugin-transform-es2015-literals": "6.22.0",
+ "babel-plugin-transform-es2015-modules-commonjs": "6.7.7",
+ "babel-plugin-transform-es2015-parameters": "6.24.1",
+ "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
+ "babel-plugin-transform-es2015-spread": "6.22.0",
+ "babel-plugin-transform-es2015-template-literals": "6.22.0",
+ "babel-plugin-transform-flow-strip-types": "6.22.0",
+ "babel-plugin-transform-object-assign": "6.22.0",
+ "babel-plugin-transform-object-rest-spread": "6.26.0",
+ "babel-plugin-transform-react-display-name": "6.25.0",
+ "babel-plugin-transform-react-jsx": "6.24.1",
+ "babel-plugin-transform-react-jsx-source": "6.22.0",
+ "babel-plugin-transform-regenerator": "6.6.5",
+ "react-transform-hmr": "1.0.4"
+ }
+ },
+ "fbjs": {
+ "version": "0.8.12",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz",
+ "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=",
+ "requires": {
+ "core-js": "1.2.7",
+ "isomorphic-fetch": "2.2.1",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "promise": "7.3.1",
+ "setimmediate": "1.0.5",
+ "ua-parser-js": "0.7.14"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ }
+ }
+ },
+ "jest-docblock": {
+ "version": "20.1.0-chi.1",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.1.0-chi.1.tgz",
+ "integrity": "sha512-zX64LtNgTgphO06akqDxKQhVET3uwjZTRalqG2jJoWyEdSUYGp8yjjqicJ7rRu5ZbwnuaB8yqqP9Exu59oDNaA=="
+ },
+ "jest-haste-map": {
+ "version": "20.1.0-chi.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.1.0-chi.1.tgz",
+ "integrity": "sha512-G5Bjy3NoSBOR4T5FGqu6VlUJk7BnGUfRXkPcU26HTE06j5T0HEnVoScUsP1+XHSSw0XKq84N2LquppHbg3buxg==",
+ "requires": {
+ "fb-watchman": "2.0.0",
+ "graceful-fs": "4.1.11",
+ "jest-docblock": "20.1.0-chi.1",
+ "micromatch": "2.3.11",
+ "sane": "2.2.0",
+ "worker-farm": "1.5.0"
+ }
+ },
+ "json5": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz",
+ "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0="
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "sane": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/sane/-/sane-2.2.0.tgz",
+ "integrity": "sha512-OSJxhHO0CgPUw3lUm3GhfREAfza45smvEI9ozuFrxKG10GHVo0ryW9FK5VYlLvxj0SV7HVKHW0voYJIRu27GWg==",
+ "requires": {
+ "anymatch": "1.3.2",
+ "exec-sh": "0.2.1",
+ "fb-watchman": "2.0.0",
+ "fsevents": "1.1.2",
+ "minimatch": "3.0.4",
+ "minimist": "1.2.0",
+ "walker": "1.0.7",
+ "watch": "0.18.0"
+ }
+ }
+ }
+ },
"micromatch": {
"version": "2.3.11",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
@@ -6344,18 +6636,18 @@
"normalize-path": "2.1.1",
"object.omit": "2.0.1",
"parse-glob": "3.0.4",
- "regex-cache": "0.4.3"
+ "regex-cache": "0.4.4"
}
},
"mime": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz",
- "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA="
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
+ "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
},
"mime-db": {
- "version": "1.29.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz",
- "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg="
+ "version": "1.30.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
+ "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE="
},
"mime-types": {
"version": "2.1.11",
@@ -6414,10 +6706,10 @@
"require-relative": "0.8.7"
}
},
- "moment": {
- "version": "2.18.1",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz",
- "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8="
+ "moo-server": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/moo-server/-/moo-server-1.3.0.tgz",
+ "integrity": "sha1-XceVaVZaENbv7VQ5SR5p0jkuWPE="
},
"morgan": {
"version": "1.6.1",
@@ -6492,15 +6784,14 @@
}
},
"mute-stream": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
- "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA="
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
},
"nan": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz",
- "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=",
- "dev": true,
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz",
+ "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=",
"optional": true
},
"native-promise-only": {
@@ -6520,14 +6811,15 @@
"integrity": "sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g="
},
"nise": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/nise/-/nise-1.0.1.tgz",
- "integrity": "sha1-DakrEKhU6XwPSW9sKEWjASgLPu8=",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-1.1.0.tgz",
+ "integrity": "sha512-lIFidCxB0mJGyq1i33tLRNojtMoYX95EAI7WQEU+/ees0w6hvXZQHZ7WD130Tjeh5+YJAUVLfQ3k/s9EA8jj+w==",
"requires": {
"formatio": "1.2.0",
"just-extend": "1.1.22",
"lolex": "1.6.0",
- "path-to-regexp": "1.7.0"
+ "path-to-regexp": "1.7.0",
+ "text-encoding": "0.6.4"
},
"dependencies": {
"lolex": {
@@ -6538,9 +6830,9 @@
}
},
"node-fetch": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.2.tgz",
- "integrity": "sha512-xZZUq2yDhKMIn/UgG5q//IZSNLJIwW2QxS14CNH5spuiXkITM2pUitjdq58yLSaU7m4M0wBNaM2Gh/ggY4YJig==",
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
+ "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
"requires": {
"encoding": "0.1.12",
"is-stream": "1.1.0"
@@ -6573,7 +6865,7 @@
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"requires": {
- "abbrev": "1.1.0"
+ "abbrev": "1.1.1"
}
},
"normalize-package-data": {
@@ -6619,9 +6911,9 @@
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
},
"nwmatcher": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.1.tgz",
- "integrity": "sha1-eumwew6oBNt+JfBctf5Al9TklJ8=",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.2.tgz",
+ "integrity": "sha512-QMkCGQFYp5p+zwU3INntLmz1HMfSx9dMVJMYKmE1yuSf/22Wjo6VPFa405mCLUuQn9lbQvH2DZN9lt10ZNvtAg==",
"dev": true
},
"oauth-sign": {
@@ -6647,7 +6939,7 @@
"dev": true,
"requires": {
"define-properties": "1.1.2",
- "function-bind": "1.1.0",
+ "function-bind": "1.1.1",
"object-keys": "1.0.11"
}
},
@@ -6682,9 +6974,12 @@
}
},
"onetime": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
- "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k="
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "requires": {
+ "mimic-fn": "1.1.0"
+ }
},
"opn": {
"version": "3.0.3",
@@ -6742,6 +7037,15 @@
"lcid": "1.0.0"
}
},
+ "os-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/os-name/-/os-name-2.0.1.tgz",
+ "integrity": "sha1-uaOGNhwXrjohc27wWZQFyajF3F4=",
+ "requires": {
+ "macos-release": "1.1.0",
+ "win-release": "1.1.1"
+ }
+ },
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
@@ -6802,9 +7106,9 @@
"dev": true
},
"parseurl": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz",
- "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY="
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
+ "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
},
"path-exists": {
"version": "2.1.0",
@@ -6872,9 +7176,9 @@
"integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0="
},
"performance-now": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz",
- "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU="
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"pify": {
"version": "2.3.0",
@@ -6972,13 +7276,19 @@
"asap": "2.0.6"
}
},
+ "promised-io": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/promised-io/-/promised-io-0.3.5.tgz",
+ "integrity": "sha1-StIXuzZYvKrplGsXqGaOzYUeE1Y="
+ },
"prop-types": {
- "version": "15.5.10",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.10.tgz",
- "integrity": "sha1-J5ffwxJhguOpXj37suiT3ddFYVQ=",
+ "version": "15.6.0",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.0.tgz",
+ "integrity": "sha1-zq8IMCL8RrSjX2nhPvda7Q1jmFY=",
"requires": {
- "fbjs": "0.8.14",
- "loose-envify": "1.3.1"
+ "fbjs": "0.8.16",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1"
}
},
"proto-list": {
@@ -7076,13 +7386,15 @@
}
},
"react": {
- "version": "16.0.0-alpha.6",
- "resolved": "https://registry.npmjs.org/react/-/react-16.0.0-alpha.6.tgz",
- "integrity": "sha1-LMsa+0QlzMEveKEjpmby5MFBrbk=",
+ "version": "16.0.0-alpha.12",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.0.0-alpha.12.tgz",
+ "integrity": "sha1-jFlIUoFIXfMZtvd2gtjdBiHAgZQ=",
"requires": {
- "fbjs": "0.8.14",
+ "create-react-class": "15.6.2",
+ "fbjs": "0.8.16",
"loose-envify": "1.3.1",
- "object-assign": "4.1.1"
+ "object-assign": "4.1.1",
+ "prop-types": "15.6.0"
}
},
"react-clone-referenced-element": {
@@ -7096,9 +7408,9 @@
"integrity": "sha1-vNMUeAJ7ZLMznxCJIatSC0MT3Cw="
},
"react-devtools-core": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-2.5.0.tgz",
- "integrity": "sha512-sLlDHiY+DoOnzEXdLwSGxob3MtiIwM54s6FBbVAc/iOorNd8Nv1aVUTsZpTnJXDYa8p5VPNdCR4ATQ0HcIBh+Q==",
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-2.5.2.tgz",
+ "integrity": "sha1-+XvsWvrl2TGNFneAZeDCFMTVcUw=",
"requires": {
"shell-quote": "1.6.1",
"ws": "2.3.1"
@@ -7121,9 +7433,9 @@
}
},
"react-native": {
- "version": "0.44.3",
- "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.44.3.tgz",
- "integrity": "sha1-BFUOHN/GGacS8/WWnWjNfC3EwHM=",
+ "version": "0.48.4",
+ "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.48.4.tgz",
+ "integrity": "sha1-8wXp/vBppbP2pyUN3VD2A88wqy0=",
"requires": {
"absolute-path": "0.0.0",
"art": "0.10.1",
@@ -7133,12 +7445,13 @@
"babel-plugin-external-helpers": "6.22.0",
"babel-plugin-syntax-trailing-function-commas": "6.22.0",
"babel-plugin-transform-async-to-generator": "6.16.0",
+ "babel-plugin-transform-class-properties": "6.24.1",
"babel-plugin-transform-flow-strip-types": "6.22.0",
"babel-plugin-transform-object-rest-spread": "6.26.0",
"babel-polyfill": "6.26.0",
"babel-preset-es2015-node": "6.1.1",
"babel-preset-fbjs": "2.1.4",
- "babel-preset-react-native": "1.9.2",
+ "babel-preset-react-native": "2.1.0",
"babel-register": "6.26.0",
"babel-runtime": "6.26.0",
"babel-traverse": "6.26.0",
@@ -7150,68 +7463,69 @@
"commander": "2.11.0",
"concat-stream": "1.6.0",
"connect": "2.30.2",
- "core-js": "2.5.0",
- "debug": "2.6.8",
+ "core-js": "2.5.1",
+ "create-react-class": "15.6.2",
+ "debug": "2.6.9",
"denodeify": "1.2.1",
+ "envinfo": "3.4.1",
+ "errno": "0.1.4",
"event-target-shim": "1.1.1",
- "fbjs": "0.8.14",
+ "fbjs": "0.8.12",
"fbjs-scripts": "0.7.1",
"form-data": "2.3.1",
"fs-extra": "1.0.0",
"glob": "7.1.2",
"graceful-fs": "4.1.11",
- "image-size": "0.3.5",
- "immutable": "3.7.6",
- "imurmurhash": "0.1.4",
- "inquirer": "0.12.0",
- "jest-haste-map": "20.0.4",
- "joi": "6.10.1",
+ "inquirer": "3.3.0",
+ "jest-haste-map": "20.1.0-delta.4",
"json-stable-stringify": "1.0.1",
"json5": "0.4.0",
"left-pad": "1.1.3",
"lodash": "4.17.4",
- "mime": "1.3.6",
+ "merge-stream": "1.0.1",
+ "metro-bundler": "0.11.0",
+ "mime": "1.4.1",
"mime-types": "2.1.11",
"minimist": "1.2.0",
"mkdirp": "0.5.1",
- "node-fetch": "1.7.2",
+ "node-fetch": "1.7.3",
"npmlog": "2.0.4",
"opn": "3.0.3",
"optimist": "0.6.1",
"plist": "1.2.0",
"pretty-format": "4.3.1",
"promise": "7.3.1",
+ "prop-types": "15.6.0",
"react-clone-referenced-element": "1.0.1",
- "react-devtools-core": "2.5.0",
+ "react-devtools-core": "2.5.2",
"react-timer-mixin": "0.13.3",
"react-transform-hmr": "1.0.4",
"rebound": "0.0.13",
"regenerator-runtime": "0.9.6",
- "request": "2.81.0",
- "rimraf": "2.6.1",
+ "request": "2.83.0",
+ "rimraf": "2.6.2",
"sane": "1.4.1",
"semver": "5.4.1",
"shell-quote": "1.6.1",
"source-map": "0.5.7",
"stacktrace-parser": "0.1.4",
"temp": "0.8.3",
- "throat": "3.2.0",
- "uglify-js": "2.7.5",
+ "throat": "4.1.0",
"whatwg-fetch": "1.1.1",
"wordwrap": "1.0.0",
- "worker-farm": "1.5.0",
"write-file-atomic": "1.3.4",
"ws": "1.1.4",
"xcode": "0.9.3",
"xmldoc": "0.4.0",
"xpipe": "1.0.5",
+ "xtend": "4.0.1",
"yargs": "6.6.0"
},
"dependencies": {
"babel-preset-react-native": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-1.9.2.tgz",
- "integrity": "sha1-sird0uNV/zs5Zxt5voB+Ut+hRfI=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-2.1.0.tgz",
+ "integrity": "sha1-kBPr2C2hyIECv1iIEP9Z4gnKK4o=",
"requires": {
"babel-plugin-check-es2015-constants": "6.22.0",
"babel-plugin-react-transform": "2.0.2",
@@ -7249,7 +7563,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.0",
+ "core-js": "2.5.1",
"regenerator-runtime": "0.11.0"
},
"dependencies": {
@@ -7260,6 +7574,27 @@
}
}
},
+ "fbjs": {
+ "version": "0.8.12",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.12.tgz",
+ "integrity": "sha1-ELXZL3bUVXX9Y6IX1OoCvqL47QQ=",
+ "requires": {
+ "core-js": "1.2.7",
+ "isomorphic-fetch": "2.2.1",
+ "loose-envify": "1.3.1",
+ "object-assign": "4.1.1",
+ "promise": "7.3.1",
+ "setimmediate": "1.0.5",
+ "ua-parser-js": "0.7.14"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ }
+ }
+ },
"json5": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz",
@@ -7309,28 +7644,23 @@
"integrity": "sha1-hTCp0GlmE60lvF1Cg/HjxUHsK8Q="
},
"react-native-tab-view": {
- "version": "0.0.65",
- "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-0.0.65.tgz",
- "integrity": "sha1-toXqMIH/fJZIbNmXNhAmxAcwLFk=",
+ "version": "0.0.69",
+ "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-0.0.69.tgz",
+ "integrity": "sha512-0K1wr40cDN90vZWZl3BfwYnUDb2mfRqFHIqkIsJCOlgu6t3vU9/I/afu/whpB3chKgumB925g5qBeC/OdGAODA==",
"requires": {
- "prop-types": "15.5.10"
+ "prop-types": "15.6.0"
}
},
"react-native-vector-icons": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-4.3.0.tgz",
- "integrity": "sha512-K6AMkvkvCnYS64ZeUVa/ONSP7Iz8IbQWrG5UjlfP7uya12vR8aLUwm+MI/suIIKUhRFjvmIPskmc/i15pCTkiw==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/react-native-vector-icons/-/react-native-vector-icons-4.4.0.tgz",
+ "integrity": "sha512-mh4iDaUn8SPXDwN8lARabYpFWCbVv1PYo3WOnW6Z0LZBS/mhv6v7lMwcizM3RAo9PdZhcklZQCNWB0HdH4APRg==",
"requires": {
"lodash": "4.17.4",
- "prop-types": "15.5.10",
+ "prop-types": "15.6.0",
"yargs": "8.0.2"
},
"dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
- },
"camelcase": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
@@ -7366,6 +7696,14 @@
"locate-path": "2.0.0"
}
},
+ "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=",
+ "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",
@@ -7414,30 +7752,6 @@
"read-pkg": "2.0.0"
}
},
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
- },
- "dependencies": {
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "requires": {
- "ansi-regex": "3.0.0"
- }
- }
- }
- },
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -7479,17 +7793,17 @@
}
},
"react-navigation": {
- "version": "1.0.0-beta.11",
- "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-1.0.0-beta.11.tgz",
- "integrity": "sha1-QnHtsjzbzG64hgL3/eCnfw73oWA=",
+ "version": "1.0.0-beta.13",
+ "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-1.0.0-beta.13.tgz",
+ "integrity": "sha512-MY3aJBsBZw8+7dpZnNmp0scRy2z0TtYYVET6bZzxf4t30MIqsqSwY2hadsNrZiVR6UZw2o+sVhG9r0QarPD6bQ==",
"requires": {
+ "babel-plugin-transform-define": "1.3.0",
"clamp": "1.0.1",
- "fbjs": "0.8.14",
- "hoist-non-react-statics": "1.2.0",
+ "hoist-non-react-statics": "2.3.1",
"path-to-regexp": "1.7.0",
- "prop-types": "15.5.10",
+ "prop-types": "15.6.0",
"react-native-drawer-layout-polyfill": "1.3.2",
- "react-native-tab-view": "0.0.65"
+ "react-native-tab-view": "0.0.69"
}
},
"react-proxy": {
@@ -7506,28 +7820,20 @@
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.6.tgz",
"integrity": "sha512-8taaaGu+J7PMJQDJrk/xiWEYQmdo3mkXw6wPr3K3LxvXis3Fymiq7c13S+Tpls/AyNUAsoONkU81AP0RA6y6Vw==",
"requires": {
- "hoist-non-react-statics": "2.3.0",
+ "hoist-non-react-statics": "2.3.1",
"invariant": "2.2.2",
"lodash": "4.17.4",
"lodash-es": "4.17.4",
"loose-envify": "1.3.1",
- "prop-types": "15.5.10"
- },
- "dependencies": {
- "hoist-non-react-statics": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.3.0.tgz",
- "integrity": "sha1-7eFjGML/H5/joCU5a6Bv1MRGCLs="
- }
+ "prop-types": "15.6.0"
}
},
"react-test-renderer": {
- "version": "15.4.2",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-15.4.2.tgz",
- "integrity": "sha1-J+Hf9dJtDoMPmWFMSHYivIMUFvM=",
- "dev": true,
+ "version": "16.0.0-alpha.12",
+ "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.0.0-alpha.12.tgz",
+ "integrity": "sha1-nkzF2M6L/KcneDQN4+FFS51sDMU=",
"requires": {
- "fbjs": "0.8.14",
+ "fbjs": "0.8.16",
"object-assign": "4.1.1"
}
},
@@ -7595,10 +7901,28 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
"integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
+ "dev": true,
"requires": {
"code-point-at": "1.1.0",
"is-fullwidth-code-point": "1.0.0",
"mute-stream": "0.0.5"
+ },
+ "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"
+ }
+ },
+ "mute-stream": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz",
+ "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=",
+ "dev": true
+ }
}
},
"rebound": {
@@ -7645,9 +7969,9 @@
}
},
"redux-persist": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/redux-persist/-/redux-persist-4.9.1.tgz",
- "integrity": "sha512-XoOmfPyo9GEU/WLH9FgB47dNIN9l5ArjHes4o7vUWx9nxZoPxnVodhuHdyc4Ot+fMkdj3L2LTqSHhwrkr0QFUg==",
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/redux-persist/-/redux-persist-4.10.1.tgz",
+ "integrity": "sha512-ZUjCuSxdrTrxbYBio4CBv3ODYKsjSfR27RweDIia9335YEu7WptWpe+DmiqDRqt3QsV1hMRjpSoPiNwKiJ+D6w==",
"requires": {
"json-stringify-safe": "5.0.1",
"lodash": "4.17.4",
@@ -7660,9 +7984,9 @@
"integrity": "sha1-5hWhbha0ehmlFXZhM9Hj6Zt4UuU="
},
"regenerate": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz",
- "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA="
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
+ "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg=="
},
"regenerator-runtime": {
"version": "0.11.0",
@@ -7670,12 +7994,11 @@
"integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A=="
},
"regex-cache": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz",
- "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=",
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
+ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
"requires": {
- "is-equal-shallow": "0.1.3",
- "is-primitive": "2.0.0"
+ "is-equal-shallow": "0.1.3"
}
},
"regexpu-core": {
@@ -7683,7 +8006,7 @@
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
"integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
"requires": {
- "regenerate": "1.3.2",
+ "regenerate": "1.3.3",
"regjsgen": "0.2.0",
"regjsparser": "0.1.5"
}
@@ -7737,58 +8060,46 @@
"integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ="
},
"request": {
- "version": "2.81.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
- "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
+ "version": "2.83.0",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
+ "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
"requires": {
- "aws-sign2": "0.6.0",
+ "aws-sign2": "0.7.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",
+ "form-data": "2.3.1",
+ "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.11",
+ "mime-types": "2.1.17",
"oauth-sign": "0.8.2",
- "performance-now": "0.2.0",
- "qs": "6.4.0",
+ "performance-now": "2.1.0",
+ "qs": "6.5.1",
"safe-buffer": "5.1.1",
"stringstream": "0.0.5",
- "tough-cookie": "2.3.2",
+ "tough-cookie": "2.3.3",
"tunnel-agent": "0.6.0",
"uuid": "3.1.0"
},
"dependencies": {
- "form-data": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
- "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
+ "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=",
"requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.5",
- "mime-types": "2.1.16"
- },
- "dependencies": {
- "mime-types": {
- "version": "2.1.16",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz",
- "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=",
- "requires": {
- "mime-db": "1.29.0"
- }
- }
+ "mime-db": "1.30.0"
}
},
"qs": {
- "version": "6.4.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz",
- "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM="
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
+ "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
}
}
},
@@ -7849,12 +8160,12 @@
}
},
"restore-cursor": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
- "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"requires": {
- "exit-hook": "1.1.1",
- "onetime": "1.1.0"
+ "onetime": "2.0.1",
+ "signal-exit": "3.0.2"
}
},
"right-align": {
@@ -7866,9 +8177,9 @@
}
},
"rimraf": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz",
- "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=",
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
"requires": {
"glob": "7.1.2"
}
@@ -7879,17 +8190,25 @@
"integrity": "sha1-8z/pz7Urv9UgqhgyO8ZdsRCht2w="
},
"run-async": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
- "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
+ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
"requires": {
- "once": "1.4.0"
+ "is-promise": "2.1.0"
}
},
"rx-lite": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz",
- "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI="
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
+ "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ="
+ },
+ "rx-lite-aggregates": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz",
+ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=",
+ "requires": {
+ "rx-lite": "4.0.8"
+ }
},
"safe-buffer": {
"version": "5.1.1",
@@ -7906,7 +8225,7 @@
"resolved": "https://registry.npmjs.org/sane/-/sane-1.4.1.tgz",
"integrity": "sha1-iPdj10BA9fDCVrYWPbOZvxEKxxU=",
"requires": {
- "exec-sh": "0.2.0",
+ "exec-sh": "0.2.1",
"fb-watchman": "1.9.2",
"minimatch": "3.0.4",
"minimist": "1.2.0",
@@ -7934,6 +8253,11 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "watch": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz",
+ "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw="
}
}
},
@@ -8004,7 +8328,7 @@
"etag": "1.7.0",
"fresh": "0.3.0",
"ms": "0.7.2",
- "parseurl": "1.3.1"
+ "parseurl": "1.3.2"
},
"dependencies": {
"ms": {
@@ -8025,7 +8349,7 @@
"escape-html": "1.0.3",
"http-errors": "1.3.1",
"mime-types": "2.1.11",
- "parseurl": "1.3.1"
+ "parseurl": "1.3.2"
},
"dependencies": {
"debug": {
@@ -8049,7 +8373,7 @@
"integrity": "sha1-zlpuzTEB/tXsCYJ9rCKpwpv7BTU=",
"requires": {
"escape-html": "1.0.3",
- "parseurl": "1.3.1",
+ "parseurl": "1.3.2",
"send": "0.13.2"
}
},
@@ -8101,7 +8425,7 @@
"dev": true,
"requires": {
"glob": "7.1.2",
- "interpret": "1.0.3",
+ "interpret": "1.0.4",
"rechoir": "0.6.2"
}
},
@@ -8207,15 +8531,17 @@
}
},
"sinon": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-3.2.1.tgz",
- "integrity": "sha512-KY3OLOWpek/I4NGAMHetuutVgS2aRgMR5g5/1LSYvPJ3qo2BopIvk3esFztPxF40RWf/NNNJzdFPriSkXUVK3A==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-3.3.0.tgz",
+ "integrity": "sha512-/flfGfIxIRXSvZBHJzIf3iAyGYkmMQq6SQjA0cx9SOuVuq+4ZPPO4LJtH1Ce0Lznax1KSG1U6Dad85wIcSW19w==",
"requires": {
- "diff": "3.3.0",
+ "build": "0.1.4",
+ "diff": "3.3.1",
"formatio": "1.2.0",
+ "lodash.get": "4.4.2",
"lolex": "2.1.2",
"native-promise-only": "0.8.1",
- "nise": "1.0.1",
+ "nise": "1.1.0",
"path-to-regexp": "1.7.0",
"samsam": "1.2.1",
"text-encoding": "0.6.4",
@@ -8239,11 +8565,11 @@
"integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc="
},
"sntp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
- "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz",
+ "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=",
"requires": {
- "hoek": "2.16.3"
+ "hoek": "4.2.0"
}
},
"source-map": {
@@ -8252,9 +8578,9 @@
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
},
"source-map-support": {
- "version": "0.4.16",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.16.tgz",
- "integrity": "sha512-A6vlydY7H/ljr4L2UOhDSajQdZQ6dMD7cLH0pzwcmwLyc9u8PNI4WGtnfDDzX7uzGL6c/T+ORL97Zlh+S4iOrg==",
+ "version": "0.4.18",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
+ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
"requires": {
"source-map": "0.5.7"
}
@@ -8301,15 +8627,13 @@
"getpass": "0.1.7",
"jsbn": "0.1.1",
"tweetnacl": "0.14.5"
- },
- "dependencies": {
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- }
}
},
+ "stack-trace": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
+ },
"stacktrace-parser": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.4.tgz",
@@ -8374,13 +8698,27 @@
}
},
"string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
+ "is-fullwidth-code-point": "2.0.0",
+ "strip-ansi": "4.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="
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "requires": {
+ "ansi-regex": "3.0.0"
+ }
+ }
}
},
"stringstream": {
@@ -8445,35 +8783,14 @@
"string-width": "2.1.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
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
- },
- "string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "ajv": {
+ "version": "4.11.8",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
+ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
"dev": true,
"requires": {
- "is-fullwidth-code-point": "2.0.0",
- "strip-ansi": "4.0.0"
- }
- },
- "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"
+ "co": "4.6.0",
+ "json-stable-stringify": "1.0.1"
}
}
}
@@ -8519,9 +8836,9 @@
"dev": true
},
"throat": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/throat/-/throat-3.2.0.tgz",
- "integrity": "sha512-/EY8VpvlqJ+sFtLPeOgc8Pl7kQVOWv0woD87KTXVHPIAE842FGT+rokxIhe8xIUP1cfgrkt0as0vDLjDiMtr8w=="
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz",
+ "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo="
},
"through": {
"version": "2.3.8",
@@ -8542,6 +8859,19 @@
"resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
"integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM="
},
+ "timespan": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/timespan/-/timespan-2.3.0.tgz",
+ "integrity": "sha1-SQLOBAvRPYRcj1myfp1ZutbzmSk="
+ },
+ "tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "requires": {
+ "os-tmpdir": "1.0.2"
+ }
+ },
"tmpl": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
@@ -8552,18 +8882,10 @@
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
"integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
},
- "topo": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/topo/-/topo-1.1.0.tgz",
- "integrity": "sha1-6ddRYV0buH3IZdsYL6HKCl71NtU=",
- "requires": {
- "hoek": "2.16.3"
- }
- },
"tough-cookie": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
- "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=",
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
+ "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
"requires": {
"punycode": "1.4.1"
}
@@ -8574,6 +8896,11 @@
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
"dev": true
},
+ "traverse": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz",
+ "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc="
+ },
"trim-right": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
@@ -8624,15 +8951,15 @@
"integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
"requires": {
"media-typer": "0.3.0",
- "mime-types": "2.1.16"
+ "mime-types": "2.1.17"
},
"dependencies": {
"mime-types": {
- "version": "2.1.16",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz",
- "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=",
+ "version": "2.1.17",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
+ "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
"requires": {
- "mime-db": "1.29.0"
+ "mime-db": "1.30.0"
}
}
}
@@ -8751,13 +9078,6 @@
"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="
- }
}
},
"vhost": {
@@ -8784,9 +9104,20 @@
}
},
"watch": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/watch/-/watch-0.10.0.tgz",
- "integrity": "sha1-d3mLLaD5kQ1ZXxrOWwwiWFIfIdw="
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz",
+ "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=",
+ "requires": {
+ "exec-sh": "0.2.1",
+ "minimist": "1.2.0"
+ },
+ "dependencies": {
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ }
+ }
},
"webidl-conversions": {
"version": "4.0.2",
@@ -8847,11 +9178,44 @@
"resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
"integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
},
+ "win-release": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz",
+ "integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=",
+ "requires": {
+ "semver": "5.4.1"
+ }
+ },
"window-size": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
"integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
},
+ "winston": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.0.tgz",
+ "integrity": "sha1-gIBQuT1SZh7Z+2wms/DIJnCLCu4=",
+ "requires": {
+ "async": "1.0.0",
+ "colors": "1.0.3",
+ "cycle": "1.0.3",
+ "eyes": "0.1.8",
+ "isstream": "0.1.2",
+ "stack-trace": "0.0.10"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
+ "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
+ },
+ "colors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+ "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
+ }
+ }
+ },
"wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
@@ -8873,6 +9237,26 @@
"requires": {
"string-width": "1.0.2",
"strip-ansi": "3.0.1"
+ },
+ "dependencies": {
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
+ }
}
},
"wrappy": {
@@ -8880,6 +9264,11 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
+ "wrench": {
+ "version": "1.3.9",
+ "resolved": "https://registry.npmjs.org/wrench/-/wrench-1.3.9.tgz",
+ "integrity": "sha1-bxPsNRRTF+spLKX2UxORskQRFBE="
+ },
"write": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
@@ -9020,6 +9409,24 @@
"strip-ansi": "3.0.1",
"wrap-ansi": "2.1.0"
}
+ },
+ "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=",
+ "requires": {
+ "number-is-nan": "1.0.1"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "requires": {
+ "code-point-at": "1.1.0",
+ "is-fullwidth-code-point": "1.0.0",
+ "strip-ansi": "3.0.1"
+ }
}
}
},
diff --git a/tests/package.json b/tests/package.json
index b44fe516..2c968847 100644
--- a/tests/package.json
+++ b/tests/package.json
@@ -32,8 +32,9 @@
"js-beautify": "^1.6.11",
"lodash.groupby": "^4.6.0",
"lodash.some": "^4.6.0",
- "react": "16.0.0-alpha.6",
- "react-native": "^0.44.0",
+ "react": "16.0.0-alpha.12",
+ "react-native": "^0.48.4",
+ "react-test-renderer": "16.0.0-alpha.12",
"react-native-simple-toast": "0.0.5",
"react-native-vector-icons": "^4.0.0",
"react-navigation": "^1.0.0-beta.9",
@@ -51,6 +52,7 @@
"babel-eslint": "^7.1.1",
"babel-jest": "19.0.0",
"babel-plugin-flow-react-proptypes": "^0.21.0",
+ "babel-plugin-istanbul": "^4.1.5",
"babel-preset-react-native": "1.9.1",
"colors": "^1.1.2",
"eslint": "^3.16.1",
@@ -60,7 +62,6 @@
"eslint-plugin-jsx-a11y": "^4.0.0",
"eslint-plugin-react": "^6.10.0",
"jest": "19.0.2",
- "react-test-renderer": "~15.4.1",
"redux-immutable-state-invariant": "^1.2.4"
},
"jest": {
diff --git a/tests/src/phone-auth.js b/tests/src/phone-auth.js
new file mode 100644
index 00000000..ff970ea9
--- /dev/null
+++ b/tests/src/phone-auth.js
@@ -0,0 +1,249 @@
+import React, { Component } from 'react';
+import { View, Button, Text, TextInput, Image, ActivityIndicator, Platform } from 'react-native';
+import fb from './firebase';
+
+const firebase = fb.native;
+
+const imageUrl = 'https://www.shareicon.net/data/512x512/2016/07/19/798524_sms_512x512.png';
+
+export default class PhoneAuth extends Component {
+ static getDefaultState() {
+ return {
+ message: '',
+ error: '',
+ codeInput: '',
+ phoneNumber: '+44',
+ auto: Platform.OS === 'android',
+ autoVerifyCountDown: 0,
+ sent: false,
+ started: false,
+ user: null,
+ };
+ }
+
+ constructor(props) {
+ super(props);
+ this.timeout = 20;
+ this._autoVerifyInterval = null;
+ this.state = PhoneAuth.getDefaultState();
+ }
+
+ _tick() {
+ this.setState({
+ autoVerifyCountDown: this.state.autoVerifyCountDown - 1,
+ });
+ }
+
+ /**
+ * Called when confirm code is pressed - we should have the code and verificationId now in state.
+ */
+ afterVerify = () => {
+ const { codeInput, verificationId } = this.state;
+ const credential = firebase.auth.PhoneAuthProvider.credential(verificationId, codeInput);
+
+ // TODO do something with credential for example:
+ firebase.auth()
+ .signInWithCredential(credential)
+ .then((user) => {
+ console.log('PHONE AUTH USER ->>>>>', user.toJSON());
+ this.setState({ user: user.toJSON() });
+ }).catch(console.error);
+ };
+
+ signIn = () => {
+ const { phoneNumber } = this.state;
+ this.setState({ message: 'Sending code ...', error: '', started: true, autoVerifyCountDown: this.timeout }, () => {
+ firebase.auth()
+ .verifyPhoneNumber(phoneNumber)
+ .on('state_changed', (phoneAuthSnapshot) => {
+ console.log(phoneAuthSnapshot);
+ switch (phoneAuthSnapshot.state) {
+ case firebase.auth.PhoneAuthState.CODE_SENT: // or 'sent'
+ // update state with code sent and if android start a interval timer
+ // for auto verify - to provide visual feedback
+ this.setState({
+ sent: true,
+ message: 'Code Sent!',
+ verificationId: phoneAuthSnapshot.verificationId,
+ autoVerifyCountDown: this.timeout,
+ }, () => {
+ if (this.state.auto) {
+ this._autoVerifyInterval = setInterval(this._tick.bind(this), 1000);
+ }
+ });
+ break;
+ case firebase.auth.PhoneAuthState.ERROR: // or 'error'
+ // restart the phone flow again on error
+ clearInterval(this._autoVerifyInterval);
+ this.setState({
+ ...PhoneAuth.getDefaultState(),
+ error: phoneAuthSnapshot.error.message,
+ });
+ break;
+
+ // ---------------------
+ // ANDROID ONLY EVENTS
+ // ---------------------
+ case firebase.auth.PhoneAuthState.AUTO_VERIFY_TIMEOUT: // or 'timeout'
+ clearInterval(this._autoVerifyInterval);
+ this.setState({
+ sent: true,
+ auto: false,
+ verificationId: phoneAuthSnapshot.verificationId,
+ });
+ break;
+ case firebase.auth.PhoneAuthState.AUTO_VERIFIED: // or 'verified'
+ clearInterval(this._autoVerifyInterval);
+ this.setState({
+ sent: true,
+ codeInput: phoneAuthSnapshot.code,
+ verificationId: phoneAuthSnapshot.verificationId,
+ });
+ break;
+ default:
+ // will never get here - just for linting
+ }
+ });
+ });
+ };
+
+ renderInputPhoneNumber() {
+ const { phoneNumber } = this.state;
+ return (
+
+ Enter phone number:
+ this.setState({ phoneNumber: value })}
+ placeholder={'Phone number ... '}
+ value={phoneNumber}
+ />
+
+
+ );
+ }
+
+ renderSendingCode() {
+ const { phoneNumber } = this.state;
+
+ return (
+
+
+ {`Sending verification code to '${phoneNumber}'.`}
+
+
+
+ );
+ }
+
+ renderAutoVerifyProgress() {
+ const { autoVerifyCountDown, started, error, sent, phoneNumber } = this.state;
+ if (!sent && started && !error.length) {
+ return this.renderSendingCode();
+ }
+ return (
+
+
+ {`Verification code has been successfully sent to '${phoneNumber}'.`}
+
+
+ {`We'll now attempt to automatically verify the code for you. This will timeout in ${autoVerifyCountDown} seconds.`}
+
+
+ );
+ }
+
+ renderError() {
+ const { error } = this.state;
+
+ return (
+
+
+ {error}
+
+
+ );
+ }
+
+ render() {
+ const { started, error, codeInput, sent, auto, user } = this.state;
+ return (
+
+
+
+ Phone Auth Example
+ {error && error.length ? this.renderError() : null}
+ {!started && !sent ? this.renderInputPhoneNumber() : null}
+ {started && auto && !codeInput.length ? this.renderAutoVerifyProgress() : null}
+ {!user && started && sent && (codeInput.length || !auto) ? (
+
+ Enter verification code below:
+ this.setState({ codeInput: value })}
+ placeholder={'Code ... '}
+ value={codeInput}
+ />
+
+
+ ) : null}
+ {user ? (
+
+ {`Signed in with new user id: '${user.uid}'`}
+
+ ) : null}
+
+
+ );
+ }
+}
+
+
+/*
+ { user ? (
+
+
+ Signed In!
+ {JSON.stringify(user)}
+
+ ) : null}
+ */
+
+
+// Example usage if handling here and not in optionalCompleteCb:
+// const { verificationId, code } = phoneAuthSnapshot;
+// const credential = firebase.auth.PhoneAuthProvider.credential(verificationId, code);
+
+// Do something with your new credential, e.g.:
+// firebase.auth().signInWithCredential(credential);
+// firebase.auth().linkWithCredential(credential);
+// etc ...
diff --git a/tests/src/tests/index.js b/tests/src/tests/index.js
index 5c4d2bf2..c8462a9c 100644
--- a/tests/src/tests/index.js
+++ b/tests/src/tests/index.js
@@ -11,6 +11,10 @@ import performance from './perf';
import admob from './admob';
import firestore from './firestore';
+window.getCoverage = function getCoverage() {
+ return (JSON.stringify(global.__coverage__));
+};
+
const testSuiteInstances = [
admob,
analytics,