@modern-js/generator-utils 3.0.0-beta.0 → 3.0.0-beta.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,53 @@
1
1
  # @modern-js/generator-utils
2
2
 
3
+ ## 3.0.0-beta.2
4
+
5
+ ### Major Changes
6
+
7
+ - dda38c9c3e: chore: v2
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [92f0ead]
12
+ - Updated dependencies [edd1cfb1af]
13
+ - Updated dependencies [cc971eabfc]
14
+ - Updated dependencies [5b9049f2e9]
15
+ - Updated dependencies [92004d1]
16
+ - Updated dependencies [b8bbe036c7]
17
+ - Updated dependencies [d5a31df781]
18
+ - Updated dependencies [dda38c9c3e]
19
+ - Updated dependencies [3bbea92b2a]
20
+ - Updated dependencies [abf3421a75]
21
+ - Updated dependencies [543be9558e]
22
+ - Updated dependencies [14b712da84]
23
+ - @modern-js/utils@2.0.0-beta.2
24
+ - @modern-js/plugin-i18n@2.0.0-beta.2
25
+ - @modern-js/generator-common@3.0.0-beta.2
26
+
27
+ ## 3.0.0-beta.1
28
+
29
+ ### Major Changes
30
+
31
+ - dda38c9: chore: v2
32
+
33
+ ### Patch Changes
34
+
35
+ - Updated dependencies [92f0ead]
36
+ - Updated dependencies [edd1cfb1af]
37
+ - Updated dependencies [cc971eabfc]
38
+ - Updated dependencies [5b9049f]
39
+ - Updated dependencies [92004d1]
40
+ - Updated dependencies [b8bbe036c7]
41
+ - Updated dependencies [d5a31df781]
42
+ - Updated dependencies [dda38c9]
43
+ - Updated dependencies [3bbea92b2a]
44
+ - Updated dependencies [abf3421]
45
+ - Updated dependencies [543be9558e]
46
+ - Updated dependencies [14b712d]
47
+ - @modern-js/utils@2.0.0-beta.1
48
+ - @modern-js/plugin-i18n@2.0.0-beta.1
49
+ - @modern-js/generator-common@3.0.0-beta.1
50
+
3
51
  ## 3.0.0-beta.0
4
52
 
5
53
  ### Major Changes
@@ -1,5 +1,5 @@
1
1
  import path from 'path';
2
- import { fs, ora, execa, getMonorepoPackages, canUseNpm, canUsePnpm, canUseYarn, semver } from '@modern-js/utils';
2
+ import { fs, ora, execa, getMonorepoPackages, canUseNpm, canUsePnpm, canUseYarn } from '@modern-js/utils';
3
3
  import { SolutionToolsMap } from '@modern-js/generator-common';
4
4
  import { stripAnsi } from "./utils/strip-ansi";
5
5
  import { i18n, localeKeys } from "./locale";
@@ -8,45 +8,37 @@ export * from "./utils";
8
8
  export { ora, fs, semver, execa, readTsConfigByFile, getPackageManager, canUseNpm, canUsePnpm, canUseYarn, isReact18 } from '@modern-js/utils';
9
9
  export { i18n } from "./locale";
10
10
  export async function getPackageVersion(packageName, registry) {
11
- const spinner = ora('Loading...').start();
12
- spinner.color = 'yellow';
13
-
11
+ const spinner = ora({
12
+ text: 'Load Generator...',
13
+ spinner: 'runner'
14
+ }).start();
14
15
  if (await canUsePnpm()) {
15
16
  const args = ['info', packageName, 'version'];
16
-
17
17
  if (registry) {
18
18
  args.push(`--registry=${registry}`);
19
19
  }
20
-
21
20
  const result = await execa('pnpm', args);
22
21
  spinner.stop();
23
22
  return stripAnsi(result.stdout);
24
23
  }
25
-
26
24
  if (await canUseYarn()) {
27
25
  const args = ['info', packageName, 'version', '--silent'];
28
-
29
26
  if (registry) {
30
27
  args.push(`--registry=${registry}`);
31
28
  }
32
-
33
29
  const result = await execa('yarn', args);
34
30
  spinner.stop();
35
31
  return stripAnsi(result.stdout);
36
32
  }
37
-
38
33
  if (await canUseNpm()) {
39
34
  const args = ['view', packageName, 'version'];
40
-
41
35
  if (registry) {
42
36
  args.push(`--registry=${registry}`);
43
37
  }
44
-
45
38
  const result = await execa('npm', args);
46
39
  spinner.stop();
47
40
  return stripAnsi(result.stdout);
48
41
  }
49
-
50
42
  spinner.stop();
51
43
  throw new Error('not found npm, please install npm before');
52
44
  }
