Ver código fonte

enhance. add typescript

matrixbirds 5 anos atrás
pai
commit
5789ee0502
12 arquivos alterados com 1018 adições e 76 exclusões
  1. 1
    0
      .gitignore
  2. 0
    31
      AgoraView.js
  3. 19
    0
      AgoraView.tsx
  4. 0
    37
      RtcEngine.js
  5. 48
    0
      RtcEngine.ts
  6. 2
    6
      index.js
  7. 454
    0
      package-lock.json
  8. 29
    2
      package.json
  9. 8
    0
      rn-cli.config.js
  10. 60
    0
      tsconfig.json
  11. 33
    0
      types.d.ts
  12. 364
    0
      yarn.lock

+ 1
- 0
.gitignore Ver arquivo

@@ -58,3 +58,4 @@ android/src/main/res/drawable/
58 58
 .project
59 59
 .settings
60 60
 .classpath
61
+.jest/

+ 0
- 31
AgoraView.js Ver arquivo

@@ -1,31 +0,0 @@
1
-/**
2
- * Created by DB on 2017/6/23.
3
- */
4
-
5
-import  React, {Component} from 'react'
6
-import {PropTypes} from 'prop-types'
7
-import {
8
-    requireNativeComponent,
9
-    View,
10
-    Platform
11
-} from 'react-native'
12
-
13
-export default class AgoraView extends Component {
14
-
15
-    render() {
16
-        return (
17
-            <RCTAgoraView {...this.props}/>
18
-        )
19
-    }
20
-}
21
-
22
-AgoraView.propTypes = {
23
-    showLocalVideo: PropTypes.bool,
24
-    remoteUid: PropTypes.number,
25
-    zOrderMediaOverlay: PropTypes.bool,
26
-    ...View.propTypes
27
-};
28
-
29
-// AgoraView.name = "AgoraView";
30
-
31
-const RCTAgoraView = requireNativeComponent("RCTAgoraView", AgoraView);

+ 19
- 0
AgoraView.tsx Ver arquivo

@@ -0,0 +1,19 @@
1
+import React from 'react';
2
+import {
3
+    requireNativeComponent,
4
+} from 'react-native'
5
+
6
+import {
7
+    IAgoraViewProps
8
+} from "./types.d";
9
+
10
+
11
+export default class AgoraView extends React.Component<IAgoraViewProps> {
12
+    render() {
13
+        return (
14
+            <RCTAgoraView {...this.props}/>
15
+        )
16
+    }
17
+}
18
+
19
+const RCTAgoraView = requireNativeComponent("RCTAgoraView");

+ 0
- 37
RtcEngine.js Ver arquivo

@@ -1,37 +0,0 @@
1
-import {
2
-    NativeModules,
3
-    findNodeHandle,
4
-    NativeAppEventEmitter
5
-} from 'react-native';
6
-
7
-const { Agora } = NativeModules
8
-
9
-export default {
10
-    ...Agora,
11
-    init(options = {}) {
12
-        this.listener && this.listener.remove();
13
-        Agora.init(options);
14
-    },
15
-    joinChannel(channelName = '00001', uid = 0){
16
-        Agora.joinChannel(channelName, uid);
17
-    },
18
-    joinChannelWithToken(token, channelName = '00001', uid = 0){
19
-        Agora.joinChannelWithToken(token, channelName, uid);
20
-    },
21
-    eventEmitter(fnConf) {
22
-        //there are no `removeListener` for NativeAppEventEmitter & DeviceEventEmitter
23
-        this.listener && this.listener.remove();
24
-        this.listener = NativeAppEventEmitter.addListener('agoraEvent', event => {
25
-            fnConf[event['type']] && fnConf[event['type']](event);
26
-        });
27
-    },
28
-    removeEmitter() {
29
-        this.listener && this.listener.remove();
30
-    },
31
-    enableLastmileTest() {
32
-        Agora.enableLastmileTest();
33
-    },
34
-    disableLastmileTest() {
35
-        Agora.disableLastmileTest();
36
-    },
37
-};

+ 48
- 0
RtcEngine.ts Ver arquivo

@@ -0,0 +1,48 @@
1
+import {
2
+    NativeModules,
3
+    NativeAppEventEmitter
4
+} from 'react-native';
5
+
6
+import {
7
+    IRtcEngineOption, IRTCEngineEventScheduler,
8
+    String, Integer
9
+} from "./types.d";
10
+
11
+const { Agora } = NativeModules;
12
+
13
+export default class RtcEngine extends Agora {
14
+    static init(options: IRtcEngineOption): void {
15
+        this.removeEmitter();
16
+        super.init(options);
17
+    }
18
+
19
+    static joinChannel(channelName: String, uid?: Integer): void {
20
+        super.joinChannel(channelName, uid);
21
+    }
22
+
23
+    static joinChannelWithToken(
24
+        channelName: string, token?: String, uid?: Integer): void {
25
+        super.joinChannelWithToken(token, channelName, uid);
26
+    }
27
+
28
+    static eventEmitter(eventScheduler: IRTCEngineEventScheduler) {
29
+        this.listener && this.listener.remove();
30
+        this.listener = NativeAppEventEmitter.addListener('agoraEvent', event => {
31
+            const functor = (eventScheduler as any)[event['type']];
32
+            functor && functor(event);
33
+        });
34
+    }
35
+
36
+    static removeEmitter() {
37
+        this.listener && this.listener.remove();
38
+    }
39
+
40
+    static enableLastmileTest() {
41
+        super.enableLastmileTest();
42
+    }
43
+
44
+    static disableLastmileTest() {
45
+        super.disableLastmileTest();
46
+    }
47
+
48
+};

