瀏覽代碼

ref: eslint-config-jitsi@1.0.3

master
Bettenbuk Zoltan 5 年之前
父節點
當前提交
0598e7369b
共有 100 個檔案被更改,包括 727 行新增267 行删除
  1. 1
    1
      app.js
  2. 20
    24
      conference.js
  3. 2
    2
      connection.js
  4. 8
    5
      modules/API/API.js
  5. 10
    9
      modules/UI/UI.js
  6. 3
    1
      modules/UI/authentication/AuthHandler.js
  7. 2
    3
      modules/UI/etherpad/Etherpad.js
  8. 8
    8
      modules/UI/shared_video/SharedVideo.js
  9. 3
    1
      modules/UI/shared_video/SharedVideoThumb.js
  10. 3
    1
      modules/UI/util/MessageHandler.js
  11. 8
    8
      modules/UI/videolayout/LargeVideoManager.js
  12. 4
    3
      modules/UI/videolayout/LocalVideo.js
  13. 6
    6
      modules/UI/videolayout/RemoteVideo.js
  14. 4
    3
      modules/UI/videolayout/SmallVideo.js
  15. 2
    2
      modules/UI/videolayout/VideoContainer.js
  16. 6
    5
      modules/UI/videolayout/VideoLayout.js
  17. 4
    2
      modules/keyboardshortcut/keyboardshortcut.js
  18. 2
    2
      modules/remotecontrol/Controller.js
  19. 3
    2
      modules/transport/index.js
  20. 530
    52
      package-lock.json
  21. 2
    2
      package.json
  22. 1
    1
      react/features/always-on-top/HangupButton.js
  23. 1
    1
      react/features/always-on-top/VideoMuteButton.js
  24. 5
    4
      react/features/analytics/functions.js
  25. 1
    1
      react/features/analytics/middleware.js
  26. 1
    3
      react/features/app/components/AbstractApp.js
  27. 1
    1
      react/features/app/components/App.native.js
  28. 1
    1
      react/features/app/getRouteToRender.js
  29. 0
    1
      react/features/app/middleware.js
  30. 0
    1
      react/features/authentication/components/LoginDialog.native.js
  31. 0
    1
      react/features/authentication/components/WaitForOwnerDialog.native.js
  32. 5
    5
      react/features/authentication/middleware.js
  33. 2
    2
      react/features/base/audio-only/actions.js
  34. 0
    1
      react/features/base/avatar/components/Avatar.js
  35. 2
    3
      react/features/base/avatar/components/native/StatelessAvatar.js
  36. 0
    1
      react/features/base/avatar/components/web/StatelessAvatar.js
  37. 1
    1
      react/features/base/color-scheme/middleware.js
  38. 0
    1
      react/features/base/conference/actions.js
  39. 8
    9
      react/features/base/conference/middleware.js
  40. 1
    1
      react/features/base/conference/reducer.js
  41. 2
    1
      react/features/base/config/functions.any.js
  42. 0
    1
      react/features/base/connection/reducer.js
  43. 1
    1
      react/features/base/devices/functions.js
  44. 12
    12
      react/features/base/devices/middleware.js
  45. 2
    3
      react/features/base/devices/reducer.js
  46. 0
    1
      react/features/base/dialog/components/native/AlertDialog.js
  47. 1
    1
      react/features/base/dialog/components/native/BaseDialog.js
  48. 0
    1
      react/features/base/dialog/components/native/ConfirmDialog.js
  49. 0
    1
      react/features/base/dialog/components/native/CustomDialog.js
  50. 0
    1
      react/features/base/dialog/components/native/CustomSubmitDialog.js
  51. 0
    1
      react/features/base/dialog/components/native/DialogContainer.js
  52. 0
    2
      react/features/base/dialog/components/native/InputDialog.js
  53. 0
    1
      react/features/base/dialog/components/native/styles.js
  54. 1
    1
      react/features/base/dialog/components/web/Dialog.js
  55. 0
    1
      react/features/base/dialog/components/web/DialogContainer.js
  56. 0
    1
      react/features/base/dialog/components/web/DialogWithTabs.js
  57. 0
    1
      react/features/base/dialog/components/web/StatelessDialog.js
  58. 1
    0
      react/features/base/environment/environment.js
  59. 1
    1
      react/features/base/i18n/i18next.js
  60. 1
    2
      react/features/base/icons/components/Icon.js
  61. 1
    1
      react/features/base/jwt/middleware.js
  62. 0
    1
      react/features/base/known-domains/middleware.js
  63. 0
    1
      react/features/base/lastn/middleware.js
  64. 1
    0
      react/features/base/lib-jitsi-meet/functions.any.js
  65. 1
    0
      react/features/base/lib-jitsi-meet/functions.native.js
  66. 1
    1
      react/features/base/lib-jitsi-meet/middleware.js
  67. 1
    0
      react/features/base/lib-jitsi-meet/native/WiFiStats.js
  68. 1
    1
      react/features/base/logging/functions.js
  69. 3
    4
      react/features/base/logging/middleware.js
  70. 1
    0
      react/features/base/logging/reducer.js
  71. 1
    1
      react/features/base/media/components/AbstractVideoTrack.js
  72. 0
    1
      react/features/base/media/components/native/Audio.js
  73. 1
    1
      react/features/base/media/components/native/Video.js
  74. 1
    1
      react/features/base/media/components/native/VideoTrack.js
  75. 2
    3
      react/features/base/media/components/native/VideoTransform.js
  76. 0
    1
      react/features/base/media/components/web/VideoTrack.js
  77. 0
    1
      react/features/base/media/middleware.js
  78. 0
    1
      react/features/base/modal/components/JitsiModal.js
  79. 1
    2
      react/features/base/net-info/NetworkInfoService.native.js
  80. 0
    1
      react/features/base/net-info/actions.js
  81. 1
    1
      react/features/base/net-info/middleware.js
  82. 1
    1
      react/features/base/participants/actions.js
  83. 1
    1
      react/features/base/participants/components/ParticipantView.native.js
  84. 1
    2
      react/features/base/participants/functions.js
  85. 8
    10
      react/features/base/participants/middleware.js
  86. 2
    1
      react/features/base/react/components/NavigateSectionList.js
  87. 0
    1
      react/features/base/react/components/native/AvatarListItem.js
  88. 1
    1
      react/features/base/react/components/native/Linkify.js
  89. 0
    1
      react/features/base/react/components/native/NavigateSectionListItem.js
  90. 3
    2
      react/features/base/react/components/native/NavigateSectionListSectionHeader.js
  91. 2
    1
      react/features/base/react/components/native/SectionList.js
  92. 0
    1
      react/features/base/react/components/native/SlidingView.js
  93. 1
    1
      react/features/base/react/components/web/BaseIndicator.js
  94. 1
    1
      react/features/base/react/components/web/MultiSelectAutocomplete.js
  95. 2
    1
      react/features/base/react/components/web/NavigateSectionListItem.js
  96. 2
    1
      react/features/base/react/components/web/NavigateSectionListSectionHeader.js
  97. 2
    1
      react/features/base/react/components/web/SectionList.js
  98. 0
    1
      react/features/base/responsive-ui/components/AspectRatioAware.js
  99. 0
    1
      react/features/base/settings/functions.native.js
  100. 0
    0
      react/features/base/settings/middleware.js

+ 1
- 1
app.js 查看文件

6
 
6
 
7
 import conference from './conference';
7
 import conference from './conference';
8
 import API from './modules/API';
8
 import API from './modules/API';
9
+import UI from './modules/UI/UI';
9
 import keyboardshortcut from './modules/keyboardshortcut/keyboardshortcut';
10
 import keyboardshortcut from './modules/keyboardshortcut/keyboardshortcut';
10
 import remoteControl from './modules/remotecontrol/RemoteControl';
11
 import remoteControl from './modules/remotecontrol/RemoteControl';
11
 import translation from './modules/translation/translation';
12
 import translation from './modules/translation/translation';
12
-import UI from './modules/UI/UI';
13
 
13
 
14
 window.APP = {
14
 window.APP = {
15
     API,
15
     API,

+ 20
- 24
conference.js 查看文件

1
 /* global $, APP, JitsiMeetJS, config, interfaceConfig */
1
 /* global $, APP, JitsiMeetJS, config, interfaceConfig */
2
 
2
 
3
-import { openConnection } from './connection';
3
+import EventEmitter from 'events';
4
+import Logger from 'jitsi-meet-logger';
4
 
5
 
6
+import * as JitsiMeetConferenceEvents from './ConferenceEvents';
7
+import { openConnection } from './connection';
5
 import { ENDPOINT_TEXT_MESSAGE_NAME } from './modules/API/constants';
8
 import { ENDPOINT_TEXT_MESSAGE_NAME } from './modules/API/constants';
6
 import AuthHandler from './modules/UI/authentication/AuthHandler';
9
 import AuthHandler from './modules/UI/authentication/AuthHandler';
7
-import Recorder from './modules/recorder/Recorder';
8
-
9
-import mediaDeviceHelper from './modules/devices/mediaDeviceHelper';
10
-
11
-import * as RemoteControlEvents
12
-    from './service/remotecontrol/RemoteControlEvents';
13
-import UIEvents from './service/UI/UIEvents';
14
 import UIUtil from './modules/UI/util/UIUtil';
10
 import UIUtil from './modules/UI/util/UIUtil';
11
+import mediaDeviceHelper from './modules/devices/mediaDeviceHelper';
12
+import Recorder from './modules/recorder/Recorder';
15
 import { createTaskQueue } from './modules/util/helpers';
13
 import { createTaskQueue } from './modules/util/helpers';
16
-import * as JitsiMeetConferenceEvents from './ConferenceEvents';
17
-
18
 import {
14
 import {
19
     createDeviceChangedEvent,
15
     createDeviceChangedEvent,
20
     createStartSilentEvent,
16
     createStartSilentEvent,
27
     redirectToStaticPage,
23
     redirectToStaticPage,
28
     reloadWithStoredParams
24
     reloadWithStoredParams
29
 } from './react/features/app';
25
 } from './react/features/app';
30
-import {
31
-    initPrejoin,
32
-    isPrejoinPageEnabled,
33
-    isPrejoinPageVisible,
34
-    replacePrejoinAudioTrack,
35
-    replacePrejoinVideoTrack
36
-} from './react/features/prejoin';
37
-
38
-import EventEmitter from 'events';
39
-
40
 import {
26
 import {
41
     AVATAR_ID_COMMAND,
27
     AVATAR_ID_COMMAND,
42
     AVATAR_URL_COMMAND,
28
     AVATAR_URL_COMMAND,
86
     setVideoAvailable,
72
     setVideoAvailable,
87
     setVideoMuted
73
     setVideoMuted
88
 } from './react/features/base/media';
74
 } from './react/features/base/media';
89
-import { showNotification } from './react/features/notifications';
90
 import {
75
 import {
91
     dominantSpeakerChanged,
76
     dominantSpeakerChanged,
92
     getLocalParticipant,
77
     getLocalParticipant,
124
     maybeOpenFeedbackDialog,
109
     maybeOpenFeedbackDialog,
125
     submitFeedback
110
     submitFeedback
126
 } from './react/features/feedback';
111
 } from './react/features/feedback';
112
+import { showNotification } from './react/features/notifications';
127
 import { mediaPermissionPromptVisibilityChanged } from './react/features/overlay';
113
 import { mediaPermissionPromptVisibilityChanged } from './react/features/overlay';
128
 import { suspendDetected } from './react/features/power-monitor';
114
 import { suspendDetected } from './react/features/power-monitor';
115
+import {
116
+    initPrejoin,
117
+    isPrejoinPageEnabled,
118
+    isPrejoinPageVisible,
119
+    replacePrejoinAudioTrack,
120
+    replacePrejoinVideoTrack
121
+} from './react/features/prejoin';
122
+import { createRnnoiseProcessorPromise } from './react/features/rnnoise';
123
+import { toggleScreenshotCaptureEffect } from './react/features/screenshot-capture';
129
 import { setSharedVideoStatus } from './react/features/shared-video';
124
 import { setSharedVideoStatus } from './react/features/shared-video';
130
 import { AudioMixerEffect } from './react/features/stream-effects/audio-mixer/AudioMixerEffect';
125
 import { AudioMixerEffect } from './react/features/stream-effects/audio-mixer/AudioMixerEffect';
131
 import { createPresenterEffect } from './react/features/stream-effects/presenter';
126
 import { createPresenterEffect } from './react/features/stream-effects/presenter';
132
 import { endpointMessageReceived } from './react/features/subtitles';
127
 import { endpointMessageReceived } from './react/features/subtitles';
133
-import { createRnnoiseProcessorPromise } from './react/features/rnnoise';
134
-import { toggleScreenshotCaptureEffect } from './react/features/screenshot-capture';
128
+import UIEvents from './service/UI/UIEvents';
129
+import * as RemoteControlEvents
130
+    from './service/remotecontrol/RemoteControlEvents';
135
 
131
 
136
-const logger = require('jitsi-meet-logger').getLogger(__filename);
132
+const logger = Logger.getLogger(__filename);
137
 
133
 
138
 const eventEmitter = new EventEmitter();
134
 const eventEmitter = new EventEmitter();
139
 
135
 

+ 2
- 2
connection.js 查看文件

1
 /* global APP, JitsiMeetJS, config */
1
 /* global APP, JitsiMeetJS, config */
2
 
2
 
3
+import Logger from 'jitsi-meet-logger';
3
 import { jitsiLocalStorage } from 'js-utils';
4
 import { jitsiLocalStorage } from 'js-utils';
4
 
5
 
5
 import AuthHandler from './modules/UI/authentication/AuthHandler';
6
 import AuthHandler from './modules/UI/authentication/AuthHandler';
6
-
7
 import {
7
 import {
8
     connectionEstablished,
8
     connectionEstablished,
9
     connectionFailed
9
     connectionFailed
14
     JitsiConnectionEvents
14
     JitsiConnectionEvents
15
 } from './react/features/base/lib-jitsi-meet';
15
 } from './react/features/base/lib-jitsi-meet';
16
 
16
 
17
-const logger = require('jitsi-meet-logger').getLogger(__filename);
17
+const logger = Logger.getLogger(__filename);
18
 
18
 
19
 /**
19
 /**
20
  * The feature announced so we can distinguish jibri participants.
20
  * The feature announced so we can distinguish jibri participants.

+ 8
- 5
modules/API/API.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
+import Logger from 'jitsi-meet-logger';
4
+
3
 import * as JitsiMeetConferenceEvents from '../../ConferenceEvents';
5
 import * as JitsiMeetConferenceEvents from '../../ConferenceEvents';
4
 import {
6
 import {
5
     createApiEvent,
7
     createApiEvent,
11
     setSubject
13
     setSubject
12
 } from '../../react/features/base/conference';
14
 } from '../../react/features/base/conference';
13
 import { parseJWTFromURLParams } from '../../react/features/base/jwt';
15
 import { parseJWTFromURLParams } from '../../react/features/base/jwt';
16
+import {
17
+    processExternalDeviceRequest
18
+} from '../../react/features/device-selection/functions';
14
 import { setE2EEKey } from '../../react/features/e2ee';
19
 import { setE2EEKey } from '../../react/features/e2ee';
15
 import { invite } from '../../react/features/invite';
20
 import { invite } from '../../react/features/invite';
21
+import { muteAllParticipants } from '../../react/features/remote-video-menu/actions';
16
 import { toggleTileView } from '../../react/features/video-layout';
22
 import { toggleTileView } from '../../react/features/video-layout';
17
 import { setVideoQuality } from '../../react/features/video-quality';
23
 import { setVideoQuality } from '../../react/features/video-quality';
18
 import { getJitsiMeetTransport } from '../transport';
24
 import { getJitsiMeetTransport } from '../transport';
19
-import { muteAllParticipants } from '../../react/features/remote-video-menu/actions';
25
+
20
 import { API_ID, ENDPOINT_TEXT_MESSAGE_NAME } from './constants';
26
 import { API_ID, ENDPOINT_TEXT_MESSAGE_NAME } from './constants';
21
-import {
22
-    processExternalDeviceRequest
23
-} from '../../react/features/device-selection/functions';
24
 
27
 
25
-const logger = require('jitsi-meet-logger').getLogger(__filename);
28
+const logger = Logger.getLogger(__filename);
26
 
29
 
27
 declare var APP: Object;
30
 declare var APP: Object;
28
 
31
 

+ 10
- 9
modules/UI/UI.js 查看文件

1
 /* global APP, $, config, interfaceConfig */
1
 /* global APP, $, config, interfaceConfig */
2
 
2
 
3
-const logger = require('jitsi-meet-logger').getLogger(__filename);
4
 
3
 
5
 const UI = {};
4
 const UI = {};
6
 
5
 
7
-import messageHandler from './util/MessageHandler';
8
-import UIUtil from './util/UIUtil';
9
-import UIEvents from '../../service/UI/UIEvents';
10
-import EtherpadManager from './etherpad/Etherpad';
11
-import SharedVideoManager from './shared_video/SharedVideo';
12
-
13
-import VideoLayout from './videolayout/VideoLayout';
6
+import EventEmitter from 'events';
7
+import Logger from 'jitsi-meet-logger';
14
 
8
 
15
 import { getLocalParticipant } from '../../react/features/base/participants';
9
 import { getLocalParticipant } from '../../react/features/base/participants';
16
 import { toggleChat } from '../../react/features/chat';
10
 import { toggleChat } from '../../react/features/chat';
22
     setToolboxEnabled,
16
     setToolboxEnabled,
23
     showToolbox
17
     showToolbox
24
 } from '../../react/features/toolbox';
18
 } from '../../react/features/toolbox';