@@ -63,36 +55,25 @@ export async function getModernPluginVersion(solution, packageName, options = {
63
55
  registry,
64
56
  distTag
65
57
  } = options;
66
-
67
- const getLatetPluginVersion = async () => {
68
- const version = await getPackageVersion(`${packageName}@${distTag}`, registry);
58
+ const getLatetPluginVersion = async tag => {
59
+ const version = await getPackageVersion(`${packageName}@${tag || distTag || 'latest'}`, registry);
69
60
  return version;
70
61
  };
71
-
72
62
  if (!packageName.startsWith('@modern-js') || packageName.includes('electron') || packageName.includes('codesmith') || packageName.includes('easy-form') || packageName.startsWith('@modern-js-reduck')) {
73
- return getLatetPluginVersion();
74
- } // get project solution version
75
-
76
-
63
+ return getLatetPluginVersion('latest');
64
+ }
65
+ // get project solution version
77
66
  const pkgPath = path.join(require.resolve(SolutionToolsMap[solution], {
78
67
  paths: [cwd]
79
68
  }), '../../../../', 'package.json');
80
-
81
69
  if (fs.existsSync(pkgPath)) {
82
70
  const pkgInfo = fs.readJSONSync(pkgPath);
83
71
  const modernVersion = pkgInfo.version;
84
-
85
72
  if (typeof modernVersion !== 'string') {
86
73
  return getLatetPluginVersion();
87
74
  }
88
-
89
- if (semver.lt(modernVersion, '1.15.0')) {
90
- return getLatetPluginVersion();
91
- }
92
-
93
75
  return getAvailableVersion(packageName, modernVersion, registry);
94
76
  }
95
-
96
77
  return getLatetPluginVersion();
97
78
  }
98
79
  export function getPackageManagerText(packageManager) {
@@ -113,7 +94,6 @@ export function validatePackageName(value, packages, options) {
113
94
  const {
114
95
  isMonorepoSubProject
115
96
  } = options;
116
-
117
97
  if (isMonorepoSubProject && packages.includes(value)) {
118
98
  return {
119
99
  success: false,
@@ -122,7 +102,6 @@ export function validatePackageName(value, packages, options) {
122
102
  })
123
103
  };
124
104
  }
125
-
126
105
  return {
127
106
  success: true
128
107
  };
@@ -134,15 +113,12 @@ export function validatePackagePath(value, projectDir, options) {
134
113
  isTest
135
114
  } = options || {};
136
115
  let dir = 'apps';
137
-
138
116
  if (isMwa && isTest) {
139
117
  dir = 'examples';
140
118
  } else {
141
119
  dir = isPublic ? 'packages' : 'features';
142
120
  }
143
-
144
121
  const packageDir = path.resolve(projectDir || '', dir, value);
145
-
146
122
  if (fs.existsSync(packageDir)) {
147
123
  return {
148
124
  success: false,
@@ -151,7 +127,6 @@ export function validatePackagePath(value, projectDir, options) {
151
127
  })
152
128
  };
153
129
  }
154
-
155
130
  return {
156
131
  success: true
157
132
  };
@@ -160,17 +135,14 @@ export function getModuleProjectPath(packagePath, isMonorepoSubProject, isPublic
160
135
  if (isLocalPackages && packagePath) {
161
136
  return `${packagePath}/`;
162
137
  }
163
-
164
138
  if (isMonorepoSubProject && packagePath) {
165
139
  return `${isPublic ? 'packages' : 'features'}/${packagePath}/`;
166
140
  }
167
-
168
141
  return '';
169
142
  }
