diff --git a/App.js b/App.js index 0a42dc4..e6353bf 100644 --- a/App.js +++ b/App.js @@ -8,15 +8,18 @@ import {createStackNavigator} from 'react-navigation'; import rootReducer from './src/main/js/reducers'; import WelcomePage from './src/main/js/components/pages/welcomePage/WelcomePage'; import LoginPage from './src/main/js/components/pages/loginPage/LoginPage'; +import RegisterPage from './src/main/js/components/pages/registerPage/RegisterPage'; import DonatrixPage from './src/main/js/components/pages/donatrixPage/DonatrixPage'; + const store = createStore(rootReducer); const RootStack = createStackNavigator( { Welcome: WelcomePage, Login: LoginPage, - Donatrix: DonatrixPage + Register: RegisterPage, + Donatrix: DonatrixPage, }, { initialRouteName: 'Welcome', @@ -24,7 +27,7 @@ const RootStack = createStackNavigator( } ); -const App = (page) => ( +const App = () => ( diff --git a/android/.idea/workspace.xml b/android/.idea/workspace.xml index 97f1706..08d24b4 100644 --- a/android/.idea/workspace.xml +++ b/android/.idea/workspace.xml @@ -2,79 +2,8 @@ - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + @@ -2183,7 +2102,7 @@ - + @@ -2382,38 +2301,37 @@ - - + + - - - - - - - - - - + + + + + + + + + - - + + - - + + - + + - - + - - + + @@ -2426,26 +2344,17 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + diff --git a/android/app/app.iml b/android/app/app.iml index 51a01af..5c67f07 100644 --- a/android/app/app.iml +++ b/android/app/app.iml @@ -87,27 +87,17 @@ - - - - - - - - - + - - diff --git a/android/app/src/main/java/com/donatrix/MainActivity.java b/android/app/src/main/java/com/donatrix/MainActivity.java index 9122d49..a26de9d 100644 --- a/android/app/src/main/java/com/donatrix/MainActivity.java +++ b/android/app/src/main/java/com/donatrix/MainActivity.java @@ -3,7 +3,6 @@ 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. diff --git a/android/app/src/main/java/com/donatrix/MainApplication.java b/android/app/src/main/java/com/donatrix/MainApplication.java index f8dd739..b15a6ff 100644 --- a/android/app/src/main/java/com/donatrix/MainApplication.java +++ b/android/app/src/main/java/com/donatrix/MainApplication.java @@ -8,6 +8,8 @@ import com.facebook.react.shell.MainReactPackage; import com.facebook.soloader.SoLoader; +import com.donatrix.RNJavaLinkPackage; + import java.util.Arrays; import java.util.List; @@ -22,7 +24,8 @@ public boolean getUseDeveloperSupport() { @Override protected List getPackages() { return Arrays.asList( - new MainReactPackage() + new MainReactPackage(), + new RNJavaLinkPackage() ); } diff --git a/android/app/src/main/java/com/donatrix/MysqlCon.java b/android/app/src/main/java/com/donatrix/MysqlCon.java index 0667ea0..c0bbc14 100644 --- a/android/app/src/main/java/com/donatrix/MysqlCon.java +++ b/android/app/src/main/java/com/donatrix/MysqlCon.java @@ -14,7 +14,37 @@ public MysqlCon() { } - private void startConnection(String sql) { + private ResultSet startConnectionForData(String sql) { + ResultSet rs = null; + try { + Class.forName("com.mysql.cj.jdbc.Driver"); + Connection con = DriverManager.getConnection( + "jdbc:mysql://localhost:3306/Donatrix", "root", + "password"); +// System.out.println("Connected to database"); +// System.out.println(sql); + Statement stmt = con.createStatement(); +// stmt.executeUpdate(sql); + rs = stmt.executeQuery(sql); +// ResultSetMetaData rsmd = rs.getMetaData(); +// int columnNumer = rsmd.getColumnCount(); +// while (rs.next()) { +// for (int i = 1; i <= columnNumer; i++ ) { +// if (i > 1) System.out.print(", "); +// String columnValue = rs.getString(i); +// System.out.print(columnValue + " " + rsmd.getColumnName(i)); +// } +// System.out.println(""); +// } +// System.out.println(rs); + } catch(Exception e) { + rs = null; + System.out.println(e); + } + return rs; + } + + private void startConnectionForUpdate(String sql) { try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection con = DriverManager.getConnection( @@ -32,12 +62,24 @@ private void startConnection(String sql) { public void registerUser(String username, String password, String locked, String name) { String sql = String.format("insert into donatrix.users values('%s'," + "'%s','%s','%s')", username, password, locked, name); - startConnection(sql); + startConnectionForUpdate(sql); + } + + public boolean checkRegisteredUser(String username) throws SQLException { + String sql = String.format("select * from donatrix.users where email = '%s';", username); + + if (startConnectionForData(sql).next()) { + System.out.println("true"); + return true; + } + System.out.println("False"); + return false; } - public static void main(String[] args) { + public static void main(String[] args) throws SQLException { MysqlCon me = new MysqlCon(); - me.registerUser("dpoole@gatech.edu", "password", "0", "Davidson Poole"); +// me.registerUser("dpoole@gatech.edu", "password", "0", "Davidson Poole"); + me.checkRegisteredUser("dpoole@gatech.edu"); // try { // Class.forName("com.mysql.jdbc.Driver"); diff --git a/android/app/src/main/java/com/donatrix/RNJavaLink.java b/android/app/src/main/java/com/donatrix/RNJavaLink.java new file mode 100644 index 0000000..082b7b1 --- /dev/null +++ b/android/app/src/main/java/com/donatrix/RNJavaLink.java @@ -0,0 +1,48 @@ + +package com.donatrix; + +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.Callback; + +public class RNJavaLink extends ReactContextBaseJavaModule { + + private final ReactApplicationContext reactContext; + + public RNJavaLink(ReactApplicationContext reactContext) { + super(reactContext); + this.reactContext = reactContext; + } + + @Override + public String getName() { + return "RNJavaLink"; + } + + @ReactMethod + public void addUser(String email, String fname, String lname, String pass, String confPass, Callback callback) { + boolean success = true; + //do database stuff and update the value of 'success' if necessary + + //finally call the correct callback based off the updated value of 'success' + if (success) { + callback.invoke("added user"); + } else { + callback.invoke("nice try buddy"); + } + } + + @ReactMethod + public void tryLogin(String email, String pass, Callback callback) { + boolean valid = true; + //do database stuff and update the value of 'valid' if necessary + + //finally call the correct callback based off the updated value of 'valid' + if (valid) { + callback.invoke("valid"); + } else { + callback.invoke("not valid"); + } + } +} diff --git a/android/app/src/main/java/com/donatrix/RNJavaLinkPackage.java b/android/app/src/main/java/com/donatrix/RNJavaLinkPackage.java new file mode 100644 index 0000000..1b3b6ba --- /dev/null +++ b/android/app/src/main/java/com/donatrix/RNJavaLinkPackage.java @@ -0,0 +1,28 @@ +package com.donatrix; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import com.facebook.react.ReactPackage; +import com.facebook.react.bridge.NativeModule; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.uimanager.ViewManager; +import com.facebook.react.bridge.JavaScriptModule; + +public class RNJavaLinkPackage implements ReactPackage { + @Override + public List createNativeModules(ReactApplicationContext reactContext) { + return Arrays.asList(new RNJavaLink(reactContext)); + } + + // Deprecated from RN 0.47 + public List> createJSModules() { + return Collections.emptyList(); + } + + @Override + public List createViewManagers(ReactApplicationContext reactContext) { + return Collections.emptyList(); + } +} diff --git a/android/app/src/main/java/com/donatrix/User.java b/android/app/src/main/java/com/donatrix/User.java index da4e112..b2828b4 100644 --- a/android/app/src/main/java/com/donatrix/User.java +++ b/android/app/src/main/java/com/donatrix/User.java @@ -1,4 +1,34 @@ package com.donatrix; public class User { + + private String email; + private String password; + private String name; + private boolean accountState; + + public void setEmail(String email) { + this.email = email; + } + public String getEmail() { + return this.email; + } + public void setPassword(String password) { + this.password = password; + } + public String getPassword() { + return this.password; + } + public void setName(String name) { + this.name = name; + } + public String getName() { + return this.name; + } + public void setAccountState(boolean accountState) { + this.accountState = accountState; + } + public boolean getAccountState() { + return this.accountState; + } } diff --git a/index.html b/index.html new file mode 100644 index 0000000..a831229 --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +

Welcome to the Donatrix

diff --git a/package-lock.json b/package-lock.json index 929ecf9..cfce111 100644 --- a/package-lock.json +++ b/package-lock.json @@ -194,7 +194,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", - "dev": true, "requires": { "lodash": "^4.17.10" } @@ -328,7 +327,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.0.0.tgz", "integrity": "sha512-cWhkx6SyjZ4caFOanoPmDNgQCuYYTmou4QXy886JsyLTw/vhWQbop2gLKsWyyswrJkKTB7fSNxVYbP/oEsoySA==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-syntax-export-default-from": "^7.0.0" @@ -338,7 +336,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.0.0.tgz", "integrity": "sha512-QIN3UFo1ul4ruAsjIqK43PeXedo1qY74zeGrODJl1KfCGeMc6qJC4rb5Ylml/smzxibqsDeVZGH+TmWHCldRQQ==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0" @@ -357,7 +354,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.0.0.tgz", "integrity": "sha512-JPqAvLG1s13B/AuoBjdBYvn38RqW6n1TzrQO839/sIpqLpbnXKacsAgpZHzLD83Sm8SDXMkkrAvEnJ25+0yIpw==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-syntax-optional-catch-binding": "^7.0.0" @@ -367,7 +363,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.0.0.tgz", "integrity": "sha512-7x8HLa71OzNiofbQUVakS0Kmg++6a+cXNfS7QKHbbv03SuSaumJyaWsfNgw+T7aqrJlqurYpZqrkPgXu0iZK0w==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-syntax-optional-chaining": "^7.0.0" @@ -393,7 +388,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.0.0.tgz", "integrity": "sha512-HNnjg/fFFbnuLAqr/Ocp1Y3GB4AjmXcu1xxn3ql3bS2kGrB/qi+Povshb8i3hOkE5jNozzh8r/0/lq1w8oOWbQ==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } @@ -418,7 +412,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.0.0.tgz", "integrity": "sha512-oAJmMsAvTSIk9y0sZdU2S/nY44PEUuHN7EzNDMgbuR4e/OwyfR9lSmoBJBZ2lslFZIqhksrTt4i+av7uKfNYDw==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } @@ -435,7 +428,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.0.0.tgz", "integrity": "sha512-Wc+HVvwjcq5qBg1w5RG9o9RVzmCaAg/Vp0erHCKpAYV8La6I94o4GQAmFYNmkzoMO6gzoOSulpKeSSz6mPEoZw==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } @@ -444,7 +436,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.0.0.tgz", "integrity": "sha512-QXedQsZf8yua1nNrXSePT0TsGSQH9A1iK08m9dhCMdZeJaaxYcQfXdgHWVV6Cp7WE/afPVvSKIsAHK5wP+yxDA==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } @@ -453,7 +444,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.0.0.tgz", "integrity": "sha512-5fxmdqiAQVQTIS+KSvYeZuTt91wKtBTYi6JlIkvbQ6hmO+9fZE81ezxmMiFMIsxE7CdRSgzn7nQ1BChcvK9OpA==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } @@ -466,6 +456,16 @@ "@babel/helper-plugin-utils": "^7.0.0" } }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.1.0.tgz", + "integrity": "sha512-rNmcmoQ78IrvNCIt/R9U+cixUHeYAzgusTFgIAv+wQb9HJU4szhpDD6e5GCACmj/JP5KxuCwM96bX3L9v4ZN/g==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" + } + }, "@babel/plugin-transform-block-scoping": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0.tgz", @@ -639,7 +639,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0.tgz", "integrity": "sha512-LFUToxiyS/WD+XEWpkx/XJBrUXKewSZpzX68s+yEOtIbdnsRjpryDw9U06gYc6klYEij/+KQVRnD3nz3AoKmjw==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-regex": "^7.0.0" @@ -658,7 +657,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.1.0.tgz", "integrity": "sha512-TOTtVeT+fekAesiCHnPz+PSkYSdOSLyLn42DI45nxg6iCdlQY6LIj/tYqpMB0y+YicoTUiYiXqF8rG6SKfhw6Q==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-syntax-typescript": "^7.0.0" @@ -668,7 +666,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0.tgz", "integrity": "sha512-uJBrJhBOEa3D033P95nPHu3nbFwFE9ZgXsfEitzoIXIwqAZWk7uXcg06yFKXz9FSxBH5ucgU/cYdX0IV8ldHKw==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-regex": "^7.0.0", @@ -1220,11 +1217,6 @@ "default-require-extensions": "^1.0.0" } }, - "arch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", - "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==" - }, "are-we-there-yet": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", @@ -1238,7 +1230,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, "requires": { "sprintf-js": "~1.0.2" } @@ -1392,8 +1383,7 @@ "async-limiter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", - "dev": true + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" }, "asynckit": { "version": "0.4.0", @@ -1576,28 +1566,6 @@ "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=", - "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=", - "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", @@ -1646,14 +1614,6 @@ "babel-runtime": "^6.22.0" } }, - "babel-plugin-external-helpers": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz", - "integrity": "sha1-IoX0iwK9Xe3oUXXK+MYuhq3M76E=", - "requires": { - "babel-runtime": "^6.22.0" - } - }, "babel-plugin-istanbul": { "version": "4.1.6", "resolved": "http://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", @@ -1740,16 +1700,6 @@ "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=" }, - "babel-plugin-transform-async-to-generator": { - "version": "6.16.0", - "resolved": "http://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.16.0.tgz", - "integrity": "sha1-Gew2yxSGtZ+fRorfpCzhOQjKKZk=", - "requires": { - "babel-helper-remap-async-to-generator": "^6.16.0", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.0.0" - } - }, "babel-plugin-transform-class-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", @@ -1908,16 +1858,6 @@ "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=", - "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", @@ -1926,46 +1866,6 @@ "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=", - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "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=" - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "requires": { - "jsesc": "~0.5.0" - } - } - } - }, "babel-plugin-transform-es3-member-expression-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es3-member-expression-literals/-/babel-plugin-transform-es3-member-expression-literals-6.22.0.tgz", @@ -2083,22 +1983,6 @@ "babel-types": "^6.24.1" } }, - "babel-preset-es2015-node": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015-node/-/babel-preset-es2015-node-6.1.1.tgz", - "integrity": "sha1-YLIxVwJLDP6/OmNVTLBe4DW05V8=", - "requires": { - "babel-plugin-transform-es2015-destructuring": "6.x", - "babel-plugin-transform-es2015-function-name": "6.x", - "babel-plugin-transform-es2015-modules-commonjs": "6.x", - "babel-plugin-transform-es2015-parameters": "6.x", - "babel-plugin-transform-es2015-shorthand-properties": "6.x", - "babel-plugin-transform-es2015-spread": "6.x", - "babel-plugin-transform-es2015-sticky-regex": "6.x", - "babel-plugin-transform-es2015-unicode-regex": "6.x", - "semver": "5.x" - } - }, "babel-preset-expo": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-4.0.0.tgz", @@ -2612,31 +2496,6 @@ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" }, - "clipboardy": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-1.2.3.tgz", - "integrity": "sha512-2WNImOvCRe6r63Gk9pShfkwXsVtKCroMAevIbiae021mS850UkWPbevxsBz3tnvjZIEGvlwaqCPsw+4ulzNgJA==", - "requires": { - "arch": "^2.1.0", - "execa": "^0.8.0" - }, - "dependencies": { - "execa": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz", - "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - } - } - }, "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", @@ -2825,6 +2684,16 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cosmiconfig": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.0.6.tgz", + "integrity": "sha512-6DWfizHriCrFWURP1/qyhsiFvYdlJzbCzmtFWh744+KyWsJo5+kPzUZZaMRSSItoYc0pxFX7gEO7ZC1/gN/7AQ==", + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0" + } + }, "create-react-class": { "version": "15.6.3", "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", @@ -3132,16 +3001,9 @@ } }, "envinfo": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-3.11.1.tgz", - "integrity": "sha512-hKkh7aKtont6Zuv4RmE4VkOc96TkBj9NXj7Ghsd/qCA9LuJI0Dh+ImwA1N5iORB9Vg+sz5bq9CHJzs51BILNCQ==", - "requires": { - "clipboardy": "^1.2.2", - "glob": "^7.1.2", - "minimist": "^1.2.0", - "os-name": "^2.0.1", - "which": "^1.2.14" - } + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-5.10.0.tgz", + "integrity": "sha512-rXbzXWvnQxy+TcqZlARbWVQwgGVVouVJgFZhLVN5htjLxl1thstrP2ZGi0pXC309AbK7gVOPU+ulz/tmpCI7iw==" }, "error-ex": { "version": "1.3.2", @@ -3545,6 +3407,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-native/-/eslint-plugin-react-native-3.3.0.tgz", "integrity": "sha512-+Td4JX9POuhNDQdIxlzgcD0RDBmA1kB6dTnOCORtN/cDa2vUyIpGLuVkVvgrnUOizsgD7uhniomTpynRcjIvFQ==", + "dev": true, "requires": { "eslint-plugin-react-native-globals": "^0.1.1" } @@ -3552,7 +3415,8 @@ "eslint-plugin-react-native-globals": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz", - "integrity": "sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==" + "integrity": "sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==", + "dev": true }, "eslint-restricted-globals": { "version": "0.1.1", @@ -3595,8 +3459,7 @@ "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "esquery": { "version": "1.0.1", @@ -5353,6 +5216,11 @@ } } }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -5976,7 +5844,6 @@ "version": "23.2.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.2.0.tgz", "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=", - "dev": true, "requires": { "detect-newline": "^2.1.0" } @@ -6066,40 +5933,18 @@ "dev": true }, "jest-haste-map": { - "version": "22.4.2", - "resolved": "http://registry.npmjs.org/jest-haste-map/-/jest-haste-map-22.4.2.tgz", - "integrity": "sha512-EdQADHGXRqHJYAr7q9B9YYHZnrlcMwhx1+DnIgc9uN05nCW3RvGCxJ91MqWXcC1AzatLoSv7SNd0qXMp2jKBDA==", + "version": "23.5.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.5.0.tgz", + "integrity": "sha512-bt9Swigb6KZ6ZQq/fQDUwdUeHenVvZ6G/lKwJjwRGp+Fap8D4B3bND3FaeJg7vXVsLX8hXshRArbVxLop/5wLw==", "requires": { "fb-watchman": "^2.0.0", "graceful-fs": "^4.1.11", - "jest-docblock": "^22.4.0", - "jest-serializer": "^22.4.0", - "jest-worker": "^22.2.2", + "invariant": "^2.2.4", + "jest-docblock": "^23.2.0", + "jest-serializer": "^23.0.1", + "jest-worker": "^23.2.0", "micromatch": "^2.3.11", "sane": "^2.0.0" - }, - "dependencies": { - "jest-docblock": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.3.tgz", - "integrity": "sha512-uPKBEAw7YrEMcXueMKZXn/rbMxBiSv48fSqy3uEnmgOlQhSX+lthBqHb1fKWNVmFqAp9E/RsSdBfiV31LbzaOg==", - "requires": { - "detect-newline": "^2.1.0" - } - }, - "jest-serializer": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz", - "integrity": "sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw==" - }, - "jest-worker": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.4.3.tgz", - "integrity": "sha512-B1ucW4fI8qVAuZmicFxI1R3kr2fNeYJyvIQ1rKcuLYnenFV5K5aMbxFj6J0i00Ju83S8jP2d7Dz14+AvbIHRYQ==", - "requires": { - "merge-stream": "^1.0.1" - } - } } }, "jest-jasmine2": { @@ -6571,8 +6416,7 @@ "jest-serializer": { "version": "23.0.1", "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-23.0.1.tgz", - "integrity": "sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=", - "dev": true + "integrity": "sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=" }, "jest-snapshot": { "version": "23.6.0", @@ -6797,7 +6641,6 @@ "version": "23.2.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz", "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=", - "dev": true, "requires": { "merge-stream": "^1.0.1" } @@ -6811,7 +6654,6 @@ "version": "3.12.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", - "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -6880,6 +6722,11 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -6981,7 +6828,8 @@ "left-pad": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", - "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "dev": true }, "leven": { "version": "2.1.0", @@ -7123,11 +6971,6 @@ "yallist": "^2.1.2" } }, - "macos-release": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-1.1.0.tgz", - "integrity": "sha512-mmLbumEYMi5nXReB9js3WGsB8UE6cDBWyIO62Z4DNx6GbRhDxHNjA1MlzSpJ2S2KM1wyiPRA0d19uHWYYvMHjA==" - }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -7199,82 +7042,48 @@ } }, "metro": { - "version": "0.30.2", - "resolved": "http://registry.npmjs.org/metro/-/metro-0.30.2.tgz", - "integrity": "sha512-wmdkh4AsfZjWaMM++KMDswQHdyo5L9a0XAaQBL4XTJdQIRG+x+Rmjixe7tDki5jKwe9XxsjjbpbdYKswOANuiw==", - "requires": { - "@babel/core": "^7.0.0-beta", - "@babel/generator": "^7.0.0-beta", - "@babel/helper-remap-async-to-generator": "^7.0.0-beta", - "@babel/plugin-external-helpers": "^7.0.0-beta", - "@babel/plugin-proposal-class-properties": "^7.0.0-beta", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0-beta", - "@babel/plugin-syntax-dynamic-import": "^7.0.0-beta", - "@babel/plugin-transform-arrow-functions": "^7.0.0-beta", - "@babel/plugin-transform-block-scoping": "^7.0.0-beta", - "@babel/plugin-transform-classes": "^7.0.0-beta", - "@babel/plugin-transform-computed-properties": "^7.0.0-beta", - "@babel/plugin-transform-destructuring": "^7.0.0-beta", - "@babel/plugin-transform-exponentiation-operator": "^7.0.0-beta", - "@babel/plugin-transform-flow-strip-types": "^7.0.0-beta", - "@babel/plugin-transform-for-of": "^7.0.0-beta", - "@babel/plugin-transform-function-name": "^7.0.0-beta", - "@babel/plugin-transform-literals": "^7.0.0-beta", - "@babel/plugin-transform-modules-commonjs": "^7.0.0-beta", - "@babel/plugin-transform-object-assign": "^7.0.0-beta", - "@babel/plugin-transform-parameters": "^7.0.0-beta", - "@babel/plugin-transform-react-display-name": "^7.0.0-beta", - "@babel/plugin-transform-react-jsx": "^7.0.0-beta", - "@babel/plugin-transform-react-jsx-source": "^7.0.0-beta", - "@babel/plugin-transform-regenerator": "^7.0.0-beta", - "@babel/plugin-transform-shorthand-properties": "^7.0.0-beta", - "@babel/plugin-transform-spread": "^7.0.0-beta", - "@babel/plugin-transform-template-literals": "^7.0.0-beta", - "@babel/register": "^7.0.0-beta", - "@babel/template": "^7.0.0-beta", - "@babel/traverse": "^7.0.0-beta", - "@babel/types": "^7.0.0-beta", + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.45.6.tgz", + "integrity": "sha512-+RinU6Qcea/zX9xxfrgmeFBwJ3tsdgLyBJm4tQOmusU4kE8YEE4LQ3IGG60qk3wzYloflMB/8ilIGG4Z/gz2Ew==", + "requires": { + "@babel/core": "^7.0.0", + "@babel/generator": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/plugin-external-helpers": "^7.0.0", + "@babel/template": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", "absolute-path": "^0.0.0", "async": "^2.4.0", - "babel-core": "^6.24.1", - "babel-generator": "^6.26.0", - "babel-plugin-external-helpers": "^6.22.0", - "babel-plugin-react-transform": "^3.0.0", - "babel-plugin-transform-flow-strip-types": "^6.21.0", - "babel-preset-es2015-node": "^6.1.1", - "babel-preset-fbjs": "^2.1.4", - "babel-preset-react-native": "^4.0.0", - "babel-register": "^6.24.1", - "babel-template": "^6.24.1", - "babylon": "^6.18.0", + "babel-preset-fbjs": "2.3.0", "chalk": "^1.1.1", "concat-stream": "^1.6.0", "connect": "^3.6.5", - "core-js": "^2.2.2", "debug": "^2.2.0", "denodeify": "^1.2.1", "eventemitter3": "^3.0.0", - "fbjs": "^0.8.14", + "fbjs": "0.8.17", "fs-extra": "^1.0.0", "graceful-fs": "^4.1.3", "image-size": "^0.6.0", - "jest-docblock": "22.4.0", - "jest-haste-map": "22.4.2", - "jest-worker": "22.2.2", + "jest-docblock": "23.2.0", + "jest-haste-map": "23.5.0", + "jest-worker": "23.2.0", "json-stable-stringify": "^1.0.1", - "json5": "^0.4.0", - "left-pad": "^1.1.3", "lodash.throttle": "^4.1.1", "merge-stream": "^1.0.1", - "metro-babylon7": "0.30.2", - "metro-cache": "0.30.2", - "metro-core": "0.30.2", - "metro-minify-uglify": "0.30.2", - "metro-resolver": "0.30.2", - "metro-source-map": "0.30.2", + "metro-cache": "0.45.6", + "metro-config": "0.45.6", + "metro-core": "0.45.6", + "metro-minify-uglify": "0.45.6", + "metro-react-native-babel-preset": "0.45.6", + "metro-resolver": "0.45.6", + "metro-source-map": "0.45.6", "mime-types": "2.1.11", "mkdirp": "^0.5.1", - "node-fetch": "^1.3.3", + "node-fetch": "^2.2.0", + "nullthrows": "^1.1.0", + "react-transform-hmr": "^1.0.4", "resolve": "^1.5.0", "rimraf": "^2.5.4", "serialize-error": "^2.1.0", @@ -7288,32 +7097,55 @@ "yargs": "^9.0.0" }, "dependencies": { - "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==" - }, - "jest-docblock": { - "version": "22.4.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-22.4.0.tgz", - "integrity": "sha512-lDY7GZ+/CJb02oULYLBDj7Hs5shBhVpDYpIm8LUyqw9X2J22QRsM19gmGQwIFqGSJmpc/LRrSYudeSrG510xlQ==", - "requires": { - "detect-newline": "^2.1.0" - } - }, - "jest-worker": { - "version": "22.2.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-22.2.2.tgz", - "integrity": "sha512-ZylDXjrFNt/OP6cUxwJFWwDgazP7hRjtCQbocFHyiwov+04Wm1x5PYzMGNJT53s4nwr0oo9ocYTImS09xOlUnw==", - "requires": { - "merge-stream": "^1.0.1" + "metro-babel7-plugin-react-transform": { + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-babel7-plugin-react-transform/-/metro-babel7-plugin-react-transform-0.45.6.tgz", + "integrity": "sha512-NsVKqiBaF+Tm3FXzqiEExl9iJG+EimbpQP5h9ygxBE4AsYRc2S3X/YD/1ds3RTHMgfhinWVaus+DrG5OqK5mTA==", + "requires": { + "@babel/helper-module-imports": "^7.0.0" + } + }, + "metro-react-native-babel-preset": { + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.45.6.tgz", + "integrity": "sha512-qh+iXlV2tDfvHYbhh1meihxnzXXXB8nF1fi8z2HFxqYDkFBM48XewXO6mLz97PL8lmuTGvX/2dYVuFtriENw1w==", + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-export-default-from": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-export-default-from": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-exponentiation-operator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-sticky-regex": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.0.0", + "@babel/plugin-transform-unicode-regex": "^7.0.0", + "@babel/template": "^7.0.0", + "metro-babel7-plugin-react-transform": "0.45.6", + "react-transform-hmr": "^1.0.4" } }, - "json5": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz", - "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0=" - }, "mime-db": { "version": "1.23.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", @@ -7329,6 +7161,32 @@ } } }, + "metro-babel-register": { + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-babel-register/-/metro-babel-register-0.45.6.tgz", + "integrity": "sha512-Io8JinYIzGcXiTaO7o0DGw8wFcAiITTb7mLh3lbuJd9PndbPOo+jhrHkTsNtXc9MRHiT4KbEheXJ/QoeLKJK/Q==", + "requires": { + "@babel/core": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", + "@babel/plugin-proposal-optional-chaining": "^7.0.0", + "@babel/plugin-transform-async-to-generator": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/register": "^7.0.0", + "core-js": "^2.2.2", + "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "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==" + } + } + }, "metro-babel7-plugin-react-transform": { "version": "0.45.5", "resolved": "https://registry.npmjs.org/metro-babel7-plugin-react-transform/-/metro-babel7-plugin-react-transform-0.45.5.tgz", @@ -7338,50 +7196,48 @@ "@babel/helper-module-imports": "^7.0.0" } }, - "metro-babylon7": { - "version": "0.30.2", - "resolved": "https://registry.npmjs.org/metro-babylon7/-/metro-babylon7-0.30.2.tgz", - "integrity": "sha512-ZI0h4/3raGnzA6fFXwLUMidGOG4jkDi9fgFkoI8I4Ack3TDMabmZATu9RD6DaSolu3lylhfPd8DeAAMeopX9CA==", + "metro-cache": { + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.45.6.tgz", + "integrity": "sha512-v7q2pLsI7oABEjpwPJwTd7ufwKvpctVOddcffI/2hRhuJC/seLlqkRt7kv+Q/WfaR9X4KLcEoIjZmgNy4cw1ag==", "requires": { - "babylon": "^7.0.0-beta" - }, - "dependencies": { - "babylon": { - "version": "7.0.0-beta.47", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz", - "integrity": "sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ==" - } + "jest-serializer": "23.0.1", + "metro-core": "0.45.6", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4" } }, - "metro-cache": { - "version": "0.30.2", - "resolved": "http://registry.npmjs.org/metro-cache/-/metro-cache-0.30.2.tgz", - "integrity": "sha512-XYd07OwgtZRHFXyip40wdNJ8abPJRziuE5bb3jjf8wvyHxCpzlZlvbe0ZhcR8ChBwFUjHMuVyoou52AC3a0f+g==", + "metro-config": { + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.45.6.tgz", + "integrity": "sha512-ZhVtkpXhOi+qWi7vdE3HGIhyyBT1wtIukQuxTMwLTUluv2/1DClo/uX9inmf++CmOhOpU7QpqrMzl6vf+AwnOg==", "requires": { - "jest-serializer": "^22.4.0", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "jest-serializer": { - "version": "22.4.3", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-22.4.3.tgz", - "integrity": "sha512-uPaUAppx4VUfJ0QDerpNdF43F68eqKWCzzhUlKNDsUPhjOon7ZehR4C809GCqh765FoMRtTVUVnGvIoskkYHiw==" - } + "cosmiconfig": "^5.0.5", + "metro": "0.45.6", + "metro-cache": "0.45.6", + "metro-core": "0.45.6" } }, "metro-core": { - "version": "0.30.2", - "resolved": "http://registry.npmjs.org/metro-core/-/metro-core-0.30.2.tgz", - "integrity": "sha512-2Y89PpD9sE/8QaHhYxaI21WFxkVmjbxdphiOPdsC9t7A3kQHMYOTQPYFon3bkYM7tL8k9YVBimXSv20JGglqUA==", + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.45.6.tgz", + "integrity": "sha512-M0YkGnkjStdCsSNYVW+aVlJ4WjwcqjIhQV+VzEnGZYdyo6cMi9MxUZ69iV2jIxd3LAeaQQaNe8OQtQp8dfIh/g==", "requires": { + "jest-haste-map": "23.5.0", "lodash.throttle": "^4.1.1", + "metro-resolver": "0.45.6", "wordwrap": "^1.0.0" } }, + "metro-memory-fs": { + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-memory-fs/-/metro-memory-fs-0.45.6.tgz", + "integrity": "sha512-YAGoNQVTM/vl65jR/ztucAZJIk0ejD3INZT0LiISRULBt6Rxfiqa22v5GG0Enq+95vlgmt26g+auHM2nxTUInQ==" + }, "metro-minify-uglify": { - "version": "0.30.2", - "resolved": "http://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.30.2.tgz", - "integrity": "sha512-xwqMqYYKZEqJ66Wpf5OpyPJhApOQDb8rYiO94VInlDeHpN7eKGCVILclnx9AmVM3dStmebvXa5jrdgsbnJ1bSg==", + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.45.6.tgz", + "integrity": "sha512-l+lZ7Gg6CN9XddgmwAbo7zOLT2QB9a6VALXLzmvr6gB1mc6SBZwtAh+hARvdymtcr1CgbaWADZPAA+W3oQZH4g==", "requires": { "uglify-es": "^3.1.9" } @@ -7429,17 +7285,17 @@ } }, "metro-resolver": { - "version": "0.30.2", - "resolved": "http://registry.npmjs.org/metro-resolver/-/metro-resolver-0.30.2.tgz", - "integrity": "sha512-bODCys/WYpqJ+KYbCIENZu1eqdQu3g/d2fXfhAROhutqojMqrT1eIGhzWpk3G1k/J6vlaf69uW6xrVuheg0ktg==", + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.45.6.tgz", + "integrity": "sha512-RY4tqKxSEz4ahLPaJlx30x6vG8HVyLT3w5aUDcyB5B2eQH3ckLnyUYUpd0sT7HFoJ1T5U5DFtWvS3P4yJcRB7A==", "requires": { "absolute-path": "^0.0.0" } }, "metro-source-map": { - "version": "0.30.2", - "resolved": "http://registry.npmjs.org/metro-source-map/-/metro-source-map-0.30.2.tgz", - "integrity": "sha512-9tW3B1JOdXhyDJnR4wOPOsOlYWSL+xh6J+N5/DADGEK/X/+Up/lEHdEfpB+/+yGk1LHaRHcKCahtLPNl/to7Sg==", + "version": "0.45.6", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.45.6.tgz", + "integrity": "sha512-FBubSEEitGrvUeuCPVwXTJX7Y1WjFhsUHickqQE+mXplOgREyeZ7o80ffqEWitfsMUQN9385LxIPmAdPzQXLsQ==", "requires": { "source-map": "^0.5.6" } @@ -7658,13 +7514,9 @@ "dev": true }, "node-fetch": { - "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.11", - "is-stream": "^1.0.1" - } + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.2.0.tgz", + "integrity": "sha512-OayFWziIxiHY8bCUyLX6sTpDH8Jsbp4FfYd1j1f7vZyfgkcOnAyM4oQR16f8a0s7Gl/viMGRey8eScYk4V4EZA==" }, "node-int64": { "version": "0.4.0", @@ -7729,6 +7581,11 @@ "gauge": "~1.2.5" } }, + "nullthrows": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.0.tgz", + "integrity": "sha512-YoigDq49JRqVCUlb4XlwZirXQiNCoXdwoyfklXJAEYHN+XKHWgDkrcWxNgxEtP7N+XF9Akp7Lr6wLq8HZxLttw==" + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -7950,15 +7807,6 @@ "mem": "^1.1.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.0.0", - "win-release": "^1.0.0" - } - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -8001,6 +7849,15 @@ "is-glob": "^2.0.0" } }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, "parse5": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", @@ -8114,21 +7971,13 @@ } }, "plist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/plist/-/plist-1.2.0.tgz", - "integrity": "sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", + "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", "requires": { - "base64-js": "0.0.8", - "util-deprecate": "1.0.2", - "xmlbuilder": "4.0.0", + "base64-js": "^1.2.3", + "xmlbuilder": "^9.0.7", "xmldom": "0.1.x" - }, - "dependencies": { - "base64-js": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", - "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" - } } }, "plugin-error": { @@ -8288,14 +8137,24 @@ "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" }, "react": { - "version": "16.5.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.5.0.tgz", - "integrity": "sha512-nw/yB/L51kA9PsAy17T1JrzzGRk+BlFCJwFF7p+pwVxgqwPjYNeZEkkH7LXn9dmflolrYMXLWMTkQ77suKPTNQ==", + "version": "16.5.2", + "resolved": "https://registry.npmjs.org/react/-/react-16.5.2.tgz", + "integrity": "sha512-FDCSVd3DjVTmbEAjUNX6FgfAmQ+ypJfHUsqUJOYNCBUp1h8lqmtC+0mXJ+JjsWx4KAVTkk1vKd1hLQPvEviSuw==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "prop-types": "^15.6.2", - "schedule": "^0.3.0" + "schedule": "^0.5.0" + }, + "dependencies": { + "schedule": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/schedule/-/schedule-0.5.0.tgz", + "integrity": "sha512-HUcJicG5Ou8xfR//c2rPT0lPIRR09vVvN81T9fqfVgBmhERUbDEQoYKjpBxbueJnCPpSu2ujXzOnRQt6x9o/jw==", + "requires": { + "object-assign": "^4.1.1" + } + } } }, "react-clone-referenced-element": { @@ -8309,30 +8168,26 @@ "integrity": "sha512-WUSQJ4P/wWcusaH+zZmbECOk7H5N2pOIl0vzheeornkIMhu+qrNdGFm0bDZLCb0hSF0jf/kH1SgkNGfBdTc4wA==" }, "react-devtools-core": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-3.1.0.tgz", - "integrity": "sha512-fO6SmpW16E9u6Lb6zQOHrjhJXGBNz+cJ0/a9cSF55nXfL0sQLlvYJR8DpU7f4rMUrVnVineg4XQyYYBZicmhJg==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-3.3.4.tgz", + "integrity": "sha512-6lsBDRInT9jU8Ya8bnKWJSsnaGg/xk1ZSfvhc/dHc3n2CUTMfGlqm2tGeZQ9WEoe0Y2K7Lg90Kvb1E8anLePaQ==", "requires": { "shell-quote": "^1.6.1", - "ws": "^2.0.3" + "ws": "^3.3.1" }, "dependencies": { - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=" - }, "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, "ws": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-2.3.1.tgz", - "integrity": "sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "safe-buffer": "~5.0.1", + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", "ultron": "~1.1.0" } } @@ -8371,21 +8226,12 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-native": { - "version": "0.55.4", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.55.4.tgz", - "integrity": "sha512-J6U2KeuFIfH0I6kbwymQWe7Yw7AVzPq22tq6z5VmvcYQiKbqKkvjJukgHqR6keRreHjohEaWP5Gi007IGFJdyQ==", + "version": "0.57.1", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.57.1.tgz", + "integrity": "sha512-d+bRxIFjCrvXVbvPhuyLvE8NSiYKzldBzL+sJjSGxNqOOb2UIjLfB1BGUkI3n3X7KAYEUp4KUhT7YfA2qsRi/w==", "requires": { "absolute-path": "^0.0.0", "art": "^0.10.0", - "babel-core": "^6.24.1", - "babel-plugin-syntax-trailing-function-commas": "^6.20.0", - "babel-plugin-transform-async-to-generator": "6.16.0", - "babel-plugin-transform-class-properties": "^6.18.0", - "babel-plugin-transform-exponentiation-operator": "^6.5.0", - "babel-plugin-transform-flow-strip-types": "^6.21.0", - "babel-plugin-transform-object-rest-spread": "^6.20.2", - "babel-register": "^6.24.1", - "babel-runtime": "^6.23.0", "base64-js": "^1.1.2", "chalk": "^1.1.1", "commander": "^2.9.0", @@ -8394,34 +8240,36 @@ "create-react-class": "^15.6.3", "debug": "^2.2.0", "denodeify": "^1.2.1", - "envinfo": "^3.0.0", + "envinfo": "^5.7.0", "errorhandler": "^1.5.0", - "eslint-plugin-react-native": "^3.2.1", + "escape-string-regexp": "^1.0.5", "event-target-shim": "^1.0.5", - "fbjs": "^0.8.14", + "fbjs": "0.8.17", "fbjs-scripts": "^0.8.1", "fs-extra": "^1.0.0", "glob": "^7.1.1", "graceful-fs": "^4.1.3", "inquirer": "^3.0.6", "lodash": "^4.17.5", - "metro": "^0.30.0", - "metro-core": "^0.30.0", + "metro": "^0.45.6", + "metro-babel-register": "^0.45.6", + "metro-core": "^0.45.6", + "metro-memory-fs": "^0.45.6", "mime": "^1.3.4", "minimist": "^1.2.0", "mkdirp": "^0.5.1", "morgan": "^1.9.0", - "node-fetch": "^1.3.3", + "node-fetch": "^2.2.0", "node-notifier": "^5.2.1", "npmlog": "^2.0.4", "opn": "^3.0.2", "optimist": "^0.6.1", - "plist": "^1.2.0", + "plist": "^3.0.0", "pretty-format": "^4.2.1", "promise": "^7.1.1", "prop-types": "^15.5.8", "react-clone-referenced-element": "^1.0.1", - "react-devtools-core": "3.1.0", + "react-devtools-core": "3.3.4", "react-timer-mixin": "^0.13.2", "regenerator-runtime": "^0.11.0", "rimraf": "^2.5.4", @@ -8429,18 +8277,10 @@ "serve-static": "^1.13.1", "shell-quote": "1.6.1", "stacktrace-parser": "^0.1.3", - "whatwg-fetch": "^1.0.0", "ws": "^1.1.0", "xcode": "^0.9.1", "xmldoc": "^0.4.0", "yargs": "^9.0.0" - }, - "dependencies": { - "whatwg-fetch": { - "version": "1.1.1", - "resolved": "http://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz", - "integrity": "sha1-rDydOfMgxtzlM5lp0FTvQ90zMxk=" - } } }, "react-native-branch": { @@ -8572,7 +8412,7 @@ }, "react-native-tab-view": { "version": "0.0.77", - "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-0.0.77.tgz", + "resolved": "http://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-0.0.77.tgz", "integrity": "sha512-9vjD4Ly1Zlum1Y4g23ODpi/F3gYIUIsKWrsZO/Oh5cuX1eiB1DRVn11nY1z+j/hsQfhfyW6nDlmySyDvYQvYCA==", "requires": { "prop-types": "^15.6.0" @@ -8611,9 +8451,9 @@ } }, "react-navigation": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-2.16.0.tgz", - "integrity": "sha512-AB+zS9bDBjD6xxRWvKnGLcMN/2gmP7+ARKb7nfwNmDjtJDswY55HaMiMUOrKYzDJi3bY45O0XHroPF9aArF3nw==", + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-2.17.0.tgz", + "integrity": "sha512-OT3V5ZGA+VOFydjJg5JAo/sh94stWoyEYXOVdAz98Rw4UW3BATUG6Y/4ROMbBSlYl2PvGfc9Q1+RHEhy5Xjp8A==", "requires": { "clamp": "^1.0.1", "create-react-context": "0.2.2", @@ -8625,7 +8465,7 @@ "react-native-screens": "^1.0.0-alpha.11", "react-navigation-deprecated-tab-navigator": "1.3.0", "react-navigation-drawer": "0.5.0", - "react-navigation-stack": "0.6.0", + "react-navigation-stack": "0.7.0", "react-navigation-tabs": "0.8.2" } }, @@ -8646,9 +8486,9 @@ } }, "react-navigation-stack": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/react-navigation-stack/-/react-navigation-stack-0.6.0.tgz", - "integrity": "sha512-6+33KKqHq+OTK5CRcj3fpXfTpfU/56aFG/WB7a/9QKThfkVTuxAJ1Z5+qZNJMH5BAJvzhqBiPNYb6uH1TcoecA==" + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/react-navigation-stack/-/react-navigation-stack-0.7.0.tgz", + "integrity": "sha512-3Tbb/SsustBrM9R/qaI6XuOfyqYMVbwkeHFC8NbU890vB0aKZvjAtioWLZ18e/4LgbiOCmoTdp37z3gkGDyNDQ==" }, "react-navigation-tabs": { "version": "0.8.2", @@ -8662,9 +8502,9 @@ }, "dependencies": { "react-native-tab-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-1.0.2.tgz", - "integrity": "sha512-x8I43V1X7/AyMnIwnqJGMU54LqQRlV6vJ9irbls9asA/axdHIdxagPIV6Jx1ttFe/bPKhFwXL+lRYdYxGyUlWg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-1.2.0.tgz", + "integrity": "sha512-lpiWi3dog86Fu/W60DU12RKrFv3XuTv0lHMC56t2jlDqxLfVzG9ufV7li6Afl2S2ZicNU1Bob8WPgxVZc8egAA==", "requires": { "prop-types": "^15.6.1" } @@ -8779,7 +8619,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", - "dev": true, "requires": { "regenerate": "^1.4.0" } @@ -8843,7 +8682,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.2.0.tgz", "integrity": "sha512-Z835VSnJJ46CNBttalHD/dB+Sj2ezmY6Xp38npwU87peK6mqOzOpV8eYktdkLTEkzzD+JsTcxd84ozd8I14+rw==", - "dev": true, "requires": { "regenerate": "^1.4.0", "regenerate-unicode-properties": "^7.0.0", @@ -8856,14 +8694,12 @@ "regjsgen": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.4.0.tgz", - "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==", - "dev": true + "integrity": "sha512-X51Lte1gCYUdlwhF28+2YMO0U6WeN0GLpgpA7LK7mbdDnkQYiwvEpmpe0F/cv5L14EbxgrdayAG3JETBv0dbXA==" }, "regjsparser": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.3.0.tgz", "integrity": "sha512-zza72oZBBHzt64G7DxdqrOo/30bhHkwMUoT0WqfGu98XLd7N+1tsy5MJ96Bk4MD0y74n629RhmrGW6XlnLLwCA==", - "dev": true, "requires": { "jsesc": "~0.5.0" }, @@ -8871,8 +8707,7 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } }, @@ -9380,6 +9215,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/schedule/-/schedule-0.3.0.tgz", "integrity": "sha512-20+1KVo517sR7Nt+bYBN8a+bEJDKLPEx7Ohtts1kX05E4/HY53YUNuhfkVNItmWAnBYHcpG9vsd2/CJxG+aPCQ==", + "dev": true, "requires": { "object-assign": "^4.1.1" } @@ -9774,8 +9610,7 @@ "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { "version": "1.14.2", @@ -10356,14 +10191,12 @@ "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" }, "unicode-match-property-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, "requires": { "unicode-canonical-property-names-ecmascript": "^1.0.4", "unicode-property-aliases-ecmascript": "^1.0.4" @@ -10372,14 +10205,12 @@ "unicode-match-property-value-ecmascript": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", - "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==", - "dev": true + "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==" }, "unicode-property-aliases-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", - "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==", - "dev": true + "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==" }, "union-value": { "version": "1.0.0", @@ -10640,14 +10471,6 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, - "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.0.1" - } - }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -10732,19 +10555,9 @@ "dev": true }, "xmlbuilder": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz", - "integrity": "sha1-mLj2UcowqmJANvEn0RzGbce5B6M=", - "requires": { - "lodash": "^3.5.0" - }, - "dependencies": { - "lodash": { - "version": "3.10.1", - "resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" - } - } + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" }, "xmldoc": { "version": "0.4.0", diff --git a/package.json b/package.json index acb515e..a2541da 100644 --- a/package.json +++ b/package.json @@ -11,10 +11,10 @@ }, "dependencies": { "expo": "^30.0.1", - "react": "16.5.0", + "react": "^16.5.2", "react-dom": "^16.5.2", - "react-native": "0.55.4", - "react-navigation": "^2.16.0", + "react-native": "^0.57.1", + "react-navigation": "^2.17.0", "react-redux": "^5.0.7", "redux": "^4.0.0", "watchman": "^1.0.0" diff --git a/src/main/js/components/Button.js b/src/main/js/components/Button.js index 7c03e9d..517c72c 100644 --- a/src/main/js/components/Button.js +++ b/src/main/js/components/Button.js @@ -1,25 +1,64 @@ -import React, { Component } from 'react'; -import {Button as NativeButton, StyleSheet} from 'react-native'; +import React, {Component} from 'react'; +import { + StyleSheet, + Animated, + Easing, + TouchableWithoutFeedback, +} from 'react-native'; +import Text from './Text'; +import {BUTTON_STYLES} from '../styles'; + export default class Button extends Component { + constructor(props) { + super(props); + this.animatedValue = new Animated.Value(0); + this.onPress = this.onPress.bind(this); + + this.buttonScale = this.animatedValue.interpolate({ + inputRange: [0, 0.5, 1], + outputRange: [1, .95, 1] + }); + + this.buttonOpacity = this.animatedValue.interpolate({ + inputRange: [0, 0.5, 1], + outputRange: [1, .5, 1] + }); + } render() { return ( - + + + + + ); } -} -const styles = StyleSheet.create({ - button: { - alignItems: 'center', - padding: 20, - borderWidth: 1, - borderColor: "#FFFFFF", - margin: 20 + scale() { + this.animatedValue.setValue(0); + Animated.timing( + this.animatedValue, + { + toValue: 1, + duration: 100, + easing: Easing.linear + } + ).start(); + } + + onPress() { + this.scale(); + this.props.onPress(); } -}); +} diff --git a/src/main/js/components/FormTextInput.js b/src/main/js/components/FormTextInput.js new file mode 100644 index 0000000..1881b88 --- /dev/null +++ b/src/main/js/components/FormTextInput.js @@ -0,0 +1,37 @@ +import React, {Component} from 'react'; +import {View} from 'react-native' +import PropTypes from 'prop-types'; +import TextInput from './TextInput'; +import Text from './Text'; +import {VIEW_STYLES, FORM_TEXT_INPUT_STYLES} from '../styles'; + +/** + * Form Input that wraps a TextInput Component + * + * @return Returns a TextInput with styling and a title + */ +export default class FormTextInput extends Component { + constructor(props) { + super(props); + } + + render() { + return( + + + + + ); + } +} + +FormTextInput.defaultProps = { + secureTextEntry: false +} diff --git a/src/main/js/components/Text.js b/src/main/js/components/Text.js new file mode 100644 index 0000000..796eacf --- /dev/null +++ b/src/main/js/components/Text.js @@ -0,0 +1,14 @@ +import React, { Component } from 'react'; +import {Text as NativeText} from 'react-native'; + +export default class Text extends Component { + constructor(props) { + super(props); + } + + render () { + return( + {this.props.text} + ); + } +} diff --git a/src/main/js/components/TextInput.js b/src/main/js/components/TextInput.js index eb59d9e..428987d 100644 --- a/src/main/js/components/TextInput.js +++ b/src/main/js/components/TextInput.js @@ -1,7 +1,7 @@ import React, {Component} from 'react'; import {TextInput as NativeTextInput} from 'react-native'; import PropTypes from 'prop-types'; - +import {BASE_STYLES} from '../styles'; /** * Basic TextInput Component * @@ -14,7 +14,15 @@ export default class TextInput extends Component { render() { return( - + ); } } + +TextInput.defaultProps = { + secureTextEntry: false, +} diff --git a/src/main/js/components/pages/donatrixPage/DonatrixPage.js b/src/main/js/components/pages/donatrixPage/DonatrixPage.js index 6c6006e..583ac31 100644 --- a/src/main/js/components/pages/donatrixPage/DonatrixPage.js +++ b/src/main/js/components/pages/donatrixPage/DonatrixPage.js @@ -1,19 +1,20 @@ import React, {Component} from 'react'; -import {View, Text} from 'react-native'; +import {View} from 'react-native'; import Button from '../../Button'; +import Text from '../../Text'; /** * This is the Donatrix */ -export default class WelcomePage extends Component { +export default class DonatrixPage extends Component { static navigationOptions = { - title: 'Welcome' + title: 'Donatrix' }; render() { return ( - Welcome to the Donatrix +