spectrum-cli 2.1.2 → 3.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.
package/src/version.js CHANGED
@@ -1,12 +1,33 @@
1
1
  #!/usr/bin/env node
2
- const fs = require('fs');
3
- const { logSuccess, logError } = require('./utils');
4
- const { runCommand } = require('./command-executor');
5
- const { requireGitRepo, requireFileExists, requirePackageVersion } = require('./preflight');
2
+
3
+ const STABLE_VERSION_PATTERN = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/;
4
+
5
+ function parseStableVersion(version) {
6
+ const match = String(version || '').match(STABLE_VERSION_PATTERN);
7
+ if (!match) return null;
8
+ return match.slice(1).map(Number);
9
+ }
10
+
11
+ function compareVersions(left, right) {
12
+ const leftParts = parseStableVersion(left);
13
+ const rightParts = parseStableVersion(right);
14
+ if (!leftParts || !rightParts) {
15
+ throw new Error('Для сравнения требуются стабильные SemVer версии X.Y.Z.');
16
+ }
17
+
18
+ for (let index = 0; index < leftParts.length; index += 1) {
19
+ if (leftParts[index] !== rightParts[index]) {
20
+ return leftParts[index] - rightParts[index];
21
+ }
22
+ }
23
+ return 0;
24
+ }
6
25
 
7
26
  function upVersion(oldVersion, upType) {
8
- const [major, minor, patch] = oldVersion.split('.').map(Number);
9
-
27
+ const parts = parseStableVersion(oldVersion);
28
+ if (!parts) return null;
29
+ const [major, minor, patch] = parts;
30
+
10
31
  switch (upType) {
11
32
  case 'major':
12
33
  return `${major + 1}.0.0`;
@@ -18,39 +39,9 @@ function upVersion(oldVersion, upType) {
18
39
  }
19
40
  }
20
41
 
21
- function updateVersionFile(versionType) {
22
- try {
23
- const packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'));
24
- const oldVersion = packageJson.version;
25
- const newVersion = upVersion(oldVersion, versionType);
26
-
27
- packageJson.version = newVersion;
28
- fs.writeFileSync('package.json', JSON.stringify(packageJson, null, 2) + '\n');
29
- logSuccess('🔖', 'Версия обновлена с %s до %s.', oldVersion, newVersion);
30
- return true;
31
- } catch (error) {
32
- logError('❌', 'Ошибка при обновлении версии в package.json');
33
- return false;
34
- }
35
- }
36
-
37
- function setVersion(versionType) {
38
- return runCommand({
39
- name: `version up ${versionType}`,
40
- checks: [
41
- { name: 'git-repo', run: requireGitRepo },
42
- { name: 'package-json-exists', run: () => requireFileExists('package.json') },
43
- { name: 'package-version', run: requirePackageVersion },
44
- ],
45
- steps: [
46
- { name: 'update-package-version', run: () => updateVersionFile(versionType) }
47
- ]
48
- });
49
- }
50
-
51
-
52
42
  module.exports = {
53
- upVersion,
54
- updateVersionFile,
55
- setVersion
43
+ STABLE_VERSION_PATTERN,
44
+ parseStableVersion,
45
+ compareVersions,
46
+ upVersion
56
47
  };
package/src/UNRELEASED.md DELETED
@@ -1,33 +0,0 @@
1
- ## [Unreleased]
2
-
3
- ### 💥 Breaking change
4
-
5
- _Список обратно несовместимых изменений._
6
-
7
- ### 🆕 Added
8
-
9
- _Список новой функциональности._
10
-
11
- ### 🛠 Changed
12
-
13
- _Список изменившейся функциональности._
14
-
15
- ### 📜 Deprecated
16
-
17
- _Список устаревшей функциональности._
18
-
19
- ### 🗑 Removed
20
-
21
- _Список удаленной функциональности._
22
-
23
- ### 🪲 Fixed
24
-
25
- _Список исправлений багов._
26
-
27
- ### 🔐 Security
28
-
29
- _Список правок для обеспечения безопасности._
30
-
31
- ### 📦 Support
32
-
33
- _Список правок для обеспечения технической поддержки._