170
143
  export function getMWAProjectPath(packagePath, isMonorepoSubProject, isTest = false) {
171
144
  if (isMonorepoSubProject && packagePath) {
172
145
  return `${isTest ? 'examples' : 'apps'}/${packagePath}/`;
173
146
  }
174
-
175
147
  return '';
176
148
  }
@@ -1,88 +1,74 @@
1
- import { canUseNpm, execa, logger, semver, stripAnsi } from '@modern-js/utils'; // 判断包是否存在
1
+ import { canUseNpm, execa, logger, semver, stripAnsi } from '@modern-js/utils';
2
2
 
3
+ // 判断包是否存在
3
4
  export async function isPackageExist(packageName, registry) {
4
5
  if (await canUseNpm()) {
5
6
  const args = ['view', packageName, 'version'];
6
-
7
7
  if (registry) {
8
8
  args.push(`--registry=${registry}`);
9
9
  }
10
-
11
10
  const result = await execa('npm', args);
12
11
  return stripAnsi(result.stdout);
13
12
  }
14
-
15
13
  throw new Error('not found npm, please install npm before');
16
- } // 判断包是否已经废弃
14
+ }
17
15
 
16
+ // 判断包是否已经废弃
18
17
  export async function isPackageDeprecated(packageName, registry) {
19
18
  if (await canUseNpm()) {
20
19
  const args = ['view', packageName, 'deprecated'];
21
-
22
20
  if (registry) {
23
21
  args.push(`--registry=${registry}`);
24
22
  }
25
-
26
23
  const result = await execa('npm', args);
27
24
  return stripAnsi(result.stdout);
28
25
  }
29
-
30
26
  throw new Error('not found npm, please install npm before');
31
- } // 降低包小版本号
27
+ }
32
28
 
29
+ // 降低包小版本号
33
30
  export function semverDecrease(version) {
34
31
  const versionObj = semver.parse(version, {
35
32
  loose: true
36
33
  });
37
-
38
34
  if (!versionObj) {
39
35
  throw new Error(`Version ${version} is not valid semver`);
40
36
  }
41
-
42
37
  versionObj.build = [];
43
38
  versionObj.prerelease = [];
44
39
  versionObj.patch--;
45
40
  const result = versionObj.format();
46
-
47
41
  if (!semver.valid(result)) {
48
42
  logger.debug(`Version ${result} is not valid semver`);
49
43
  return version;
50
44
  }
51
-
52
45
  return result;
53
46
  }
47
+
54
48
  /**
55
49
  * 插件存在 hotfix 版本,从 tools 版本号向上找当前插件版本号
56
50
  * tools 存在 hotfix 版本,从 tools 版本号向下找当前插件版本号
57
51
  * 限制只在当前小版本号范围内寻找
58
52
  */
59
-
60
53
  export async function getAvailableVersion(packageName, currentVersion, registry) {
61
54
  let times = 5;
62
55
  let version = currentVersion;
63
-
64
56
  while (times) {
65
57
  if (!(await isPackageExist(`${packageName}@${version}`, registry)) || (await isPackageDeprecated(`${packageName}@${version}`, registry))) {
66
58
  version = semver.inc(version, 'patch');
67
59
  times--;
68
60
  continue;
69
61
  }
70
-
71
62
  return version;
72
63
  }
73
-
74
64
  times = 5;
75
-
76
65
  while (times) {
77
66
  version = semverDecrease(version);
78
-
79
67
  if (!(await isPackageExist(`${packageName}@${version}`, registry)) || (await isPackageDeprecated(`${packageName}@${version}`, registry))) {
80
68
  times--;
81
69
  continue;
82
70
  }
83
-
84
71
  return version;
85
72
  }
86
-
87
73
  return currentVersion;
88
74
  }