+ 2
- 6
index.js Ver arquivo

@@ -1,6 +1,2 @@
1
-
2
-import _AgoraView from './AgoraView'
3
-import _RtcEngine from './RtcEngine'
4
-
5
-export const AgoraView = _AgoraView;
6
-export const RtcEngine = _RtcEngine;
1
+export { default as AgoraView } from './AgoraView';
2
+export { default as RtcEngine } from './RtcEngine';

+ 454
- 0
package-lock.json Ver arquivo

@@ -0,0 +1,454 @@
1
+{
2
+  "name": "react-native-agora",
3
+  "version": "1.2.5",
4
+  "lockfileVersion": 1,
5
+  "requires": true,
6
+  "dependencies": {
7
+    "@types/jest": {
8
+      "version": "23.3.13",
9
+      "resolved": "https://registry.npmjs.org/@types/jest/-/jest-23.3.13.tgz",
10
+      "integrity": "sha512-ePl4l+7dLLmCucIwgQHAgjiepY++qcI6nb8eAwGNkB6OxmTe3Z9rQU3rSpomqu42PCCnlThZbOoxsf+qylJsLA==",
11
+      "dev": true
12
+    },
13
+    "@types/prop-types": {
14
+      "version": "15.5.8",
15
+      "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.8.tgz",
16
+      "integrity": "sha512-3AQoUxQcQtLHsK25wtTWIoIpgYjH3vSDroZOUr7PpCHw/jLY1RB9z9E8dBT/OSmwStVgkRNvdh+ZHNiomRieaw==",
17
+      "dev": true
18
+    },
19
+    "@types/react": {
20
+      "version": "16.7.20",
21
+      "resolved": "https://registry.npmjs.org/@types/react/-/react-16.7.20.tgz",
22
+      "integrity": "sha512-Qd5RWkwl6SL7R2XzLk/cicjVQm1Mhc6HqXY5Ei4pWd1Vi8Fkbd5O0sA398x8fRSTPAuHdDYD9nrWmJMYTJI0vQ==",
23
+      "dev": true,
24
+      "requires": {
25
+        "@types/prop-types": "*",
26
+        "csstype": "^2.2.0"
27
+      }
28
+    },
29
+    "@types/react-native": {
30
+      "version": "0.57.31",
31
+      "resolved": "https://registry.npmjs.org/@types/react-native/-/react-native-0.57.31.tgz",
32
+      "integrity": "sha512-ha1nuTjMO6XWGq57fNhG+nLGR/pyLTgqPseVsts+jgBwCPlJkGKzB9dCERqJBAzA1L6dHFdwa6+HLUi9jiIYGw==",
33
+      "dev": true,
34
+      "requires": {
35
+        "@types/prop-types": "*",
36
+        "@types/react": "*"
37
+      }
38
+    },
39
+    "@types/react-test-renderer": {
40
+      "version": "16.0.3",
41
+      "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-16.0.3.tgz",
42
+      "integrity": "sha512-NWOAxVQeJxpXuNKgw83Hah0nquiw1nUexM9qY/Hk3a+XhZwgMtaa6GLA9E1TKMT75Odb3/KE/jiBO4enTuEJjQ==",
43
+      "dev": true,
44
+      "requires": {
45
+        "@types/react": "*"
46
+      }
47
+    },
48
+    "ansi-regex": {
49
+      "version": "2.1.1",
50
+      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
51
+      "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
52
+      "dev": true
53
+    },
54
+    "ansi-styles": {
55
+      "version": "2.2.1",
56
+      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
57
+      "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
58
+      "dev": true
59
+    },
60
+    "babel-code-frame": {
61
+      "version": "6.26.0",
62
+      "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
63
+      "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
64
+      "dev": true,
65
+      "requires": {
66
+        "chalk": "^1.1.3",
67
+        "esutils": "^2.0.2",
68
+        "js-tokens": "^3.0.2"
69
+      },
70
+      "dependencies": {
71
+        "chalk": {
72
+          "version": "1.1.3",
73
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
74
+          "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
75
+          "dev": true,
76
+          "requires": {
77
+            "ansi-styles": "^2.2.1",
78
+            "escape-string-regexp": "^1.0.2",
79
+            "has-ansi": "^2.0.0",
80
+            "strip-ansi": "^3.0.0",
81
+            "supports-color": "^2.0.0"
82
+          }
83
+        }
84
+      }
85
+    },
86
+    "babel-messages": {
87
+      "version": "6.23.0",
88
+      "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
89
+      "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
90
+      "dev": true,
91
+      "requires": {
92
+        "babel-runtime": "^6.22.0"
93
+      }
94
+    },
95
+    "babel-runtime": {
96
+      "version": "6.26.0",
97
+      "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
98
+      "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
99
+      "dev": true,
100
+      "requires": {
101
+        "core-js": "^2.4.0",
102
+        "regenerator-runtime": "^0.11.0"
103
+      }
104
+    },
105
+    "babel-traverse": {
106
+      "version": "6.26.0",
107
+      "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
108
+      "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
109
+      "dev": true,
110
+      "requires": {
111
+        "babel-code-frame": "^6.26.0",
112
+        "babel-messages": "^6.23.0",
113
+        "babel-runtime": "^6.26.0",
114
+        "babel-types": "^6.26.0",
115
+        "babylon": "^6.18.0",
116
+        "debug": "^2.6.8",
117
+        "globals": "^9.18.0",
118
+        "invariant": "^2.2.2",
119
+        "lodash": "^4.17.4"
120
+      }
121
+    },
122
+    "babel-types": {
123
+      "version": "6.26.0",
124
+      "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
125
+      "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
126
+      "dev": true,
127
+      "requires": {
128
+        "babel-runtime": "^6.26.0",
129
+        "esutils": "^2.0.2",
130
+        "lodash": "^4.17.4",
131
+        "to-fast-properties": "^1.0.3"
132
+      }
133
+    },
134
+    "babylon": {
135
+      "version": "6.18.0",
136
+      "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
137
+      "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
138
+      "dev": true
139
+    },
140
+    "bs-logger": {
141
+      "version": "0.2.6",
142
+      "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
143
+      "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
144
+      "dev": true,
145
+      "requires": {
146
+        "fast-json-stable-stringify": "2.x"
147
+      }
148
+    },
149
+    "buffer-from": {
150
+      "version": "1.1.1",
151
+      "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
152
+      "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
153
+      "dev": true
154
+    },
155
+    "camelcase": {
156
+      "version": "4.1.0",
157
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
158
+      "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
159
+      "dev": true
160
+    },
161
+    "chalk": {
162
+      "version": "2.4.2",
163
+      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
164
+      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
165
+      "dev": true,
166
+      "requires": {
167
+        "ansi-styles": "^3.2.1",
168
+        "escape-string-regexp": "^1.0.5",
169
+        "supports-color": "^5.3.0"
170
+      },
171
+      "dependencies": {
172
+        "ansi-styles": {
173
+          "version": "3.2.1",
174
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
175
+          "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
176
+          "dev": true,
177
+          "requires": {
178
+            "color-convert": "^1.9.0"
179
+          }
180
+        },
181
+        "supports-color": {
182
+          "version": "5.5.0",
183
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
184
+          "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
185
+          "dev": true,
186
+          "requires": {
187
+            "has-flag": "^3.0.0"
188
+          }
189
+        }
190
+      }
191
+    },
192
+    "color-convert": {
193
+      "version": "1.9.3",
194
+      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
195
+      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
196
+      "dev": true,
197
+      "requires": {
198
+        "color-name": "1.1.3"
199
+      }
200
+    },
201
+    "color-name": {
202
+      "version": "1.1.3",
203
+      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
204
+      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
205
+      "dev": true
206
+    },
207
+    "core-js": {
208
+      "version": "2.6.3",
209
+      "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.3.tgz",
210
+      "integrity": "sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ==",
211
+      "dev": true
212
+    },
213
+    "csstype": {
214
+      "version": "2.6.1",
215
+      "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.1.tgz",
216
+      "integrity": "sha512-wv7IRqCGsL7WGKB8gPvrl+++HlFM9kxAM6jL1EXNPNTshEJYilMkbfS2SnuHha77uosp/YVK0wAp2jmlBzn1tg==",
217
+      "dev": true
218
+    },
219
+    "debug": {
220
+      "version": "2.6.9",
221
+      "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
222
+      "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
223
+      "dev": true,
224
+      "requires": {
225
+        "ms": "2.0.0"
226
+      }
227
+    },
228
+    "escape-string-regexp": {
229
+      "version": "1.0.5",
230
+      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
231
+      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
232
+      "dev": true
233
+    },
234
+    "esutils": {
235
+      "version": "2.0.2",
236
+      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
237
+      "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
238
+      "dev": true
239
+    },
240
+    "fast-json-stable-stringify": {
241
+      "version": "2.0.0",
242
+      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
243
+      "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
244
+      "dev": true
245
+    },
246
+    "find-root": {
247
+      "version": "1.1.0",
248
+      "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz",
249
+      "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==",
250
+      "dev": true
251
+    },
252
+    "globals": {
253
+      "version": "9.18.0",
254
+      "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
255
+      "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
256
+      "dev": true
257
+    },
258
+    "has-ansi": {
259
+      "version": "2.0.0",
260
+      "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
261
+      "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
262
+      "dev": true,
263
+      "requires": {
264
+        "ansi-regex": "^2.0.0"
265
+      }
266
+    },
267
+    "has-flag": {
268
+      "version": "3.0.0",
269
+      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
270
+      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
271
+      "dev": true
272
+    },
273
+    "invariant": {
274
+      "version": "2.2.4",
275
+      "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
276
+      "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
277
+      "dev": true,
278
+      "requires": {
279
+        "loose-envify": "^1.0.0"
280
+      }
281
+    },
282
+    "jju": {
283
+      "version": "1.4.0",
284
+      "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz",
285
+      "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=",
286
+      "dev": true
287
+    },
288
+    "js-tokens": {
289
+      "version": "3.0.2",
290
+      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
291
+      "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
292
+      "dev": true
293
+    },
294
+    "json5": {
295
+      "version": "2.1.0",
296
+      "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
297
+      "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
298
+      "dev": true,
299
+      "requires": {
300
+        "minimist": "^1.2.0"
301
+      }
302
+    },
303
+    "lodash": {
304
+      "version": "4.17.11",
305
+      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
306
+      "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
307
+      "dev": true
308
+    },
309
+    "loose-envify": {
310
+      "version": "1.4.0",
311
+      "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
312
+      "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
313
+      "dev": true,
314
+      "requires": {
315
+        "js-tokens": "^3.0.0 || ^4.0.0"
316
+      }
317
+    },
318
+    "make-error": {
319
+      "version": "1.3.5",
320
+      "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
321
+      "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
322
+      "dev": true
323
+    },
324
+    "minimist": {
325
+      "version": "1.2.0",
326
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
327
+      "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
328
+      "dev": true
329
+    },
330
+    "mkdirp": {
331
+      "version": "0.5.1",
332
+      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
333
+      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
334
+      "dev": true,
335
+      "requires": {
336
+        "minimist": "0.0.8"
337
+      },
338
+      "dependencies": {
339
+        "minimist": {
340
+          "version": "0.0.8",
341
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
342
+          "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
343
+          "dev": true
344
+        }
345
+      }
346
+    },
347
+    "ms": {
348
+      "version": "2.0.0",
349
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
350
+      "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
351
+      "dev": true
352
+    },
353
+    "path-parse": {
354
+      "version": "1.0.6",
355
+      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
356
+      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
357
+      "dev": true
358
+    },
359
+    "react-native-typescript-transformer": {
360
+      "version": "1.2.11",
361
+      "resolved": "https://registry.npmjs.org/react-native-typescript-transformer/-/react-native-typescript-transformer-1.2.11.tgz",
362
+      "integrity": "sha512-Kz/t1CQI4L2MrZQHI4fh5gkrPbNBaxim74QF0d02vg+4vlxHnn4iye8vI7WM9cWZdNUnN5IafrNn3ah5dWtElQ==",
363
+      "dev": true,
364
+      "requires": {
365
+        "babel-traverse": "^6.26.0",
366
+        "chalk": "^2.4.0",
367
+        "find-root": "^1.1.0",
368
+        "jju": "^1.3.0",
369
+        "semver": "^5.4.1",
370
+        "source-map": "^0.5.6"
371
+      }
372
+    },
373
+    "regenerator-runtime": {
374
+      "version": "0.11.1",
375
+      "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
376
+      "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
377
+      "dev": true
378
+    },
379
+    "resolve": {
380
+      "version": "1.10.0",
381
+      "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
382
+      "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==",
383
+      "dev": true,
384
+      "requires": {
385
+        "path-parse": "^1.0.6"
386
+      }
387
+    },
388
+    "semver": {
389
+      "version": "5.6.0",
390
+      "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
391
+      "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
392
+      "dev": true
393
+    },
394
+    "source-map": {
395
+      "version": "0.5.7",
396
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
397
+      "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
398
+      "dev": true
399
+    },
400
+    "strip-ansi": {
401
+      "version": "3.0.1",
402
+      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
403
+      "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
404
+      "dev": true,
405
+      "requires": {
406
+        "ansi-regex": "^2.0.0"
407
+      }
408
+    },
409
+    "supports-color": {
410
+      "version": "2.0.0",
411
+      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
412
+      "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
413
+      "dev": true
414
+    },
415
+    "to-fast-properties": {
416
+      "version": "1.0.3",
417
+      "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
418
+      "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
419
+      "dev": true
420
+    },
421
+    "ts-jest": {
422
+      "version": "23.10.5",
423
+      "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-23.10.5.tgz",
424
+      "integrity": "sha512-MRCs9qnGoyKgFc8adDEntAOP64fWK1vZKnOYU1o2HxaqjdJvGqmkLCPCnVq1/If4zkUmEjKPnCiUisTrlX2p2A==",
425
+      "dev": true,
426
+      "requires": {
427
+        "bs-logger": "0.x",
428
+        "buffer-from": "1.x",
429
+        "fast-json-stable-stringify": "2.x",
430
+        "json5": "2.x",
431
+        "make-error": "1.x",
432
+        "mkdirp": "0.x",
433
+        "resolve": "1.x",
434
+        "semver": "^5.5",
435
+        "yargs-parser": "10.x"
436
+      }
437
+    },
438
+    "typescript": {
439
+      "version": "3.2.4",
440
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz",
441
+      "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==",
442
+      "dev": true
443
+    },
444
+    "yargs-parser": {
445
+      "version": "10.1.0",
446
+      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz",
447
+      "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==",
448
+      "dev": true,
449
+      "requires": {
450
+        "camelcase": "^4.1.0"
451
+      }
452
+    }
453
+  }
454
+}

