Browse Source

项目优化

dongdayu 6 years ago
parent
commit
331eb77ec6

+ 2
- 4
README.md View File

38
 
38
 
39
 #### 额外配置
39
 #### 额外配置
40
 
40
 
41
-**手动配置和非 Pods 管理依赖情况下**需要
42
-- 将 **node_modules/@yyyyu/react-native-geetest-sensebot/ios/SDK** 目录中 **GT3Captcha.framework** **GT3Captcha.bundle** 两个文件添加到主项目中
43
-- 将 **GT3Captcha.framework** 文件所在路径添加到 Build Settings 的 Framework Search Paths 中
41
+**手动配置和非 Pods 管理依赖情况下**需要将 **node_modules/@yyyyu/react-native-geetest-sensebot/ios/SDK/GT3Captcha.framework** 添加到 framework 依赖中
44
 
42
 
45
 ### android
43
 ### android
46
 
44
 
96
     }
94
     }
97
     ```
95
     ```
98
 
96
 
99
-2. android/app/build.gradle 配置构建工具版本需要 (buildToolsVersion >= 25)
97
+2. android/app/build.gradle 中修改构建工具版本大于 25 (buildToolsVersion >= 25)
100
 
98
 
101
 3. AndroidManifest.xml
99
 3. AndroidManifest.xml
102
     ```xml
100
     ```xml

+ 14
- 15
RNGeetestSensebot.podspec View File

1
-require "json"
1
+require 'json'
2
 
2
 
3
 package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
3
 package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
4
 
4
 
5
 Pod::Spec.new do |s|
5
 Pod::Spec.new do |s|
6
-  s.name                = "RNGeetestSensebot"
7
-  s.version             = package["version"]
8
-  s.summary             = "react native for geetest sensebot."
9
-  s.description         = package["description"]
10
-  s.license             = package["license"]
11
-  s.author              = { package["author"] => "g592842897@gmail.com" }
12
-  s.homepage            = package["homepage"]
13
-  s.source              = { :git => package["repository"]["url"], :tag => package["version"] }
6
+  s.name                = 'RNGeetestSensebot'
7
+  s.version             = package['version']
8
+  s.summary             = package['description']
9
+  s.description         = package['description']
10
+  s.license             = package['license']
11
+  s.author              = { package['author'] => 'g592842897@gmail.com' }
12
+  s.homepage            = package['homepage']
13
+  s.source              = { :git => package['repository']['url'], :tag => package['version'] }
14
 
14
 
15
   s.requires_arc        = true
15
   s.requires_arc        = true
16
-  s.platform            = :ios, "8.0"
17
-  s.source_files        = "ios/RCTGeetestSensebot.{h,m}", "ios/Helper/*.{h,m}"
18
-  s.vendored_frameworks = "ios/SDK/GT3Captcha.framework"
19
-  s.resource            = "ios/SDK/GT3Captcha.bundle"
20
-  s.framework           = "JavaScriptCore", "WebKit"
21
-
16
+  s.platform            = :ios, '8.0'
17
+  s.source_files        = 'ios/RCTGeetestSensebot.{h,m}', 'ios/Helper/*.{h,m}'
18
+  s.vendored_frameworks = 'ios/SDK/GT3Captcha.framework'
19
+  s.resource            = 'ios/SDK/GT3Captcha.bundle'
20
+  s.framework           = 'JavaScriptCore', 'WebKit'
22
 end
21
 end

+ 25
- 12
ios/RCTGeetestSensebot.xcodeproj/project.pbxproj View File

8
 
8
 
9
 /* Begin PBXBuildFile section */
9
 /* Begin PBXBuildFile section */
10
 		3643C27A20B64B8E00A0B890 /* GSColorHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 3643C27920B64B8E00A0B890 /* GSColorHelper.m */; };
10
 		3643C27A20B64B8E00A0B890 /* GSColorHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 3643C27920B64B8E00A0B890 /* GSColorHelper.m */; };
11
+		36AF50B120D2408400F82592 /* GT3Captcha.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 36AF50B020D2408400F82592 /* GT3Captcha.bundle */; };
11
 		B3E7B58A1CC2AC0600A0062D /* RCTGeetestSensebot.m in Sources */ = {isa = PBXBuildFile; fileRef = B3E7B5891CC2AC0600A0062D /* RCTGeetestSensebot.m */; };
