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.
Files changed (130) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -34
  3. package/dist/src/ant.d.ts +19 -0
  4. package/dist/src/ant.js +18 -0
  5. package/dist/src/cert.d.ts +12 -0
  6. package/dist/src/cert.js +91 -0
  7. package/dist/src/clean.d.ts +4 -0
  8. package/dist/src/clean.js +11 -0
  9. package/dist/src/copy.d.ts +7 -0
  10. package/dist/src/copy.js +53 -0
  11. package/dist/src/cp.d.ts +17 -0
  12. package/dist/src/cp.js +88 -0
  13. package/dist/src/docker.container.d.ts +73 -0
  14. package/dist/src/docker.container.js +247 -0
  15. package/dist/src/docker.d.ts +68 -0
  16. package/dist/src/docker.js +188 -0
  17. package/dist/src/docker.network.d.ts +42 -0
  18. package/dist/src/docker.network.js +85 -0
  19. package/dist/src/docker.volume.d.ts +26 -0
  20. package/dist/src/docker.volume.js +62 -0
  21. package/dist/src/dockerCleanup.d.ts +38 -0
  22. package/dist/src/dockerCleanup.js +77 -0
  23. package/dist/src/dockerCompose.d.ts +154 -0
  24. package/dist/src/dockerCompose.js +439 -0
  25. package/dist/src/fs.d.ts +5 -0
  26. package/dist/src/fs.js +38 -0
  27. package/dist/src/git.d.ts +9 -0
  28. package/dist/src/git.js +24 -0
  29. package/dist/src/index.d.ts +20 -0
  30. package/dist/src/index.js +20 -0
  31. package/dist/src/maps.d.ts +33 -0
  32. package/dist/src/maps.js +41 -0
  33. package/dist/src/npm.d.ts +35 -0
  34. package/dist/src/npm.js +104 -0
  35. package/dist/src/pkg.d.ts +33 -0
  36. package/dist/src/pkg.js +33 -0
  37. package/dist/src/publish.d.ts +27 -0
  38. package/dist/src/publish.js +57 -0
  39. package/dist/src/run.d.ts +13 -0
  40. package/dist/src/run.js +44 -0
  41. package/dist/src/tgz.d.ts +13 -0
  42. package/dist/src/tgz.js +67 -0
  43. package/dist/src/version.d.ts +34 -0
  44. package/dist/src/version.js +101 -0
  45. package/dist/src/yarn.d.ts +26 -0
  46. package/dist/src/yarn.js +75 -0
  47. package/package.json +74 -20
  48. package/ant.js +0 -43
  49. package/ant.js.flow +0 -42
  50. package/artifactory.js +0 -617
  51. package/artifactory.js.flow +0 -616
  52. package/cert.conf +0 -20
  53. package/cert.js +0 -153
  54. package/cert.js.flow +0 -152
  55. package/clean.js +0 -20
  56. package/clean.js.flow +0 -19
  57. package/copy.js +0 -80
  58. package/copy.js.flow +0 -79
  59. package/cp.js +0 -173
  60. package/cp.js.flow +0 -172
  61. package/docker.container.js +0 -390
  62. package/docker.container.js.flow +0 -389
  63. package/docker.js +0 -368
  64. package/docker.js.flow +0 -367
  65. package/docker.network.js +0 -160
  66. package/docker.network.js.flow +0 -159
  67. package/docker.volume.js +0 -136
  68. package/docker.volume.js.flow +0 -136
  69. package/dockerCleanup.js +0 -152
  70. package/dockerCleanup.js.flow +0 -151
  71. package/dockerCompose.js +0 -766
  72. package/dockerCompose.js.flow +0 -765
  73. package/flow.js +0 -21
  74. package/flow.js.flow +0 -20
  75. package/fs.js +0 -95
  76. package/fs.js.flow +0 -96
  77. package/git.js +0 -35
  78. package/git.js.flow +0 -34
  79. package/hg.js +0 -35
  80. package/hg.js.flow +0 -34
  81. package/index.js +0 -27
  82. package/index.js.flow +0 -26
  83. package/inline-resources.js +0 -158
  84. package/inline-resources.js.flow +0 -157
  85. package/maps.js +0 -112
  86. package/maps.js.flow +0 -111
  87. package/npm.js +0 -145
  88. package/npm.js.flow +0 -144
  89. package/pkg.js +0 -81
  90. package/pkg.js.flow +0 -80
  91. package/publish.js +0 -145
  92. package/publish.js.flow +0 -144
  93. package/run.js +0 -90
  94. package/run.js.flow +0 -89
  95. package/src/ant.js +0 -42
  96. package/src/artifactory.js +0 -616
  97. package/src/cert.conf +0 -20
  98. package/src/cert.js +0 -152
  99. package/src/clean.js +0 -19
  100. package/src/copy.js +0 -79
  101. package/src/cp.js +0 -172
  102. package/src/docker.container.js +0 -389
  103. package/src/docker.js +0 -367
  104. package/src/docker.network.js +0 -159
  105. package/src/docker.volume.js +0 -136
  106. package/src/dockerCleanup.js +0 -151
  107. package/src/dockerCompose.js +0 -765
  108. package/src/flow.js +0 -20
  109. package/src/fs.js +0 -96
  110. package/src/git.js +0 -34
  111. package/src/hg.js +0 -34
  112. package/src/index.js +0 -26
  113. package/src/inline-resources.js +0 -157
  114. package/src/maps.js +0 -111
  115. package/src/npm.js +0 -144
  116. package/src/pkg.js +0 -80
  117. package/src/publish.js +0 -144
  118. package/src/run.js +0 -89
  119. package/src/test.js +0 -55
  120. package/src/tgz.js +0 -101
  121. package/src/version.js +0 -141
  122. package/src/yarn.js +0 -123
  123. package/test.js +0 -56
  124. package/test.js.flow +0 -55
  125. package/tgz.js +0 -102
  126. package/tgz.js.flow +0 -101
  127. package/version.js +0 -142
  128. package/version.js.flow +0 -141
  129. package/yarn.js +0 -124
  130. package/yarn.js.flow +0 -123