+ 29
- 2
package.json Ver arquivo

@@ -2,7 +2,7 @@
2 2
   "name": "react-native-agora",
3 3
   "version": "1.2.5",
4 4
   "description": "声网Agora",
5
-  "main": "index.js",
5
+  "main": "index.ts",
6 6
   "scripts": {
7 7
     "pu": "npm publish",
8 8
     "test": "echo \"Error: no test specified\" && exit 1"
@@ -26,5 +26,32 @@
26 26
   "bugs": {
27 27
     "url": "https://github.com/DBshaoYan/react-native-agora/issues"
28 28
   },
29
-  "homepage": "https://github.com/DBshaoYan/react-native-agora#readme"
29
+  "homepage": "https://github.com/DBshaoYan/react-native-agora#readme",
30
+  "devDependencies": {
31
+    "@types/jest": "^23.3.13",
32
+    "@types/react": "^16.7.20",
33
+    "@types/react-native": "^0.57.31",
34
+    "@types/react-test-renderer": "^16.0.3",
35
+    "react-native-typescript-transformer": "^1.2.11",
36
+    "ts-jest": "^23.10.5",
37
+    "typescript": "^3.2.4"
38
+  },
39
+  "jest": {
40
+    "preset": "react-native",
41
+    "moduleFileExtensions": [
42
+      "ts",
43
+      "tsx",
44
+      "js"
45
+    ],
46
+    "transform": {
47
+      "^.+\\.(js)$": "<rootDir>/node_modules/babel-jest",
48
+      "\\.(ts|tsx)$": "<rootDir>/node_modules/ts-jest/preprocessor.js"
49
+    },
50
+    "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
51
+    "testPathIgnorePatterns": [
52
+      "\\.snap$",
53
+      "<rootDir>/node_modules/"
54
+    ],
55
+    "cacheDirectory": ".jest/cache"
56
+  }
30 57
 }

