matrixbirds 5 лет назад
Родитель
Сommit
dfaabdcbd4

+ 4
- 0
.gitignore Просмотреть файл

@@ -59,3 +59,7 @@ android/src/main/res/drawable/
59 59
 .settings
60 60
 .classpath
61 61
 .jest/
62
+xcuserdata
63
+*.pbxproj
64
+lib
65
+*.xcworkspace

+ 0
- 18
AgoraView.tsx Просмотреть файл

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

+ 0
- 5
index.js Просмотреть файл

@@ -1,5 +0,0 @@
1
-import _AgoraView from './AgoraView';
2
-import _RtcEngine from './RtcEngine';
3
-
4
-export const AgoraView = _AgoraView;
5
-export const RtcEngine = _RtcEngine;

+ 0
- 7
ios/RCTAgora.xcodeproj/project.xcworkspace/contents.xcworkspacedata Просмотреть файл

@@ -1,7 +0,0 @@
1
-<?xml version="1.0" encoding="UTF-8"?>
2
-<Workspace
3
-   version = "1.0">
4
-   <FileRef
5
-      location = "self:RCTAgora.xcodeproj">
6
-   </FileRef>
7
-</Workspace>

Двоичные данные
ios/RCTAgora.xcodeproj/project.xcworkspace/xcuserdata/DB.xcuserdatad/UserInterfaceState.xcuserstate Просмотреть файл


+ 1
- 1
ios/RCTAgora/RCTAgoraViewManager.h Просмотреть файл

@@ -6,7 +6,7 @@
6 6
 //  Copyright © 2017年 Syan. All rights reserved.
7 7
 //
8 8
 
9
-#import "RCTViewManager.h"
9
+#import <React/RCTViewManager.h>
10 10
 
11 11
 
12 12
 @interface RCTAgoraViewManager : RCTViewManager

+ 8
- 5
package.json Просмотреть файл

@@ -2,10 +2,12 @@
2 2
   "name": "react-native-agora",
3 3
   "version": "1.2.5",
4 4
   "description": "声网Agora",
5
-  "main": "index.ts",
5
+  "main": "lib/index.js",
6 6
   "scripts": {
7 7
     "pu": "npm publish",
8
-    "test": "echo \"Error: no test specified\" && exit 1"
8
+    "test": "echo \"Error: no test specified\" && exit 1",
9
+    "lint": "tslint",
10
+    "build": "tsc"
9 11
   },
