From 69258805797873c3289a39e9e6d1c75d14bc3ff2 Mon Sep 17 00:00:00 2001 From: stevepodell Date: Wed, 25 Oct 2017 10:59:46 -0700 Subject: [PATCH 01/17] Added https://github.com/fullstackreact/react-native-oauth/pull/171 and my NSString *clientID fix, which might not be as good as https://github.com/fullstackreact/react-native-oauth/blob/2f8c8d1483526bbc8a6ca72183c6d11a71538ad3/ios/OAuthManager/OAuthManager.m --- .../fullstack/oauth/OAuthManagerModule.java | 21 ++++++++++++++++++- ios/OAuthManager/OAuthManager.m | 2 ++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java b/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java index 35777a4..b5f9a45 100644 --- a/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java +++ b/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java @@ -7,6 +7,7 @@ import android.util.Log; import com.google.gson.Gson; +import com.google.gson.JsonSyntaxException; import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Callback; @@ -403,7 +404,25 @@ private WritableMap accessTokenResponse( Map accessTokenMap = new Gson().fromJson(accessToken.getRawResponse(), Map.class); Log.d(TAG, "Credential raw response: " + accessToken.getRawResponse()); - + + /* Some things return as JSON, some as x-www-form-urlencoded (querystring) */ + + Map accessTokenMap = null; + try { + accessTokenMap = new Gson().fromJson(accessToken.getRawResponse(), Map.class); + } catch (JsonSyntaxException e) { + /* + failed to parse as JSON, so turn it into a HashMap which looks like the one we'd + get back from the JSON parser, so the rest of the code continues unchanged. + */ + Log.d(TAG, "Credential looks like a querystring; parsing as such"); + accessTokenMap = new HashMap(); + accessTokenMap.put("user_id", accessToken.getParameter("user_id")); + accessTokenMap.put("oauth_token_secret", accessToken.getParameter("oauth_token_secret")); + accessTokenMap.put("token_type", accessToken.getParameter("token_type")); + } + + resp.putString("status", "ok"); resp.putBoolean("authorized", true); resp.putString("provider", providerName); diff --git a/ios/OAuthManager/OAuthManager.m b/ios/OAuthManager/OAuthManager.m index a9451bc..69ee707 100644 --- a/ios/OAuthManager/OAuthManager.m +++ b/ios/OAuthManager/OAuthManager.m @@ -304,6 +304,8 @@ - (NSDictionary *) getConfigForProvider:(NSString *)name DCTAuthAccount *existingAccount = [manager accountForProvider:providerName]; NSString *clientID = ((DCTOAuth2Credential *) existingAccount).clientID; + NSString *clientID = ([providerName isEqualToString:@"google"]) ? ((DCTOAuth2Credential *) existingAccount).clientID : (NSString *)nil; + if (([providerName isEqualToString:@"google"] && existingAccount && clientID != nil) || (![providerName isEqualToString:@"google"] && existingAccount != nil)) { if ([existingAccount isAuthorized]) { From 9c68923f856c57bc84e49ed86812232ca57f91f1 Mon Sep 17 00:00:00 2001 From: stevepodell Date: Wed, 25 Oct 2017 12:18:06 -0700 Subject: [PATCH 02/17] Added https://github.com/fullstackreact/react-native-oauth/pull/171 and my NSString *clientID fix, which might not be as good as https://github.com/fullstackreact/react-native-oauth/blob/2f8c8d1483526bbc8a6ca72183c6d11a71538ad3/ios/OAuthManager/OAuthManager.m --- ios/OAuthManager/OAuthManager.m | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ios/OAuthManager/OAuthManager.m b/ios/OAuthManager/OAuthManager.m index 69ee707..a5bdb51 100644 --- a/ios/OAuthManager/OAuthManager.m +++ b/ios/OAuthManager/OAuthManager.m @@ -303,8 +303,7 @@ - (NSDictionary *) getConfigForProvider:(NSString *)name NSMutableDictionary *cfg = [[manager getConfigForProvider:providerName] mutableCopy]; DCTAuthAccount *existingAccount = [manager accountForProvider:providerName]; - NSString *clientID = ((DCTOAuth2Credential *) existingAccount).clientID; - NSString *clientID = ([providerName isEqualToString:@"google"]) ? ((DCTOAuth2Credential *) existingAccount).clientID : (NSString *)nil; + NSString *clientID = ([providerName isEqualToString:@"google"]) ? ((DCTOAuth2Credential *) existingAccount).clientID : (NSString *)nil; if (([providerName isEqualToString:@"google"] && existingAccount && clientID != nil) || (![providerName isEqualToString:@"google"] && existingAccount != nil)) { From 370c065ad2ca8ecd37c8530c416001734f3b7b15 Mon Sep 17 00:00:00 2001 From: stevepodell Date: Thu, 26 Oct 2017 14:33:45 -0700 Subject: [PATCH 03/17] Added https://github.com/fullstackreact/react-native-oauth/pull/171 and my NSString *clientID fix, which might not be as good as https://github.com/fullstackreact/react-native-oauth/blob/2f8c8d1483526bbc8a6ca72183c6d11a71538ad3/ios/OAuthManager/OAuthManager.m --- android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java | 1 - 1 file changed, 1 deletion(-) diff --git a/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java b/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java index b5f9a45..719b267 100644 --- a/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java +++ b/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java @@ -401,7 +401,6 @@ private WritableMap accessTokenResponse( ) { WritableMap resp = Arguments.createMap(); WritableMap response = Arguments.createMap(); - Map accessTokenMap = new Gson().fromJson(accessToken.getRawResponse(), Map.class); Log.d(TAG, "Credential raw response: " + accessToken.getRawResponse()); From 0b8b6742387501ece0c80f1088c8509b5a0dd1d1 Mon Sep 17 00:00:00 2001 From: Matthieu Bachelier Date: Fri, 24 Nov 2017 10:06:58 +0100 Subject: [PATCH 04/17] Merge PR 121, fix user agent, fix full screen webview --- .../oauth/OAuthManagerDialogFragment.java | 3 +-- .../fullstack/oauth/OAuthManagerModule.java | 26 +++++++------------ .../oauth/OAuthManagerProviders.java | 12 ++------- 3 files changed, 12 insertions(+), 29 deletions(-) diff --git a/android/src/main/java/io/fullstack/oauth/OAuthManagerDialogFragment.java b/android/src/main/java/io/fullstack/oauth/OAuthManagerDialogFragment.java index 13e238f..12202bb 100644 --- a/android/src/main/java/io/fullstack/oauth/OAuthManagerDialogFragment.java +++ b/android/src/main/java/io/fullstack/oauth/OAuthManagerDialogFragment.java @@ -109,7 +109,6 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa mWebView.setVisibility(View.VISIBLE); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setDomStorageEnabled(true); - mWebView.getSettings().setUserAgentString("Mozilla/5.0 Google"); LayoutParams layoutParams = this.getFullscreenLayoutParams(context); @@ -172,7 +171,7 @@ private LayoutParams getFullscreenLayoutParams(Context context) { realHeight = display.getHeight(); } - return new LayoutParams(realWidth, realHeight-convertDpToPixel(50f,context)); + return new LayoutParams(realWidth, realHeight); } diff --git a/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java b/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java index 35777a4..8cf9572 100644 --- a/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java +++ b/android/src/main/java/io/fullstack/oauth/OAuthManagerModule.java @@ -6,8 +6,6 @@ import android.support.annotation.Nullable; import android.util.Log; -import com.google.gson.Gson; - import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.ReactApplicationContext; @@ -400,18 +398,18 @@ private WritableMap accessTokenResponse( ) { WritableMap resp = Arguments.createMap(); WritableMap response = Arguments.createMap(); - Map accessTokenMap = new Gson().fromJson(accessToken.getRawResponse(), Map.class); Log.d(TAG, "Credential raw response: " + accessToken.getRawResponse()); resp.putString("status", "ok"); resp.putBoolean("authorized", true); resp.putString("provider", providerName); - String uuid = (String) accessTokenMap.get("user_id"); + + String uuid = accessToken.getParameter("user_id"); response.putString("uuid", uuid); - String oauthTokenSecret = (String) accessTokenMap.get("oauth_token_secret"); + String oauthTokenSecret = (String) accessToken.getParameter("oauth_token_secret"); - String tokenType = (String) accessTokenMap.get("token_type"); + String tokenType = (String) accessToken.getParameter("token_type"); if (tokenType == null) { tokenType = "Bearer"; } @@ -422,7 +420,6 @@ private WritableMap accessTokenResponse( credentials.putString("access_token", accessToken.getToken()); credentials.putString("access_token_secret", oauthTokenSecret); credentials.putString("type", tokenType); - // credentials.putString("scope", accessToken.getScope()); credentials.putString("consumerKey", consumerKey); response.putMap("credentials", credentials); @@ -440,18 +437,13 @@ private WritableMap accessTokenResponse( ) { WritableMap resp = Arguments.createMap(); WritableMap response = Arguments.createMap(); - Map accessTokenMap = new Gson().fromJson(accessToken.getRawResponse(), Map.class); resp.putString("status", "ok"); resp.putBoolean("authorized", true); resp.putString("provider", providerName); - try { - String uuid = (String) accessTokenMap.get("user_id"); - response.putString("uuid", uuid); - } catch (Exception ex) { - Log.e(TAG, "Exception while getting the access token"); - ex.printStackTrace(); - } + + String uuid = accessToken.getParameter("user_id"); + response.putString("uuid", uuid); WritableMap credentials = Arguments.createMap(); Log.d(TAG, "Credential raw response: " + accessToken.getRawResponse()); @@ -459,7 +451,7 @@ private WritableMap accessTokenResponse( credentials.putString("accessToken", accessToken.getAccessToken()); String authHeader; - String tokenType = (String) accessTokenMap.get("token_type"); + String tokenType = accessToken.getTokenType(); if (tokenType == null) { tokenType = "Bearer"; } @@ -470,7 +462,7 @@ private WritableMap accessTokenResponse( } String clientID = (String) cfg.get("client_id"); - String idToken = (String) accessTokenMap.get("id_token"); + String idToken = accessToken.getParameter("id_token"); authHeader = tokenType + " " + accessToken.getAccessToken(); credentials.putString("authorizationHeader", authHeader); diff --git a/android/src/main/java/io/fullstack/oauth/OAuthManagerProviders.java b/android/src/main/java/io/fullstack/oauth/OAuthManagerProviders.java index d91b4b5..86c64c3 100644 --- a/android/src/main/java/io/fullstack/oauth/OAuthManagerProviders.java +++ b/android/src/main/java/io/fullstack/oauth/OAuthManagerProviders.java @@ -268,19 +268,11 @@ private static ServiceBuilder _oauth2ServiceBuilder( builder.scope(scopeStr); } - boolean rawScopes = (cfg.containsKey("rawScopes") && ((String)cfg.get("rawScopes")).equalsIgnoreCase("true")); - if (opts != null && opts.hasKey("scopes")) { scopes = (String) opts.getString("scopes"); - String scopeStr = null; - - if (!rawScopes) - scopeStr = OAuthManagerProviders.getScopeString(scopes, ","); - else - scopeStr = scopes; - + String scopeStr = OAuthManagerProviders.getScopeString(scopes, ","); builder.scope(scopeStr); - } + } if (callbackUrl != null) { builder.callback(callbackUrl); From 28f914d78f11359238a34111e1100006b98e9daf Mon Sep 17 00:00:00 2001 From: Compulsor Date: Mon, 19 Mar 2018 13:50:47 +0100 Subject: [PATCH 05/17] Changed if/else statement to avoid React error. --- ios/OAuthManager/OAuthManager.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ios/OAuthManager/OAuthManager.h b/ios/OAuthManager/OAuthManager.h index 4f653e4..4fcf44b 100644 --- a/ios/OAuthManager/OAuthManager.h +++ b/ios/OAuthManager/OAuthManager.h @@ -7,10 +7,10 @@ #import -#if __has_include("RCTBridgeModule.h") - #import "RCTBridgeModule.h" -#else +#if __has_include() #import +#else + #import "RCTBridgeModule.h" #endif #if __has_include("RCTLinkingManager.h") From 02c6c1da2d12a53a35e7ac2c629351aeebd7eec6 Mon Sep 17 00:00:00 2001 From: Bradley Bain Date: Sat, 7 Apr 2018 11:38:26 -0700 Subject: [PATCH 06/17] Fix duplicate RCTMethodInfo import (https://github.com/facebook/react-native/issues/15775) (https://github.com/yonahforst/react-native-permissions/issues/137) --- ios/OAuthManager/OAuthManager.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ios/OAuthManager/OAuthManager.h b/ios/OAuthManager/OAuthManager.h index 4f653e4..7a2d783 100644 --- a/ios/OAuthManager/OAuthManager.h +++ b/ios/OAuthManager/OAuthManager.h @@ -7,10 +7,10 @@ #import -#if __has_include("RCTBridgeModule.h") - #import "RCTBridgeModule.h" +#if __has_include() + #import #else - #import + #import "RCTBridgeModule.h" #endif #if __has_include("RCTLinkingManager.h") From 3949c3ba8cec129241ce6c47534f417d619c34e3 Mon Sep 17 00:00:00 2001 From: Bradley Bain Date: Sat, 28 Apr 2018 09:19:01 -0700 Subject: [PATCH 07/17] Fix duplicate React library import error conflict w/certain pods --- ios/OAuthManager/OAuthManager.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ios/OAuthManager/OAuthManager.h b/ios/OAuthManager/OAuthManager.h index 7a2d783..06a462c 100644 --- a/ios/OAuthManager/OAuthManager.h +++ b/ios/OAuthManager/OAuthManager.h @@ -13,10 +13,10 @@ #import "RCTBridgeModule.h" #endif -#if __has_include("RCTLinkingManager.h") - #import "RCTLinkingManager.h" -#else +#if __has_include() #import +#else + #import "RCTLinkingManager.h" #endif From aa3213650c94c89442bd0139b42e6dfdcbee041b Mon Sep 17 00:00:00 2001 From: Bradley Bain Date: Sat, 28 Apr 2018 09:22:26 -0700 Subject: [PATCH 08/17] Pass back response headers over javascript bridge --- ios/OAuthManager/OAuthManager.m | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ios/OAuthManager/OAuthManager.m b/ios/OAuthManager/OAuthManager.m index 300f3de..c608edd 100644 --- a/ios/OAuthManager/OAuthManager.m +++ b/ios/OAuthManager/OAuthManager.m @@ -486,9 +486,12 @@ - (NSDictionary *) getConfigForProvider:(NSString *)name } else { NSInteger statusCode = response.statusCode; NSData *rawData = response.data; + NSDictionary *headers = response.HTTPHeaders; NSError *err; NSArray *data; + + // Check if returned data is a valid JSON // != nil returned if the rawdata is not a valid JSON @@ -510,9 +513,11 @@ - (NSDictionary *) getConfigForProvider:(NSString *)name }; callback(@[errResp]); } else { + NSDictionary *resp = @{ @"status": @(statusCode), - @"data": data != nil ? data : @[] + @"data": data != nil ? data : @[], + @"headers": headers, }; callback(@[[NSNull null], resp]); } From aa31836b8f47aa6771164510f4069c14e91501fe Mon Sep 17 00:00:00 2001 From: George White Date: Tue, 8 May 2018 16:31:00 -0400 Subject: [PATCH 09/17] Dispatch safariViewController on main queue The safariViewController dispatch was occuring on another thread. This sometimes caused app crashes when the view was presented, in particular if the keyboard had been presented via a TextInput or other component. The resulting crash complained about _cachedSystemAnimationFence and the main thread. This has been with other React Native apps that load a viewController. Dispatching to present the viewController on the main thread fixes this issue. --- ios/OAuthManager/OAuthManager.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ios/OAuthManager/OAuthManager.m b/ios/OAuthManager/OAuthManager.m index e7f73a6..7f7f491 100644 --- a/ios/OAuthManager/OAuthManager.m +++ b/ios/OAuthManager/OAuthManager.m @@ -91,7 +91,9 @@ + (BOOL)setupOAuthHandler:(UIApplication *)application dispatch_async(dispatch_get_main_queue(), ^{ safariViewController = [[SFSafariViewController alloc] initWithURL:URL]; UIViewController *viewController = application.keyWindow.rootViewController; - [viewController presentViewController:safariViewController animated:YES completion: nil]; + dispatch_async(dispatch_get_main_queue(), ^{ + [viewController presentViewController:safariViewController animated:YES completion: nil]; + }); }); } else { [application openURL:URL]; From b311024bf4541fd8e7568f7e1ca9dbe92a7674bc Mon Sep 17 00:00:00 2001 From: George White Date: Tue, 8 May 2018 16:43:59 -0400 Subject: [PATCH 10/17] Fix build issue --- ios/OAuthManager/OAuthManager.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ios/OAuthManager/OAuthManager.h b/ios/OAuthManager/OAuthManager.h index 4f653e4..cdefdda 100644 --- a/ios/OAuthManager/OAuthManager.h +++ b/ios/OAuthManager/OAuthManager.h @@ -7,16 +7,16 @@ #import -#if __has_include("RCTBridgeModule.h") - #import "RCTBridgeModule.h" -#else +#if __has_include() #import +#else + #import "RCTBridgeModule.h" #endif -#if __has_include("RCTLinkingManager.h") - #import "RCTLinkingManager.h" -#else +#if __has_include() #import +#else + #import "RCTLinkingManager.h" #endif From 84517e000bd7ef3db1bbc3501ea1138608243a74 Mon Sep 17 00:00:00 2001 From: Rahul Gaba Date: Fri, 11 May 2018 00:07:28 +0530 Subject: [PATCH 11/17] Remove deprecated @Override --- .../src/main/java/io/fullstack/oauth/OAuthManagerPackage.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/android/src/main/java/io/fullstack/oauth/OAuthManagerPackage.java b/android/src/main/java/io/fullstack/oauth/OAuthManagerPackage.java index 93b9da5..14c79e6 100644 --- a/android/src/main/java/io/fullstack/oauth/OAuthManagerPackage.java +++ b/android/src/main/java/io/fullstack/oauth/OAuthManagerPackage.java @@ -22,7 +22,6 @@ public OAuthManagerPackage() { * @param reactContext react application context that can be used to create modules * @return list of native modules to register with the newly created catalyst instance */ - @Override public List createNativeModules(ReactApplicationContext reactContext) { List modules = new ArrayList<>(); modules.add(new OAuthManagerModule(reactContext)); @@ -45,7 +44,6 @@ public List> createJSModules() { * @param reactContext * @return a list of view managers that should be registered with {@link UIManagerModule} */ - @Override public List createViewManagers(ReactApplicationContext reactContext) { return Collections.emptyList(); } From f1de1efb2a910bc36656ae4691b647ada74f6f88 Mon Sep 17 00:00:00 2001 From: Rahul Gaba Date: Fri, 11 May 2018 15:09:13 +0530 Subject: [PATCH 12/17] Fix: Duplicate RCTMethodInfo while building iOS app --- ios/OAuthManager/OAuthManager.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ios/OAuthManager/OAuthManager.h b/ios/OAuthManager/OAuthManager.h index 4f653e4..cdefdda 100644 --- a/ios/OAuthManager/OAuthManager.h +++ b/ios/OAuthManager/OAuthManager.h @@ -7,16 +7,16 @@ #import -#if __has_include("RCTBridgeModule.h") - #import "RCTBridgeModule.h" -#else +#if __has_include() #import +#else + #import "RCTBridgeModule.h" #endif -#if __has_include("RCTLinkingManager.h") - #import "RCTLinkingManager.h" -#else +#if __has_include() #import +#else + #import "RCTLinkingManager.h" #endif From 234cf6f2e9defe8d9e506d94bb83aed3fa3106b7 Mon Sep 17 00:00:00 2001 From: DaikiInaba Date: Mon, 4 Jun 2018 01:08:33 +0900 Subject: [PATCH 13/17] Fix error for redefinition of RCTMethodInfo --- ios/OAuthManager/OAuthManager.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ios/OAuthManager/OAuthManager.h b/ios/OAuthManager/OAuthManager.h index 4f653e4..4fcf44b 100644 --- a/ios/OAuthManager/OAuthManager.h +++ b/ios/OAuthManager/OAuthManager.h @@ -7,10 +7,10 @@ #import -#if __has_include("RCTBridgeModule.h") - #import "RCTBridgeModule.h" -#else +#if __has_include() #import +#else + #import "RCTBridgeModule.h" #endif #if __has_include("RCTLinkingManager.h") From 92c81ee9b1e734fea9729d967bd1f829a55e7764 Mon Sep 17 00:00:00 2001 From: Ari Date: Sun, 29 Jul 2018 17:43:44 -0400 Subject: [PATCH 14/17] Ignored dist/ --- .babelrc | 4 + .gitignore | 1 + package-lock.json | 801 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 9 +- 4 files changed, 814 insertions(+), 1 deletion(-) create mode 100644 .babelrc create mode 100644 package-lock.json diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..4143e75 --- /dev/null +++ b/.babelrc @@ -0,0 +1,4 @@ +{ + "presets": ["env"], + "plugins": ["transform-async-to-generator", "transform-object-rest-spread"] +} diff --git a/.gitignore b/.gitignore index bc1df06..0a45abc 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ xcuserdata/ .idea .vscode javac-services.0.log* +dist/ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..360df62 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,801 @@ +{ + "name": "react-native-oauth", + "version": "2.1.15", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "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", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-runtime": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", + "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "caniuse-lite": { + "version": "1.0.30000865", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000865.tgz", + "integrity": "sha512-vs79o1mOSKRGv/1pSkp4EXgl4ZviWeYReXw60XfacPU64uQWZwJT6vZNmxRF9O+6zu71sJwMxLK5JXxbzuVrLw==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "core-js": { + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "electron-to-chromium": { + "version": "1.3.52", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.52.tgz", + "integrity": "sha1-0tnxJwuko7lnuDHEDvcftNmrXOA=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "valib": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/valib/-/valib-2.0.0.tgz", + "integrity": "sha1-4NRVsQ4XrmBcDzOXGtrHNWTuGKc=" + } + } +} diff --git a/package.json b/package.json index 34a83b3..7de54e7 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "main": "./react-native-oauth.js", "scripts": { "start": "node node_modules/react-native/local-cli/cli.js start", - "build": "./node_modules/.bin/babel --source-maps=true --out-dir=dist .", + "build": "./node_modules/.bin/babel --ignore 'node_modules,dist' --source-maps=true --out-dir=dist .", "dev": "npm run compile -- --watch", "lint": "eslint ./src", "publish_pages": "gh-pages -d public/", @@ -45,5 +45,12 @@ "dependencies": { "invariant": "^2.2.1", "valib": "^2.0.0" + }, + "devDependencies": { + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.26.0", + "babel-plugin-transform-runtime": "^6.23.0", + "babel-preset-env": "^1.7.0", + "babel-runtime": "^6.26.0" } } From 00543547fdbc053894627dfbe32436c5d3b25880 Mon Sep 17 00:00:00 2001 From: Ari Date: Sun, 29 Jul 2018 17:43:58 -0400 Subject: [PATCH 15/17] 2.1.16 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 360df62..061fbf1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-native-oauth", - "version": "2.1.15", + "version": "2.1.16", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 7de54e7..2af9b56 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-oauth", - "version": "2.1.15", + "version": "2.1.16", "author": "Ari Lerner (https://fullstackreact.com)", "description": "An oauth manager for dealing with the complexities of oauth", "main": "./react-native-oauth.js", From 0b6d001852cf84d5962d7ec5a7518f2fe4cc523c Mon Sep 17 00:00:00 2001 From: Ari Date: Sun, 29 Jul 2018 17:48:33 -0400 Subject: [PATCH 16/17] 2.1.17 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 061fbf1..cde0693 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-native-oauth", - "version": "2.1.16", + "version": "2.1.17", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2af9b56..e3c600c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-oauth", - "version": "2.1.16", + "version": "2.1.17", "author": "Ari Lerner (https://fullstackreact.com)", "description": "An oauth manager for dealing with the complexities of oauth", "main": "./react-native-oauth.js", From afaffc988abbc39044850f1a1a95979d19bfb950 Mon Sep 17 00:00:00 2001 From: Ari Date: Sun, 29 Jul 2018 17:50:13 -0400 Subject: [PATCH 17/17] 2.1.18 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index cde0693..b3af007 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-native-oauth", - "version": "2.1.17", + "version": "2.1.18", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index e3c600c..453f8c4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-oauth", - "version": "2.1.17", + "version": "2.1.18", "author": "Ari Lerner (https://fullstackreact.com)", "description": "An oauth manager for dealing with the complexities of oauth", "main": "./react-native-oauth.js",