build-strap 3.0.0-dev.42 → 4.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/LICENSE +1 -1
- package/README.md +3 -34
- package/dist/src/ant.d.ts +19 -0
- package/dist/src/ant.js +18 -0
- package/dist/src/cert.d.ts +12 -0
- package/dist/src/cert.js +91 -0
- package/dist/src/clean.d.ts +4 -0
- package/dist/src/clean.js +11 -0
- package/dist/src/copy.d.ts +7 -0
- package/dist/src/copy.js +53 -0
- package/dist/src/cp.d.ts +17 -0
- package/dist/src/cp.js +88 -0
- package/dist/src/docker.container.d.ts +73 -0
- package/dist/src/docker.container.js +247 -0
- package/dist/src/docker.d.ts +68 -0
- package/dist/src/docker.js +188 -0
- package/dist/src/docker.network.d.ts +42 -0
- package/dist/src/docker.network.js +85 -0
- package/dist/src/docker.volume.d.ts +26 -0
- package/dist/src/docker.volume.js +62 -0
- package/dist/src/dockerCleanup.d.ts +38 -0
- package/dist/src/dockerCleanup.js +77 -0
- package/dist/src/dockerCompose.d.ts +154 -0
- package/dist/src/dockerCompose.js +439 -0
- package/dist/src/fs.d.ts +5 -0
- package/dist/src/fs.js +38 -0
- package/dist/src/git.d.ts +9 -0
- package/dist/src/git.js +24 -0
- package/dist/src/index.d.ts +20 -0
- package/dist/src/index.js +20 -0
- package/dist/src/maps.d.ts +33 -0
- package/dist/src/maps.js +41 -0
- package/dist/src/npm.d.ts +35 -0
- package/dist/src/npm.js +104 -0
- package/dist/src/pkg.d.ts +33 -0
- package/dist/src/pkg.js +33 -0
- package/dist/src/publish.d.ts +27 -0
- package/dist/src/publish.js +57 -0
- package/dist/src/run.d.ts +13 -0
- package/dist/src/run.js +44 -0
- package/dist/src/tgz.d.ts +13 -0
- package/dist/src/tgz.js +67 -0
- package/dist/src/version.d.ts +34 -0
- package/dist/src/version.js +101 -0
- package/dist/src/yarn.d.ts +26 -0
- package/dist/src/yarn.js +75 -0
- package/package.json +74 -20
- package/ant.js +0 -43
- 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 +0 -153
- package/cert.js.flow +0 -152
- package/clean.js +0 -20
- package/clean.js.flow +0 -19
- package/copy.js +0 -80
- package/copy.js.flow +0 -79
- package/cp.js +0 -173
- package/cp.js.flow +0 -172
- package/docker.container.js +0 -390
- package/docker.container.js.flow +0 -389
- package/docker.js +0 -368
- package/docker.js.flow +0 -367
- package/docker.network.js +0 -160
- package/docker.network.js.flow +0 -159
- package/docker.volume.js +0 -136
- package/docker.volume.js.flow +0 -136
- package/dockerCleanup.js +0 -152
- package/dockerCleanup.js.flow +0 -151
- package/dockerCompose.js +0 -766
- package/dockerCompose.js.flow +0 -765
- package/flow.js +0 -21
- package/flow.js.flow +0 -20
- package/fs.js +0 -95
- package/fs.js.flow +0 -96
- package/git.js +0 -35
- package/git.js.flow +0 -34
- package/hg.js +0 -35
- package/hg.js.flow +0 -34
- package/index.js +0 -27
- package/index.js.flow +0 -26
- package/inline-resources.js +0 -158
- package/inline-resources.js.flow +0 -157
- package/maps.js +0 -112
- package/maps.js.flow +0 -111
- package/npm.js +0 -145
- package/npm.js.flow +0 -144
- package/pkg.js +0 -81
- package/pkg.js.flow +0 -80
- package/publish.js +0 -145
- package/publish.js.flow +0 -144
- package/run.js +0 -90
- 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 -367
- 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 -141
- package/src/yarn.js +0 -123
- package/test.js +0 -56
- package/test.js.flow +0 -55
- package/tgz.js +0 -102
- package/tgz.js.flow +0 -101
- package/version.js +0 -142
- package/version.js.flow +0 -141
- package/yarn.js +0 -124
- package/yarn.js.flow +0 -123
package/yarn.js
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.yarn = yarn;exports.yarnAdv = yarnAdv;exports.yarnFiles = void 0;exports.yarnInstall = yarnInstall;exports.yarnUpgrade = yarnUpgrade;
|
|
2
|
-
var _md5File = _interopRequireDefault(require("md5-file"));
|
|
3
|
-
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
4
|
-
var _path = _interopRequireDefault(require("path"));
|
|
5
|
-
var _cp = require("./cp");
|
|
6
|
-
|
|
7
|
-
var _run = require("./run");
|
|
8
|
-
var _fs = require("./fs");
|
|
9
|
-
var _pkg = require("./pkg");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
async function yarnAdv(opts) {
|
|
17
|
-
const { args = [], spawnOptions } = opts || {};
|
|
18
|
-
const localYarn = _path.default.join(
|
|
19
|
-
_path.default.dirname(process.execPath),
|
|
20
|
-
'/node_modules/yarn/bin/yarn.js');
|
|
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);
|
|
35
|
-
}
|
|
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
|
-
|
|
53
|
-
// Smart yarn invocation, only if package changed
|
|
54
|
-
async function yarnInstall(opts) {
|
|
55
|
-
const {
|
|
56
|
-
nodeModulesPath = './node_modules',
|
|
57
|
-
hashFilePath = './download/buildHash_yarn.md5',
|
|
58
|
-
force = false } =
|
|
59
|
-
opts || {};
|
|
60
|
-
await _fsExtra.default.ensureDir(nodeModulesPath);
|
|
61
|
-
const currentHash = (
|
|
62
|
-
await Promise.all(yarnFiles.map(async (f) => (0, _md5File.default)(f)))).
|
|
63
|
-
join('|');
|
|
64
|
-
await _fsExtra.default.ensureFile(hashFilePath);
|
|
65
|
-
const prevHash = await _fsExtra.default.readFile(hashFilePath, 'utf8');
|
|
66
|
-
if (currentHash !== prevHash) {
|
|
67
|
-
(0, _run.buildLog)(
|
|
68
|
-
'node package definition changed since last build, invoking yarn.');
|
|
69
|
-
|
|
70
|
-
} else if (!(await (0, _fs.readDir)(`${nodeModulesPath}/**/*.js`)).length) {
|
|
71
|
-
(0, _run.buildLog)('node packages missing, invoking yarn.');
|
|
72
|
-
} else if (force) {
|
|
73
|
-
(0, _run.buildLog)('node packages unchanged, but yarn forced on command line...');
|
|
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);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
async function yarnUpgrade(opts) {
|
|
96
|
-
const { outdated = false, all = false } = opts || {};
|
|
97
|
-
if (outdated) {
|
|
98
|
-
const { code, stdout } = await yarnAdv({
|
|
99
|
-
args: ['outdated'],
|
|
100
|
-
spawnOptions: { stdio: 'pipe', captureOutput: true } });
|
|
101
|
-
|
|
102
|
-
if (code === 0) {
|
|
103
|
-
(0, _run.buildLog)('No outdated packages.');
|
|
104
|
-
} else {
|
|
105
|
-
const { dependencies = {}, devDependencies = {} } = (0, _pkg.getPkg)();
|
|
106
|
-
const packages = stdout.
|
|
107
|
-
split('\n').
|
|
108
|
-
slice(5, -1).
|
|
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
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
await yarn({ args: ['upgrade'] });
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy95YXJuLmpzIl0sIm5hbWVzIjpbInlhcm5BZHYiLCJvcHRzIiwiYXJncyIsInNwYXduT3B0aW9ucyIsImxvY2FsWWFybiIsInBhdGgiLCJqb2luIiwiZGlybmFtZSIsInByb2Nlc3MiLCJleGVjUGF0aCIsInNwYXduT3B0cyIsInN0ZGlvIiwic2hlbGwiLCJlbnYiLCJmcyIsImV4aXN0cyIsInlhcm4iLCJyZWplY3RPbkVycm9yQ29kZSIsInRoZW4iLCJyIiwib3V0cHV0IiwieWFybkZpbGVzIiwieWFybkluc3RhbGwiLCJub2RlTW9kdWxlc1BhdGgiLCJoYXNoRmlsZVBhdGgiLCJmb3JjZSIsImVuc3VyZURpciIsImN1cnJlbnRIYXNoIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImYiLCJlbnN1cmVGaWxlIiwicHJldkhhc2giLCJyZWFkRmlsZSIsImxlbmd0aCIsIndyaXRlRmlsZSIsInlhcm5VcGdyYWRlIiwib3V0ZGF0ZWQiLCJjb2RlIiwic3Rkb3V0IiwiY2FwdHVyZU91dHB1dCIsImRlcGVuZGVuY2llcyIsImRldkRlcGVuZGVuY2llcyIsInBhY2thZ2VzIiwic3BsaXQiLCJzbGljZSIsImwiLCJmaWx0ZXIiLCJwIiwidGVzdCJdLCJtYXBwaW5ncyI6IjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSw0Qjs7Ozs7OztBQU9PLGVBQWVBLE9BQWYsQ0FBdUJDLElBQXZCLEVBQWlFO0FBQ3RFLFFBQU0sRUFBRUMsSUFBSSxHQUFHLEVBQVQsRUFBYUMsWUFBYixLQUE4QkYsSUFBSSxJQUFJLEVBQTVDO0FBQ0EsUUFBTUcsU0FBUyxHQUFHQyxjQUFLQyxJQUFMO0FBQ2hCRCxnQkFBS0UsT0FBTCxDQUFhQyxPQUFPLENBQUNDLFFBQXJCLENBRGdCO0FBRWhCLGtDQUZnQixDQUFsQjs7O0FBS0EsUUFBTUMsU0FBUyxHQUFHO0FBQ2hCQyxJQUFBQSxLQUFLLEVBQUUsU0FEUztBQUVoQkMsSUFBQUEsS0FBSyxFQUFFLElBRlM7QUFH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LEVBQUVHLFlBQVksR0FBRyxFQUFqQixFQUFxQkMsZUFBZSxHQUFHLEVBQXZDLEtBQThDLGtCQUFwRDtBQUNBLFlBQU1DLFFBQVEsR0FBR0osTUFBTTtBQUNwQkssTUFBQUEsS0FEYyxDQUNSLElBRFE7QUFFZEMsTUFBQUEsS0FGYyxDQUVSLENBRlEsRUFFTCxDQUFDLENBRkk7QUFHZGhCLE1BQUFBLEdBSGMsQ0FHVixDQUFDaUIsQ0FBRCxLQUFPQSxDQUFDLENBQUNGLEtBQUYsQ0FBUSxLQUFSLEVBQWUsQ0FBZixDQUhHO0FBSWRHLE1BQUFBLE1BSmM7QUFLYixPQUFDQyxDQUFEO0FBQ0VwQixNQUFBQSxHQUFHLElBQUksQ0FBQyxNQUFNcUIsSUFBTixDQUFXUixZQUFZLENBQUNPLENBQUQsQ0FBWixJQUFtQk4sZUFBZSxDQUFDTSxDQUFELENBQWxDLElBQXlDLEVBQXBELENBTkcsQ0FBakI7O0FBUUEsVUFBSUwsUUFBUSxDQUFDVCxNQUFiLEVBQXFCO0FBQ25CLGNBQU1uQixJQUFJLENBQUMsRUFBRWQsSUFBSSxFQUFFLENBQUMsS0FBRCxFQUFRLEdBQUcwQyxRQUFYLENBQVIsRUFBRCxDQUFWO0FBQ0EsMkJBQVUsYUFBWUEsUUFBUSxDQUFDdEMsSUFBVCxDQUFjLElBQWQsQ0FBb0IsRUFBMUM7QUFDRCxPQUhELE1BR087QUFDTCwyQkFBUywrQkFBVDtBQUNEO0FBQ0Y7QUFDRjtBQUNELFFBQU1VLElBQUksQ0FBQyxFQUFFZCxJQUFJLEVBQUUsQ0FBQyxTQUFELENBQVIsRUFBRCxDQUFWO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuaW1wb3J0IG1kNUZpbGUgZnJvbSAnbWQ1LWZpbGUnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgc3Bhd25BZHYgfSBmcm9tICcuL2NwJztcbmltcG9ydCB0eXBlIHsgU3Bhd25PcHRpb25zLCBTcGF3blJlc3VsdCB9IGZyb20gJy4vY3AnO1xuaW1wb3J0IHsgYnVpbGRMb2cgfSBmcm9tICcuL3J1bic7XG5pbXBvcnQgeyByZWFkRGlyIH0gZnJvbSAnLi9mcyc7XG5pbXBvcnQgeyBnZXRQa2cgfSBmcm9tICcuL3BrZyc7XG5cbmV4cG9ydCB0eXBlIFlhcm5PcHRpb25zID0ge3xcbiAgYXJncz86IHN0cmluZ1tdLFxuICBzcGF3bk9wdGlvbnM/OiA/U3Bhd25PcHRpb25zLFxufH07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB5YXJuQWR2KG9wdHM/OiBZYXJuT3B0aW9ucyk6IFByb21pc2U8U3Bhd25SZXN1bHQ+IHtcbiAgY29uc3QgeyBhcmdzID0gW10sIHNwYXduT3B0aW9ucyB9ID0gb3B0cyB8fCB7fTtcbiAgY29uc3QgbG9jYWxZYXJuID0gcGF0aC5qb2luKFxuICAgIHBhdGguZGlybmFtZShwcm9jZXNzLmV4ZWNQYXRoKSxcbiAgICAnL25vZGVfbW9kdWxlcy95YXJuL2Jpbi95YXJuLmpzJyxcbiAgKTtcblxuICBjb25zdCBzcGF3bk9wdHMgPSB7XG4gICAgc3RkaW86ICdpbmhlcml0JyxcbiAgICBzaGVsbDogdHJ1ZSxcbiAgICBlbnY6IHByb2Nlc3MuZW52LFxuICAgIC4uLnNwYXduT3B0aW9ucyxcbiAgfTtcblxuICByZXR1cm4gKGF3YWl0IGZzLmV4aXN0cyhsb2NhbFlhcm4pKVxuICAgID8gLy8gcHJlZmVyIHRvIHVzZSBsb2NhbCBjb3B5IG9mIHlhcm5cbiAgICAgIHNwYXduQWR2KHByb2Nlc3MuZXhlY1BhdGgsIFtsb2NhbFlhcm4sIC4uLmFyZ3NdLCBzcGF3bk9wdHMpXG4gICAgOiAvLyBmYWxsIGJhY2sgdG8gZ2xvYmFsbHkgaW5zdGFsbGVkIHlhcm5cbiAgICAgIHNwYXduQWR2KCd5YXJuJywgYXJncywgc3Bhd25PcHRzKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHlhcm4ob3B0cz86IFlhcm5PcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgeyBhcmdzID0gW10sIHNwYXduT3B0aW9ucyB9ID0gb3B0cyB8fCB7fTtcbiAgcmV0dXJuIHlhcm5BZHYoe1xuICAgIGFyZ3MsXG4gICAgc3Bhd25PcHRpb25zOiB7IHJlamVjdE9uRXJyb3JDb2RlOiB0cnVlLCAuLi5zcGF3bk9wdGlvbnMgfSxcbiAgfSkudGhlbigocikgPT4gci5vdXRwdXQpO1xufVxuXG5leHBvcnQgY29uc3QgeWFybkZpbGVzID0gWycuL3BhY2thZ2UuanNvbicsICcuL3lhcm4ubG9jayddO1xuXG5leHBvcnQgdHlwZSBZYXJuSW5zdGFsbE9wdGlvbnMgPSB7fFxuICBub2RlTW9kdWxlc1BhdGg/OiBzdHJpbmcsXG4gIGhhc2hGaWxlUGF0aD86IHN0cmluZyxcbiAgZm9yY2U/OiBib29sZWFuLFxufH07XG5cbi8vIFNtYXJ0IHlhcm4gaW52b2NhdGlvbiwgb25seSBpZiBwYWNrYWdlIGNoYW5nZWRcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB5YXJuSW5zdGFsbChvcHRzPzogWWFybkluc3RhbGxPcHRpb25zKSB7XG4gIGNvbnN0IHtcbiAgICBub2RlTW9kdWxlc1BhdGggPSAnLi9ub2RlX21vZHVsZXMnLFxuICAgIGhhc2hGaWxlUGF0aCA9ICcuL2Rvd25sb2FkL2J1aWxkSGFzaF95YXJuLm1kNScsXG4gICAgZm9yY2UgPSBmYWxzZSxcbiAgfSA9IG9wdHMgfHwge307XG4gIGF3YWl0IGZzLmVuc3VyZURpcihub2RlTW9kdWxlc1BhdGgpO1xuICBjb25zdCBjdXJyZW50SGFzaCA9IChcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh5YXJuRmlsZXMubWFwKGFzeW5jIChmKSA9PiBtZDVGaWxlKGYpKSlcbiAgKS5qb2luKCd8Jyk7XG4gIGF3YWl0IGZzLmVuc3VyZUZpbGUoaGFzaEZpbGVQYXRoKTtcbiAgY29uc3QgcHJldkhhc2ggPSBhd2FpdCBmcy5yZWFkRmlsZShoYXNoRmlsZVBhdGgsICd1dGY4Jyk7XG4gIGlmIChjdXJyZW50SGFzaCAhPT0gcHJldkhhc2gpIHtcbiAgICBidWlsZExvZyhcbiAgICAgICdub2RlIHBhY2thZ2UgZGVmaW5pdGlvbiBjaGFuZ2VkIHNpbmNlIGxhc3QgYnVpbGQsIGludm9raW5nIHlhcm4uJyxcbiAgICApO1xuICB9IGVsc2UgaWYgKCEoYXdhaXQgcmVhZERpcihgJHtub2RlTW9kdWxlc1BhdGh9LyoqLyouanNgKSkubGVuZ3RoKSB7XG4gICAgYnVpbGRMb2coJ25vZGUgcGFja2FnZXMgbWlzc2luZywgaW52b2tpbmcgeWFybi4nKTtcbiAgfSBlbHNlIGlmIChmb3JjZSkge1xuICAgIGJ1aWxkTG9nKCdub2RlIHBhY2thZ2VzIHVuY2hhbmdlZCwgYnV0IHlhcm4gZm9yY2VkIG9uIGNvbW1hbmQgbGluZS4uLicpO1xuICB9IGVsc2Uge1xuICAgIGJ1aWxkTG9nKCdub2RlIHBhY2thZ2VzIHVuY2hhbmdlZCBzaW5jZSBsYXN0IGJ1aWxkLCBza2lwcGluZyB5YXJuLicpO1xuICAgIHJldHVybjtcbiAgfVxuICBhd2FpdCB5YXJuKCk7XG4gIGF3YWl0IGZzLndyaXRlRmlsZShoYXNoRmlsZVBhdGgsIGN1cnJlbnRIYXNoKTtcbn1cblxuZXhwb3J0IHR5cGUgWWFyblVwZ3JhZGVPcHRpb25zID0ge3xcbiAgLyoqXG4gICAqIFVzZSBgeWFybiBvdXRkYXRlZGAgdG8gZmluZCBwYWNrYWdlcyB0aGF0IHNob3VsZCBiZSB1cGdyYWRlZFxuICAgKiBNYXkgaW5jbHVkZSBicmVha2luZyBjaGFuZ2VzIChtYWpvciB2ZXJzaW9uIGNoYW5nZXMpXG4gICAqL1xuICBvdXRkYXRlZD86IGJvb2xlYW4sXG4gIC8qKlxuICAgKiBgZmFsc2VgIGJ5IGRlZmF1bHRcbiAgICogd2UgYXNzdW1lIGFueSBwYWNrYWdlIHdpdGggYW4gZXhwbGljaXQgdmVyc2lvbiBzaG91bGRuJ3QgYmUgdG91Y2hlZFxuICAgKi9cbiAgYWxsPzogYm9vbGVhbixcbnx9O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24geWFyblVwZ3JhZGUob3B0cz86IFlhcm5VcGdyYWRlT3B0aW9ucykge1xuICBjb25zdCB7IG91dGRhdGVkID0gZmFsc2UsIGFsbCA9IGZhbHNlIH0gPSBvcHRzIHx8IHt9O1xuICBpZiAob3V0ZGF0ZWQpIHtcbiAgICBjb25zdCB7IGNvZGUsIHN0ZG91dCB9ID0gYXdhaXQgeWFybkFkdih7XG4gICAgICBhcmdzOiBbJ291dGRhdGVkJ10sXG4gICAgICBzcGF3bk9wdGlvbnM6IHsgc3RkaW86ICdwaXBlJywgY2FwdHVyZU91dHB1dDogdHJ1ZSB9LFxuICAgIH0pO1xuICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICBidWlsZExvZygnTm8gb3V0ZGF0ZWQgcGFja2FnZXMuJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHsgZGVwZW5kZW5jaWVzID0ge30sIGRldkRlcGVuZGVuY2llcyA9IHt9IH0gPSBnZXRQa2coKTtcbiAgICAgIGNvbnN0IHBhY2thZ2VzID0gc3Rkb3V0XG4gICAgICAgIC5zcGxpdCgnXFxuJylcbiAgICAgICAgLnNsaWNlKDUsIC0xKVxuICAgICAgICAubWFwKChsKSA9PiBsLnNwbGl0KC9cXHMrLylbMF0pXG4gICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgKHApID0+XG4gICAgICAgICAgICBhbGwgfHwgIS9eXFxkLy50ZXN0KGRlcGVuZGVuY2llc1twXSB8fCBkZXZEZXBlbmRlbmNpZXNbcF0gfHwgJycpLFxuICAgICAgICApO1xuICAgICAgaWYgKHBhY2thZ2VzLmxlbmd0aCkge1xuICAgICAgICBhd2FpdCB5YXJuKHsgYXJnczogWydhZGQnLCAuLi5wYWNrYWdlc10gfSk7XG4gICAgICAgIGJ1aWxkTG9nKGBVcGdyYWRlZDogJHtwYWNrYWdlcy5qb2luKCcsICcpfWApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnVpbGRMb2coJ05vIGVsaWdpYmxlIG91dGRhdGVkIHBhY2thZ2VzJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGF3YWl0IHlhcm4oeyBhcmdzOiBbJ3VwZ3JhZGUnXSB9KTtcbn1cbiJdfQ==
|
package/yarn.js.flow
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
import md5File from 'md5-file';
|
|
3
|
-
import fs from 'fs-extra';
|
|
4
|
-
import path from 'path';
|
|
5
|
-
import { spawnAdv } from './cp';
|
|
6
|
-
import type { SpawnOptions, SpawnResult } from './cp';
|
|
7
|
-
import { buildLog } from './run';
|
|
8
|
-
import { readDir } from './fs';
|
|
9
|
-
import { getPkg } from './pkg';
|
|
10
|
-
|
|
11
|
-
export type YarnOptions = {|
|
|
12
|
-
args?: string[],
|
|
13
|
-
spawnOptions?: ?SpawnOptions,
|
|
14
|
-
|};
|
|
15
|
-
|
|
16
|
-
export async function yarnAdv(opts?: YarnOptions): Promise<SpawnResult> {
|
|
17
|
-
const { args = [], spawnOptions } = opts || {};
|
|
18
|
-
const localYarn = path.join(
|
|
19
|
-
path.dirname(process.execPath),
|
|
20
|
-
'/node_modules/yarn/bin/yarn.js',
|
|
21
|
-
);
|
|
22
|
-
|
|
23
|
-
const spawnOpts = {
|
|
24
|
-
stdio: 'inherit',
|
|
25
|
-
shell: true,
|
|
26
|
-
env: process.env,
|
|
27
|
-
...spawnOptions,
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
return (await fs.exists(localYarn))
|
|
31
|
-
? // prefer to use local copy of yarn
|
|
32
|
-
spawnAdv(process.execPath, [localYarn, ...args], spawnOpts)
|
|
33
|
-
: // fall back to globally installed yarn
|
|
34
|
-
spawnAdv('yarn', args, spawnOpts);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export async function yarn(opts?: YarnOptions): Promise<string> {
|
|
38
|
-
const { args = [], spawnOptions } = opts || {};
|
|
39
|
-
return yarnAdv({
|
|
40
|
-
args,
|
|
41
|
-
spawnOptions: { rejectOnErrorCode: true, ...spawnOptions },
|
|
42
|
-
}).then((r) => r.output);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export const yarnFiles = ['./package.json', './yarn.lock'];
|
|
46
|
-
|
|
47
|
-
export type YarnInstallOptions = {|
|
|
48
|
-
nodeModulesPath?: string,
|
|
49
|
-
hashFilePath?: string,
|
|
50
|
-
force?: boolean,
|
|
51
|
-
|};
|
|
52
|
-
|
|
53
|
-
// Smart yarn invocation, only if package changed
|
|
54
|
-
export async function yarnInstall(opts?: YarnInstallOptions) {
|
|
55
|
-
const {
|
|
56
|
-
nodeModulesPath = './node_modules',
|
|
57
|
-
hashFilePath = './download/buildHash_yarn.md5',
|
|
58
|
-
force = false,
|
|
59
|
-
} = opts || {};
|
|
60
|
-
await fs.ensureDir(nodeModulesPath);
|
|
61
|
-
const currentHash = (
|
|
62
|
-
await Promise.all(yarnFiles.map(async (f) => md5File(f)))
|
|
63
|
-
).join('|');
|
|
64
|
-
await fs.ensureFile(hashFilePath);
|
|
65
|
-
const prevHash = await fs.readFile(hashFilePath, 'utf8');
|
|
66
|
-
if (currentHash !== prevHash) {
|
|
67
|
-
buildLog(
|
|
68
|
-
'node package definition changed since last build, invoking yarn.',
|
|
69
|
-
);
|
|
70
|
-
} else if (!(await readDir(`${nodeModulesPath}/**/*.js`)).length) {
|
|
71
|
-
buildLog('node packages missing, invoking yarn.');
|
|
72
|
-
} else if (force) {
|
|
73
|
-
buildLog('node packages unchanged, but yarn forced on command line...');
|
|
74
|
-
} else {
|
|
75
|
-
buildLog('node packages unchanged since last build, skipping yarn.');
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
await yarn();
|
|
79
|
-
await fs.writeFile(hashFilePath, currentHash);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export type YarnUpgradeOptions = {|
|
|
83
|
-
/**
|
|
84
|
-
* Use `yarn outdated` to find packages that should be upgraded
|
|
85
|
-
* May include breaking changes (major version changes)
|
|
86
|
-
*/
|
|
87
|
-
outdated?: boolean,
|
|
88
|
-
/**
|
|
89
|
-
* `false` by default
|
|
90
|
-
* we assume any package with an explicit version shouldn't be touched
|
|
91
|
-
*/
|
|
92
|
-
all?: boolean,
|
|
93
|
-
|};
|
|
94
|
-
|
|
95
|
-
export async function yarnUpgrade(opts?: YarnUpgradeOptions) {
|
|
96
|
-
const { outdated = false, all = false } = opts || {};
|
|
97
|
-
if (outdated) {
|
|
98
|
-
const { code, stdout } = await yarnAdv({
|
|
99
|
-
args: ['outdated'],
|
|
100
|
-
spawnOptions: { stdio: 'pipe', captureOutput: true },
|
|
101
|
-
});
|
|
102
|
-
if (code === 0) {
|
|
103
|
-
buildLog('No outdated packages.');
|
|
104
|
-
} else {
|
|
105
|
-
const { dependencies = {}, devDependencies = {} } = getPkg();
|
|
106
|
-
const packages = stdout
|
|
107
|
-
.split('\n')
|
|
108
|
-
.slice(5, -1)
|
|
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
|
-
buildLog(`Upgraded: ${packages.join(', ')}`);
|
|
117
|
-
} else {
|
|
118
|
-
buildLog('No eligible outdated packages');
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
await yarn({ args: ['upgrade'] });
|
|
123
|
-
}
|