12
 		B3E7B58A1CC2AC0600A0062D /* RCTGeetestSensebot.m in Sources */ = {isa = PBXBuildFile; fileRef = B3E7B5891CC2AC0600A0062D /* RCTGeetestSensebot.m */; };
12
 /* End PBXBuildFile section */
13
 /* End PBXBuildFile section */
13
 
14
 
28
 		134814201AA4EA6300B7C361 /* libRCTGeetestSensebot.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRCTGeetestSensebot.a; sourceTree = BUILT_PRODUCTS_DIR; };
29
 		134814201AA4EA6300B7C361 /* libRCTGeetestSensebot.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRCTGeetestSensebot.a; sourceTree = BUILT_PRODUCTS_DIR; };
29
 		3643C27820B64B2F00A0B890 /* GSColorHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GSColorHelper.h; sourceTree = "<group>"; };
30
 		3643C27820B64B2F00A0B890 /* GSColorHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GSColorHelper.h; sourceTree = "<group>"; };
30
 		3643C27920B64B8E00A0B890 /* GSColorHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GSColorHelper.m; sourceTree = "<group>"; };
31
 		3643C27920B64B8E00A0B890 /* GSColorHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GSColorHelper.m; sourceTree = "<group>"; };
32
+		36AF50B020D2408400F82592 /* GT3Captcha.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = GT3Captcha.bundle; path = SDK/GT3Captcha.bundle; sourceTree = "<group>"; };
31
 		B3E7B5881CC2AC0600A0062D /* RCTGeetestSensebot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTGeetestSensebot.h; sourceTree = "<group>"; };
33
 		B3E7B5881CC2AC0600A0062D /* RCTGeetestSensebot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTGeetestSensebot.h; sourceTree = "<group>"; };
32
 		B3E7B5891CC2AC0600A0062D /* RCTGeetestSensebot.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTGeetestSensebot.m; sourceTree = "<group>"; };
34
 		B3E7B5891CC2AC0600A0062D /* RCTGeetestSensebot.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTGeetestSensebot.m; sourceTree = "<group>"; };
33
 /* End PBXFileReference section */
35
 /* End PBXFileReference section */
60
 			path = Helper;
62
 			path = Helper;
61
 			sourceTree = "<group>";
63
 			sourceTree = "<group>";
62
 		};
64
 		};
65
+		36AF50AF20D2407800F82592 /* Resources */ = {
66
+			isa = PBXGroup;
67
+			children = (
68
+				36AF50B020D2408400F82592 /* GT3Captcha.bundle */,
69
+			);
70
+			name = Resources;
71
+			sourceTree = "<group>";
72
+		};
63
 		36CD983820B80C0500647AC8 /* Frameworks */ = {
73
 		36CD983820B80C0500647AC8 /* Frameworks */ = {
64
 			isa = PBXGroup;
74
 			isa = PBXGroup;
65
 			children = (
75
 			children = (
73
 				B3E7B5881CC2AC0600A0062D /* RCTGeetestSensebot.h */,
83
 				B3E7B5881CC2AC0600A0062D /* RCTGeetestSensebot.h */,
74
 				B3E7B5891CC2AC0600A0062D /* RCTGeetestSensebot.m */,
84
 				B3E7B5891CC2AC0600A0062D /* RCTGeetestSensebot.m */,
75
 				3643C27620B64ADF00A0B890 /* Helper */,
85
 				3643C27620B64ADF00A0B890 /* Helper */,
86
+				36AF50AF20D2407800F82592 /* Resources */,
76
 				134814211AA4EA7D00B7C361 /* Products */,
87
 				134814211AA4EA7D00B7C361 /* Products */,
77
 				36CD983820B80C0500647AC8 /* Frameworks */,
88
 				36CD983820B80C0500647AC8 /* Frameworks */,
78
 			);
89
 			);
88
 				58B511D71A9E6C8500147676 /* Sources */,
99
 				58B511D71A9E6C8500147676 /* Sources */,
89
 				58B511D81A9E6C8500147676 /* Frameworks */,
100
 				58B511D81A9E6C8500147676 /* Frameworks */,
90
 				58B511D91A9E6C8500147676 /* Copy Files */,
101
 				58B511D91A9E6C8500147676 /* Copy Files */,
102
+				36AF50AD20D2404900F82592 /* Resources */,
91
 			);
103
 			);