10 12
   "repository": {
11 13
     "type": "git",
@@ -29,16 +31,17 @@
29 31
   "homepage": "https://github.com/DBshaoYan/react-native-agora#readme",
30 32
   "peerDependencies": {
31 33
     "react": "16.3.0",
32
-    "react-native": "0.57.8",
33
-    "react-native-typescript-transformer": "^1.2.11",
34
-    "tslib": "latest"
34
+    "react-native": "0.57.8"
35 35
   },
36 36
   "devDependencies": {
37 37
     "@types/jest": "^23.3.13",
38 38
     "@types/react": "^16.7.20",
39 39
     "@types/react-native": "^0.57.31",
40 40
     "@types/react-test-renderer": "^16.0.3",
41
+    "react-native-typescript-transformer": "^1.2.11",
42
+    "tslib": "latest",
41 43
     "ts-jest": "^23.10.5",
44
+    "tslint": "^5.12.1",
42 45
     "typescript": "^3.2.4"
43 46
   },
44 47
   "types": [

+ 0
- 8
rn-cli.config.js Просмотреть файл

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

+ 6
- 0
samples/simpleDemo/clean.sh Просмотреть файл

@@ -0,0 +1,6 @@
1
+#!/usr/bin/env bash
2
+rm -rf ios/build && \
3
+watchman watch-del-all && \
4
+rm -rf *-lock.json && rm -rf *.lock && \
5
+rm -rf node_modules && yarn install && \
6
+npm start -- --reset-cache

+ 0
- 1657
samples/simpleDemo/ios/simpleDemo.xcodeproj/project.pbxproj
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 0
- 7704
samples/simpleDemo/package-lock.json
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 2
- 2
samples/simpleDemo/package.json Просмотреть файл

@@ -12,13 +12,13 @@
12 12
   },
13 13
   "dependencies": {
14 14
     "react": "16.6.3",
15
-    "react-native": "0.57.8"
15
+    "react-native": "0.57.8",
16
+    "react-native-agora": "file:../.."
16 17
   },
17 18
   "devDependencies": {
18 19
     "babel-jest": "23.6.0",
19 20
     "jest": "23.6.0",
20 21
     "metro-react-native-babel-preset": "0.51.1",
21
-    "react-native-agora": "^1.2.5",
22 22
     "react-test-renderer": "16.6.3"
23 23
   },
24 24
   "jest": {

+ 1226
- 1209
samples/simpleDemo/yarn.lock
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 27
- 0
src/AgoraView.native.tsx Просмотреть файл

@@ -0,0 +1,27 @@
1
+import React from 'react';
2
+import {
3
+    requireNativeComponent,
4
+} from 'react-native'
5
+
6
+import {
7
+    AgoraViewProps
8
+} from "./types.d";
9
+
10
+const RCTAgoraView = requireNativeComponent("RCTAgoraView");
11
+
12
+export default class AgoraView extends React.Component<AgoraViewProps> {
13
+    public render(): JSX.Element {
14
+        return (
15
+            <RCTAgoraView { ...this.getHTMLProps() } />
16
+        )
17
+    }
18
+
19
+    private getHTMLProps(): AgoraViewProps {
20
+        let htmlProps = {} as AgoraViewProps;
21
+        for (let key in this.props) {
22
+            htmlProps[key] = this.props[key];
23
+        }
24
+        return htmlProps;
25
+    }
26
+}
27
+

RtcEngine.ts → src/RtcEngine.native.ts Просмотреть файл

@@ -5,9 +5,9 @@ import {
5 5
 } from 'react-native';
6 6
 
7 7
 import {
8
-    IOption, IVideoOption,
9
-    IEventScheduler, IPublisherConfig,
10
-    ILiveTranscoding, ICallback,
8
+    Option, VideoOption,
9
+    EventScheduler, PublisherConfig,
10
+    LiveTranscoding, Callback,
11 11
     String, Number
12 12
 } from "./types.d";
13 13
 
@@ -15,8 +15,8 @@ const { Agora } = NativeModules;
15 15
 
16 16
 export default class RtcEngine {
17 17
 
18
-    private static listener: EmitterSubscription  = null;
19
-    static init(options: IOption): void {
18
+    private static listener: EmitterSubscription;
19
+    static init(options: Option): void {
20 20
         this.removeEmitter();
21 21
         Agora.init(options);
22 22
     }
@@ -30,7 +30,7 @@ export default class RtcEngine {
30 30
         Agora.joinChannelWithToken(token, channelName, uid);
31 31
     }
32 32
 
33
-    static eventEmitter(eventScheduler: IEventScheduler) {
33
+    static eventEmitter(eventScheduler: EventScheduler) {
34 34
         this.listener && this.listener.remove();
35 35
         this.listener = NativeAppEventEmitter.addListener('agoraEvent', event => {
36 36
             const functor = (eventScheduler as any)[event['type']];
@@ -58,11 +58,11 @@ export default class RtcEngine {
58 58
         Agora.destroy();
59 59
     }
60 60
     
61
-    static setupLocalVideo(options: IVideoOption) {
61
+    static setupLocalVideo(options: VideoOption) {
62 62
         Agora.setupLocalVideo(options);
63 63
     }
64 64
 
65
-    static setupRemoteVideo(options: IVideoOption) {
65
+    static setupRemoteVideo(options: VideoOption) {
66 66
         Agora.setupRemoteVideo(options);
67 67
     }
68 68
 
@@ -74,11 +74,11 @@ export default class RtcEngine {
74 74
         Agora.stopPreview();
75 75
     }
76 76
 
77
-    static configPublisher(options: IPublisherConfig) {
77
+    static configPublisher(options: PublisherConfig) {
78 78
         Agora.configPublisher(options);
79 79
     }
80 80
 
81
-    static setLiveTranscoding(options: ILiveTranscoding) {
81
+    static setLiveTranscoding(options: LiveTranscoding) {
82 82
         Agora.setLiveTranscoding(options);
83 83
     }
84 84
 
@@ -146,15 +146,15 @@ export default class RtcEngine {
146 146
         Agora.muteAllRemoteVideoStreams(status);
147 147
     }
148 148
 
149
-    static createDataStream(reliable: boolean, ordered: boolean, callback: ICallback<void>) {
149
+    static createDataStream(reliable: boolean, ordered: boolean, callback: Callback<void>) {
150 150
         Agora.createDataStream(reliable, ordered, callback);
151 151
     }
152 152
 
153
-    static sendStreamMessage(streamId: number, data: any, callback: ICallback<void>) {
153
+    static sendStreamMessage(streamId: number, data: any, callback: Callback<void>) {
154 154
         Agora.sendStreamMessage(streamId, data, callback);
155 155
     }
156 156
 
157
-    static getSdkVersion(callback: ICallback<void>) {
157
+    static getSdkVersion(callback: Callback<void>) {
158 158
         Agora.getSdkVersion(callback);
159 159
     }
160 160
 };

+ 2
- 0
src/index.ts Просмотреть файл

@@ -0,0 +1,2 @@
1
+export {default as AgoraView} from './AgoraView.native';
2
+export {default as RtcEngine} from './RtcEngine.native';

types.d.ts → src/types.d.ts Просмотреть файл

@@ -2,22 +2,23 @@ import { View, ViewProps } from 'react-native';
2 2
 
3 3
 declare module "IAgora";
4 4
 
5
-export interface IVideoEncoderConfig {
5
+export interface VideoEncoderConfig {
6 6
   width: number,
7 7
   height: number,
8 8
   bitrate: number,
9 9
   frameRate: number,
10 10
   orientationMode: number,
11
-};
12
-export interface IOption {
11
+}
12
+
13
+export interface Option {
13 14
   appid: String,
14 15
   videoProfile: number
15 16
   channelProfile: number,
16
-  videoEncoderConfig: IVideoEncoderConfig,
17
+  videoEncoderConfig: VideoEncoderConfig,
17 18
   clientRole: number
18 19
 }
19 20
 
20
-export interface IPublisherConfig {
21
+export interface PublisherConfig {
21 22
   width: number,
22 23
   height: number,
23 24
   framerate: number,
@@ -30,7 +31,7 @@ export interface IPublisherConfig {
30 31
   owner: boolean
31 32
 }
32 33
 
33
-export interface IBackgroundImage {
34
+export interface BackgroundImage {
34 35
   url: string,
35 36
   x: number,
36 37
   y: number,
@@ -38,57 +39,57 @@ export interface IBackgroundImage {
38 39
   height: number
39 40
 }
40 41
 
41
-export interface IRect {
42
+export interface Rect {
42 43
   x: number,
43 44
   y: number,
44 45
   width: number,
45 46
   height: number
46
-};
47
+}
47 48
 
48
-export interface ISize {
49
+export interface Size {
49 50
   width: number,
50 51
   height: number
51
-};
52
+}
52 53
 
53
-export interface ITranscodingUser {
54
+export interface TranscodingUser {
54 55
   uid: number,
55 56
   zOrder: number,
56 57
   rect: Rect,
57 58
   alpha: number,
58 59
   audioChannel: number
59
-};
60
+}
60 61
 
61
-export interface IColor {
62
+export interface Color {
62 63
   red: number,
63 64
   green: number,
64 65
   blue: number,
65 66
   alpha: number
66
-};
67
+}
67 68
 
68
-export interface ILiveTranscoding {
69
-  size: ISize,
69
+export interface LiveTranscoding {
70
+  size: Size,
70 71
   videoBitrate: number,
71 72
   videoFramerate: number,
72 73
   lowLatency: boolean,
73 74
   videoGop: number,
74 75
   videoCodecProfile: number,
75
-  transcodingUsers: Array<ITranscodingUser>,
76
+  transcodingUsers: Array<TranscodingUser>,
76 77
   transcodingExtraInfo: string,
77
-  watermark: IBackgroundImage,
78
-  backgroundImage: IBackgroundImage,
79
-  backgroundColor: IColor,
78
+  watermark: BackgroundImage,
79
+  backgroundImage: BackgroundImage,
80
+  backgroundColor: Color,
80 81
   audioSampleRate: number,
81 82
   audioBitrate: number,
82 83
   audioChannels: number,
83
-};
84
+}
84 85
 
85
-export interface IVideoOption {
86
+export interface VideoOption {
86 87
   uid: Number,
87 88
   renderMode: number,
88 89
   reactTag: number
89 90
 }
90 91
 
91
-export interface IEventScheduler {
92
+export interface EventScheduler {
92 93
   onFirstRemoteVideoDecoded: Function,
93 94
   onJoinChannelSuccess: Function,
94 95
   onUserOffline: Function,
@@ -101,15 +102,16 @@ export interface IEventScheduler {
101 102
   onStreamMessageError: Function
102 103
 }
103 104
 
104
-export type ICallback<T> = (err, data) => T;
105
+export type Callback<T> = (err: any, data: any) => T;
105 106
 
106 107
 export type Nullable<T> = T | null | undefined;
107 108
 
108 109
 export type String = Nullable<string>;
109 110
 export type Number = Nullable<number> | 0;
110 111
 
111
-export interface IAgoraViewProps extends ViewProps {
112
+export interface AgoraViewProps extends ViewProps {
112 113
   showLocalVideo: boolean,
113 114
   remoteUid: Number,
114
-  zOrderMediaOverlay: boolean
115
+  zOrderMediaOverlay: boolean,
116
+  [key:string]: any;
115 117
 }

+ 15
- 19
tsconfig.json Просмотреть файл

@@ -1,27 +1,23 @@
1 1
 {
2 2
   "compilerOptions": {
3
-    "target": "es5",
4
-    "module": "commonjs",
5
-    "jsx": "react-native",
6
-    "noEmit": true,
3
+    "types": [
4
+      "react",
5
+      "react-native"
6
+    ],
7
+    "target": "es2015",
8
+    "jsx": "react",
7 9
     "moduleResolution": "node",
10
+    "sourceMap": true,
8 11
     "importHelpers": true,
12
+    "outDir": "./lib",
13
+    "module": "commonjs",
14
+    "strict": true,
9 15
     "allowSyntheticDefaultImports": true,
10
-    "noImplicitAny": false,
11
-    "preserveConstEnums": true,
12
-    "allowJs": false,
13
-    "strict": false,
14
-    "noImplicitReturns": false,
15
-    "noUnusedParameters": false,
16
-    "noUnusedLocals": false,
17
-    "skipLibCheck": true,
18
-    "baseUrl": ".",
19
-    "importHelpers": true,
16
+    "esModuleInterop": true,
17
+    "lib": ["es2015"]
20 18
   },
21
-  "lib": [ "dom", "es5", "es6", "scripthost" ],
22
-  "exclude": [
23
-    "android",
24
-    "ios",
25
-    "node_modules"
19
+  "compileOnSave": true,
20
+  "include": [
21
+    "src"
26 22
   ]
27 23
 }

+ 510
- 0
yarn.lock Просмотреть файл

@@ -0,0 +1,510 @@
1
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2
+# yarn lockfile v1
3
+
4
+
5
+"@types/jest@^23.3.13":
6
+  version "23.3.13"
7
+  resolved "http://registry.npm.taobao.org/@types/jest/download/@types/jest-23.3.13.tgz#c81484b6f4ca007bb09887ed15ecb3286d58f928"
8
+  integrity sha1-yBSEtvTKAHuwmIftFeyzKG1Y+Sg=
9
+
10
+"@types/prop-types@*":
11
+  version "15.5.8"
12
+  resolved "http://registry.npm.taobao.org/@types/prop-types/download/@types/prop-types-15.5.8.tgz#8ae4e0ea205fe95c3901a5a1df7f66495e3a56ce"
13
+  integrity sha1-iuTg6iBf6Vw5AaWh339mSV46Vs4=
14
+
15
+"@types/react-native@^0.57.31":
16
+  version "0.57.33"
17
+  resolved "http://registry.npm.taobao.org/@types/react-native/download/@types/react-native-0.57.33.tgz#1d35a883c6e30d6f0b40385230fde2d8213b4dca"
18
+  integrity sha1-HTWog8bjDW8LQDhSMP3i2CE7Tco=
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 "http://registry.npm.taobao.org/@types/react-test-renderer/download/@types/react-test-renderer-16.0.3.tgz#cce5c983d66cc5c3582e7c2f44b274ab635a8acc"
26
+  integrity sha1-zOXJg9ZsxcNYLnwvRLJ0q2Naisw=
27
+  dependencies:
28
+    "@types/react" "*"
29
+
30
+"@types/react@*", "@types/react@^16.7.20":
31
+  version "16.7.22"
32
+  resolved "http://registry.npm.taobao.org/@types/react/download/@types/react-16.7.22.tgz#5bc6d166d5ac34b835756f0b736c7b1af0043e81"
33
+  integrity sha1-W8bRZtWsNLg1dW8Lc2x7GvAEPoE=
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 "http://registry.npm.taobao.org/ansi-regex/download/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 "http://registry.npm.taobao.org/ansi-styles/download/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 "http://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
51
+  integrity sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=
52
+  dependencies:
53
+    color-convert "^1.9.0"
54
+
55
+argparse@^1.0.7:
56
+  version "1.0.10"
57
+  resolved "http://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
58
+  integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=
59
+  dependencies:
60
+    sprintf-js "~1.0.2"
61
+
62
+babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
63
+  version "6.26.0"
64
+  resolved "http://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
65
+  integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=
66
+  dependencies:
67
+    chalk "^1.1.3"
68
+    esutils "^2.0.2"
69
+    js-tokens "^3.0.2"
70
+
71
+babel-messages@^6.23.0:
72
+  version "6.23.0"
73
+  resolved "http://registry.npm.taobao.org/babel-messages/download/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
74
+  integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=
75
+  dependencies:
76
+    babel-runtime "^6.22.0"
77
+
78
+babel-runtime@^6.22.0, babel-runtime@^6.26.0:
79
+  version "6.26.0"
80
+  resolved "http://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
81
+  integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
82
+  dependencies:
83
+    core-js "^2.4.0"
84
+    regenerator-runtime "^0.11.0"
85
+
86
+babel-traverse@^6.26.0:
87
+  version "6.26.0"
88
+  resolved "http://registry.npm.taobao.org/babel-traverse/download/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
89
+  integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=
90
+  dependencies:
91
+    babel-code-frame "^6.26.0"
92
+    babel-messages "^6.23.0"
93
+    babel-runtime "^6.26.0"
94
+    babel-types "^6.26.0"
95
+    babylon "^6.18.0"
96
+    debug "^2.6.8"
97
+    globals "^9.18.0"
98
+    invariant "^2.2.2"
99
+    lodash "^4.17.4"
100
+
101
+babel-types@^6.26.0:
102
+  version "6.26.0"
103
+  resolved "http://registry.npm.taobao.org/babel-types/download/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
104
+  integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=
105
+  dependencies:
106
+    babel-runtime "^6.26.0"
107
+    esutils "^2.0.2"
108
+    lodash "^4.17.4"
109
+    to-fast-properties "^1.0.3"
110
+
111
+babylon@^6.18.0:
112
+  version "6.18.0"
113
+  resolved "http://registry.npm.taobao.org/babylon/download/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
114
+  integrity sha1-ry87iPpvXB5MY00aD46sT1WzleM=
115
+
116
+balanced-match@^1.0.0:
117
+  version "1.0.0"
118
+  resolved "http://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
119
+  integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
120
+
121
+brace-expansion@^1.1.7:
122
+  version "1.1.11"
123
+  resolved "http://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
124
+  integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=
125
+  dependencies:
126
+    balanced-match "^1.0.0"
127
+    concat-map "0.0.1"
128
+
129
+bs-logger@0.x:
130
+  version "0.2.6"
131
+  resolved "http://registry.npm.taobao.org/bs-logger/download/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
132
+  integrity sha1-6302UwenLPl0zGzadraDVK0za9g=
133
+  dependencies:
134
+    fast-json-stable-stringify "2.x"
135
+
136
+buffer-from@1.x:
137
+  version "1.1.1"
138
+  resolved "http://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
139
+  integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=
140
+
141
+builtin-modules@^1.1.1:
142
+  version "1.1.1"
143
+  resolved "http://registry.npm.taobao.org/builtin-modules/download/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
144
+  integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
145
+
146
+camelcase@^4.1.0:
147
+  version "4.1.0"
148
+  resolved "http://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
149
+  integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=
150
+
151
+chalk@^1.1.3:
152
+  version "1.1.3"
153
+  resolved "http://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
154
+  integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
155
+  dependencies:
156
+    ansi-styles "^2.2.1"
157
+    escape-string-regexp "^1.0.2"
158
+    has-ansi "^2.0.0"
159
+    strip-ansi "^3.0.0"
160
+    supports-color "^2.0.0"
161
+
162
+chalk@^2.3.0, chalk@^2.4.0:
163
+  version "2.4.2"
164
+  resolved "http://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
165
+  integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=
166
+  dependencies:
167
+    ansi-styles "^3.2.1"
168
+    escape-string-regexp "^1.0.5"
169
+    supports-color "^5.3.0"
170
+
171
+color-convert@^1.9.0:
172
+  version "1.9.3"
173
+  resolved "http://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
174
+  integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=
175
+  dependencies:
176
+    color-name "1.1.3"
177
+
178
+color-name@1.1.3:
179
+  version "1.1.3"
180
+  resolved "http://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
181
+  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
182
+
183
+commander@^2.12.1:
184
+  version "2.19.0"
185
+  resolved "http://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
186
+  integrity sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=
187
+
188
+concat-map@0.0.1:
189
+  version "0.0.1"
190
+  resolved "http://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
191
+  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
192
+
193
+core-js@^2.4.0:
194
+  version "2.6.3"
195
+  resolved "http://registry.npm.taobao.org/core-js/download/core-js-2.6.3.tgz#4b70938bdffdaf64931e66e2db158f0892289c49"
196
+  integrity sha1-S3CTi9/9r2STHmbi2xWPCJIonEk=
197
+
198
+csstype@^2.2.0:
199
+  version "2.6.2"
200
+  resolved "http://registry.npm.taobao.org/csstype/download/csstype-2.6.2.tgz#3043d5e065454579afc7478a18de41909c8a2f01"
201
+  integrity sha1-MEPV4GVFRXmvx0eKGN5BkJyKLwE=
202
+
203
+debug@^2.6.8:
204
+  version "2.6.9"
205
+  resolved "http://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
206
+  integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=
207
+  dependencies:
208
+    ms "2.0.0"
209
+
210
+diff@^3.2.0:
211
+  version "3.5.0"
212
+  resolved "http://registry.npm.taobao.org/diff/download/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
213
+  integrity sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=
214
+
215
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
216
+  version "1.0.5"
217
+  resolved "http://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
218
+  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
219
+
220
+esprima@^4.0.0:
221
+  version "4.0.1"
222
+  resolved "http://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
223
+  integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=
224
+
225
+esutils@^2.0.2:
226
+  version "2.0.2"
227
+  resolved "http://registry.npm.taobao.org/esutils/download/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
228
+  integrity sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=
229
+
230
+fast-json-stable-stringify@2.x:
231
+  version "2.0.0"
232
+  resolved "http://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
233
+  integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
234
+
235
+find-root@^1.1.0:
236
+  version "1.1.0"
237
+  resolved "http://registry.npm.taobao.org/find-root/download/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
238
+  integrity sha1-q8/Iunb3CMQql7PWhbfpRQv7nOQ=
239
+
240
+fs.realpath@^1.0.0:
241
+  version "1.0.0"
242
+  resolved "http://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
243
+  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
244
+
245
+glob@^7.1.1:
246
+  version "7.1.3"
247
+  resolved "http://registry.npm.taobao.org/glob/download/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
248
+  integrity sha1-OWCDLT8VdBCDQtr9OmezMsCWnfE=
249
+  dependencies:
250
+    fs.realpath "^1.0.0"
251
+    inflight "^1.0.4"
252
+    inherits "2"
253
+    minimatch "^3.0.4"
254
+    once "^1.3.0"
255
+    path-is-absolute "^1.0.0"
256
+
257
+globals@^9.18.0:
258
+  version "9.18.0"
259
+  resolved "http://registry.npm.taobao.org/globals/download/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
260
+  integrity sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=
261
+
262
+has-ansi@^2.0.0:
263
+  version "2.0.0"
264
+  resolved "http://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
265
+  integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
266
+  dependencies:
267
+    ansi-regex "^2.0.0"
268
+
269
+has-flag@^3.0.0:
270
+  version "3.0.0"
271
+  resolved "http://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
272
+  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
273
+
274
+inflight@^1.0.4:
275
+  version "1.0.6"
276
+  resolved "http://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
277
+  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
278
+  dependencies:
279
+    once "^1.3.0"
280
+    wrappy "1"
281
+
282
+inherits@2:
283
+  version "2.0.3"
284
+  resolved "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
285
+  integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
286
+
287
+invariant@^2.2.2:
288
+  version "2.2.4"
289
+  resolved "http://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
290
+  integrity sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=
291
+  dependencies:
292
+    loose-envify "^1.0.0"
293
+
294
+jju@^1.3.0:
295
+  version "1.4.0"
296
+  resolved "http://registry.npm.taobao.org/jju/download/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a"
297
+  integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo=
298
+
299
+"js-tokens@^3.0.0 || ^4.0.0":
300
+  version "4.0.0"
301
+  resolved "http://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
302
+  integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk=
303
+
304
+js-tokens@^3.0.2:
305
+  version "3.0.2"
306
+  resolved "http://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
307
+  integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls=
308
+
309
+js-yaml@^3.7.0:
310
+  version "3.12.1"
311
+  resolved "http://registry.npm.taobao.org/js-yaml/download/js-yaml-3.12.1.tgz#295c8632a18a23e054cf5c9d3cecafe678167600"
312
+  integrity sha1-KVyGMqGKI+BUz1ydPOyv5ngWdgA=
313
+  dependencies:
314
+    argparse "^1.0.7"
315
+    esprima "^4.0.0"
316
+
317
+json5@2.x:
318
+  version "2.1.0"
319
+  resolved "http://registry.npm.taobao.org/json5/download/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
320
+  integrity sha1-56DGLEgoXGKNIKELhcibuAfDKFA=
321
+  dependencies:
322
+    minimist "^1.2.0"
323
+
324
+lodash@^4.17.4:
325
+  version "4.17.11"
326
+  resolved "http://registry.npm.taobao.org/lodash/download/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
327
+  integrity sha1-s56mIp72B+zYniyN8SU2iRysm40=
328
+
329
+loose-envify@^1.0.0:
330
+  version "1.4.0"
331
+  resolved "http://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
332
+  integrity sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=
333
+  dependencies:
334
+    js-tokens "^3.0.0 || ^4.0.0"
335
+
336
+make-error@1.x:
337
+  version "1.3.5"
338
+  resolved "http://registry.npm.taobao.org/make-error/download/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
339
+  integrity sha1-7+ToH22yjK3WBccPKcgxtY73dsg=
340
+
341
+minimatch@^3.0.4:
342
+  version "3.0.4"
343
+  resolved "http://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
344
+  integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=
345
+  dependencies:
346
+    brace-expansion "^1.1.7"
347
+
348
+minimist@0.0.8:
349
+  version "0.0.8"
350
+  resolved "http://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
351
+  integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
352
+
353
+minimist@^1.2.0:
354
+  version "1.2.0"
355
+  resolved "http://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
356
+  integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
357
+
358
+mkdirp@0.x:
359
+  version "0.5.1"
360
+  resolved "http://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
361
+  integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
362
+  dependencies:
363
+    minimist "0.0.8"
364
+
365
+ms@2.0.0:
366
+  version "2.0.0"
367
+  resolved "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
368
+  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
369
+
370
+once@^1.3.0:
371
+  version "1.4.0"
372
+  resolved "http://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
373
+  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
374
+  dependencies:
375
+    wrappy "1"
376
+
377
+path-is-absolute@^1.0.0:
378
+  version "1.0.1"
379
+  resolved "http://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
380
+  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
381
+
382
+path-parse@^1.0.6:
383
+  version "1.0.6"
384
+  resolved "http://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
385
+  integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=
386
+
387
+react-native-typescript-transformer@^1.2.11:
388
+  version "1.2.11"
389
+  resolved "http://registry.npm.taobao.org/react-native-typescript-transformer/download/react-native-typescript-transformer-1.2.11.tgz#679398c27262cf941e5a5f3ea45cf7eea715d557"
390
+  integrity sha1-Z5OYwnJiz5QeWl8+pFz37qcV1Vc=
391
+  dependencies:
392
+    babel-traverse "^6.26.0"
393
+    chalk "^2.4.0"
394
+    find-root "^1.1.0"
395
+    jju "^1.3.0"
396
+    semver "^5.4.1"
397
+    source-map "^0.5.6"
398
+
399
+regenerator-runtime@^0.11.0:
400
+  version "0.11.1"
401
+  resolved "http://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
402
+  integrity sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=
403
+
404
+resolve@1.x, resolve@^1.3.2:
405
+  version "1.10.0"
406
+  resolved "http://registry.npm.taobao.org/resolve/download/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba"
407
+  integrity sha1-O9qur0XMB/N1ZW39LlTtCBCxAbo=
408
+  dependencies:
409
+    path-parse "^1.0.6"
410
+
411
+semver@^5.3.0, semver@^5.4.1, semver@^5.5:
412
+  version "5.6.0"
413
+  resolved "http://registry.npm.taobao.org/semver/download/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004"
414
+  integrity sha1-fnQlb7qknHWqfHogXMInmcrIAAQ=
415
+
416
+source-map@^0.5.6:
417
+  version "0.5.7"
418
+  resolved "http://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
419
+  integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
420
+
421
+sprintf-js@~1.0.2:
422
+  version "1.0.3"
423
+  resolved "http://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
424
+  integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
425
+
426
+strip-ansi@^3.0.0:
427
+  version "3.0.1"
428
+  resolved "http://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
429
+  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
430
+  dependencies:
431
+    ansi-regex "^2.0.0"
432
+
433
+supports-color@^2.0.0:
434
+  version "2.0.0"
435
+  resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
436
+  integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
437
+
438
+supports-color@^5.3.0:
439
+  version "5.5.0"
440
+  resolved "http://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
441
+  integrity sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=
442
+  dependencies:
443
+    has-flag "^3.0.0"
444
+
445
+to-fast-properties@^1.0.3:
446
+  version "1.0.3"
447
+  resolved "http://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
448
+  integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=
449
+
450
+ts-jest@^23.10.5:
451
+  version "23.10.5"
452
+  resolved "http://registry.npm.taobao.org/ts-jest/download/ts-jest-23.10.5.tgz#cdb550df4466a30489bf70ba867615799f388dd5"
453
+  integrity sha1-zbVQ30RmowSJv3C6hnYVeZ84jdU=
454
+  dependencies:
455
+    bs-logger "0.x"
456
+    buffer-from "1.x"
457
+    fast-json-stable-stringify "2.x"
458
+    json5 "2.x"
459
+    make-error "1.x"
460
+    mkdirp "0.x"
461
+    resolve "1.x"
462
+    semver "^5.5"
463
+    yargs-parser "10.x"
464
+
465
+tslib@^1.8.0, tslib@^1.8.1, tslib@latest:
466
+  version "1.9.3"
467
+  resolved "http://registry.npm.taobao.org/tslib/download/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286"
468
+  integrity sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY=
469
+
470
+tslint@^5.12.1:
471
+  version "5.12.1"
472
+  resolved "http://registry.npm.taobao.org/tslint/download/tslint-5.12.1.tgz#8cec9d454cf8a1de9b0a26d7bdbad6de362e52c1"
473
+  integrity sha1-jOydRUz4od6bCibXvbrW3jYuUsE=
474
+  dependencies:
475
+    babel-code-frame "^6.22.0"
476
+    builtin-modules "^1.1.1"
477
+    chalk "^2.3.0"
478
+    commander "^2.12.1"
479
+    diff "^3.2.0"
480
+    glob "^7.1.1"
481
+    js-yaml "^3.7.0"
482
+    minimatch "^3.0.4"
483
+    resolve "^1.3.2"
484
+    semver "^5.3.0"
485
+    tslib "^1.8.0"
486
+    tsutils "^2.27.2"
487
+
488
+tsutils@^2.27.2:
489
+  version "2.29.0"
490
+  resolved "http://registry.npm.taobao.org/tsutils/download/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
491
+  integrity sha1-MrSIUBRnrL7dS4VJhnOggSrKC5k=
492
+  dependencies:
493
+    tslib "^1.8.1"
494
+
495
+typescript@^3.2.4:
496
+  version "3.2.4"
497
+  resolved "http://registry.npm.taobao.org/typescript/download/typescript-3.2.4.tgz#c585cb952912263d915b462726ce244ba510ef3d"
498
+  integrity sha1-xYXLlSkSJj2RW0YnJs4kS6UQ7z0=
499
+
500
+wrappy@1:
501
+  version "1.0.2"
502
+  resolved "http://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
503
+  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
504
+
505
+yargs-parser@10.x:
506
+  version "10.1.0"
507
+  resolved "http://registry.npm.taobao.org/yargs-parser/download/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8"
508
+  integrity sha1-cgImW4n36eny5XZeD+c1qQXtuqg=
509
+  dependencies:
510
+    camelcase "^4.1.0"