build-strap 4.0.0-dev.46 → 4.0.0-dev.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +3 -34
  2. package/package.json +23 -19
  3. package/src/ant.d.ts +19 -0
  4. package/src/ant.js +12 -36
  5. package/src/cert.d.ts +12 -0
  6. package/src/cert.js +87 -148
  7. package/src/clean.d.ts +4 -0
  8. package/src/clean.js +5 -13
  9. package/src/copy.d.ts +7 -0
  10. package/src/copy.js +48 -74
  11. package/src/cp.d.ts +17 -0
  12. package/src/cp.js +81 -165
  13. package/src/docker.container.d.ts +73 -0
  14. package/src/docker.container.js +208 -350
  15. package/src/docker.d.ts +68 -0
  16. package/src/docker.js +163 -339
  17. package/src/docker.network.d.ts +42 -0
  18. package/src/docker.network.js +67 -141
  19. package/src/docker.volume.d.ts +26 -0
  20. package/src/docker.volume.js +50 -124
  21. package/src/dockerCleanup.d.ts +38 -0
  22. package/src/dockerCleanup.js +62 -136
  23. package/src/dockerCompose.d.ts +154 -0
  24. package/src/dockerCompose.js +390 -716
  25. package/src/fs.d.ts +5 -0
  26. package/src/fs.js +33 -91
  27. package/src/git.d.ts +9 -0
  28. package/src/git.js +19 -29
  29. package/src/index.d.ts +20 -0
  30. package/src/index.js +20 -26
  31. package/src/maps.d.ts +33 -0
  32. package/src/maps.js +12 -82
  33. package/src/npm.d.ts +48 -0
  34. package/src/npm.js +128 -131
  35. package/src/pkg.d.ts +38 -0
  36. package/src/pkg.js +27 -74
  37. package/src/publish.d.ts +27 -0
  38. package/src/publish.js +51 -138
  39. package/src/run.d.ts +13 -0
  40. package/src/run.js +39 -84
  41. package/src/tgz.d.ts +13 -0
  42. package/src/tgz.js +54 -88
  43. package/src/version.d.ts +34 -0
  44. package/src/version.js +85 -126
  45. package/src/yarn.d.ts +44 -0
  46. package/src/yarn.js +147 -115
  47. package/ant.js +0 -43
  48. package/ant.js.flow +0 -42
  49. package/artifactory.js +0 -617
  50. package/artifactory.js.flow +0 -616
  51. package/cert.conf +0 -20
  52. package/cert.js +0 -153
  53. package/cert.js.flow +0 -152
  54. package/clean.js +0 -20
  55. package/clean.js.flow +0 -19
  56. package/copy.js +0 -80
  57. package/copy.js.flow +0 -79
  58. package/cp.js +0 -173
  59. package/cp.js.flow +0 -172
  60. package/docker.container.js +0 -390
  61. package/docker.container.js.flow +0 -389
  62. package/docker.js +0 -365
  63. package/docker.js.flow +0 -364
  64. package/docker.network.js +0 -160
  65. package/docker.network.js.flow +0 -159
  66. package/docker.volume.js +0 -136
  67. package/docker.volume.js.flow +0 -136
  68. package/dockerCleanup.js +0 -152
  69. package/dockerCleanup.js.flow +0 -151
  70. package/dockerCompose.js +0 -766
  71. package/dockerCompose.js.flow +0 -765
  72. package/flow.js +0 -21
  73. package/flow.js.flow +0 -20
  74. package/fs.js +0 -95
  75. package/fs.js.flow +0 -96
  76. package/git.js +0 -35
  77. package/git.js.flow +0 -34
  78. package/hg.js +0 -35
  79. package/hg.js.flow +0 -34
  80. package/index.js +0 -27
  81. package/index.js.flow +0 -26
  82. package/inline-resources.js +0 -158
  83. package/inline-resources.js.flow +0 -157
  84. package/maps.js +0 -112
  85. package/maps.js.flow +0 -111
  86. package/npm.js +0 -145
  87. package/npm.js.flow +0 -144
  88. package/pkg.js +0 -81
  89. package/pkg.js.flow +0 -80
  90. package/publish.js +0 -145
  91. package/publish.js.flow +0 -144
  92. package/run.js +0 -90
  93. package/run.js.flow +0 -89
  94. package/src/artifactory.js +0 -616
  95. package/src/cert.conf +0 -20
  96. package/src/flow.js +0 -20
  97. package/src/hg.js +0 -34
  98. package/src/inline-resources.js +0 -157
  99. package/src/test.js +0 -55
  100. package/test.js +0 -56
  101. package/test.js.flow +0 -55
  102. package/tgz.js +0 -102
  103. package/tgz.js.flow +0 -101
  104. package/version.js +0 -143
  105. package/version.js.flow +0 -142
  106. package/yarn.js +0 -124
  107. package/yarn.js.flow +0 -123