92
 			buildRules = (
104
 			buildRules = (
93
 			);
105
 			);
129
 		};
141
 		};
130
 /* End PBXProject section */
142
 /* End PBXProject section */
131
 
143
 
144
+/* Begin PBXResourcesBuildPhase section */
145
+		36AF50AD20D2404900F82592 /* Resources */ = {
146
+			isa = PBXResourcesBuildPhase;
147
+			buildActionMask = 2147483647;
148
+			files = (
149
+				36AF50B120D2408400F82592 /* GT3Captcha.bundle in Resources */,
150
+			);
151
+			runOnlyForDeploymentPostprocessing = 0;
152
+		};
153
+/* End PBXResourcesBuildPhase section */
154
+
132
 /* Begin PBXSourcesBuildPhase section */
155
 /* Begin PBXSourcesBuildPhase section */
133
 		58B511D71A9E6C8500147676 /* Sources */ = {
156
 		58B511D71A9E6C8500147676 /* Sources */ = {
134
 			isa = PBXSourcesBuildPhase;
157
 			isa = PBXSourcesBuildPhase;
230
 					"$(inherited)",
253
 					"$(inherited)",
231
 					"$(PROJECT_DIR)/SDK",
254
 					"$(PROJECT_DIR)/SDK",
232
 				);
255
 				);
233
-				HEADER_SEARCH_PATHS = (
234
-					"$(inherited)",
235
-					/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
236
-					"$(SRCROOT)/../../../React/**",
237
-					"$(SRCROOT)/../../react-native/React/**",
238
-				);
256
+				HEADER_SEARCH_PATHS = "$(inherited)";
239
 				LIBRARY_SEARCH_PATHS = "$(inherited)";
257
 				LIBRARY_SEARCH_PATHS = "$(inherited)";
240
 				OTHER_LDFLAGS = "-ObjC";
258
 				OTHER_LDFLAGS = "-ObjC";
241
 				PRODUCT_NAME = RCTGeetestSensebot;
259
 				PRODUCT_NAME = RCTGeetestSensebot;
250
 					"$(inherited)",
268
 					"$(inherited)",
251
 					"$(PROJECT_DIR)/SDK",
269
 					"$(PROJECT_DIR)/SDK",
252
 				);
270
 				);
253
-				HEADER_SEARCH_PATHS = (
254
-					"$(inherited)",
255
-					/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
256
-					"$(SRCROOT)/../../../React/**",
257
-					"$(SRCROOT)/../../react-native/React/**",
258
-				);
271
+				HEADER_SEARCH_PATHS = "$(inherited)";
259
 				LIBRARY_SEARCH_PATHS = "$(inherited)";
272
 				LIBRARY_SEARCH_PATHS = "$(inherited)";
260
 				OTHER_LDFLAGS = "-ObjC";
273
 				OTHER_LDFLAGS = "-ObjC";
261
 				PRODUCT_NAME = RCTGeetestSensebot;
274
 				PRODUCT_NAME = RCTGeetestSensebot;

+ 4
- 2
package.json View File

15
   },
15
   },
16
   "main": "index.js",
16
   "main": "index.js",
17
   "scripts": {
17
   "scripts": {
18
-    "test": "echo \"Error: no test specified\" && exit 1",
19
     "postinstall": "node scripts/postinstall"
18
     "postinstall": "node scripts/postinstall"
20
   },
19
   },
21
   "rnpm": {
20
   "rnpm": {
35
   },
34
   },
36
   "standard": {
35
   "standard": {
37
     "parser": "babel-eslint",
36
     "parser": "babel-eslint",
38
-    "globals": ["fetch", "Request"]
37
+    "globals": [
38
+      "fetch",
39
+      "Request"
40
+    ]
39
   }
41
   }
40
 }
42
 }

+ 15
- 11
scripts/postinstall.js View File

1
 const path = require('path')
