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