+ 8
- 0
rn-cli.config.js Ver arquivo

@@ -0,0 +1,8 @@
1
+module.exports = {
2
+  getTransformModulePath() {
3
+    return require.resolve("react-native-typescript-transformer");
4
+  },
5
+  getSourceExts() {
6
+    return ["ts", "tsx"];
7
+  }
8
+};

+ 60
- 0
tsconfig.json Ver arquivo

@@ -0,0 +1,60 @@
1
+{
2
+  "compilerOptions": {
3
+    /* Basic Options */
4
+    "target": "es5",                          /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
5
+    "module": "commonjs",                     /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
6
+    // "lib": [],                             /* Specify library files to be included in the compilation. */
7
+    // "allowJs": true,                       /* Allow javascript files to be compiled. */
8
+    // "checkJs": true,                       /* Report errors in .js files. */
9
+    "jsx": "react",                           /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
10
+    // "declaration": true,                   /* Generates corresponding '.d.ts' file. */
11
+    // "declarationMap": true,                /* Generates a sourcemap for each corresponding '.d.ts' file. */
12
+    // "sourceMap": true,                     /* Generates corresponding '.map' file. */
13
+    // "outFile": "./",                       /* Concatenate and emit output to single file. */
14
+    // "outDir": "./",                        /* Redirect output structure to the directory. */
15
+    // "rootDir": "./",                       /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
16
+    // "composite": true,                     /* Enable project compilation */
17
+    // "removeComments": true,                /* Do not emit comments to output. */
18
+    // "noEmit": true,                        /* Do not emit outputs. */
19
+    // "importHelpers": true,                 /* Import emit helpers from 'tslib'. */
20
+    // "downlevelIteration": true,            /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
21
+    // "isolatedModules": true,               /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
22
+
23
+    /* Strict Type-Checking Options */
24
+    "strict": true,                           /* Enable all strict type-checking options. */
25
+    "noImplicitAny": true,                 /* Raise error on expressions and declarations with an implied 'any' type. */
26
+    "strictNullChecks": true,              /* Enable strict null checks. */
27
+    "strictFunctionTypes": true,           /* Enable strict checking of function types. */
28
+    "strictBindCallApply": true,           /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
29
+    // "strictPropertyInitialization": true,  /* Enable strict checking of property initialization in classes. */
30
+    // "noImplicitThis": true,                /* Raise error on 'this' expressions with an implied 'any' type. */
31
+    "alwaysStrict": true,                  /* Parse in strict mode and emit "use strict" for each source file. */
32
+
33
+    /* Additional Checks */
34
+    // "noUnusedLocals": true,                /* Report errors on unused locals. */
35
+    // "noUnusedParameters": true,            /* Report errors on unused parameters. */
36
+    // "noImplicitReturns": true,             /* Report error when not all code paths in function return a value. */
37
+    // "noFallthroughCasesInSwitch": true,    /* Report errors for fallthrough cases in switch statement. */
38
+
39
+    /* Module Resolution Options */
40
+    // "moduleResolution": "node",            /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
41
+    // "baseUrl": "./",                       /* Base directory to resolve non-absolute module names. */
42
+    // "paths": {},                           /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
43
+    // "rootDirs": [],                        /* List of root folders whose combined content represents the structure of the project at runtime. */
44
+    // "typeRoots": [],                       /* List of folders to include type definitions from. */
45
+    // "types": [],                           /* Type declaration files to be included in compilation. */
46
+    "allowSyntheticDefaultImports": true,  /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
47
+    "esModuleInterop": true                   /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
48
+    // "preserveSymlinks": true,              /* Do not resolve the real path of symlinks. */
49
+
50
+    /* Source Map Options */
51
+    // "sourceRoot": "",                      /* Specify the location where debugger should locate TypeScript files instead of source locations. */
52
+    // "mapRoot": "",                         /* Specify the location where debugger should locate map files instead of generated locations. */
53
+    // "inlineSourceMap": true,               /* Emit a single file with source maps instead of having a separate file. */
54
+    // "inlineSources": true,                 /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
55
+
56
+    /* Experimental Options */
57
+    // "experimentalDecorators": true,        /* Enables experimental support for ES7 decorators. */
58
+    // "emitDecoratorMetadata": true,         /* Enables experimental support for emitting type metadata for decorators. */
59
+  }
60
+}