1
 const path = require('path')
2
 const file = require('./file')
2
 const file = require('./file')
3
 
3
 
4
-const nodeModuleDir = path.dirname(__filename) + '/../../..'
4
+const postinstall = () => {
5
+  const nodeModuleDir = path.dirname(__filename) + '/../../..'
5
 
6
 
6
-const modifies = {
7
-  get reactSpec () {
8
-    const avoidDupSign = '# Dependency'
9
-    return [
10
-      nodeModuleDir + '/react-native/React.podspec',
11
-      avoidDupSign + '\n  s.subspec "Dependency" do |ss|\n    ss.source_files         = "React/**/*.h"\n  end\n\n  ',
12
-      's.subspec "Core" do |ss|',
13
-      avoidDupSign
14
-    ]
7
+  const modifies = {
8
+    get reactSpec () {
9
+      const avoidDupSign = '# Dependency'
10
+      return [
11
+        nodeModuleDir + '/react-native/React.podspec',
12
+        avoidDupSign + '\n  s.subspec "Dependency" do |ss|\n    ss.source_files         = "React/**/*.h"\n  end\n\n  ',
13
+        's.subspec "Core" do |ss|',
14
+        avoidDupSign
15
+      ]
16
+    }
15
   }
17
   }
18
+
19
+  file.fileInsert(...modifies.reactSpec)
16
 }
20
 }
17
 
21
 
18
-file.fileInsert(...modifies.reactSpec)
22
+postinstall()

+ 17
- 3
scripts/postlink.js View File

1
 const path = require('path')
1
 const path = require('path')
2
 const file = require('./file')
2
 const file = require('./file')
3
 
3
 
4
-const projectDir = path.dirname(__filename) + '/../../../..'
4
+const postlink = () => {
5
+  const projectDir = path.dirname(__filename) + '/../../../..'
5
 
6
 
6
-file.fileReplace(projectDir + '/android/settings.gradle', ':@yyyyu/react-native-geetest-sensebot', ':react-native-geetest-sensebot')
7
-file.fileReplace(projectDir + '/android/app/build.gradle', ':@yyyyu/react-native-geetest-sensebot', ':react-native-geetest-sensebot')
7
+  file.fileReplace(
8
+    projectDir + '/android/settings.gradle',
9
+    ':@yyyyu/react-native-geetest-sensebot',
10
+    ':react-native-geetest-sensebot'
11
+  )
12
+  file.fileReplace(
13
+    projectDir + '/android/app/build.gradle',
14
+    ':@yyyyu/react-native-geetest-sensebot',
15
+    ':react-native-geetest-sensebot'
16
+  )
17
+
18
+  console.log('\nLink finished, hit <Enter> to continue')
19
+}
20
+
21
+postlink()

+ 0
- 3
src/api.js View File

174
   return GeetestSensebot.stopCaptcha()
174
   return GeetestSensebot.stopCaptcha()
175
 }
175
 }
176
 
176
 
177
-
178
 /* event handle */
177
 /* event handle */
179
 const GSEmitter = new NativeEventEmitter(GeetestSensebot)
178
 const GSEmitter = new NativeEventEmitter(GeetestSensebot)
180
 
179
 
199
 }
198
 }
200
 /* event handle end */
199
 /* event handle end */
201
 
200
 
202
-
203
 /* default captcha funcs */
201
 /* default captcha funcs */
