submodule-version 1.1.4 → 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.
- package/dist/index.d.ts +2 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/src/__tests__/parseGitUrl.test.d.ts +1 -0
- package/dist/src/__tests__/parseGitUrl.test.js +30 -0
- package/dist/src/__tests__/parseGitUrl.test.js.map +1 -0
- package/dist/src/__tests__/versionUtil.test.d.ts +1 -0
- package/dist/src/__tests__/versionUtil.test.js +51 -0
- package/dist/src/__tests__/versionUtil.test.js.map +1 -0
- package/dist/src/buildGraph.d.ts +1 -0
- package/dist/src/buildGraph.js +73 -0
- package/dist/src/buildGraph.js.map +1 -0
- package/dist/src/config.d.ts +4 -0
- package/dist/src/config.js +8 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/git.d.ts +5 -0
- package/dist/src/git.js +49 -0
- package/dist/src/git.js.map +1 -0
- package/dist/src/install.d.ts +1 -0
- package/dist/src/install.js +43 -0
- package/dist/src/install.js.map +1 -0
- package/dist/src/log.d.ts +4 -0
- package/dist/src/log.js +20 -0
- package/dist/src/log.js.map +1 -0
- package/dist/src/parseGitUrl.d.ts +7 -0
- package/dist/src/parseGitUrl.js +26 -0
- package/dist/src/parseGitUrl.js.map +1 -0
- package/dist/src/pkgJsonUtil.d.ts +5 -0
- package/dist/src/pkgJsonUtil.js +38 -0
- package/dist/src/pkgJsonUtil.js.map +1 -0
- package/dist/src/submoduleVersion.d.ts +1 -0
- package/dist/src/submoduleVersion.js +28 -0
- package/dist/src/submoduleVersion.js.map +1 -0
- package/dist/src/versionUtil.d.ts +12 -0
- package/dist/src/versionUtil.js +68 -0
- package/dist/src/versionUtil.js.map +1 -0
- package/eslint.config.js +5 -0
- package/index-dev.ts +6 -0
- package/index.ts +3 -0
- package/jest.config.js +9 -0
- package/package.json +14 -4
- package/src/__tests__/parseGitUrl.test.ts +33 -0
- package/src/__tests__/versionUtil.test.ts +60 -0
- package/src/buildGraph.ts +98 -0
- package/src/config.ts +4 -0
- package/src/git.ts +46 -0
- package/src/install.ts +47 -0
- package/src/log.ts +16 -0
- package/src/parseGitUrl.ts +31 -0
- package/src/pkgJsonUtil.ts +36 -0
- package/src/submoduleVersion.ts +34 -0
- package/src/versionUtil.ts +82 -0
- package/tsconfig.json +30 -0
- package/index.js +0 -177
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAEA,kCAAgC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const parseGitUrl_1 = require("../parseGitUrl");
|
|
4
|
+
describe('Parse git url', () => {
|
|
5
|
+
it('Without version', () => {
|
|
6
|
+
const url = 'git@github.com:Casique-front/audio-mixer.git';
|
|
7
|
+
expect((0, parseGitUrl_1.parseGitUrl)(url)).toEqual({
|
|
8
|
+
url: 'git@github.com:Casique-front/audio-mixer.git',
|
|
9
|
+
version: undefined,
|
|
10
|
+
name: 'audio-mixer',
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
it('With version', () => {
|
|
14
|
+
const url = 'git@github.com:Casique-front/audio-mixer.git@1.0.1';
|
|
15
|
+
expect((0, parseGitUrl_1.parseGitUrl)(url)).toEqual({
|
|
16
|
+
url: 'git@github.com:Casique-front/audio-mixer.git',
|
|
17
|
+
version: '1.0.1',
|
|
18
|
+
name: 'audio-mixer',
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
it('Wrong string', () => {
|
|
22
|
+
const url = 'xxx@version';
|
|
23
|
+
expect((0, parseGitUrl_1.parseGitUrl)(url)).toEqual({
|
|
24
|
+
url: 'xxx@version',
|
|
25
|
+
version: null,
|
|
26
|
+
name: '',
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=parseGitUrl.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseGitUrl.test.js","sourceRoot":"","sources":["../../../src/__tests__/parseGitUrl.test.ts"],"names":[],"mappings":";;AAAA,gDAA6C;AAE7C,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACzB,MAAM,GAAG,GAAG,8CAA8C,CAAC;QAE3D,MAAM,CAAC,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,GAAG,EAAE,8CAA8C;YACnD,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QACtB,MAAM,GAAG,GAAG,oDAAoD,CAAC;QAEjE,MAAM,CAAC,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,GAAG,EAAE,8CAA8C;YACnD,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QACtB,MAAM,GAAG,GAAG,aAAa,CAAC;QAE1B,MAAM,CAAC,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/B,GAAG,EAAE,aAAa;YAClB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const versionUtil_1 = require("../versionUtil");
|
|
4
|
+
describe('Latest', () => {
|
|
5
|
+
it('Single version', () => {
|
|
6
|
+
const v = versionUtil_1.versionUtil.latest(['1.0.0']);
|
|
7
|
+
expect(v).toBe('1.0.0');
|
|
8
|
+
});
|
|
9
|
+
it('Path versions', () => {
|
|
10
|
+
const v = versionUtil_1.versionUtil.latest(['^1.0.0', '^1.0.1']);
|
|
11
|
+
expect(v).toBe('1.0.1');
|
|
12
|
+
});
|
|
13
|
+
it('Minor versions', () => {
|
|
14
|
+
const v = versionUtil_1.versionUtil.latest(['^1.1.0', '^1.0.23']);
|
|
15
|
+
expect(v).toBe('1.1.0');
|
|
16
|
+
});
|
|
17
|
+
it('Major versions', () => {
|
|
18
|
+
const v = versionUtil_1.versionUtil.latest(['^2.0.0', '^1.10.23']);
|
|
19
|
+
expect(v).toBe('2.0.0');
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('Validate', () => {
|
|
23
|
+
it('Pass', () => {
|
|
24
|
+
expect(versionUtil_1.versionUtil.validate('')).toBe(false);
|
|
25
|
+
expect(versionUtil_1.versionUtil.validate('123')).toBe(false);
|
|
26
|
+
expect(versionUtil_1.versionUtil.validate('1.2.3')).toBe(true);
|
|
27
|
+
expect(versionUtil_1.versionUtil.validate('1.2.3', true)).toBe(true);
|
|
28
|
+
expect(versionUtil_1.versionUtil.validate('^1.2.3', true)).toBe(true);
|
|
29
|
+
expect(versionUtil_1.versionUtil.validate('^1.2.3')).toBe(false);
|
|
30
|
+
expect(versionUtil_1.versionUtil.validate('*')).toBe(false);
|
|
31
|
+
expect(versionUtil_1.versionUtil.validate('*', true)).toBe(true);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
describe('Compare', () => {
|
|
35
|
+
it('Major mode', () => {
|
|
36
|
+
expect(versionUtil_1.versionUtil.compare([1, 2, 3], [1, 3, 4], 0)).toBe(true);
|
|
37
|
+
expect(versionUtil_1.versionUtil.compare([1, 3, 3], [1, 2, 4], 0)).toBe(false);
|
|
38
|
+
expect(versionUtil_1.versionUtil.compare([1, 2, 3], [1, 2, 4], 1)).toBe(true);
|
|
39
|
+
expect(versionUtil_1.versionUtil.compare([1, 2, 4], [1, 2, 3], 1)).toBe(false);
|
|
40
|
+
});
|
|
41
|
+
it('Minor mode', () => {
|
|
42
|
+
expect(versionUtil_1.versionUtil.compare([1, 2, 3], [1, 2, 4], 1)).toBe(true);
|
|
43
|
+
expect(versionUtil_1.versionUtil.compare([1, 2, 4], [1, 2, 3], 1)).toBe(false);
|
|
44
|
+
});
|
|
45
|
+
it('Path mode', () => {
|
|
46
|
+
expect(versionUtil_1.versionUtil.compare([1, 2, 3], [1, 2, 3], 2)).toBe(true);
|
|
47
|
+
expect(versionUtil_1.versionUtil.compare([1, 2, 4], [1, 2, 3], 2)).toBe(false);
|
|
48
|
+
expect(versionUtil_1.versionUtil.compare([1, 2, 3], [1, 2, 4], 2)).toBe(false);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=versionUtil.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionUtil.test.js","sourceRoot":"","sources":["../../../src/__tests__/versionUtil.test.ts"],"names":[],"mappings":";;AAAA,gDAA6C;AAE7C,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,GAAG,yBAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAExC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,MAAM,CAAC,GAAG,yBAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAEnD,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,GAAG,yBAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;QAEpD,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,GAAG,yBAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;QAErD,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACd,MAAM,CAAC,yBAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,yBAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,CAAC,yBAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,yBAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,yBAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,CAAC,yBAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,yBAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,yBAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;QACpB,MAAM,CAAC,yBAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,CAAC,yBAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,CAAC,yBAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,CAAC,yBAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;QACpB,MAAM,CAAC,yBAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,CAAC,yBAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;QACnB,MAAM,CAAC,yBAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,CAAC,yBAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,CAAC,yBAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const buildGraph: () => void | {};
|
|
@@ -0,0 +1,73 @@
|
|
|
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.buildGraph = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const pkgJsonUtil_1 = require("./pkgJsonUtil");
|
|
9
|
+
const log_1 = require("./log");
|
|
10
|
+
const git_1 = require("./git");
|
|
11
|
+
const parseGitUrl_1 = require("./parseGitUrl");
|
|
12
|
+
const versionUtil_1 = require("./versionUtil");
|
|
13
|
+
const buildGraph = () => {
|
|
14
|
+
const baseJson = pkgJsonUtil_1.pkgJsonUtil.read();
|
|
15
|
+
const baseTree = {};
|
|
16
|
+
if (!baseJson)
|
|
17
|
+
return log_1.log.error('Not a npm project');
|
|
18
|
+
if (!baseJson.sv)
|
|
19
|
+
return log_1.log.message('There is no dependencies');
|
|
20
|
+
const recursiveBuilder = (dependencies = {}, parent = '*') => {
|
|
21
|
+
Object.entries(dependencies).forEach(([url, version]) => {
|
|
22
|
+
const { name } = (0, parseGitUrl_1.parseGitUrl)(url);
|
|
23
|
+
const jsonPath = pkgJsonUtil_1.pkgJsonUtil.getPkgJsonPath(name);
|
|
24
|
+
if (!versionUtil_1.versionUtil.validate(version, true)) {
|
|
25
|
+
const em = `<${version}> for [${name}] in [${parent}]`;
|
|
26
|
+
return log_1.log.error('Unknown version', em);
|
|
27
|
+
}
|
|
28
|
+
if (!jsonPath) {
|
|
29
|
+
git_1.git.addSumbmodule(url);
|
|
30
|
+
}
|
|
31
|
+
const exists = baseTree[name] || null;
|
|
32
|
+
const mJson = exists ? null : pkgJsonUtil_1.pkgJsonUtil.read(name);
|
|
33
|
+
if (!version)
|
|
34
|
+
return log_1.log.error('Module', name, 'not installed');
|
|
35
|
+
const meta = exists?.meta || { version: mJson.version, sv: mJson.sv };
|
|
36
|
+
const parents = exists?.parents || {};
|
|
37
|
+
baseTree[name] = {
|
|
38
|
+
meta,
|
|
39
|
+
parents: { ...parents, [parent]: version },
|
|
40
|
+
};
|
|
41
|
+
recursiveBuilder(meta.sv, name);
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
recursiveBuilder(baseJson.sv, baseJson.name);
|
|
45
|
+
const graph = Object.entries(baseTree).reduce((acc, [name, data]) => {
|
|
46
|
+
const versions = git_1.git.listVersions(name);
|
|
47
|
+
const { parents, meta } = data;
|
|
48
|
+
const used = Object.entries(parents).reduce((selective, [, v]) => (versionUtil_1.versionUtil.pick(selective, v)), versions);
|
|
49
|
+
if (!used.length) {
|
|
50
|
+
const longestVersion = Object.values(parents).reduce((len, v) => (v.length > len ? v.length : len), 0);
|
|
51
|
+
const formattedName = chalk_1.default.green.bold(name);
|
|
52
|
+
const baseMsg = `${chalk_1.default.red('Confilict')} for ${formattedName}:`;
|
|
53
|
+
const conflictMsg = Object.entries(parents).reduce((msg, [pName, v]) => {
|
|
54
|
+
const formatedV = chalk_1.default.bold.red(String(v).padEnd(longestVersion, ' '));
|
|
55
|
+
return [
|
|
56
|
+
...msg,
|
|
57
|
+
` - Version ${formatedV} used in ${chalk_1.default.green.bold(pName)}`,
|
|
58
|
+
];
|
|
59
|
+
}, [baseMsg]);
|
|
60
|
+
log_1.log.error(conflictMsg.join('\n'));
|
|
61
|
+
}
|
|
62
|
+
if (!used.includes(meta.version)) {
|
|
63
|
+
git_1.git.checkout(name, versionUtil_1.versionUtil.latest(used));
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
...acc,
|
|
67
|
+
[name]: { versions, parents, used, version: meta.version },
|
|
68
|
+
};
|
|
69
|
+
}, {});
|
|
70
|
+
return graph;
|
|
71
|
+
};
|
|
72
|
+
exports.buildGraph = buildGraph;
|
|
73
|
+
//# sourceMappingURL=buildGraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildGraph.js","sourceRoot":"","sources":["../../src/buildGraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";;;AAAa,QAAA,MAAM,GAAG;IACpB,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,QAAQ;CACd,CAAC"}
|
package/dist/src/git.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
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.git = void 0;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const config_1 = require("./config");
|
|
10
|
+
const log_1 = require("./log");
|
|
11
|
+
const parseGitUrl_1 = require("./parseGitUrl");
|
|
12
|
+
const versionUtil_1 = require("./versionUtil");
|
|
13
|
+
const addSumbmodule = (url) => {
|
|
14
|
+
const { name } = (0, parseGitUrl_1.parseGitUrl)(url);
|
|
15
|
+
const module = path_1.default.join(config_1.config.dir, name);
|
|
16
|
+
try {
|
|
17
|
+
(0, child_process_1.execSync)(`git submodule add ${url} ${module}`);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
log_1.log.error(url, 'Is not a git repo');
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const checkout = (url, version) => {
|
|
24
|
+
const { name } = (0, parseGitUrl_1.parseGitUrl)(url);
|
|
25
|
+
const module = path_1.default.join(config_1.config.dir, name);
|
|
26
|
+
try {
|
|
27
|
+
(0, child_process_1.execSync)(`git -C ${module} checkout ${version} -q`);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
log_1.log.error('Checkout failded');
|
|
31
|
+
}
|
|
32
|
+
;
|
|
33
|
+
};
|
|
34
|
+
const listVersions = (projectName) => {
|
|
35
|
+
const module = path_1.default.join(config_1.config.dir, projectName);
|
|
36
|
+
const res = (0, child_process_1.execSync)(`git -C ${module} tag -l`);
|
|
37
|
+
const tagList = res.toString().split(/\r?\n/);
|
|
38
|
+
return tagList.filter(tag => {
|
|
39
|
+
if (!tag)
|
|
40
|
+
return false;
|
|
41
|
+
return versionUtil_1.versionUtil.validate(tag);
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
exports.git = {
|
|
45
|
+
addSumbmodule,
|
|
46
|
+
checkout,
|
|
47
|
+
listVersions,
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/git.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAyC;AACzC,gDAAwB;AACxB,qCAAkC;AAClC,+BAA4B;AAC5B,+CAA4C;AAC5C,+CAA4C;AAE5C,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE;IACpC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAE3C,IAAI;QACF,IAAA,wBAAQ,EAAC,qBAAqB,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;KAChD;IAAC,MAAM;QACN,SAAG,CAAC,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;KACrC;AACH,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,OAAe,EAAE,EAAE;IAChD,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAE3C,IAAI;QACF,IAAA,wBAAQ,EAAC,UAAU,MAAM,aAAa,OAAO,KAAK,CAAC,CAAC;KACrD;IAAC,MAAM;QACN,SAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;KAC/B;IAAA,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAE,EAAE;IAC3C,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAAC,UAAU,MAAM,SAAS,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE9C,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QAC1B,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAEvB,OAAO,yBAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEW,QAAA,GAAG,GAAG;IACjB,aAAa;IACb,QAAQ;IACR,YAAY;CACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const install: (arg: any) => void;
|
|
@@ -0,0 +1,43 @@
|
|
|
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.install = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const parseGitUrl_1 = require("./parseGitUrl");
|
|
9
|
+
const pkgJsonUtil_1 = require("./pkgJsonUtil");
|
|
10
|
+
const log_1 = require("./log");
|
|
11
|
+
const git_1 = require("./git");
|
|
12
|
+
const versionUtil_1 = require("./versionUtil");
|
|
13
|
+
const buildGraph_1 = require("./buildGraph");
|
|
14
|
+
/* Yargs typed as any */
|
|
15
|
+
const install = (arg) => {
|
|
16
|
+
const { target } = arg;
|
|
17
|
+
const { url, version, name } = (0, parseGitUrl_1.parseGitUrl)(arg.url);
|
|
18
|
+
if (!name) {
|
|
19
|
+
return log_1.log.error(chalk_1.default.red.bold(url), '- is not a git url!');
|
|
20
|
+
}
|
|
21
|
+
const targetPkg = pkgJsonUtil_1.pkgJsonUtil.read(target);
|
|
22
|
+
let installedPkg = pkgJsonUtil_1.pkgJsonUtil.read(name);
|
|
23
|
+
if (!installedPkg) {
|
|
24
|
+
git_1.git.addSumbmodule(url);
|
|
25
|
+
installedPkg = pkgJsonUtil_1.pkgJsonUtil.read(name);
|
|
26
|
+
}
|
|
27
|
+
const versions = git_1.git.listVersions(name);
|
|
28
|
+
const latestVersion = versionUtil_1.versionUtil.latest(versions);
|
|
29
|
+
const requestedVersion = version || latestVersion;
|
|
30
|
+
if (!versions.includes(requestedVersion)) {
|
|
31
|
+
const styledName = `Package ${chalk_1.default.bold.green(name)}`;
|
|
32
|
+
const styledVer = chalk_1.default.bgRed.bold.white(` ${requestedVersion} `);
|
|
33
|
+
const errMsg = `does not contain version ${styledVer}.`;
|
|
34
|
+
const styledVList = chalk_1.default.bold.green(versions.join(', '));
|
|
35
|
+
const helpMsg = `Use one from [${styledVList}]`;
|
|
36
|
+
log_1.log.error(styledName, errMsg, helpMsg);
|
|
37
|
+
}
|
|
38
|
+
targetPkg.sv[url] = `^${requestedVersion}`;
|
|
39
|
+
pkgJsonUtil_1.pkgJsonUtil.write(targetPkg, target);
|
|
40
|
+
(0, buildGraph_1.buildGraph)();
|
|
41
|
+
};
|
|
42
|
+
exports.install = install;
|
|
43
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/install.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,+CAA4C;AAC5C,+CAA4C;AAC5C,+BAA4B;AAC5B,+BAA4B;AAC5B,+CAA4C;AAC5C,6CAA0C;AAO1C,wBAAwB;AACjB,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,EAAE;IAClC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAW,CAAC;IAC/B,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAA,yBAAW,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEpD,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,SAAG,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAC,CAAC;KAC9D;IAED,MAAM,SAAS,GAAG,yBAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,YAAY,GAAG,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE1C,IAAI,CAAC,YAAY,EAAE;QACjB,SAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACvB,YAAY,GAAG,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACvC;IAED,MAAM,QAAQ,GAAG,SAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,yBAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,gBAAgB,GAAG,OAAO,IAAI,aAAa,CAAC;IAElD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QACxC,MAAM,UAAU,GAAG,WAAW,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,SAAS,GAAG,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,4BAA4B,SAAS,GAAG,CAAC;QACxD,MAAM,WAAW,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,iBAAiB,WAAW,GAAG,CAAC;QAChD,SAAG,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;KACxC;IAED,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAC3C,yBAAW,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACrC,IAAA,uBAAU,GAAE,CAAC;AACf,CAAC,CAAC;AAhCW,QAAA,OAAO,WAgClB"}
|
package/dist/src/log.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
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.log = void 0;
|
|
7
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
8
|
+
const message = (...args) => {
|
|
9
|
+
// eslint-disable-next-line no-console
|
|
10
|
+
console.log(...args);
|
|
11
|
+
};
|
|
12
|
+
const error = (...args) => {
|
|
13
|
+
message(...args);
|
|
14
|
+
yargs_1.default.exit(1, new Error(args.join(' ')));
|
|
15
|
+
};
|
|
16
|
+
exports.log = {
|
|
17
|
+
message,
|
|
18
|
+
error,
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/log.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,MAAM,OAAO,GAAG,CAAC,GAAG,IAAc,EAAE,EAAE;IACpC,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,GAAG,IAAc,EAAE,EAAE;IAClC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACjB,eAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEW,QAAA,GAAG,GAAG;IACjB,OAAO;IACP,KAAK;CACN,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseGitUrl = void 0;
|
|
4
|
+
const PARSE_REGEX = /^(?<url>.*\.git)(@(?<version>.*))?$/;
|
|
5
|
+
const NAME_REGEX = /\/(?<name>.*)\.git/;
|
|
6
|
+
const makeEmptyObject = (url) => ({
|
|
7
|
+
name: '',
|
|
8
|
+
url,
|
|
9
|
+
version: null,
|
|
10
|
+
});
|
|
11
|
+
const parseGitUrl = (url) => {
|
|
12
|
+
const { groups } = PARSE_REGEX.exec(url) || {};
|
|
13
|
+
if (!groups || !groups.url)
|
|
14
|
+
return makeEmptyObject(url);
|
|
15
|
+
const { groups: nameGroups } = NAME_REGEX.exec(url) || {};
|
|
16
|
+
const { name } = nameGroups || {};
|
|
17
|
+
if (!name)
|
|
18
|
+
return makeEmptyObject(url);
|
|
19
|
+
return {
|
|
20
|
+
url: groups.url,
|
|
21
|
+
version: groups.version,
|
|
22
|
+
name,
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
exports.parseGitUrl = parseGitUrl;
|
|
26
|
+
//# sourceMappingURL=parseGitUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseGitUrl.js","sourceRoot":"","sources":["../../src/parseGitUrl.ts"],"names":[],"mappings":";;;AAMA,MAAM,WAAW,GAAG,qCAAqC,CAAC;AAC1D,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,EAAE,EAAE;IACR,GAAG;IACH,OAAO,EAAE,IAAI;CACd,CAAC,CAAC;AAEI,MAAM,WAAW,GAAG,CAAC,GAAW,EAAgB,EAAE;IACvD,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAE/C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG;QAAE,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAExD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;IAElC,IAAI,CAAC,IAAI;QAAE,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;IAEvC,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI;KACL,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,WAAW,eAetB"}
|
|
@@ -0,0 +1,38 @@
|
|
|
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.pkgJsonUtil = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const config_1 = require("./config");
|
|
10
|
+
const JSON_NAME = 'package.json';
|
|
11
|
+
const getPkgJsonPath = (name) => {
|
|
12
|
+
const folder = name ? [config_1.config.dir, name] : [];
|
|
13
|
+
const jsonPath = path_1.default.join(process.cwd(), ...folder, JSON_NAME);
|
|
14
|
+
const isJsonExists = fs_1.default.existsSync(jsonPath);
|
|
15
|
+
if (!isJsonExists)
|
|
16
|
+
return null;
|
|
17
|
+
return jsonPath;
|
|
18
|
+
};
|
|
19
|
+
const read = (name) => {
|
|
20
|
+
const jsonPath = getPkgJsonPath(name);
|
|
21
|
+
if (!jsonPath)
|
|
22
|
+
return null;
|
|
23
|
+
const jsonString = fs_1.default.readFileSync(jsonPath, 'utf-8');
|
|
24
|
+
return JSON.parse(jsonString);
|
|
25
|
+
};
|
|
26
|
+
const write = (data, name) => {
|
|
27
|
+
const jsonPath = getPkgJsonPath(name);
|
|
28
|
+
if (!jsonPath)
|
|
29
|
+
return null;
|
|
30
|
+
fs_1.default.writeFileSync(jsonPath, JSON.stringify(data, null, 2));
|
|
31
|
+
};
|
|
32
|
+
exports.pkgJsonUtil = {
|
|
33
|
+
getPkgJsonPath,
|
|
34
|
+
read,
|
|
35
|
+
write,
|
|
36
|
+
};
|
|
37
|
+
module.exports = { pkgJsonUtil: exports.pkgJsonUtil };
|
|
38
|
+
//# sourceMappingURL=pkgJsonUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pkgJsonUtil.js","sourceRoot":"","sources":["../../src/pkgJsonUtil.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,qCAAkC;AAElC,MAAM,SAAS,GAAG,cAAc,CAAC;AAEjC,MAAM,cAAc,GAAG,CAAC,IAAa,EAAE,EAAE;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,eAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,SAAS,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAE/B,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,IAAa,EAAE,EAAE;IAC7B,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,UAAU,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEtD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,IAAa,EAAE,EAAE;IAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEW,QAAA,WAAW,GAAG;IACzB,cAAc;IACd,IAAI;IACJ,KAAK;CACN,CAAC;AAEF,MAAM,CAAC,OAAO,GAAG,EAAE,WAAW,EAAX,mBAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
7
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
8
|
+
const buildGraph_1 = require("./buildGraph");
|
|
9
|
+
const install_1 = require("./install");
|
|
10
|
+
const log_1 = require("./log");
|
|
11
|
+
const mainProcess = () => {
|
|
12
|
+
(0, buildGraph_1.buildGraph)();
|
|
13
|
+
log_1.log.message(chalk_1.default.green.bold('Everything is up to date!🔥'));
|
|
14
|
+
};
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
16
|
+
yargs_1.default.scriptName('sv')
|
|
17
|
+
.usage('$0 <cmd> [args]')
|
|
18
|
+
.command(['validate', '$0', 'v'], 'Validate and install modules', () => { }, mainProcess)
|
|
19
|
+
.command(['install <url> [target]', 'i'], 'Install new submodule', y => y.positional('url', {
|
|
20
|
+
type: 'string',
|
|
21
|
+
describe: 'Git submodule url',
|
|
22
|
+
}).positional('target', {
|
|
23
|
+
type: 'string',
|
|
24
|
+
describe: 'Target module name',
|
|
25
|
+
}), install_1.install)
|
|
26
|
+
.help()
|
|
27
|
+
.argv;
|
|
28
|
+
//# sourceMappingURL=submoduleVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submoduleVersion.js","sourceRoot":"","sources":["../../src/submoduleVersion.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,kDAA0B;AAC1B,6CAA0C;AAC1C,uCAAoC;AACpC,+BAA4B;AAE5B,MAAM,WAAW,GAAG,GAAG,EAAE;IACvB,IAAA,uBAAU,GAAE,CAAC;IACb,SAAG,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF,oEAAoE;AACpE,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC;KACnB,KAAK,CAAC,iBAAiB,CAAC;KACxB,OAAO,CACN,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,EACvB,8BAA8B,EAC9B,GAAG,EAAE,GAAE,CAAC,EACR,WAAW,CACZ;KACA,OAAO,CACN,CAAC,wBAAwB,EAAE,GAAG,CAAC,EAC/B,uBAAuB,EACvB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE;IACvB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,mBAAmB;CAC9B,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE;IACtB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,oBAAoB;CAC/B,CAAC,EACF,iBAAO,CACR;KACA,IAAI,EAAE;KACN,IAAI,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare enum ComapreMode {
|
|
2
|
+
major = 0,
|
|
3
|
+
minor = 1,
|
|
4
|
+
path = 2
|
|
5
|
+
}
|
|
6
|
+
export declare const versionUtil: {
|
|
7
|
+
compare: (baseVer: number[], actualVer: number[], compareMode: ComapreMode) => any;
|
|
8
|
+
pick: (allVersions: string[], v: string) => string[];
|
|
9
|
+
validate: (v: string, relative?: boolean) => boolean;
|
|
10
|
+
latest: (versions: string[]) => string;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.versionUtil = void 0;
|
|
4
|
+
var ComapreMode;
|
|
5
|
+
(function (ComapreMode) {
|
|
6
|
+
ComapreMode[ComapreMode["major"] = 0] = "major";
|
|
7
|
+
ComapreMode[ComapreMode["minor"] = 1] = "minor";
|
|
8
|
+
ComapreMode[ComapreMode["path"] = 2] = "path";
|
|
9
|
+
})(ComapreMode || (ComapreMode = {}));
|
|
10
|
+
const cleanup = (v) => v.replace(/^\^?~?/, '');
|
|
11
|
+
const toArray = (v) => (cleanup(v).split('.').map(Number));
|
|
12
|
+
const mode = (v) => {
|
|
13
|
+
// Minor and path can be vary. Only major should be same
|
|
14
|
+
if (v.startsWith('^'))
|
|
15
|
+
return ComapreMode.major;
|
|
16
|
+
// Path can be vary. Major and minor should be same
|
|
17
|
+
if (v.startsWith('~'))
|
|
18
|
+
return ComapreMode.minor;
|
|
19
|
+
// Everything should be same
|
|
20
|
+
return ComapreMode.path;
|
|
21
|
+
};
|
|
22
|
+
const compare = (baseVer, actualVer, compareMode) => {
|
|
23
|
+
const val = new Array(3).fill(null).reduce((acc, _, i) => {
|
|
24
|
+
// Alrady is not compatible
|
|
25
|
+
if (!acc)
|
|
26
|
+
return acc;
|
|
27
|
+
// Mode not include comparation, version should be same or hier
|
|
28
|
+
if (i > compareMode)
|
|
29
|
+
return actualVer[i] >= baseVer[i];
|
|
30
|
+
return baseVer[i] === actualVer[i];
|
|
31
|
+
}, true);
|
|
32
|
+
return val;
|
|
33
|
+
};
|
|
34
|
+
const pick = (allVersions, v) => {
|
|
35
|
+
if (v === '*')
|
|
36
|
+
return allVersions;
|
|
37
|
+
const vMode = mode(v);
|
|
38
|
+
const vArr = toArray(v);
|
|
39
|
+
return allVersions.filter(av => {
|
|
40
|
+
const avArr = toArray(av);
|
|
41
|
+
return compare(vArr, avArr, vMode);
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
const validate = (v, relative) => {
|
|
45
|
+
if (relative) {
|
|
46
|
+
if (v === '*')
|
|
47
|
+
return true;
|
|
48
|
+
return /^[\^$]?\d+\.\d+\.\d+$/.test(v);
|
|
49
|
+
}
|
|
50
|
+
return /^\d+\.\d+\.\d+$/.test(v);
|
|
51
|
+
};
|
|
52
|
+
const latest = (versions) => (cleanup([...versions].sort((v1, v2) => {
|
|
53
|
+
const v1Arr = toArray(v1);
|
|
54
|
+
const v2Arr = toArray(v2);
|
|
55
|
+
return v1Arr.reduce((acc, v1Val, i) => {
|
|
56
|
+
if (acc !== 0)
|
|
57
|
+
return acc;
|
|
58
|
+
const v2Val = v2Arr[i];
|
|
59
|
+
return v2Val - v1Val;
|
|
60
|
+
}, 0);
|
|
61
|
+
})[0]));
|
|
62
|
+
exports.versionUtil = {
|
|
63
|
+
compare,
|
|
64
|
+
pick,
|
|
65
|
+
validate,
|
|
66
|
+
latest,
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=versionUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versionUtil.js","sourceRoot":"","sources":["../../src/versionUtil.ts"],"names":[],"mappings":"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"}
|
package/eslint.config.js
CHANGED
package/index-dev.ts
ADDED
package/index.ts
ADDED
package/jest.config.js
ADDED