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 +3 -1
- package/lib/api.js +177 -186
- package/lib/app.js +136 -114
- package/lib/bundle.js +535 -559
- package/lib/index.js +46 -49
- package/lib/package.js +132 -136
- package/lib/user.js +43 -41
- package/lib/utils/app-info-parser/apk.js +72 -71
- package/lib/utils/app-info-parser/index.js +28 -30
- package/lib/utils/app-info-parser/ipa.js +72 -80
- package/lib/utils/app-info-parser/resource-finder.js +286 -421
- package/lib/utils/app-info-parser/utils.js +106 -120
- package/lib/utils/app-info-parser/xml-parser/binary.js +539 -637
- package/lib/utils/app-info-parser/xml-parser/manifest.js +193 -215
- package/lib/utils/app-info-parser/zip.js +40 -40
- package/lib/utils/index.js +156 -149
- package/lib/versions.js +226 -178
- package/package.json +10 -9
- package/src/api.js +6 -3
- package/src/bundle.js +11 -10
- package/src/utils/index.js +4 -2
- package/src/versions.js +80 -16
- package/src/.DS_Store +0 -0
- package/src/utils/.DS_Store +0 -0
package/src/versions.js
CHANGED
|
@@ -124,20 +124,26 @@ export const commands = {
|
|
|
124
124
|
options.platform || (await question('平台(ios/android):')),
|
|
125
125
|
);
|
|
126
126
|
const { appId } = await getSelectedApp(platform);
|
|
127
|
-
|
|
127
|
+
let versionId = options.versionId || (await chooseVersion(appId)).id;
|
|
128
|
+
if (versionId === 'null') {
|
|
129
|
+
versionId = null;
|
|
130
|
+
}
|
|
128
131
|
|
|
129
132
|
let pkgId;
|
|
130
133
|
let pkgVersion = options.packageVersion;
|
|
131
134
|
let minPkgVersion = options.minPackageVersion;
|
|
132
135
|
let maxPkgVersion = options.maxPackageVersion;
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}
|
|
140
|
-
throw new Error(
|
|
136
|
+
let rollout = options.rollout;
|
|
137
|
+
if (rollout === undefined) {
|
|
138
|
+
rollout = null;
|
|
139
|
+
} else {
|
|
140
|
+
try {
|
|
141
|
+
rollout = parseInt(rollout);
|
|
142
|
+
} catch (e) {
|
|
143
|
+
throw new Error('rollout 必须是 1-100 的整数');
|
|
144
|
+
}
|
|
145
|
+
if (rollout < 1 || rollout > 100) {
|
|
146
|
+
throw new Error('rollout 必须是 1-100 的整数');
|
|
141
147
|
}
|
|
142
148
|
}
|
|
143
149
|
if (minPkgVersion) {
|
|
@@ -145,15 +151,29 @@ export const commands = {
|
|
|
145
151
|
const { data } = await get(`/app/${appId}/package/list?limit=1000`);
|
|
146
152
|
const pkgs = data.filter((d) => compare(d.name, minPkgVersion, '>='));
|
|
147
153
|
if (pkgs.length === 0) {
|
|
148
|
-
throw new Error(
|
|
149
|
-
|
|
154
|
+
throw new Error(`未查询到 >= ${minPkgVersion} 的原生版本`);
|
|
155
|
+
}
|
|
156
|
+
if (rollout) {
|
|
157
|
+
const rolloutConfig = {};
|
|
158
|
+
for (const pkg of pkgs) {
|
|
159
|
+
rolloutConfig[pkg.name] = rollout;
|
|
160
|
+
}
|
|
161
|
+
await put(`/app/${appId}/version/${versionId}`, {
|
|
162
|
+
config: {
|
|
163
|
+
rollout: rolloutConfig,
|
|
164
|
+
},
|
|
165
|
+
});
|
|
166
|
+
console.log(
|
|
167
|
+
`已在原生版本 ${pkgs
|
|
168
|
+
.map((p) => p.name)
|
|
169
|
+
.join(', ')} 上设置灰度发布 ${rollout}% 热更版本 ${versionId}`,
|
|
150
170
|
);
|
|
151
171
|
}
|
|
152
172
|
for (const pkg of pkgs) {
|
|
153
173
|
await put(`/app/${appId}/package/${pkg.id}`, {
|
|
154
174
|
versionId,
|
|
155
175
|
});
|
|
156
|
-
console.log(
|
|
176
|
+
console.log(`已将热更版本 ${versionId} 绑定到原生版本 ${pkg.name}`);
|
|
157
177
|
}
|
|
158
178
|
console.log(`操作完成,共已绑定 ${pkgs.length} 个原生版本`);
|
|
159
179
|
return;
|
|
@@ -163,19 +183,44 @@ export const commands = {
|
|
|
163
183
|
const { data } = await get(`/app/${appId}/package/list?limit=1000`);
|
|
164
184
|
const pkgs = data.filter((d) => compare(d.name, maxPkgVersion, '<='));
|
|
165
185
|
if (pkgs.length === 0) {
|
|
166
|
-
throw new Error(
|
|
167
|
-
|
|
186
|
+
throw new Error(`未查询到 <= ${maxPkgVersion} 的原生版本`);
|
|
187
|
+
}
|
|
188
|
+
if (rollout) {
|
|
189
|
+
const rolloutConfig = {};
|
|
190
|
+
for (const pkg of pkgs) {
|
|
191
|
+
rolloutConfig[pkg.name] = rollout;
|
|
192
|
+
}
|
|
193
|
+
await put(`/app/${appId}/version/${versionId}`, {
|
|
194
|
+
config: {
|
|
195
|
+
rollout: rolloutConfig,
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
console.log(
|
|
199
|
+
`已在原生版本 ${pkgs
|
|
200
|
+
.map((p) => p.name)
|
|
201
|
+
.join(', ')} 上设置灰度发布 ${rollout}% 热更版本 ${versionId}`,
|
|
168
202
|
);
|
|
169
203
|
}
|
|
170
204
|
for (const pkg of pkgs) {
|
|
171
205
|
await put(`/app/${appId}/package/${pkg.id}`, {
|
|
172
206
|
versionId,
|
|
173
207
|
});
|
|
174
|
-
console.log(
|
|
208
|
+
console.log(`已将热更版本 ${versionId} 绑定到原生版本 ${pkg.name}`);
|
|
175
209
|
}
|
|
176
210
|
console.log(`操作完成,共已绑定 ${pkgs.length} 个原生版本`);
|
|
177
211
|
return;
|
|
178
212
|
}
|
|
213
|
+
|
|
214
|
+
if (pkgVersion) {
|
|
215
|
+
pkgVersion = pkgVersion.trim();
|
|
216
|
+
const { data } = await get(`/app/${appId}/package/list?limit=1000`);
|
|
217
|
+
const pkg = data.find((d) => d.name === pkgVersion);
|
|
218
|
+
if (pkg) {
|
|
219
|
+
pkgId = pkg.id;
|
|
220
|
+
} else {
|
|
221
|
+
throw new Error(`未查询到匹配原生版本:${pkgVersion}`);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
179
224
|
if (!pkgId) {
|
|
180
225
|
pkgId = options.packageId || (await choosePackage(appId)).id;
|
|
181
226
|
}
|
|
@@ -183,10 +228,29 @@ export const commands = {
|
|
|
183
228
|
if (!pkgId) {
|
|
184
229
|
throw new Error('请提供 packageId 或 packageVersion 参数');
|
|
185
230
|
}
|
|
231
|
+
if (rollout) {
|
|
232
|
+
if (!pkgVersion) {
|
|
233
|
+
const { data } = await get(`/app/${appId}/package/list?limit=1000`);
|
|
234
|
+
const pkg = data.find((d) => d.id === pkgId);
|
|
235
|
+
if (pkg) {
|
|
236
|
+
pkgVersion = pkg.name;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
await put(`/app/${appId}/version/${versionId}`, {
|
|
240
|
+
config: {
|
|
241
|
+
rollout: {
|
|
242
|
+
[pkgVersion]: rollout,
|
|
243
|
+
},
|
|
244
|
+
},
|
|
245
|
+
});
|
|
246
|
+
console.log(
|
|
247
|
+
`已将在原生版本 ${pkgVersion} 上设置灰度发布 ${rollout}% 热更版本 ${versionId} `,
|
|
248
|
+
);
|
|
249
|
+
}
|
|
186
250
|
await put(`/app/${appId}/package/${pkgId}`, {
|
|
187
251
|
versionId,
|
|
188
252
|
});
|
|
189
|
-
console.log(
|
|
253
|
+
console.log(`已将热更版本 ${versionId} 绑定到原生版本 ${pkgVersion}`);
|
|
190
254
|
},
|
|
191
255
|
updateVersionInfo: async function ({ args, options }) {
|
|
192
256
|
const platform = checkPlatform(
|
package/src/.DS_Store
DELETED
|
Binary file
|
package/src/utils/.DS_Store
DELETED
|
Binary file
|