+ 33
- 0
types.d.ts Ver arquivo

@@ -0,0 +1,33 @@
1
+import { View, ViewProps } from 'react-native';
2
+
3
+declare module "IAgora";
4
+
5
+export interface IRtcEngineOption {
6
+  appid: string,
7
+  videoProfile: number
8
+  channelProfile: number,
9
+}
10
+
11
+export interface IRTCEngineEventScheduler {
12
+  onFirstRemoteVideoDecoded: Function,
13
+  onJoinChannelSuccess: Function,
14
+  onUserOffline: Function,
15
+  onUserJoined: Function,
16
+  onError: Function,
17
+  onWarning: Function,
18
+  onLeaveChannel: Function,
19
+  onAudioVolumeIndication: Function,
20
+  onStreamMessage: Function,
21
+  onStreamMessageError: Function
22
+}
23
+
24
+export type Nullable<T> = T | null | undefined;
25
+
26
+export type String = Nullable<string>;
27
+export type Integer = Nullable<number> | 0;
28
+
29
+export interface IAgoraViewProps extends ViewProps {
30
+  showLocalVideo: boolean,
31
+  remoteUid: Integer,
32
+  zOrderMediaOverlay: boolean
33
+}

+ 364
- 0
yarn.lock Ver arquivo

@@ -2,3 +2,367 @@
2 2
 # yarn lockfile v1
