react-native-update-cli 1.30.3 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cli.json CHANGED
@@ -81,7 +81,6 @@
81
81
  "packageId": {
82
82
  "hasValue": true
83
83
  },
84
-
85
84
  "packageVersion": {
86
85
  "hasValue": true
87
86
  },
@@ -90,6 +89,9 @@
90
89
  },
91
90
  "maxPackageVersion": {
92
91
  "hasValue": true
92
+ },
93
+ "rollout": {
94
+ "hasValue": true
93
95
  }
94
96
  }
95
97
  },
package/lib/api.js CHANGED
@@ -1,210 +1,201 @@
1
- 'use strict';
2
-
1
+ "use strict";
3
2
  Object.defineProperty(exports, "__esModule", {
4
- value: true
3
+ value: true
5
4
  });
6
- exports.doDelete = exports.put = exports.post = exports.get = exports.closeSession = exports.saveSession = exports.loadSession = exports.replaceSession = exports.getSession = undefined;
7
- exports.uploadFile = uploadFile;
8
-
9
- var _nodeFetch = require('node-fetch');
10
-
11
- var _nodeFetch2 = _interopRequireDefault(_nodeFetch);
12
-
13
- var _fs = require('fs');
14
-
15
- var _fs2 = _interopRequireDefault(_fs);
16
-
17
- var _request = require('request');
18
-
19
- var _request2 = _interopRequireDefault(_request);
20
-
21
- var _progress = require('progress');
22
-
23
- var _progress2 = _interopRequireDefault(_progress);
24
-
25
- var _package = require('../package.json');
26
-
27
- var _package2 = _interopRequireDefault(_package);
28
-
29
- var _tcpPing = require('tcp-ping');
30
-
31
- var _tcpPing2 = _interopRequireDefault(_tcpPing);
32
-
33
- var _util = require('util');
34
-
35
- var _util2 = _interopRequireDefault(_util);
36
-
37
- var _path = require('path');
38
-
39
- var _path2 = _interopRequireDefault(_path);
40
-
41
- var _filesizeParser = require('filesize-parser');
42
-
43
- var _filesizeParser2 = _interopRequireDefault(_filesizeParser);
44
-
45
- var _utils = require('./utils');
46
-
47
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
48
-
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ closeSession: function() {
13
+ return closeSession;
14
+ },
15
+ doDelete: function() {
16
+ return doDelete;
17
+ },
18
+ get: function() {
19
+ return get;
20
+ },
21
+ getSession: function() {
22
+ return getSession;
23
+ },
24
+ loadSession: function() {
25
+ return loadSession;
26
+ },
27
+ post: function() {
28
+ return post;
29
+ },
30
+ put: function() {
31
+ return put;
32
+ },
33
+ replaceSession: function() {
34
+ return replaceSession;
35
+ },
36
+ saveSession: function() {
37
+ return saveSession;
38
+ },
39
+ uploadFile: function() {
40
+ return uploadFile;
41
+ }
42
+ });
43
+ const _nodefetch = /*#__PURE__*/ _interop_require_default(require("node-fetch"));
44
+ const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
45
+ const _request = /*#__PURE__*/ _interop_require_default(require("request"));
46
+ const _progress = /*#__PURE__*/ _interop_require_default(require("progress"));
47
+ const _packagejson = /*#__PURE__*/ _interop_require_default(require("../package.json"));
48
+ const _tcpping = /*#__PURE__*/ _interop_require_default(require("tcp-ping"));
49
+ const _util = /*#__PURE__*/ _interop_require_default(require("util"));
50
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
51
+ const _filesizeparser = /*#__PURE__*/ _interop_require_default(require("filesize-parser"));
52
+ const _utils = require("./utils");
53
+ function _interop_require_default(obj) {
54
+ return obj && obj.__esModule ? obj : {
55
+ default: obj
56
+ };
57
+ }
49
58
  const defaultEndpoint = 'https://update.reactnative.cn/api';
50
59
  let host = process.env.PUSHY_REGISTRY || defaultEndpoint;
51
-
52
-
53
- const tcpPing = _util2.default.promisify(_tcpPing2.default.ping);
54
-
60
+ const tcpPing = _util.default.promisify(_tcpping.default.ping);
55
61
  let session = undefined;
56
62
  let savedSession = undefined;
