From e03929d4584b07f34e9423d2b5ce62199426f8c8 Mon Sep 17 00:00:00 2001 From: Trond Bergquist Date: Fri, 16 Aug 2019 16:18:21 +0200 Subject: [PATCH] playground-ios: Add account to playground app Note that this is ok, but we should not yet tell native that account is available. If they try to access it in production it could crash. We need to publish new code-push-target-version before it is safe to use in production --- app/account/package.json | 2 +- .../src/appRegistry/AccountSettings.js | 12 +- .../src/navigation/stacks/ProfileStack.js | 19 +-- app/native.js | 4 + app/profile/index.js | 14 +-- app/profile/package.json | 3 +- ios/RNKiwiMobile/RNKiwiConstants.m | 2 +- .../Base.lproj/Main.storyboard | 23 ++-- ios/RNNativePlayground/ViewController.m | 10 ++ ios/reactNativeApp.xcodeproj/project.pbxproj | 21 +++- package.json | 1 + react-native.config.js | 2 +- yarn.lock | 108 ++++++++++++++++-- 13 files changed, 159 insertions(+), 62 deletions(-) diff --git a/app/account/package.json b/app/account/package.json index 3a7fa811..ffa504d5 100644 --- a/app/account/package.json +++ b/app/account/package.json @@ -5,7 +5,7 @@ "main": "index.js", "dependencies": { "@kiwicom/mobile-shared": "*", - "@kiwicom/account-native": "^0.0.1" + "@kiwicom/account-native": "^0.0.4" }, "peerDependencies": { "react": "*" diff --git a/app/account/src/appRegistry/AccountSettings.js b/app/account/src/appRegistry/AccountSettings.js index 4d46f91f..2cbe737b 100644 --- a/app/account/src/appRegistry/AccountSettings.js +++ b/app/account/src/appRegistry/AccountSettings.js @@ -2,13 +2,19 @@ import * as React from 'react'; import { WithNativeNavigation } from '@kiwicom/mobile-shared'; -import { Accounts as AccountStack } from '@kiwicom/account-native'; +import { Settings as AccountSettingsStack, NavigationProvider } from '@kiwicom/account-native'; -type Props = {||}; +type Props = {| + +onBackClicked: () => void, +|}; class AccountSettings extends React.Component { render() { - return ; + return ( + + + + ); } } diff --git a/app/core/src/navigation/stacks/ProfileStack.js b/app/core/src/navigation/stacks/ProfileStack.js index db5c935d..e43824eb 100644 --- a/app/core/src/navigation/stacks/ProfileStack.js +++ b/app/core/src/navigation/stacks/ProfileStack.js @@ -2,32 +2,15 @@ import { StackNavigator, StackNavigatorOptions } from '@kiwicom/mobile-navigation'; import ProfileScreen from '@kiwicom/mobile-profile'; -import { AccountSettings } from '@kiwicom/mobile-account'; - -const ProfileStack = StackNavigator( - { - Profile: { - screen: ProfileScreen, - }, - }, - { - ...StackNavigatorOptions, - initialRouteName: 'Profile', - }, -); export default StackNavigator( { Profile: { - screen: ProfileStack, - }, - AccountSettings: { - screen: AccountSettings, + screen: ProfileScreen, }, }, { ...StackNavigatorOptions, initialRouteName: 'Profile', - headerMode: 'none', }, ); diff --git a/app/native.js b/app/native.js index 9e3c5eb0..98240526 100644 --- a/app/native.js +++ b/app/native.js @@ -7,6 +7,7 @@ import { NewHotelsStandAlonePackage, } from '@kiwicom/react-native-app-hotels'; import { AncillaryFactory } from '@kiwicom/react-native-ancillary-factory'; +import { AccountSettings } from '@kiwicom/mobile-account'; // Hotels AppRegistry.registerComponent('NewKiwiHotels', () => NewHotelsStandAlonePackage); @@ -15,6 +16,9 @@ AppRegistry.registerComponent('SingleHotel', () => SingleHotelStandalonePackage) // AncillaryFactory AppRegistry.registerComponent('AncillaryFactory', () => AncillaryFactory); +// Account +AppRegistry.registerComponent('AccountSettings', () => AccountSettings); + // This file is only used for native integration and we use CodePush there CodePush.sync({ installMode: CodePush.InstallMode.IMMEDIATE, diff --git a/app/profile/index.js b/app/profile/index.js index 292dd3d8..f7c914ea 100644 --- a/app/profile/index.js +++ b/app/profile/index.js @@ -9,7 +9,6 @@ import { StyleSheet, } from '@kiwicom/mobile-shared'; import AsyncStorage from '@react-native-community/async-storage'; -import { withNavigation, type NavigationType } from '@kiwicom/mobile-navigation'; import Login from './components/authentication/Login'; import Logout from './components/authentication/Logout'; @@ -20,9 +19,7 @@ type State = {| isLoggedIn: boolean, |}; -type Props = {| - +navigation: NavigationType, -|}; +type Props = {||}; class LoginScreen extends React.Component { state = { @@ -34,18 +31,12 @@ class LoginScreen extends React.Component { const simpleTokenData = await AsyncStorage.getItem('mobile:MMB-Simple-Token'); if (token != null || simpleTokenData != null) { this.setState({ isLoggedIn: true }); - this.navigateToAccountSettings(); } }; onLogin = (token: string) => { AsyncStorage.setItem('mobile:MMB-Token', token); this.setState({ isLoggedIn: true }); - this.navigateToAccountSettings(); - }; - - navigateToAccountSettings = () => { - this.props.navigation.navigate('AccountSettings'); }; onSimpleLogin = (simpleToken: string, bookingId: string) => { @@ -57,7 +48,6 @@ class LoginScreen extends React.Component { }), ); this.setState({ isLoggedIn: true }); - this.navigateToAccountSettings(); }; onLogout = () => { @@ -105,4 +95,4 @@ const styles = StyleSheet.create({ }, }); -export default withNavigation(LoginScreen); +export default LoginScreen; diff --git a/app/profile/package.json b/app/profile/package.json index a06c00f9..39e44101 100644 --- a/app/profile/package.json +++ b/app/profile/package.json @@ -7,8 +7,7 @@ "@kiwicom/mobile-localization": "^0", "@kiwicom/mobile-shared": "^0", "@kiwicom/mobile-orbit": "^0", - "@kiwicom/mobile-relay": "^0", - "@kiwicom/mobile-navigation": "^0" + "@kiwicom/mobile-relay": "^0" }, "peerDependencies": { "react": "^16", diff --git a/ios/RNKiwiMobile/RNKiwiConstants.m b/ios/RNKiwiMobile/RNKiwiConstants.m index fbe98cf9..004805aa 100644 --- a/ios/RNKiwiMobile/RNKiwiConstants.m +++ b/ios/RNKiwiMobile/RNKiwiConstants.m @@ -8,7 +8,7 @@ @implementation RNKiwiConstants + (NSURL *)bundleURL { #ifdef DEBUG - return [NSURL URLWithString:@"http://localhost:8081/app/native.bundle?platform=ios&dev=true"]; + return [NSURL URLWithString:@"http://192.168.16.47:8081/app/native.bundle?platform=ios&dev=true"]; #else return [CodePush bundleURLForResource:@"main" withExtension:@"jsbundle" subdirectory:nil bundle:[NSBundle bundleWithIdentifier:@"com.kiwi.RNKiwiMobile"]]; #endif diff --git a/ios/RNNativePlayground/Base.lproj/Main.storyboard b/ios/RNNativePlayground/Base.lproj/Main.storyboard index 7afae220..687afdbb 100644 --- a/ios/RNNativePlayground/Base.lproj/Main.storyboard +++ b/ios/RNNativePlayground/Base.lproj/Main.storyboard @@ -1,12 +1,11 @@ - + - - + @@ -20,7 +19,7 @@ - + @@ -37,30 +36,38 @@ - + - + - + + diff --git a/ios/RNNativePlayground/ViewController.m b/ios/RNNativePlayground/ViewController.m index 4dd6e32e..461deef6 100644 --- a/ios/RNNativePlayground/ViewController.m +++ b/ios/RNNativePlayground/ViewController.m @@ -235,6 +235,16 @@ - (void)setActiveViewController:(RNKiwiViewController *)vc { _activeVc = vc; } +// Open accounts + +- (IBAction)pushAccountsView:(id)sender { + RNKiwiViewController *controller = [[RNKiwiViewController alloc] initWithModule:@"AccountSettings" initialProperties:@{ + @"lastNavigationMode": @"push" + }]; + [self setActiveViewController:controller]; + [[self navigationController] pushViewController:controller animated:YES]; +} + // Offer search is based on city ID - (IBAction)presentNewHotelsView:(id)sender { diff --git a/ios/reactNativeApp.xcodeproj/project.pbxproj b/ios/reactNativeApp.xcodeproj/project.pbxproj index a0b4cb98..58cdfe87 100644 --- a/ios/reactNativeApp.xcodeproj/project.pbxproj +++ b/ios/reactNativeApp.xcodeproj/project.pbxproj @@ -34,6 +34,8 @@ 27E931E420ADA0630053AE19 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 27E931E320ADA0630053AE19 /* main.m */; }; 51A8F6BE673D4671A3545CD8 /* CircularPro-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = 50EB547AC35C4D25B73F0376 /* CircularPro-Medium.otf */; }; 60854A62F6F281394EE676B5 /* libPods-reactNativeApp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0520FD3BC77D396F74CF8285 /* libPods-reactNativeApp.a */; }; + 63497BE72306A93D0006DC8B /* Roboto.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 63497BE62306A93D0006DC8B /* Roboto.ttf */; }; + 63497BE82306A93D0006DC8B /* Roboto.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 63497BE62306A93D0006DC8B /* Roboto.ttf */; }; 63738759220D81E600665942 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63738758220D81E600665942 /* JavaScriptCore.framework */; }; 6373875A220D81F200665942 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63738758220D81E600665942 /* JavaScriptCore.framework */; }; 6373875B220D820200665942 /* JavaScriptCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 63738758220D81E600665942 /* JavaScriptCore.framework */; }; @@ -106,7 +108,7 @@ 219FCC5921753450008F5428 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 21B8D73121834B830079431F /* City.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = City.m; sourceTree = ""; }; 21B8D73321834BA10079431F /* City.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = City.h; sourceTree = ""; }; - 21C03BEA6DA8479DBFFA62F0 /* Roboto-Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Roboto-Regular.ttf"; path = "../assets/fonts/Roboto-Regular.ttf"; sourceTree = ""; }; + 21C03BEA6DA8479DBFFA62F0 /* Roboto.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = file; name = Roboto.ttf; path = ../assets/fonts/Roboto.ttf; sourceTree = ""; }; 21C5EFC12189F86100F3C098 /* package.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = package.json; path = ../package.json; sourceTree = ""; }; 2711986D20B2A0C100C6292B /* RNKiwiSharedBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNKiwiSharedBridge.h; sourceTree = ""; }; 2711986E20B2A0C100C6292B /* RNKiwiSharedBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNKiwiSharedBridge.m; sourceTree = ""; }; @@ -134,6 +136,7 @@ 34003FC5EE453F3F2C072F56 /* libPods-RNNativePlayground.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-RNNativePlayground.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 50EB547AC35C4D25B73F0376 /* CircularPro-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "CircularPro-Medium.otf"; path = "../assets/fonts/ios/CircularPro-Medium.otf"; sourceTree = ""; }; 5EF541A9996B4D6AB8AEDA5B /* Roboto-Bold.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Roboto-Bold.ttf"; path = "../assets/fonts/android/Roboto-Bold.ttf"; sourceTree = ""; }; + 63497BE62306A93D0006DC8B /* Roboto.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = Roboto.ttf; path = "../node_modules/@kiwicom/account-native/apps/account-native/assets/fonts/Roboto/Roboto.ttf"; sourceTree = ""; }; 63738758220D81E600665942 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; 63A8419C20C853840093183F /* Social.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Social.framework; path = System/Library/Frameworks/Social.framework; sourceTree = SDKROOT; }; 63A8419E20C8538A0093183F /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; @@ -288,8 +291,9 @@ A142755D6A354DA78D29BEB8 /* Resources */ = { isa = PBXGroup; children = ( + 63497BE62306A93D0006DC8B /* Roboto.ttf */, 21C5EFC12189F86100F3C098 /* package.json */, - 21C03BEA6DA8479DBFFA62F0 /* Roboto-Regular.ttf */, + 21C03BEA6DA8479DBFFA62F0 /* Roboto.ttf */, DF5410E6DB94477AB0C446B4 /* CircularPro-Book.otf */, D1641E3E0F4C42F0A3CB58F1 /* CircularPro-Bold.otf */, 2C62C7C2DC5B49F98F047AD3 /* CircularPro-Medium.otf */, @@ -468,6 +472,7 @@ 898C440300784E69B91D0ED6 /* Roboto-Medium.ttf in Resources */, 21C5EFC22189F86200F3C098 /* package.json in Resources */, FA705002A8FD4F5BBDB4B4F4 /* Roboto-Regular.ttf in Resources */, + 63497BE72306A93D0006DC8B /* Roboto.ttf in Resources */, 6AC23FDF8E5142199F66BC24 /* CircularPro-Bold.otf in Resources */, DD9F4DDDD70840CBBECA0434 /* CircularPro-Book.otf in Resources */, 51A8F6BE673D4671A3545CD8 /* CircularPro-Medium.otf in Resources */, @@ -481,6 +486,7 @@ files = ( 21C5EFC32189FA0200F3C098 /* package.json in Resources */, 21C5EFBA2189DCFA00F3C098 /* orbit-icons.ttf in Resources */, + 63497BE82306A93D0006DC8B /* Roboto.ttf in Resources */, 21EFD4CD21768D8C00B5F21B /* Images.xcassets in Resources */, 68E80E25215E66CD00EB4717 /* CircularPro-Book.otf in Resources */, 27E931E120ADA0630053AE19 /* LaunchScreen.storyboard in Resources */, @@ -856,10 +862,11 @@ CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = G44VYF3687; + DEVELOPMENT_TEAM = ""; FRAMEWORK_SEARCH_PATHS = ""; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; @@ -869,6 +876,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.kiwi.mobile.rniosplayground; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Staging; @@ -982,9 +990,10 @@ CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = G44VYF3687; + DEVELOPMENT_TEAM = ""; ENABLE_TESTABILITY = YES; FRAMEWORK_SEARCH_PATHS = ""; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -1021,10 +1030,11 @@ CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = G44VYF3687; + DEVELOPMENT_TEAM = ""; FRAMEWORK_SEARCH_PATHS = ""; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; @@ -1034,6 +1044,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.kiwi.mobile.rniosplayground; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; diff --git a/package.json b/package.json index 50129a0a..85869f96 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "@kiwicom/react-native-ancillary-factory": "^0", "@kiwicom/react-native-app-hotels": "^0", "@kiwicom/react-native-fast-track": "^0", + "@kiwicom/mobile-account": "*", "chalk": "^2.4.2", "commander": "^2.20.0", "detox": "^13.3.3", diff --git a/react-native.config.js b/react-native.config.js index ca32a06d..39ff5c24 100644 --- a/react-native.config.js +++ b/react-native.config.js @@ -24,7 +24,7 @@ function getAutolinkConfig() { } module.exports = { - assets: ['./assets/fonts'], + assets: ['./assets/fonts', '@kiwicom/account-native/apps/account-native/assets/fonts'], dependencies: { ...getAutolinkConfig(), }, diff --git a/yarn.lock b/yarn.lock index 535f53f7..9649d329 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1328,13 +1328,15 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^12.0.9" -"@kiwicom/account-native@^0.0.1": - version "0.0.1" - resolved "https://registry.yarnpkg.com/@kiwicom/account-native/-/account-native-0.0.1.tgz#f9d9a0504e4d4373cf1cdf5b402b5e1ab375ebaa" - integrity sha512-Ggu+1g1tS8hLOloUD+Bt9SdrpiybWmDUJ+k7mWvlb1emfEcRmob3+ANbSA/uXRiHdx204OcSmtEEzZXWX+QQaA== +"@kiwicom/account-native@^0.0.4": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@kiwicom/account-native/-/account-native-0.0.4.tgz#300411e7d29ebb85e20bf8dbffbf9581df788f9b" + integrity sha512-N03UKZR6+CLQTZX9s8/JE3Six1vtxqR07TtUO4wSRxrp/Ehq84sZ3te4FF2bEdglpJnmCXfgX+jhFZXy21uNoA== dependencies: "@kiwicom/graphql-global-id" "^0.10.0" "@kiwicom/graphql-utils" "^0.8.0" + "@kiwicom/js" "^0.13.0" + "@kiwicom/orbit-components" "^0.53.0" "@kiwicom/orbit-design-tokens" "^0.6.5" "@kiwicom/relay" "^3.2.0" buffer "^5.2.1" @@ -1342,6 +1344,7 @@ date-fns "^1.30.1" graphql "^14.4.2" graphql-iso-date "^3.6.1" + npm-registry-client "^8.6.0" react-native-safe-area-view "^0.14.6" rimraf "^2.6.3" styled-components "^4.3.2" @@ -1416,6 +1419,11 @@ resolved "https://registry.yarnpkg.com/@kiwicom/js/-/js-0.8.0.tgz#a548fd07073599fb875d3e556f1009080744cc7d" integrity sha512-CAdGRXvP8TmZpICJxyWRX1GLsmWQQDZ4U0hkhtByLIUf8p60JrdR4+kwUDEheEndcD1s4PJnDrcEflDZAdqsqA== +"@kiwicom/js@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@kiwicom/js/-/js-0.9.0.tgz#67032574d8ee318cd747001a7b4c87013214327a" + integrity sha512-CwDiWwLWE0iWzCrL08x7jdEySAIVdmcmF/rik8gjK5oW4jA5G9fOBxsSSVm2bLtq8HG9KIz4YHDbtWO1K7LIiQ== + "@kiwicom/logger@^0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@kiwicom/logger/-/logger-0.1.0.tgz#5418f1544e3d765a5f4ae32d09a7977ecb5b5510" @@ -1435,6 +1443,14 @@ glob "^7.1.4" is-ci "^2.0.0" +"@kiwicom/orbit-components@^0.53.0": + version "0.53.0" + resolved "https://registry.yarnpkg.com/@kiwicom/orbit-components/-/orbit-components-0.53.0.tgz#0650cfe6d4b789d3cdba2ad2fcb3edce2b09e6cf" + integrity sha512-ToKXSsHF/RftxIK0+XXitHno4ugO8nBtR2Wggcv7n9+nXkBSDZsRAEhAikqkxAn3TmLP4IVSWW7A2At6UmkTuA== + dependencies: + "@kiwicom/js" "^0.9.0" + "@kiwicom/orbit-design-tokens" "~0.6.5" + "@kiwicom/orbit-design-tokens@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@kiwicom/orbit-design-tokens/-/orbit-design-tokens-0.3.0.tgz#5cfc1b5d9a9e4e8f84c9b09769880ebbb9078516" @@ -1456,6 +1472,13 @@ dependencies: ramda "^0.26.1" +"@kiwicom/orbit-design-tokens@~0.6.5": + version "0.6.6" + resolved "https://registry.yarnpkg.com/@kiwicom/orbit-design-tokens/-/orbit-design-tokens-0.6.6.tgz#3864be300088898e70d66ee85a9e02f3a37c41d6" + integrity sha512-7tKnZi3Wn3k50NipO581VuF8wEDDtx589NYxaqLn8UYwYzwVkUR3XSrV54Em/MIU252N3+LNLMmPyj6Ep9fLcg== + dependencies: + ramda "^0.26.1" + "@kiwicom/relay@^3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@kiwicom/relay/-/relay-3.2.0.tgz#904bd2c248aa9952ca5d2ccdd9c895cf0e2de09d" @@ -3851,6 +3874,11 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + bunyan-debug-stream@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/bunyan-debug-stream/-/bunyan-debug-stream-1.1.1.tgz#4740a00b7d5c2d9d1b714925ab0802516040813e" @@ -4352,7 +4380,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.6.0: +concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@^1.5.2, concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -6717,6 +6745,11 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== +hosted-git-info@^2.6.0: + version "2.8.4" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" + integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== + html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" @@ -9145,7 +9178,7 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -normalize-package-data@^2.3.2: +normalize-package-data@^2.3.2, "normalize-package-data@~1.0.1 || ^2.0.0": version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -9177,6 +9210,16 @@ npm-bundled@^1.0.1: resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== +"npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-6.1.0.tgz#15ae1e2758a5027efb4c250554b85a737db7fcc1" + integrity sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA== + dependencies: + hosted-git-info "^2.6.0" + osenv "^0.1.5" + semver "^5.5.0" + validate-npm-package-name "^3.0.0" + npm-packlist@^1.1.6: version "1.4.1" resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.1.tgz#19064cdf988da80ea3cee45533879d90192bbfbc" @@ -9185,6 +9228,25 @@ npm-packlist@^1.1.6: ignore-walk "^3.0.1" npm-bundled "^1.0.1" +npm-registry-client@^8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/npm-registry-client/-/npm-registry-client-8.6.0.tgz#7f1529f91450732e89f8518e0f21459deea3e4c4" + integrity sha512-Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg== + dependencies: + concat-stream "^1.5.2" + graceful-fs "^4.1.6" + normalize-package-data "~1.0.1 || ^2.0.0" + npm-package-arg "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + once "^1.3.3" + request "^2.74.0" + retry "^0.10.0" + safe-buffer "^5.1.1" + semver "2 >=2.2.1 || 3.x || 4 || 5" + slide "^1.1.3" + ssri "^5.2.4" + optionalDependencies: + npmlog "2 || ^3.1.0 || ^4.0.0" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -9192,7 +9254,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npmlog@^4.0.2, npmlog@^4.1.2: +"npmlog@2 || ^3.1.0 || ^4.0.0", npmlog@^4.0.2, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== @@ -9332,7 +9394,7 @@ on-headers@~1.0.1: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" integrity sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c= -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= @@ -9459,7 +9521,7 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@^0.1.4: +osenv@^0.1.4, osenv@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== @@ -11030,7 +11092,7 @@ request-promise-native@^1.0.5: stealthy-require "^1.1.1" tough-cookie "^2.3.3" -request@^2.87.0: +request@^2.74.0, request@^2.87.0: version "2.88.0" resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== @@ -11151,6 +11213,11 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -11324,6 +11391,11 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +"semver@2 >=2.2.1 || 3.x || 4 || 5": + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: version "5.7.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" @@ -11593,7 +11665,7 @@ slice-ansi@^2.0.0, slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" -slide@^1.1.5: +slide@^1.1.3, slide@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= @@ -11780,6 +11852,13 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + integrity sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ== + dependencies: + safe-buffer "^5.1.1" + ssri@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" @@ -12658,6 +12737,13 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"