@@ -4,11 +4,9 @@ function ansiRegex({
4
4
  const pattern = ['[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'].join('|');
5
5
  return new RegExp(pattern, onlyFirst ? undefined : 'g');
6
6
  }
7
-
8
7
  export function stripAnsi(string) {
9
8
  if (typeof string !== 'string') {
10
9
  throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
11
10
  }
12
-
13
11
  return string.replace(ansiRegex(), '');
14
12
  }
@@ -104,21 +104,13 @@ Object.defineProperty(exports, "semver", {
104
104
  });
105
105
  exports.validatePackageName = validatePackageName;
106
106
  exports.validatePackagePath = validatePackagePath;
107
-
108
107
  var _path = _interopRequireDefault(require("path"));
109
-
110
108
  var _utils = require("@modern-js/utils");
111
-
112
109
  var _generatorCommon = require("@modern-js/generator-common");
113
-
114
110
  var _stripAnsi = require("./utils/strip-ansi");
115
-
116
111
  var _locale = require("./locale");
117
-
118
112
  var _package = require("./utils/package");
119
-
120
113
  var _utils2 = require("./utils");
121
-
122
114
  Object.keys(_utils2).forEach(function (key) {
123
115
  if (key === "default" || key === "__esModule") return;
124
116
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -130,59 +122,47 @@ Object.keys(_utils2).forEach(function (key) {
130
122
  }
131
123
  });
132
124
  });
133
-
134
125
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
135
-
136
126
  async function getPackageVersion(packageName, registry) {
137
- const spinner = (0, _utils.ora)('Loading...').start();
138
- spinner.color = 'yellow';
139
-
127
+ const spinner = (0, _utils.ora)({
128
+ text: 'Load Generator...',
129
+ spinner: 'runner'
130
+ }).start();
140
131
  if (await (0, _utils.canUsePnpm)()) {
141
132
  const args = ['info', packageName, 'version'];
142
-
143
133
  if (registry) {
144
134
  args.push(`--registry=${registry}`);
145
135
  }
146
-
147
136
  const result = await (0, _utils.execa)('pnpm', args);
148
137
  spinner.stop();
149
138
  return (0, _stripAnsi.stripAnsi)(result.stdout);
150
139
  }
151
-
152
140
  if (await (0, _utils.canUseYarn)()) {
153
141
  const args = ['info', packageName, 'version', '--silent'];
154
-
155
142
  if (registry) {
156
143
  args.push(`--registry=${registry}`);
157
144
  }
158
-
159
145
  const result = await (0, _utils.execa)('yarn', args);
160
146
  spinner.stop();
161
147
  return (0, _stripAnsi.stripAnsi)(result.stdout);
162
148
  }
163
-
164
149
  if (await (0, _utils.canUseNpm)()) {
165
150
  const args = ['view', packageName, 'version'];
166
-
167
151
  if (registry) {
168
152
  args.push(`--registry=${registry}`);
169
153
  }
170
-
171
154
  const result = await (0, _utils.execa)('npm', args);
172
155
  spinner.stop();
173
156
  return (0, _stripAnsi.stripAnsi)(result.stdout);
174
157
  }
175
-
176
158
  spinner.stop();
177
159
  throw new Error('not found npm, please install npm before');
178
160
  }
179
-
180
161
  async function getModernVersion(solution, registry, distTag = 'latest') {
181
162
  const dep = _generatorCommon.SolutionToolsMap[solution];
182
163
  const modernVersion = await getPackageVersion(`${dep}@${distTag}`, registry);
183
164
  return modernVersion;
184
165
  }