3 3
 
4 4
 
5
+"@types/jest@^23.3.13":
6
+  version "23.3.13"
7
+  resolved "https://registry.yarnpkg.com/@types/jest/-/jest-23.3.13.tgz#c81484b6f4ca007bb09887ed15ecb3286d58f928"
8
+  integrity sha512-ePl4l+7dLLmCucIwgQHAgjiepY++qcI6nb8eAwGNkB6OxmTe3Z9rQU3rSpomqu42PCCnlThZbOoxsf+qylJsLA==
9
+
10
+"@types/prop-types@*":
11
+  version "15.5.8"
12
+  resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.5.8.tgz#8ae4e0ea205fe95c3901a5a1df7f66495e3a56ce"
13
+  integrity sha512-3AQoUxQcQtLHsK25wtTWIoIpgYjH3vSDroZOUr7PpCHw/jLY1RB9z9E8dBT/OSmwStVgkRNvdh+ZHNiomRieaw==
14
+
15
+"@types/react-native@^0.57.31":
16
+  version "0.57.31"
17
+  resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.57.31.tgz#ccb0500816eb444247764f571929a61b050b62ba"
18
+  integrity sha512-ha1nuTjMO6XWGq57fNhG+nLGR/pyLTgqPseVsts+jgBwCPlJkGKzB9dCERqJBAzA1L6dHFdwa6+HLUi9jiIYGw==
19
+  dependencies:
20
+    "@types/prop-types" "*"
21
+    "@types/react" "*"
22
+
23
+"@types/react-test-renderer@^16.0.3":
24
+  version "16.0.3"
25
+  resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-16.0.3.tgz#cce5c983d66cc5c3582e7c2f44b274ab635a8acc"
26
+  integrity sha512-NWOAxVQeJxpXuNKgw83Hah0nquiw1nUexM9qY/Hk3a+XhZwgMtaa6GLA9E1TKMT75Odb3/KE/jiBO4enTuEJjQ==
27
+  dependencies:
28
+    "@types/react" "*"
29
+
30
+"@types/react@*", "@types/react@^16.7.20":
31
+  version "16.7.20"
32
+  resolved "https://registry.yarnpkg.com/@types/react/-/react-16.7.20.tgz#13ae752c012710d0fa800985ca809814b51d3b58"
33
+  integrity sha512-Qd5RWkwl6SL7R2XzLk/cicjVQm1Mhc6HqXY5Ei4pWd1Vi8Fkbd5O0sA398x8fRSTPAuHdDYD9nrWmJMYTJI0vQ==
34
+  dependencies:
35
+    "@types/prop-types" "*"
36
+    csstype "^2.2.0"
37
+
38
+ansi-regex@^2.0.0:
39
+  version "2.1.1"
40
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
41
+  integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
42
+
43
+ansi-styles@^2.2.1:
44
+  version "2.2.1"
45
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
46
+  integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
47
+
48
+ansi-styles@^3.2.1:
49
+  version "3.2.1"
50
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
51
+  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
52
+  dependencies:
53
+    color-convert "^1.9.0"
54
+
55
+babel-code-frame@^6.26.0:
56
+  version "6.26.0"
57
+  resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
58
+  integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
59
+  dependencies:
60
+    chalk "^1.1.3"
61
+    esutils "^2.0.2"
62
+    js-tokens "^3.0.2"
63
+
64
+babel-messages@^6.23.0:
65
+  version "6.23.0"
66
+  resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
67
+  integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=
68
+  dependencies:
69
+    babel-runtime "^6.22.0"
70
+
71
+babel-runtime@^6.22.0, babel-runtime@^6.26.0:
72
+  version "6.26.0"
73
+  resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
74
+  integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
75
+  dependencies:
76
+    core-js "^2.4.0"
77
+    regenerator-runtime "^0.11.0"
78
+
79
+babel-traverse@^6.26.0:
80
+  version "6.26.0"
81
+  resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
82
+  integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=
83
+  dependencies:
84
+    babel-code-frame "^6.26.0"
85
+    babel-messages "^6.23.0"
86
+    babel-runtime "^6.26.0"
87
+    babel-types "^6.26.0"
88
+    babylon "^6.18.0"
89
+    debug "^2.6.8"
90
+    globals "^9.18.0"
91
+    invariant "^2.2.2"
92
+    lodash "^4.17.4"
93
+
94
+babel-types@^6.26.0:
95
+  version "6.26.0"
96
+  resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
97
+  integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=
98
+  dependencies:
99
+    babel-runtime "^6.26.0"
100
+    esutils "^2.0.2"
101
+    lodash "^4.17.4"
102
+    to-fast-properties "^1.0.3"
103
+
104
+babylon@^6.18.0:
105
+  version "6.18.0"
106
+  resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
107
+  integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
108
+
109
+bs-logger@0.x:
110
+  version "0.2.6"
111
+  resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
112
+  integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
113
+  dependencies:
114
+    fast-json-stable-stringify "2.x"
115
+
116
+buffer-from@1.x:
117
+  version "1.1.1"
118
+  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
119
+  integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
120
+
121
+camelcase@^4.1.0:
122
+  version "4.1.0"
123
+  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
124
+  integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
125
+
126
+chalk@^1.1.3:
127
+  version "1.1.3"
128
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
129
+  integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
130
+  dependencies:
131
+    ansi-styles "^2.2.1"
132
+    escape-string-regexp "^1.0.2"
133
+    has-ansi "^2.0.0"
134
+    strip-ansi "^3.0.0"
135
+    supports-color "^2.0.0"
136
+
137
+chalk@^2.4.0:
138
+  version "2.4.2"
139
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
140
+  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
141
+  dependencies:
142
+    ansi-styles "^3.2.1"
143
+    escape-string-regexp "^1.0.5"
144
+    supports-color "^5.3.0"
145
+
146
+color-convert@^1.9.0:
147
+  version "1.9.3"
148
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
149
+  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
150
+  dependencies:
151
+    color-name "1.1.3"
152
+
153
+color-name@1.1.3:
154
+  version "1.1.3"
155
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
156
+  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
157
+
158
+core-js@^2.4.0:
159
+  version "2.6.3"
160
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.3.tgz#4b70938bdffdaf64931e66e2db158f0892289c49"
161
+  integrity sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ==
162
+
163
+csstype@^2.2.0:
164
+  version "2.6.1"
165
+  resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.1.tgz#4cfbf637a577497036ebcd7e32647ef19a0b8076"
166
+  integrity sha512-wv7IRqCGsL7WGKB8gPvrl+++HlFM9kxAM6jL1EXNPNTshEJYilMkbfS2SnuHha77uosp/YVK0wAp2jmlBzn1tg==
167
+
168
+debug@^2.6.8:
169
+  version "2.6.9"
170
+  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
171
+  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
172
+  dependencies:
173
+    ms "2.0.0"
174
+
175
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
176
+  version "1.0.5"
177
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
178
+  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
179
+
180
+esutils@^2.0.2:
181
+  version "2.0.2"
182
+  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
183
+  integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
184
+
185
+fast-json-stable-stringify@2.x:
186
+  version "2.0.0"
187
+  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
188
+  integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
189
+
190
+find-root@^1.1.0:
191
+  version "1.1.0"
192
+  resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
193
+  integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
194
+
195
+globals@^9.18.0:
196
+  version "9.18.0"
197
+  resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
198
+  integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==
199
+
200
+has-ansi@^2.0.0:
201
+  version "2.0.0"
202
+  resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
203
+  integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
204
+  dependencies:
205
+    ansi-regex "^2.0.0"
206
+
207
+has-flag@^3.0.0:
208
+  version "3.0.0"
209
+  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
210
+  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
211
+
212
+invariant@^2.2.2:
213
+  version "2.2.4"
214
+  resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
215
+  integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
216
+  dependencies:
217
+    loose-envify "^1.0.0"
218
+
219
+jju@^1.3.0:
220
+  version "1.4.0"
221
+  resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a"
222
+  integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo=
223
+
224
+"js-tokens@^3.0.0 || ^4.0.0":
225
+  version "4.0.0"
226
+  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
227
+  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
228
+
229
+js-tokens@^3.0.2:
230
+  version "3.0.2"
231
+  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
232
+  integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
233
+
234
+json5@2.x:
235
+  version "2.1.0"
236
+  resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
237
+  integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==
238
+  dependencies:
239
+    minimist "^1.2.0"
240
+
241
+lodash@^4.17.4:
242
+  version "4.17.11"
243
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
244
+  integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
245
+
246
+loose-envify@^1.0.0:
247
+  version "1.4.0"
248
+  resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
249
+  integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
250
+  dependencies:
251
+    js-tokens "^3.0.0 || ^4.0.0"
252
+
253
+make-error@1.x:
254
+  version "1.3.5"
255
+  resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
256
+  integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==
257
+
258
+minimist@0.0.8:
259
+  version "0.0.8"
260
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
261
+  integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
262
+
263
+minimist@^1.2.0:
264
+  version "1.2.0"
265
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
266
+  integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
267
+
268
+mkdirp@0.x:
269
+  version "0.5.1"
270
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
271
+  integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
272
+  dependencies:
273
+    minimist "0.0.8"
274
+
275
+ms@2.0.0:
276
+  version "2.0.0"
277
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
278
+  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
279
+
280
+path-parse@^1.0.6:
281
+  version "1.0.6"
282
+  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
283
+  integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
284
+
285
+react-native-typescript-transformer@^1.2.11:
286
+  version "1.2.11"
287
+  resolved "https://registry.yarnpkg.com/react-native-typescript-transformer/-/react-native-typescript-transformer-1.2.11.tgz#679398c27262cf941e5a5f3ea45cf7eea715d557"
288
+  integrity sha512-Kz/t1CQI4L2MrZQHI4fh5gkrPbNBaxim74QF0d02vg+4vlxHnn4iye8vI7WM9cWZdNUnN5IafrNn3ah5dWtElQ==
289
+  dependencies:
290
+    babel-traverse "^6.26.0"
291
+    chalk "^2.4.0"
292
+    find-root "^1.1.0"
293
+    jju "^1.3.0"
294
+    semver "^5.4.1"
295
+    source-map "^0.5.6"
296
+
297
+regenerator-runtime@^0.11.0:
298
+  version "0.11.1"
299
+  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
300
+  integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
301
+
302
+resolve@1.x:
303
+  version "1.10.0"
304
+  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba"
305
+  integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==
306
+  dependencies:
307
+    path-parse "^1.0.6"
308
+
309
+semver@^5.4.1, semver@^5.5:
310
+  version "5.6.0"
311
+  resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
312
+  integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==
313
+
314
+source-map@^0.5.6:
315
+  version "0.5.7"
316
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
317
+  integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
318
+
319
+strip-ansi@^3.0.0:
320
+  version "3.0.1"
321
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
322
+  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
323
+  dependencies:
324
+    ansi-regex "^2.0.0"
325
+
326
+supports-color@^2.0.0:
327
+  version "2.0.0"
328
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
329
+  integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
330
+
331
+supports-color@^5.3.0:
332
+  version "5.5.0"
333
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
334
+  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
335
+  dependencies:
336
+    has-flag "^3.0.0"
337
+
338
+to-fast-properties@^1.0.3:
339
+  version "1.0.3"
340
+  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
341
+  integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=
342
+
343
+ts-jest@^23.10.5:
344
+  version "23.10.5"
345
+  resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-23.10.5.tgz#cdb550df4466a30489bf70ba867615799f388dd5"
346
+  integrity sha512-MRCs9qnGoyKgFc8adDEntAOP64fWK1vZKnOYU1o2HxaqjdJvGqmkLCPCnVq1/If4zkUmEjKPnCiUisTrlX2p2A==
347
+  dependencies:
348
+    bs-logger "0.x"
349
+    buffer-from "1.x"
350
+    fast-json-stable-stringify "2.x"
351
+    json5 "2.x"
352
+    make-error "1.x"
353
+    mkdirp "0.x"
354
+    resolve "1.x"
355
+    semver "^5.5"
356
+    yargs-parser "10.x"
357
+
358
+typescript@^3.2.4:
359
+  version "3.2.4"
360
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.4.tgz#c585cb952912263d915b462726ce244ba510ef3d"
361
+  integrity sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==
362
+
363
+yargs-parser@10.x:
364
+  version "10.1.0"
365
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8"
366
+  integrity sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==
367
+  dependencies:
368
+    camelcase "^4.1.0"