19
+import UIEvents from '../../service/UI/UIEvents';
20
+
21
+import EtherpadManager from './etherpad/Etherpad';
22
+import SharedVideoManager from './shared_video/SharedVideo';
23
+import messageHandler from './util/MessageHandler';
24
+import UIUtil from './util/UIUtil';
25
+import VideoLayout from './videolayout/VideoLayout';
25
 
26
 
26
-const EventEmitter = require('events');
27
+const logger = Logger.getLogger(__filename);
27
 
28
 
28
 UI.messageHandler = messageHandler;
29
 UI.messageHandler = messageHandler;
29
 
30
 

+ 3
- 1
modules/UI/authentication/AuthHandler.js 查看文件

1
 /* global APP, config, JitsiMeetJS, Promise */
1
 /* global APP, config, JitsiMeetJS, Promise */
2
 
2
 
3
+import Logger from 'jitsi-meet-logger';
4
+
3
 import { openConnection } from '../../../connection';
5
 import { openConnection } from '../../../connection';
4
 import { setJWT } from '../../../react/features/base/jwt';
6
 import { setJWT } from '../../../react/features/base/jwt';
5
 import {
7
 import {
9
 
11
 
10
 import LoginDialog from './LoginDialog';
12
 import LoginDialog from './LoginDialog';
11
 
13
 
12
-const logger = require('jitsi-meet-logger').getLogger(__filename);
14
+const logger = Logger.getLogger(__filename);
13
 
15
 
14
 let externalAuthWindow;
16
 let externalAuthWindow;
15
 let authRequiredDialog;
17
 let authRequiredDialog;

+ 2
- 3
modules/UI/etherpad/Etherpad.js 查看文件

2
 
2
 
3
 import { getSharedDocumentUrl, setDocumentEditingState } from '../../../react/features/etherpad';
3
 import { getSharedDocumentUrl, setDocumentEditingState } from '../../../react/features/etherpad';
4
 import { getToolboxHeight } from '../../../react/features/toolbox';
4
 import { getToolboxHeight } from '../../../react/features/toolbox';
5
-
6
-import VideoLayout from '../videolayout/VideoLayout';
7
-import LargeContainer from '../videolayout/LargeContainer';
8
 import Filmstrip from '../videolayout/Filmstrip';
5
 import Filmstrip from '../videolayout/Filmstrip';
6
+import LargeContainer from '../videolayout/LargeContainer';
7
+import VideoLayout from '../videolayout/VideoLayout';
9
 
8
 
10
 /**
9
 /**
11
  *
10
  *

+ 8
- 8
modules/UI/shared_video/SharedVideo.js 查看文件

1
 /* global $, APP, YT, interfaceConfig, onPlayerReady, onPlayerStateChange,
1
 /* global $, APP, YT, interfaceConfig, onPlayerReady, onPlayerStateChange,
2
 onPlayerError */
2
 onPlayerError */
3
 
3
 
4
-const logger = require('jitsi-meet-logger').getLogger(__filename);
5
-
6
-import UIUtil from '../util/UIUtil';
7
-import UIEvents from '../../../service/UI/UIEvents';
8
-
9
-import VideoLayout from '../videolayout/VideoLayout';
10
-import LargeContainer from '../videolayout/LargeContainer';
11
-import Filmstrip from '../videolayout/Filmstrip';
4
+import Logger from 'jitsi-meet-logger';
12
 
5
 
13
 import {
6
 import {
14
     createSharedVideoEvent as createEvent,
7
     createSharedVideoEvent as createEvent,
24
     getToolboxHeight,
17
     getToolboxHeight,
25
     showToolbox
18
     showToolbox
26
 } from '../../../react/features/toolbox';
19
 } from '../../../react/features/toolbox';
20
+import UIEvents from '../../../service/UI/UIEvents';
21
+import UIUtil from '../util/UIUtil';
22
+import Filmstrip from '../videolayout/Filmstrip';
23
+import LargeContainer from '../videolayout/LargeContainer';
24
+import VideoLayout from '../videolayout/VideoLayout';
25
+
26
+const logger = Logger.getLogger(__filename);
27
 
27
 
28
 export const SHARED_VIDEO_CONTAINER_TYPE = 'sharedvideo';
28
 export const SHARED_VIDEO_CONTAINER_TYPE = 'sharedvideo';
29
 
29
 

+ 3
- 1
modules/UI/shared_video/SharedVideoThumb.js 查看文件

1
 /* global $ */
1
 /* global $ */
2
 
2
 
3
+import Logger from 'jitsi-meet-logger';
4
+
3
 import SmallVideo from '../videolayout/SmallVideo';
5
 import SmallVideo from '../videolayout/SmallVideo';
4
 
6
 
5
-const logger = require('jitsi-meet-logger').getLogger(__filename);
7
+const logger = Logger.getLogger(__filename);
6
 
8
 
7
 /**
9
 /**
8
  *
10
  *

+ 3
- 1
modules/UI/util/MessageHandler.js 查看文件

1
 /* global $, APP */
1
 /* global $, APP */
2
-const logger = require('jitsi-meet-logger').getLogger(__filename);
3
 
2
 
3
+import Logger from 'jitsi-meet-logger';
4
 import { jitsiLocalStorage } from 'js-utils';
4
 import { jitsiLocalStorage } from 'js-utils';
5
 
5
 
6
 import {
6
 import {
10
     showWarningNotification
10
     showWarningNotification
11
 } from '../../../react/features/notifications';
11
 } from '../../../react/features/notifications';
12
 
12
 
13
+const logger = Logger.getLogger(__filename);
14
+
13
 /**
15
 /**
14
  * Flag for enabling/disabling popups.
16
  * Flag for enabling/disabling popups.
15
  * @type {boolean}
17
  * @type {boolean}

+ 8
- 8
modules/UI/videolayout/LargeVideoManager.js 查看文件

1
 /* global $, APP */
1
 /* global $, APP */
2
 /* eslint-disable no-unused-vars */
2
 /* eslint-disable no-unused-vars */
3
+import Logger from 'jitsi-meet-logger';
3
 import React from 'react';
4
 import React from 'react';
4
 import ReactDOM from 'react-dom';
5
 import ReactDOM from 'react-dom';
5
 import { I18nextProvider } from 'react-i18next';
6
 import { I18nextProvider } from 'react-i18next';
7
 
8
 
8
 import { Avatar } from '../../../react/features/base/avatar';
9
 import { Avatar } from '../../../react/features/base/avatar';
9
 import { i18next } from '../../../react/features/base/i18n';
10
 import { i18next } from '../../../react/features/base/i18n';
10
-import { PresenceLabel } from '../../../react/features/presence-status';
11
-/* eslint-enable no-unused-vars */
12
-
13
-const logger = require('jitsi-meet-logger').getLogger(__filename);
14
-
15
-import { VIDEO_TYPE } from '../../../react/features/base/media';
16
 import {
11
 import {
17
     JitsiParticipantConnectionStatus
12
     JitsiParticipantConnectionStatus
18
 } from '../../../react/features/base/lib-jitsi-meet';
13
 } from '../../../react/features/base/lib-jitsi-meet';
14
+import { VIDEO_TYPE } from '../../../react/features/base/media';
19
 import {
15
 import {
20
     updateKnownLargeVideoResolution
16
     updateKnownLargeVideoResolution
21
 } from '../../../react/features/large-video';
17
 } from '../../../react/features/large-video';
22
-import { createDeferred } from '../../util/helpers';
18
+import { PresenceLabel } from '../../../react/features/presence-status';
19
+/* eslint-enable no-unused-vars */
23
 import UIEvents from '../../../service/UI/UIEvents';
20
 import UIEvents from '../../../service/UI/UIEvents';
21
+import { createDeferred } from '../../util/helpers';
22
+import AudioLevels from '../audio_levels/AudioLevels';
24
 import UIUtil from '../util/UIUtil';
23
 import UIUtil from '../util/UIUtil';
24
+
25
 import { VideoContainer, VIDEO_CONTAINER_TYPE } from './VideoContainer';
25
 import { VideoContainer, VIDEO_CONTAINER_TYPE } from './VideoContainer';
26
 
26
 
27
-import AudioLevels from '../audio_levels/AudioLevels';
27
+const logger = Logger.getLogger(__filename);
28
 
28
 
29
 const DESKTOP_CONTAINER_TYPE = 'desktop';
29
 const DESKTOP_CONTAINER_TYPE = 'desktop';
30
 
30
 

+ 4
- 3
modules/UI/videolayout/LocalVideo.js 查看文件

1
 /* global $, config, interfaceConfig, APP */
1
 /* global $, config, interfaceConfig, APP */
2
 
2
 
3
+import Logger from 'jitsi-meet-logger';
3
 /* eslint-disable no-unused-vars */
4
 /* eslint-disable no-unused-vars */
4
 import React, { Component } from 'react';
5
 import React, { Component } from 'react';
5
 import ReactDOM from 'react-dom';
6
 import ReactDOM from 'react-dom';
11
 import { getLocalVideoTrack } from '../../../react/features/base/tracks';
12
 import { getLocalVideoTrack } from '../../../react/features/base/tracks';
12
 import { shouldDisplayTileView } from '../../../react/features/video-layout';
13
 import { shouldDisplayTileView } from '../../../react/features/video-layout';
13
 /* eslint-enable no-unused-vars */
14
 /* eslint-enable no-unused-vars */
14
-
15
-const logger = require('jitsi-meet-logger').getLogger(__filename);
16
-
17
 import UIEvents from '../../../service/UI/UIEvents';
15
 import UIEvents from '../../../service/UI/UIEvents';
16
+
18
 import SmallVideo from './SmallVideo';
17
 import SmallVideo from './SmallVideo';
19
 
18
 
19
+const logger = Logger.getLogger(__filename);
20
+
20
 /**
21
 /**
21
  *
22
  *
22
  */
23
  */

+ 6
- 6
modules/UI/videolayout/RemoteVideo.js 查看文件

1
 /* global $, APP, interfaceConfig */
1
 /* global $, APP, interfaceConfig */
2
 
2
 
3
 /* eslint-disable no-unused-vars */
3
 /* eslint-disable no-unused-vars */
4
+import { AtlasKitThemeProvider } from '@atlaskit/theme';
5
+import Logger from 'jitsi-meet-logger';
4
 import React from 'react';
6
 import React from 'react';
5
 import ReactDOM from 'react-dom';
7
 import ReactDOM from 'react-dom';
6
-import { Provider } from 'react-redux';
7
 import { I18nextProvider } from 'react-i18next';
8
 import { I18nextProvider } from 'react-i18next';
8
-import { AtlasKitThemeProvider } from '@atlaskit/theme';
9
+import { Provider } from 'react-redux';
9
 
10
 
10
 import { i18next } from '../../../react/features/base/i18n';
11
 import { i18next } from '../../../react/features/base/i18n';
11
 import {
12
 import {
22
 } from '../../../react/features/remote-video-menu';
23
 } from '../../../react/features/remote-video-menu';
23
 import { LAYOUTS, getCurrentLayout } from '../../../react/features/video-layout';
24
 import { LAYOUTS, getCurrentLayout } from '../../../react/features/video-layout';
24
 /* eslint-enable no-unused-vars */
25
 /* eslint-enable no-unused-vars */
25
-
26
-const logger = require('jitsi-meet-logger').getLogger(__filename);
27
-
26
+import UIUtils from '../util/UIUtil';
28
 
27
 
29
 import SmallVideo from './SmallVideo';
28
 import SmallVideo from './SmallVideo';
30
-import UIUtils from '../util/UIUtil';
29
+
30
+const logger = Logger.getLogger(__filename);
31
 
31
 
32
 /**
32
 /**
33
  *
33
  *

+ 4
- 3
modules/UI/videolayout/SmallVideo.js 查看文件

1
 /* global $, APP, config, interfaceConfig */
1
 /* global $, APP, config, interfaceConfig */
2
 
2
 
3
 /* eslint-disable no-unused-vars */
3
 /* eslint-disable no-unused-vars */
4
+import { AtlasKitThemeProvider } from '@atlaskit/theme';
5
+import Logger from 'jitsi-meet-logger';
4
 import React from 'react';
6
 import React from 'react';
5
 import ReactDOM from 'react-dom';
7
 import ReactDOM from 'react-dom';
6
 import { I18nextProvider } from 'react-i18next';
8
 import { I18nextProvider } from 'react-i18next';
7
-import { AtlasKitThemeProvider } from '@atlaskit/theme';
8
 import { Provider } from 'react-redux';
9
 import { Provider } from 'react-redux';
9
 
10
 
10
-import { i18next } from '../../../react/features/base/i18n';
11
 import { AudioLevelIndicator } from '../../../react/features/audio-level-indicator';
11
 import { AudioLevelIndicator } from '../../../react/features/audio-level-indicator';
12
 import { Avatar as AvatarDisplay } from '../../../react/features/base/avatar';
12
 import { Avatar as AvatarDisplay } from '../../../react/features/base/avatar';
13
+import { i18next } from '../../../react/features/base/i18n';
13
 import {
14
 import {
14
     getParticipantCount,
15
     getParticipantCount,
15
     getPinnedParticipant,
16
     getPinnedParticipant,
30
 } from '../../../react/features/video-layout';
31
 } from '../../../react/features/video-layout';
31
 /* eslint-enable no-unused-vars */
32
 /* eslint-enable no-unused-vars */
32
 
33
 
33
-const logger = require('jitsi-meet-logger').getLogger(__filename);
34
+const logger = Logger.getLogger(__filename);
34
 
35
 
35
 /**
36
 /**
36
  * Display mode constant used when video is being displayed on the small video.
37
  * Display mode constant used when video is being displayed on the small video.

+ 2
- 2
modules/UI/videolayout/VideoContainer.js 查看文件

8
 import { ORIENTATION, LargeVideoBackground } from '../../../react/features/large-video';
8
 import { ORIENTATION, LargeVideoBackground } from '../../../react/features/large-video';
9
 import { LAYOUTS, getCurrentLayout } from '../../../react/features/video-layout';
9
 import { LAYOUTS, getCurrentLayout } from '../../../react/features/video-layout';
10
 /* eslint-enable no-unused-vars */
10
 /* eslint-enable no-unused-vars */
11
+import UIEvents from '../../../service/UI/UIEvents';
12
+import UIUtil from '../util/UIUtil';
11
 
13
 
12
 import Filmstrip from './Filmstrip';
14
 import Filmstrip from './Filmstrip';
13
 import LargeContainer from './LargeContainer';
15
 import LargeContainer from './LargeContainer';
14
-import UIEvents from '../../../service/UI/UIEvents';
15
-import UIUtil from '../util/UIUtil';
16
 
16
 
17
 // FIXME should be 'video'
17
 // FIXME should be 'video'
18
 export const VIDEO_CONTAINER_TYPE = 'camera';
18
 export const VIDEO_CONTAINER_TYPE = 'camera';

+ 6
- 5
modules/UI/videolayout/VideoLayout.js 查看文件

1
 /* global APP, $, interfaceConfig  */
1
 /* global APP, $, interfaceConfig  */
2
-const logger = require('jitsi-meet-logger').getLogger(__filename);
2
+
3
+import Logger from 'jitsi-meet-logger';
3
 
4
 
4
 import { MEDIA_TYPE, VIDEO_TYPE } from '../../../react/features/base/media';
5
 import { MEDIA_TYPE, VIDEO_TYPE } from '../../../react/features/base/media';
5
 import {
6
 import {
9
     pinParticipant
10
     pinParticipant
10
 } from '../../../react/features/base/participants';
11
 } from '../../../react/features/base/participants';
11
 import { getTrackByMediaTypeAndParticipant } from '../../../react/features/base/tracks';
12
 import { getTrackByMediaTypeAndParticipant } from '../../../react/features/base/tracks';
13
+import UIEvents from '../../../service/UI/UIEvents';
12
 import { SHARED_VIDEO_CONTAINER_TYPE } from '../shared_video/SharedVideo';
14
 import { SHARED_VIDEO_CONTAINER_TYPE } from '../shared_video/SharedVideo';
13
 import SharedVideoThumb from '../shared_video/SharedVideoThumb';
15
 import SharedVideoThumb from '../shared_video/SharedVideoThumb';
14
 
16
 
15
-import UIEvents from '../../../service/UI/UIEvents';
16
-
17
-import RemoteVideo from './RemoteVideo';
18
 import LargeVideoManager from './LargeVideoManager';
17
 import LargeVideoManager from './LargeVideoManager';
18
+import LocalVideo from './LocalVideo';
19
+import RemoteVideo from './RemoteVideo';
19
 import { VIDEO_CONTAINER_TYPE } from './VideoContainer';
20
 import { VIDEO_CONTAINER_TYPE } from './VideoContainer';
20
 
21
 
21
-import LocalVideo from './LocalVideo';
22
+const logger = Logger.getLogger(__filename);
22
 
23
 
23
 const remoteVideos = {};
24
 const remoteVideos = {};
24
 let localVideoThumbnail = null;
25
 let localVideoThumbnail = null;

+ 4
- 2
modules/keyboardshortcut/keyboardshortcut.js 查看文件

1
 /* global APP, $, interfaceConfig */
1
 /* global APP, $, interfaceConfig */
2
 
2
 
3
-import { toggleDialog } from '../../react/features/base/dialog';
3
+import Logger from 'jitsi-meet-logger';
4
+
4
 import {
5
 import {
5
     ACTION_SHORTCUT_PRESSED as PRESSED,
6
     ACTION_SHORTCUT_PRESSED as PRESSED,
6
     ACTION_SHORTCUT_RELEASED as RELEASED,
7
     ACTION_SHORTCUT_RELEASED as RELEASED,
7
     createShortcutEvent,
8
     createShortcutEvent,
8
     sendAnalytics
9
     sendAnalytics
9
 } from '../../react/features/analytics';
10
 } from '../../react/features/analytics';
11
+import { toggleDialog } from '../../react/features/base/dialog';
10
 import { KeyboardShortcutsDialog }
12
 import { KeyboardShortcutsDialog }
11
     from '../../react/features/keyboard-shortcuts';
13
     from '../../react/features/keyboard-shortcuts';
12
 import { SpeakerStats } from '../../react/features/speaker-stats';
14
 import { SpeakerStats } from '../../react/features/speaker-stats';
13
 
15
 
14
-const logger = require('jitsi-meet-logger').getLogger(__filename);
16
+const logger = Logger.getLogger(__filename);
15
 
17
 
16
 /**
18
 /**
17
  * Map of shortcuts. When a shortcut is registered it enters the mapping.
19
  * Map of shortcuts. When a shortcut is registered it enters the mapping.

+ 2
- 2
modules/remotecontrol/Controller.js 查看文件

5
 import {
5
 import {
6
     JitsiConferenceEvents
6
     JitsiConferenceEvents
7
 } from '../../react/features/base/lib-jitsi-meet';
7
 } from '../../react/features/base/lib-jitsi-meet';
8
-import * as KeyCodes from '../keycode/keycode';
8
+import UIEvents from '../../service/UI/UIEvents';
9
 import {
9
 import {
10
     EVENTS,
10
     EVENTS,
11
     PERMISSIONS_ACTIONS,
11
     PERMISSIONS_ACTIONS,
13
 } from '../../service/remotecontrol/Constants';
13
 } from '../../service/remotecontrol/Constants';
14
 import * as RemoteControlEvents
14
 import * as RemoteControlEvents
15
     from '../../service/remotecontrol/RemoteControlEvents';
15
     from '../../service/remotecontrol/RemoteControlEvents';
16
-import UIEvents from '../../service/UI/UIEvents';
16
+import * as KeyCodes from '../keycode/keycode';
17
 
17
 
18
 import RemoteControlParticipant from './RemoteControlParticipant';
18
 import RemoteControlParticipant from './RemoteControlParticipant';
19
 
19
 

+ 3
- 2
modules/transport/index.js 查看文件

1
 // FIXME: change to '../API' when we update to webpack2. If we do this now all
1
 // FIXME: change to '../API' when we update to webpack2. If we do this now all
2
 // files from API modules will be included in external_api.js.
2
 // files from API modules will be included in external_api.js.
3
-import { API_ID } from '../API/constants';
3
+import { PostMessageTransportBackend, Transport } from 'js-utils/transport';
4
+
4
 import { getJitsiMeetGlobalNS } from '../../react/features/base/util';
5
 import { getJitsiMeetGlobalNS } from '../../react/features/base/util';
6
+import { API_ID } from '../API/constants';
5
 
7
 
6
-import { PostMessageTransportBackend, Transport } from 'js-utils/transport';
7
 
8
 
8
 export {
9
 export {
9
     PostMessageTransportBackend,
10
     PostMessageTransportBackend,

+ 530
- 52
package-lock.json 查看文件

4947
       "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
4947
       "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
4948
       "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
4948
       "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
4949
     },
4949
     },
4950
+    "array.prototype.flat": {
4951
+      "version": "1.2.3",
4952
+      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz",
4953
+      "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==",
4954
+      "dev": true,
4955
+      "requires": {
4956
+        "define-properties": "^1.1.3",
4957
+        "es-abstract": "^1.17.0-next.1"
4958
+      },
4959
+      "dependencies": {
4960
+        "define-properties": {
4961
+          "version": "1.1.3",
4962
+          "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
4963
+          "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
4964
+          "dev": true,
4965
+          "requires": {
4966
+            "object-keys": "^1.0.12"
4967
+          }
4968
+        },
4969
+        "es-abstract": {
4970
+          "version": "1.17.5",
4971
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
4972
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
4973
+          "dev": true,
4974
+          "requires": {
4975
+            "es-to-primitive": "^1.2.1",
4976
+            "function-bind": "^1.1.1",
4977
+            "has": "^1.0.3",
4978
+            "has-symbols": "^1.0.1",
4979
+            "is-callable": "^1.1.5",
4980
+            "is-regex": "^1.0.5",
4981
+            "object-inspect": "^1.7.0",
4982
+            "object-keys": "^1.1.1",
4983
+            "object.assign": "^4.1.0",
4984
+            "string.prototype.trimleft": "^2.1.1",
4985
+            "string.prototype.trimright": "^2.1.1"
4986
+          }
4987
+        },
4988
+        "es-to-primitive": {
4989
+          "version": "1.2.1",
4990
+          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
4991
+          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
4992
+          "dev": true,
4993
+          "requires": {
4994
+            "is-callable": "^1.1.4",
4995
+            "is-date-object": "^1.0.1",
4996
+            "is-symbol": "^1.0.2"
4997
+          }
4998
+        },
4999
+        "has": {
5000
+          "version": "1.0.3",
5001
+          "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
5002
+          "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
5003
+          "dev": true,
5004
+          "requires": {
5005
+            "function-bind": "^1.1.1"
5006
+          }
5007
+        },
5008
+        "has-symbols": {
5009
+          "version": "1.0.1",
5010
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
5011
+          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
5012
+          "dev": true
5013
+        },
5014
+        "is-callable": {
5015
+          "version": "1.1.5",
5016
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
5017
+          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
5018
+          "dev": true
5019
+        },
5020
+        "is-regex": {
5021
+          "version": "1.0.5",
5022
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
5023
+          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
5024
+          "dev": true,
5025
+          "requires": {
5026
+            "has": "^1.0.3"
5027
+          }
5028
+        },
5029
+        "is-symbol": {
5030
+          "version": "1.0.3",
5031
+          "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
5032
+          "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
5033
+          "dev": true,
5034
+          "requires": {
5035
+            "has-symbols": "^1.0.1"
5036
+          }
5037
+        },
5038
+        "object-keys": {
5039
+          "version": "1.1.1",
5040
+          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
5041
+          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
5042
+          "dev": true
5043
+        }
5044
+      }
5045
+    },
4950
     "arrify": {
5046
     "arrify": {
4951
       "version": "1.0.1",
5047
       "version": "1.0.1",
4952
       "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
5048
       "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
7613
       }
7709
       }
7614
     },
7710
     },
7615
     "eslint-config-jitsi": {
7711
     "eslint-config-jitsi": {
7616
-      "version": "github:jitsi/eslint-config-jitsi#5f9fe4fd00be471ab6f5d06f77ffc90bba0853e8",
7617
-      "from": "github:jitsi/eslint-config-jitsi#1.0.1",
7712
+      "version": "github:jitsi/eslint-config-jitsi#f292fbc07689eb3dbeb81c074accff25b448b074",
7713
+      "from": "github:jitsi/eslint-config-jitsi#1.0.3",
7618
       "dev": true
7714
       "dev": true
7619
     },
7715
     },
7620
     "eslint-import-resolver-node": {
7716
     "eslint-import-resolver-node": {
7627
         "resolve": "^1.5.0"
7723
         "resolve": "^1.5.0"
7628
       }
7724
       }
7629
     },
7725
     },
7630
-    "eslint-module-utils": {
7631
-      "version": "2.2.0",
7632
-      "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz",
7633
-      "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=",
7634
-      "dev": true,
7635
-      "requires": {
7636
-        "debug": "^2.6.8",
7637
-        "pkg-dir": "^1.0.0"
7638
-      },
7639
-      "dependencies": {
7640
-        "find-up": {
7641
-          "version": "1.1.2",
7642
-          "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
7643
-          "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
7644
-          "dev": true,
7645
-          "requires": {
7646
-            "path-exists": "^2.0.0",
7647
-            "pinkie-promise": "^2.0.0"
7648
-          }
7649
-        },
7650
-        "path-exists": {
7651
-          "version": "2.1.0",
7652
-          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
7653
-          "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
7654
-          "dev": true,
7655
-          "requires": {
7656
-            "pinkie-promise": "^2.0.0"
7657
-          }
7658
-        },
7659
-        "pkg-dir": {
7660
-          "version": "1.0.0",
7661
-          "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
7662
-          "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
7663
-          "dev": true,
7664
-          "requires": {
7665
-            "find-up": "^1.0.0"
7666
-          }
7667
-        }
7668
-      }
7669
-    },
7670
     "eslint-plugin-flowtype": {
7726
     "eslint-plugin-flowtype": {
7671
       "version": "2.50.3",
7727
       "version": "2.50.3",
7672
       "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.3.tgz",
7728
       "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.3.tgz",
7685
       }
7741
       }
7686
     },
7742
     },
7687
     "eslint-plugin-import": {
7743
     "eslint-plugin-import": {
7688
-      "version": "2.14.0",
7689
-      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz",
7690
-      "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==",
7744
+      "version": "2.20.2",
7745
+      "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz",
7746
+      "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==",
7691
       "dev": true,
7747
       "dev": true,
7692
       "requires": {
7748
       "requires": {
7749
+        "array-includes": "^3.0.3",
7750
+        "array.prototype.flat": "^1.2.1",
7693
         "contains-path": "^0.1.0",
7751
         "contains-path": "^0.1.0",
7694
-        "debug": "^2.6.8",
7752
+        "debug": "^2.6.9",
7695
         "doctrine": "1.5.0",
7753
         "doctrine": "1.5.0",
7696
-        "eslint-import-resolver-node": "^0.3.1",
7697
-        "eslint-module-utils": "^2.2.0",
7698
-        "has": "^1.0.1",
7699
-        "lodash": "^4.17.4",
7700
-        "minimatch": "^3.0.3",
7754
+        "eslint-import-resolver-node": "^0.3.2",
7755
+        "eslint-module-utils": "^2.4.1",
7756
+        "has": "^1.0.3",
7757
+        "minimatch": "^3.0.4",
7758
+        "object.values": "^1.1.0",
7701
         "read-pkg-up": "^2.0.0",
7759
         "read-pkg-up": "^2.0.0",
7702
-        "resolve": "^1.6.0"
7760
+        "resolve": "^1.12.0"
7703
       },
7761
       },
7704
       "dependencies": {
7762
       "dependencies": {
7705
         "doctrine": {
7763
         "doctrine": {
7712
             "isarray": "^1.0.0"
7770
             "isarray": "^1.0.0"
7713
           }
7771
           }
7714
         },
7772
         },
7773
+        "eslint-module-utils": {
7774
+          "version": "2.6.0",
7775
+          "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz",
7776
+          "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==",
7777
+          "dev": true,
7778
+          "requires": {
7779
+            "debug": "^2.6.9",
7780
+            "pkg-dir": "^2.0.0"
7781
+          }
7782
+        },
7783
+        "has": {
7784
+          "version": "1.0.3",
7785
+          "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
7786
+          "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
7787
+          "dev": true,
7788
+          "requires": {
7789
+            "function-bind": "^1.1.1"
7790
+          }
7791
+        },
7715
         "isarray": {
7792
         "isarray": {
7716
           "version": "1.0.0",
7793
           "version": "1.0.0",
7717
           "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
7794
           "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
7718
           "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
7795
           "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
7719
           "dev": true
7796
           "dev": true
7797
+        },
7798
+        "resolve": {
7799
+          "version": "1.17.0",
7800
+          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
7801
+          "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
7802
+          "dev": true,
7803
+          "requires": {
7804
+            "path-parse": "^1.0.6"
7805
+          }
7720
         }
7806
         }
7721
       }
7807
       }
7722
     },
7808
     },
12598
         }
12684
         }
12599
       }
12685
       }
12600
     },
12686
     },
12687
+    "object-inspect": {
12688
+      "version": "1.7.0",
12689
+      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
12690
+      "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
12691
+      "dev": true
12692
+    },
12601
     "object-is": {
12693
     "object-is": {
12602
       "version": "1.0.1",
12694
       "version": "1.0.1",
12603
       "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
12695
       "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
16713
         }
16805
         }
16714
       }
16806
       }
16715
     },
16807
     },
16808
+    "string.prototype.trimend": {
16809
+      "version": "1.0.1",
16810
+      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
16811
+      "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
16812
+      "dev": true,
16813
+      "requires": {
16814
+        "define-properties": "^1.1.3",
16815
+        "es-abstract": "^1.17.5"
16816
+      },
16817
+      "dependencies": {
16818
+        "define-properties": {
16819
+          "version": "1.1.3",
16820
+          "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
16821
+          "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
16822
+          "dev": true,
16823
+          "requires": {
16824
+            "object-keys": "^1.0.12"
16825
+          }
16826
+        },
16827
+        "es-abstract": {
16828
+          "version": "1.17.5",
16829
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
16830
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
16831
+          "dev": true,
16832
+          "requires": {
16833
+            "es-to-primitive": "^1.2.1",
16834
+            "function-bind": "^1.1.1",
16835
+            "has": "^1.0.3",
16836
+            "has-symbols": "^1.0.1",
16837
+            "is-callable": "^1.1.5",
16838
+            "is-regex": "^1.0.5",
16839
+            "object-inspect": "^1.7.0",
16840
+            "object-keys": "^1.1.1",
16841
+            "object.assign": "^4.1.0",
16842
+            "string.prototype.trimleft": "^2.1.1",
16843
+            "string.prototype.trimright": "^2.1.1"
16844
+          }
16845
+        },
16846
+        "es-to-primitive": {
16847
+          "version": "1.2.1",
16848
+          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
16849
+          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
16850
+          "dev": true,
16851
+          "requires": {
16852
+            "is-callable": "^1.1.4",
16853
+            "is-date-object": "^1.0.1",
16854
+            "is-symbol": "^1.0.2"
16855
+          }
16856
+        },
16857
+        "has": {
16858
+          "version": "1.0.3",
16859
+          "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
16860
+          "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
16861
+          "dev": true,
16862
+          "requires": {
16863
+            "function-bind": "^1.1.1"
16864
+          }
16865
+        },
16866
+        "has-symbols": {
16867
+          "version": "1.0.1",
16868
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
16869
+          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
16870
+          "dev": true
16871
+        },
16872
+        "is-callable": {
16873
+          "version": "1.1.5",
16874
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
16875
+          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
16876
+          "dev": true
16877
+        },
16878
+        "is-regex": {
16879
+          "version": "1.0.5",
16880
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
16881
+          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
16882
+          "dev": true,
16883
+          "requires": {
16884
+            "has": "^1.0.3"
16885
+          }
16886
+        },
16887
+        "is-symbol": {
16888
+          "version": "1.0.3",
16889
+          "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
16890
+          "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
16891
+          "dev": true,
16892
+          "requires": {
16893
+            "has-symbols": "^1.0.1"
16894
+          }
16895
+        },
16896
+        "object-keys": {
16897
+          "version": "1.1.1",
16898
+          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
16899
+          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
16900
+          "dev": true
16901
+        }
16902
+      }
16903
+    },
16904
+    "string.prototype.trimleft": {
16905
+      "version": "2.1.2",
16906
+      "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
16907
+      "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
16908
+      "dev": true,
16909
+      "requires": {
16910
+        "define-properties": "^1.1.3",
16911
+        "es-abstract": "^1.17.5",
16912
+        "string.prototype.trimstart": "^1.0.0"
16913
+      },
16914
+      "dependencies": {
16915
+        "define-properties": {
16916
+          "version": "1.1.3",
16917
+          "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
16918
+          "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
16919
+          "dev": true,
16920
+          "requires": {
16921
+            "object-keys": "^1.0.12"
16922
+          }
16923
+        },
16924
+        "es-abstract": {
16925
+          "version": "1.17.5",
16926
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
16927
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
16928
+          "dev": true,
16929
+          "requires": {
16930
+            "es-to-primitive": "^1.2.1",
16931
+            "function-bind": "^1.1.1",
16932
+            "has": "^1.0.3",
16933
+            "has-symbols": "^1.0.1",
16934
+            "is-callable": "^1.1.5",
16935
+            "is-regex": "^1.0.5",
16936
+            "object-inspect": "^1.7.0",
16937
+            "object-keys": "^1.1.1",
16938
+            "object.assign": "^4.1.0",
16939
+            "string.prototype.trimleft": "^2.1.1",
16940
+            "string.prototype.trimright": "^2.1.1"
16941
+          }
16942
+        },
16943
+        "es-to-primitive": {
16944
+          "version": "1.2.1",
16945
+          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
16946
+          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
16947
+          "dev": true,
16948
+          "requires": {
16949
+            "is-callable": "^1.1.4",
16950
+            "is-date-object": "^1.0.1",
16951
+            "is-symbol": "^1.0.2"
16952
+          }
16953
+        },
16954
+        "has": {
16955
+          "version": "1.0.3",
16956
+          "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
16957
+          "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
16958
+          "dev": true,
16959
+          "requires": {
16960
+            "function-bind": "^1.1.1"
16961
+          }
16962
+        },
16963
+        "has-symbols": {
16964
+          "version": "1.0.1",
16965
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
16966
+          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
16967
+          "dev": true
16968
+        },
16969
+        "is-callable": {
16970
+          "version": "1.1.5",
16971
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
16972
+          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
16973
+          "dev": true
16974
+        },
16975
+        "is-regex": {
16976
+          "version": "1.0.5",
16977
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
16978
+          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
16979
+          "dev": true,
16980
+          "requires": {
16981
+            "has": "^1.0.3"
16982
+          }
16983
+        },
16984
+        "is-symbol": {
16985
+          "version": "1.0.3",
16986
+          "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
16987
+          "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
16988
+          "dev": true,
16989
+          "requires": {
16990
+            "has-symbols": "^1.0.1"
16991
+          }
16992
+        },
16993
+        "object-keys": {
16994
+          "version": "1.1.1",
16995
+          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
16996
+          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
16997
+          "dev": true
16998
+        }
16999
+      }
17000
+    },
17001
+    "string.prototype.trimright": {
17002
+      "version": "2.1.2",
17003
+      "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
17004
+      "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
17005
+      "dev": true,
17006
+      "requires": {
17007
+        "define-properties": "^1.1.3",
17008
+        "es-abstract": "^1.17.5",
17009
+        "string.prototype.trimend": "^1.0.0"
17010
+      },
17011
+      "dependencies": {
17012
+        "define-properties": {
17013
+          "version": "1.1.3",
17014
+          "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
17015
+          "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
17016
+          "dev": true,
17017
+          "requires": {
17018
+            "object-keys": "^1.0.12"
17019
+          }
17020
+        },
17021
+        "es-abstract": {
17022
+          "version": "1.17.5",
17023
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
17024
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
17025
+          "dev": true,
17026
+          "requires": {
17027
+            "es-to-primitive": "^1.2.1",
17028
+            "function-bind": "^1.1.1",
17029
+            "has": "^1.0.3",
17030
+            "has-symbols": "^1.0.1",
17031
+            "is-callable": "^1.1.5",
17032
+            "is-regex": "^1.0.5",
17033
+            "object-inspect": "^1.7.0",
17034
+            "object-keys": "^1.1.1",
17035
+            "object.assign": "^4.1.0",
17036
+            "string.prototype.trimleft": "^2.1.1",
17037
+            "string.prototype.trimright": "^2.1.1"
17038
+          }
17039
+        },
17040
+        "es-to-primitive": {
17041
+          "version": "1.2.1",
17042
+          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
17043
+          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
17044
+          "dev": true,
17045
+          "requires": {
17046
+            "is-callable": "^1.1.4",
17047
+            "is-date-object": "^1.0.1",
17048
+            "is-symbol": "^1.0.2"
17049
+          }
17050
+        },
17051
+        "has": {
17052
+          "version": "1.0.3",
17053
+          "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
17054
+          "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
17055
+          "dev": true,
17056
+          "requires": {
17057
+            "function-bind": "^1.1.1"
17058
+          }
17059
+        },
17060
+        "has-symbols": {
17061
+          "version": "1.0.1",
17062
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
17063
+          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
17064
+          "dev": true
17065
+        },
17066
+        "is-callable": {
17067
+          "version": "1.1.5",
17068
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
17069
+          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
17070
+          "dev": true
17071
+        },
17072
+        "is-regex": {
17073
+          "version": "1.0.5",
17074
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
17075
+          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
17076
+          "dev": true,
17077
+          "requires": {
17078
+            "has": "^1.0.3"
17079
+          }
17080
+        },
17081
+        "is-symbol": {
17082
+          "version": "1.0.3",
17083
+          "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
17084
+          "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
17085
+          "dev": true,
17086
+          "requires": {
17087
+            "has-symbols": "^1.0.1"
17088
+          }
17089
+        },
17090
+        "object-keys": {
17091
+          "version": "1.1.1",
17092
+          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
17093
+          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
17094
+          "dev": true
17095
+        }
17096
+      }
17097
+    },
17098
+    "string.prototype.trimstart": {
17099
+      "version": "1.0.1",
17100
+      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
17101
+      "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
17102
+      "dev": true,
17103
+      "requires": {
17104
+        "define-properties": "^1.1.3",
17105
+        "es-abstract": "^1.17.5"
17106
+      },
17107
+      "dependencies": {
17108
+        "define-properties": {
17109
+          "version": "1.1.3",
17110
+          "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
17111
+          "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
17112
+          "dev": true,
17113
+          "requires": {
17114
+            "object-keys": "^1.0.12"
17115
+          }
17116
+        },
17117
+        "es-abstract": {
17118
+          "version": "1.17.5",
17119
+          "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
17120
+          "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
17121
+          "dev": true,
17122
+          "requires": {
17123
+            "es-to-primitive": "^1.2.1",
17124
+            "function-bind": "^1.1.1",
17125
+            "has": "^1.0.3",
17126
+            "has-symbols": "^1.0.1",
17127
+            "is-callable": "^1.1.5",
17128
+            "is-regex": "^1.0.5",
17129
+            "object-inspect": "^1.7.0",
17130
+            "object-keys": "^1.1.1",
17131
+            "object.assign": "^4.1.0",
17132
+            "string.prototype.trimleft": "^2.1.1",
17133
+            "string.prototype.trimright": "^2.1.1"
17134
+          }
17135
+        },
17136
+        "es-to-primitive": {
17137
+          "version": "1.2.1",
17138
+          "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
17139
+          "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
17140
+          "dev": true,
17141
+          "requires": {
17142
+            "is-callable": "^1.1.4",
17143
+            "is-date-object": "^1.0.1",
17144
+            "is-symbol": "^1.0.2"
17145
+          }
17146
+        },
17147
+        "has": {
17148
+          "version": "1.0.3",
17149
+          "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
17150
+          "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
17151
+          "dev": true,
17152
+          "requires": {
17153
+            "function-bind": "^1.1.1"
17154
+          }
17155
+        },
17156
+        "has-symbols": {
17157
+          "version": "1.0.1",
17158
+          "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
17159
+          "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
17160
+          "dev": true
17161
+        },
17162
+        "is-callable": {
17163
+          "version": "1.1.5",
17164
+          "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
17165
+          "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==",
17166
+          "dev": true
17167
+        },
17168
+        "is-regex": {
17169
+          "version": "1.0.5",
17170
+          "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
17171
+          "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
17172
+          "dev": true,
17173
+          "requires": {
17174
+            "has": "^1.0.3"
17175
+          }
17176
+        },
17177
+        "is-symbol": {
17178
+          "version": "1.0.3",
17179
+          "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
17180
+          "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
17181
+          "dev": true,
17182
+          "requires": {
17183
+            "has-symbols": "^1.0.1"
17184
+          }
17185
+        },
17186
+        "object-keys": {
17187
+          "version": "1.1.1",
17188
+          "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
17189
+          "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
17190
+          "dev": true
17191
+        }
17192
+      }
17193
+    },
16716
     "string_decoder": {
17194
     "string_decoder": {
16717
       "version": "0.10.31",
17195
       "version": "0.10.31",
16718
       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
17196
       "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",

+ 2
- 2
package.json 查看文件

113
     "clean-css": "3.4.25",
113
     "clean-css": "3.4.25",
114
     "css-loader": "0.28.7",
114
     "css-loader": "0.28.7",
115
     "eslint": "5.6.1",
115
     "eslint": "5.6.1",
116
-    "eslint-config-jitsi": "github:jitsi/eslint-config-jitsi#1.0.1",
116
+    "eslint-config-jitsi": "github:jitsi/eslint-config-jitsi#1.0.3",
117
     "eslint-plugin-flowtype": "2.50.3",
117
     "eslint-plugin-flowtype": "2.50.3",
118
-    "eslint-plugin-import": "2.14.0",
118
+    "eslint-plugin-import": "2.20.2",
119
     "eslint-plugin-jsdoc": "3.8.0",
119
     "eslint-plugin-jsdoc": "3.8.0",
120
     "eslint-plugin-react": "7.11.1",
120
     "eslint-plugin-react": "7.11.1",
121
     "eslint-plugin-react-native": "3.3.0",
121
     "eslint-plugin-react-native": "3.3.0",

+ 1
- 1
react/features/always-on-top/HangupButton.js 查看文件

2
 
2
 
3
 // We need to reference these files directly to avoid loading things that are not available
3
 // We need to reference these files directly to avoid loading things that are not available
4
 // in this environment (e.g. JitsiMeetJS or interfaceConfig)
4
 // in this environment (e.g. JitsiMeetJS or interfaceConfig)
5
-import AbstractHangupButton from '../base/toolbox/components/AbstractHangupButton';
6
 import type { Props } from '../base/toolbox/components/AbstractButton';
5
 import type { Props } from '../base/toolbox/components/AbstractButton';
6
+import AbstractHangupButton from '../base/toolbox/components/AbstractHangupButton';
7
 
7
 
8
 const { api } = window.alwaysOnTop;
8
 const { api } = window.alwaysOnTop;
9
 
9
 

+ 1
- 1
react/features/always-on-top/VideoMuteButton.js 查看文件

2
 
2
 
3
 // We need to reference these files directly to avoid loading things that are not available
3
 // We need to reference these files directly to avoid loading things that are not available
4
 // in this environment (e.g. JitsiMeetJS or interfaceConfig)
4
 // in this environment (e.g. JitsiMeetJS or interfaceConfig)
5
-import AbstractVideoMuteButton from '../base/toolbox/components/AbstractVideoMuteButton';
6
 import type { Props } from '../base/toolbox/components/AbstractButton';
5
 import type { Props } from '../base/toolbox/components/AbstractButton';
6
+import AbstractVideoMuteButton from '../base/toolbox/components/AbstractVideoMuteButton';
7
 
7
 
8
 const { api } = window.alwaysOnTop;
8
 const { api } = window.alwaysOnTop;
9
 
9
 

+ 5
- 4
react/features/analytics/functions.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
+import {
4
+    checkChromeExtensionsInstalled,
5
+    isMobileBrowser
6
+} from '../base/environment/utils';
3
 import JitsiMeetJS, {
7
 import JitsiMeetJS, {
4
     analytics,
8
     analytics,
5
     browser,
9
     browser,
6
     isAnalyticsEnabled
10
     isAnalyticsEnabled
7
 } from '../base/lib-jitsi-meet';
11
 } from '../base/lib-jitsi-meet';
8
 import { getJitsiMeetGlobalNS, loadScript } from '../base/util';
12
 import { getJitsiMeetGlobalNS, loadScript } from '../base/util';
9
-import {
10
-    checkChromeExtensionsInstalled,
11
-    isMobileBrowser
12
-} from '../base/environment/utils';
13
+
13
 import { AmplitudeHandler, MatomoHandler } from './handlers';
14
 import { AmplitudeHandler, MatomoHandler } from './handlers';
14
 import logger from './logger';
15
 import logger from './logger';
15
 
16
 

+ 1
- 1
react/features/analytics/middleware.js 查看文件

16
     TRACK_UPDATED
16
     TRACK_UPDATED
17
 } from '../base/tracks';
17
 } from '../base/tracks';
18
 
18
 
19
-import { UPDATE_LOCAL_TRACKS_DURATION } from './actionTypes';
20
 import { createLocalTracksDurationEvent, createNetworkInfoEvent } from './AnalyticsEvents';
19
 import { createLocalTracksDurationEvent, createNetworkInfoEvent } from './AnalyticsEvents';
20
+import { UPDATE_LOCAL_TRACKS_DURATION } from './actionTypes';
21
 import { createHandlers, initAnalytics, resetAnalytics, sendAnalytics } from './functions';
21
 import { createHandlers, initAnalytics, resetAnalytics, sendAnalytics } from './functions';
22
 
22
 
23
 /**
23
 /**

+ 1
- 3
react/features/app/components/AbstractApp.js 查看文件

3
 import React, { Fragment } from 'react';
3
 import React, { Fragment } from 'react';
4
 
4
 
5
 import { BaseApp } from '../../base/app';
5
 import { BaseApp } from '../../base/app';
6
+import '../../base/lastn'; // Register lastN middleware
6
 import { toURLString } from '../../base/util';
7
 import { toURLString } from '../../base/util';
7
 import '../../follow-me';
8
 import '../../follow-me';
8
 import { OverlayContainer } from '../../overlay';
9
 import { OverlayContainer } from '../../overlay';
9
-
10
-import '../../base/lastn'; // Register lastN middleware
11
 import '../../rejoin'; // Enable rejoin analytics
10
 import '../../rejoin'; // Enable rejoin analytics
12
-
13
 import { appNavigate } from '../actions';
11
 import { appNavigate } from '../actions';
14
 import { getDefaultURL } from '../functions';
12
 import { getDefaultURL } from '../functions';
15
 
13
 

+ 1
- 1
react/features/app/components/App.native.js 查看文件

23
 import '../../mobile/proximity';
23
 import '../../mobile/proximity';
24
 import '../../mobile/wake-lock';
24
 import '../../mobile/wake-lock';
25
 import '../../mobile/watchos';
25
 import '../../mobile/watchos';
26
-
27
 import logger from '../logger';
26
 import logger from '../logger';
27
+
28
 import { AbstractApp } from './AbstractApp';
28
 import { AbstractApp } from './AbstractApp';
29
 import type { Props as AbstractAppProps } from './AbstractApp';
29
 import type { Props as AbstractAppProps } from './AbstractApp';
30
 
30
 

+ 1
- 1
react/features/app/getRouteToRender.js 查看文件

4
 import type { Component } from 'react';
4
 import type { Component } from 'react';
5
 
5
 
6
 import { isRoomValid } from '../base/conference';
6
 import { isRoomValid } from '../base/conference';
7
-import { toState } from '../base/redux';
8
 import { isSupportedBrowser } from '../base/environment';
7
 import { isSupportedBrowser } from '../base/environment';
8
+import { toState } from '../base/redux';
9
 import { Conference } from '../conference';
9
 import { Conference } from '../conference';
10
 import { getDeepLinkingPage } from '../deep-linking';
10
 import { getDeepLinkingPage } from '../deep-linking';
11
 import { UnsupportedDesktopBrowser } from '../unsupported-browser';
11
 import { UnsupportedDesktopBrowser } from '../unsupported-browser';

+ 0
- 1
react/features/app/middleware.js 查看文件

4
     createConnectionEvent,
4
     createConnectionEvent,
5
     sendAnalytics
5
     sendAnalytics
6
 } from '../analytics';
6
 } from '../analytics';
7
-
8
 import { SET_ROOM } from '../base/conference';
7
 import { SET_ROOM } from '../base/conference';
9
 import {
8
 import {
10
     CONNECTION_ESTABLISHED,
9
     CONNECTION_ESTABLISHED,

+ 0
- 1
react/features/authentication/components/LoginDialog.native.js 查看文件

18
 import { translate } from '../../base/i18n';
18
 import { translate } from '../../base/i18n';
19
 import { JitsiConnectionErrors } from '../../base/lib-jitsi-meet';
19
 import { JitsiConnectionErrors } from '../../base/lib-jitsi-meet';
20
 import type { StyleType } from '../../base/styles';
20
 import type { StyleType } from '../../base/styles';
21
-
22
 import { authenticateAndUpgradeRole, cancelLogin } from '../actions';
21
 import { authenticateAndUpgradeRole, cancelLogin } from '../actions';
23
 
22
 
24
 // Register styles.
23
 // Register styles.

+ 0
- 1
react/features/authentication/components/WaitForOwnerDialog.native.js 查看文件

6
 import { ConfirmDialog } from '../../base/dialog';
6
 import { ConfirmDialog } from '../../base/dialog';
7
 import { translate } from '../../base/i18n';
7
 import { translate } from '../../base/i18n';
8
 import { connect } from '../../base/redux';
8
 import { connect } from '../../base/redux';
9
-
10
 import { cancelWaitForOwner, _openLoginDialog } from '../actions';
9
 import { cancelWaitForOwner, _openLoginDialog } from '../actions';
11
 
10
 
12
 /**
11
 /**

+ 5
- 5
react/features/authentication/middleware.js 查看文件

16
 } from '../base/lib-jitsi-meet';
16
 } from '../base/lib-jitsi-meet';
17
 import { MiddlewareRegistry } from '../base/redux';
17
 import { MiddlewareRegistry } from '../base/redux';
18
 
18
 
19
+import {
20
+    CANCEL_LOGIN,
21
+    STOP_WAIT_FOR_OWNER,
22
+    WAIT_FOR_OWNER
23
+} from './actionTypes';
19
 import {
24
 import {
20
     _openLoginDialog,
25
     _openLoginDialog,
21
     _openWaitForOwnerDialog,
26
     _openWaitForOwnerDialog,
22
     stopWaitForOwner,
27
     stopWaitForOwner,
23
     waitForOwner
28
     waitForOwner
24
 } from './actions';
29
 } from './actions';
25
-import {
26
-    CANCEL_LOGIN,
27
-    STOP_WAIT_FOR_OWNER,
28
-    WAIT_FOR_OWNER
29
-} from './actionTypes';
30
 import { LoginDialog, WaitForOwnerDialog } from './components';
30
 import { LoginDialog, WaitForOwnerDialog } from './components';
31
 
31
 
32
 /**
32
 /**

+ 2
- 2
react/features/base/audio-only/actions.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
-import UIEvents from '../../../../service/UI/UIEvents';
3
+import type { Dispatch } from 'redux';
4
 
4
 
5
+import UIEvents from '../../../../service/UI/UIEvents';
5
 import { createAudioOnlyChangedEvent, sendAnalytics } from '../../analytics';
6
 import { createAudioOnlyChangedEvent, sendAnalytics } from '../../analytics';
6
 
7
 
7
 import { SET_AUDIO_ONLY } from './actionTypes';
8
 import { SET_AUDIO_ONLY } from './actionTypes';
8
 import logger from './logger';
9
 import logger from './logger';
9
 
10
 
10
-import type { Dispatch } from 'redux';
11
 
11
 
12
 declare var APP: Object;
12
 declare var APP: Object;
13
 
13
 

+ 0
- 1
react/features/base/avatar/components/Avatar.js 查看文件

5
 import { IconShareDesktop } from '../../icons';
5
 import { IconShareDesktop } from '../../icons';
6
 import { getParticipantById } from '../../participants';
6
 import { getParticipantById } from '../../participants';
7
 import { connect } from '../../redux';
7
 import { connect } from '../../redux';
8
-
9
 import { getAvatarColor, getInitials } from '../functions';
8
 import { getAvatarColor, getInitials } from '../functions';
10
 
9
 
11
 import { StatelessAvatar } from '.';
10
 import { StatelessAvatar } from '.';

+ 2
- 3
react/features/base/avatar/components/native/StatelessAvatar.js 查看文件

5
 
5
 
6
 import { Icon } from '../../../icons';
6
 import { Icon } from '../../../icons';
7
 import { type StyleType } from '../../../styles';
7
 import { type StyleType } from '../../../styles';
8
-
9
 import AbstractStatelessAvatar, { type Props as AbstractProps } from '../AbstractStatelessAvatar';
8
 import AbstractStatelessAvatar, { type Props as AbstractProps } from '../AbstractStatelessAvatar';
10
 
9
 
11
 import styles from './styles';
10
 import styles from './styles';
12
 
11
 
12
+const DEFAULT_AVATAR = require('../../../../../../images/avatar.png');
13
+
13
 type Props = AbstractProps & {
14
 type Props = AbstractProps & {
14
 
15
 
15
     /**
16
     /**
23
     style?: StyleType
24
     style?: StyleType
24
 };
25
 };
25
 
26
 
26
-const DEFAULT_AVATAR = require('../../../../../../images/avatar.png');
27
-
28
 /**
27
 /**
29
  * Implements a stateless avatar component that renders an avatar purely from what gets passed through
28
  * Implements a stateless avatar component that renders an avatar purely from what gets passed through
30
  * props.
29
  * props.

+ 0
- 1
react/features/base/avatar/components/web/StatelessAvatar.js 查看文件

3
 import React from 'react';
3
 import React from 'react';
4
 
4
 
5
 import { Icon } from '../../../icons';
5
 import { Icon } from '../../../icons';
6
-
7
 import AbstractStatelessAvatar, { type Props as AbstractProps } from '../AbstractStatelessAvatar';
6
 import AbstractStatelessAvatar, { type Props as AbstractProps } from '../AbstractStatelessAvatar';
8
 
7
 
9
 type Props = AbstractProps & {
8
 type Props = AbstractProps & {

+ 1
- 1
react/features/base/color-scheme/middleware.js 查看文件

2
 
2
 
3
 import { MiddlewareRegistry } from '../redux';
3
 import { MiddlewareRegistry } from '../redux';
4
 
4
 
5
-import { SET_COLOR_SCHEME } from './actionTypes';
6
 import ColorSchemeRegistry from './ColorSchemeRegistry';
5
 import ColorSchemeRegistry from './ColorSchemeRegistry';
6
+import { SET_COLOR_SCHEME } from './actionTypes';
7
 
7
 
8
 /**
8
 /**
9
  * The middleware of the feature {@code base/color-scheme}.
9
  * The middleware of the feature {@code base/color-scheme}.

+ 0
- 1
react/features/base/conference/actions.js 查看文件

8
 } from '../../analytics';
8
 } from '../../analytics';
9
 import { getName } from '../../app';
9
 import { getName } from '../../app';
10
 import { endpointMessageReceived } from '../../subtitles';
10
 import { endpointMessageReceived } from '../../subtitles';
11
-
12
 import { JITSI_CONNECTION_CONFERENCE_KEY } from '../connection';
11
 import { JITSI_CONNECTION_CONFERENCE_KEY } from '../connection';
13
 import { JitsiConferenceEvents } from '../lib-jitsi-meet';
12
 import { JitsiConferenceEvents } from '../lib-jitsi-meet';
14
 import { setAudioMuted, setVideoMuted } from '../media';
13
 import { setAudioMuted, setVideoMuted } from '../media';

+ 8
- 9
react/features/base/conference/middleware.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
-import { openDisplayNamePrompt } from '../../display-name';
4
-
5
 import {
3
 import {
6
     ACTION_PINNED,
4
     ACTION_PINNED,
7
     ACTION_UNPINNED,
5
     ACTION_UNPINNED,
9
     createPinnedEvent,
7
     createPinnedEvent,
10
     sendAnalytics
8
     sendAnalytics
11
 } from '../../analytics';
9
 } from '../../analytics';
10
+import { openDisplayNamePrompt } from '../../display-name';
12
 import { CONNECTION_ESTABLISHED, CONNECTION_FAILED } from '../connection';
11
 import { CONNECTION_ESTABLISHED, CONNECTION_FAILED } from '../connection';
13
 import { JitsiConferenceErrors } from '../lib-jitsi-meet';
12
 import { JitsiConferenceErrors } from '../lib-jitsi-meet';
13
+import { MEDIA_TYPE } from '../media';
14
 import {
14
 import {
15
     getLocalParticipant,
15
     getLocalParticipant,
16
     getParticipantById,
16
     getParticipantById,
21
 import { MiddlewareRegistry, StateListenerRegistry } from '../redux';
21
 import { MiddlewareRegistry, StateListenerRegistry } from '../redux';
22
 import { TRACK_ADDED, TRACK_REMOVED } from '../tracks';
22
 import { TRACK_ADDED, TRACK_REMOVED } from '../tracks';
23
 
23
 
24
-import {
25
-    conferenceFailed,
26
-    conferenceWillLeave,
27
-    createConference,
28
-    setSubject
29
-} from './actions';
30
 import {
24
 import {
31
     CONFERENCE_FAILED,
25
     CONFERENCE_FAILED,
32
     CONFERENCE_JOINED,
26
     CONFERENCE_JOINED,
37
     SET_PENDING_SUBJECT_CHANGE,
31
     SET_PENDING_SUBJECT_CHANGE,
38
     SET_ROOM
32
     SET_ROOM
39
 } from './actionTypes';
33
 } from './actionTypes';
34
+import {
35
+    conferenceFailed,
36
+    conferenceWillLeave,
37
+    createConference,
38
+    setSubject
39
+} from './actions';
40
 import {
40
 import {
41
     _addLocalTracksToConference,
41
     _addLocalTracksToConference,
42
     _removeLocalTracksFromConference,
42
     _removeLocalTracksFromConference,
44
     getCurrentConference
44
     getCurrentConference
45
 } from './functions';
45
 } from './functions';
46
 import logger from './logger';
46
 import logger from './logger';
47
-import { MEDIA_TYPE } from '../media';
48
 
47
 
49
 declare var APP: Object;
48
 declare var APP: Object;
50
 
49
 

+ 1
- 1
react/features/base/conference/reducer.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
+import { LOCKED_LOCALLY, LOCKED_REMOTELY } from '../../room-lock';
3
 import { CONNECTION_WILL_CONNECT, SET_LOCATION_URL } from '../connection';
4
 import { CONNECTION_WILL_CONNECT, SET_LOCATION_URL } from '../connection';
4
 import { JitsiConferenceErrors } from '../lib-jitsi-meet';
5
 import { JitsiConferenceErrors } from '../lib-jitsi-meet';
5
 import { assign, ReducerRegistry, set } from '../redux';
6
 import { assign, ReducerRegistry, set } from '../redux';
6
-import { LOCKED_LOCALLY, LOCKED_REMOTELY } from '../../room-lock';
7
 
7
 
8
 import {
8
 import {
9
     AUTH_STATUS_CHANGED,
9
     AUTH_STATUS_CHANGED,

+ 2
- 1
react/features/base/config/functions.any.js 查看文件

3
 import { jitsiLocalStorage } from 'js-utils';
3
 import { jitsiLocalStorage } from 'js-utils';
4
 import _ from 'lodash';
4
 import _ from 'lodash';
5
 
5
 
6
+import { parseURLParams } from '../util';
7
+
6
 import CONFIG_WHITELIST from './configWhitelist';
8
 import CONFIG_WHITELIST from './configWhitelist';
7
 import { _CONFIG_STORE_PREFIX } from './constants';
9
 import { _CONFIG_STORE_PREFIX } from './constants';
8
 import INTERFACE_CONFIG_WHITELIST from './interfaceConfigWhitelist';
10
 import INTERFACE_CONFIG_WHITELIST from './interfaceConfigWhitelist';
9
-import { parseURLParams } from '../util';
10
 import logger from './logger';
11
 import logger from './logger';
11
 
12
 
12
 // XXX The function getRoomName is split out of
13
 // XXX The function getRoomName is split out of

+ 0
- 1
react/features/base/connection/reducer.js 查看文件

11
     CONNECTION_WILL_CONNECT,
11
     CONNECTION_WILL_CONNECT,
12
     SET_LOCATION_URL
12
     SET_LOCATION_URL
13
 } from './actionTypes';
13
 } from './actionTypes';
14
-
15
 import type { ConnectionFailedError } from './actions.native';
14
 import type { ConnectionFailedError } from './actions.native';
16
 
15
 
17
 /**
16
 /**

+ 1
- 1
react/features/base/devices/functions.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
-import { parseURLParams } from '../util';
4
 import JitsiMeetJS from '../lib-jitsi-meet';
3
 import JitsiMeetJS from '../lib-jitsi-meet';
5
 import { updateSettings } from '../settings';
4
 import { updateSettings } from '../settings';
5
+import { parseURLParams } from '../util';
6
 
6
 
7
 import logger from './logger';
7
 import logger from './logger';
8
 
8
 

+ 12
- 12
react/features/base/devices/middleware.js 查看文件

1
 /* global APP */
1
 /* global APP */
2
 
2
 
3
-import { CONFERENCE_JOINED } from '../conference';
4
-import { processExternalDeviceRequest } from '../../device-selection';
5
-import { MiddlewareRegistry } from '../redux';
6
 import UIEvents from '../../../../service/UI/UIEvents';
3
 import UIEvents from '../../../../service/UI/UIEvents';
4
+import { processExternalDeviceRequest } from '../../device-selection';
5
+import { showNotification, showWarningNotification } from '../../notifications';
6
+import { replaceAudioTrackById, replaceVideoTrackById, setDeviceStatusWarning } from '../../prejoin/actions';
7
+import { isPrejoinPageVisible } from '../../prejoin/functions';
8
+import { CONFERENCE_JOINED } from '../conference';
7
 import { JitsiTrackErrors } from '../lib-jitsi-meet';
9
 import { JitsiTrackErrors } from '../lib-jitsi-meet';
10
+import { MiddlewareRegistry } from '../redux';
11
+import { updateSettings } from '../settings';
8
 
12
 
9
-import {
10
-    removePendingDeviceRequests,
11
-    setAudioInputDevice,
12
-    setVideoInputDevice
13
-} from './actions';
14
 import {
13
 import {
15
     CHECK_AND_NOTIFY_FOR_NEW_DEVICE,
14
     CHECK_AND_NOTIFY_FOR_NEW_DEVICE,
16
     NOTIFY_CAMERA_ERROR,
15
     NOTIFY_CAMERA_ERROR,
18
     SET_AUDIO_INPUT_DEVICE,
17
     SET_AUDIO_INPUT_DEVICE,
19
     SET_VIDEO_INPUT_DEVICE
18
     SET_VIDEO_INPUT_DEVICE
20
 } from './actionTypes';
19
 } from './actionTypes';
21
-import { replaceAudioTrackById, replaceVideoTrackById, setDeviceStatusWarning } from '../../prejoin/actions';
22
-import { isPrejoinPageVisible } from '../../prejoin/functions';
23
-import { showNotification, showWarningNotification } from '../../notifications';
24
-import { updateSettings } from '../settings';
20
+import {
21
+    removePendingDeviceRequests,
22
+    setAudioInputDevice,
23
+    setVideoInputDevice
24
+} from './actions';
25
 import { formatDeviceLabel, setAudioOutputDeviceId } from './functions';
25
 import { formatDeviceLabel, setAudioOutputDeviceId } from './functions';
26
 import logger from './logger';
26
 import logger from './logger';
27
 
27
 

+ 2
- 3
react/features/base/devices/reducer.js 查看文件

1
+import { ReducerRegistry } from '../redux';
2
+
1
 import {
3
 import {
2
     ADD_PENDING_DEVICE_REQUEST,
4
     ADD_PENDING_DEVICE_REQUEST,
3
     REMOVE_PENDING_DEVICE_REQUESTS,
5
     REMOVE_PENDING_DEVICE_REQUESTS,
6
     UPDATE_DEVICE_LIST
8
     UPDATE_DEVICE_LIST
7
 } from './actionTypes';
9
 } from './actionTypes';
8
 import { groupDevicesByKind } from './functions';
10
 import { groupDevicesByKind } from './functions';
9
-
10
-import { ReducerRegistry } from '../redux';
11
-
12
 import logger from './logger';
11
 import logger from './logger';
13
 
12
 
14
 const DEFAULT_STATE = {
13
 const DEFAULT_STATE = {

+ 0
- 1
react/features/base/dialog/components/native/AlertDialog.js 查看文件

5
 
5
 
6
 import { translate } from '../../../i18n';
6
 import { translate } from '../../../i18n';
7
 import { connect } from '../../../redux';
7
 import { connect } from '../../../redux';
8
-
9
 import { _abstractMapStateToProps } from '../../functions';
8
 import { _abstractMapStateToProps } from '../../functions';
10
 
9
 
11
 import { type Props as AbstractProps } from './BaseDialog';
10
 import { type Props as AbstractProps } from './BaseDialog';

+ 1
- 1
react/features/base/dialog/components/native/BaseDialog.js 查看文件

11
 
11
 
12
 import { Icon, IconClose } from '../../../icons';
12
 import { Icon, IconClose } from '../../../icons';
13
 import { StyleType } from '../../../styles';
13
 import { StyleType } from '../../../styles';
14
-
15
 import AbstractDialog, {
14
 import AbstractDialog, {
16
     type Props as AbstractProps,
15
     type Props as AbstractProps,
17
     type State
16
     type State
18
 } from '../AbstractDialog';
17
 } from '../AbstractDialog';
18
+
19
 import { brandedDialog as styles } from './styles';
19
 import { brandedDialog as styles } from './styles';
20
 
20
 
21
 export type Props = AbstractProps & {
21
 export type Props = AbstractProps & {

+ 0
- 1
react/features/base/dialog/components/native/ConfirmDialog.js 查看文件

6
 import { translate } from '../../../i18n';
6
 import { translate } from '../../../i18n';
7
 import { connect } from '../../../redux';
7
 import { connect } from '../../../redux';
8
 import { StyleType } from '../../../styles';
8
 import { StyleType } from '../../../styles';
9
-
10
 import { _abstractMapStateToProps } from '../../functions';
9
 import { _abstractMapStateToProps } from '../../functions';
11
 
10
 
12
 import { type Props as BaseProps } from './BaseDialog';
11
 import { type Props as BaseProps } from './BaseDialog';

+ 0
- 1
react/features/base/dialog/components/native/CustomDialog.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
 import { connect } from '../../../redux';
3
 import { connect } from '../../../redux';
4
-
5
 import { _abstractMapStateToProps } from '../../functions';
4
 import { _abstractMapStateToProps } from '../../functions';
6
 
5
 
7
 import BaseDialog, { type Props } from './BaseDialog';
6
 import BaseDialog, { type Props } from './BaseDialog';

+ 0
- 1
react/features/base/dialog/components/native/CustomSubmitDialog.js 查看文件

2
 
2
 
3
 import { translate } from '../../../i18n';
3
 import { translate } from '../../../i18n';
4
 import { connect } from '../../../redux';
4
 import { connect } from '../../../redux';
5
-
6
 import { _abstractMapStateToProps } from '../../functions';
5
 import { _abstractMapStateToProps } from '../../functions';
7
 
6
 
8
 import { type Props as BaseProps } from './BaseDialog';
7
 import { type Props as BaseProps } from './BaseDialog';

+ 0
- 1
react/features/base/dialog/components/native/DialogContainer.js 查看文件

1
 import { connect } from '../../../redux';
1
 import { connect } from '../../../redux';
2
-
3
 import AbstractDialogContainer, {
2
 import AbstractDialogContainer, {
4
     abstractMapStateToProps
3
     abstractMapStateToProps
5
 } from '../AbstractDialogContainer';
4
 } from '../AbstractDialogContainer';

+ 0
- 2
react/features/base/dialog/components/native/InputDialog.js 查看文件

6
 import { translate } from '../../../i18n';
6
 import { translate } from '../../../i18n';
7
 import { connect } from '../../../redux';
7
 import { connect } from '../../../redux';
8
 import { StyleType } from '../../../styles';
8
 import { StyleType } from '../../../styles';
9
-
10
 import { _abstractMapStateToProps } from '../../functions';
9
 import { _abstractMapStateToProps } from '../../functions';
11
-
12
 import { type State as AbstractState } from '../AbstractDialog';
10
 import { type State as AbstractState } from '../AbstractDialog';
13
 
11
 
14
 import BaseDialog, { type Props as BaseProps } from './BaseDialog';
12
 import BaseDialog, { type Props as BaseProps } from './BaseDialog';

+ 0
- 1
react/features/base/dialog/components/native/styles.js 查看文件

4
 
4
 
5
 import { ColorSchemeRegistry, schemeColor } from '../../../color-scheme';
5
 import { ColorSchemeRegistry, schemeColor } from '../../../color-scheme';
6
 import { BoxModel, ColorPalette } from '../../../styles';
6
 import { BoxModel, ColorPalette } from '../../../styles';
7
-
8
 import { PREFERRED_DIALOG_SIZE } from '../../constants';
7
 import { PREFERRED_DIALOG_SIZE } from '../../constants';
9
 
8
 
10
 const BORDER_RADIUS = 5;
9
 const BORDER_RADIUS = 5;

+ 1
- 1
react/features/base/dialog/components/web/Dialog.js 查看文件

3
 import React from 'react';
3
 import React from 'react';
4
 
4
 
5
 import { connect } from '../../../redux';
5
 import { connect } from '../../../redux';
6
-
7
 import AbstractDialog from '../AbstractDialog';
6
 import AbstractDialog from '../AbstractDialog';
8
 import type { Props as AbstractDialogProps, State } from '../AbstractDialog';
7
 import type { Props as AbstractDialogProps, State } from '../AbstractDialog';
8
+
9
 import StatelessDialog from './StatelessDialog';
9
 import StatelessDialog from './StatelessDialog';
10
 
10
 
11
 /**
11
 /**

+ 0
- 1
react/features/base/dialog/components/web/DialogContainer.js 查看文件

2
 import React from 'react';
2
 import React from 'react';
3
 
3
 
4
 import { connect } from '../../../redux';
4
 import { connect } from '../../../redux';
5
-
6
 import AbstractDialogContainer, {
5
 import AbstractDialogContainer, {
7
     abstractMapStateToProps
6
     abstractMapStateToProps
8
 } from '../AbstractDialogContainer';
7
 } from '../AbstractDialogContainer';

+ 0
- 1
react/features/base/dialog/components/web/DialogWithTabs.js 查看文件

4
 import React, { Component } from 'react';
4
 import React, { Component } from 'react';
5
 
5
 
6
 import { translate } from '../../../i18n/functions';
6
 import { translate } from '../../../i18n/functions';
7
-
8
 import logger from '../../logger';
7
 import logger from '../../logger';
9
 
8
 
10
 import StatelessDialog from './StatelessDialog';
9
 import StatelessDialog from './StatelessDialog';

+ 0
- 1
react/features/base/dialog/components/web/StatelessDialog.js 查看文件

6
 import React, { Component } from 'react';
6
 import React, { Component } from 'react';
7
 
7
 
8
 import { translate } from '../../../i18n/functions';
8
 import { translate } from '../../../i18n/functions';
9
-
10
 import type { DialogProps } from '../../constants';
9
 import type { DialogProps } from '../../constants';
11
 
10
 
12
 /**
11
 /**

+ 1
- 0
react/features/base/environment/environment.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
 import JitsiMeetJS from '../lib-jitsi-meet';
3
 import JitsiMeetJS from '../lib-jitsi-meet';
4
+
4
 import { isMobileBrowser } from './utils';
5
 import { isMobileBrowser } from './utils';
5
 
6
 
6
 const { browser } = JitsiMeetJS.util;
7
 const { browser } = JitsiMeetJS.util;

+ 1
- 1
react/features/base/i18n/i18next.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
+import COUNTRIES_RESOURCES from 'i18n-iso-countries/langs/en.json';
3
 import i18next from 'i18next';
4
 import i18next from 'i18next';
4
 import I18nextXHRBackend from 'i18next-xhr-backend';
5
 import I18nextXHRBackend from 'i18next-xhr-backend';
5
 
6
 
6
-import COUNTRIES_RESOURCES from 'i18n-iso-countries/langs/en.json';
7
 import LANGUAGES_RESOURCES from '../../../../lang/languages.json';
7
 import LANGUAGES_RESOURCES from '../../../../lang/languages.json';
8
 import MAIN_RESOURCES from '../../../../lang/main.json';
8
 import MAIN_RESOURCES from '../../../../lang/main.json';
9
 
9
 

+ 1
- 2
react/features/base/icons/components/Icon.js 查看文件

2
 
2
 
3
 import React from 'react';
3
 import React from 'react';
4
 
4
 
5
-import { styleTypeToObject } from '../../styles';
6
-
7
 import { Container } from '../../react/base';
5
 import { Container } from '../../react/base';
6
+import { styleTypeToObject } from '../../styles';
8
 
7
 
9
 type Props = {
8
 type Props = {
10
 
9
 

+ 1
- 1
react/features/base/jwt/middleware.js 查看文件

10
 } from '../participants';
10
 } from '../participants';
11
 import { MiddlewareRegistry } from '../redux';
11
 import { MiddlewareRegistry } from '../redux';
12
 
12
 
13
-import { setJWT } from './actions';
14
 import { SET_JWT } from './actionTypes';
13
 import { SET_JWT } from './actionTypes';
14
+import { setJWT } from './actions';
15
 import { parseJWTFromURLParams } from './functions';
15
 import { parseJWTFromURLParams } from './functions';
16
 
16
 
17
 declare var APP: Object;
17
 declare var APP: Object;

+ 0
- 1
react/features/base/known-domains/middleware.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
 import { getDefaultURL } from '../../app';
3
 import { getDefaultURL } from '../../app';
4
-
5
 import { APP_WILL_MOUNT } from '../app';
4
 import { APP_WILL_MOUNT } from '../app';
6
 import { SET_ROOM } from '../conference';
5
 import { SET_ROOM } from '../conference';
7
 import { MiddlewareRegistry } from '../redux';
6
 import { MiddlewareRegistry } from '../redux';

+ 0
- 1
react/features/base/lastn/middleware.js 查看文件

4
 import { SELECT_LARGE_VIDEO_PARTICIPANT } from '../../large-video/actionTypes';
4
 import { SELECT_LARGE_VIDEO_PARTICIPANT } from '../../large-video/actionTypes';
5
 import { APP_STATE_CHANGED } from '../../mobile/background/actionTypes';
5
 import { APP_STATE_CHANGED } from '../../mobile/background/actionTypes';
6
 import { SCREEN_SHARE_PARTICIPANTS_UPDATED, SET_TILE_VIEW } from '../../video-layout/actionTypes';
6
 import { SCREEN_SHARE_PARTICIPANTS_UPDATED, SET_TILE_VIEW } from '../../video-layout/actionTypes';
7
-
8
 import { SET_AUDIO_ONLY } from '../audio-only/actionTypes';
7
 import { SET_AUDIO_ONLY } from '../audio-only/actionTypes';
9
 import { CONFERENCE_JOINED } from '../conference/actionTypes';
8
 import { CONFERENCE_JOINED } from '../conference/actionTypes';
10
 import { getParticipantById } from '../participants/functions';
9
 import { getParticipantById } from '../participants/functions';

+ 1
- 0
react/features/base/lib-jitsi-meet/functions.any.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
 import { toState } from '../redux';
3
 import { toState } from '../redux';
4
+
4
 import JitsiMeetJS from './_';
5
 import JitsiMeetJS from './_';
5
 
6
 
6
 const JitsiConferenceErrors = JitsiMeetJS.errors.conference;
7
 const JitsiConferenceErrors = JitsiMeetJS.errors.conference;

+ 1
- 0
react/features/base/lib-jitsi-meet/functions.native.js 查看文件

3
 import { NativeModules } from 'react-native';
3
 import { NativeModules } from 'react-native';
4
 
4
 
5
 import { loadScript } from '../util';
5
 import { loadScript } from '../util';
6
+
6
 import logger from './logger';
7
 import logger from './logger';
7
 
8
 
8
 export * from './functions.any';
9
 export * from './functions.any';

+ 1
- 1
react/features/base/lib-jitsi-meet/middleware.js 查看文件

6
 import { MiddlewareRegistry } from '../redux';
6
 import { MiddlewareRegistry } from '../redux';
7
 
7
 
8
 import JitsiMeetJS from './_';
8
 import JitsiMeetJS from './_';
9
-import { disposeLib, initLib } from './actions';
10
 import { LIB_WILL_INIT } from './actionTypes';
9
 import { LIB_WILL_INIT } from './actionTypes';
10
+import { disposeLib, initLib } from './actions';
11
 
11
 
12
 declare var APP: Object;
12
 declare var APP: Object;
13
 
13
 

+ 1
- 0
react/features/base/lib-jitsi-meet/native/WiFiStats.js 查看文件

1
 import { NativeModules } from 'react-native';
1
 import { NativeModules } from 'react-native';
2
+
2
 import { getJitsiMeetGlobalNS } from '../../util';
3
 import { getJitsiMeetGlobalNS } from '../../util';
3
 
4
 
4
 /**
5
 /**

+ 1
- 1
react/features/base/logging/functions.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
-import _ from 'lodash';
4
 import Logger, { getLogger as _getLogger } from 'jitsi-meet-logger';
3
 import Logger, { getLogger as _getLogger } from 'jitsi-meet-logger';
4
+import _ from 'lodash';
5
 
5
 
6
 import LogTransport from './LogTransport';
6
 import LogTransport from './LogTransport';
7
 
7
 

+ 3
- 4
react/features/base/logging/middleware.js 查看文件

9
     JitsiConferenceEvents
9
     JitsiConferenceEvents
10
 } from '../lib-jitsi-meet';
10
 } from '../lib-jitsi-meet';
11
 import { MiddlewareRegistry } from '../redux';
11
 import { MiddlewareRegistry } from '../redux';
12
-
13
 import { isTestModeEnabled } from '../testing';
12
 import { isTestModeEnabled } from '../testing';
14
 
13
 
15
-import { setLogCollector } from './actions';
16
-import { SET_LOGGING_CONFIG } from './actionTypes';
17
-import JitsiMeetLogStorage from './JitsiMeetLogStorage';
18
 import JitsiMeetInMemoryLogStorage from './JitsiMeetInMemoryLogStorage';
14
 import JitsiMeetInMemoryLogStorage from './JitsiMeetInMemoryLogStorage';
15
+import JitsiMeetLogStorage from './JitsiMeetLogStorage';
16
+import { SET_LOGGING_CONFIG } from './actionTypes';
17
+import { setLogCollector } from './actions';
19
 
18
 
20
 declare var APP: Object;
19
 declare var APP: Object;
21
 
20
 

+ 1
- 0
react/features/base/logging/reducer.js 查看文件

12
  * }}
12
  * }}
13
  */
13
  */
14
 const DEFAULT_STATE = {
14
 const DEFAULT_STATE = {
15
+    // eslint-disable-next-line
15
     config: require('../../../../logging_config.js'),
16
     config: require('../../../../logging_config.js'),
16
 
17
 
17
     /**
18
     /**

+ 1
- 1
react/features/base/media/components/AbstractVideoTrack.js 查看文件

4
 import type { Dispatch } from 'redux';
4
 import type { Dispatch } from 'redux';
5
 
5
 
6
 import { trackVideoStarted } from '../../tracks';
6
 import { trackVideoStarted } from '../../tracks';
7
-
8
 import { shouldRenderVideoTrack } from '../functions';
7
 import { shouldRenderVideoTrack } from '../functions';
8
+
9
 import { Video } from './_';
9
 import { Video } from './_';
10
 
10
 
11
 /**
11
 /**

+ 0
- 1
react/features/base/media/components/native/Audio.js 查看文件

3
 import Sound from 'react-native-sound';
3
 import Sound from 'react-native-sound';
4
 
4
 
5
 import logger from '../../logger';
5
 import logger from '../../logger';
6
-
7
 import AbstractAudio from '../AbstractAudio';
6
 import AbstractAudio from '../AbstractAudio';
8
 
7
 
9
 /**
8
 /**

+ 1
- 1
react/features/base/media/components/native/Video.js 查看文件

5
 
5
 
6
 import { Pressable } from '../../../react';
6
 import { Pressable } from '../../../react';
7
 
7
 
8
-import styles from './styles';
9
 import VideoTransform from './VideoTransform';
8
 import VideoTransform from './VideoTransform';
9
+import styles from './styles';
10
 
10
 
11
 /**
11
 /**
12
  * The type of the React {@code Component} props of {@link Video}.
12
  * The type of the React {@code Component} props of {@link Video}.

+ 1
- 1
react/features/base/media/components/native/VideoTrack.js 查看文件

4
 import { View } from 'react-native';
4
 import { View } from 'react-native';
5
 
5
 
6
 import { connect } from '../../../redux';
6
 import { connect } from '../../../redux';
7
-
8
 import AbstractVideoTrack from '../AbstractVideoTrack';
7
 import AbstractVideoTrack from '../AbstractVideoTrack';
9
 import type { Props } from '../AbstractVideoTrack';
8
 import type { Props } from '../AbstractVideoTrack';
9
+
10
 import styles from './styles';
10
 import styles from './styles';
11
 
11
 
12
 /**
12
 /**

+ 2
- 3
react/features/base/media/components/native/VideoTransform.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
+import type { PanResponderInstance } from 'PanResponder';
3
 import React, { Component } from 'react';
4
 import React, { Component } from 'react';
4
 import { PanResponder, PixelRatio, View } from 'react-native';
5
 import { PanResponder, PixelRatio, View } from 'react-native';
5
 import { type Dispatch } from 'redux';
6
 import { type Dispatch } from 'redux';
6
 
7
 
7
 import { connect } from '../../../redux';
8
 import { connect } from '../../../redux';
8
-
9
-import type { PanResponderInstance } from 'PanResponder';
10
-
11
 import { storeVideoTransform } from '../../actions';
9
 import { storeVideoTransform } from '../../actions';
10
+
12
 import styles from './styles';
11
 import styles from './styles';
13
 
12
 
14
 /**
13
 /**

+ 0
- 1
react/features/base/media/components/web/VideoTrack.js 查看文件

3
 import React from 'react';
3
 import React from 'react';
4
 
4
 
5
 import { connect } from '../../../redux';
5
 import { connect } from '../../../redux';
6
-
7
 import AbstractVideoTrack from '../AbstractVideoTrack';
6
 import AbstractVideoTrack from '../AbstractVideoTrack';
8
 import type { Props as AbstractVideoTrackProps } from '../AbstractVideoTrack';
7
 import type { Props as AbstractVideoTrackProps } from '../AbstractVideoTrack';
9
 
8
 

+ 0
- 1
react/features/base/media/middleware.js 查看文件

8
     sendAnalytics
8
     sendAnalytics
9
 } from '../../analytics';
9
 } from '../../analytics';
10
 import { APP_STATE_CHANGED } from '../../mobile/background';
10
 import { APP_STATE_CHANGED } from '../../mobile/background';
11
-
12
 import { SET_AUDIO_ONLY, setAudioOnly } from '../audio-only';
11
 import { SET_AUDIO_ONLY, setAudioOnly } from '../audio-only';
13
 import { isRoomValid, SET_ROOM } from '../conference';
12
 import { isRoomValid, SET_ROOM } from '../conference';
14
 import JitsiMeetJS from '../lib-jitsi-meet';
13
 import JitsiMeetJS from '../lib-jitsi-meet';

+ 0
- 1
react/features/base/modal/components/JitsiModal.js 查看文件

7
 import { HeaderWithNavigation, SlidingView } from '../../react';
7
 import { HeaderWithNavigation, SlidingView } from '../../react';
8
 import { connect } from '../../redux';
8
 import { connect } from '../../redux';
9
 import { StyleType } from '../../styles';
9
 import { StyleType } from '../../styles';
10
-
11
 import { setActiveModalId } from '../actions';
10
 import { setActiveModalId } from '../actions';
12
 
11
 
13
 import styles from './styles';
12
 import styles from './styles';

+ 1
- 2
react/features/base/net-info/NetworkInfoService.native.js 查看文件

1
 // @flow
1
 // @flow
2
-import EventEmitter from 'events';
3
 import NetInfo from '@react-native-community/netinfo';
2
 import NetInfo from '@react-native-community/netinfo';
4
 import type { NetInfoState, NetInfoSubscription } from '@react-native-community/netinfo';
3
 import type { NetInfoState, NetInfoSubscription } from '@react-native-community/netinfo';
4
+import EventEmitter from 'events';
5
 
5
 
6
 import { ONLINE_STATE_CHANGED_EVENT } from './events';
6
 import { ONLINE_STATE_CHANGED_EVENT } from './events';
7
-
8
 import type { NetworkInfo } from './types';
7
 import type { NetworkInfo } from './types';
9
 
8
 
10
 /**
9
 /**

+ 0
- 1
react/features/base/net-info/actions.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
 import { SET_NETWORK_INFO, _STORE_NETWORK_INFO_CLEANUP } from './actionTypes';
3
 import { SET_NETWORK_INFO, _STORE_NETWORK_INFO_CLEANUP } from './actionTypes';
4
-
5
 import type { NetworkInfo } from './types';
4
 import type { NetworkInfo } from './types';
6
 
5
 
7
 /**
6
 /**

+ 1
- 1
react/features/base/net-info/middleware.js 查看文件

3
 import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../app';
3
 import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../app';
4
 import { MiddlewareRegistry } from '../redux';
4
 import { MiddlewareRegistry } from '../redux';
5
 
5
 
6
+import NetworkInfoService from './NetworkInfoService';
6
 import { _storeNetworkInfoCleanup, setNetworkInfo } from './actions';
7
 import { _storeNetworkInfoCleanup, setNetworkInfo } from './actions';
7
 import { STORE_NAME } from './constants';
8
 import { STORE_NAME } from './constants';
8
 import { ONLINE_STATE_CHANGED_EVENT } from './events';
9
 import { ONLINE_STATE_CHANGED_EVENT } from './events';
9
 import logger from './logger';
10
 import logger from './logger';
10
-import NetworkInfoService from './NetworkInfoService';
11
 import type { NetworkInfo } from './types';
11
 import type { NetworkInfo } from './types';
12
 
12
 
13
 /**
13
 /**

+ 1
- 1
react/features/base/participants/actions.js 查看文件

1
-import { set } from '../redux';
2
 import { NOTIFICATION_TIMEOUT, showNotification } from '../../notifications';
1
 import { NOTIFICATION_TIMEOUT, showNotification } from '../../notifications';
2
+import { set } from '../redux';
3
 
3
 
4
 import {
4
 import {
5
     DOMINANT_SPEAKER_CHANGED,
5
     DOMINANT_SPEAKER_CHANGED,

+ 1
- 1
react/features/base/participants/components/ParticipantView.native.js 查看文件

15
 import type { StyleType } from '../../styles';
15
 import type { StyleType } from '../../styles';
16
 import { TestHint } from '../../testing/components';
16
 import { TestHint } from '../../testing/components';
17
 import { getTrackByMediaTypeAndParticipant } from '../../tracks';
17
 import { getTrackByMediaTypeAndParticipant } from '../../tracks';
18
-
19
 import { shouldRenderParticipantVideo } from '../functions';
18
 import { shouldRenderParticipantVideo } from '../functions';
19
+
20
 import styles from './styles';
20
 import styles from './styles';
21
 
21
 
22
 /**
22
 /**

+ 1
- 2
react/features/base/participants/functions.js 查看文件

1
 // @flow
1
 // @flow
2
 import { getGravatarURL } from 'js-utils/avatar';
2
 import { getGravatarURL } from 'js-utils/avatar';
3
 
3
 
4
-import { toState } from '../redux';
5
-
6
 import { JitsiParticipantConnectionStatus } from '../lib-jitsi-meet';
4
 import { JitsiParticipantConnectionStatus } from '../lib-jitsi-meet';
7
 import { MEDIA_TYPE, shouldRenderVideoTrack } from '../media';
5
 import { MEDIA_TYPE, shouldRenderVideoTrack } from '../media';
6
+import { toState } from '../redux';
8
 import { getTrackByMediaTypeAndParticipant } from '../tracks';
7
 import { getTrackByMediaTypeAndParticipant } from '../tracks';
9
 import { createDeferred } from '../util';
8
 import { createDeferred } from '../util';
10
 
9
 

+ 8
- 10
react/features/base/participants/middleware.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
 import UIEvents from '../../../../service/UI/UIEvents';
3
 import UIEvents from '../../../../service/UI/UIEvents';
4
-
5
 import { NOTIFICATION_TIMEOUT, showNotification } from '../../notifications';
4
 import { NOTIFICATION_TIMEOUT, showNotification } from '../../notifications';
6
 import { CALLING, INVITED } from '../../presence-status';
5
 import { CALLING, INVITED } from '../../presence-status';
7
-
8
 import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../app';
6
 import { APP_WILL_MOUNT, APP_WILL_UNMOUNT } from '../app';
9
 import {
7
 import {
10
     CONFERENCE_WILL_JOIN,
8
     CONFERENCE_WILL_JOIN,
15
 import { MiddlewareRegistry, StateListenerRegistry } from '../redux';
13
 import { MiddlewareRegistry, StateListenerRegistry } from '../redux';
16
 import { playSound, registerSound, unregisterSound } from '../sounds';
14
 import { playSound, registerSound, unregisterSound } from '../sounds';
17
 
15
 
18
-import {
19
-    localParticipantIdChanged,
20
-    localParticipantJoined,
21
-    localParticipantLeft,
22
-    participantLeft,
23
-    participantUpdated,
24
-    setLoadableAvatarUrl
25
-} from './actions';
26
 import {
16
 import {
27
     DOMINANT_SPEAKER_CHANGED,
17
     DOMINANT_SPEAKER_CHANGED,
28
     KICK_PARTICIPANT,
18
     KICK_PARTICIPANT,
32
     PARTICIPANT_LEFT,
22
     PARTICIPANT_LEFT,
33
     PARTICIPANT_UPDATED
23
     PARTICIPANT_UPDATED
34
 } from './actionTypes';
24
 } from './actionTypes';
25
+import {
26
+    localParticipantIdChanged,
27
+    localParticipantJoined,
28
+    localParticipantLeft,
29
+    participantLeft,
30
+    participantUpdated,
31
+    setLoadableAvatarUrl
32
+} from './actions';
35
 import {
33
 import {
36
     LOCAL_PARTICIPANT_DEFAULT_ID,
34
     LOCAL_PARTICIPANT_DEFAULT_ID,
37
     PARTICIPANT_JOINED_SOUND_ID,
35
     PARTICIPANT_JOINED_SOUND_ID,

+ 2
- 1
react/features/base/react/components/NavigateSectionList.js 查看文件

4
 
4
 
5
 // TODO: Maybe try to make all NavigateSectionList components to work for both
5
 // TODO: Maybe try to make all NavigateSectionList components to work for both
6
 // mobile and web, and move them to NavigateSectionList component.
6
 // mobile and web, and move them to NavigateSectionList component.
7
+import type { Section } from '../Types';
8
+
7
 import {
9
 import {
8
     NavigateSectionListEmptyComponent,
10
     NavigateSectionListEmptyComponent,
9
     NavigateSectionListItem,
11
     NavigateSectionListItem,
10
     NavigateSectionListSectionHeader,
12
     NavigateSectionListSectionHeader,
11
     SectionList
13
     SectionList
12
 } from './_';
14
 } from './_';
13
-import type { Section } from '../Types';
14
 
15
 
15
 type Props = {
16
 type Props = {
16
 
17
 

+ 0
- 1
react/features/base/react/components/native/AvatarListItem.js 查看文件

5
 
5
 
6
 import { Avatar } from '../../../avatar';
6
 import { Avatar } from '../../../avatar';
7
 import { StyleType } from '../../../styles';
7
 import { StyleType } from '../../../styles';
8
-
9
 import { type Item } from '../../Types';
8
 import { type Item } from '../../Types';
10
 
9
 
11
 import Container from './Container';
10
 import Container from './Container';

+ 1
- 1
react/features/base/react/components/native/Linkify.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
 import React, { Component } from 'react';
3
 import React, { Component } from 'react';
4
-import { Text } from 'react-native';
5
 import ReactLinkify from 'react-linkify';
4
 import ReactLinkify from 'react-linkify';
5
+import { Text } from 'react-native';
6
 
6
 
7
 import { type StyleType } from '../../../styles';
7
 import { type StyleType } from '../../../styles';
8
 
8
 

+ 0
- 1
react/features/base/react/components/native/NavigateSectionListItem.js 查看文件

4
 import Swipeout from 'react-native-swipeout';
4
 import Swipeout from 'react-native-swipeout';
5
 
5
 
6
 import { ColorPalette } from '../../../styles';
6
 import { ColorPalette } from '../../../styles';
7
-
8
 import type { Item } from '../../Types';
7
 import type { Item } from '../../Types';
9
 
8
 
10
 import AvatarListItem from './AvatarListItem';
9
 import AvatarListItem from './AvatarListItem';

+ 3
- 2
react/features/base/react/components/native/NavigateSectionListSectionHeader.js 查看文件

2
 
2
 
3
 import React, { Component } from 'react';
3
 import React, { Component } from 'react';
4
 
4
 
5
+import type { SetionListSection } from '../../Types';
6
+
5
 import Container from './Container';
7
 import Container from './Container';
6
-import styles from './styles';
7
 import Text from './Text';
8
 import Text from './Text';
8
-import type { SetionListSection } from '../../Types';
9
+import styles from './styles';
9
 
10
 
10
 type Props = {
11
 type Props = {
11
 
12
 

+ 2
- 1
react/features/base/react/components/native/SectionList.js 查看文件

6
     SectionList as ReactNativeSectionList
6
     SectionList as ReactNativeSectionList
7
 } from 'react-native';
7
 } from 'react-native';
8
 
8
 
9
-import styles from './styles';
10
 import type { Section } from '../../Types';
9
 import type { Section } from '../../Types';
11
 
10
 
11
+import styles from './styles';
12
+
12
 /**
13
 /**
13
  * The type of the React {@code Component} props of {@link SectionList}
14
  * The type of the React {@code Component} props of {@link SectionList}
14
  */
15
  */

+ 0
- 1
react/features/base/react/components/native/SlidingView.js 查看文件

9
 } from 'react-native';
9
 } from 'react-native';
10
 
10
 
11
 import { BackButtonRegistry } from '../../../../mobile/back-button';
11
 import { BackButtonRegistry } from '../../../../mobile/back-button';
12
-
13
 import { type StyleType } from '../../../styles';
12
 import { type StyleType } from '../../../styles';
14
 
13
 
15
 import styles from './slidingviewstyles';
14
 import styles from './slidingviewstyles';

+ 1
- 1
react/features/base/react/components/web/BaseIndicator.js 查看文件

1
 /* @flow */
1
 /* @flow */
2
 
2
 
3
-import React, { Component } from 'react';
4
 import Tooltip from '@atlaskit/tooltip';
3
 import Tooltip from '@atlaskit/tooltip';
4
+import React, { Component } from 'react';
5
 
5
 
6
 import { translate } from '../../../i18n';
6
 import { translate } from '../../../i18n';
7
 import { Icon } from '../../../icons';
7
 import { Icon } from '../../../icons';

+ 1
- 1
react/features/base/react/components/web/MultiSelectAutocomplete.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
-import { MultiSelectStateless } from '@atlaskit/multi-select';
4
 import AKInlineDialog from '@atlaskit/inline-dialog';
3
 import AKInlineDialog from '@atlaskit/inline-dialog';
4
+import { MultiSelectStateless } from '@atlaskit/multi-select';
5
 import _debounce from 'lodash/debounce';
5
 import _debounce from 'lodash/debounce';
6
 import React, { Component } from 'react';
6
 import React, { Component } from 'react';
7
 
7
 

+ 2
- 1
react/features/base/react/components/web/NavigateSectionListItem.js 查看文件

2
 
2
 
3
 import React, { Component } from 'react';
3
 import React, { Component } from 'react';
4
 
4
 
5
+import type { Item } from '../../Types';
6
+
5
 import Container from './Container';
7
 import Container from './Container';
6
 import Text from './Text';
8
 import Text from './Text';
7
-import type { Item } from '../../Types';
8
 
9
 
9
 /**
10
 /**
10
  * The type of the React {@code Component} props of
11
  * The type of the React {@code Component} props of

+ 2
- 1
react/features/base/react/components/web/NavigateSectionListSectionHeader.js 查看文件

2
 
2
 
3
 import React, { Component } from 'react';
3
 import React, { Component } from 'react';
4
 
4
 
5
-import Text from './Text';
6
 import type { Section } from '../../Types';
5
 import type { Section } from '../../Types';
7
 
6
 
7
+import Text from './Text';
8
+
8
 type Props = {
9
 type Props = {
9
 
10
 
10
     /**
11
     /**

+ 2
- 1
react/features/base/react/components/web/SectionList.js 查看文件

2
 
2
 
3
 import React, { Component } from 'react';
3
 import React, { Component } from 'react';
4
 
4
 
5
-import Container from './Container';
6
 import type { Section } from '../../Types';
5
 import type { Section } from '../../Types';
7
 
6
 
7
+import Container from './Container';
8
+
8
 type Props = {
9
 type Props = {
9
 
10
 
10
     /**
11
     /**

+ 0
- 1
react/features/base/responsive-ui/components/AspectRatioAware.js 查看文件

3
 import React, { Component } from 'react';
3
 import React, { Component } from 'react';
4
 
4
 
5
 import { connect } from '../../redux';
5
 import { connect } from '../../redux';
6
-
7
 import { ASPECT_RATIO_NARROW, ASPECT_RATIO_WIDE } from '../constants';
6
 import { ASPECT_RATIO_NARROW, ASPECT_RATIO_WIDE } from '../constants';
8
 
7
 
9
 /**
8
 /**

+ 0
- 1
react/features/base/settings/functions.native.js 查看文件

1
 // @flow
1
 // @flow
2
 
2
 
3
 import { NativeModules } from 'react-native';
3
 import { NativeModules } from 'react-native';
4
-
5
 import DefaultPreference from 'react-native-default-preference';
4
 import DefaultPreference from 'react-native-default-preference';
6
 
5
 
7
 export * from './functions.any';
6
 export * from './functions.any';

+ 0
- 0
react/features/base/settings/middleware.js 查看文件


部分文件因文件數量過多而無法顯示

Loading…
取消
儲存