package/npm.js.flow DELETED
@@ -1,144 +0,0 @@
1
- // @flow
2
- import { platform } from 'os';
3
- import path from 'path';
4
- import fs from 'fs-extra';
5
-
6
- import { spawn, exec } from './cp';
7
- import { getCfg, getPkgName } from './pkg';
8
- import { getVersion, getDevBranch } from './version';
9
- import { buildLog } from './run';
10
-
11
- export type NpmCreds = {
12
- username: string,
13
- password: string,
14
- email: string,
15
- };
16
-
17
- export type NpmConfig = {
18
- publish: boolean,
19
- registry?: string,
20
- access?: 'public' | 'restricted',
21
- dryRun?: boolean,
22
- };
23
-
24
- export function getNpmConfig(): NpmConfig {
25
- return getCfg().npm || {};
26
- }
27
-
28
- const envNpmCreds: ?NpmCreds =
29
- (process.env.NPM_CREDS && JSON.parse(process.env.NPM_CREDS)) || null;
30
-
31
- const npmExe = (npmPath?: string) =>
32
- npmPath || (platform() === 'win32' ? 'npm.cmd' : 'npm');
33
-
34
- export async function npmExec(
35
- args: string[],
36
- npmPath?: string,
37
- ): Promise<string> {
38
- return (await exec(`${npmExe(npmPath)} ${args.join(' ')}`)).stdout.toString();
39
- }
40
-
41
- export async function npmGetVersions(
42
- packageName: string,
43
- npmPath?: string,
44
- ): Promise<string[]> {
45
- try {
46
- return JSON.parse(
47
- await npmExec(['show', packageName, 'versions'], npmPath),
48
- );
49
- } catch (err) {
50
- buildLog(
51
- `warning: failed to find existing package for ${packageName} in npm registry: ${err.message}`,
52
- );
53
- return [];
54
- }
55
- }
56
-
57
- export type NpmPublishOptions = {|
58
- publishPath: string, // distDir, or package.tgz file
59
- npmConfig?: NpmConfig,
60
- npmCreds?: NpmCreds,
61
- npmAuthToken?: string,
62
- tag?: string,
63
- skipExisting?: boolean,
64
- npmPath?: string, // path to executable
65
- |};
66
-
67
- export async function npmPublish({
68
- publishPath,
69
- npmConfig,
70
- npmCreds,
71
- npmAuthToken,
72
- tag,
73
- skipExisting = false,
74
- npmPath,
75
- }: NpmPublishOptions = {}): Promise<boolean> {
76
- const creds = npmCreds || envNpmCreds;
77
- const authToken = npmAuthToken || process.env.NPM_TOKEN;
78
- const name = getPkgName();
79
- const { publish, registry, access, dryRun } = npmConfig || getNpmConfig();
80
- if (!publish) {
81
- buildLog(
82
- 'npm publish info missing from package.json, skipping npm publish',
83
- );
84
- return false;
85
- }
86
- const resolvedPath = path.resolve(publishPath);
87
- const workDir = (await fs.stat(resolvedPath)).isDirectory()
88
- ? resolvedPath
89
- : path.dirname(resolvedPath);
90
- if (creds || registry || authToken) {
91
- // Write out .npmrc with credentials
92
- const theRegistry = registry || 'https://registry.npmjs.org/';
93
- const [, host] = /^(?:http(?:s)?:\/\/)?(.+)$/.exec(theRegistry) || [];
94
- await fs.mkdirp(workDir);
95
- await fs.writeFile(
96
- path.join(workDir, '.npmrc'),
97
- `registry=${theRegistry}
98
- ${authToken ? `//${host}:_authToken=${authToken}` : ''}
99
- ${
100
- creds
101
- ? `_auth=${Buffer.from(`${creds.username}:${creds.password}`).toString(
102
- 'base64',
103
- )}
104
- always-auth=true
105
- email=${creds.email}`
106
- : ''
107
- }`,
108
- );
109
- }
110
- const existing = await npmGetVersions(name, npmPath);
111
- const { isRelease, npm: npmVersion, branch } = await getVersion();
112
- if (existing.includes(npmVersion)) {
113
- if (skipExisting) {
114
- buildLog(
115
- 'npm package with this same version already exists. Skipping publish...',
116
- );
117
- return false;
118
- }
119
- throw new Error(
120
- 'Failed to publish npm package, this version already exists!',
121
- );
122
- }
123
- await spawn(
124
- npmExe(npmPath),
125
- [
126
- 'publish',
127
- resolvedPath,
128
- '--tag',
129
- tag ||
130
- (isRelease
131
- ? 'latest'
132
- : branch === (await getDevBranch())
133
- ? 'next'
134
- : 'branch'),
135
- ...(access ? ['--access', access] : []),
136
- ...(dryRun ? ['--dry-run'] : []),
137
- ],
138
- {
139
- stdio: 'inherit',
140
- cwd: workDir,
141
- },
142
- );
143
- return true;
144
- }
package/pkg.js DELETED
@@ -1,81 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.getCfg = getCfg;exports.getPkg = getPkg;exports.getPkgName = getPkgName;exports.getPkgScope = getPkgScope;exports.setPkg = setPkg;
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
- let _pkg = null;
41
- function getPkg() {
42
- if (_pkg == null) {
43
- throw new Error(
44
- 'Must call setPkg() with package.json content before building.');
45
-
46
- }
47
- return _pkg;
48
- }
49
-
50
- function getCfg() {
51
- return getPkg().buildStrap || {};
52
- }
53
-
54
- function setPkg(p) {
55
- _pkg = p;
56
- }
57
-
58
- const pkgNameRegex = /^(?:(@[^/]+)\/)?(.+)$/i;
59
-
60
- function getPkgName(includeScope = false) {
61
- const pkg = getPkg();
62
- if (!(pkg.name && pkg.name.length)) {
63
- throw new Error(
64
- 'Package name not found in package.json, but this is a required property!');
65
-
66
- }
67
- if (includeScope) {
68
- return pkg.name;
69
- }
70
- const [,, shortName] = pkg.name.match(pkgNameRegex) || [];
71
- if (!shortName) {
72
- throw new Error('Package name in package.json has invalid format.');
73
- }
74
- return shortName;
75
- }
76
-
77
- function getPkgScope() {var _pkgName$match;
78
- const pkgName = getPkgName(true);
79
- return ((_pkgName$match = pkgName.match(pkgNameRegex)) === null || _pkgName$match === void 0 ? void 0 : _pkgName$match[1]) || null;
80
- }
81
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wa2cuanMiXSwibmFtZXMiOlsiX3BrZyIsImdldFBrZyIsIkVycm9yIiwiZ2V0Q2ZnIiwiYnVpbGRTdHJhcCIsInNldFBrZyIsInAiLCJwa2dOYW1lUmVnZXgiLCJnZXRQa2dOYW1lIiwiaW5jbHVkZVNjb3BlIiwicGtnIiwibmFtZSIsImxlbmd0aCIsInNob3J0TmFtZSIsIm1hdGNoIiwiZ2V0UGtnU2NvcGUiLCJwa2dOYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Q0EsSUFBSUEsSUFBa0IsR0FBRyxJQUF6QjtBQUNPLFNBQVNDLE1BQVQsR0FBK0I7QUFDcEMsTUFBSUQsSUFBSSxJQUFJLElBQVosRUFBa0I7QUFDaEIsVUFBTSxJQUFJRSxLQUFKO0FBQ0osbUVBREksQ0FBTjs7QUFHRDtBQUNELFNBQU9GLElBQVA7QUFDRDs7QUFFTSxTQUFTRyxNQUFULEdBQW9DO0FBQ3pDLFNBQU9GLE1BQU0sR0FBR0csVUFBVCxJQUF1QixFQUE5QjtBQUNEOztBQUVNLFNBQVNDLE1BQVQsQ0FBZ0JDLENBQWhCLEVBQWdDO0FBQ3JDTixFQUFBQSxJQUFJLEdBQUdNLENBQVA7QUFDRDs7QUFFRCxNQUFNQyxZQUFZLEdBQUcsd0JBQXJCOztBQUVPLFNBQVNDLFVBQVQsQ0FBb0JDLFlBQXFCLEdBQUcsS0FBNUMsRUFBMkQ7QUFDaEUsUUFBTUMsR0FBRyxHQUFHVCxNQUFNLEVBQWxCO0FBQ0EsTUFBSSxFQUFFUyxHQUFHLENBQUNDLElBQUosSUFBWUQsR0FBRyxDQUFDQyxJQUFKLENBQVNDLE1BQXZCLENBQUosRUFBb0M7QUFDbEMsVUFBTSxJQUFJVixLQUFKO0FBQ0osOEVBREksQ0FBTjs7QUFHRDtBQUNELE1BQUlPLFlBQUosRUFBa0I7QUFDaEIsV0FBT0MsR0FBRyxDQUFDQyxJQUFYO0FBQ0Q7QUFDRCxRQUFNLElBQUtFLFNBQUwsSUFBa0JILEdBQUcsQ0FBQ0MsSUFBSixDQUFTRyxLQUFULENBQWVQLFlBQWYsS0FBZ0MsRUFBeEQ7QUFDQSxNQUFJLENBQUNNLFNBQUwsRUFBZ0I7QUFDZCxVQUFNLElBQUlYLEtBQUosQ0FBVSxrREFBVixDQUFOO0FBQ0Q7QUFDRCxTQUFPVyxTQUFQO0FBQ0Q7O0FBRU0sU0FBU0UsV0FBVCxHQUFnQztBQUNyQyxRQUFNQyxPQUFPLEdBQUdSLFVBQVUsQ0FBQyxJQUFELENBQTFCO0FBQ0EsU0FBTyxtQkFBQVEsT0FBTyxDQUFDRixLQUFSLENBQWNQLFlBQWQsbUVBQThCLENBQTlCLE1BQW9DLElBQTNDO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuaW1wb3J0IHR5cGUgeyBBcnRpZmFjdG9yeUNvbmZpZyB9IGZyb20gJy4vYXJ0aWZhY3RvcnknO1xuaW1wb3J0IHR5cGUgeyBDZXJ0Q29uZmlnIH0gZnJvbSAnLi9jZXJ0JztcbmltcG9ydCB0eXBlIHsgRG9ja2VyQ29uZmlnIH0gZnJvbSAnLi9kb2NrZXInO1xuaW1wb3J0IHR5cGUgeyBOcG1Db25maWcgfSBmcm9tICcuL25wbSc7XG5cbmV4cG9ydCB0eXBlIEJ1aWxkU3RyYXBDb25maWcgPSB7XG4gIHJlcG9UeXBlPzogJ2dpdCcgfCAnaGcnLFxuICBjb3B5cmlnaHQ/OiBzdHJpbmcsXG4gIHJlbGVhc2VCcmFuY2g/OiBzdHJpbmcsXG4gIGRldkJyYW5jaD86IHN0cmluZyxcbiAgYXJ0aWZhY3Rvcnk/OiBBcnRpZmFjdG9yeUNvbmZpZyxcbiAgY2VydD86IENlcnRDb25maWcsXG4gIGRvY2tlcj86IERvY2tlckNvbmZpZyxcbiAgbnBtPzogTnBtQ29uZmlnLFxufTtcblxudHlwZSBTdHJpbmdNYXAgPSB7XG4gIFtzdHJpbmddOiBzdHJpbmcsXG59O1xuXG5leHBvcnQgdHlwZSBQYWNrYWdlSnNvbiA9IHtcbiAgbmFtZTogc3RyaW5nLFxuICB2ZXJzaW9uOiBzdHJpbmcsXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nLFxuICBwcml2YXRlPzogYm9vbGVhbixcbiAgbGljZW5zZT86IHN0cmluZyxcbiAgYXV0aG9ycz86IHN0cmluZ1tdLFxuICByZXBvc2l0b3J5Pzogc3RyaW5nLFxuICBtYWluPzogc3RyaW5nLFxuICBkZXBlbmRlbmNpZXM/OiBTdHJpbmdNYXAsXG4gIGRldkRlcGVuZGVuY2llcz86IFN0cmluZ01hcCxcbiAgcGVlckRlcGVuZGVuY2llcz86IFN0cmluZ01hcCxcbiAgZW5naW5lcz86IFN0cmluZ01hcCxcbiAgc2NyaXB0cz86IFN0cmluZ01hcCxcbiAgLy8gb3VyIGFkZGl0aW9uXG4gIGJ1aWxkU3RyYXA6IEJ1aWxkU3RyYXBDb25maWcsXG59O1xuXG5sZXQgX3BrZzogP1BhY2thZ2VKc29uID0gbnVsbDtcbmV4cG9ydCBmdW5jdGlvbiBnZXRQa2coKTogUGFja2FnZUpzb24ge1xuICBpZiAoX3BrZyA9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ011c3QgY2FsbCBzZXRQa2coKSB3aXRoIHBhY2thZ2UuanNvbiBjb250ZW50IGJlZm9yZSBidWlsZGluZy4nLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIF9wa2c7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDZmcoKTogQnVpbGRTdHJhcENvbmZpZyB7XG4gIHJldHVybiBnZXRQa2coKS5idWlsZFN0cmFwIHx8IHt9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0UGtnKHA6IFBhY2thZ2VKc29uKSB7XG4gIF9wa2cgPSBwO1xufVxuXG5jb25zdCBwa2dOYW1lUmVnZXggPSAvXig/OihAW14vXSspXFwvKT8oLispJC9pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGtnTmFtZShpbmNsdWRlU2NvcGU6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XG4gIGNvbnN0IHBrZyA9IGdldFBrZygpO1xuICBpZiAoIShwa2cubmFtZSAmJiBwa2cubmFtZS5sZW5ndGgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1BhY2thZ2UgbmFtZSBub3QgZm91bmQgaW4gcGFja2FnZS5qc29uLCBidXQgdGhpcyBpcyBhIHJlcXVpcmVkIHByb3BlcnR5IScsXG4gICAgKTtcbiAgfVxuICBpZiAoaW5jbHVkZVNjb3BlKSB7XG4gICAgcmV0dXJuIHBrZy5uYW1lO1xuICB9XG4gIGNvbnN0IFssICwgc2hvcnROYW1lXSA9IHBrZy5uYW1lLm1hdGNoKHBrZ05hbWVSZWdleCkgfHwgW107XG4gIGlmICghc2hvcnROYW1lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdQYWNrYWdlIG5hbWUgaW4gcGFja2FnZS5qc29uIGhhcyBpbnZhbGlkIGZvcm1hdC4nKTtcbiAgfVxuICByZXR1cm4gc2hvcnROYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGtnU2NvcGUoKTogP3N0cmluZyB7XG4gIGNvbnN0IHBrZ05hbWUgPSBnZXRQa2dOYW1lKHRydWUpO1xuICByZXR1cm4gcGtnTmFtZS5tYXRjaChwa2dOYW1lUmVnZXgpPy5bMV0gfHwgbnVsbDtcbn1cbiJdfQ==
package/pkg.js.flow DELETED
@@ -1,80 +0,0 @@
1
- // @flow
2
- import type { ArtifactoryConfig } from './artifactory';
3
- import type { CertConfig } from './cert';
4
- import type { DockerConfig } from './docker';
5
- import type { NpmConfig } from './npm';
6
-
7
- export type BuildStrapConfig = {
8
- repoType?: 'git' | 'hg',
9
- copyright?: string,
10
- releaseBranch?: string,
11
- devBranch?: string,
12
- artifactory?: ArtifactoryConfig,
13
- cert?: CertConfig,
14
- docker?: DockerConfig,
15
- npm?: NpmConfig,
16
- };
17
-
18
- type StringMap = {
19
- [string]: string,
20
- };
21
-
22
- export type PackageJson = {
23
- name: string,
24
- version: string,
25
- description?: string,
26
- private?: boolean,
27
- license?: string,
28
- authors?: string[],
29
- repository?: string,
30
- main?: string,
31
- dependencies?: StringMap,
32
- devDependencies?: StringMap,
33
- peerDependencies?: StringMap,
34
- engines?: StringMap,
35
- scripts?: StringMap,
36
- // our addition
37
- buildStrap: BuildStrapConfig,
38
- };
39
-
40
- let _pkg: ?PackageJson = null;
41
- export function getPkg(): PackageJson {
42
- if (_pkg == null) {
43
- throw new Error(
44
- 'Must call setPkg() with package.json content before building.',
45
- );
46
- }
47
- return _pkg;
48
- }
49
-
50
- export function getCfg(): BuildStrapConfig {
51
- return getPkg().buildStrap || {};
52
- }
53
-
54
- export function setPkg(p: PackageJson) {
55
- _pkg = p;
56
- }
57
-
58
- const pkgNameRegex = /^(?:(@[^/]+)\/)?(.+)$/i;
59
-
60
- export function getPkgName(includeScope: boolean = false): string {
61
- const pkg = getPkg();
62
- if (!(pkg.name && pkg.name.length)) {
63
- throw new Error(
64
- 'Package name not found in package.json, but this is a required property!',
65
- );
66
- }
67
- if (includeScope) {
68
- return pkg.name;
69
- }
70
- const [, , shortName] = pkg.name.match(pkgNameRegex) || [];
71
- if (!shortName) {
72
- throw new Error('Package name in package.json has invalid format.');
73
- }
74
- return shortName;
75
- }
76
-
77
- export function getPkgScope(): ?string {
78
- const pkgName = getPkgName(true);
79
- return pkgName.match(pkgNameRegex)?.[1] || null;
80
- }
package/publish.js DELETED
@@ -1,145 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.createArtifact = createArtifact;exports.publish = publish;
2
- var _path = _interopRequireDefault(require("path"));
3
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
4
- var _run = require("./run");
5
- var _version = require("./version");
6
- var _pkg = require("./pkg");
7
- var _artifactory = require("./artifactory");
8
-
9
-
10
-
11
-
12
-
13
- var _npm = require("./npm");
14
-
15
- var _tgz = require("./tgz");function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
- // create tgz from distDir in outDir
32
- async function createArtifact({
33
- distDir,
34
- outDir,
35
- fileName })
36
- {
37
- const version = await (0, _version.getVersion)();
38
- const name = (0, _pkg.getPkgName)();
39
-
40
- (0, _run.buildLog)(`gzipping ${name} v${version.info}...`);
41
-
42
- const tgzFileName = fileName || `${name}-${version.info}.tgz`;
43
- const tgzFilePath = _path.default.join(outDir, tgzFileName);
44
- const info = await (0, _tgz.tgzDir)(distDir, tgzFilePath, {
45
- prefix: 'package' });
46
-
47
-
48
- (0, _run.buildLog)(`md5: ${info.md5}`);
49
- (0, _run.buildLog)(`sha1: ${info.sha1}`);
50
- (0, _run.buildLog)(`sha512: ${info.sha512}`);
51
- (0, _run.buildLog)(`size: ${info.size} bytes`);
52
-
53
- return {
54
- name,
55
- version,
56
- info,
57
- fileName: tgzFileName,
58
- filePath: tgzFilePath };
59
-
60
- }
61
-
62
-
63
-
64
-
65
-
66
-
67
-
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
- // tgz the distDir, and copy it to the outDir
77
- // if toArtifactory is true, also publishes to artifactory
78
- async function publish({
79
- distDir,
80
- outDir,
81
- doPublish,
82
- prePublishFn,
83
- fileName,
84
- artifactoryConfig,
85
- artifactoryCreds,
86
- npmPath,
87
- npmTag,
88
- npmSkipExisting = false,
89
- npmConfig,
90
- npmCreds,
91
- npmAuthToken })
92
- {
93
- if (typeof prePublishFn === 'function') {
94
- await (0, _run.run)(async () => {
95
- await prePublishFn();
96
- });
97
- }
98
-
99
- const {
100
- info,
101
- filePath: tgzFilePath,
102
- fileName: tgzFileName } =
103
- await createArtifact({ distDir, outDir, fileName });
104
-
105
- if (!doPublish) {
106
- (0, _run.buildLog)(
107
- 'Skipping publish for dev build. Use `--publish` arg to publish for real.');
108
-
109
- return;
110
- }
111
-
112
- // Publish to all repos configured in package.json
113
- await _fsExtra.default.copyFile(
114
- _path.default.join(distDir, 'package.json'),
115
- _path.default.join(outDir, 'package.json'));
116
-
117
- const artifact = _fsExtra.default.createReadStream(tgzFilePath);
118
- await Promise.all([
119
- (0, _npm.npmPublish)({
120
- publishPath: tgzFilePath,
121
- npmConfig,
122
- npmCreds,
123
- npmAuthToken,
124
- tag: npmTag,
125
- skipExisting: npmSkipExisting,
126
- npmPath }),
127
-
128
- (0, _artifactory.artifactoryStandard)(
129
- artifact,
130
- info,
131
- tgzFileName,
132
- artifactoryConfig,
133
- artifactoryCreds),
134
-
135
- (0, _artifactory.artifactoryNpm)(
136
- distDir,
137
- artifactoryConfig,
138
- artifactoryCreds,
139
- npmPath,
140
- npmTag,
141
- npmSkipExisting)]);
142
-
143
-
144
- }
145
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wdWJsaXNoLmpzIl0sIm5hbWVzIjpbImNyZWF0ZUFydGlmYWN0IiwiZGlzdERpciIsIm91dERpciIsImZpbGVOYW1lIiwidmVyc2lvbiIsIm5hbWUiLCJpbmZvIiwidGd6RmlsZU5hbWUiLCJ0Z3pGaWxlUGF0aCIsInBhdGgiLCJqb2luIiwicHJlZml4IiwibWQ1Iiwic2hhMSIsInNoYTUxMiIsInNpemUiLCJmaWxlUGF0aCIsInB1Ymxpc2giLCJkb1B1Ymxpc2giLCJwcmVQdWJsaXNoRm4iLCJhcnRpZmFjdG9yeUNvbmZpZyIsImFydGlmYWN0b3J5Q3JlZHMiLCJucG1QYXRoIiwibnBtVGFnIiwibnBtU2tpcEV4aXN0aW5nIiwibnBtQ29uZmlnIiwibnBtQ3JlZHMiLCJucG1BdXRoVG9rZW4iLCJmcyIsImNvcHlGaWxlIiwiYXJ0aWZhY3QiLCJjcmVhdGVSZWFkU3RyZWFtIiwiUHJvbWlzZSIsImFsbCIsInB1Ymxpc2hQYXRoIiwidGFnIiwic2tpcEV4aXN0aW5nIl0sIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUFNQTs7QUFFQSw0Qjs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQTtBQUNPLGVBQWVBLGNBQWYsQ0FBOEI7QUFDbkNDLEVBQUFBLE9BRG1DO0FBRW5DQyxFQUFBQSxNQUZtQztBQUduQ0MsRUFBQUEsUUFIbUMsRUFBOUI7QUFJc0M7QUFDM0MsUUFBTUMsT0FBTyxHQUFHLE1BQU0sMEJBQXRCO0FBQ0EsUUFBTUMsSUFBSSxHQUFHLHNCQUFiOztBQUVBLHFCQUFVLFlBQVdBLElBQUssS0FBSUQsT0FBTyxDQUFDRSxJQUFLLEtBQTNDOztBQUVBLFFBQU1DLFdBQVcsR0FBR0osUUFBUSxJQUFLLEdBQUVFLElBQUssSUFBR0QsT0FBTyxDQUFDRSxJQUFLLE1BQXhEO0FBQ0EsUUFBTUUsV0FBVyxHQUFHQyxjQUFLQyxJQUFMLENBQVVSLE1BQVYsRUFBa0JLLFdBQWxCLENBQXBCO0FBQ0EsUUFBTUQsSUFBSSxHQUFHLE1BQU0saUJBQU9MLE9BQVAsRUFBZ0JPLFdBQWhCLEVBQTZCO0FBQzlDRyxJQUFBQSxNQUFNLEVBQUUsU0FEc0MsRUFBN0IsQ0FBbkI7OztBQUlBLHFCQUFVLFFBQU9MLElBQUksQ0FBQ00sR0FBSSxFQUExQjtBQUNBLHFCQUFVLFNBQVFOLElBQUksQ0FBQ08sSUFBSyxFQUE1QjtBQUNBLHFCQUFVLFdBQVVQLElBQUksQ0FBQ1EsTUFBTyxFQUFoQztBQUNBLHFCQUFVLFNBQVFSLElBQUksQ0FBQ1MsSUFBSyxRQUE1Qjs7QUFFQSxTQUFPO0FBQ0xWLElBQUFBLElBREs7QUFFTEQsSUFBQUEsT0FGSztBQUdMRSxJQUFBQSxJQUhLO0FBSUxILElBQUFBLFFBQVEsRUFBRUksV0FKTDtBQUtMUyxJQUFBQSxRQUFRLEVBQUVSLFdBTEwsRUFBUDs7QUFPRDs7Ozs7Ozs7Ozs7Ozs7OztBQWdCRDtBQUNBO0FBQ08sZUFBZVMsT0FBZixDQUF1QjtBQUM1QmhCLEVBQUFBLE9BRDRCO0FBRTVCQyxFQUFBQSxNQUY0QjtBQUc1QmdCLEVBQUFBLFNBSDRCO0FBSTVCQyxFQUFBQSxZQUo0QjtBQUs1QmhCLEVBQUFBLFFBTDRCO0FBTTVCaUIsRUFBQUEsaUJBTjRCO0FBTzVCQyxFQUFBQSxnQkFQNEI7QUFRNUJDLEVBQUFBLE9BUjRCO0FBUzVCQyxFQUFBQSxNQVQ0QjtBQVU1QkMsRUFBQUEsZUFBZSxHQUFHLEtBVlU7QUFXNUJDLEVBQUFBLFNBWDRCO0FBWTVCQyxFQUFBQSxRQVo0QjtBQWE1QkMsRUFBQUEsWUFiNEIsRUFBdkI7QUFja0I7QUFDdkIsTUFBSSxPQUFPUixZQUFQLEtBQXdCLFVBQTVCLEVBQXdDO0FBQ3RDLFVBQU0sY0FBSSxZQUFZO0FBQ3BCLFlBQU1BLFlBQVksRUFBbEI7QUFDRCxLQUZLLENBQU47QUFHRDs7QUFFRCxRQUFNO0FBQ0piLElBQUFBLElBREk7QUFFSlUsSUFBQUEsUUFBUSxFQUFFUixXQUZOO0FBR0pMLElBQUFBLFFBQVEsRUFBRUksV0FITjtBQUlGLFFBQU1QLGNBQWMsQ0FBQyxFQUFFQyxPQUFGLEVBQVdDLE1BQVgsRUFBbUJDLFFBQW5CLEVBQUQsQ0FKeEI7O0FBTUEsTUFBSSxDQUFDZSxTQUFMLEVBQWdCO0FBQ2Q7QUFDRSw4RUFERjs7QUFHQTtBQUNEOztBQUVEO0FBQ0EsUUFBTVUsaUJBQUdDLFFBQUg7QUFDSnBCLGdCQUFLQyxJQUFMLENBQVVULE9BQVYsRUFBbUIsY0FBbkIsQ0FESTtBQUVKUSxnQkFBS0MsSUFBTCxDQUFVUixNQUFWLEVBQWtCLGNBQWxCLENBRkksQ0FBTjs7QUFJQSxRQUFNNEIsUUFBUSxHQUFHRixpQkFBR0csZ0JBQUgsQ0FBb0J2QixXQUFwQixDQUFqQjtBQUNBLFFBQU13QixPQUFPLENBQUNDLEdBQVIsQ0FBWTtBQUNoQix1QkFBVztBQUNUQyxJQUFBQSxXQUFXLEVBQUUxQixXQURKO0FBRVRpQixJQUFBQSxTQUZTO0FBR1RDLElBQUFBLFFBSFM7QUFJVEMsSUFBQUEsWUFKUztBQUtUUSxJQUFBQSxHQUFHLEVBQUVaLE1BTEk7QUFNVGEsSUFBQUEsWUFBWSxFQUFFWixlQU5MO0FBT1RGLElBQUFBLE9BUFMsRUFBWCxDQURnQjs7QUFVaEI7QUFDRVEsRUFBQUEsUUFERjtBQUVFeEIsRUFBQUEsSUFGRjtBQUdFQyxFQUFBQSxXQUhGO0FBSUVhLEVBQUFBLGlCQUpGO0FBS0VDLEVBQUFBLGdCQUxGLENBVmdCOztBQWlCaEI7QUFDRXBCLEVBQUFBLE9BREY7QUFFRW1CLEVBQUFBLGlCQUZGO0FBR0VDLEVBQUFBLGdCQUhGO0FBSUVDLEVBQUFBLE9BSkY7QUFLRUMsRUFBQUEsTUFMRjtBQU1FQyxFQUFBQSxlQU5GLENBakJnQixDQUFaLENBQU47OztBQTBCRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIEBmbG93XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBydW4sIGJ1aWxkTG9nIH0gZnJvbSAnLi9ydW4nO1xuaW1wb3J0IHsgZ2V0VmVyc2lvbiwgdHlwZSBWZXJzaW9uIH0gZnJvbSAnLi92ZXJzaW9uJztcbmltcG9ydCB7IGdldFBrZ05hbWUgfSBmcm9tICcuL3BrZyc7XG5pbXBvcnQge1xuICBhcnRpZmFjdG9yeU5wbSxcbiAgYXJ0aWZhY3RvcnlTdGFuZGFyZCxcbiAgdHlwZSBBcnRpZmFjdG9yeUNvbmZpZyxcbiAgdHlwZSBBcnRpZmFjdG9yeUNyZWRzLFxufSBmcm9tICcuL2FydGlmYWN0b3J5JztcbmltcG9ydCB7IG5wbVB1Ymxpc2ggfSBmcm9tICcuL25wbSc7XG5pbXBvcnQgdHlwZSB7IE5wbUNvbmZpZywgTnBtQ3JlZHMgfSBmcm9tICcuL25wbSc7XG5pbXBvcnQgeyB0Z3pEaXIsIHR5cGUgQXJ0aWZhY3RJbmZvIH0gZnJvbSAnLi90Z3onO1xuXG5leHBvcnQgdHlwZSBDcmVhdGVBcnRpZmFjdE9wdGlvbnMgPSB7XG4gIGRpc3REaXI6IHN0cmluZywgLy8gV2hhdCB0byBidW5kbGUgdXAgYW5kIHB1Ymxpc2hcbiAgb3V0RGlyOiBzdHJpbmcsIC8vIFdoZXJlIHRoZSBidW5kbGVkIHRneiBmaWxlIHNob3VsZCBnb1xuICBmaWxlTmFtZT86IHN0cmluZywgLy8gKG9wdGlvbmFsKSBTcGVjaWZ5IHRoZSB0Z3ogZmlsZSBuYW1lXG59O1xuXG5leHBvcnQgdHlwZSBBcnRpZmFjdCA9IHtcbiAgbmFtZTogc3RyaW5nLFxuICB2ZXJzaW9uOiBWZXJzaW9uLFxuICBpbmZvOiBBcnRpZmFjdEluZm8sXG4gIGZpbGVOYW1lOiBzdHJpbmcsXG4gIGZpbGVQYXRoOiBzdHJpbmcsXG59XG5cbi8vIGNyZWF0ZSB0Z3ogZnJvbSBkaXN0RGlyIGluIG91dERpclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUFydGlmYWN0KHtcbiAgZGlzdERpcixcbiAgb3V0RGlyLFxuICBmaWxlTmFtZSxcbn06IENyZWF0ZUFydGlmYWN0T3B0aW9ucyk6IFByb21pc2U8QXJ0aWZhY3Q+IHtcbiAgY29uc3QgdmVyc2lvbiA9IGF3YWl0IGdldFZlcnNpb24oKTtcbiAgY29uc3QgbmFtZSA9IGdldFBrZ05hbWUoKTtcblxuICBidWlsZExvZyhgZ3ppcHBpbmcgJHtuYW1lfSB2JHt2ZXJzaW9uLmluZm99Li4uYCk7XG5cbiAgY29uc3QgdGd6RmlsZU5hbWUgPSBmaWxlTmFtZSB8fCBgJHtuYW1lfS0ke3ZlcnNpb24uaW5mb30udGd6YDtcbiAgY29uc3QgdGd6RmlsZVBhdGggPSBwYXRoLmpvaW4ob3V0RGlyLCB0Z3pGaWxlTmFtZSk7XG4gIGNvbnN0IGluZm8gPSBhd2FpdCB0Z3pEaXIoZGlzdERpciwgdGd6RmlsZVBhdGgsIHtcbiAgICBwcmVmaXg6ICdwYWNrYWdlJyxcbiAgfSk7XG5cbiAgYnVpbGRMb2coYG1kNTogJHtpbmZvLm1kNX1gKTtcbiAgYnVpbGRMb2coYHNoYTE6ICR7aW5mby5zaGExfWApO1xuICBidWlsZExvZyhgc2hhNTEyOiAke2luZm8uc2hhNTEyfWApO1xuICBidWlsZExvZyhgc2l6ZTogJHtpbmZvLnNpemV9IGJ5dGVzYCk7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHZlcnNpb24sXG4gICAgaW5mbyxcbiAgICBmaWxlTmFtZTogdGd6RmlsZU5hbWUsXG4gICAgZmlsZVBhdGg6IHRnekZpbGVQYXRoLFxuICB9O1xufVxuXG5leHBvcnQgdHlwZSBQdWJsaXNoQ29uZmlndXJhdGlvbiA9IHtcbiAgLi4uQ3JlYXRlQXJ0aWZhY3RPcHRpb25zLFxuICBkb1B1Ymxpc2g6IGJvb2xlYW4sIC8vIEFjdHVhbGx5IHB1Ymxpc2g/XG4gIHByZVB1Ymxpc2hGbj86ICgpID0+IGFueSwgLy8gKG9wdGlvbmFsKSBDYWxsYmFjayB0byBpbnZva2UgYmVmb3JlIHB1Ymxpc2hpbmdcbiAgYXJ0aWZhY3RvcnlDb25maWc/OiBBcnRpZmFjdG9yeUNvbmZpZywgLy8gKG9wdGlvbmFsKSBBcnRpZmFjdG9yeSBjb25maWcgaW5mbyAobm9ybWFsbHkgaW4gcGFja2FnZS5qc29uKVxuICBhcnRpZmFjdG9yeUNyZWRzPzogQXJ0aWZhY3RvcnlDcmVkcywgLy8gKG9wdGlvbmFsKSBBcnRpZmFjdG9yeSBjcmVkZW50aWFscyAobm9ybWFsbHkgZnJvbSBFTlYgdmFyKVxuICBucG1QYXRoPzogc3RyaW5nLCAvLyAob3B0aW9uYWwpIFBhdGggdG8gbnBtIGV4ZWN1dGFibGVcbiAgbnBtVGFnPzogc3RyaW5nLCAvLyAob3B0aW9uYWwpIHRhZyB0byBhcHBseSB0byBucG0gcGFja2FnZVxuICBucG1Ta2lwRXhpc3Rpbmc/OiBib29sZWFuLCAvLyAob3B0aW9uYWwpIGlmIHRydWUsIGRvbid0IGVycm9yIHdoZW4gYXJ0aWZhY3QgYWxyZWFkeSBleGlzdHMgKHNraXAgcHVibGlzaClcbiAgbnBtQ29uZmlnPzogTnBtQ29uZmlnLCAvLyAob3B0aW9uYWwpIE5wbSBjb25maWcgaW5mbyAobm9ybWFsbHkgaW4gcGFja2FnZS5qc29uKVxuICBucG1DcmVkcz86IE5wbUNyZWRzLCAvLyAob3B0aW9uYWwpIE5wbSBjcmVkZW50aWFscyAobm9ybWFsbHkgZnJvbSBFTlYgdmFyKVxuICBucG1BdXRoVG9rZW4/OiBzdHJpbmcsIC8vIChvcHRpb25hbCkgTnBtIGF1dGggdG9rZW4gKG5vcm1hbGx5IGZyb20gRU5WIHZhcilcbn07XG5cbi8vIHRneiB0aGUgZGlzdERpciwgYW5kIGNvcHkgaXQgdG8gdGhlIG91dERpclxuLy8gaWYgdG9BcnRpZmFjdG9yeSBpcyB0cnVlLCBhbHNvIHB1Ymxpc2hlcyB0byBhcnRpZmFjdG9yeVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHB1Ymxpc2goe1xuICBkaXN0RGlyLFxuICBvdXREaXIsXG4gIGRvUHVibGlzaCxcbiAgcHJlUHVibGlzaEZuLFxuICBmaWxlTmFtZSxcbiAgYXJ0aWZhY3RvcnlDb25maWcsXG4gIGFydGlmYWN0b3J5Q3JlZHMsXG4gIG5wbVBhdGgsXG4gIG5wbVRhZyxcbiAgbnBtU2tpcEV4aXN0aW5nID0gZmFsc2UsXG4gIG5wbUNvbmZpZyxcbiAgbnBtQ3JlZHMsXG4gIG5wbUF1dGhUb2tlbixcbn06IFB1Ymxpc2hDb25maWd1cmF0aW9uKSB7XG4gIGlmICh0eXBlb2YgcHJlUHVibGlzaEZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgYXdhaXQgcnVuKGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHByZVB1Ymxpc2hGbigpO1xuICAgIH0pO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGluZm8sXG4gICAgZmlsZVBhdGg6IHRnekZpbGVQYXRoLFxuICAgIGZpbGVOYW1lOiB0Z3pGaWxlTmFtZSxcbiAgfSA9IGF3YWl0IGNyZWF0ZUFydGlmYWN0KHsgZGlzdERpciwgb3V0RGlyLCBmaWxlTmFtZSB9KTtcblxuICBpZiAoIWRvUHVibGlzaCkge1xuICAgIGJ1aWxkTG9nKFxuICAgICAgJ1NraXBwaW5nIHB1Ymxpc2ggZm9yIGRldiBidWlsZC4gVXNlIGAtLXB1Ymxpc2hgIGFyZyB0byBwdWJsaXNoIGZvciByZWFsLicsXG4gICAgKTtcbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBQdWJsaXNoIHRvIGFsbCByZXBvcyBjb25maWd1cmVkIGluIHBhY2thZ2UuanNvblxuICBhd2FpdCBmcy5jb3B5RmlsZShcbiAgICBwYXRoLmpvaW4oZGlzdERpciwgJ3BhY2thZ2UuanNvbicpLFxuICAgIHBhdGguam9pbihvdXREaXIsICdwYWNrYWdlLmpzb24nKSxcbiAgKTtcbiAgY29uc3QgYXJ0aWZhY3QgPSBmcy5jcmVhdGVSZWFkU3RyZWFtKHRnekZpbGVQYXRoKTtcbiAgYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIG5wbVB1Ymxpc2goe1xuICAgICAgcHVibGlzaFBhdGg6IHRnekZpbGVQYXRoLFxuICAgICAgbnBtQ29uZmlnLFxuICAgICAgbnBtQ3JlZHMsXG4gICAgICBucG1BdXRoVG9rZW4sXG4gICAgICB0YWc6IG5wbVRhZyxcbiAgICAgIHNraXBFeGlzdGluZzogbnBtU2tpcEV4aXN0aW5nLFxuICAgICAgbnBtUGF0aCxcbiAgICB9KSxcbiAgICBhcnRpZmFjdG9yeVN0YW5kYXJkKFxuICAgICAgYXJ0aWZhY3QsXG4gICAgICBpbmZvLFxuICAgICAgdGd6RmlsZU5hbWUsXG4gICAgICBhcnRpZmFjdG9yeUNvbmZpZyxcbiAgICAgIGFydGlmYWN0b3J5Q3JlZHMsXG4gICAgKSxcbiAgICBhcnRpZmFjdG9yeU5wbShcbiAgICAgIGRpc3REaXIsXG4gICAgICBhcnRpZmFjdG9yeUNvbmZpZyxcbiAgICAgIGFydGlmYWN0b3J5Q3JlZHMsXG4gICAgICBucG1QYXRoLFxuICAgICAgbnBtVGFnLFxuICAgICAgbnBtU2tpcEV4aXN0aW5nLFxuICAgICksXG4gIF0pO1xufVxuIl19
package/publish.js.flow DELETED
@@ -1,144 +0,0 @@
1
- // @flow
2
- import path from 'path';
3
- import fs from 'fs-extra';
4
- import { run, buildLog } from './run';
5
- import { getVersion, type Version } from './version';
6
- import { getPkgName } from './pkg';
7
- import {
8
- artifactoryNpm,
9
- artifactoryStandard,
10
- type ArtifactoryConfig,
11
- type ArtifactoryCreds,
12
- } from './artifactory';
13
- import { npmPublish } from './npm';
14
- import type { NpmConfig, NpmCreds } from './npm';
15
- import { tgzDir, type ArtifactInfo } from './tgz';
16
-
17
- export type CreateArtifactOptions = {
18
- distDir: string, // What to bundle up and publish
19
- outDir: string, // Where the bundled tgz file should go
20
- fileName?: string, // (optional) Specify the tgz file name
21
- };
22
-
23
- export type Artifact = {
24
- name: string,
25
- version: Version,
26
- info: ArtifactInfo,
27
- fileName: string,
28
- filePath: string,
29
- }
30
-
31
- // create tgz from distDir in outDir
32
- export async function createArtifact({
33
- distDir,
34
- outDir,
35
- fileName,
36
- }: CreateArtifactOptions): Promise<Artifact> {
37
- const version = await getVersion();
38
- const name = getPkgName();
39
-
40
- buildLog(`gzipping ${name} v${version.info}...`);
41
-
42
- const tgzFileName = fileName || `${name}-${version.info}.tgz`;
43
- const tgzFilePath = path.join(outDir, tgzFileName);
44
- const info = await tgzDir(distDir, tgzFilePath, {
45
- prefix: 'package',
46
- });
47
-
48
- buildLog(`md5: ${info.md5}`);
49
- buildLog(`sha1: ${info.sha1}`);
50
- buildLog(`sha512: ${info.sha512}`);
51
- buildLog(`size: ${info.size} bytes`);
52
-
53
- return {
54
- name,
55
- version,
56
- info,
57
- fileName: tgzFileName,
58
- filePath: tgzFilePath,
59
- };
60
- }
61
-
62
- export type PublishConfiguration = {
63
- ...CreateArtifactOptions,
64
- doPublish: boolean, // Actually publish?
65
- prePublishFn?: () => any, // (optional) Callback to invoke before publishing
66
- artifactoryConfig?: ArtifactoryConfig, // (optional) Artifactory config info (normally in package.json)
67
- artifactoryCreds?: ArtifactoryCreds, // (optional) Artifactory credentials (normally from ENV var)
68
- npmPath?: string, // (optional) Path to npm executable
69
- npmTag?: string, // (optional) tag to apply to npm package
70
- npmSkipExisting?: boolean, // (optional) if true, don't error when artifact already exists (skip publish)
71
- npmConfig?: NpmConfig, // (optional) Npm config info (normally in package.json)
72
- npmCreds?: NpmCreds, // (optional) Npm credentials (normally from ENV var)
73
- npmAuthToken?: string, // (optional) Npm auth token (normally from ENV var)
74
- };
75
-
76
- // tgz the distDir, and copy it to the outDir
77
- // if toArtifactory is true, also publishes to artifactory
78
- export async function publish({
79
- distDir,
80
- outDir,
81
- doPublish,
82
- prePublishFn,
83
- fileName,
84
- artifactoryConfig,
85
- artifactoryCreds,
86
- npmPath,
87
- npmTag,
88
- npmSkipExisting = false,
89
- npmConfig,
90
- npmCreds,
91
- npmAuthToken,
92
- }: PublishConfiguration) {
93
- if (typeof prePublishFn === 'function') {
94
- await run(async () => {
95
- await prePublishFn();
96
- });
97
- }
98
-
99
- const {
100
- info,
101
- filePath: tgzFilePath,
102
- fileName: tgzFileName,
103
- } = await createArtifact({ distDir, outDir, fileName });
104
-
105
- if (!doPublish) {
106
- buildLog(
107
- 'Skipping publish for dev build. Use `--publish` arg to publish for real.',
108
- );
109
- return;
110
- }
111
-
112
- // Publish to all repos configured in package.json
113
- await fs.copyFile(
114
- path.join(distDir, 'package.json'),
115
- path.join(outDir, 'package.json'),
116
- );
117
- const artifact = fs.createReadStream(tgzFilePath);
118
- await Promise.all([
119
- npmPublish({
120
- publishPath: tgzFilePath,
121
- npmConfig,
122
- npmCreds,
123
- npmAuthToken,
124
- tag: npmTag,
125
- skipExisting: npmSkipExisting,
126
- npmPath,
127
- }),
128
- artifactoryStandard(
129
- artifact,
130
- info,
131
- tgzFileName,
132
- artifactoryConfig,
133
- artifactoryCreds,
134
- ),
135
- artifactoryNpm(
136
- distDir,
137
- artifactoryConfig,
138
- artifactoryCreds,
139
- npmPath,
140
- npmTag,
141
- npmSkipExisting,
142
- ),
143
- ]);
144
- }