submodule-version 2.4.1 → 3.1.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 (124) hide show
  1. package/README.md +117 -39
  2. package/dist/runner/handleErrors/handleErrors.d.ts +1 -1
  3. package/dist/runner/handleErrors/handleErrors.js +3 -10
  4. package/dist/runner/handleErrors/handleErrors.js.map +1 -1
  5. package/dist/runner/index.js +0 -0
  6. package/dist/runner/runner.d.ts +4 -0
  7. package/dist/runner/runner.js +91 -37
  8. package/dist/runner/runner.js.map +1 -1
  9. package/dist/src/PubGrub/PubGrub.d.ts +28 -0
  10. package/dist/src/PubGrub/PubGrub.js +366 -0
  11. package/dist/src/PubGrub/PubGrub.js.map +1 -0
  12. package/dist/src/PubGrub/index.d.ts +2 -0
  13. package/dist/src/PubGrub/index.js +7 -0
  14. package/dist/src/PubGrub/index.js.map +1 -0
  15. package/dist/src/PubGrub/types.d.ts +56 -0
  16. package/dist/src/PubGrub/types.js +3 -0
  17. package/dist/src/PubGrub/types.js.map +1 -0
  18. package/dist/src/entryStore.d.ts +16 -0
  19. package/dist/src/entryStore.js +152 -0
  20. package/dist/src/entryStore.js.map +1 -0
  21. package/dist/src/errors.d.ts +29 -0
  22. package/dist/src/errors.js +31 -0
  23. package/dist/src/errors.js.map +1 -0
  24. package/dist/src/git/api/GithubError.d.ts +4 -0
  25. package/dist/src/git/api/GithubError.js +11 -0
  26. package/dist/src/git/api/GithubError.js.map +1 -0
  27. package/dist/src/git/api/api.d.ts +8 -0
  28. package/dist/src/git/api/api.js +133 -0
  29. package/dist/src/git/api/api.js.map +1 -0
  30. package/dist/src/git/api/index.d.ts +3 -0
  31. package/dist/src/git/api/index.js +8 -0
  32. package/dist/src/git/api/index.js.map +1 -0
  33. package/dist/src/git/git.d.ts +30 -23
  34. package/dist/src/git/git.js +8 -258
  35. package/dist/src/git/git.js.map +1 -1
  36. package/dist/src/git/index.d.ts +1 -0
  37. package/dist/src/git/index.js +3 -1
  38. package/dist/src/git/index.js.map +1 -1
  39. package/dist/src/git/local/index.d.ts +1 -0
  40. package/dist/src/git/local/index.js +6 -0
  41. package/dist/src/git/local/index.js.map +1 -0
  42. package/dist/src/git/local/local.d.ts +26 -0
  43. package/dist/src/git/local/local.js +288 -0
  44. package/dist/src/git/local/local.js.map +1 -0
  45. package/dist/src/index.d.ts +7 -0
  46. package/dist/src/index.js +16 -1
  47. package/dist/src/index.js.map +1 -1
  48. package/dist/src/npm.d.ts +3 -0
  49. package/dist/src/npm.js +25 -0
  50. package/dist/src/npm.js.map +1 -0
  51. package/dist/src/printError.d.ts +1 -0
  52. package/dist/src/printError.js +162 -0
  53. package/dist/src/printError.js.map +1 -0
  54. package/dist/src/sv.d.ts +16 -8
  55. package/dist/src/sv.js +242 -142
  56. package/dist/src/sv.js.map +1 -1
  57. package/dist/src/versionUtil/index.d.ts +2 -0
  58. package/dist/src/versionUtil/index.js +6 -0
  59. package/dist/src/versionUtil/index.js.map +1 -0
  60. package/dist/src/versionUtil/versionUtil.d.ts +16 -0
  61. package/dist/src/versionUtil/versionUtil.js +70 -0
  62. package/dist/src/versionUtil/versionUtil.js.map +1 -0
  63. package/package.json +4 -2
  64. package/runner/handleErrors/handleErrors.ts +3 -10
  65. package/runner/runner.ts +128 -46
  66. package/src/PubGrub/PubGrub.ts +578 -0
  67. package/src/PubGrub/__tests__/PubGrub.test.ts +351 -0
  68. package/src/PubGrub/index.ts +12 -0
  69. package/src/PubGrub/types.ts +72 -0
  70. package/src/__tests__/entryStore.test.ts +248 -0
  71. package/src/__tests__/printError.test.ts +148 -0
  72. package/src/__tests__/sv.test.ts +497 -0
  73. package/src/entryStore.ts +212 -0
  74. package/src/errors.ts +40 -0
  75. package/src/git/api/GithubError.ts +5 -0
  76. package/src/git/api/api.ts +180 -0
  77. package/src/git/api/index.ts +3 -0
  78. package/src/git/git.ts +8 -396
  79. package/src/git/index.ts +1 -0
  80. package/src/git/local/index.ts +1 -0
  81. package/src/git/local/local.ts +430 -0
  82. package/src/index.ts +17 -0
  83. package/src/npm.ts +25 -0
  84. package/src/printError.ts +193 -0
  85. package/src/sv.ts +327 -145
  86. package/src/versionUtil/__tests__/versionUtil.test.ts +62 -0
  87. package/src/versionUtil/index.ts +2 -0
  88. package/src/versionUtil/versionUtil.ts +103 -0
  89. package/tsconfig.json +1 -1
  90. package/dist/runner/handleErrors/handleBuildGraphError.d.ts +0 -1
  91. package/dist/runner/handleErrors/handleBuildGraphError.js +0 -42
  92. package/dist/runner/handleErrors/handleBuildGraphError.js.map +0 -1
  93. package/dist/runner/handleErrors/handleGitError.d.ts +0 -1
  94. package/dist/runner/handleErrors/handleGitError.js +0 -27
  95. package/dist/runner/handleErrors/handleGitError.js.map +0 -1
  96. package/dist/runner/handleErrors/handleInstallError.d.ts +0 -1
  97. package/dist/runner/handleErrors/handleInstallError.js +0 -30
  98. package/dist/runner/handleErrors/handleInstallError.js.map +0 -1
  99. package/dist/src/__tests__/versionUtil.test.d.ts +0 -1
  100. package/dist/src/__tests__/versionUtil.test.js +0 -80
  101. package/dist/src/__tests__/versionUtil.test.js.map +0 -1
  102. package/dist/src/buildGraph/GraphError.d.ts +0 -11
  103. package/dist/src/buildGraph/GraphError.js +0 -11
  104. package/dist/src/buildGraph/GraphError.js.map +0 -1
  105. package/dist/src/buildGraph/buildGraph.d.ts +0 -8
  106. package/dist/src/buildGraph/buildGraph.js +0 -100
  107. package/dist/src/buildGraph/buildGraph.js.map +0 -1
  108. package/dist/src/buildGraph/index.d.ts +0 -2
  109. package/dist/src/buildGraph/index.js +0 -8
  110. package/dist/src/buildGraph/index.js.map +0 -1
  111. package/dist/src/git/__tests__/parseGitUrl.test.d.ts +0 -1
  112. package/dist/src/git/__tests__/parseGitUrl.test.js +0 -30
  113. package/dist/src/git/__tests__/parseGitUrl.test.js.map +0 -1
  114. package/dist/src/versionUtil.d.ts +0 -13
  115. package/dist/src/versionUtil.js +0 -79
  116. package/dist/src/versionUtil.js.map +0 -1
  117. package/runner/handleErrors/handleBuildGraphError.ts +0 -49
  118. package/runner/handleErrors/handleGitError.ts +0 -28
  119. package/runner/handleErrors/handleInstallError.ts +0 -26
  120. package/src/__tests__/versionUtil.test.ts +0 -96
  121. package/src/buildGraph/GraphError.ts +0 -12
  122. package/src/buildGraph/buildGraph.ts +0 -150
  123. package/src/buildGraph/index.ts +0 -2
  124. package/src/versionUtil.ts +0 -97