185
-
186
166
  async function getModernPluginVersion(solution, packageName, options = {
187
167
  distTag: 'latest'
188
168
  }) {
@@ -191,63 +171,45 @@ async function getModernPluginVersion(solution, packageName, options = {
191
171
  registry,
192
172
  distTag
193
173
  } = options;
194
-
195
- const getLatetPluginVersion = async () => {
196
- const version = await getPackageVersion(`${packageName}@${distTag}`, registry);
174
+ const getLatetPluginVersion = async tag => {
175
+ const version = await getPackageVersion(`${packageName}@${tag || distTag || 'latest'}`, registry);
197
176
  return version;
198
177
  };
199
-
200
178
  if (!packageName.startsWith('@modern-js') || packageName.includes('electron') || packageName.includes('codesmith') || packageName.includes('easy-form') || packageName.startsWith('@modern-js-reduck')) {
201
- return getLatetPluginVersion();
202
- } // get project solution version
203
-
204
-
179
+ return getLatetPluginVersion('latest');
180
+ }
181
+ // get project solution version
205
182
  const pkgPath = _path.default.join(require.resolve(_generatorCommon.SolutionToolsMap[solution], {
206
183
  paths: [cwd]
207
184
  }), '../../../../', 'package.json');
208
-
209
185
  if (_utils.fs.existsSync(pkgPath)) {
210
186
  const pkgInfo = _utils.fs.readJSONSync(pkgPath);
211
-
212
187
  const modernVersion = pkgInfo.version;
213
-
214
188
  if (typeof modernVersion !== 'string') {
215
189
  return getLatetPluginVersion();
216
190
  }
217
-
218
- if (_utils.semver.lt(modernVersion, '1.15.0')) {
219
- return getLatetPluginVersion();
220
- }
221
-
222
191
  return (0, _package.getAvailableVersion)(packageName, modernVersion, registry);
223
192
  }
224
-
225
193
  return getLatetPluginVersion();
226
194
  }
227
-
228
195
  function getPackageManagerText(packageManager) {
229
196
  return packageManager === 'yarn' ? 'yarn' : `${packageManager} run`;
230
197
  }
231
-
232
198
  function isTsProject(appDir) {
233
199
  return _utils.fs.existsSync(_path.default.join(appDir, 'tsconfig.json'));
234
200
  }
235
-
236
201
  async function getPackageObj(context) {
237
202
  const pkgStr = (await context.materials.default.get(`package.json`).value()).content;
238
203
  return JSON.parse(pkgStr);
239
204
  }
240
-
241
205
  function getAllPackages(appDir) {
242
206
  const packages = (0, _utils.getMonorepoPackages)(appDir);
243
207
  return packages.map(pkg => pkg.name);
244
208
  }
245
-
246
209
  function validatePackageName(value, packages, options) {
247
210
  const {
248
211
  isMonorepoSubProject
249
212
  } = options;
250
-
251
213
  if (isMonorepoSubProject && packages.includes(value)) {
252
214
  return {
253
215
  success: false,
@@ -256,12 +218,10 @@ function validatePackageName(value, packages, options) {
256
218
  })
257
219
  };
258
220
  }
259
-
260
221
  return {
261
222
  success: true
262
223
  };
263
224
  }
264
-
265
225
  function validatePackagePath(value, projectDir, options) {
266
226
  const {
267
227
  isMwa,
@@ -269,15 +229,12 @@ function validatePackagePath(value, projectDir, options) {
269
229
  isTest
270
230
  } = options || {};
271
231
  let dir = 'apps';
272
-
273
232
  if (isMwa && isTest) {
274
233
  dir = 'examples';
275
234
  } else {
276
235
  dir = isPublic ? 'packages' : 'features';
277
236
  }
278
-
279
237
  const packageDir = _path.default.resolve(projectDir || '', dir, value);
280
-
281
238
  if (_utils.fs.existsSync(packageDir)) {
282
239
  return {
283
240
  success: false,
@@ -286,28 +243,22 @@ function validatePackagePath(value, projectDir, options) {
286
243
  })
287
244
  };
288
245
  }
289
-
290
246
  return {
291
247
  success: true
292
248
  };
293
249
  }
294
-
295
250
  function getModuleProjectPath(packagePath, isMonorepoSubProject, isPublic, isLocalPackages) {
296
251
  if (isLocalPackages && packagePath) {
297
252
  return `${packagePath}/`;
298
253
  }
299
-
300
254
  if (isMonorepoSubProject && packagePath) {
301
255
  return `${isPublic ? 'packages' : 'features'}/${packagePath}/`;
302
256
  }
303
-
304
257
  return '';
305
258
  }
