Browse Source

Upgrade NPM dependencies/packages: react-native 0.50

j8
Lyubo Marinov 7 years ago
parent
commit
569b3547c8

+ 7
- 14
.flowconfig View File

12
 ; For RN Apps installed via npm, "Libraries" folder is inside
12
 ; For RN Apps installed via npm, "Libraries" folder is inside
13
 ; "node_modules/react-native" but in the source repo it is in the root
13
 ; "node_modules/react-native" but in the source repo it is in the root
14
 .*/Libraries/react-native/React.js
14
 .*/Libraries/react-native/React.js
15
-.*/Libraries/react-native/ReactNative.js
16
 
15
 
17
 ; Ignore polyfills
16
 ; Ignore polyfills
18
 .*/Libraries/polyfills/.*
17
 .*/Libraries/polyfills/.*
21
 ; seen to cause errors and we have chosen not to fix.
20
 ; seen to cause errors and we have chosen not to fix.
22
 .*/node_modules/@atlassian
21
 .*/node_modules/@atlassian
23
 .*/node_modules/bower/lib/node_modules/bower-json/test/.*
22
 .*/node_modules/bower/lib/node_modules/bower-json/test/.*
23
+.*/node_modules/immutable/dist/immutable.js.flow
24
 .*/node_modules/jsonlint/test/.*
24
 .*/node_modules/jsonlint/test/.*
25
 
25
 
26
-; FIXME Remove once we update past this commit:
26
+; FIXME Remove once we update past commit
27
 ; https://github.com/facebook/react-native/commit/df8d0d1db9203cc87ad3682e6138b2a9ed714365
27
 ; https://github.com/facebook/react-native/commit/df8d0d1db9203cc87ad3682e6138b2a9ed714365
28
 .*/node_modules/react-native/local-cli/link/link.js
28
 .*/node_modules/react-native/local-cli/link/link.js
29
-
30
 .*/node_modules/react-native-keep-awake/.*
29
 .*/node_modules/react-native-keep-awake/.*
31
 .*/node_modules/styled-components/.*
30
 .*/node_modules/styled-components/.*
32
 
31
 
36
 
35
 
37
 [libs]
36
 [libs]
38
 node_modules/react-native/Libraries/react-native/react-native-interface.js
37
 node_modules/react-native/Libraries/react-native/react-native-interface.js
39
-node_modules/react-native/flow
38
+node_modules/react-native/flow/
40
 
39
 
41
 [options]
40
 [options]
42
 emoji=true
41
 emoji=true
43
 
42
 
44
 module.system=haste
43
 module.system=haste
45
 
44
 
46
-; FIXME: munge_underscores should be false but right now there are some errors
47
-; if we change the value to false
48
-; Treats class properties with underscore as private. Disabled because currently
49
-; for us "_" can mean protected too.
50
-; munge_underscores=false
51
 munge_underscores=true
45
 munge_underscores=true
52
 
46
 
53
-; FIXME Remove once we update past this commit:
47
+; FIXME Remove once we update past commit
54
 ; https://github.com/facebook/react-native/commit/df8d0d1db9203cc87ad3682e6138b2a9ed714365
48
 ; https://github.com/facebook/react-native/commit/df8d0d1db9203cc87ad3682e6138b2a9ed714365
55
 module.name_mapper='^./link/link$' -> 'emptyObject'
49
 module.name_mapper='^./link/link$' -> 'emptyObject'
56
 
50
 
62
 suppress_type=$FlowFixMeState
56
 suppress_type=$FlowFixMeState
63
 suppress_type=$FixMe
57
 suppress_type=$FixMe
64
 
58
 