57
-
58
- const userAgent = `react-native-update-cli/${_package2.default.version}`;
59
-
60
- const getSession = exports.getSession = function () {
61
- return session;
63
+ const userAgent = `react-native-update-cli/${_packagejson.default.version}`;
64
+ const getSession = function() {
65
+ return session;
62
66
  };
63
-
64
- const replaceSession = exports.replaceSession = function (newSession) {
65
- session = newSession;
67
+ const replaceSession = function(newSession) {
68
+ session = newSession;
66
69
  };
67
-
68
- const loadSession = exports.loadSession = async function () {
69
- if (_fs2.default.existsSync('.update')) {
70
- try {
71
- replaceSession(JSON.parse(_fs2.default.readFileSync('.update', 'utf8')));
72
- savedSession = session;
73
- } catch (e) {
74
- console.error('Failed to parse file `.update`. Try to remove it manually.');
75
- throw e;
70
+ const loadSession = async function() {
71
+ if (_fs.default.existsSync('.update')) {
72
+ try {
73
+ replaceSession(JSON.parse(_fs.default.readFileSync('.update', 'utf8')));
74
+ savedSession = session;
75
+ } catch (e) {
76
+ console.error('Failed to parse file `.update`. Try to remove it manually.');
77
+ throw e;
78
+ }
76
79
  }
77
- }
78
80
  };
79
-
80
- const saveSession = exports.saveSession = function () {
81
- // Only save on change.
82
- if (session !== savedSession) {
83
- const current = session;
84
- const data = JSON.stringify(current, null, 4);
85
- _fs2.default.writeFileSync('.update', data, 'utf8');
86
- savedSession = current;
87
- }
81
+ const saveSession = function() {
82
+ // Only save on change.
83
+ if (session !== savedSession) {
84
+ const current = session;
85
+ const data = JSON.stringify(current, null, 4);
86
+ _fs.default.writeFileSync('.update', data, 'utf8');
87
+ savedSession = current;
88
+ }
88
89
  };
89
-
90
- const closeSession = exports.closeSession = function () {
91
- if (_fs2.default.existsSync('.update')) {
92
- _fs2.default.unlinkSync('.update');
93
- savedSession = undefined;
94
- }
95
- session = undefined;
96
- host = process.env.PUSHY_REGISTRY || defaultEndpoint;
90
+ const closeSession = function() {
91
+ if (_fs.default.existsSync('.update')) {
92
+ _fs.default.unlinkSync('.update');
93
+ savedSession = undefined;
94
+ }
95
+ session = undefined;
96
+ host = process.env.PUSHY_REGISTRY || defaultEndpoint;
97
97
  };
98
-
99
98
  async function query(url, options) {
100
- const resp = await (0, _nodeFetch2.default)(url, options);
101
- const text = await resp.text();
102
- let json;
103
- try {
104
- json = JSON.parse(text);
105
- } catch (e) {
106
- if (resp.statusText.includes('Unauthorized')) {
107
- throw new Error('登录信息已过期,请使用 pushy login 命令重新登录');
108
- } else {
109
- throw new Error(`Server error: ${resp.statusText}`);
99
+ const resp = await (0, _nodefetch.default)(url, options);
100
+ const text = await resp.text();
101
+ let json;
102
+ try {
103
+ json = JSON.parse(text);
104
+ } catch (e) {
105
+ if (resp.statusText.includes('Unauthorized')) {
106
+ throw new Error('登录信息已过期,请使用 pushy login 命令重新登录');
107
+ } else {
108
+ throw new Error(`Server error: ${resp.statusText}`);
109
+ }
110
110
  }
111
- }
112
-
113
- if (resp.status !== 200) {
114
- throw Object.assign(new Error(json.message || json.error), {
115
- status: resp.status
116
- });
117
- }
118
- return json;
111
+ if (resp.status !== 200) {
112
+ throw Object.assign(new Error(json.message || json.error || resp.statusText), {
113
+ status: resp.status
114
+ });
115
+ }
116
+ return json;
119
117
  }
120
-
121
118
  function queryWithoutBody(method) {
122
- return function (api) {
123
- return query(host + api, {
124
- method,
125
- headers: {
126
- 'User-Agent': userAgent,
127
- 'X-AccessToken': session ? session.token : ''
128
- }
129
- });
130
- };
119
+ return function(api) {
120
+ return query(host + api, {
121
+ method,
122
+ headers: {
123
+ 'User-Agent': userAgent,
124
+ 'X-AccessToken': session ? session.token : ''
125
+ }
126
+ });
127
+ };
131
128
  }
132
-
133
129
  function queryWithBody(method) {
134
- return function (api, body) {
135
- return query(host + api, {
136
- method,
137
- headers: {
138
- 'User-Agent': userAgent,
139
- 'Content-Type': 'application/json',
140
- 'X-AccessToken': session ? session.token : ''
141
- },
142
- body: JSON.stringify(body)
143
- });
144
- };
130
+ return function(api, body) {
131
+ return query(host + api, {
132
+ method,
133
+ headers: {
134
+ 'User-Agent': userAgent,
135
+ 'Content-Type': 'application/json',
136
+ 'X-AccessToken': session ? session.token : ''
137
+ },
138
+ body: JSON.stringify(body)
139
+ });
140
+ };
145
141
  }
146
-
147
- const get = exports.get = queryWithoutBody('GET');
148
- const post = exports.post = queryWithBody('POST');
149
- const put = exports.put = queryWithBody('PUT');
150
- const doDelete = exports.doDelete = queryWithBody('DELETE');
151
-
142
+ const get = queryWithoutBody('GET');
143
+ const post = queryWithBody('POST');
144
+ const put = queryWithBody('PUT');
145
+ const doDelete = queryWithBody('DELETE');
152
146
  async function uploadFile(fn, key) {
153
- const { url, backupUrl, formData, maxSize } = await post('/upload', {
154
- ext: _path2.default.extname(fn)
155
- });
156
- let realUrl = url;
157
-
158
- if (backupUrl) {
159
- if (global.USE_ACC_OSS) {
160
- realUrl = backupUrl;
161
- } else {
162
- const pingResult = await tcpPing({
163
- address: url.replace('https://', ''),
164
- attempts: 4,
165
- timeout: 1000
166
- });
167
- // console.log({pingResult});
168
- if (isNaN(pingResult.avg) || pingResult.avg > 150) {
169
- realUrl = backupUrl;
170
- }
171
- }
147
+ const { url, backupUrl, formData, maxSize } = await post('/upload', {
148
+ ext: _path.default.extname(fn)
149
+ });
150
+ let realUrl = url;
151
+ if (backupUrl) {
152
+ if (global.USE_ACC_OSS) {
153
+ realUrl = backupUrl;
154
+ } else {
155
+ const pingResult = await tcpPing({
156
+ address: url.replace('https://', ''),
157
+ attempts: 4,
158
+ timeout: 1000
159
+ });
160
+ // console.log({pingResult});
161
+ if (isNaN(pingResult.avg) || pingResult.avg > 150) {
162
+ realUrl = backupUrl;
163
+ }
164
+ }
172
165
  // console.log({realUrl});
173
- }
174
-
175
- const fileSize = _fs2.default.statSync(fn).size;
176
- if (maxSize && fileSize > (0, _filesizeParser2.default)(maxSize)) {
177
- throw new Error(`此文件大小${(fileSize / 1048576).toFixed(1)}m, 超出当前额度${maxSize}。您可以考虑升级付费业务以提升此额度。详情请访问: ${_utils.pricingPageUrl}`);
178
- }
179
-
180
- const bar = new _progress2.default(' 上传中 [:bar] :percent :etas', {
181
- complete: '=',
182
- incomplete: ' ',
183
- total: fileSize
184
- });
185
-
186
- const info = await new Promise((resolve, reject) => {
187
- if (key) {
188
- formData.key = key;
189
166
  }
190
- formData.file = _fs2.default.createReadStream(fn);
191
-
192
- formData.file.on('data', function (data) {
193
- bar.tick(data.length);
167
+ const fileSize = _fs.default.statSync(fn).size;
168
+ if (maxSize && fileSize > (0, _filesizeparser.default)(maxSize)) {
169
+ throw new Error(`此文件大小${(fileSize / 1048576).toFixed(1)}m, 超出当前额度${maxSize}。您可以考虑升级付费业务以提升此额度。详情请访问: ${_utils.pricingPageUrl}`);
170
+ }
171
+ const bar = new _progress.default(' 上传中 [:bar] :percent :etas', {
172
+ complete: '=',
173
+ incomplete: ' ',
174
+ total: fileSize
194
175
  });
195
- _request2.default.post(realUrl, {
196
- formData
197
- }, (err, resp, body) => {
198
- if (err) {
199
- return reject(err);
200
- }
201
- if (resp.statusCode > 299) {
202
- return reject(Object.assign(new Error(body), {
203
- status: resp.statusCode
204
- }));
205
- }
206
- resolve({ hash: formData.key });
176
+ const info = await new Promise((resolve, reject)=>{
177
+ if (key) {
178
+ formData.key = key;
179
+ }
180
+ formData.file = _fs.default.createReadStream(fn);
181
+ formData.file.on('data', function(data) {
182
+ bar.tick(data.length);
183
+ });
184
+ _request.default.post(realUrl, {
185
+ formData
186
+ }, (err, resp, body)=>{
187
+ if (err) {
188
+ return reject(err);
189
+ }
190
+ if (resp.statusCode > 299) {
191
+ return reject(Object.assign(new Error(body), {
192
+ status: resp.statusCode
193
+ }));
194
+ }
195
+ resolve({
196
+ hash: formData.key
197
+ });
198
+ });
207
199
  });
208
- });
209
- return info;
210
- }
200
+ return info;
201
+ }