build-strap 4.0.0-dev.46 → 4.0.0-dev.5
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 +3 -34
- package/ant.d.ts +19 -0
- package/ant.js +12 -37
- package/cert.d.ts +12 -0
- package/cert.js +89 -151
- package/clean.d.ts +4 -0
- package/clean.js +7 -16
- package/copy.d.ts +7 -0
- package/copy.js +49 -76
- package/cp.d.ts +17 -0
- package/cp.js +85 -170
- package/docker.container.d.ts +73 -0
- package/docker.container.js +219 -362
- package/docker.d.ts +68 -0
- package/docker.js +167 -344
- package/docker.network.d.ts +42 -0
- package/docker.network.js +69 -144
- package/docker.volume.d.ts +26 -0
- package/docker.volume.js +52 -126
- package/dockerCleanup.d.ts +38 -0
- package/dockerCleanup.js +66 -141
- package/dockerCompose.d.ts +154 -0
- package/dockerCompose.js +400 -727
- package/fs.d.ts +5 -0
- package/fs.js +38 -95
- package/git.d.ts +9 -0
- package/git.js +19 -30
- package/index.d.ts +20 -0
- package/index.js +20 -27
- package/maps.d.ts +33 -0
- package/maps.js +16 -87
- package/npm.d.ts +48 -0
- package/npm.js +131 -135
- package/package.json +23 -19
- package/pkg.d.ts +39 -0
- package/pkg.js +26 -74
- package/publish.d.ts +27 -0
- package/publish.js +52 -140
- package/run.d.ts +13 -0
- package/run.js +39 -85
- package/tgz.d.ts +13 -0
- package/tgz.js +61 -96
- package/version.d.ts +34 -0
- package/version.js +86 -128
- package/yarn.d.ts +44 -0
- package/yarn.js +150 -119
- package/ant.js.flow +0 -42
- package/artifactory.js +0 -617
- package/artifactory.js.flow +0 -616
- package/cert.conf +0 -20
- package/cert.js.flow +0 -152
- package/clean.js.flow +0 -19
- package/copy.js.flow +0 -79
- package/cp.js.flow +0 -172
- package/docker.container.js.flow +0 -389
- package/docker.js.flow +0 -364
- package/docker.network.js.flow +0 -159
- package/docker.volume.js.flow +0 -136
- package/dockerCleanup.js.flow +0 -151
- package/dockerCompose.js.flow +0 -765
- package/flow.js +0 -21
- package/flow.js.flow +0 -20
- package/fs.js.flow +0 -96
- package/git.js.flow +0 -34
- package/hg.js +0 -35
- package/hg.js.flow +0 -34
- package/index.js.flow +0 -26
- package/inline-resources.js +0 -158
- package/inline-resources.js.flow +0 -157
- package/maps.js.flow +0 -111
- package/npm.js.flow +0 -144
- package/pkg.js.flow +0 -80
- package/publish.js.flow +0 -144
- package/run.js.flow +0 -89
- package/src/ant.js +0 -42
- package/src/artifactory.js +0 -616
- package/src/cert.conf +0 -20
- package/src/cert.js +0 -152
- package/src/clean.js +0 -19
- package/src/copy.js +0 -79
- package/src/cp.js +0 -172
- package/src/docker.container.js +0 -389
- package/src/docker.js +0 -364
- package/src/docker.network.js +0 -159
- package/src/docker.volume.js +0 -136
- package/src/dockerCleanup.js +0 -151
- package/src/dockerCompose.js +0 -765
- package/src/flow.js +0 -20
- package/src/fs.js +0 -96
- package/src/git.js +0 -34
- package/src/hg.js +0 -34
- package/src/index.js +0 -26
- package/src/inline-resources.js +0 -157
- package/src/maps.js +0 -111
- package/src/npm.js +0 -144
- package/src/pkg.js +0 -80
- package/src/publish.js +0 -144
- package/src/run.js +0 -89
- package/src/test.js +0 -55
- package/src/tgz.js +0 -101
- package/src/version.js +0 -142
- package/src/yarn.js +0 -123
- package/test.js +0 -56
- package/test.js.flow +0 -55
- package/tgz.js.flow +0 -101
- package/version.js.flow +0 -142
- package/yarn.js.flow +0 -123
package/version.js
CHANGED
|
@@ -1,143 +1,101 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
function getBuild() {
|
|
9
|
-
const arg = process.argv.find((el) => /^--buildNum=\d+$/.test(el));
|
|
10
|
-
return arg && arg.substr(11) || process.env.BUILD_NUMBER || '0';
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { gitInfo } from './git.js';
|
|
3
|
+
import { getCfg, getPkg } from './pkg.js';
|
|
4
|
+
import { buildLog } from './run.js';
|
|
5
|
+
export function getBuild() {
|
|
6
|
+
const arg = process.argv.find((el) => /^--buildNum=\d+$/.test(el));
|
|
7
|
+
return (arg && arg.substring(11)) || process.env.BUILD_NUMBER || '0';
|
|
11
8
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return releaseBranch || 'master';
|
|
9
|
+
export function getReleaseBranch() {
|
|
10
|
+
const { releaseBranch } = getCfg();
|
|
11
|
+
return releaseBranch || 'master';
|
|
16
12
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
13
|
+
var RepoType;
|
|
14
|
+
(function (RepoType) {
|
|
15
|
+
RepoType["git"] = "git";
|
|
16
|
+
RepoType["hg"] = "hg";
|
|
17
|
+
RepoType["unknown"] = "unknown";
|
|
18
|
+
})(RepoType || (RepoType = {}));
|
|
19
|
+
export async function getRepoType() {
|
|
20
|
+
const { repoType } = getCfg();
|
|
21
|
+
return (repoType ||
|
|
22
|
+
(fs.existsSync('./.git')
|
|
23
|
+
? RepoType.git
|
|
24
|
+
: fs.existsSync('./.hg')
|
|
25
|
+
? RepoType.hg
|
|
26
|
+
: RepoType.unknown));
|
|
30
27
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
await (0, _git.gitInfo)() :
|
|
42
|
-
repoType === 'hg' ?
|
|
43
|
-
await (0, _hg.hgInfo)() :
|
|
44
|
-
{};
|
|
45
|
-
if (!branch || !revision) {
|
|
46
|
-
throw new Error('Failed to parse branch and revision from source repo.');
|
|
47
|
-
}
|
|
48
|
-
return { branch, revision };
|
|
28
|
+
export async function getRepoInfo() {
|
|
29
|
+
const repoType = await getRepoType();
|
|
30
|
+
if (repoType !== RepoType.git) {
|
|
31
|
+
throw new Error(`Unsupported repo type: ${repoType}`);
|
|
32
|
+
}
|
|
33
|
+
const { branch, revision } = await gitInfo();
|
|
34
|
+
if (!branch || !revision) {
|
|
35
|
+
throw new Error('Failed to parse branch and revision from source repo.');
|
|
36
|
+
}
|
|
37
|
+
return { branch, revision };
|
|
49
38
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return devBranch || (await getRepoType()) === 'hg' ? 'default' : 'dev';
|
|
39
|
+
export async function getDevBranch() {
|
|
40
|
+
const { devBranch } = getCfg();
|
|
41
|
+
return devBranch || (await getRepoType()) === 'hg' ? 'default' : 'dev';
|
|
54
42
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
releaseOverride
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
releaseOverride :
|
|
63
|
-
process.argv.includes('--force-release-version') ?
|
|
64
|
-
true :
|
|
65
|
-
branch === getReleaseBranch();
|
|
43
|
+
export async function getIsRelease(passedBranch = null, releaseOverride = null) {
|
|
44
|
+
const branch = passedBranch || (await getRepoInfo()).branch;
|
|
45
|
+
return releaseOverride != null
|
|
46
|
+
? releaseOverride
|
|
47
|
+
: process.argv.includes('--force-release-version')
|
|
48
|
+
? true
|
|
49
|
+
: branch === getReleaseBranch();
|
|
66
50
|
}
|
|
67
|
-
|
|
68
51
|
let cacheVersion = true;
|
|
69
|
-
function useVersionCache(useCache = true) {
|
|
70
|
-
|
|
52
|
+
export function useVersionCache(useCache = true) {
|
|
53
|
+
cacheVersion = useCache;
|
|
71
54
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
55
|
let version = null;
|
|
88
|
-
async function getVersion(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
{
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
npm,
|
|
118
|
-
info };
|
|
119
|
-
|
|
120
|
-
if (logIt) {
|
|
121
|
-
(0, _run.buildLog)(`Building version ${info}`);
|
|
56
|
+
export async function getVersion(logIt = true, release = null) {
|
|
57
|
+
if (!cacheVersion || version == null) {
|
|
58
|
+
const { name, version: pkgVers } = getPkg();
|
|
59
|
+
const { branch, revision } = await getRepoInfo();
|
|
60
|
+
const [, major, minor, patch] = pkgVers.match(/^(\d+)\.(\d+)\.(\d+)$/) || [];
|
|
61
|
+
if (!major || !minor || !patch) {
|
|
62
|
+
throw new Error('Invalid version format in package.json');
|
|
63
|
+
}
|
|
64
|
+
const build = getBuild();
|
|
65
|
+
const isRelease = await getIsRelease(branch, release);
|
|
66
|
+
const short = `${major}.${minor}.${patch}`;
|
|
67
|
+
const npm = `${short}${isRelease ? '' : `-${branch}.${build}`}`;
|
|
68
|
+
const info = `${short}${isRelease ? `+${build}.` : `-${branch}.${build}+`}${revision}`;
|
|
69
|
+
version = {
|
|
70
|
+
branch,
|
|
71
|
+
build,
|
|
72
|
+
info,
|
|
73
|
+
isRelease,
|
|
74
|
+
major,
|
|
75
|
+
minor,
|
|
76
|
+
name,
|
|
77
|
+
npm,
|
|
78
|
+
patch,
|
|
79
|
+
revision,
|
|
80
|
+
short,
|
|
81
|
+
};
|
|
82
|
+
if (logIt) {
|
|
83
|
+
buildLog(`Building version ${info}`);
|
|
84
|
+
}
|
|
122
85
|
}
|
|
123
|
-
|
|
124
|
-
return version;
|
|
86
|
+
return version;
|
|
125
87
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
return `${name} v${info} | (c) ${today.getFullYear()} ${copyright} | built on ${today.toISOString()}`;
|
|
88
|
+
export async function getBanner() {
|
|
89
|
+
const { copyright = '' } = getCfg();
|
|
90
|
+
const { info, name } = await getVersion();
|
|
91
|
+
const today = new Date();
|
|
92
|
+
return `${name} v${info} | (c) ${today.getFullYear()} ${copyright} | built on ${today.toISOString()}`;
|
|
132
93
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
return `// This file is auto-generated
|
|
94
|
+
export async function getVersionCode() {
|
|
95
|
+
return `// This file is auto-generated
|
|
136
96
|
export const version = ${JSON.stringify(await getVersion(), null, 2)}`;
|
|
137
97
|
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
return `${branch}-${revision}-${build}`;
|
|
98
|
+
export async function getUniqueBuildTag() {
|
|
99
|
+
const { branch, build, revision } = await getVersion();
|
|
100
|
+
return `${branch}-${revision}-${build}`;
|
|
142
101
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9uLmpzIl0sIm5hbWVzIjpbImdldEJ1aWxkIiwiYXJnIiwicHJvY2VzcyIsImFyZ3YiLCJmaW5kIiwiZWwiLCJ0ZXN0Iiwic3Vic3RyIiwiZW52IiwiQlVJTERfTlVNQkVSIiwiZ2V0UmVsZWFzZUJyYW5jaCIsInJlbGVhc2VCcmFuY2giLCJnZXRSZXBvVHlwZSIsInJlcG9UeXBlIiwiZnMiLCJleGlzdHNTeW5jIiwiZ2V0UmVwb0luZm8iLCJicmFuY2giLCJyZXZpc2lvbiIsIkVycm9yIiwiZ2V0RGV2QnJhbmNoIiwiZGV2QnJhbmNoIiwiZ2V0SXNSZWxlYXNlIiwicGFzc2VkQnJhbmNoIiwicmVsZWFzZU92ZXJyaWRlIiwiaW5jbHVkZXMiLCJjYWNoZVZlcnNpb24iLCJ1c2VWZXJzaW9uQ2FjaGUiLCJ1c2VDYWNoZSIsInZlcnNpb24iLCJnZXRWZXJzaW9uIiwibG9nSXQiLCJyZWxlYXNlIiwicGtnVmVycyIsIm5hbWUiLCJtYWpvciIsIm1pbm9yIiwicGF0Y2giLCJtYXRjaCIsImJ1aWxkIiwiaXNSZWxlYXNlIiwic2hvcnQiLCJucG0iLCJpbmZvIiwiZ2V0QmFubmVyIiwiY29weXJpZ2h0IiwidG9kYXkiLCJEYXRlIiwiZ2V0RnVsbFllYXIiLCJ0b0lTT1N0cmluZyIsImdldFZlcnNpb25Db2RlIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldFVuaXF1ZUJ1aWxkVGFnIl0sIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Qjs7QUFFTyxTQUFTQSxRQUFULEdBQTRCO0FBQ2pDLFFBQU1DLEdBQUcsR0FBR0MsT0FBTyxDQUFDQyxJQUFSLENBQWFDLElBQWIsQ0FBa0IsQ0FBQ0MsRUFBRCxLQUFRLG1CQUFtQkMsSUFBbkIsQ0FBd0JELEVBQXhCLENBQTFCLENBQVo7QUFDQSxTQUFRSixHQUFHLElBQUlBLEdBQUcsQ0FBQ00sTUFBSixDQUFXLEVBQVgsQ0FBUixJQUEyQkwsT0FBTyxDQUFDTSxHQUFSLENBQVlDLFlB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LGVBQWV1QixpQkFBZixHQUFvRDtBQUN6RCxRQUFNLEVBQUVwQyxNQUFGLEVBQVVDLFFBQVYsRUFBb0JxQixLQUFwQixLQUE4QixNQUFNVCxVQUFVLEVBQXBEO0FBQ0EsU0FBUSxHQUFFYixNQUFPLElBQUdDLFFBQVMsSUFBR3FCLEtBQU0sRUFBdEM7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgZ2l0SW5mbyB9IGZyb20gJy4vZ2l0JztcbmltcG9ydCB7IGhnSW5mbyB9IGZyb20gJy4vaGcnO1xuaW1wb3J0IHsgZ2V0Q2ZnLCBnZXRQa2cgfSBmcm9tICcuL3BrZyc7XG5pbXBvcnQgeyBidWlsZExvZyB9IGZyb20gJy4vcnVuJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJ1aWxkKCk6IHN0cmluZyB7XG4gIGNvbnN0IGFyZyA9IHByb2Nlc3MuYXJndi5maW5kKChlbCkgPT4gL14tLWJ1aWxkTnVtPVxcZCskLy50ZXN0KGVsKSk7XG4gIHJldHVybiAoYXJnICYmIGFyZy5zdWJzdHIoMTEpKSB8fCBwcm9jZXNzLmVudi5CVUlMRF9OVU1CRVIgfHwgJzAnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVsZWFzZUJyYW5jaCgpOiBzdHJpbmcge1xuICBjb25zdCB7IHJlbGVhc2VCcmFuY2ggfSA9IGdldENmZygpO1xuICByZXR1cm4gcmVsZWFzZUJyYW5jaCB8fCAnbWFzdGVyJztcbn1cblxudHlwZSBSZXBvVHlwZSA9ICdnaXQnIHwgJ2hnJyB8ICd1bmtub3duJztcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSZXBvVHlwZSgpOiBQcm9taXNlPFJlcG9UeXBlPiB7XG4gIGNvbnN0IHsgcmVwb1R5cGUgfSA9IGdldENmZygpO1xuXG4gIHJldHVybiAoXG4gICAgcmVwb1R5cGUgfHxcbiAgICAoZnMuZXhpc3RzU3luYygnLi8uaGcnKVxuICAgICAgPyAnaGcnXG4gICAgICA6IGZzLmV4aXN0c1N5bmMoJy4vLmdpdCcpXG4gICAgICA/ICdnaXQnXG4gICAgICA6ICd1bmtub3duJylcbiAgKTtcbn1cblxudHlwZSBSZXBvSW5mbyA9IHtcbiAgYnJhbmNoOiBzdHJpbmcsXG4gIHJldmlzaW9uOiBzdHJpbmcsXG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UmVwb0luZm8oKTogUHJvbWlzZTxSZXBvSW5mbz4ge1xuICBjb25zdCByZXBvVHlwZSA9IGF3YWl0IGdldFJlcG9UeXBlKCk7XG4gIGNvbnN0IHsgYnJhbmNoLCByZXZpc2lvbiB9ID1cbiAgICByZXBvVHlwZSA9PT0gJ2dpdCdcbiAgICAgID8gYXdhaXQgZ2l0SW5mbygpXG4gICAgICA6IHJlcG9UeXBlID09PSAnaGcnXG4gICAgICA/IGF3YWl0IGhnSW5mbygpXG4gICAgICA6IHt9O1xuICBpZiAoIWJyYW5jaCB8fCAhcmV2aXNpb24pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBwYXJzZSBicmFuY2ggYW5kIHJldmlzaW9uIGZyb20gc291cmNlIHJlcG8uJyk7XG4gIH1cbiAgcmV0dXJuIHsgYnJhbmNoLCByZXZpc2lvbiB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RGV2QnJhbmNoKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHsgZGV2QnJhbmNoIH0gPSBnZXRDZmcoKTtcbiAgcmV0dXJuIGRldkJyYW5jaCB8fCAoYXdhaXQgZ2V0UmVwb1R5cGUoKSkgPT09ICdoZycgPyAnZGVmYXVsdCcgOiAnZGV2Jztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldElzUmVsZWFzZShcbiAgcGFzc2VkQnJhbmNoPzogP3N0cmluZyA9IG51bGwsXG4gIHJlbGVhc2VPdmVycmlkZT86ID9ib29sZWFuID0gbnVsbCxcbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBicmFuY2ggPSBwYXNzZWRCcmFuY2ggfHwgKGF3YWl0IGdldFJlcG9JbmZvKCkpLmJyYW5jaDtcbiAgcmV0dXJuIHJlbGVhc2VPdmVycmlkZSAhPSBudWxsXG4gICAgPyByZWxlYXNlT3ZlcnJpZGVcbiAgICA6IHByb2Nlc3MuYXJndi5pbmNsdWRlcygnLS1mb3JjZS1yZWxlYXNlLXZlcnNpb24nKVxuICAgID8gdHJ1ZVxuICAgIDogYnJhbmNoID09PSBnZXRSZWxlYXNlQnJhbmNoKCk7XG59XG5cbmxldCBjYWNoZVZlcnNpb24gPSB0cnVlO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVZlcnNpb25DYWNoZSh1c2VDYWNoZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgY2FjaGVWZXJzaW9uID0gdXNlQ2FjaGU7XG59XG5cbmV4cG9ydCB0eXBlIFZlcnNpb24gPSB7fFxuICBicmFuY2g6IHN0cmluZyxcbiAgYnVpbGQ6IHN0cmluZyxcbiAgaW5mbzogc3RyaW5nLFxuICBpc1JlbGVhc2U6IGJvb2xlYW4sXG4gIG1ham9yOiBzdHJpbmcsXG4gIG1pbm9yOiBzdHJpbmcsXG4gIG5hbWU6IHN0cmluZyxcbiAgbnBtOiBzdHJpbmcsXG4gIHBhdGNoOiBzdHJpbmcsXG4gIHJldmlzaW9uOiBzdHJpbmcsXG4gIHNob3J0OiBzdHJpbmcsXG58fTtcblxubGV0IHZlcnNpb24gPSBudWxsO1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFZlcnNpb24oXG4gIGxvZ0l0OiBib29sZWFuID0gdHJ1ZSxcbiAgcmVsZWFzZTogP2Jvb2xlYW4gPSBudWxsLFxuKTogUHJvbWlzZTxWZXJzaW9uPiB7XG4gIGlmICghY2FjaGVWZXJzaW9uIHx8IHZlcnNpb24gPT0gbnVsbCkge1xuICAgIGNvbnN0IHsgdmVyc2lvbjogcGtnVmVycywgbmFtZSB9ID0gZ2V0UGtnKCk7XG4gICAgY29uc3QgeyBicmFuY2gsIHJldmlzaW9uIH0gPSBhd2FpdCBnZXRSZXBvSW5mbygpO1xuICAgIGNvbnN0IFssIG1ham9yLCBtaW5vciwgcGF0Y2hdID1cbiAgICAgIHBrZ1ZlcnMubWF0Y2goL14oXFxkKylcXC4oXFxkKylcXC4oXFxkKykkLykgfHwgW107XG4gICAgaWYgKCFtYWpvciB8fCAhbWlub3IgfHwgIXBhdGNoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmVyc2lvbiBmb3JtYXQgaW4gcGFja2FnZS5qc29uJyk7XG4gICAgfVxuICAgIGNvbnN0IGJ1aWxkID0gZ2V0QnVpbGQoKTtcbiAgICBjb25zdCBpc1JlbGVhc2UgPSBhd2FpdCBnZXRJc1JlbGVhc2UoYnJhbmNoLCByZWxlYXNlKTtcbiAgICBjb25zdCBzaG9ydCA9IGAke21ham9yfS4ke21pbm9yfS4ke3BhdGNofWA7XG4gICAgY29uc3QgbnBtID0gYCR7c2hvcnR9JHtpc1JlbGVhc2UgPyAnJyA6IGAtJHticmFuY2h9LiR7YnVpbGR9YH1gO1xuICAgIGNvbnN0IGluZm8gPSBgJHtzaG9ydH0ke1xuICAgICAgaXNSZWxlYXNlID8gYCske2J1aWxkfS5gIDogYC0ke2JyYW5jaH0uJHtidWlsZH0rYFxuICAgIH0ke3JldmlzaW9ufWA7XG4gICAgdmVyc2lvbiA9IHtcbiAgICAgIG5hbWUsXG4gICAgICBicmFuY2gsXG4gICAgICByZXZpc2lvbixcbiAgICAgIG1ham9yLFxuICAgICAgbWlub3IsXG4gICAgICBwYXRjaCxcbiAgICAgIGJ1aWxkLFxuICAgICAgc2hvcnQsXG4gICAgICBpc1JlbGVhc2UsXG4gICAgICBucG0sXG4gICAgICBpbmZvLFxuICAgIH07XG4gICAgaWYgKGxvZ0l0KSB7XG4gICAgICBidWlsZExvZyhgQnVpbGRpbmcgdmVyc2lvbiAke2luZm99YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiB2ZXJzaW9uO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0QmFubmVyKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHsgY29weXJpZ2h0ID0gJycgfSA9IGdldENmZygpO1xuICBjb25zdCB7IGluZm8sIG5hbWUgfSA9IGF3YWl0IGdldFZlcnNpb24oKTtcbiAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICByZXR1cm4gYCR7bmFtZX0gdiR7aW5mb30gfCAoYykgJHt0b2RheS5nZXRGdWxsWWVhcigpfSAke2NvcHlyaWdodH0gfCBidWlsdCBvbiAke3RvZGF5LnRvSVNPU3RyaW5nKCl9YDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFZlcnNpb25Db2RlKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBgLy8gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkXG5leHBvcnQgY29uc3QgdmVyc2lvbiA9ICR7SlNPTi5zdHJpbmdpZnkoYXdhaXQgZ2V0VmVyc2lvbigpLCBudWxsLCAyKX1gO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VW5pcXVlQnVpbGRUYWcoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgeyBicmFuY2gsIHJldmlzaW9uLCBidWlsZCB9ID0gYXdhaXQgZ2V0VmVyc2lvbigpO1xuICByZXR1cm4gYCR7YnJhbmNofS0ke3JldmlzaW9ufS0ke2J1aWxkfWA7XG59XG4iXX0=
|
package/yarn.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { SpawnOptions, SpawnResult } from './cp.js';
|
|
2
|
+
import { NpmConfig, NpmCreds } from './npm.js';
|
|
3
|
+
export interface YarnOptions {
|
|
4
|
+
args?: string[];
|
|
5
|
+
spawnOptions?: SpawnOptions;
|
|
6
|
+
}
|
|
7
|
+
export declare function yarn({ args, spawnOptions, }?: YarnOptions): Promise<SpawnResult>;
|
|
8
|
+
export declare const yarnFiles: string[];
|
|
9
|
+
export interface YarnInstallOptions {
|
|
10
|
+
force?: boolean;
|
|
11
|
+
hashFilePath?: string;
|
|
12
|
+
nodeModulesPath?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function yarnInstall({ force, hashFilePath, nodeModulesPath, }?: YarnInstallOptions): Promise<void>;
|
|
15
|
+
export interface YarnUpgradeOptions {
|
|
16
|
+
/**
|
|
17
|
+
* `false` by default
|
|
18
|
+
* we assume any package with an explicit version shouldn't be touched
|
|
19
|
+
*/
|
|
20
|
+
all?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Use `yarn outdated` to find packages that should be upgraded
|
|
23
|
+
* May include breaking changes (major version changes)
|
|
24
|
+
*/
|
|
25
|
+
outdated?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare function yarnUpgrade({ all, outdated, }?: YarnUpgradeOptions): Promise<void>;
|
|
28
|
+
export interface YarnPublishOptions {
|
|
29
|
+
npmAuthToken?: string;
|
|
30
|
+
npmConfig?: NpmConfig;
|
|
31
|
+
npmCreds?: NpmCreds;
|
|
32
|
+
npmPath?: string;
|
|
33
|
+
publishPath?: string;
|
|
34
|
+
skipExisting?: boolean;
|
|
35
|
+
tag?: string;
|
|
36
|
+
workDir?: string;
|
|
37
|
+
}
|
|
38
|
+
export declare function yarnPublish({ npmAuthToken, npmConfig, npmCreds, npmPath, publishPath, skipExisting, tag, workDir: passedWorkDir, }?: YarnPublishOptions): Promise<boolean>;
|
|
39
|
+
interface YarnPackOptions {
|
|
40
|
+
destination: string;
|
|
41
|
+
workDir?: string;
|
|
42
|
+
}
|
|
43
|
+
export declare function yarnPack({ destination, workDir, }: YarnPackOptions): Promise<string>;
|
|
44
|
+
export {};
|
package/yarn.js
CHANGED
|
@@ -1,124 +1,155 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const spawnOpts = {
|
|
24
|
-
stdio: 'inherit',
|
|
25
|
-
shell: true,
|
|
26
|
-
env: process.env,
|
|
27
|
-
...spawnOptions };
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return (await _fsExtra.default.exists(localYarn)) ?
|
|
31
|
-
// prefer to use local copy of yarn
|
|
32
|
-
(0, _cp.spawnAdv)(process.execPath, [localYarn, ...args], spawnOpts) :
|
|
33
|
-
// fall back to globally installed yarn
|
|
34
|
-
(0, _cp.spawnAdv)('yarn', args, spawnOpts);
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { spawn } from './cp.js';
|
|
4
|
+
import { readDir } from './fs.js';
|
|
5
|
+
import { envNpmCreds, getNpmConfig, npmGetVersions, npmWriteRc, } from './npm.js';
|
|
6
|
+
import { getPkg, getPkgName } from './pkg.js';
|
|
7
|
+
import { buildLog } from './run.js';
|
|
8
|
+
import { generateFileHash } from './tgz.js';
|
|
9
|
+
import { getDevBranch, getVersion } from './version.js';
|
|
10
|
+
export async function yarn({ args = [], spawnOptions, } = {}) {
|
|
11
|
+
const localYarn = path.join(path.dirname(process.execPath), '/node_modules/yarn/bin/yarn.js');
|
|
12
|
+
const spawnOpts = {
|
|
13
|
+
env: process.env,
|
|
14
|
+
shell: true,
|
|
15
|
+
stdio: 'inherit',
|
|
16
|
+
...spawnOptions,
|
|
17
|
+
};
|
|
18
|
+
return (await fs.pathExists(localYarn))
|
|
19
|
+
? // prefer to use local copy of yarn
|
|
20
|
+
spawn(process.execPath, [localYarn, ...args], spawnOpts)
|
|
21
|
+
: // fall back to globally installed yarn
|
|
22
|
+
spawn('yarn', args, spawnOpts);
|
|
35
23
|
}
|
|
36
|
-
|
|
37
|
-
async function yarn(opts) {
|
|
38
|
-
const { args = [], spawnOptions } = opts || {};
|
|
39
|
-
return yarnAdv({
|
|
40
|
-
args,
|
|
41
|
-
spawnOptions: { rejectOnErrorCode: true, ...spawnOptions } }).
|
|
42
|
-
then((r) => r.output);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const yarnFiles = ['./package.json', './yarn.lock'];exports.yarnFiles = yarnFiles;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
24
|
+
export const yarnFiles = ['./package.json', './yarn.lock'];
|
|
53
25
|
// Smart yarn invocation, only if package changed
|
|
54
|
-
async function yarnInstall(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
} else {
|
|
75
|
-
(0, _run.buildLog)('node packages unchanged since last build, skipping yarn.');
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
await yarn();
|
|
79
|
-
await _fsExtra.default.writeFile(hashFilePath, currentHash);
|
|
26
|
+
export async function yarnInstall({ force = false, hashFilePath = './download/buildHash_yarn.md5', nodeModulesPath = './node_modules', } = {}) {
|
|
27
|
+
await fs.ensureDir(nodeModulesPath);
|
|
28
|
+
const currentHash = (await Promise.all(yarnFiles.map(async (f) => generateFileHash(f, 'md5')))).join('|');
|
|
29
|
+
await fs.ensureFile(hashFilePath);
|
|
30
|
+
const prevHash = await fs.readFile(hashFilePath, 'utf8');
|
|
31
|
+
if (currentHash !== prevHash) {
|
|
32
|
+
buildLog('node package definition changed since last build, invoking yarn.');
|
|
33
|
+
}
|
|
34
|
+
else if (!(await readDir(`${nodeModulesPath}/**/*.js`)).length) {
|
|
35
|
+
buildLog('node packages missing, invoking yarn.');
|
|
36
|
+
}
|
|
37
|
+
else if (force) {
|
|
38
|
+
buildLog('node packages unchanged, but yarn forced on command line...');
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
buildLog('node packages unchanged since last build, skipping yarn.');
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
await yarn();
|
|
45
|
+
await fs.writeFile(hashFilePath, currentHash);
|
|
80
46
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
map((l) => l.split(/\s+/)[0]).
|
|
110
|
-
filter(
|
|
111
|
-
(p) =>
|
|
112
|
-
all || !/^\d/.test(dependencies[p] || devDependencies[p] || ''));
|
|
113
|
-
|
|
114
|
-
if (packages.length) {
|
|
115
|
-
await yarn({ args: ['add', ...packages] });
|
|
116
|
-
(0, _run.buildLog)(`Upgraded: ${packages.join(', ')}`);
|
|
117
|
-
} else {
|
|
118
|
-
(0, _run.buildLog)('No eligible outdated packages');
|
|
119
|
-
}
|
|
47
|
+
export async function yarnUpgrade({ all = false, outdated = false, } = {}) {
|
|
48
|
+
if (outdated) {
|
|
49
|
+
const { code, stdout } = await yarn({
|
|
50
|
+
args: ['outdated'],
|
|
51
|
+
spawnOptions: {
|
|
52
|
+
captureOutput: true,
|
|
53
|
+
rejectOnErrorCode: false,
|
|
54
|
+
stdio: 'pipe',
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
if (code === 0) {
|
|
58
|
+
buildLog('No outdated packages.');
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
const { dependencies = {}, devDependencies = {} } = getPkg();
|
|
62
|
+
const packages = stdout
|
|
63
|
+
.split('\n')
|
|
64
|
+
.slice(5, -1)
|
|
65
|
+
.map((l) => l.split(/\s+/)[0])
|
|
66
|
+
.filter((p) => all || !/^\d/.test(dependencies[p] || devDependencies[p] || ''));
|
|
67
|
+
if (packages.length) {
|
|
68
|
+
await yarn({ args: ['add', ...packages] });
|
|
69
|
+
buildLog(`Upgraded: ${packages.join(', ')}`);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
buildLog('No eligible outdated packages');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
120
75
|
}
|
|
121
|
-
|
|
122
|
-
|
|
76
|
+
await yarn({ args: ['upgrade'] });
|
|
77
|
+
}
|
|
78
|
+
export async function yarnPublish({ npmAuthToken, npmConfig, npmCreds, npmPath, publishPath = '.', skipExisting = false, tag, workDir: passedWorkDir, } = {}) {
|
|
79
|
+
const creds = npmCreds || envNpmCreds;
|
|
80
|
+
const authToken = npmAuthToken || process.env.NPM_TOKEN;
|
|
81
|
+
const name = getPkgName();
|
|
82
|
+
const { access, publish, registry } = npmConfig || getNpmConfig();
|
|
83
|
+
if (!publish) {
|
|
84
|
+
buildLog('npm publish info missing from package.json, skipping npm publish');
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
const resolvedPath = path.resolve(publishPath);
|
|
88
|
+
const workDir = passedWorkDir ||
|
|
89
|
+
((await fs.stat(resolvedPath)).isDirectory()
|
|
90
|
+
? resolvedPath
|
|
91
|
+
: path.dirname(resolvedPath));
|
|
92
|
+
if (!(await fs.pathExists(path.join(workDir, 'package.json')))) {
|
|
93
|
+
buildLog(`warning: no package.json found in ${workDir}, skipping npm publish`);
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
if (creds || registry || authToken) {
|
|
97
|
+
// Write out .npmrc with credentials
|
|
98
|
+
await npmWriteRc({
|
|
99
|
+
authToken: authToken ? `\${NPM_TOKEN}` : undefined,
|
|
100
|
+
creds,
|
|
101
|
+
outPath: path.join(workDir, '.npmrc'),
|
|
102
|
+
registry,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
const existing = await npmGetVersions(name, npmPath);
|
|
106
|
+
const { branch, isRelease, npm: npmVersion } = await getVersion();
|
|
107
|
+
if (existing.includes(npmVersion)) {
|
|
108
|
+
if (skipExisting) {
|
|
109
|
+
buildLog('npm package with this same version already exists. Skipping publish...');
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
throw new Error('Failed to publish npm package, this version already exists!');
|
|
113
|
+
}
|
|
114
|
+
await yarn({
|
|
115
|
+
args: [
|
|
116
|
+
'publish',
|
|
117
|
+
resolvedPath,
|
|
118
|
+
'--new-version',
|
|
119
|
+
npmVersion,
|
|
120
|
+
'--tag',
|
|
121
|
+
tag ||
|
|
122
|
+
(isRelease
|
|
123
|
+
? 'latest'
|
|
124
|
+
: branch === (await getDevBranch())
|
|
125
|
+
? 'next'
|
|
126
|
+
: 'branch'),
|
|
127
|
+
...(access ? ['--access', access] : []),
|
|
128
|
+
],
|
|
129
|
+
spawnOptions: {
|
|
130
|
+
cwd: workDir,
|
|
131
|
+
env: {
|
|
132
|
+
...process.env,
|
|
133
|
+
FORCE_COLOR: 'true',
|
|
134
|
+
NPM_TOKEN: authToken,
|
|
135
|
+
},
|
|
136
|
+
shell: true,
|
|
137
|
+
stdio: 'inherit',
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
export async function yarnPack({ destination, workDir = '.', }) {
|
|
143
|
+
await fs.ensureDir(destination);
|
|
144
|
+
const version = await getVersion();
|
|
145
|
+
const name = getPkgName();
|
|
146
|
+
const filename = path.resolve(destination, `${name}-${version.npm}.tgz`);
|
|
147
|
+
await yarn({
|
|
148
|
+
args: ['pack', ...(destination ? ['--filename', filename] : [])],
|
|
149
|
+
spawnOptions: {
|
|
150
|
+
cwd: path.resolve(workDir),
|
|
151
|
+
pipeOutput: true,
|
|
152
|
+
},
|
|
153
|
+
});
|
|
154
|
+
return filename;
|
|
123
155
|
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy95YXJuLmpzIl0sIm5hbWVzIjpbInlhcm5BZHYiLCJvcHRzIiwiYXJncyIsInNwYXduT3B0aW9ucyIsImxvY2FsWWFybiIsInBhdGgiLCJqb2luIiwiZGlybmFtZSIsInByb2Nlc3MiLCJleGVjUGF0aCIsInNwYXduT3B0cyIsInN0ZGlvIiwic2hlbGwiLCJlbnYiLCJmcyIsImV4aXN0cyIsInlhcm4iLCJyZWplY3RPbkVycm9yQ29kZSIsInRoZW4iLCJyIiwib3V0cHV0IiwieWFybkZpbGVzIiwieWFybkluc3RhbGwiLCJub2RlTW9kdWxlc1BhdGgiLCJoYXNoRmlsZVBhdGgiLCJmb3JjZSIsImVuc3VyZURpciIsImN1cnJlbnRIYXNoIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImYiLCJlbnN1cmVGaWxlIiwicHJldkhhc2giLCJyZWFkRmlsZSIsImxlbmd0aCIsIndyaXRlRmlsZSIsInlhcm5VcGdyYWRlIiwib3V0ZGF0ZWQiLCJjb2RlIiwic3Rkb3V0IiwiY2FwdHVyZU91dHB1dCIsImRlcGVuZGVuY2llcyIsImRldkRlcGVuZGVuY2llcyIsInBhY2thZ2VzIiwic3BsaXQiLCJzbGljZSIsImwiLCJmaWx0ZXIiLCJwIiwidGVzdCJdLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw0Qjs7Ozs7OztBQU9PLGVBQWVBLE9BQWYsQ0FBdUJDLElBQXZCLEVBQWlFO0FBQ3RFLFFBQU0sRUFBRUMsSUFBSSxHQUFHLEVBQVQsRUFBYUMsWUFBYixLQUE4QkYsSUFBSSxJQUFJLEVBQTVDO0FBQ0EsUUFBTUcsU0FBUyxHQUFHQyxjQUFLQyxJQUFMO0FBQ2hCRCxnQkFBS0UsT0FBTCxDQUFhQyxPQUFPLENBQUNDLFFBQXJCLENBRGdCO0FBRWhCLGtDQUZnQixDQUFsQjs7O0FBS0EsUUFBTUMsU0FBUyxHQUFHO0FBQ2hCQyxJQUFBQSxLQUFLLEVBQUUsU0FEUztBQUVoQkMsSUFBQUEsS0FBSyxFQUFFLElBRlM7QUFH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LEVBQUVHLFlBQVksR0FBRyxFQUFqQixFQUFxQkMsZUFBZSxHQUFHLEVBQXZDLEtBQThDLGtCQUFwRDtBQUNBLFlBQU1DLFFBQVEsR0FBR0osTUFBTTtBQUNwQkssTUFBQUEsS0FEYyxDQUNSLElBRFE7QUFFZEMsTUFBQUEsS0FGYyxDQUVSLENBRlEsRUFFTCxDQUFDLENBRkk7QUFHZGhCLE1BQUFBLEdBSGMsQ0FHVixDQUFDaUIsQ0FBRCxLQUFPQSxDQUFDLENBQUNGLEtBQUYsQ0FBUSxLQUFSLEVBQWUsQ0FBZixDQUhHO0FBSWRHLE1BQUFBLE1BSmM7QUFLYixPQUFDQyxDQUFEO0FBQ0VwQixNQUFBQSxHQUFHLElBQUksQ0FBQyxNQUFNcUIsSUFBTixDQUFXUixZQUFZLENBQUNPLENBQUQsQ0FBWixJQUFtQk4sZUFBZSxDQUFDTSxDQUFELENBQWxDLElBQXlDLEVBQXBELENBTkcsQ0FBakI7O0FBUUEsVUFBSUwsUUFBUSxDQUFDVCxNQUFiLEVBQXFCO0FBQ25CLGNBQU1uQixJQUFJLENBQUMsRUFBRWQsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEdBQUcwQyxRQUFYLENBQVIsRUFBRCxDQUFWO0FBQ0EsMkJBQVUsYUFBWUEsUUFBUSxDQUFDdEMsSUFBVCxDQUFjLElBQWQsQ0FBb0IsRUFBMUM7QUFDRCxPQUhELE1BR087QUFDTCwyQkFBUywrQkFBVDtBQUNEO0FBQ0Y7QUFDRjtBQUNELFFBQU1VLElBQUksQ0FBQyxFQUFFZCxJQUFJLEVBQUUsQ0FBQyxTQUFELENBQVIsRUFBRCxDQUFWO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuaW1wb3J0IG1kNUZpbGUgZnJvbSAnbWQ1LWZpbGUnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgc3Bhd25BZHYgfSBmcm9tICcuL2NwJztcbmltcG9ydCB0eXBlIHsgU3Bhd25PcHRpb25zLCBTcGF3blJlc3VsdCB9IGZyb20gJy4vY3AnO1xuaW1wb3J0IHsgYnVpbGRMb2cgfSBmcm9tICcuL3J1bic7XG5pbXBvcnQgeyByZWFkRGlyIH0gZnJvbSAnLi9mcyc7XG5pbXBvcnQgeyBnZXRQa2cgfSBmcm9tICcuL3BrZyc7XG5cbmV4cG9ydCB0eXBlIFlhcm5PcHRpb25zID0ge3xcbiAgYXJncz86IHN0cmluZ1tdLFxuICBzcGF3bk9wdGlvbnM/OiA/U3Bhd25PcHRpb25zLFxufH07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB5YXJuQWR2KG9wdHM/OiBZYXJuT3B0aW9ucyk6IFByb21pc2U8U3Bhd25SZXN1bHQ+IHtcbiAgY29uc3QgeyBhcmdzID0gW10sIHNwYXduT3B0aW9ucyB9ID0gb3B0cyB8fCB7fTtcbiAgY29uc3QgbG9jYWxZYXJuID0gcGF0aC5qb2luKFxuICAgIHBhdGguZGlybmFtZShwcm9jZXNzLmV4ZWNQYXRoKSxcbiAgICAnL25vZGVfbW9kdWxlcy95YXJuL2Jpbi95YXJuLmpzJyxcbiAgKTtcblxuICBjb25zdCBzcGF3bk9wdHMgPSB7XG4gICAgc3RkaW86ICdpbmhlcml0JyxcbiAgICBzaGVsbDogdHJ1ZSxcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIC4uLnNwYXduT3B0aW9ucyxcbiAgfTtcblxuICByZXR1cm4gKGF3YWl0IGZzLmV4aXN0cyhsb2NhbFlhcm4pKVxuICAgID8gLy8gcHJlZmVyIHRvIHVzZSBsb2NhbCBjb3B5IG9mIHlhcm5cbiAgICAgIHNwYXduQWR2KHByb2Nlc3MuZXhlY1BhdGgsIFtsb2NhbFlhcm4sIC4uLmFyZ3NdLCBzcGF3bk9wdHMpXG4gICAgOiAvLyBmYWxsIGJhY2sgdG8gZ2xvYmFsbHkgaW5zdGFsbGVkIHlhcm5cbiAgICAgIHNwYXduQWR2KCd5YXJuJywgYXJncywgc3Bhd25PcHRzKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHlhcm4ob3B0cz86IFlhcm5PcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgeyBhcmdzID0gW10sIHNwYXduT3B0aW9ucyB9ID0gb3B0cyB8fCB7fTtcbiAgcmV0dXJuIHlhcm5BZHYoe1xuICAgIGFyZ3MsXG4gICAgc3Bhd25PcHRpb25zOiB7IHJlamVjdE9uRXJyb3JDb2RlOiB0cnVlLCAuLi5zcGF3bk9wdGlvbnMgfSxcbiAgfSkudGhlbigocikgPT4gci5vdXRwdXQpO1xufVxuXG5leHBvcnQgY29uc3QgeWFybkZpbGVzID0gWycuL3BhY2thZ2UuanNvbicsICcuL3lhcm4ubG9jayddO1xuXG5leHBvcnQgdHlwZSBZYXJuSW5zdGFsbE9wdGlvbnMgPSB7fFxuICBub2RlTW9kdWxlc1BhdGg/OiBzdHJpbmcsXG4gIGhhc2hGaWxlUGF0aD86IHN0cmluZyxcbiAgZm9yY2U/OiBib29sZWFuLFxufH07XG5cbi8vIFNtYXJ0IHlhcm4gaW52b2NhdGlvbiwgb25seSBpZiBwYWNrYWdlIGNoYW5nZWRcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB5YXJuSW5zdGFsbChvcHRzPzogWWFybkluc3RhbGxPcHRpb25zKSB7XG4gIGNvbnN0IHtcbiAgICBub2RlTW9kdWxlc1BhdGggPSAnLi9ub2RlX21vZHVsZXMnLFxuICAgIGhhc2hGaWxlUGF0aCA9ICcuL2Rvd25sb2FkL2J1aWxkSGFzaF95YXJuLm1kNScsXG4gICAgZm9yY2UgPSBmYWxzZSxcbiAgfSA9IG9wdHMgfHwge307XG4gIGF3YWl0IGZzLmVuc3VyZURpcihub2RlTW9kdWxlc1BhdGgpO1xuICBjb25zdCBjdXJyZW50SGFzaCA9IChcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh5YXJuRmlsZXMubWFwKGFzeW5jIChmKSA9PiBtZDVGaWxlKGYpKSlcbiAgKS5qb2luKCd8Jyk7XG4gIGF3YWl0IGZzLmVuc3VyZUZpbGUoaGFzaEZpbGVQYXRoKTtcbiAgY29uc3QgcHJldkhhc2ggPSBhd2FpdCBmcy5yZWFkRmlsZShoYXNoRmlsZVBhdGgsICd1dGY4Jyk7XG4gIGlmIChjdXJyZW50SGFzaCAhPT0gcHJldkhhc2gpIHtcbiAgICBidWlsZExvZyhcbiAgICAgICdub2RlIHBhY2thZ2UgZGVmaW5pdGlvbiBjaGFuZ2VkIHNpbmNlIGxhc3QgYnVpbGQsIGludm9raW5nIHlhcm4uJyxcbiAgICApO1xuICB9IGVsc2UgaWYgKCEoYXdhaXQgcmVhZERpcihgJHtub2RlTW9kdWxlc1BhdGh9LyoqLyouanNgKSkubGVuZ3RoKSB7XG4gICAgYnVpbGRMb2coJ25vZGUgcGFja2FnZXMgbWlzc2luZywgaW52b2tpbmcgeWFybi4nKTtcbiAgfSBlbHNlIGlmIChmb3JjZSkge1xuICAgIGJ1aWxkTG9nKCdub2RlIHBhY2thZ2VzIHVuY2hhbmdlZCwgYnV0IHlhcm4gZm9yY2VkIG9uIGNvbW1hbmQgbGluZS4uLicpO1xuICB9IGVsc2Uge1xuICAgIGJ1aWxkTG9nKCdub2RlIHBhY2thZ2VzIHVuY2hhbmdlZCBzaW5jZSBsYXN0IGJ1aWxkLCBza2lwcGluZyB5YXJuLicpO1xuICAgIHJldHVybjtcbiAgfVxuICBhd2FpdCB5YXJuKCk7XG4gIGF3YWl0IGZzLndyaXRlRmlsZShoYXNoRmlsZVBhdGgsIGN1cnJlbnRIYXNoKTtcbn1cblxuZXhwb3J0IHR5cGUgWWFyblVwZ3JhZGVPcHRpb25zID0ge3xcbiAgLyoqXG4gICAqIFVzZSBgeWFybiBvdXRkYXRlZGAgdG8gZmluZCBwYWNrYWdlcyB0aGF0IHNob3VsZCBiZSB1cGdyYWRlZFxuICAgKiBNYXkgaW5jbHVkZSBicmVha2luZyBjaGFuZ2VzIChtYWpvciB2ZXJzaW9uIGNoYW5nZXMpXG4gICAqL1xuICBvdXRkYXRlZD86IGJvb2xlYW4sXG4gIC8qKlxuICAgKiBgZmFsc2VgIGJ5IGRlZmF1bHRcbiAgICogd2UgYXNzdW1lIGFueSBwYWNrYWdlIHdpdGggYW4gZXhwbGljaXQgdmVyc2lvbiBzaG91bGRuJ3QgYmUgdG91Y2hlZFxuICAgKi9cbiAgYWxsPzogYm9vbGVhbixcbnx9O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24geWFyblVwZ3JhZGUob3B0cz86IFlhcm5VcGdyYWRlT3B0aW9ucykge1xuICBjb25zdCB7IG91dGRhdGVkID0gZmFsc2UsIGFsbCA9IGZhbHNlIH0gPSBvcHRzIHx8IHt9O1xuICBpZiAob3V0ZGF0ZWQpIHtcbiAgICBjb25zdCB7IGNvZGUsIHN0ZG91dCB9ID0gYXdhaXQgeWFybkFkdih7XG4gICAgICBhcmdzOiBbJ291dGRhdGVkJ10sXG4gICAgICBzcGF3bk9wdGlvbnM6IHsgc3RkaW86ICdwaXBlJywgY2FwdHVyZU91dHB1dDogdHJ1ZSB9LFxuICAgIH0pO1xuICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICBidWlsZExvZygnTm8gb3V0ZGF0ZWQgcGFja2FnZXMuJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHsgZGVwZW5kZW5jaWVzID0ge30sIGRldkRlcGVuZGVuY2llcyA9IHt9IH0gPSBnZXRQa2coKTtcbiAgICAgIGNvbnN0IHBhY2thZ2VzID0gc3Rkb3V0XG4gICAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgICAgLnNsaWNlKDUsIC0xKVxuICAgICAgICAubWFwKChsKSA9PiBsLnNwbGl0KC9cXHMrLylbMF0pXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKHApID0+XG4gICAgICAgICAgICBhbGwgfHwgIS9eXFxkLy50ZXN0KGRlcGVuZGVuY2llc1twXSB8fCBkZXZEZXBlbmRlbmNpZXNbcF0gfHwgJycpLFxuICAgICAgICApO1xuICAgICAgaWYgKHBhY2thZ2VzLmxlbmd0aCkge1xuICAgICAgICBhd2FpdCB5YXJuKHsgYXJnczogWydhZGQnLCAuLi5wYWNrYWdlc10gfSk7XG4gICAgICAgIGJ1aWxkTG9nKGBVcGdyYWRlZDogJHtwYWNrYWdlcy5qb2luKCcsICcpfWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnVpbGRMb2coJ05vIGVsaWdpYmxlIG91dGRhdGVkIHBhY2thZ2VzJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGF3YWl0IHlhcm4oeyBhcmdzOiBbJ3VwZ3JhZGUnXSB9KTtcbn1cbiJdfQ==
|
package/ant.js.flow
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
import { spawn } from './cp';
|
|
3
|
-
import type { SpawnOptions } from './cp';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Named value pair to use when configuring an Ant build property
|
|
7
|
-
*/
|
|
8
|
-
export type AntPropertyConfiguration = {|
|
|
9
|
-
name: string,
|
|
10
|
-
value: string,
|
|
11
|
-
|};
|
|
12
|
-
|
|
13
|
-
export type AntSpawnOptions = {|
|
|
14
|
-
properties?: AntPropertyConfiguration[], // Ant property values to configure
|
|
15
|
-
args?: string[], // Any additional command line arguments to pass
|
|
16
|
-
spawnOptions?: SpawnOptions, // Optional spawn configuration. Defaults to run the project root directory
|
|
17
|
-
|};
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Executes the given ant command
|
|
21
|
-
* @param {string} target the ant target to invoke
|
|
22
|
-
* @param {AntSpawnOptions} options
|
|
23
|
-
*/
|
|
24
|
-
export async function ant(target: string, opts?: AntSpawnOptions) {
|
|
25
|
-
const { properties = [], args = [], spawnOptions } = opts || {};
|
|
26
|
-
|
|
27
|
-
const execOptions = {
|
|
28
|
-
stdio: 'inherit',
|
|
29
|
-
pipeOutput: true,
|
|
30
|
-
...spawnOptions,
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
await spawn(
|
|
34
|
-
'ant',
|
|
35
|
-
[
|
|
36
|
-
target,
|
|
37
|
-
...args,
|
|
38
|
-
...properties.map(({ name, value }) => `-D${name}=${value}`),
|
|
39
|
-
],
|
|
40
|
-
execOptions,
|
|
41
|
-
);
|
|
42
|
-
}
|