65
-suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(5[0-3]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\)
66
-suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(5[0-3]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native_oss[a-z,_]*\\)?)\\)?:? #[0-9]+
59
+suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(5[0-6]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)
60
+suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(5[0-6]\\|[1-4][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+
67
 suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
61
 suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
68
 suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
62
 suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
69
-suppress_comment=\\(.\\|\n\\)*\\$FlowDisableNextLine
70
 
63
 
71
 unsafe.enable_getters_and_setters=true
64
 unsafe.enable_getters_and_setters=true
72
 
65
 
83
 module.file_ext=.json
76
 module.file_ext=.json
84
 
77
 
85
 [version]
78
 [version]
86
-^0.53.0
79
+^0.56.0

+ 10
- 10
.gitignore View File

7
 .remote-sync.json
7
 .remote-sync.json
8
 .sync-config.cson
8
 .sync-config.cson
9
 
9
 
10
+# CocoaPods
11
+Pods/
12
+
10
 # The following are automatically generated by the react-native command line
13
 # The following are automatically generated by the react-native command line
11
 # utility (either with the init or upgrade option which pull in the latest
14
 # utility (either with the init or upgrade option which pull in the latest
12
 # template files recommended by Facebook for React Native).
15
 # template files recommended by Facebook for React Native).
57
 
60
 
58
 # fastlane
61
 # fastlane
59
 #
62
 #
60
-# It is recommended to not store the screenshots in the git repo. Instead, use
61
-# fastlane to re-generate the screenshots whenever they are needed. For more
62
-# information about the recommended setup visit:
63
-# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md
64
-#
65
-fastlane/report.xml
66
-fastlane/Preview.html
67
-fastlane/screenshots
63
+# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
64
+# screenshots whenever they are needed.
65
+# For more information about the recommended setup visit:
66
+# https://docs.fastlane.tools/best-practices/source-control/
68
 
67
 
69
-# CocoaPods
70
-Pods/
68
+*/fastlane/report.xml
69
+*/fastlane/Preview.html
70
+*/fastlane/screenshots

+ 4
- 0
android/app/proguard-rules.pro View File

50
 
50
 
51
 -dontwarn com.facebook.react.**
51
 -dontwarn com.facebook.react.**
52
 
52
 
53
+# TextLayoutBuilder uses a non-public Android constructor within StaticLayout.
54
+# See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details.
55
+-dontwarn android.text.StaticLayout
56
+
53
 # okhttp
57
 # okhttp
54
 
58
 
55
 -keepattributes Signature
59
 -keepattributes Signature

+ 6
- 6
android/keystores/BUCK View File

1
 keystore(
1
 keystore(
2
-  name = 'debug',
3
-  store = 'debug.keystore',
4
-  properties = 'debug.keystore.properties',
5
-  visibility = [
6
-    'PUBLIC',
7
-  ],
2
+    name = "debug",
3
+    properties = "debug.keystore.properties",
4
+    store = "debug.keystore",
5
+    visibility = [
6
+        "PUBLIC",
7
+    ],
8
 )
8
 )

+ 2858
- 1856
flow-typed/npm/lodash_v4.x.x.js
File diff suppressed because it is too large
View File


+ 33
- 15
flow-typed/npm/react-redux_v5.x.x.js View File

1
-// flow-typed signature: 4e93c65cedbfbf7f1ab3fe4e800943d3
2
-// flow-typed version: 9092387fd2/react-redux_v5.x.x/flow_>=v0.53.x <=v0.53.x
3
-
4
-// flow-typed signature: 8db7b853f57c51094bf0ab8b2650fd9c
5
-// flow-typed version: ab8db5f14d/react-redux_v5.x.x/flow_>=v0.30.x
1
+// flow-typed signature: 59b0c4be0e1408f21e2446be96c79804
2
+// flow-typed version: 9092387fd2/react-redux_v5.x.x/flow_>=v0.54.x
6
 
3
 
7
 import type { Dispatch, Store } from "redux";
4
 import type { Dispatch, Store } from "redux";
8
 
5
 
34
 
31
 
35
   declare type Context = { store: Store<*, *> };
32
   declare type Context = { store: Store<*, *> };
36
 
33
 
34
+  declare type ComponentWithDefaultProps<DP: {}, P: {}, CP: P> = Class<
35
+    React$Component<CP>
36
+  > & { defaultProps: DP };
37
+
38
+  declare class ConnectedComponentWithDefaultProps<
39
+    OP,
40
+    DP,
41
+    CP
42
+  > extends React$Component<OP> {
43
+    static defaultProps: DP, // <= workaround for https://github.com/facebook/flow/issues/4644
44
+    static WrappedComponent: Class<React$Component<CP>>,
45
+    getWrappedInstance(): React$Component<CP>,
46
+    props: OP,
47
+    state: void
48
+  }
49
+
37
   declare class ConnectedComponent<OP, P> extends React$Component<OP> {
50
   declare class ConnectedComponent<OP, P> extends React$Component<OP> {
38
     static WrappedComponent: Class<React$Component<P>>,
51
     static WrappedComponent: Class<React$Component<P>>,
39
     getWrappedInstance(): React$Component<P>,
52
     getWrappedInstance(): React$Component<P>,
41
     state: void
54
     state: void
42
   }
55
   }
43
 
56
 
57
+  declare type ConnectedComponentWithDefaultPropsClass<OP, DP, CP> = Class<
58
+    ConnectedComponentWithDefaultProps<OP, DP, CP>
59
+  >;
60
+
44
   declare type ConnectedComponentClass<OP, P> = Class<
61
   declare type ConnectedComponentClass<OP, P> = Class<
45
     ConnectedComponent<OP, P>
62
     ConnectedComponent<OP, P>
46
   >;
63
   >;
47
 
64
 
48
-  declare type Connector<OP, P> = (
49
-    component: React$ComponentType<P>
50
-  ) => ConnectedComponentClass<OP, P>;
65
+  declare type Connector<OP, P> = (<DP: {}, CP: {}>(
66
+    component: ComponentWithDefaultProps<DP, P, CP>
67
+  ) => ConnectedComponentWithDefaultPropsClass<OP, DP, CP>) &
68
+    ((component: React$ComponentType<P>) => ConnectedComponentClass<OP, P>);
51
 
69
 
52
   declare class Provider<S, A> extends React$Component<{
70
   declare class Provider<S, A> extends React$Component<{
53
     store: Store<S, A>,
71
     store: Store<S, A>,
77
     options: ConnectOptions
95
     options: ConnectOptions
78
   ): Connector<OP, $Supertype<{ dispatch: Dispatch<A> } & OP>>;
96
   ): Connector<OP, $Supertype<{ dispatch: Dispatch<A> } & OP>>;
79
 
97
 
80
-  declare function connect<S, A, OP, SP>(
81
-    mapStateToProps: MapStateToProps<S, OP, SP>,
82
-    mapDispatchToProps: Null,
83
-    mergeProps: Null,
84
-    options?: ConnectOptions
85
-  ): Connector<OP, $Supertype<SP & { dispatch: Dispatch<A> } & OP>>;
98
+//  declare function connect<S, A, OP, SP>(
99
+//    mapStateToProps: MapStateToProps<S, OP, SP>,
100
+//    mapDispatchToProps: Null,
101
+//    mergeProps: Null,
102
+//    options?: ConnectOptions
103
+//  ): Connector<OP, $Supertype<SP & { dispatch: Dispatch<A> } & OP>>;
86
 
104
 
87
   declare function connect<A, OP, DP>(
105
   declare function connect<A, OP, DP>(
88
     mapStateToProps: Null,
106
     mapStateToProps: Null,
93
 
111
 
94
   declare function connect<S, A, OP, SP, DP>(
112
   declare function connect<S, A, OP, SP, DP>(
95
     mapStateToProps: MapStateToProps<S, OP, SP>,
113
     mapStateToProps: MapStateToProps<S, OP, SP>,
96
-    mapDispatchToProps: MapDispatchToProps<A, OP, DP>,
114
+    mapDispatchToProps: MapDispatchToProps<A, OP, DP> | Null,
97
     mergeProps: Null,
115
     mergeProps: Null,
98
     options?: ConnectOptions
116
     options?: ConnectOptions
99
   ): Connector<OP, $Supertype<SP & DP & OP>>;
117
   ): Connector<OP, $Supertype<SP & DP & OP>>;

+ 4
- 54
flow-typed/npm/redux_v3.x.x.js View File

1
-// flow-typed signature: 33b83b6284653250e74578cf4dbe6124
2
-// flow-typed version: e282e4128f/redux_v3.x.x/flow_>=v0.33.x
1
+// flow-typed signature: ec7daead5cb4fec5ab25fedbedef29e8
2
+// flow-typed version: 2c04631d20/redux_v3.x.x/flow_>=v0.55.x
3
 
3
 
4
 declare module 'redux' {
4
 declare module 'redux' {
5
 
5
 
55
 
55
 
56
   declare export function combineReducers<O: Object, A>(reducers: O): CombinedReducer<$ObjMap<O, <S>(r: Reducer<S, any>) => S>, A>;
56
   declare export function combineReducers<O: Object, A>(reducers: O): CombinedReducer<$ObjMap<O, <S>(r: Reducer<S, any>) => S>, A>;
57
 
57
 
58
-  declare export function compose<A, B>(ab: (a: A) => B): (a: A) => B
59
-  declare export function compose<A, B, C>(
60
-    bc: (b: B) => C,
61
-    ab: (a: A) => B
62
-  ): (a: A) => C
63
-  declare export function compose<A, B, C, D>(
64
-    cd: (c: C) => D,
65
-    bc: (b: B) => C,
66
-    ab: (a: A) => B
67
-  ): (a: A) => D
68
-  declare export function compose<A, B, C, D, E>(
69
-    de: (d: D) => E,
70
-    cd: (c: C) => D,
71
-    bc: (b: B) => C,
72
-    ab: (a: A) => B
73
-  ): (a: A) => E
74
-  declare export function compose<A, B, C, D, E, F>(
75
-    ef: (e: E) => F,
76
-    de: (d: D) => E,
77
-    cd: (c: C) => D,
78
-    bc: (b: B) => C,
79
-    ab: (a: A) => B
80
-  ): (a: A) => F
81
-  declare export function compose<A, B, C, D, E, F, G>(
82
-    fg: (f: F) => G,
83
-    ef: (e: E) => F,
84
-    de: (d: D) => E,
85
-    cd: (c: C) => D,
86
-    bc: (b: B) => C,
87
-    ab: (a: A) => B
88
-  ): (a: A) => G
89
-  declare export function compose<A, B, C, D, E, F, G, H>(
90
-    gh: (g: G) => H,
91
-    fg: (f: F) => G,
92
-    ef: (e: E) => F,
93
-    de: (d: D) => E,
94
-    cd: (c: C) => D,
95
-    bc: (b: B) => C,
96
-    ab: (a: A) => B
97
-  ): (a: A) => H
98
-  declare export function compose<A, B, C, D, E, F, G, H, I>(
99
-    hi: (h: H) => I,
100
-    gh: (g: G) => H,
101
-    fg: (f: F) => G,
102
-    ef: (e: E) => F,
103
-    de: (d: D) => E,
104
-    cd: (c: C) => D,
105
-    bc: (b: B) => C,
106
-    ab: (a: A) => B
107
-  ): (a: A) => I
108
-
109
-}
58
+  declare export var compose: $Compose;
59
+}

+ 20
- 20
ios/Podfile.lock View File

1
 PODS:
1
 PODS:
2
-  - React (0.49.5):
3
-    - React/Core (= 0.49.5)
2
+  - React (0.50.4):
3
+    - React/Core (= 0.50.4)
4
   - react-native-background-timer (2.0.0):
4
   - react-native-background-timer (2.0.0):
5
     - React
5
     - React
6
   - react-native-fetch-blob (0.10.6):
6
   - react-native-fetch-blob (0.10.6):
8
   - react-native-keep-awake (2.0.6):
8
   - react-native-keep-awake (2.0.6):
9
     - React
9
     - React
10
   - react-native-webrtc (1.58.2)
10
   - react-native-webrtc (1.58.2)
11
-  - React/BatchedBridge (0.49.5):
11
+  - React/BatchedBridge (0.50.4):
12
     - React/Core
12
     - React/Core
13
     - React/cxxreact_legacy
13
     - React/cxxreact_legacy
14
-  - React/Core (0.49.5):
15
-    - yoga (= 0.49.5.React)
16
-  - React/cxxreact_legacy (0.49.5):
14
+  - React/Core (0.50.4):
15
+    - yoga (= 0.50.4.React)
16
+  - React/cxxreact_legacy (0.50.4):
17
     - React/jschelpers_legacy
17
     - React/jschelpers_legacy
18
-  - React/DevSupport (0.49.5):
18
+  - React/DevSupport (0.50.4):
19
     - React/Core
19
     - React/Core
20
     - React/RCTWebSocket
20
     - React/RCTWebSocket
21
-  - React/fishhook (0.49.5)
22
-  - React/jschelpers_legacy (0.49.5)
23
-  - React/RCTActionSheet (0.49.5):
21
+  - React/fishhook (0.50.4)
22
+  - React/jschelpers_legacy (0.50.4)
23
+  - React/RCTActionSheet (0.50.4):
24
     - React/Core
24
     - React/Core
25
-  - React/RCTAnimation (0.49.5):
25
+  - React/RCTAnimation (0.50.4):
26
     - React/Core
26
     - React/Core
27
-  - React/RCTBlob (0.49.5):
27
+  - React/RCTBlob (0.50.4):
28
     - React/Core
28
     - React/Core
29
-  - React/RCTImage (0.49.5):
29
+  - React/RCTImage (0.50.4):
30
     - React/Core
30
     - React/Core
31
     - React/RCTNetwork
31
     - React/RCTNetwork
32
-  - React/RCTLinkingIOS (0.49.5):
32
+  - React/RCTLinkingIOS (0.50.4):
33
     - React/Core
33
     - React/Core
34
-  - React/RCTNetwork (0.49.5):
34
+  - React/RCTNetwork (0.50.4):
35
     - React/Core
35
     - React/Core
36
-  - React/RCTText (0.49.5):
36
+  - React/RCTText (0.50.4):
37
     - React/Core
37
     - React/Core
38
-  - React/RCTWebSocket (0.49.5):
38
+  - React/RCTWebSocket (0.50.4):
39
     - React/Core
39
     - React/Core
40
     - React/fishhook
40
     - React/fishhook
41
     - React/RCTBlob
41
     - React/RCTBlob
42
   - RNVectorIcons (4.4.2):
42
   - RNVectorIcons (4.4.2):
43
     - React
43
     - React
44
-  - yoga (0.49.5.React)
44
+  - yoga (0.50.4.React)
45
 
45
 
46
 DEPENDENCIES:
46
 DEPENDENCIES:
47
   - react-native-background-timer (from `../node_modules/react-native-background-timer`)
47
   - react-native-background-timer (from `../node_modules/react-native-background-timer`)
78
     :path: ../node_modules/react-native/ReactCommon/yoga
78
     :path: ../node_modules/react-native/ReactCommon/yoga
79
 
79
 
80
 SPEC CHECKSUMS:
80
 SPEC CHECKSUMS:
81
-  React: 9d5a23842dcc75ffef540ee2d2ef0eee1904ee58
81
+  React: 6d7efef18e0241eb832cf4c085405169a15080ed
82
   react-native-background-timer: 10063c04bf85d7f8811dff8c74399f0aa715245f
82
   react-native-background-timer: 10063c04bf85d7f8811dff8c74399f0aa715245f
83
   react-native-fetch-blob: 2bef9be702de8726f4d7bf58d2345579aaaee60d
83
   react-native-fetch-blob: 2bef9be702de8726f4d7bf58d2345579aaaee60d
84
   react-native-keep-awake: bb4dbb6fd21a7879432f9538b0b7d71398fe9f81
84
   react-native-keep-awake: bb4dbb6fd21a7879432f9538b0b7d71398fe9f81
85
   react-native-webrtc: 6fd0b3aa890d7a9b9b4d01d30f958d17ae88a785
85
   react-native-webrtc: 6fd0b3aa890d7a9b9b4d01d30f958d17ae88a785
86
   RNVectorIcons: c1821d56c775cc5a3bca66c77dfc8cb4a90d27e2
86
   RNVectorIcons: c1821d56c775cc5a3bca66c77dfc8cb4a90d27e2
87
-  yoga: 596e987aa8aac0165abb235d2977982f090476a0
87
+  yoga: b9aebf996711e50fc31f5608c10aa108a5a0c29e
88
 
88
 
89
 PODFILE CHECKSUM: a7cb8c7365f8cf9a01ee4eb78325139933776faf
89
 PODFILE CHECKSUM: a7cb8c7365f8cf9a01ee4eb78325139933776faf
90
 
90
 

+ 45
- 48
modules/remotecontrol/Controller.js View File

108
      * @returns {Promise<boolean>} Resolve values - true(accept), false(deny),
108
      * @returns {Promise<boolean>} Resolve values - true(accept), false(deny),
109
      * null(the participant has left).
109
      * null(the participant has left).
110
      */
110
      */
111
-    requestPermissions(userId: string, eventCaptureArea: Object) {
111
+    requestPermissions(
112
+            userId: string,
113
+            eventCaptureArea: Object
114
+    ): Promise<boolean | null> {
112
         if (!this._enabled) {
115
         if (!this._enabled) {
113
             return Promise.reject(new Error('Remote control is disabled!'));
116
             return Promise.reject(new Error('Remote control is disabled!'));
114
         }
117
         }
163
                 JitsiConferenceEvents.USER_LEFT,
166
                 JitsiConferenceEvents.USER_LEFT,
164
                 onUserLeft);
167
                 onUserLeft);
165
             this._requestedParticipant = userId;
168
             this._requestedParticipant = userId;
166
-            this.sendRemoteControlEndpointMessage(userId, {
167
-                type: EVENTS.permissions,
168
-                action: PERMISSIONS_ACTIONS.request
169
-            }, e => {
170
-                clearRequest();
171
-                reject(e);
172
-            });
169
+            this.sendRemoteControlEndpointMessage(
170
+                userId,
171
+                {
172
+                    type: EVENTS.permissions,
173
+                    action: PERMISSIONS_ACTIONS.request
174
+                },
175
+                e => {
176
+                    clearRequest();
177
+                    reject(e);
178
+                });
173
         });
179
         });