204
 const defaultApi1RespHandler = async api1Resp => {
202
 const defaultApi1RespHandler = async api1Resp => {
205
   /**
203
   /**
241
 }
239
 }
242
 /* default captcha funcs end */
240
 /* default captcha funcs end */
243
 
241
 
244
-
245
 export class GSError extends Error {
242
 export class GSError extends Error {
246
   constructor ({ errCode, errMsg }) {
243
   constructor ({ errCode, errMsg }) {
247
     super(errMsg)
244
     super(errMsg)

+ 1
- 1
src/lib/validCaptchaParams.js View File

7
     typeof params.gt === 'string' &&
7
     typeof params.gt === 'string' &&
8
     typeof params.challenge === 'string',
8
     typeof params.challenge === 'string',
9
     'captcha params must be an object have \
9
     'captcha params must be an object have \
10
-    success(Number) gt(String) challenge(String), but get %s',
10
+      success(Number) gt(String) challenge(String), but get %s',
11
     JSON.stringify(params)
11
     JSON.stringify(params)
12
   )
12
   )
13
 }
13
 }

+ 32
- 32
yarn.lock View File

89
   resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
89
   resolved "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
90
 
90
 
91
 acorn@^5.5.0:
91
 acorn@^5.5.0:
92
-  version "5.5.3"
93
-  resolved "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9"
92
+  version "5.6.2"
93
+  resolved "https://registry.npmjs.org/acorn/-/acorn-5.6.2.tgz#b1da1d7be2ac1b4a327fb9eab851702c5045b4e7"
94
 
94
 
95
 ajv-keywords@^2.1.0:
95
 ajv-keywords@^2.1.0:
96
   version "2.1.1"
96
   version "2.1.1"
193
     concat-map "0.0.1"
193
     concat-map "0.0.1"
194
 
194
 
195
 buffer-from@^1.0.0:
195
 buffer-from@^1.0.0:
196
-  version "1.0.0"
197
-  resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531"
196
+  version "1.1.0"
197
+  resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04"
198
 
198
 
199
 builtin-modules@^1.0.0, builtin-modules@^1.1.1:
199
 builtin-modules@^1.0.0, builtin-modules@^1.1.1:
200
   version "1.1.1"
200
   version "1.1.1"
251
   resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
251
   resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
252
 
252
 
253
 color-convert@^1.9.0:
253
 color-convert@^1.9.0:
254
-  version "1.9.1"
255
-  resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
254
+  version "1.9.2"
255
+  resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz#49881b8fba67df12a96bdf3f56c0aab9e7913147"
256
   dependencies:
256
   dependencies:
257
-    color-name "^1.1.1"
257
+    color-name "1.1.1"
258
 
258
 
259
-color-name@^1.1.1:
260
-  version "1.1.3"
261
-  resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
259
+color-name@1.1.1:
260
+  version "1.1.1"
261
+  resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz#4b1415304cf50028ea81643643bd82ea05803689"
262
 
262
 
263
 concat-map@0.0.1:
263
 concat-map@0.0.1:
264
   version "0.0.1"
264
   version "0.0.1"
321
     object-keys "^1.0.8"
321
     object-keys "^1.0.8"
322
 
322
 
323
 deglob@^2.1.0:
323
 deglob@^2.1.0:
324
-  version "2.1.0"
325
-  resolved "https://registry.npmjs.org/deglob/-/deglob-2.1.0.tgz#4d44abe16ef32c779b4972bd141a80325029a14a"
324
+  version "2.1.1"
325
+  resolved "https://registry.npmjs.org/deglob/-/deglob-2.1.1.tgz#d268e168727799862e8eac07042e165957c1f3be"
326
   dependencies:
326
   dependencies:
327
     find-root "^1.0.0"
327
     find-root "^1.0.0"
328
     glob "^7.0.5"
328
     glob "^7.0.5"
369
     is-arrayish "^0.2.1"
369
     is-arrayish "^0.2.1"
370
 
370
 
371
 es-abstract@^1.7.0:
371
 es-abstract@^1.7.0:
372
-  version "1.11.0"
373
-  resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681"
372
+  version "1.12.0"
373
+  resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165"
374
   dependencies:
374
   dependencies:
375
     es-to-primitive "^1.1.1"
375
     es-to-primitive "^1.1.1"
376
     function-bind "^1.1.1"
376
     function-bind "^1.1.1"
558
   resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
558
   resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
559
 
559
 
560
 fbjs@^0.8.16:
560
 fbjs@^0.8.16:
561
-  version "0.8.16"
562
-  resolved "https://registry.npmjs.org/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db"
561
+  version "0.8.17"
562
+  resolved "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
563
   dependencies:
563
   dependencies:
564
     core-js "^1.0.0"
564
     core-js "^1.0.0"
565
     isomorphic-fetch "^2.1.1"
565
     isomorphic-fetch "^2.1.1"
567
     object-assign "^4.1.0"
567
     object-assign "^4.1.0"
568
     promise "^7.1.1"
568
     promise "^7.1.1"
569
     setimmediate "^1.0.5"
569
     setimmediate "^1.0.5"
570
-    ua-parser-js "^0.7.9"
570
+    ua-parser-js "^0.7.18"
571
 
571
 
572
 figures@^2.0.0:
572
 figures@^2.0.0:
573
   version "2.0.0"
573
   version "2.0.0"
616
   version "1.0.0"
616
   version "1.0.0"
617
   resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
617
   resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
618
 
618
 
619
-function-bind@^1.0.2, function-bind@^1.1.1:
619
+function-bind@^1.1.1:
620
   version "1.1.1"
620
   version "1.1.1"
621
   resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
621
   resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
622
 
622
 
669
   resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
669
   resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
670
 
670
 
671
 has@^1.0.1:
671
 has@^1.0.1:
672
-  version "1.0.1"
673
-  resolved "https://registry.npmjs.org/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
672
+  version "1.0.3"
673
+  resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
674
   dependencies:
674
   dependencies:
675
-    function-bind "^1.0.2"
675
+    function-bind "^1.1.1"
676
 
676
 
677
 hosted-git-info@^2.1.4:
677
 hosted-git-info@^2.1.4:
678
   version "2.6.0"
678
   version "2.6.0"
679
   resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222"
679
   resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222"
680
 
680
 
681
 iconv-lite@^0.4.17, iconv-lite@~0.4.13:
681
 iconv-lite@^0.4.17, iconv-lite@~0.4.13:
682
-  version "0.4.22"
683
-  resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.22.tgz#c6b16b9d05bc6c307dc9303a820412995d2eea95"
682
+  version "0.4.23"
683
+  resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz#297871f63be507adcfbfca715d0cd0eed84e9a63"
684
   dependencies:
684
   dependencies:
685
     safer-buffer ">= 2.1.2 < 3"
685
     safer-buffer ">= 2.1.2 < 3"
686
 
686
 
808
   resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
808
   resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
809
 
809
 
810
 js-yaml@^3.9.1:
810
 js-yaml@^3.9.1:
811
-  version "3.11.0"
812
-  resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef"
811
+  version "3.12.0"
812
+  resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1"
813
   dependencies:
813
   dependencies:
814
     argparse "^1.0.7"
814
     argparse "^1.0.7"
815
     esprima "^4.0.0"
815
     esprima "^4.0.0"
879
     js-tokens "^3.0.0"
879
     js-tokens "^3.0.0"
880
 
880
 
881
 lru-cache@^4.0.1:
881
 lru-cache@^4.0.1:
882
-  version "4.1.2"
883
-  resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f"
882
+  version "4.1.3"
883
+  resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz#a1175cf3496dfc8436c156c334b4955992bce69c"
884
   dependencies:
884
   dependencies:
885
     pseudomap "^1.0.2"
885
     pseudomap "^1.0.2"
886
     yallist "^2.1.2"
886
     yallist "^2.1.2"
973
   resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
973
   resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
974
 
974
 
975
 p-limit@^1.1.0:
975
 p-limit@^1.1.0:
976
-  version "1.2.0"
977
-  resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c"
976
+  version "1.3.0"
977
+  resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
978
   dependencies:
978
   dependencies:
979
     p-try "^1.0.0"
979
     p-try "^1.0.0"
980
 
980
 
1354
   version "0.0.6"
1354
   version "0.0.6"
1355
   resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
1355
   resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
1356
 
1356
 
1357
-ua-parser-js@^0.7.9:
1357
+ua-parser-js@^0.7.18:
1358
   version "0.7.18"
1358
   version "0.7.18"
1359
   resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed"
1359
   resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz#a7bfd92f56edfb117083b69e31d2aa8882d4b1ed"
1360
 
1360
 
1378
   resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f"
1378
   resolved "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f"
1379
 
1379
 
1380
 which@^1.2.9:
1380
 which@^1.2.9:
1381
-  version "1.3.0"
1382
-  resolved "https://registry.npmjs.org/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
1381
+  version "1.3.1"
1382
+  resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
1383
   dependencies:
1383
   dependencies:
1384
     isexe "^2.0.0"
1384
     isexe "^2.0.0"
1385
 
1385