package/dist/src/sv.js CHANGED
@@ -5,151 +5,268 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SV = void 0;
7
7
  const path_1 = __importDefault(require("path"));
8
+ const promises_1 = require("fs/promises");
8
9
  const pkgJSONManager_1 = require("./pkgJSONManager");
9
- const buildGraph_1 = require("./buildGraph");
10
+ const PubGrub_1 = require("./PubGrub");
11
+ const entryStore_1 = require("./entryStore");
10
12
  const runOptions_1 = require("./runOptions");
11
13
  const versionUtil_1 = require("./versionUtil");
12
14
  const git_1 = require("./git");
15
+ const npm_1 = require("./npm");
16
+ const errors_1 = require("./errors");
17
+ /*
18
+ * Правка package.json родителя (внутри его сабмодуля): parent-level
19
+ * мутации обязаны пережить публикацию родителя, поэтому диапазон
20
+ * пишется в его поле sv.
21
+ */
22
+ const updateModuleJson = async (parent, override) => {
23
+ const parentJson = await pkgJSONManager_1.pkgJSONManager.read(parent);
24
+ if (!parentJson)
25
+ throw new errors_1.SVError('ADDON_NOT_FOUND', { name: parent });
26
+ const sv = { ...(parentJson.sv || {}) };
27
+ if (override.add)
28
+ sv[override.add] = override.version || '*';
29
+ if (override.delete) {
30
+ const key = Object.keys(sv)
31
+ .find(depUrl => git_1.git.parseUrl(depUrl).name === override.delete);
32
+ if (!key)
33
+ throw new errors_1.SVError('ADDON_NOT_FOUND', { name: override.delete });
34
+ delete sv[key];
35
+ }
36
+ parentJson.sv = sv;
37
+ await pkgJSONManager_1.pkgJSONManager.write(parentJson, parent);
38
+ };
39
+ /*
40
+ * modulesDir должен быть npm-workspace, иначе сабмодули не попадут
41
+ * в node_modules. Поддерживаем оба формата: workspaces: [] и
42
+ * workspaces: { packages: [] }. Возвращает true, если json изменён.
43
+ */
44
+ const ensureWorkspaces = (baseJson) => {
45
+ const entry = `${runOptions_1.RunOptions.modulesDir}/*`;
46
+ if (Array.isArray(baseJson.workspaces)) {
47
+ if (baseJson.workspaces.includes(entry))
48
+ return false;
49
+ baseJson.workspaces.push(entry);
50
+ return true;
51
+ }
52
+ const packages = baseJson.workspaces?.packages;
53
+ if (Array.isArray(packages)) {
54
+ if (packages.includes(entry))
55
+ return false;
56
+ packages.push(entry);
57
+ return true;
58
+ }
59
+ baseJson.workspaces = [entry];
60
+ return true;
61
+ };
62
+ const MODULES_DIR_FIELD = 'sv-dir';
63
+ const DEFAULT_MODULES_DIR = 'modules';
64
+ /*
65
+ * Уже добавленные сабмодули — источник правды о директории:
66
+ * .gitmodules с единым родителем у всех path (addons/X, addons/Y → addons).
67
+ */
68
+ const deriveModulesDir = async () => {
69
+ try {
70
+ const content = await (0, promises_1.readFile)(path_1.default.join(runOptions_1.RunOptions.cwd, '.gitmodules'), 'utf-8');
71
+ const dirs = new Set([...content.matchAll(/^\s*path\s*=\s*(.+)$/gm)]
72
+ .map(match => match[1].trim().split('/')[0]));
73
+ return dirs.size === 1 ? [...dirs][0] : null;
74
+ }
75
+ catch {
76
+ return null;
77
+ }
78
+ };
13
79
  class SV {
14
- constructor(projectDir, modulesDir = 'addons') {
15
- this.buildGraph = buildGraph_1.buildGraph;
16
- // eslint-disable-next-line class-methods-use-this
17
- this.install = async (gitUrl, parentModule) => {
18
- const { url, version, name } = git_1.git.parseUrl(gitUrl);
19
- if (!name) {
20
- throw new Error('NOT_A_GIT_URL');
21
- }
22
- const targetPkg = await pkgJSONManager_1.pkgJSONManager.read(parentModule);
23
- const installedPkg = await pkgJSONManager_1.pkgJSONManager.read(name);
24
- if (!installedPkg) {
25
- await git_1.git.addSumbmodule(url);
26
- }
27
- const versions = await git_1.git.listVersions(name);
28
- const latestVersion = versionUtil_1.versionUtil.latest(versions);
29
- const requestedVersion = version || latestVersion;
30
- if (!versions.includes(requestedVersion) && versions.length) {
31
- throw new Error('REQUESTED_VERSION_NOT_EXISTS');
32
- }
33
- if (!targetPkg.sv) {
34
- targetPkg.sv = {};
80
+ constructor(projectDir, modulesDir, options = {}) {
81
+ this.resolution = null;
82
+ this.store = new entryStore_1.EntryStore();
83
+ /*
84
+ * Директория модулей: явно переданная (CLI/JS) записанная в
85
+ * package.json#sv-dir → выведенная из .gitmodules → 'modules'.
86
+ * Эффективная записывается в sv-dir. Возвращает true, если json изменён.
87
+ */
88
+ this.syncModulesDir = async (baseJson) => {
89
+ const recorded = baseJson[MODULES_DIR_FIELD];
90
+ if (!this.explicitModulesDir) {
91
+ if (recorded) {
92
+ runOptions_1.RunOptions.modulesDir = recorded;
93
+ return false;
94
+ }
95
+ const derived = await deriveModulesDir();
96
+ if (derived)
97
+ runOptions_1.RunOptions.modulesDir = derived;
35
98
  }
36
- targetPkg.sv[url] = requestedVersion ? `^${requestedVersion}` : '*';
37
- await pkgJSONManager_1.pkgJSONManager.write(targetPkg, parentModule);
38
- await (0, buildGraph_1.buildGraph)();
99
+ if (recorded === runOptions_1.RunOptions.modulesDir)
100
+ return false;
101
+ baseJson[MODULES_DIR_FIELD] = runOptions_1.RunOptions.modulesDir;
102
+ return true;
39
103
  };
40
- // eslint-disable-next-line class-methods-use-this
41
- this.update = async () => {
42
- const graph = await (0, buildGraph_1.buildGraph)();
43
- if (!graph)
44
- return;
45
- await Promise.all(Object.entries(graph).map(async ([name, data]) => {
46
- const { version, used } = data;
47
- const latestVersion = versionUtil_1.versionUtil.latest(used);
48
- if (latestVersion !== version) {
49
- await git_1.git.checkout(name, latestVersion);
104
+ this.resolveDeps = (rootDeps) => new PubGrub_1.PubGrub(this.store).resolve(rootDeps);
105
+ /*
106
+ * Синк рабочей копии с резолвом: недостающие сабмодули добавляются,
107
+ * версии переключаются, исчезнувшие из резолва модули удаляются.
108
+ * Возвращает true, если рабочая копия изменилась.
109
+ */
110
+ this.syncModules = async (resolution) => {
111
+ const previous = this.resolution || {};
112
+ let changed = false;
113
+ await Promise.all(Object.entries(resolution).map(async ([name, entry]) => {
114
+ const dir = path_1.default.join(runOptions_1.RunOptions.modulesDir, name);
115
+ if (!await git_1.git.local.isGitRepo(dir)) {
116
+ await git_1.git.local.addSubmodule(entry.url);
117
+ changed = true;
118
+ }
119
+ if (await git_1.git.local.currentVersion(name) !== entry.version) {
120
+ await git_1.git.local.checkout(name, entry.version);
121
+ changed = true;
50
122
  }
51
123
  }));
124
+ const removed = Object.keys(previous).filter(name => !resolution[name]);
125
+ if (removed.length)
126
+ changed = true;
127
+ await Promise.all(removed.map(name => git_1.git.local.rm(name)));
128
+ return changed;
52
129
  };
53
130
  /*
54
- * Устанавливает конкретную версию аддона: checkout на тег + запись constraint'а
55
- * в package.json проекта (иначе buildGraph вернёт latest(used)).
56
- * constraint по умолчанию — точный пин выбранной версии; при обновлении до
57
- * последней имеет смысл передать `^<version>`, чтобы новые версии продолжали приходить.
131
+ * Общий путь мутаций: проверка через resolve внутри simulate, и только
132
+ * если ошибки нет установка/переключение модулей и правка package.json
133
+ * (корня или родителя).
58
134
  */
59
- // eslint-disable-next-line class-methods-use-this
60
- this.setVersion = async (name, version, constraint) => {
61
- const versions = await git_1.git.listVersions(name);
62
- if (!versions.includes(version)) {
63
- throw new Error('REQUESTED_VERSION_NOT_EXISTS');
135
+ this.apply = async (baseJson, override, parent) => {
136
+ const dirChanged = await this.syncModulesDir(baseJson);
137
+ const rootDeps = (baseJson.sv || {});
138
+ let nextRootDeps = rootDeps;
139
+ const resolution = await this.store.simulate([override], rootDeps, deps => {
140
+ nextRootDeps = deps;
141
+ return this.resolveDeps(deps);
142
+ });
143
+ await this.syncModules(resolution);
144
+ if (parent) {
145
+ await updateModuleJson(parent, override);
146
+ if (dirChanged)
147
+ await pkgJSONManager_1.pkgJSONManager.write(baseJson);
148
+ }
149
+ else {
150
+ baseJson.sv = nextRootDeps;
151
+ await pkgJSONManager_1.pkgJSONManager.write(baseJson);
64
152
  }
65
- const dir = path_1.default.join(runOptions_1.RunOptions.modulesDir, name);
66
- const dirty = await git_1.git.hasChanges(dir);
67
153
  /*
68
- * checkout с локальными изменениями транзакционен: git переносит их на
69
- * новую версию, а если перенести нельзя — отказывается, НЕ трогая дерево.
70
- * Значит при ошибке мы гарантированно остаёмся на исходной версии с теми
71
- * же изменениями — сообщаем, что перенос нужно сделать вручную.
154
+ * package.json уже записан npm подтянет workspaces и зависимости
155
+ * нового набора модулей.
72
156
  */
73
- try {
74
- await git_1.git.checkout(name, version);
75
- }
76
- catch (e) {
77
- if (dirty) {
78
- throw new git_1.GitError('GIT_DIRTY_SWITCH_CONFLICT');
79
- }
80
- throw e;
157
+ await npm_1.npm.install();
158
+ this.resolution = resolution;
159
+ };
160
+ this.init = async () => {
161
+ const baseJson = await pkgJSONManager_1.pkgJSONManager.read();
162
+ if (!baseJson)
163
+ throw new errors_1.SVError('NOT_A_NPM');
164
+ if (!await git_1.git.local.isGitRepo(runOptions_1.RunOptions.cwd)) {
165
+ throw new errors_1.SVError('NOT_A_GIT_REPO');
81
166
  }
82
- const json = await pkgJSONManager_1.pkgJSONManager.read();
83
- if (!json?.sv)
84
- return;
85
- const key = Object.keys(json.sv).find(k => k.endsWith(`${name}.git`));
86
- const nextConstraint = constraint || version;
87
- if (key && json.sv[key] !== nextConstraint) {
88
- json.sv[key] = nextConstraint;
89
- await pkgJSONManager_1.pkgJSONManager.write(json);
167
+ const dirChanged = await this.syncModulesDir(baseJson);
168
+ const jsonChanged = ensureWorkspaces(baseJson) || dirChanged;
169
+ if (jsonChanged) {
170
+ await pkgJSONManager_1.pkgJSONManager.write(baseJson);
90
171
  }
172
+ const rootDeps = (baseJson.sv || {});
173
+ const resolution = await this.resolveDeps(rootDeps);
174
+ const modulesChanged = await this.syncModules(resolution);
175
+ /*
176
+ * npm install запускается только когда реально что-то изменилось —
177
+ * иначе каждый CLI-вызов (init идёт перед любой командой) платил
178
+ * бы за полный прогон npm.
179
+ */
180
+ if (jsonChanged || modulesChanged)
181
+ await npm_1.npm.install();
182
+ this.resolution = resolution;
183
+ };
184
+ this.getResolution = () => {
185
+ if (!this.resolution)
186
+ throw new errors_1.SVError('NOT_INITIALIZED');
187
+ return this.resolution;
91
188
  };
92
189
  /*
93
- * Constraint корневого проекта на аддон (ключ в sv ищем по имени, как в remove).
190
+ * Установка/смена версии модуля. Первый аргумент url репозитория
191
+ * или имя уже установленного модуля. Без parentName — в корне проекта,
192
+ * без version — максимально возможная ('*'). Второй аргумент —
193
+ * версия, если это валидный semver-диапазон, иначе имя родителя.
94
194
  */
95
- // eslint-disable-next-line class-methods-use-this
96
- this.getConstraint = async (name) => {
97
- const json = await pkgJSONManager_1.pkgJSONManager.read();
98
- if (!json?.sv)
99
- return null;
100
- const key = Object.keys(json.sv).find(k => k.endsWith(`${name}.git`));
101
- return key ? json.sv[key] : null;
102
- };
103
- // eslint-disable-next-line class-methods-use-this
104
- this.setConstraint = async (name, constraint) => {
105
- const json = await pkgJSONManager_1.pkgJSONManager.read();
106
- if (!json?.sv)
107
- return;
108
- const key = Object.keys(json.sv).find(k => k.endsWith(`${name}.git`));
109
- if (key && json.sv[key] !== constraint) {
110
- json.sv[key] = constraint;
111
- await pkgJSONManager_1.pkgJSONManager.write(json);
195
+ this.put = async (url, versionOrParent, parentName) => {
196
+ const isVersion = !!versionOrParent
197
+ && versionUtil_1.versionUtil.validate(versionOrParent, true);
198
+ const range = (isVersion ? versionOrParent : undefined) || '*';
199
+ const parent = (isVersion ? parentName : versionOrParent) || undefined;
200
+ const baseJson = await pkgJSONManager_1.pkgJSONManager.read();
201
+ if (!baseJson)
202
+ throw new errors_1.SVError('NOT_A_NPM');
203
+ /*
204
+ * Вместо url можно передать имя уже установленного модуля —
205
+ * url берём из текущего резолва.
206
+ */
207
+ let moduleUrl = url;
208
+ if (!git_1.git.parseUrl(url).name) {
209
+ const existing = this.getResolution()[url];
210
+ if (!existing)
211
+ throw new errors_1.SVError('NOT_A_GIT_URL', { url });
212
+ moduleUrl = existing.url;
213
+ }
214
+ if (parent && !this.getResolution()[parent]) {
215
+ throw new errors_1.SVError('ADDON_NOT_FOUND', { name: parent });
112
216
  }
217
+ await this.apply(baseJson, { parent, add: moduleUrl, version: range }, parent);
113
218
  };
114
- // eslint-disable-next-line class-methods-use-this
115
- this.remove = async (submoduleName, parentModule) => {
116
- await git_1.git.rm(submoduleName);
117
- const json = await pkgJSONManager_1.pkgJSONManager.read(parentModule);
118
- if (!json.sv)
119
- return;
120
- json.sv = Object.keys(json.sv).reduce((acc, k) => {
121
- if (k.endsWith(`${submoduleName}.git`)) {
122
- return acc;
219
+ /* Удаление модуля из родителя (без parentName — из корня проекта). */
220
+ this.delete = async (name, parentName) => {
221
+ const baseJson = await pkgJSONManager_1.pkgJSONManager.read();
222
+ if (!baseJson)
223
+ throw new errors_1.SVError('NOT_A_NPM');
224
+ if (parentName) {
225
+ const parentEntry = this.getResolution()[parentName];
226
+ if (!parentEntry) {
227
+ throw new errors_1.SVError('ADDON_NOT_FOUND', { name: parentName });
228
+ }
229
+ if (!(name in parentEntry.dependencies)) {
230
+ throw new errors_1.SVError('ADDON_NOT_FOUND', { name });
123
231
  }
124
- return { ...acc, [k]: json.sv[k] };
125
- }, {});
126
- await pkgJSONManager_1.pkgJSONManager.write(json, parentModule);
127
- await (0, buildGraph_1.buildGraph)();
232
+ }
233
+ await this.apply(baseJson, { parent: parentName, delete: name }, parentName);
234
+ };
235
+ this.listVersions = (name) => {
236
+ const resolution = this.getResolution();
237
+ if (name) {
238
+ const entry = resolution[name];
239
+ if (!entry)
240
+ throw new errors_1.SVError('ADDON_NOT_FOUND', { name });
241
+ return versionUtil_1.versionUtil.sort(Object.keys(entry.versions));
242
+ }
243
+ return Object.fromEntries(Object.entries(resolution).map(([entryName, entry]) => [
244
+ entryName,
245
+ versionUtil_1.versionUtil.sort(Object.keys(entry.versions)),
246
+ ]));
128
247
  };
129
248
  // eslint-disable-next-line class-methods-use-this
130
249
  this.hasChanges = async (module) => {
131
250
  const dir = module
132
251
  ? path_1.default.join(runOptions_1.RunOptions.modulesDir, module)
133
252
  : runOptions_1.RunOptions.cwd;
134
- /* Сначала дешёвая проверка рабочей копии; если чисто — смотрим,
135
- * нет ли незапушенных коммитов (идёт fetch в remote) */
136
- if (await git_1.git.hasChanges(dir))
253
+ if (await git_1.git.local.hasChanges(dir))
137
254
  return true;
138
- return git_1.git.hasUnpushedCommits(dir);
255
+ return git_1.git.local.hasUnpushedCommits(dir);
139
256
  };
140
257
  // eslint-disable-next-line class-methods-use-this
141
258
  this.hasUncommittedChanges = async (module) => {
142
259
  const dir = module
143
260
  ? path_1.default.join(runOptions_1.RunOptions.modulesDir, module)
144
261
  : runOptions_1.RunOptions.cwd;
145
- return git_1.git.hasChanges(dir);
262
+ return git_1.git.local.hasChanges(dir);
146
263
  };
147
264
  // eslint-disable-next-line class-methods-use-this
148
265
  this.currentVersion = async (module) => {
149
266
  const dir = module
150
267
  ? path_1.default.join(runOptions_1.RunOptions.modulesDir, module)
151
268
  : runOptions_1.RunOptions.cwd;
152
- const tags = await git_1.git.tagsAtHead(dir);
269
+ const tags = await git_1.git.local.tagsAtHead(dir);
153
270
  return versionUtil_1.versionUtil.latest(tags) || null;
154
271
  };
155
272
  // eslint-disable-next-line class-methods-use-this
@@ -157,7 +274,7 @@ class SV {
157
274
  const dir = module
158
275
  ? path_1.default.join(runOptions_1.RunOptions.modulesDir, module)
159
276
  : runOptions_1.RunOptions.cwd;
160
- const versions = await git_1.git.listTags(dir);
277
+ const versions = await git_1.git.local.listTags(dir);
161
278
  return versionUtil_1.versionUtil.latest(versions) || '0.0.0';
162
279
  };
163
280
  // eslint-disable-next-line class-methods-use-this
@@ -165,40 +282,31 @@ class SV {
165
282
  const dir = module
166
283
  ? path_1.default.join(runOptions_1.RunOptions.modulesDir, module)
167
284
  : runOptions_1.RunOptions.cwd;
168
- return git_1.git.getRemote(dir);
285
+ return git_1.git.local.getRemote(dir);
169
286
  };
170
287
  this.isPublished = async (module) => {
171
288
  const dir = module
172
289
  ? path_1.default.join(runOptions_1.RunOptions.modulesDir, module)
173
290
  : runOptions_1.RunOptions.cwd;
174
- if (!await git_1.git.isGitRepo(dir))
291
+ if (!await git_1.git.local.isGitRepo(dir))
175
292
  return false;
176
293
  return !!(await this.getRemote(module));
177
294
  };
178
- /*
179
- * Remote-ветка впереди локальной (fetch + rev-list HEAD..@{u}).
180
- * Нет репозитория/remote/upstream — обновлений нет.
181
- */
182
295
  // eslint-disable-next-line class-methods-use-this
183
296
  this.isRemoteAhead = async (module) => {
184
297
  const dir = module
185
298
  ? path_1.default.join(runOptions_1.RunOptions.modulesDir, module)
186
299
  : runOptions_1.RunOptions.cwd;
187
- if (!await git_1.git.isGitRepo(dir))
300
+ if (!await git_1.git.local.isGitRepo(dir))
188
301
  return false;
189
- return git_1.git.isRemoteAhead(dir);
302
+ return git_1.git.local.isRemoteAhead(dir);
190
303
  };
191
- /*
192
- * Догоняем remote: pull --rebase --autostash. При конфликте всё
193
- * восстанавливается как было (rebase --abort + stash pop) и кидается
194
- * GIT_SYNC_CONFLICT — дальше возможен только ручной ребейз.
195
- */
196
304
  // eslint-disable-next-line class-methods-use-this
197
305
  this.pullRebaseAutostash = async (module) => {
198
306
  const dir = module
199
307
  ? path_1.default.join(runOptions_1.RunOptions.modulesDir, module)
200
308
  : runOptions_1.RunOptions.cwd;
201
- return git_1.git.pullRebaseAutostash(dir);
309
+ return git_1.git.local.pullRebaseAutostash(dir);
202
310
  };
203
311
  this.publish = async (opts) => {
204
312
  const { module, repoUrl, message, bump } = opts;
@@ -206,52 +314,44 @@ class SV {
206
314
  ? path_1.default.join(runOptions_1.RunOptions.modulesDir, module)
207
315
  : runOptions_1.RunOptions.cwd;
208
316
  if (!await this.isPublished(module)) {
209
- if (!repoUrl) {
317
+ if (!repoUrl)
210
318
  throw new git_1.GitError('GIT_REPO_URL_REQUIRED');
211
- }
212
- if (!await git_1.git.isGitRepo(dir)) {
213
- await git_1.git.init(dir);
214
- }
215
- await git_1.git.addRemote(dir, repoUrl);
319
+ if (!await git_1.git.local.isGitRepo(dir))
320
+ await git_1.git.local.init(dir);
321
+ await git_1.git.local.addRemote(dir, repoUrl);
216
322
  }
217
- /* Публикация не последней версии запрещена: HEAD на теге, отличном
218
- * от последнего, — обновлять такую базу можно только вручную */
219
323
  const currentTag = await this.currentVersion(module);
220
324
  const latestKnown = await this.latestVersion(module);
221
325
  if (currentTag && latestKnown && currentTag !== latestKnown) {
222
326
  throw new git_1.GitError('GIT_NOT_LATEST_VERSION');
223
327
  }
224
- /* Аддоны checkout'нуты на тег: поднимаем ветку до sync/commit,
225
- * иначе коммиты и push уйдут в detached HEAD */
226
- await git_1.git.ensureBranch(dir);
227
- if (await git_1.git.isRemoteAhead(dir)) {
228
- await git_1.git.pullRebaseAutostash(dir);
328
+ await git_1.git.local.ensureBranch(dir);
329
+ if (await git_1.git.local.isRemoteAhead(dir)) {
330
+ await git_1.git.local.pullRebaseAutostash(dir);
229
331
  }
230
- const dirty = await git_1.git.hasChanges(dir);
332
+ const dirty = await git_1.git.local.hasChanges(dir);
231
333
  const headTag = await this.currentVersion(module);
232
- /* Дерево чистое и HEAD уже отмечен версионным тегом:
233
- * коммитить и бампить нечего — просто доставляем ветку и тег на remote */
234
334
  if (!dirty && headTag) {
235
- await git_1.git.push(dir, headTag);
335
+ await git_1.git.local.push(dir, headTag);
236
336
  return headTag;
237
337
  }
238
338
  const next = versionUtil_1.versionUtil.bump(await this.latestVersion(module), bump);
239
- /* Фиксируем версию и в package.json, чтобы она не расходилась с git-тегом */
240
339
  const pkg = await pkgJSONManager_1.pkgJSONManager.read(module);
241
340
  if (pkg) {
242
341
  pkg.version = next;
243
342
  await pkgJSONManager_1.pkgJSONManager.write(pkg, module);
244
343
  }
245
- /* Перечитываем: запись версии в package.json сама по себе даёт изменения */
246
- if (await git_1.git.hasChanges(dir)) {
247
- await git_1.git.commitAll(dir, message || 'Update');
344
+ if (await git_1.git.local.hasChanges(dir)) {
345
+ await git_1.git.local.commitAll(dir, message || 'Update');
248
346
  }
249
- await git_1.git.addTag(dir, next);
250
- await git_1.git.push(dir, next);
347
+ await git_1.git.local.addTag(dir, next);
348
+ await git_1.git.local.push(dir, next);
251
349
  return next;
252
350
  };
253
351
  runOptions_1.RunOptions.cwd = projectDir;
254
- runOptions_1.RunOptions.modulesDir = modulesDir;
352
+ runOptions_1.RunOptions.modulesDir = modulesDir || DEFAULT_MODULES_DIR;
353
+ this.explicitModulesDir = modulesDir;
354
+ git_1.git.api.setToken(options.githubToken);
255
355
  }
256
356
  }
257
357
  exports.SV = SV;
@@ -1 +1 @@
1
- {"version":3,"file":"sv.js","sourceRoot":"","sources":["../../src/sv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sv.js","sourceRoot":"","sources":["../../src/sv.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { versionUtil } from './versionUtil';
2
+ export type { TVersionConstraint } from './versionUtil';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.versionUtil = void 0;
4
+ var versionUtil_1 = require("./versionUtil");
5
+ Object.defineProperty(exports, "versionUtil", { enumerable: true, get: function () { return versionUtil_1.versionUtil; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/versionUtil/index.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAAnC,0GAAA,WAAW,OAAA"}
@@ -0,0 +1,16 @@
1
+ export type TVersionConstraint = string;
2
+ export declare const versionUtil: {
3
+ normalizeConstraint: (constraint?: string) => string | null;
4
+ validate: (value: string, range?: boolean) => boolean;
5
+ compare: (a: string, b: string) => number;
6
+ satisfies: (version: string, constraint?: string) => boolean;
7
+ sort: (versions: string[]) => string[];
8
+ select: (versions: string[], constraints?: string[]) => string[];
9
+ latest: (versions: string[], constraints?: string[]) => string;
10
+ intersection: (...sets: string[][]) => string[];
11
+ union: (...sets: string[][]) => string[];
12
+ difference: (left: string[], right: string[]) => string[];
13
+ intersects: (left: string[], right: string[]) => boolean;
14
+ isSubset: (subset: string[], superset: string[]) => boolean;
15
+ bump: (version: string, kind: "release" | "minor" | "major") => string;
16
+ };