174
     }
180
     }
175
 
181
 
179
      * @param {JitsiParticipant} participant - The participant that has sent the
185
      * @param {JitsiParticipant} participant - The participant that has sent the
180
      * reply.
186
      * reply.
181
      * @param {RemoteControlEvent} event - The remote control event.
187
      * @param {RemoteControlEvent} event - The remote control event.
182
-     * @returns {void}
188
+     * @returns {boolean|null}
183
      */
189
      */
184
     _handleReply(participant: Object, event: Object) {
190
     _handleReply(participant: Object, event: Object) {
185
         const userId = participant.getId();
191
         const userId = participant.getId();
257
      * @returns {void}
263
      * @returns {void}
258
      */
264
      */
259
     resume() {
265
     resume() {
260
-        if (!this._enabled || this._isCollectingEvents || !this._area) {
266
+        let area;
267
+
268
+        if (!this._enabled
269
+                || this._isCollectingEvents
270
+                || !(area = this._area)) {
261
             return;
271
             return;
262
         }
272
         }
263
         logger.log('Resuming remote control controller.');
273
         logger.log('Resuming remote control controller.');
264
         this._isCollectingEvents = true;
274
         this._isCollectingEvents = true;
265
         APP.keyboardshortcut.enable(false);
275
         APP.keyboardshortcut.enable(false);
266
 
276
 
267
-        // $FlowDisableNextLine: we are sure that this._area is not null.
268
-        this._area.mousemove(event => {
269
-            // $FlowDisableNextLine: we are sure that this._area is not null.
270
-            const position = this._area.position();
277
+        area.mousemove(event => {
278
+            const area = this._area; // eslint-disable-line no-shadow
271
 
279
 
272
-            this.sendRemoteControlEndpointMessage(this._controlledParticipant, {
273
-                type: EVENTS.mousemove,
280
+            if (!area) {
281
+                return;
282
+            }
274
 
283
 
275
-                // $FlowDisableNextLine: we are sure that this._area is not null
276
-                x: (event.pageX - position.left) / this._area.width(),
284
+            const position = area.position();
277
 
285
 
278
-                // $FlowDisableNextLine: we are sure that this._area is not null
279
-                y: (event.pageY - position.top) / this._area.height()
286
+            this.sendRemoteControlEndpointMessage(this._controlledParticipant, {
287
+                type: EVENTS.mousemove,
288
+                x: (event.pageX - position.left) / area.width(),
289
+                y: (event.pageY - position.top) / area.height()
280
             });
290
             });
281
         });
291
         });
282
 
292
 
283
-        // $FlowDisableNextLine: we are sure that this._area is not null.
284
-        this._area.mousedown(this._onMouseClickHandler.bind(this,
285
-            EVENTS.mousedown));
293
+        area.mousedown(this._onMouseClickHandler.bind(this, EVENTS.mousedown));
294
+        area.mouseup(this._onMouseClickHandler.bind(this, EVENTS.mouseup));
286
 
295
 
287
-        // $FlowDisableNextLine: we are sure that this._area is not null.
288
-        this._area.mouseup(this._onMouseClickHandler.bind(this,
289
-            EVENTS.mouseup));
290
-
291
-        // $FlowDisableNextLine: we are sure that this._area is not null.
292
-        this._area.dblclick(
296
+        area.dblclick(
293
             this._onMouseClickHandler.bind(this, EVENTS.mousedblclick));
297
             this._onMouseClickHandler.bind(this, EVENTS.mousedblclick));
294
 
298
 
295
-        // $FlowDisableNextLine: we are sure that this._area is not null.
296
-        this._area.contextmenu(() => false);
299
+        area.contextmenu(() => false);
297
 
300
 
298
-        // $FlowDisableNextLine: we are sure that this._area is not null.
299
-        this._area[0].onmousewheel = event => {
301
+        area[0].onmousewheel = event => {
300
             event.preventDefault();
302
             event.preventDefault();
301
             event.stopPropagation();
303
             event.stopPropagation();
302
             this.sendRemoteControlEndpointMessage(this._controlledParticipant, {
304
             this.sendRemoteControlEndpointMessage(this._controlledParticipant, {
307
 
309
 
308
             return false;
310
             return false;
309
         };
311
         };
312
+
310
         $(window).keydown(this._onKeyPessHandler.bind(this,
313
         $(window).keydown(this._onKeyPessHandler.bind(this,
311
             EVENTS.keydown));
314
             EVENTS.keydown));
312
         $(window).keyup(this._onKeyPessHandler.bind(this, EVENTS.keyup));
315
         $(window).keyup(this._onKeyPessHandler.bind(this, EVENTS.keyup));
376
         this._isCollectingEvents = false;
379
         this._isCollectingEvents = false;
377
         APP.keyboardshortcut.enable(true);
380
         APP.keyboardshortcut.enable(true);
378
 
381
 
379
-        // $FlowDisableNextLine: we are sure that this._area is not null.
380
-        this._area.off('mousemove');
382
+        const area = this._area;
381
 
383
 
382
-        // $FlowDisableNextLine: we are sure that this._area is not null.
383
-        this._area.off('mousedown');
384
+        if (area) {
385
+            area.off('contextmenu');
386
+            area.off('dblclick');
387
+            area.off('mousedown');
388
+            area.off('mousemove');
389
+            area.off('mouseup');
384
 
390
 
385
-        // $FlowDisableNextLine: we are sure that this._area is not null.
386
-        this._area.off('mouseup');
387
-
388
-        // $FlowDisableNextLine: we are sure that this._area is not null.
389
-        this._area.off('contextmenu');
390
-
391
-        // $FlowDisableNextLine: we are sure that this._area is not null.
392
-        this._area.off('dblclick');
391
+            area[0].onmousewheel = undefined;
392
+        }
393
 
393
 
394
         $(window).off('keydown');
394
         $(window).off('keydown');
395
         $(window).off('keyup');
395
         $(window).off('keyup');
396
-
397
-        // $FlowDisableNextLine: we are sure that this._area is not null.
398
-        this._area[0].onmousewheel = undefined;
399
     }
396
     }
400
 
397
 
401
     /**
398
     /**

+ 218
- 170
package-lock.json View File

2362
       "integrity": "sha1-dU/jiSboQkpOexWrbqYTne4FFPw="
2362
       "integrity": "sha1-dU/jiSboQkpOexWrbqYTne4FFPw="
2363
     },
2363
     },
2364
     "babel-plugin-react-transform": {
2364
     "babel-plugin-react-transform": {
2365
-      "version": "2.0.2",
2366
-      "resolved": "https://registry.npmjs.org/babel-plugin-react-transform/-/babel-plugin-react-transform-2.0.2.tgz",
2367
-      "integrity": "sha1-UVu/qZaJOYEULZCx+bFjXeKZUQk=",
2365
+      "version": "3.0.0",
2366
+      "resolved": "https://registry.npmjs.org/babel-plugin-react-transform/-/babel-plugin-react-transform-3.0.0.tgz",
2367
+      "integrity": "sha512-4vJGddwPiHAOgshzZdGwYy4zRjjIr5SMY7gkOaCyIASjgpcsyLTlZNuB5rHOFoaTvGlhfo8/g4pobXPyHqm/3w==",
2368
       "requires": {
2368
       "requires": {
2369
         "lodash": "4.17.4"
2369
         "lodash": "4.17.4"
2370
       }
2370
       }
2415
     "babel-plugin-syntax-dynamic-import": {
2415
     "babel-plugin-syntax-dynamic-import": {
2416
       "version": "6.18.0",
2416
       "version": "6.18.0",
2417
       "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
2417
       "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
2418
-      "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
2419
-      "dev": true
2418
+      "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo="
2420
     },
2419
     },
2421
     "babel-plugin-syntax-exponentiation-operator": {
2420
     "babel-plugin-syntax-exponentiation-operator": {
2422
       "version": "6.13.0",
2421
       "version": "6.13.0",
3048
       }
3047
       }
3049
     },
3048
     },
3050
     "babel-preset-react-native": {
3049
     "babel-preset-react-native": {
3051
-      "version": "2.1.0",
3052
-      "resolved": "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-2.1.0.tgz",
3053
-      "integrity": "sha1-kBPr2C2hyIECv1iIEP9Z4gnKK4o=",
3050
+      "version": "4.0.0",
3051
+      "resolved": "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-4.0.0.tgz",
3052
+      "integrity": "sha512-Wfbo6x244nUbBxjr7hQaNFdjj7FDYU+TVT7cFVPEdVPI68vhN52iLvamm+ErhNdHq6M4j1cMT6AJBYx7Wzdr0g==",
3054
       "requires": {
3053
       "requires": {
3055
         "babel-plugin-check-es2015-constants": "6.22.0",
3054
         "babel-plugin-check-es2015-constants": "6.22.0",
3056
-        "babel-plugin-react-transform": "2.0.2",
3055
+        "babel-plugin-react-transform": "3.0.0",
3057
         "babel-plugin-syntax-async-functions": "6.13.0",
3056
         "babel-plugin-syntax-async-functions": "6.13.0",
3058
         "babel-plugin-syntax-class-properties": "6.13.0",
3057
         "babel-plugin-syntax-class-properties": "6.13.0",
3058
+        "babel-plugin-syntax-dynamic-import": "6.18.0",
3059
         "babel-plugin-syntax-flow": "6.18.0",
3059
         "babel-plugin-syntax-flow": "6.18.0",
3060
         "babel-plugin-syntax-jsx": "6.18.0",
3060
         "babel-plugin-syntax-jsx": "6.18.0",
3061
         "babel-plugin-syntax-trailing-function-commas": "6.22.0",
3061
         "babel-plugin-syntax-trailing-function-commas": "6.22.0",
3080
         "babel-plugin-transform-react-jsx": "6.24.1",
3080
         "babel-plugin-transform-react-jsx": "6.24.1",
3081
         "babel-plugin-transform-react-jsx-source": "6.22.0",
3081
         "babel-plugin-transform-react-jsx-source": "6.22.0",
3082
         "babel-plugin-transform-regenerator": "6.26.0",
3082
         "babel-plugin-transform-regenerator": "6.26.0",
3083
+        "babel-template": "6.26.0",
3083
         "react-transform-hmr": "1.0.4"
3084
         "react-transform-hmr": "1.0.4"
3084
       }
3085
       }
3085
     },
3086
     },
3290
       }
3291
       }
3291
     },
3292
     },
3292
     "big-integer": {
3293
     "big-integer": {
3293
-      "version": "1.6.25",
3294
-      "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.25.tgz",
3295
-      "integrity": "sha1-HeRan1dUKsIBIcaC+NZCIgo06CM="
3294
+      "version": "1.6.26",
3295
+      "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.26.tgz",
3296
+      "integrity": "sha1-OvFnL6Ytry1eyvrPblqg0l4Cwcg="
3296
     },
3297
     },
3297
     "big.js": {
3298
     "big.js": {
3298
       "version": "3.2.0",
3299
       "version": "3.2.0",
3455
       "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz",
3456
       "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.1.1.tgz",
3456
       "integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=",
3457
       "integrity": "sha1-1g1dzCDLptx+HymbNdPh+V2vuuY=",
3457
       "requires": {
3458
       "requires": {
3458
-        "big-integer": "1.6.25"
3459
+        "big-integer": "1.6.26"
3459
       }
3460
       }
3460
     },
3461
     },
3461
     "brace-expansion": {
3462
     "brace-expansion": {
4559
         "run-queue": "1.0.3"
4560
         "run-queue": "1.0.3"
4560
       }
4561
       }
4561
     },
4562
     },
4563
+    "copy-paste": {
4564
+      "version": "1.3.0",
4565
+      "resolved": "https://registry.npmjs.org/copy-paste/-/copy-paste-1.3.0.tgz",
4566
+      "integrity": "sha1-p+bEocKP3t8rCB5yuX3y75X0ce0=",
4567
+      "requires": {
4568
+        "iconv-lite": "0.4.19",
4569
+        "sync-exec": "0.6.2"
4570
+      }
4571
+    },
4562
     "copy-props": {
4572
     "copy-props": {
4563
       "version": "1.6.0",
4573
       "version": "1.6.0",
4564
       "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-1.6.0.tgz",
4574
       "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-1.6.0.tgz",
5629
       "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
5639
       "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
5630
     },
5640
     },
5631
     "envinfo": {
5641
     "envinfo": {
5632
-      "version": "3.4.2",
5633
-      "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-3.4.2.tgz",
5634
-      "integrity": "sha512-yqKl+qfQ849zLua/aRGIs4TzNah6ypvdX6KPmK9LPP54Ea+Hqx2gFzSBmGhka8HvWcmCmffGIshG4INSh0ku6g==",
5642
+      "version": "3.10.0",
5643
+      "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-3.10.0.tgz",
5644
+      "integrity": "sha512-7m6zSyFfEb3lAjZI217G1XVSAkYeFJHk2EqAVeoncrt+WtHddW4nnft2qPg82Xu1aB/T8nC/DPvkGgUUahli4g==",
5635
       "requires": {
5645
       "requires": {
5646
+        "copy-paste": "1.3.0",
5647
+        "glob": "7.1.2",
5636
         "minimist": "1.2.0",
5648
         "minimist": "1.2.0",
5637
         "os-name": "2.0.1",
5649
         "os-name": "2.0.1",
5638
         "which": "1.3.0"
5650
         "which": "1.3.0"
5639
       },
5651
       },
5640
       "dependencies": {
5652
       "dependencies": {
5653
+        "glob": {
5654
+          "version": "7.1.2",
5655
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
5656
+          "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
5657
+          "requires": {
5658
+            "fs.realpath": "1.0.0",
5659
+            "inflight": "1.0.6",
5660
+            "inherits": "2.0.3",
5661
+            "minimatch": "3.0.4",
5662
+            "once": "1.4.0",
5663
+            "path-is-absolute": "1.0.1"
5664
+          }
5665
+        },
5666
+        "minimatch": {
5667
+          "version": "3.0.4",
5668
+          "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
5669
+          "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
5670
+          "requires": {
5671
+            "brace-expansion": "1.1.8"
5672
+          }
5673
+        },
5641
         "minimist": {
5674
         "minimist": {
5642
           "version": "1.2.0",
5675
           "version": "1.2.0",
5643
           "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
5676
           "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
6815
       "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I="
6848
       "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I="
6816
     },
6849
     },
6817
     "flow-bin": {
6850
     "flow-bin": {
6818
-      "version": "0.53.0",
6819
-      "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.53.0.tgz",
6820
-      "integrity": "sha1-94MOYJygKxLbQScRQhPMzHwHcbk=",
6851
+      "version": "0.56.0",
6852
+      "resolved": "https://registry.npmjs.org/flow-bin/-/flow-bin-0.56.0.tgz",
6853
+      "integrity": "sha1-zkMJIgOjRLqb9jwMq+ldlRRfbK0=",
6821
       "dev": true
6854
       "dev": true
6822
     },
6855
     },
6823
     "flush-write-stream": {
6856
     "flush-write-stream": {
7845
       "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz",
7878
       "resolved": "https://registry.npmjs.org/growl/-/growl-1.8.1.tgz",
7846
       "integrity": "sha1-Sy3sjZB+k9szZiTc7AGDUC+MlCg="
7879
       "integrity": "sha1-Sy3sjZB+k9szZiTc7AGDUC+MlCg="
7847
     },
7880
     },
7881
+    "growly": {
7882
+      "version": "1.3.0",
7883
+      "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz",
7884
+      "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE="
7885
+    },
7848
     "gulp": {
7886
     "gulp": {
7849
       "version": "github:gulpjs/gulp#4ed9a4a3275559c73a396eff7e1fde3824951ebb",
7887
       "version": "github:gulpjs/gulp#4ed9a4a3275559c73a396eff7e1fde3824951ebb",
7850
       "requires": {
7888
       "requires": {
10236
       }
10274
       }
10237
     },
10275
     },
10238
     "jest-docblock": {
10276
     "jest-docblock": {
10239
-      "version": "20.1.0-echo.1",
10240
-      "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-20.1.0-echo.1.tgz",
10241
-      "integrity": "sha512-zJPqHgxSlu5AYjyFLoXzwSqTZGeRAbtW9lTrWfjfDWyQCQjPlt9j9s7t3UBoDwUocM7qVNdlrcXPPtBkQR1dJw=="
10277
+      "version": "21.2.0",
10278
+      "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz",
10279
+      "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw=="
10242
     },
10280
     },
10243
     "jest-haste-map": {
10281
     "jest-haste-map": {
10244
-      "version": "20.1.0-echo.1",
10245
-      "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-20.1.0-echo.1.tgz",
10246
-      "integrity": "sha512-5hhKBYWNHIgVnGcOtzo0wsjHuMqZ+9RUmKou4py8yhjYmtbwVVVFcuvTBClwXt/NdrQ8JrbCvtHq5b4IWS7ieg==",
10282
+      "version": "21.2.0",
10283
+      "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz",
10284
+      "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==",
10247
       "requires": {
10285
       "requires": {
10248
         "fb-watchman": "2.0.0",
10286
         "fb-watchman": "2.0.0",
10249
         "graceful-fs": "4.1.11",
10287
         "graceful-fs": "4.1.11",
10250
-        "jest-docblock": "20.1.0-echo.1",
10288
+        "jest-docblock": "21.2.0",
10251
         "micromatch": "2.3.11",
10289
         "micromatch": "2.3.11",
10252
         "sane": "2.2.0",
10290
         "sane": "2.2.0",
10253
         "worker-farm": "1.5.1"
10291
         "worker-farm": "1.5.1"
10931
       }
10969
       }
10932
     },
10970
     },
10933
     "left-pad": {
10971
     "left-pad": {
10934
-      "version": "1.1.3",
10935
-      "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.1.3.tgz",
10936
-      "integrity": "sha1-YS9hwDPzqeCOk58crr7qQbbzGZo="
10972
+      "version": "1.2.0",
10973
+      "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.2.0.tgz",
10974
+      "integrity": "sha1-0wpzxrggHY99jnlWupYWCHpo4O4="
10937
     },
10975
     },
10938
     "less": {
10976
     "less": {
10939
       "version": "2.7.3",
10977
       "version": "2.7.3",
11112
       }
11150
       }
11113
     },
11151
     },
11114
     "lib-jitsi-meet": {
11152
     "lib-jitsi-meet": {
11115
-      "version": "github:jitsi/lib-jitsi-meet#b4adec279669a08213adb543ef46a11e0d840b92",
11153
+      "version": "github:jitsi/lib-jitsi-meet#81f57c024e137879d6c93bef62308971d0ec71b0",
11116
       "requires": {
11154
       "requires": {
11117
         "async": "0.9.0",
11155
         "async": "0.9.0",
11118
         "current-executing-script": "0.1.3",
11156
         "current-executing-script": "0.1.3",
12079
       "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
12117
       "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
12080
     },
12118
     },
12081
     "metro-bundler": {
12119
     "metro-bundler": {
12082
-      "version": "0.13.0",
12083
-      "resolved": "https://registry.npmjs.org/metro-bundler/-/metro-bundler-0.13.0.tgz",
12084
-      "integrity": "sha512-fJAUuQ2HOVfXJVmTlrjj/KFrkK6ww/EJNoNzfNB+7KravsQ5otf8s1IFkSoBYTfi1kM4AuiBlqrWvmn27zcScg==",
12120
+      "version": "0.20.3",
12121
+      "resolved": "https://registry.npmjs.org/metro-bundler/-/metro-bundler-0.20.3.tgz",
12122
+      "integrity": "sha512-rKhIXSUEYbBUB9Ues30GYlcotM/4hPTmriBJGdNW5D+zdlxQUgJuPEo2Woo7khNM7xRG5tN7IRnMkKlzx43/Nw==",
12085
       "requires": {
12123
       "requires": {
12086
         "absolute-path": "0.0.0",
12124
         "absolute-path": "0.0.0",
12087
-        "async": "2.5.0",
12125
+        "async": "2.6.0",
12088
         "babel-core": "6.26.0",
12126
         "babel-core": "6.26.0",
12089
         "babel-generator": "6.26.0",
12127
         "babel-generator": "6.26.0",
12090
         "babel-plugin-external-helpers": "6.22.0",
12128
         "babel-plugin-external-helpers": "6.22.0",
12091
         "babel-preset-es2015-node": "6.1.1",
12129
         "babel-preset-es2015-node": "6.1.1",
12092
         "babel-preset-fbjs": "2.1.4",
12130
         "babel-preset-fbjs": "2.1.4",
12093
-        "babel-preset-react-native": "2.1.0",
12131
+        "babel-preset-react-native": "4.0.0",
12094
         "babel-register": "6.26.0",
12132
         "babel-register": "6.26.0",
12095
         "babylon": "6.18.0",
12133
         "babylon": "6.18.0",
12096
         "chalk": "1.1.3",
12134
         "chalk": "1.1.3",
12098
         "core-js": "2.5.1",
12136
         "core-js": "2.5.1",
12099
         "debug": "2.6.9",
12137
         "debug": "2.6.9",
12100
         "denodeify": "1.2.1",
12138
         "denodeify": "1.2.1",
12101
-        "fbjs": "0.8.14",
12139
+        "fbjs": "0.8.16",
12102
         "graceful-fs": "4.1.11",
12140
         "graceful-fs": "4.1.11",
12103
         "image-size": "0.6.1",
12141
         "image-size": "0.6.1",
12104
-        "jest-docblock": "20.1.0-echo.1",
12105
-        "jest-haste-map": "20.1.0-echo.1",
12142
+        "jest-docblock": "21.2.0",
12143
+        "jest-haste-map": "21.2.0",
12106
         "json-stable-stringify": "1.0.1",
12144
         "json-stable-stringify": "1.0.1",
12107
         "json5": "0.4.0",
12145
         "json5": "0.4.0",
12108
-        "left-pad": "1.1.3",
12146
+        "left-pad": "1.2.0",
12109
         "lodash": "4.17.4",
12147
         "lodash": "4.17.4",
12110
         "merge-stream": "1.0.1",
12148
         "merge-stream": "1.0.1",
12111
         "mime-types": "2.1.11",
12149
         "mime-types": "2.1.11",
12115
         "source-map": "0.5.7",
12153
         "source-map": "0.5.7",
12116
         "temp": "0.8.3",
12154
         "temp": "0.8.3",
12117
         "throat": "4.1.0",
12155
         "throat": "4.1.0",
12118
-        "uglify-js": "2.7.5",
12156
+        "uglify-es": "3.2.0",
12157
+        "wordwrap": "1.0.0",
12119
         "write-file-atomic": "1.3.4",
12158
         "write-file-atomic": "1.3.4",
12120
         "xpipe": "1.0.5"
12159
         "xpipe": "1.0.5"
12121
       },
12160
       },
12122
       "dependencies": {
12161
       "dependencies": {
12123
         "async": {
12162
         "async": {
12124
-          "version": "2.5.0",
12125
-          "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
12126
-          "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==",
12163
+          "version": "2.6.0",
12164
+          "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
12165
+          "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==",
12127
           "requires": {
12166
           "requires": {
12128
             "lodash": "4.17.4"
12167
             "lodash": "4.17.4"
12129
           }
12168
           }
12130
         },
12169
         },
12131
-        "camelcase": {
12132
-          "version": "1.2.1",
12133
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
12134
-          "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
12135
-        },
12136
         "chalk": {
12170
         "chalk": {
12137
           "version": "1.1.3",
12171
           "version": "1.1.3",
12138
           "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
12172
           "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
12145
             "supports-color": "2.0.0"
12179
             "supports-color": "2.0.0"
12146
           }
12180
           }
12147
         },
12181
         },
12148
-        "cliui": {
12149
-          "version": "2.1.0",
12150
-          "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
12151
-          "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
12152
-          "requires": {
12153
-            "center-align": "0.1.3",
12154
-            "right-align": "0.1.3",
12155
-            "wordwrap": "0.0.2"
12156
-          }
12157
-        },
12158
-        "fbjs": {
12159
-          "version": "0.8.14",
12160
-          "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz",
12161
-          "integrity": "sha1-0dviviVMNakeCfMfnNUKQLKg7Rw=",
12162
-          "requires": {
12163
-            "core-js": "1.2.7",
12164
-            "isomorphic-fetch": "2.2.1",
12165
-            "loose-envify": "1.3.1",
12166
-            "object-assign": "4.1.1",
12167
-            "promise": "7.3.1",
12168
-            "setimmediate": "1.0.5",
12169
-            "ua-parser-js": "0.7.17"
12170
-          },
12171
-          "dependencies": {
12172
-            "core-js": {
12173
-              "version": "1.2.7",
12174
-              "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
12175
-              "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
12176
-            }
12177
-          }
12182
+        "commander": {
12183
+          "version": "2.12.2",
12184
+          "resolved": "https://registry.npmjs.org/commander/-/commander-2.12.2.tgz",
12185
+          "integrity": "sha512-BFnaq5ZOGcDN7FlrtBT4xxkgIToalIIxwjxLWVJ8bGTpe1LroqMiqQXdA7ygc7CRvaYS+9zfPGFnJqFSayx+AA=="
12178
         },
12186
         },
12179
         "image-size": {
12187
         "image-size": {
12180
           "version": "0.6.1",
12188
           "version": "0.6.1",
12207
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
12215
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
12208
           "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
12216
           "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
12209
         },
12217
         },
12210
-        "uglify-js": {
12211
-          "version": "2.7.5",
12212
-          "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz",
12213
-          "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=",
12218
+        "uglify-es": {
12219
+          "version": "3.2.0",
12220
+          "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.2.0.tgz",
12221
+          "integrity": "sha512-eD4rjK4o6rzrvE1SMZJLQFEVMnWRUyIu6phJ0BXk5TIthMmP5B4QP0HI8o3bkQB5wf1N4WHA0leZAQyQBAd+Jg==",
12214
           "requires": {
12222
           "requires": {
12215
-            "async": "0.2.10",
12216
-            "source-map": "0.5.7",
12217
-            "uglify-to-browserify": "1.0.2",
12218
-            "yargs": "3.10.0"
12223
+            "commander": "2.12.2",
12224
+            "source-map": "0.6.1"
12219
           },
12225
           },
12220
           "dependencies": {
12226
           "dependencies": {
12221
-            "async": {
12222
-              "version": "0.2.10",
12223
-              "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
12224
-              "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E="
12227
+            "source-map": {
12228
+              "version": "0.6.1",
12229
+              "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
12230
+              "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
12225
             }
12231
             }
12226
           }
12232
           }
12227
-        },
12228
-        "window-size": {
12229
-          "version": "0.1.0",
12230
-          "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
12231
-          "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
12232
-        },
12233
-        "wordwrap": {
12234
-          "version": "0.0.2",
12235
-          "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
12236
-          "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
12237
-        },
12238
-        "yargs": {
12239
-          "version": "3.10.0",
12240
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
12241
-          "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
12242
-          "requires": {
12243
-            "camelcase": "1.2.1",
12244
-            "cliui": "2.1.0",
12245
-            "decamelize": "1.2.0",
12246
-            "window-size": "0.1.0"
12247
-          }
12248
         }
12233
         }
12249
       }
12234
       }
12250
     },
12235
     },
12741
         }
12726
         }
12742
       }
12727
       }
12743
     },
12728
     },
12729
+    "node-notifier": {
12730
+      "version": "5.1.2",
12731
+      "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.1.2.tgz",
12732
+      "integrity": "sha1-L6nhJgX6EACdRFSdb82KY93g5P8=",
12733
+      "requires": {
12734
+        "growly": "1.3.0",
12735
+        "semver": "5.4.1",
12736
+        "shellwords": "0.1.1",
12737
+        "which": "1.3.0"
12738
+      }
12739
+    },
12744
     "node-pre-gyp": {
12740
     "node-pre-gyp": {
12745
       "version": "0.6.36",
12741
       "version": "0.6.36",
12746
       "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz",
12742
       "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz",
14525
           "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c="
14521
           "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c="
14526
         },
14522
         },
14527
         "ultron": {
14523
         "ultron": {
14528
-          "version": "1.1.0",
14529
-          "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.0.tgz",
14530
-          "integrity": "sha1-sHoualQagV/Go0zNRTO67DB8qGQ="
14524
+          "version": "1.1.1",
14525
+          "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz",
14526
+          "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og=="
14531
         },
14527
         },
14532
         "ws": {
14528
         "ws": {
14533
           "version": "2.3.1",
14529
           "version": "2.3.1",
14535
           "integrity": "sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=",
14531
           "integrity": "sha1-a5Sz5EfLajY/eF6vlK9jWejoHIA=",
14536
           "requires": {
14532
           "requires": {
14537
             "safe-buffer": "5.0.1",
14533
             "safe-buffer": "5.0.1",
14538
-            "ultron": "1.1.0"
14534
+            "ultron": "1.1.1"
14539
           }
14535
           }
14540
         }
14536
         }
14541
       }
14537
       }
14560
       }
14556
       }
14561
     },
14557
     },
14562
     "react-native": {
14558
     "react-native": {
14563
-      "version": "0.49.5",
14564
-      "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.49.5.tgz",
14565
-      "integrity": "sha1-ifD+k6jaTbJnDEvQ2BExov9hfyc=",
14559
+      "version": "0.50.4",
14560
+      "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.50.4.tgz",
14561
+      "integrity": "sha1-GU9dpJOQh7Os7nEqUDR19JQtyn4=",
14566
       "requires": {
14562
       "requires": {
14567
         "absolute-path": "0.0.0",
14563
         "absolute-path": "0.0.0",
14568
         "art": "0.10.1",
14564
         "art": "0.10.1",
14581
         "create-react-class": "15.6.2",
14577
         "create-react-class": "15.6.2",
14582
         "debug": "2.6.9",
14578
         "debug": "2.6.9",
14583
         "denodeify": "1.2.1",
14579
         "denodeify": "1.2.1",
14584
-        "envinfo": "3.4.2",
14580
+        "envinfo": "3.10.0",
14585
         "event-target-shim": "1.1.1",
14581
         "event-target-shim": "1.1.1",
14586
-        "fbjs": "0.8.14",
14582
+        "fbjs": "0.8.16",
14587
         "fbjs-scripts": "0.8.1",
14583
         "fbjs-scripts": "0.8.1",
14588
         "fs-extra": "1.0.0",
14584
         "fs-extra": "1.0.0",
14589
         "glob": "7.1.2",
14585
         "glob": "7.1.2",
14590
         "graceful-fs": "4.1.11",
14586
         "graceful-fs": "4.1.11",
14591
         "inquirer": "3.3.0",
14587
         "inquirer": "3.3.0",
14592
         "lodash": "4.17.4",
14588
         "lodash": "4.17.4",
14593
-        "metro-bundler": "0.13.0",
14589
+        "metro-bundler": "0.20.3",
14594
         "mime": "1.4.1",
14590
         "mime": "1.4.1",
14595
         "minimist": "1.2.0",
14591
         "minimist": "1.2.0",
14596
         "mkdirp": "0.5.1",
14592
         "mkdirp": "0.5.1",
14597
         "node-fetch": "1.7.3",
14593
         "node-fetch": "1.7.3",
14594
+        "node-notifier": "5.1.2",
14598
         "npmlog": "2.0.4",
14595
         "npmlog": "2.0.4",
14599
         "opn": "3.0.3",
14596
         "opn": "3.0.3",
14600
         "optimist": "0.6.1",
14597
         "optimist": "0.6.1",
14614
         "ws": "1.1.4",
14611
         "ws": "1.1.4",
14615
         "xcode": "0.9.3",
14612
         "xcode": "0.9.3",
14616
         "xmldoc": "0.4.0",
14613
         "xmldoc": "0.4.0",
14617
-        "yargs": "6.6.0"
14614
+        "yargs": "9.0.1"
14618
       },
14615
       },
14619
       "dependencies": {
14616
       "dependencies": {
14620
         "accepts": {
14617
         "accepts": {
14674
           "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q="
14671
           "integrity": "sha1-rJPEEOL/ycx89LRks4KJBn9eR7Q="
14675
         },
14672
         },
14676
         "camelcase": {
14673
         "camelcase": {
14677
-          "version": "3.0.0",
14678
-          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
14679
-          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
14674
+          "version": "4.1.0",
14675
+          "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
14676
+          "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0="
14680
         },
14677
         },
14681
         "chalk": {
14678
         "chalk": {
14682
           "version": "1.1.3",
14679
           "version": "1.1.3",
14743
           "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz",
14740
           "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz",
14744
           "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU="
14741
           "integrity": "sha1-5zSlwUF/zkctWu+Cw4HKu2TRpDU="
14745
         },
14742
         },
14746
-        "core-js": {
14747
-          "version": "1.2.7",
14748
-          "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
14749
-          "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
14750
-        },
14751
         "depd": {
14743
         "depd": {
14752
           "version": "1.0.1",
14744
           "version": "1.0.1",
14753
           "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz",
14745
           "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz",
14763
           "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz",
14755
           "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz",
14764
           "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg="
14756
           "integrity": "sha1-A9MLX2fdbmMtKUXTDWZScxo01dg="
14765
         },
14757
         },
14766
-        "fbjs": {
14767
-          "version": "0.8.14",
14768
-          "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.14.tgz",
14769
-          "integrity": "sha1-0dviviVMNakeCfMfnNUKQLKg7Rw=",
14770
-          "requires": {
14771
-            "core-js": "1.2.7",
14772
-            "isomorphic-fetch": "2.2.1",
14773
-            "loose-envify": "1.3.1",
14774
-            "object-assign": "4.1.1",
14775
-            "promise": "7.3.1",
14776
-            "setimmediate": "1.0.5",
14777
-            "ua-parser-js": "0.7.17"
14778
-          }
14779
-        },
14780
         "finalhandler": {
14758
         "finalhandler": {
14781
           "version": "0.4.0",
14759
           "version": "0.4.0",
14782
           "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz",
14760
           "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz",
14798
             }
14776
             }
14799
           }
14777
           }
14800
         },
14778
         },
14779
+        "find-up": {
14780
+          "version": "2.1.0",
14781
+          "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
14782
+          "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
14783
+          "requires": {
14784
+            "locate-path": "2.0.0"
14785
+          }
14786
+        },
14801
         "fresh": {
14787
         "fresh": {
14802
           "version": "0.3.0",
14788
           "version": "0.3.0",
14803
           "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz",
14789
           "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz",
14852
           "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz",
14838
           "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.11.tgz",
14853
           "integrity": "sha1-LstC/SlHRJIiCaLnxATayHk9it4="
14839
           "integrity": "sha1-LstC/SlHRJIiCaLnxATayHk9it4="
14854
         },
14840
         },
14855
-        "is-fullwidth-code-point": {
14856
-          "version": "1.0.0",
14857
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
14858
-          "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
14841
+        "load-json-file": {
14842
+          "version": "2.0.0",
14843
+          "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
14844
+          "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
14859
           "requires": {
14845
           "requires": {
14860
-            "number-is-nan": "1.0.1"
14846
+            "graceful-fs": "4.1.11",
14847
+            "parse-json": "2.2.0",
14848
+            "pify": "2.3.0",
14849
+            "strip-bom": "3.0.0"
14861
           }
14850
           }
14862
         },
14851
         },
14863
         "minimatch": {
14852
         "minimatch": {
14893
             "gauge": "1.2.7"
14882
             "gauge": "1.2.7"
14894
           }
14883
           }
14895
         },
14884
         },
14885
+        "os-locale": {
14886
+          "version": "2.1.0",
14887
+          "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
14888
+          "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
14889
+          "requires": {
14890
+            "execa": "0.7.0",
14891
+            "lcid": "1.0.0",
14892
+            "mem": "1.1.0"
14893
+          }
14894
+        },
14895
+        "path-type": {
14896
+          "version": "2.0.0",
14897
+          "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
14898
+          "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
14899
+          "requires": {
14900
+            "pify": "2.3.0"
14901
+          }
14902
+        },
14896
         "qs": {
14903
         "qs": {
14897
           "version": "4.0.0",
14904
           "version": "4.0.0",
14898
           "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz",
14905
           "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz",
14925
             }
14932
             }
14926
           }
14933
           }
14927
         },
14934
         },
14935
+        "read-pkg": {
14936
+          "version": "2.0.0",
14937
+          "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
14938
+          "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
14939
+          "requires": {
14940
+            "load-json-file": "2.0.0",
14941
+            "normalize-package-data": "2.4.0",
14942
+            "path-type": "2.0.0"
14943
+          }
14944
+        },
14945
+        "read-pkg-up": {
14946
+          "version": "2.0.0",
14947
+          "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
14948
+          "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
14949
+          "requires": {
14950
+            "find-up": "2.1.0",
14951
+            "read-pkg": "2.0.0"
14952
+          }
14953
+        },
14928
         "regenerator-runtime": {
14954
         "regenerator-runtime": {
14929
           "version": "0.9.6",
14955
           "version": "0.9.6",
14930
           "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz",
14956
           "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz",
15025
             }
15051
             }
15026
           }
15052
           }
15027
         },
15053
         },
15028
-        "string-width": {
15029
-          "version": "1.0.2",
15030
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
15031
-          "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
15032
-          "requires": {
15033
-            "code-point-at": "1.1.0",
15034
-            "is-fullwidth-code-point": "1.0.0",
15035
-            "strip-ansi": "3.0.1"
15036
-          }
15037
-        },
15038
         "strip-ansi": {
15054
         "strip-ansi": {
15039
           "version": "3.0.1",
15055
           "version": "3.0.1",
15040
           "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
15056
           "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
15043
             "ansi-regex": "2.1.1"
15059
             "ansi-regex": "2.1.1"
15044
           }
15060
           }
15045
         },
15061
         },
15062
+        "strip-bom": {
15063
+          "version": "3.0.0",
15064
+          "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
15065
+          "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM="
15066
+        },
15046
         "supports-color": {
15067
         "supports-color": {
15047
           "version": "2.0.0",
15068
           "version": "2.0.0",
15048
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
15069
           "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
15067
           "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz",
15088
           "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-1.1.1.tgz",
15068
           "integrity": "sha1-rDydOfMgxtzlM5lp0FTvQ90zMxk="
15089
           "integrity": "sha1-rDydOfMgxtzlM5lp0FTvQ90zMxk="
15069
         },
15090
         },
15091
+        "which-module": {
15092
+          "version": "2.0.0",
15093
+          "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
15094
+          "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
15095
+        },
15070
         "yargs": {
15096
         "yargs": {
15071
-          "version": "6.6.0",
15072
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
15073
-          "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
15097
+          "version": "9.0.1",
15098
+          "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz",
15099
+          "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=",
15074
           "requires": {
15100
           "requires": {
15075
-            "camelcase": "3.0.0",
15101
+            "camelcase": "4.1.0",
15076
             "cliui": "3.2.0",
15102
             "cliui": "3.2.0",
15077
             "decamelize": "1.2.0",
15103
             "decamelize": "1.2.0",
15078
             "get-caller-file": "1.0.2",
15104
             "get-caller-file": "1.0.2",
15079
-            "os-locale": "1.4.0",
15080
-            "read-pkg-up": "1.0.1",
15105
+            "os-locale": "2.1.0",
15106
+            "read-pkg-up": "2.0.0",
15081
             "require-directory": "2.1.1",
15107
             "require-directory": "2.1.1",
15082
             "require-main-filename": "1.0.1",
15108
             "require-main-filename": "1.0.1",
15083
             "set-blocking": "2.0.0",
15109
             "set-blocking": "2.0.0",
15084
-            "string-width": "1.0.2",
15085
-            "which-module": "1.0.0",
15110
+            "string-width": "2.1.1",
15111
+            "which-module": "2.0.0",
15086
             "y18n": "3.2.1",
15112
             "y18n": "3.2.1",
15087
-            "yargs-parser": "4.2.1"
15113
+            "yargs-parser": "7.0.0"
15114
+          }
15115
+        },
15116
+        "yargs-parser": {
15117
+          "version": "7.0.0",
15118
+          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
15119
+          "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
15120
+          "requires": {
15121
+            "camelcase": "4.1.0"
15088
           }
15122
           }
15089
         }
15123
         }
15090
       }
15124
       }
16307
       "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.0.tgz",
16341
       "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.0.tgz",
16308
       "integrity": "sha1-zh7YN7Sw5Vtew9q4QlGrnb3Ax+w="
16342
       "integrity": "sha1-zh7YN7Sw5Vtew9q4QlGrnb3Ax+w="
16309
     },
16343
     },
16344
+    "shellwords": {
16345
+      "version": "0.1.1",
16346
+      "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz",
16347
+      "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww=="
16348
+    },
16310
     "sigmund": {
16349
     "sigmund": {
16311
       "version": "1.0.1",
16350
       "version": "1.0.1",
16312
       "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
16351
       "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
17105
       "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz",
17144
       "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz",
17106
       "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0="
17145
       "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0="
17107
     },
17146
     },
17147
+    "sync-exec": {
17148
+      "version": "0.6.2",
17149
+      "resolved": "https://registry.npmjs.org/sync-exec/-/sync-exec-0.6.2.tgz",
17150
+      "integrity": "sha1-cX0izFPwzh3vVZQ2LzqJouu5EQU=",
17151
+      "optional": true
17152
+    },
17108
     "table": {
17153
     "table": {
17109
       "version": "4.0.2",
17154
       "version": "4.0.2",
17110
       "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
17155
       "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz",
18868
     "which-module": {
18913
     "which-module": {
18869
       "version": "1.0.0",
18914
       "version": "1.0.0",
18870
       "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
18915
       "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
18871
-      "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
18916
+      "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
18917
+      "dev": true
18872
     },
18918
     },
18873
     "wide-align": {
18919
     "wide-align": {
18874
       "version": "1.1.2",
18920
       "version": "1.1.2",
19183
       "version": "4.2.1",
19229
       "version": "4.2.1",
19184
       "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
19230
       "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
19185
       "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
19231
       "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
19232
+      "dev": true,
19186
       "requires": {
19233
       "requires": {
19187
         "camelcase": "3.0.0"
19234
         "camelcase": "3.0.0"
19188
       },
19235
       },
19190
         "camelcase": {
19237
         "camelcase": {
19191
           "version": "3.0.0",
19238
           "version": "3.0.0",
19192
           "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
19239
           "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
19193
-          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
19240
+          "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
19241
+          "dev": true
19194
         }
19242
         }
19195
       }
19243
       }
19196
     },
19244
     },

+ 3
- 3
package.json View File

46
     "js-md5": "0.6.1",
46
     "js-md5": "0.6.1",
47
     "jssha": "2.2.0",
47
     "jssha": "2.2.0",
48
     "jwt-decode": "2.2.0",
48
     "jwt-decode": "2.2.0",
49
-    "lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#b4adec279669a08213adb543ef46a11e0d840b92",
49
+    "lib-jitsi-meet": "github:jitsi/lib-jitsi-meet#81f57c024e137879d6c93bef62308971d0ec71b0",
50
     "lodash": "4.17.4",
50
     "lodash": "4.17.4",
51
     "nuclear-js": "1.4.0",
51
     "nuclear-js": "1.4.0",
52
     "postis": "2.2.0",
52
     "postis": "2.2.0",
54
     "react": "16.0.0",
54
     "react": "16.0.0",
55
     "react-dom": "16.0.0",
55
     "react-dom": "16.0.0",
56
     "react-i18next": "4.8.0",
56
     "react-i18next": "4.8.0",
57
-    "react-native": "0.49.5",
57
+    "react-native": "0.50.4",
58
     "react-native-background-timer": "2.0.0",
58
     "react-native-background-timer": "2.0.0",
59
     "react-native-callstats": "3.26.2",
59
     "react-native-callstats": "3.26.2",
60
     "react-native-fetch-blob": "0.10.8",
60
     "react-native-fetch-blob": "0.10.8",
92
     "eslint-plugin-react-native": "3.2.0",
92
     "eslint-plugin-react-native": "3.2.0",
93
     "expose-loader": "0.7.4",
93
     "expose-loader": "0.7.4",
94
     "file-loader": "1.1.5",
94
     "file-loader": "1.1.5",
95
-    "flow-bin": "0.53.0",
95
+    "flow-bin": "0.56.0",
96
     "imports-loader": "0.7.1",
96
     "imports-loader": "0.7.1",
97
     "node-sass": "3.13.1",
97
     "node-sass": "3.13.1",
98
     "precommit-hook": "3.0.0",
98
     "precommit-hook": "3.0.0",

+ 3
- 2
react/features/app/actions.js View File

36
  * property, it may have a value equal to {@code undefined} and that may be
36
  * property, it may have a value equal to {@code undefined} and that may be
37
  * acceptable.
37
  * acceptable.
38
  * @private
38
  * @private
39
- * @returns {void}
39
+ * @returns {Promise<void>}
40
  */
40
  */
41
 function _appNavigateToMandatoryLocation(
41
 function _appNavigateToMandatoryLocation(
42
         dispatch: Dispatch<*>, getState: Function,
42
         dispatch: Dispatch<*>, getState: Function,
43
-        newLocation: Object) {
43
+        newLocation: Object
44
+): Promise<void> {
44
     const { room } = newLocation;
45
     const { room } = newLocation;
45
 
46
 
46
     return (
47
     return (

+ 1
- 1
react/features/base/conference/actions.js View File

439
         conference: Object,
439
         conference: Object,
440
         method: Function,
440
         method: Function,
441
         password: string) {
441
         password: string) {
442
-    return (dispatch: Dispatch<*>, getState: Function) => {
442
+    return (dispatch: Dispatch<*>, getState: Function): ?Promise<void> => {
443
         switch (method) {
443
         switch (method) {
444
         case conference.join: {
444
         case conference.join: {
445
             let state = getState()['features/base/conference'];
445
             let state = getState()['features/base/conference'];

+ 1
- 1
react/features/base/connection/actions.native.js View File

259
  * @returns {Function}
259
  * @returns {Function}
260
  */
260
  */
261
 export function disconnect() {
261
 export function disconnect() {
262
-    return (dispatch: Dispatch<*>, getState: Function) => {
262
+    return (dispatch: Dispatch<*>, getState: Function): Promise<void> => {
263
         const state = getState();
263
         const state = getState();
264
         const { conference, joining } = state['features/base/conference'];
264
         const { conference, joining } = state['features/base/conference'];
265
 
265
 

+ 1
- 1
react/features/base/lib-jitsi-meet/actions.js View File

37
  * @returns {Function}
37
  * @returns {Function}
38
  */
38
  */
39
 export function initLib() {
39
 export function initLib() {
40
-    return (dispatch: Dispatch<*>, getState: Function) => {
40
+    return (dispatch: Dispatch<*>, getState: Function): Promise<void> => {
41
         const config = getState()['features/base/config'];
41
         const config = getState()['features/base/config'];
42
 
42
 
43
         if (!config) {
43
         if (!config) {

+ 1
- 1
react/features/base/lib-jitsi-meet/functions.js View File

109
  * @param {string} url - The URL to load.
109
  * @param {string} url - The URL to load.
110
  * @returns {Promise<Object>}
110
  * @returns {Promise<Object>}
111
  */
111
  */
112
-export function loadConfig(url: string) {
112
+export function loadConfig(url: string): Promise<Object> {
113
     let promise;
113
     let promise;
114
 
114
 
115
     if (typeof APP === 'undefined') {
115
     if (typeof APP === 'undefined') {

+ 1
- 1
react/features/base/util/loadScript.web.js View File

9
  * @returns {Promise} Resolved with no arguments when the script is loaded and
9
  * @returns {Promise} Resolved with no arguments when the script is loaded and
10
  * rejected with the error from JitsiMeetJS.ScriptUtil.loadScript method.
10
  * rejected with the error from JitsiMeetJS.ScriptUtil.loadScript method.
11
  */
11
  */
12
-export function loadScript(url: string) {
12
+export function loadScript(url: string): Promise<void> {
13
     return new Promise((resolve, reject) =>
13
     return new Promise((resolve, reject) =>
14
         JitsiMeetJS.util.ScriptUtil.loadScript(
14
         JitsiMeetJS.util.ScriptUtil.loadScript(
15
             url,
15
             url,

+ 6
- 1
react/features/feedback/actions.js View File

41
  * submitted. Rejected if another dialog is already displayed.
41
  * submitted. Rejected if another dialog is already displayed.
42
  */
42
  */
43
 export function maybeOpenFeedbackDialog(conference: Object) {
43
 export function maybeOpenFeedbackDialog(conference: Object) {
44
-    return (dispatch: Dispatch<*>, getState: Function) => {
44
+    type R = {
45
+        feedbackSubmitted: boolean,
46
+        thankYouDialogVisible: boolean
47
+    };
48
+
49
+    return (dispatch: Dispatch<*>, getState: Function): Promise<R> => {
45
         const state = getState();
50
         const state = getState();
46
 
51
 
47
         if (interfaceConfig.filmStripOnly || config.iAmRecorder) {
52
         if (interfaceConfig.filmStripOnly || config.iAmRecorder) {

+ 3
- 2
react/features/invite/functions.js View File

30
         inviteServiceUrl: string,
30
         inviteServiceUrl: string,
31
         inviteUrl: string,
31
         inviteUrl: string,
32
         jwt: string,
32
         jwt: string,
33
-        inviteItems: Object) {
33
+        inviteItems: Object): Promise<void> {
34
     if (!inviteItems || inviteItems.length === 0) {
34
     if (!inviteItems || inviteItems.length === 0) {
35
         return Promise.resolve();
35
         return Promise.resolve();
36
     }
36
     }
74
         serviceUrl: string,
74
         serviceUrl: string,
75
         jwt: string,
75
         jwt: string,
76
         text: string,
76
         text: string,
77
-        queryTypes: Array<string> = [ 'conferenceRooms', 'user', 'room' ]) {
77
+        queryTypes: Array<string> = [ 'conferenceRooms', 'user', 'room' ]
78
+): Promise<void> {
78
     const queryTypesString = JSON.stringify(queryTypes);
79
     const queryTypesString = JSON.stringify(queryTypes);
79
 
80
 
80
     return new Promise((resolve, reject) => {
81
     return new Promise((resolve, reject) => {

+ 5
- 1
react/features/mobile/external-api/middleware.js View File

120
  */
120
  */
121
 function _sendConferenceEvent(
121
 function _sendConferenceEvent(
122
         store: Object,
122
         store: Object,
123
-        { conference, type, ...data }: { conference: Object, type: Symbol }) {
123
+        { conference, type, ...data }: {
124
+            conference: Object,
125
+            type: Symbol,
126
+            url: ?string
127
+        }) {
124
     // For these (redux) actions, conference identifies a JitsiConference
128
     // For these (redux) actions, conference identifies a JitsiConference
125
     // instance. The external API cannot transport such an object so we have to
129
     // instance. The external API cannot transport such an object so we have to
126
     // transport an "equivalent".
130
     // transport an "equivalent".

Loading…
Cancel
Save