306
-
307
259
  function getMWAProjectPath(packagePath, isMonorepoSubProject, isTest = false) {
308
260
  if (isMonorepoSubProject && packagePath) {
309
261
  return `${isTest ? 'examples' : 'apps'}/${packagePath}/`;
310
262
  }
311
-
312
263
  return '';
313
264
  }
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.localeKeys = exports.i18n = void 0;
7
-
8
7
  var _pluginI18n = require("@modern-js/plugin-i18n");
9
-
10
8
  var _zh = require("./zh");
11
-
12
9
  var _en = require("./en");
13
-
14
10
  const i18n = new _pluginI18n.I18n();
15
11
  exports.i18n = i18n;
16
12
  const localeKeys = i18n.init('zh', {
@@ -3,9 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
-
7
6
  var _stripAnsi = require("./strip-ansi");
8
-
9
7
  Object.keys(_stripAnsi).forEach(function (key) {
10
8
  if (key === "default" || key === "__esModule") return;
11
9
  if (key in exports && exports[key] === _stripAnsi[key]) return;
@@ -16,9 +14,7 @@ Object.keys(_stripAnsi).forEach(function (key) {
16
14
  }
17
15
  });
18
16
  });
19
-
20
17
  var _package = require("./package");
21
-
22
18
  Object.keys(_package).forEach(function (key) {
23
19
  if (key === "default" || key === "__esModule") return;
24
20
  if (key in exports && exports[key] === _package[key]) return;
@@ -7,97 +7,76 @@ exports.getAvailableVersion = getAvailableVersion;
7
7
  exports.isPackageDeprecated = isPackageDeprecated;
8
8
  exports.isPackageExist = isPackageExist;
9
9
  exports.semverDecrease = semverDecrease;
10
-
11
10
  var _utils = require("@modern-js/utils");
12
-
13
11
  // 判断包是否存在
14
12
  async function isPackageExist(packageName, registry) {
15
13
  if (await (0, _utils.canUseNpm)()) {
16
14
  const args = ['view', packageName, 'version'];
17
-
18
15
  if (registry) {
19
16
  args.push(`--registry=${registry}`);
20
17
  }
21
-
22
18
  const result = await (0, _utils.execa)('npm', args);
23
19
  return (0, _utils.stripAnsi)(result.stdout);
24
20
  }
25
-
26
21
  throw new Error('not found npm, please install npm before');
27
- } // 判断包是否已经废弃
28
-
22
+ }
29
23
 
24
+ // 判断包是否已经废弃
30
25
  async function isPackageDeprecated(packageName, registry) {
31
26
  if (await (0, _utils.canUseNpm)()) {
32
27
  const args = ['view', packageName, 'deprecated'];
33
-
34
28
  if (registry) {
35
29
  args.push(`--registry=${registry}`);
36
30
  }
37
-
38
31
  const result = await (0, _utils.execa)('npm', args);
39
32
  return (0, _utils.stripAnsi)(result.stdout);
40
33
  }
41
-
42
34
  throw new Error('not found npm, please install npm before');
43
- } // 降低包小版本号
44
-
35
+ }
45
36
 
37
+ // 降低包小版本号
46
38
  function semverDecrease(version) {
47
39
  const versionObj = _utils.semver.parse(version, {
48
40
  loose: true
49
41
  });
50
-
51
42
  if (!versionObj) {
52
43
  throw new Error(`Version ${version} is not valid semver`);
53
44
  }
54
-
55
45
  versionObj.build = [];
56
46
  versionObj.prerelease = [];
57
47
  versionObj.patch--;
58
48
  const result = versionObj.format();
59
-
60
49
  if (!_utils.semver.valid(result)) {
61
50
  _utils.logger.debug(`Version ${result} is not valid semver`);
62
-
63
51
  return version;
64
52
  }
65
-
66
53
  return result;
67
54
  }
55
+
68
56
  /**
69
57
  * 插件存在 hotfix 版本,从 tools 版本号向上找当前插件版本号
70
58
  * tools 存在 hotfix 版本,从 tools 版本号向下找当前插件版本号
71
59
  * 限制只在当前小版本号范围内寻找
72
60
  */
73
-
74
-
75
61
  async function getAvailableVersion(packageName, currentVersion, registry) {
76
62
  let times = 5;
77
63
  let version = currentVersion;
78
-
79
64
  while (times) {
80
65
  if (!(await isPackageExist(`${packageName}@${version}`, registry)) || (await isPackageDeprecated(`${packageName}@${version}`, registry))) {
81
66
  version = _utils.semver.inc(version, 'patch');
82
67
  times--;
83
68
  continue;
84
69
  }
85
-
86
70
  return version;
87
71
  }
88
-
89
72
  times = 5;
90
-
91
73
  while (times) {
92
74
  version = semverDecrease(version);
93
-
94
75
  if (!(await isPackageExist(`${packageName}@${version}`, registry)) || (await isPackageDeprecated(`${packageName}@${version}`, registry))) {
95
76
  times--;
96
77
  continue;
97
78
  }
98
-
99
79
  return version;
100
80
  }
101
-
102
81
  return currentVersion;
103
82
  }
@@ -4,18 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.stripAnsi = stripAnsi;
7
-
8
7
  function ansiRegex({
9
8
  onlyFirst = false
10
9
  } = {}) {
11
10
  const pattern = ['[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))'].join('|');
12
11
  return new RegExp(pattern, onlyFirst ? undefined : 'g');
13
12
  }
14
-
15
13
  function stripAnsi(string) {
16
14
  if (typeof string !== 'string') {
17
15
  throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
18
16
  }
19
-
20
17
  return string.replace(ansiRegex(), '');
21
18
  }
@@ -6,5 +6,4 @@ export declare function semverDecrease(version: string): string;
6
6
  * tools 存在 hotfix 版本,从 tools 版本号向下找当前插件版本号
7
7
  * 限制只在当前小版本号范围内寻找
8
8
  */
9
-
10
9
  export declare function getAvailableVersion(packageName: string, currentVersion: string, registry?: string): Promise<string>;
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "3.0.0-beta.0",
14
+ "version": "3.0.0-beta.2",
15
15
  "jsnext:source": "./src/index.ts",
16
16
  "types": "./dist/types/index.d.ts",
17
17
  "main": "./dist/js/node/index.js",
@@ -28,18 +28,18 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@babel/runtime": "^7.18.0",
31
- "@modern-js/plugin-i18n": "2.0.0-beta.0",
32
- "@modern-js/generator-common": "3.0.0-beta.0",
33
- "@modern-js/utils": "2.0.0-beta.0"
31
+ "@modern-js/plugin-i18n": "2.0.0-beta.2",
32
+ "@modern-js/generator-common": "3.0.0-beta.2",
33
+ "@modern-js/utils": "2.0.0-beta.2"
34
34
  },
35
35
  "devDependencies": {
36
- "@modern-js/codesmith": "2.0.0",
37
- "@scripts/build": "2.0.0-beta.0",
38
- "@scripts/jest-config": "2.0.0-beta.0",
36
+ "@modern-js/codesmith": "2.0.1",
39
37
  "@types/jest": "^27",
40
38
  "@types/node": "^14",
41
39
  "jest": "^27",
42
- "typescript": "^4"
40
+ "typescript": "^4",
41
+ "@scripts/build": "2.0.0-beta.2",
42
+ "@scripts/jest-config": "2.0.0-beta.2"
43
43
  },
44
44
  "sideEffects": false,
45
45
  "modernConfig": {
@@ -52,8 +52,8 @@
52
52
  "access": "public"
53
53
  },
54
54
  "scripts": {
55
- "new": "modern new",
56
- "build": "modern build",
55
+ "new": "modern-lib new",
56
+ "build": "modern-lib build",
57
57
  "test": "jest --passWithNoTests"
58
58
  }
59
59
  }