package/run.js DELETED
@@ -1,90 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.buildLog = buildLog;exports.default = void 0;exports.format = format;exports.handleEntryPoint = handleEntryPoint;exports.run = run;exports.runCli = runCli;
2
- function format(time = new Date()) {
3
- return time.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, '$1');
4
- }
5
-
6
- const silenceLogs = process.argv.includes('--silence-buildLog');
7
-
8
- function buildLog(msg, time) {
9
- if (silenceLogs) {
10
- return;
11
- }
12
- console.info(`[${format(time || new Date())}] ${msg}`);
13
- }
14
-
15
-
16
-
17
-
18
-
19
- async function run(
20
- fn,
21
- ...options)
22
- {
23
- if (fn == null) {
24
- throw new Error(`Invalid argument passed to run(${fn})`);
25
- }
26
- const task = typeof fn === 'function' ? fn : fn.default;
27
- if (typeof task !== 'function') {
28
- throw new Error(
29
- 'First argument to run must be a function or module with default function.');
30
-
31
- }
32
- const start = new Date();
33
- buildLog(`Starting '${task.name}'...`, start);
34
- const result = await task(...options);
35
- const end = new Date();
36
- const time = end.getTime() - start.getTime();
37
- buildLog(`Finished '${task.name}' after ${time} ms`, end);
38
- return result;
39
- }
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
- async function runCli({
49
- resolveFn = (path) =>
50
- // $FlowFixMe
51
- require(`./${path}`).default, // eslint-disable-line
52
- defaultAction = 'publish',
53
- argv = process.argv,
54
- passthroughArgv = false } =
55
- {}) {
56
- const module =
57
- argv.length > 2 ?
58
- resolveFn(argv[2]) :
59
- typeof defaultAction === 'string' ?
60
- resolveFn(defaultAction) :
61
- defaultAction;
62
- const args = Array.isArray(passthroughArgv) ?
63
- passthroughArgv.includes(argv[2] || defaultAction) ?
64
- argv.slice(3) :
65
- [] :
66
- passthroughArgv ?
67
- argv.slice(3) :
68
- [];
69
- return run(module, ...args).catch((err) => {
70
- console.error(err && err.stack || err);
71
- process.exit(1);
72
- throw err;
73
- });
74
- }
75
-
76
- function handleEntryPoint(
77
- mainModule,
78
- mainModuleFilename,
79
- cliOptions)
80
- {
81
- if (require.main === mainModule) {
82
- delete require.cache[mainModuleFilename]; // eslint-disable-line no-underscore-dangle
83
- runCli(cliOptions);
84
- }
85
- }
86
-
87
- handleEntryPoint(module, __filename);var _default =
88
-
89
- run;exports.default = _default;
90
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW4uanMiXSwibmFtZXMiOlsiZm9ybWF0IiwidGltZSIsIkRhdGUiLCJ0b1RpbWVTdHJpbmciLCJyZXBsYWNlIiwic2lsZW5jZUxvZ3MiLCJwcm9jZXNzIiwiYXJndiIsImluY2x1ZGVzIiwiYnVpbGRMb2ciLCJtc2ciLCJjb25zb2xlIiwiaW5mbyIsInJ1biIsImZuIiwib3B0aW9ucyIsIkVycm9yIiwidGFzayIsImRlZmF1bHQiLCJzdGFydCIsIm5hbWUiLCJyZXN1bHQiLCJlbmQiLCJnZXRUaW1lIiwicnVuQ2xpIiwicmVzb2x2ZUZuIiwicGF0aCIsInJlcXVpcmUiLCJkZWZhdWx0QWN0aW9uIiwicGFzc3Rocm91Z2hBcmd2IiwibW9kdWxlIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiaXNBcnJheSIsInNsaWNlIiwiY2F0Y2giLCJlcnIiLCJlcnJvciIsInN0YWNrIiwiZXhpdCIsImhhbmRsZUVudHJ5UG9pbnQiLCJtYWluTW9kdWxlIiwibWFpbk1vZHVsZUZpbGVuYW1lIiwiY2xpT3B0aW9ucyIsIm1haW4iLCJjYWNoZSIsIl9fZmlsZW5hbWUiXSwibWFwcGluZ3MiOiI7QUFDTyxTQUFTQSxNQUFULENBQWdCQyxJQUFXLEdBQUcsSUFBSUMsSUFBSixFQUE5QixFQUFrRDtBQUN2RCxTQUFPRCxJQUFJLENBQUNFLFlBQUwsR0FBb0JDLE9BQXBCLENBQTRCLHlCQUE1QixFQUF1RCxJQUF2RCxDQUFQO0FBQ0Q7O0FBRUQsTUFBTUMsV0FBVyxHQUFHQyxPQUFPLENBQUNDLElBQVIsQ0FBYUMsUUFBYixDQUFzQixvQkFBdEIsQ0FBcEI7O0FBRU8sU0FBU0MsUUFBVCxDQUFrQkMsR0FBbEIsRUFBK0JULElBQS9CLEVBQTRDO0FBQ2pELE1BQUlJLFdBQUosRUFBaUI7QUFDZjtBQUNEO0FBQ0RNLEVBQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFjLElBQUdaLE1BQU0sQ0FBQ0MsSUFBSSxJQUFJLElBQUlDLElBQUosRUFBVCxDQUFxQixLQUFJUSxH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QUFDRjs7QUFFREgsZ0JBQWdCLENBQUNYLE1BQUQsRUFBU2lCLFVBQVQsQ0FBaEIsQzs7QUFFZWxDLEciLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdCh0aW1lPzogRGF0ZSA9IG5ldyBEYXRlKCkpOiBzdHJpbmcge1xuICByZXR1cm4gdGltZS50b1RpbWVTdHJpbmcoKS5yZXBsYWNlKC8uKihcXGR7Mn06XFxkezJ9OlxcZHsyfSkuKi8sICckMScpO1xufVxuXG5jb25zdCBzaWxlbmNlTG9ncyA9IHByb2Nlc3MuYXJndi5pbmNsdWRlcygnLS1zaWxlbmNlLWJ1aWxkTG9nJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZExvZyhtc2c6IHN0cmluZywgdGltZT86IERhdGUpIHtcbiAgaWYgKHNpbGVuY2VMb2dzKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnNvbGUuaW5mbyhgWyR7Zm9ybWF0KHRpbWUgfHwgbmV3IERhdGUoKSl9XSAke21zZ31gKTtcbn1cblxuZXhwb3J0IHR5cGUgUnVubmFibGVNb2R1bGU8VD4gPVxuICB8ICgoKSA9PiBQcm9taXNlPFQ+KVxuICB8IHsgZGVmYXVsdDogKCkgPT4gUHJvbWlzZTxUPiB9O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuPFQ+KFxuICBmbjogUnVubmFibGVNb2R1bGU8VD4sXG4gIC4uLm9wdGlvbnM6IGFueVtdXG4pOiBQcm9taXNlPFQ+IHtcbiAgaWYgKGZuID09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXJndW1lbnQgcGFzc2VkIHRvIHJ1bigke2ZufSlgKTtcbiAgfVxuICBjb25zdCB0YXNrID0gdHlwZW9mIGZuID09PSAnZnVuY3Rpb24nID8gZm4gOiBmbi5kZWZhdWx0O1xuICBpZiAodHlwZW9mIHRhc2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnRmlyc3QgYXJndW1lbnQgdG8gcnVuIG11c3QgYmUgYSBmdW5jdGlvbiBvciBtb2R1bGUgd2l0aCBkZWZhdWx0IGZ1bmN0aW9uLicsXG4gICAgKTtcbiAgfVxuICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKCk7XG4gIGJ1aWxkTG9nKGBTdGFydGluZyAnJHt0YXNrLm5hbWV9Jy4uLmAsIHN0YXJ0KTtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGFzayguLi5vcHRpb25zKTtcbiAgY29uc3QgZW5kID0gbmV3IERhdGUoKTtcbiAgY29uc3QgdGltZSA9IGVuZC5nZXRUaW1lKCkgLSBzdGFydC5nZXRUaW1lKCk7XG4gIGJ1aWxkTG9nKGBGaW5pc2hlZCAnJHt0YXNrLm5hbWV9JyBhZnRlciAke3RpbWV9IG1zYCwgZW5kKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IHR5cGUgUnVuQ2xpT3B0aW9uczxUPiA9IHtcbiAgcmVzb2x2ZUZuPzogKHBhdGg6IHN0cmluZykgPT4gUnVubmFibGVNb2R1bGU8VD4sXG4gIGRlZmF1bHRBY3Rpb24/OiBzdHJpbmcgfCBSdW5uYWJsZU1vZHVsZTxUPixcbiAgYXJndj86IHN0cmluZ1tdLFxuICBwYXNzdGhyb3VnaEFyZ3Y/OiBib29sZWFuLFxufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkNsaTxUPih7XG4gIHJlc29sdmVGbiA9IChwYXRoOiBzdHJpbmcpID0+XG4gICAgLy8gJEZsb3dGaXhNZVxuICAgIHJlcXVpcmUoYC4vJHtwYXRofWApLmRlZmF1bHQsIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgZGVmYXVsdEFjdGlvbiA9ICdwdWJsaXNoJyxcbiAgYXJndiA9IHByb2Nlc3MuYXJndixcbiAgcGFzc3Rocm91Z2hBcmd2ID0gZmFsc2UsXG59OiBSdW5DbGlPcHRpb25zPFQ+ID0ge30pOiBQcm9taXNlPFQ+IHtcbiAgY29uc3QgbW9kdWxlID1cbiAgICBhcmd2Lmxlbmd0aCA+IDJcbiAgICAgID8gcmVzb2x2ZUZuKGFyZ3ZbMl0pXG4gICAgICA6IHR5cGVvZiBkZWZhdWx0QWN0aW9uID09PSAnc3RyaW5nJ1xuICAgICAgPyByZXNvbHZlRm4oZGVmYXVsdEFjdGlvbilcbiAgICAgIDogZGVmYXVsdEFjdGlvbjtcbiAgY29uc3QgYXJncyA9IEFycmF5LmlzQXJyYXkocGFzc3Rocm91Z2hBcmd2KVxuICAgID8gcGFzc3Rocm91Z2hBcmd2LmluY2x1ZGVzKGFyZ3ZbMl0gfHwgZGVmYXVsdEFjdGlvbilcbiAgICAgID8gYXJndi5zbGljZSgzKVxuICAgICAgOiBbXVxuICAgIDogcGFzc3Rocm91Z2hBcmd2XG4gICAgPyBhcmd2LnNsaWNlKDMpXG4gICAgOiBbXTtcbiAgcmV0dXJuIHJ1bihtb2R1bGUsIC4uLmFyZ3MpLmNhdGNoKChlcnIpID0+IHtcbiAgICBjb25zb2xlLmVycm9yKChlcnIgJiYgZXJyLnN0YWNrKSB8fCBlcnIpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB0aHJvdyBlcnI7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlRW50cnlQb2ludDxUPihcbiAgbWFpbk1vZHVsZTogdHlwZW9mIG1vZHVsZSxcbiAgbWFpbk1vZHVsZUZpbGVuYW1lOiBzdHJpbmcsXG4gIGNsaU9wdGlvbnM/OiBSdW5DbGlPcHRpb25zPFQ+LFxuKSB7XG4gIGlmIChyZXF1aXJlLm1haW4gPT09IG1haW5Nb2R1bGUpIHtcbiAgICBkZWxldGUgcmVxdWlyZS5jYWNoZVttYWluTW9kdWxlRmlsZW5hbWVdOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVuZGVyc2NvcmUtZGFuZ2xlXG4gICAgcnVuQ2xpKGNsaU9wdGlvbnMpO1xuICB9XG59XG5cbmhhbmRsZUVudHJ5UG9pbnQobW9kdWxlLCBfX2ZpbGVuYW1lKTtcblxuZXhwb3J0IGRlZmF1bHQgcnVuO1xuIl19
package/run.js.flow DELETED
@@ -1,89 +0,0 @@
1
- // @flow
2
- export function format(time?: Date = new Date()): string {
3
- return time.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, '$1');
4
- }
5
-
6
- const silenceLogs = process.argv.includes('--silence-buildLog');
7
-
8
- export function buildLog(msg: string, time?: Date) {
9
- if (silenceLogs) {
10
- return;
11
- }
12
- console.info(`[${format(time || new Date())}] ${msg}`);
13
- }
14
-
15
- export type RunnableModule<T> =
16
- | (() => Promise<T>)
17
- | { default: () => Promise<T> };
18
-
19
- export async function run<T>(
20
- fn: RunnableModule<T>,
21
- ...options: any[]
22
- ): Promise<T> {
23
- if (fn == null) {
24
- throw new Error(`Invalid argument passed to run(${fn})`);
25
- }
26
- const task = typeof fn === 'function' ? fn : fn.default;
27
- if (typeof task !== 'function') {
28
- throw new Error(
29
- 'First argument to run must be a function or module with default function.',
30
- );
31
- }
32
- const start = new Date();
33
- buildLog(`Starting '${task.name}'...`, start);
34
- const result = await task(...options);
35
- const end = new Date();
36
- const time = end.getTime() - start.getTime();
37
- buildLog(`Finished '${task.name}' after ${time} ms`, end);
38
- return result;
39
- }
40
-
41
- export type RunCliOptions<T> = {
42
- resolveFn?: (path: string) => RunnableModule<T>,
43
- defaultAction?: string | RunnableModule<T>,
44
- argv?: string[],
45
- passthroughArgv?: boolean,
46
- };
47
-
48
- export async function runCli<T>({
49
- resolveFn = (path: string) =>
50
- // $FlowFixMe
51
- require(`./${path}`).default, // eslint-disable-line
52
- defaultAction = 'publish',
53
- argv = process.argv,
54
- passthroughArgv = false,
55
- }: RunCliOptions<T> = {}): Promise<T> {
56
- const module =
57
- argv.length > 2
58
- ? resolveFn(argv[2])
59
- : typeof defaultAction === 'string'
60
- ? resolveFn(defaultAction)
61
- : defaultAction;
62
- const args = Array.isArray(passthroughArgv)
63
- ? passthroughArgv.includes(argv[2] || defaultAction)
64
- ? argv.slice(3)
65
- : []
66
- : passthroughArgv
67
- ? argv.slice(3)
68
- : [];
69
- return run(module, ...args).catch((err) => {
70
- console.error((err && err.stack) || err);
71
- process.exit(1);
72
- throw err;
73
- });
74
- }
75
-
76
- export function handleEntryPoint<T>(
77
- mainModule: typeof module,
78
- mainModuleFilename: string,
79
- cliOptions?: RunCliOptions<T>,
80
- ) {
81
- if (require.main === mainModule) {
82
- delete require.cache[mainModuleFilename]; // eslint-disable-line no-underscore-dangle
83
- runCli(cliOptions);
84
- }
85
- }
86
-
87
- handleEntryPoint(module, __filename);
88
-
89
- export default run;