react-native-update-cli 1.46.1 → 2.0.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.
Files changed (64) hide show
  1. package/README.md +578 -1
  2. package/README.zh-CN.md +576 -0
  3. package/cli.json +18 -0
  4. package/lib/api.js +5 -5
  5. package/lib/app.js +1 -1
  6. package/lib/bundle.js +43 -29
  7. package/lib/exports.js +65 -0
  8. package/lib/index.js +100 -9
  9. package/lib/module-manager.js +125 -0
  10. package/lib/modules/app-module.js +223 -0
  11. package/lib/modules/bundle-module.js +188 -0
  12. package/lib/modules/index.js +42 -0
  13. package/lib/modules/package-module.js +16 -0
  14. package/lib/modules/user-module.js +402 -0
  15. package/lib/modules/version-module.js +16 -0
  16. package/lib/package.js +16 -6
  17. package/lib/provider.js +340 -0
  18. package/lib/user.js +3 -3
  19. package/lib/utils/app-info-parser/apk.js +1 -1
  20. package/lib/utils/app-info-parser/ipa.js +2 -2
  21. package/lib/utils/app-info-parser/resource-finder.js +35 -35
  22. package/lib/utils/app-info-parser/xml-parser/manifest.js +2 -2
  23. package/lib/utils/app-info-parser/zip.js +3 -6
  24. package/lib/utils/check-plugin.js +1 -1
  25. package/lib/utils/git.js +1 -1
  26. package/lib/utils/i18n.js +3 -1
  27. package/lib/utils/index.js +4 -4
  28. package/lib/utils/latest-version/cli.js +3 -3
  29. package/lib/utils/latest-version/index.js +4 -4
  30. package/lib/versions.js +2 -2
  31. package/package.json +4 -4
  32. package/src/api.ts +7 -7
  33. package/src/app.ts +2 -2
  34. package/src/bundle.ts +57 -32
  35. package/src/exports.ts +30 -0
  36. package/src/index.ts +118 -16
  37. package/src/module-manager.ts +149 -0
  38. package/src/modules/app-module.ts +205 -0
  39. package/src/modules/bundle-module.ts +202 -0
  40. package/src/modules/index.ts +19 -0
  41. package/src/modules/package-module.ts +11 -0
  42. package/src/modules/user-module.ts +406 -0
  43. package/src/modules/version-module.ts +8 -0
  44. package/src/package.ts +29 -16
  45. package/src/provider.ts +341 -0
  46. package/src/types.ts +125 -0
  47. package/src/user.ts +4 -3
  48. package/src/utils/app-info-parser/apk.js +62 -52
  49. package/src/utils/app-info-parser/app.js +5 -5
  50. package/src/utils/app-info-parser/ipa.js +69 -57
  51. package/src/utils/app-info-parser/resource-finder.js +50 -54
  52. package/src/utils/app-info-parser/utils.js +59 -54
  53. package/src/utils/app-info-parser/xml-parser/binary.js +366 -354
  54. package/src/utils/app-info-parser/xml-parser/manifest.js +145 -137
  55. package/src/utils/app-info-parser/zip.js +1 -1
  56. package/src/utils/check-plugin.ts +4 -2
  57. package/src/utils/dep-versions.ts +13 -6
  58. package/src/utils/git.ts +1 -1
  59. package/src/utils/i18n.ts +3 -1
  60. package/src/utils/index.ts +8 -10
  61. package/src/utils/latest-version/cli.ts +4 -4
  62. package/src/utils/latest-version/index.ts +17 -17
  63. package/src/utils/plugin-config.ts +3 -3
  64. package/src/versions.ts +3 -3
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "appModule", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return appModule;
9
+ }
10
+ });
11
+ const _app = require("../app");
12
+ const appModule = {
13
+ name: 'app',
14
+ version: '1.0.0',
15
+ commands: [],
16
+ workflows: [
17
+ {
18
+ name: 'setup-app',
19
+ description: 'Setup a new app with initial configuration',
20
+ steps: [
21
+ {
22
+ name: 'create',
23
+ description: 'Create the app',
24
+ execute: async (context)=>{
25
+ console.log('Creating app in workflow');
26
+ const { name, downloadUrl, platform } = context.options;
27
+ await _app.appCommands.createApp({
28
+ options: {
29
+ name: name || '',
30
+ downloadUrl: downloadUrl || '',
31
+ platform: platform || ''
32
+ }
33
+ });
34
+ return {
35
+ appCreated: true
36
+ };
37
+ }
38
+ },
39
+ {
40
+ name: 'select',
41
+ description: 'Select the created app',
42
+ execute: async (context, previousResult)=>{
43
+ console.log('Selecting app in workflow');
44
+ const { platform } = context.options;
45
+ await _app.appCommands.selectApp({
46
+ args: [],
47
+ options: {
48
+ platform: platform || ''
49
+ }
50
+ });
51
+ return {
52
+ ...previousResult,
53
+ appSelected: true
54
+ };
55
+ }
56
+ }
57
+ ]
58
+ },
59
+ {
60
+ name: 'manage-apps',
61
+ description: 'Manage multiple apps',
62
+ steps: [
63
+ {
64
+ name: 'list-apps',
65
+ description: 'List all apps',
66
+ execute: async (context)=>{
67
+ console.log('Listing all apps');
68
+ const { platform } = context.options;
69
+ await _app.appCommands.apps({
70
+ options: {
71
+ platform: platform || ''
72
+ }
73
+ });
74
+ return {
75
+ appsListed: true
76
+ };
77
+ }
78
+ },
79
+ {
80
+ name: 'select-target-app',
81
+ description: 'Select target app for operations',
82
+ execute: async (context, previousResult)=>{
83
+ console.log('Selecting target app');
84
+ const { platform } = context.options;
85
+ await _app.appCommands.selectApp({
86
+ args: [],
87
+ options: {
88
+ platform: platform || ''
89
+ }
90
+ });
91
+ return {
92
+ ...previousResult,
93
+ targetAppSelected: true
94
+ };
95
+ }
96
+ }
97
+ ]
98
+ },
99
+ {
100
+ name: 'multi-platform-app-management',
101
+ description: 'Multi-platform app unified management workflow',
102
+ steps: [
103
+ {
104
+ name: 'scan-platforms',
105
+ description: 'Scan apps on all platforms',
106
+ execute: async (context)=>{
107
+ console.log('🔍 Scanning apps on all platforms...');
108
+ const platforms = [
109
+ 'ios',
110
+ 'android',
111
+ 'harmony'
112
+ ];
113
+ const appsData = {};
114
+ for (const platform of platforms){
115
+ console.log(` Scanning ${platform} platform...`);
116
+ // Simulate getting app list
117
+ await new Promise((resolve)=>setTimeout(resolve, 500));
118
+ const appCount = Math.floor(Math.random() * 5) + 1;
119
+ const apps = Array.from({
120
+ length: appCount
121
+ }, (_, i)=>({
122
+ id: `${platform}_app_${i + 1}`,
123
+ name: `App ${i + 1}`,
124
+ platform,
125
+ version: `1.${i}.0`,
126
+ status: Math.random() > 0.2 ? 'active' : 'inactive'
127
+ }));
128
+ appsData[platform] = apps;
129
+ console.log(` ✅ Found ${appCount} apps`);
130
+ }
131
+ console.log('✅ Platform scanning completed');
132
+ return {
133
+ platforms,
134
+ appsData,
135
+ scanned: true
136
+ };
137
+ }
138
+ },
139
+ {
140
+ name: 'analyze-apps',
141
+ description: 'Analyze app status',
142
+ execute: async (context, previousResult)=>{
143
+ console.log('📊 Analyzing app status...');
144
+ const { appsData } = previousResult;
145
+ const analysis = {
146
+ totalApps: 0,
147
+ activeApps: 0,
148
+ inactiveApps: 0,
149
+ platformDistribution: {},
150
+ issues: []
151
+ };
152
+ for (const [platform, apps] of Object.entries(appsData)){
153
+ const platformApps = apps;
154
+ analysis.totalApps += platformApps.length;
155
+ analysis.platformDistribution[platform] = platformApps.length;
156
+ for (const app of platformApps){
157
+ if (app.status === 'active') {
158
+ analysis.activeApps++;
159
+ } else {
160
+ analysis.inactiveApps++;
161
+ analysis.issues.push(`${platform}/${app.name}: App is inactive`);
162
+ }
163
+ }
164
+ }
165
+ console.log('📈 Analysis results:');
166
+ console.log(` Total apps: ${analysis.totalApps}`);
167
+ console.log(` Active apps: ${analysis.activeApps}`);
168
+ console.log(` Inactive apps: ${analysis.inactiveApps}`);
169
+ if (analysis.issues.length > 0) {
170
+ console.log('⚠️ Issues found:');
171
+ analysis.issues.forEach((issue)=>console.log(` - ${issue}`));
172
+ }
173
+ return {
174
+ ...previousResult,
175
+ analysis
176
+ };
177
+ }
178
+ },
179
+ {
180
+ name: 'optimize-apps',
181
+ description: 'Optimize app configuration',
182
+ execute: async (context, previousResult)=>{
183
+ console.log('⚡ Optimizing app configuration...');
184
+ const { analysis } = previousResult;
185
+ const optimizations = [];
186
+ if (analysis.inactiveApps > 0) {
187
+ console.log(' Handling inactive apps...');
188
+ optimizations.push('Reactivate inactive apps');
189
+ }
190
+ if (analysis.totalApps > 10) {
191
+ console.log(' Many apps detected, suggest grouping...');
192
+ optimizations.push('Create app groups');
193
+ }
194
+ // Simulate optimization process
195
+ for (const optimization of optimizations){
196
+ console.log(` Executing: ${optimization}...`);
197
+ await new Promise((resolve)=>setTimeout(resolve, 800));
198
+ console.log(` ✅ ${optimization} completed`);
199
+ }
200
+ console.log('✅ App optimization completed');
201
+ return {
202
+ ...previousResult,
203
+ optimizations,
204
+ optimized: true
205
+ };
206
+ }
207
+ }
208
+ ],
209
+ options: {
210
+ includeInactive: {
211
+ hasValue: false,
212
+ default: true,
213
+ description: 'Include inactive apps'
214
+ },
215
+ autoOptimize: {
216
+ hasValue: false,
217
+ default: true,
218
+ description: 'Auto optimize configuration'
219
+ }
220
+ }
221
+ }
222
+ ]
223
+ };
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "bundleModule", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return bundleModule;
9
+ }
10
+ });
11
+ const _bundle = require("../bundle");
12
+ const bundleModule = {
13
+ name: 'bundle',
14
+ version: '1.0.0',
15
+ commands: [],
16
+ workflows: [
17
+ {
18
+ name: 'incremental-build',
19
+ description: 'Incremental build workflow - generate diff packages',
20
+ steps: [
21
+ {
22
+ name: 'detect-base-version',
23
+ description: 'Detect base version',
24
+ execute: async (context)=>{
25
+ console.log('🔍 Detecting base version...');
26
+ const { baseVersion, platform } = context.options;
27
+ if (baseVersion) {
28
+ console.log(`✅ Using specified base version: ${baseVersion}`);
29
+ return {
30
+ baseVersion,
31
+ specified: true
32
+ };
33
+ }
34
+ console.log('Auto detecting latest version...');
35
+ await new Promise((resolve)=>setTimeout(resolve, 800));
36
+ const autoDetectedVersion = `v${Math.floor(Math.random() * 3) + 1}.${Math.floor(Math.random() * 10)}.${Math.floor(Math.random() * 10)}`;
37
+ console.log(`✅ Auto detected base version: ${autoDetectedVersion}`);
38
+ return {
39
+ baseVersion: autoDetectedVersion,
40
+ specified: false
41
+ };
42
+ }
43
+ },
44
+ {
45
+ name: 'build-current-version',
46
+ description: 'Build current version',
47
+ execute: async (context, previousResult)=>{
48
+ console.log('🏗️ Building current version...');
49
+ const { platform, dev = false, sourcemap = false, bundleName = 'index.bundlejs', entryFile = 'index.js', intermediaDir, taro = false, expo = false, rncli = false, disableHermes = false, output } = context.options;
50
+ console.log(`Building ${platform} platform...`);
51
+ console.log(` Entry file: ${entryFile}`);
52
+ console.log(` Bundle name: ${bundleName}`);
53
+ console.log(` Development mode: ${dev}`);
54
+ console.log(` Source maps: ${sourcemap}`);
55
+ try {
56
+ const buildOptions = {
57
+ platform,
58
+ dev,
59
+ sourcemap,
60
+ bundleName,
61
+ entryFile,
62
+ taro,
63
+ expo,
64
+ rncli,
65
+ disableHermes,
66
+ intermediaDir: '${tempDir}/intermedia/${platform}',
67
+ output: '${tempDir}/output/${platform}.${time}.ppk'
68
+ };
69
+ if (intermediaDir) {
70
+ buildOptions.intermediaDir = intermediaDir;
71
+ }
72
+ await _bundle.bundleCommands.bundle({
73
+ args: [],
74
+ options: buildOptions
75
+ });
76
+ const currentBuild = {
77
+ version: `v${Math.floor(Math.random() * 3) + 2}.0.0`,
78
+ platform,
79
+ bundlePath: `./build/current_${platform}.ppk`,
80
+ size: Math.floor(Math.random() * 15) + 10,
81
+ buildTime: Date.now()
82
+ };
83
+ console.log(`✅ Current version build completed: ${currentBuild.version}`);
84
+ return {
85
+ ...previousResult,
86
+ currentBuild
87
+ };
88
+ } catch (error) {
89
+ console.error('❌ Current version build failed:', error);
90
+ throw error;
91
+ }
92
+ }
93
+ }
94
+ ],
95
+ validate: (context)=>{
96
+ if (!context.options.platform) {
97
+ console.error('❌ Incremental build requires platform specification');
98
+ return false;
99
+ }
100
+ return true;
101
+ },
102
+ options: {
103
+ platform: {
104
+ hasValue: true,
105
+ description: 'Target platform (required)'
106
+ },
107
+ baseVersion: {
108
+ hasValue: true,
109
+ description: 'Base version (auto detect if not specified)'
110
+ },
111
+ skipValidation: {
112
+ hasValue: false,
113
+ default: false,
114
+ description: 'Skip diff package validation'
115
+ },
116
+ dev: {
117
+ hasValue: false,
118
+ default: false,
119
+ description: 'Development mode build'
120
+ },
121
+ bundleName: {
122
+ hasValue: true,
123
+ default: 'index.bundlejs',
124
+ description: 'Bundle file name'
125
+ },
126
+ entryFile: {
127
+ hasValue: true,
128
+ default: 'index.js',
129
+ description: 'Entry file'
130
+ },
131
+ sourcemap: {
132
+ hasValue: false,
133
+ default: false,
134
+ description: 'Generate source maps'
135
+ },
136
+ output: {
137
+ hasValue: true,
138
+ description: 'Custom output path for diff package'
139
+ },
140
+ intermediaDir: {
141
+ hasValue: true,
142
+ description: 'Intermediate directory'
143
+ },
144
+ taro: {
145
+ hasValue: false,
146
+ default: false,
147
+ description: 'Use Taro CLI'
148
+ },
149
+ expo: {
150
+ hasValue: false,
151
+ default: false,
152
+ description: 'Use Expo CLI'
153
+ },
154
+ rncli: {
155
+ hasValue: false,
156
+ default: false,
157
+ description: 'Use React Native CLI'
158
+ },
159
+ disableHermes: {
160
+ hasValue: false,
161
+ default: false,
162
+ description: 'Disable Hermes'
163
+ },
164
+ name: {
165
+ hasValue: true,
166
+ description: 'Version name for publishing'
167
+ },
168
+ description: {
169
+ hasValue: true,
170
+ description: 'Version description for publishing'
171
+ },
172
+ metaInfo: {
173
+ hasValue: true,
174
+ description: 'Meta information for publishing'
175
+ },
176
+ rollout: {
177
+ hasValue: true,
178
+ description: 'Rollout percentage'
179
+ },
180
+ dryRun: {
181
+ hasValue: false,
182
+ default: false,
183
+ description: 'Dry run mode'
184
+ }
185
+ }
186
+ }
187
+ ]
188
+ };
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
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
+ appModule: function() {
13
+ return _appmodule.appModule;
14
+ },
15
+ builtinModules: function() {
16
+ return builtinModules;
17
+ },
18
+ bundleModule: function() {
19
+ return _bundlemodule.bundleModule;
20
+ },
21
+ packageModule: function() {
22
+ return _packagemodule.packageModule;
23
+ },
24
+ userModule: function() {
25
+ return _usermodule.userModule;
26
+ },
27
+ versionModule: function() {
28
+ return _versionmodule.versionModule;
29
+ }
30
+ });
31
+ const _appmodule = require("./app-module");
32
+ const _bundlemodule = require("./bundle-module");
33
+ const _packagemodule = require("./package-module");
34
+ const _usermodule = require("./user-module");
35
+ const _versionmodule = require("./version-module");
36
+ const builtinModules = [
37
+ _bundlemodule.bundleModule,
38
+ _versionmodule.versionModule,
39
+ _appmodule.appModule,
40
+ _usermodule.userModule,
41
+ _packagemodule.packageModule
42
+ ];
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "packageModule", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return packageModule;
9
+ }
10
+ });
11
+ const packageModule = {
12
+ name: 'package',
13
+ version: '1.0.0',
14
+ commands: [],
15
+ workflows: []
16
+ };