@lerna-lite/publish 1.17.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -43
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/create-temp-licenses.d.ts +0 -5
- package/dist/lib/create-temp-licenses.js +7 -21
- package/dist/lib/create-temp-licenses.js.map +1 -1
- package/dist/lib/fetch-config.d.ts +0 -6
- package/dist/lib/fetch-config.js +3 -14
- package/dist/lib/fetch-config.js.map +1 -1
- package/dist/lib/get-current-sha.d.ts +0 -4
- package/dist/lib/get-current-sha.js +6 -15
- package/dist/lib/get-current-sha.js.map +1 -1
- package/dist/lib/get-current-tags.d.ts +0 -6
- package/dist/lib/get-current-tags.js +7 -23
- package/dist/lib/get-current-tags.js.map +1 -1
- package/dist/lib/get-npm-username.d.ts +0 -5
- package/dist/lib/get-npm-username.js +12 -27
- package/dist/lib/get-npm-username.js.map +1 -1
- package/dist/lib/get-packages-without-license.d.ts +0 -6
- package/dist/lib/get-packages-without-license.js +3 -16
- package/dist/lib/get-packages-without-license.js.map +1 -1
- package/dist/lib/get-packed.d.ts +1 -1
- package/dist/lib/get-packed.js +12 -17
- package/dist/lib/get-packed.js.map +1 -1
- package/dist/lib/get-profile-data.d.ts +0 -5
- package/dist/lib/get-profile-data.js +5 -17
- package/dist/lib/get-profile-data.js.map +1 -1
- package/dist/lib/get-tagged-packages.d.ts +0 -7
- package/dist/lib/get-tagged-packages.js +8 -23
- package/dist/lib/get-tagged-packages.js.map +1 -1
- package/dist/lib/get-two-factor-auth-required.d.ts +0 -5
- package/dist/lib/get-two-factor-auth-required.js +8 -23
- package/dist/lib/get-two-factor-auth-required.js.map +1 -1
- package/dist/lib/get-unpublished-packages.d.ts +0 -6
- package/dist/lib/get-unpublished-packages.js +13 -29
- package/dist/lib/get-unpublished-packages.js.map +1 -1
- package/dist/lib/get-whoami.d.ts +0 -5
- package/dist/lib/get-whoami.js +4 -14
- package/dist/lib/get-whoami.js.map +1 -1
- package/dist/lib/git-checkout.d.ts +0 -6
- package/dist/lib/git-checkout.js +5 -16
- package/dist/lib/git-checkout.js.map +1 -1
- package/dist/lib/index.d.ts +19 -19
- package/dist/lib/index.js +19 -22
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/log-packed.d.ts +1 -1
- package/dist/lib/log-packed.js +28 -36
- package/dist/lib/log-packed.js.map +1 -1
- package/dist/lib/npm-dist-tag.d.ts +1 -24
- package/dist/lib/npm-dist-tag.js +18 -60
- package/dist/lib/npm-dist-tag.js.map +1 -1
- package/dist/lib/npm-publish.d.ts +1 -8
- package/dist/lib/npm-publish.js +18 -50
- package/dist/lib/npm-publish.js.map +1 -1
- package/dist/lib/override-publish-config.d.ts +0 -4
- package/dist/lib/override-publish-config.js +4 -13
- package/dist/lib/override-publish-config.js.map +1 -1
- package/dist/lib/pack-directory.d.ts +1 -7
- package/dist/lib/pack-directory.js +24 -42
- package/dist/lib/pack-directory.js.map +1 -1
- package/dist/lib/remove-temp-licenses.d.ts +0 -4
- package/dist/lib/remove-temp-licenses.js +4 -13
- package/dist/lib/remove-temp-licenses.js.map +1 -1
- package/dist/lib/verify-npm-package-access.d.ts +0 -7
- package/dist/lib/verify-npm-package-access.js +11 -32
- package/dist/lib/verify-npm-package-access.js.map +1 -1
- package/dist/models/index.d.ts +0 -1
- package/dist/models/index.js +1 -2
- package/dist/publish-command.d.ts +0 -7
- package/dist/publish-command.js +119 -274
- package/dist/publish-command.js.map +1 -1
- package/package.json +40 -24
package/dist/lib/npm-dist-tag.js
CHANGED
|
@@ -1,28 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const npmlog_1 = tslib_1.__importDefault(require("npmlog"));
|
|
7
|
-
const npm_package_arg_1 = tslib_1.__importDefault(require("npm-package-arg"));
|
|
8
|
-
const npm_registry_fetch_1 = tslib_1.__importDefault(require("npm-registry-fetch"));
|
|
9
|
-
/**
|
|
10
|
-
* Add a dist-tag to a package.
|
|
11
|
-
* @param {string} spec
|
|
12
|
-
* @param {string} [tag]
|
|
13
|
-
* @param {DistTagOptions} options
|
|
14
|
-
* @param {import("@lerna/otplease").OneTimePasswordCache} otpCache
|
|
15
|
-
*/
|
|
16
|
-
function add(spec, tag = '', options, otpCache) {
|
|
1
|
+
import { otplease } from '@lerna-lite/version';
|
|
2
|
+
import log from 'npmlog';
|
|
3
|
+
import npa from 'npm-package-arg';
|
|
4
|
+
import fetch from 'npm-registry-fetch';
|
|
5
|
+
export function add(spec, tag = '', options, otpCache) {
|
|
17
6
|
const opts = {
|
|
18
|
-
log
|
|
7
|
+
log,
|
|
19
8
|
...options,
|
|
20
|
-
spec: (
|
|
9
|
+
spec: npa(spec),
|
|
21
10
|
};
|
|
22
11
|
const cleanTag = (tag || opts.defaultTag || opts.tag).trim();
|
|
23
12
|
const { name, rawSpec: version } = opts.spec;
|
|
24
13
|
opts.log.verbose('dist-tag', `adding "${cleanTag}" to ${name}@${version}`);
|
|
25
|
-
// istanbul ignore next
|
|
26
14
|
if (opts.dryRun) {
|
|
27
15
|
opts.log.silly('dist-tag', 'dry-run configured, bailing now');
|
|
28
16
|
return Promise.resolve();
|
|
@@ -38,37 +26,24 @@ function add(spec, tag = '', options, otpCache) {
|
|
|
38
26
|
method: 'PUT',
|
|
39
27
|
body: JSON.stringify(version),
|
|
40
28
|
headers: {
|
|
41
|
-
// cannot use fetch.json() due to HTTP 204 response,
|
|
42
|
-
// so we manually set the required content-type
|
|
43
29
|
'content-type': 'application/json',
|
|
44
30
|
},
|
|
45
31
|
spec: opts.spec,
|
|
46
32
|
};
|
|
47
|
-
|
|
48
|
-
return (0, version_1.otplease)((wrappedPayload) => (0, npm_registry_fetch_1.default)(uri, wrappedPayload), payload, otpCache).then(() => {
|
|
33
|
+
return otplease((wrappedPayload) => fetch(uri, wrappedPayload), payload, otpCache).then(() => {
|
|
49
34
|
opts.log.verbose('dist-tag', `added "${cleanTag}" to ${name}@${version}`);
|
|
50
|
-
// eslint-disable-next-line no-param-reassign
|
|
51
35
|
tags[cleanTag] = version;
|
|
52
36
|
return tags;
|
|
53
37
|
});
|
|
54
38
|
});
|
|
55
39
|
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Remove a dist-tag from a package.
|
|
59
|
-
* @param {string} spec
|
|
60
|
-
* @param {string} tag
|
|
61
|
-
* @param {DistTagOptions} options
|
|
62
|
-
* @param {import("@lerna/otplease").OneTimePasswordCache} otpCache
|
|
63
|
-
*/
|
|
64
|
-
function remove(spec, tag, options, otpCache) {
|
|
40
|
+
export function remove(spec, tag, options, otpCache) {
|
|
65
41
|
const opts = {
|
|
66
|
-
log
|
|
42
|
+
log,
|
|
67
43
|
...options,
|
|
68
|
-
spec: (
|
|
44
|
+
spec: npa(spec),
|
|
69
45
|
};
|
|
70
46
|
opts.log.verbose('dist-tag', `removing "${tag}" from ${opts.spec.name}`);
|
|
71
|
-
// istanbul ignore next
|
|
72
47
|
if (opts.dryRun) {
|
|
73
48
|
opts.log.silly('dist-tag', 'dry-run configured, bailing now');
|
|
74
49
|
return Promise.resolve();
|
|
@@ -85,54 +60,37 @@ function remove(spec, tag, options, otpCache) {
|
|
|
85
60
|
method: 'DELETE',
|
|
86
61
|
spec: opts.spec,
|
|
87
62
|
};
|
|
88
|
-
|
|
89
|
-
return (0, version_1.otplease)((wrappedPayload) => (0, npm_registry_fetch_1.default)(uri, wrappedPayload), payload, otpCache).then(() => {
|
|
63
|
+
return otplease((wrappedPayload) => fetch(uri, wrappedPayload), payload, otpCache).then(() => {
|
|
90
64
|
opts.log.verbose('dist-tag', `removed "${tag}" from ${opts.spec.name}@${version}`);
|
|
91
|
-
// eslint-disable-next-line no-param-reassign
|
|
92
65
|
delete tags[tag];
|
|
93
66
|
return tags;
|
|
94
67
|
});
|
|
95
68
|
});
|
|
96
69
|
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* List dist-tags of a package.
|
|
100
|
-
* @param {string} spec
|
|
101
|
-
* @param {DistTagOptions} options
|
|
102
|
-
*/
|
|
103
|
-
function list(spec, options) {
|
|
70
|
+
export function list(spec, options) {
|
|
104
71
|
const opts = {
|
|
105
|
-
log
|
|
72
|
+
log,
|
|
106
73
|
...options,
|
|
107
|
-
spec: (
|
|
74
|
+
spec: npa(spec),
|
|
108
75
|
};
|
|
109
|
-
// istanbul ignore next
|
|
110
76
|
if (opts.dryRun) {
|
|
111
77
|
opts.log.silly('dist-tag', 'dry-run configured, bailing now');
|
|
112
78
|
return Promise.resolve();
|
|
113
79
|
}
|
|
114
80
|
return fetchTags(opts);
|
|
115
81
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
* @param {Omit<fetch.FetchOptions, 'spec'> & { spec: npa.Result }} opts
|
|
120
|
-
*/
|
|
121
|
-
function fetchTags(opts) {
|
|
122
|
-
var _a;
|
|
123
|
-
return npm_registry_fetch_1.default
|
|
124
|
-
.json(`/-/package/${(_a = opts.spec.escapedName) !== null && _a !== void 0 ? _a : ''}/dist-tags`, {
|
|
82
|
+
export function fetchTags(opts) {
|
|
83
|
+
return fetch
|
|
84
|
+
.json(`/-/package/${opts.spec.escapedName ?? ''}/dist-tags`, {
|
|
125
85
|
...opts,
|
|
126
86
|
preferOnline: true,
|
|
127
87
|
spec: opts.spec,
|
|
128
88
|
})
|
|
129
89
|
.then((data) => {
|
|
130
90
|
if (data && typeof data === 'object') {
|
|
131
|
-
// eslint-disable-next-line no-param-reassign, no-underscore-dangle
|
|
132
91
|
delete data._etag;
|
|
133
92
|
}
|
|
134
93
|
return data || {};
|
|
135
94
|
});
|
|
136
95
|
}
|
|
137
|
-
exports.fetchTags = fetchTags;
|
|
138
96
|
//# sourceMappingURL=npm-dist-tag.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-dist-tag.js","sourceRoot":"","sources":["../../src/lib/npm-dist-tag.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"npm-dist-tag.js","sourceRoot":"","sources":["../../src/lib/npm-dist-tag.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
import { Package } from '@lerna-lite/core';
|
|
2
2
|
import { OneTimePasswordCache } from '@lerna-lite/version';
|
|
3
|
-
import { LibNpmPublishOptions } from '../models';
|
|
4
|
-
/**
|
|
5
|
-
* Publish a package to the configured registry.
|
|
6
|
-
* @param {import("@lerna/package").Package} pkg
|
|
7
|
-
* @param {string} tarFilePath
|
|
8
|
-
* @param {LibNpmPublishOptions & NpmPublishOptions} [options]
|
|
9
|
-
* @param {import("@lerna/otplease").OneTimePasswordCache} [otpCache]
|
|
10
|
-
*/
|
|
3
|
+
import { LibNpmPublishOptions } from '../models/index.js';
|
|
11
4
|
export declare function npmPublish(pkg: Package, tarFilePath: string, options?: Omit<LibNpmPublishOptions, 'defaultTag'>, otpCache?: OneTimePasswordCache): Promise<any>;
|
package/dist/lib/npm-publish.js
CHANGED
|
@@ -1,46 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const pify_1 = tslib_1.__importDefault(require("pify"));
|
|
12
|
-
const libnpmpublish_1 = require("libnpmpublish");
|
|
13
|
-
const read_package_json_1 = tslib_1.__importDefault(require("read-package-json"));
|
|
14
|
-
const readJSONAsync = (0, pify_1.default)(read_package_json_1.default);
|
|
15
|
-
/**
|
|
16
|
-
* Alias dash-cased npmConf to camelCase
|
|
17
|
-
* @param {NpmPublishOptions} obj
|
|
18
|
-
* @returns {NpmPublishOptions}
|
|
19
|
-
*/
|
|
1
|
+
import { runLifecycle } from '@lerna-lite/core';
|
|
2
|
+
import { otplease } from '@lerna-lite/version';
|
|
3
|
+
import { readFile } from 'fs/promises';
|
|
4
|
+
import log from 'npmlog';
|
|
5
|
+
import npa from 'npm-package-arg';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
import pify from 'pify';
|
|
8
|
+
import { publish } from 'libnpmpublish';
|
|
9
|
+
import readJSON from 'read-package-json';
|
|
10
|
+
const readJSONAsync = pify(readJSON);
|
|
20
11
|
function flattenOptions(obj) {
|
|
21
12
|
return {
|
|
22
|
-
// eslint-disable-next-line dot-notation -- (npm v7 compat)
|
|
23
13
|
defaultTag: obj['tag'] || 'latest',
|
|
24
14
|
dryRun: obj['dry-run'] || obj['git-dry-run'],
|
|
25
|
-
// libnpmpublish / npm-registry-fetch check strictSSL rather than strict-ssl
|
|
26
15
|
strictSSL: obj['strict-ssl'],
|
|
27
16
|
...obj,
|
|
28
17
|
};
|
|
29
18
|
}
|
|
30
|
-
|
|
31
|
-
* Publish a package to the configured registry.
|
|
32
|
-
* @param {import("@lerna/package").Package} pkg
|
|
33
|
-
* @param {string} tarFilePath
|
|
34
|
-
* @param {LibNpmPublishOptions & NpmPublishOptions} [options]
|
|
35
|
-
* @param {import("@lerna/otplease").OneTimePasswordCache} [otpCache]
|
|
36
|
-
*/
|
|
37
|
-
function npmPublish(pkg, tarFilePath, options = {}, otpCache) {
|
|
38
|
-
var _a;
|
|
19
|
+
export function npmPublish(pkg, tarFilePath, options = {}, otpCache) {
|
|
39
20
|
const { dryRun, ...remainingOptions } = flattenOptions(options);
|
|
40
|
-
const { scope } = (
|
|
41
|
-
// pass only the package scope to libnpmpublish
|
|
21
|
+
const { scope } = npa(pkg?.name ?? '');
|
|
42
22
|
const opts = {
|
|
43
|
-
log
|
|
23
|
+
log,
|
|
44
24
|
...remainingOptions,
|
|
45
25
|
projectScope: scope,
|
|
46
26
|
};
|
|
@@ -50,41 +30,29 @@ function npmPublish(pkg, tarFilePath, options = {}, otpCache) {
|
|
|
50
30
|
chain = chain.then(() => {
|
|
51
31
|
let { manifestLocation } = pkg;
|
|
52
32
|
if (pkg.contents !== pkg.location) {
|
|
53
|
-
|
|
54
|
-
manifestLocation = path_1.default.join(pkg.contents, 'package.json');
|
|
33
|
+
manifestLocation = join(pkg.contents, 'package.json');
|
|
55
34
|
}
|
|
56
|
-
return Promise.all([
|
|
35
|
+
return Promise.all([readFile(tarFilePath), readJSONAsync(manifestLocation)]);
|
|
57
36
|
});
|
|
58
37
|
chain = chain.then(([tarData, manifest]) => {
|
|
59
|
-
// non-default tag needs to override publishConfig.tag,
|
|
60
|
-
// which is merged into opts below if necessary
|
|
61
38
|
if (opts.defaultTag !== 'latest' &&
|
|
62
39
|
manifest.publishConfig &&
|
|
63
40
|
manifest.publishConfig.tag &&
|
|
64
41
|
manifest.publishConfig.tag !== opts.defaultTag) {
|
|
65
|
-
// eslint-disable-next-line no-param-reassign
|
|
66
42
|
manifest.publishConfig.tag = opts.defaultTag;
|
|
67
43
|
}
|
|
68
|
-
// publishConfig is no longer consumed in n-r-f, so merge here
|
|
69
44
|
if (manifest.publishConfig) {
|
|
70
45
|
Object.assign(opts, publishConfigToOpts(manifest.publishConfig));
|
|
71
46
|
}
|
|
72
|
-
return
|
|
47
|
+
return otplease((innerOpts) => publish(manifest, tarData, innerOpts), opts, otpCache);
|
|
73
48
|
});
|
|
74
49
|
}
|
|
75
|
-
chain = chain.then(() =>
|
|
76
|
-
chain = chain.then(() =>
|
|
50
|
+
chain = chain.then(() => runLifecycle(pkg, 'publish', opts));
|
|
51
|
+
chain = chain.then(() => runLifecycle(pkg, 'postpublish', opts));
|
|
77
52
|
return chain;
|
|
78
53
|
}
|
|
79
|
-
exports.npmPublish = npmPublish;
|
|
80
|
-
/**
|
|
81
|
-
* Obtain an object suitable for assignment onto existing options from `pkg.publishConfig`.
|
|
82
|
-
* @param {PackagePublishConfig} publishConfig
|
|
83
|
-
* @returns {Omit<PackagePublishConfig, 'tag'> & { defaultTag?: string }}
|
|
84
|
-
*/
|
|
85
54
|
function publishConfigToOpts(publishConfig) {
|
|
86
55
|
const opts = { ...publishConfig };
|
|
87
|
-
// npm v7 renamed tag internally
|
|
88
56
|
if (publishConfig.tag) {
|
|
89
57
|
opts.defaultTag = publishConfig.tag;
|
|
90
58
|
delete opts.tag;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-publish.js","sourceRoot":"","sources":["../../src/lib/npm-publish.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"npm-publish.js","sourceRoot":"","sources":["../../src/lib/npm-publish.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,2 @@
|
|
|
1
1
|
import { RawManifest } from '@lerna-lite/core';
|
|
2
|
-
/**
|
|
3
|
-
* It is possible to override some fields in the manifest before the package is published, we will use the same code as pnpm
|
|
4
|
-
* @see https://github.com/pnpm/pnpm/blob/main/packages/exportable-manifest/src/overridePublishConfig.ts
|
|
5
|
-
*/
|
|
6
2
|
export declare function overridePublishConfig(manifest: RawManifest): void;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.overridePublishConfig = void 0;
|
|
4
|
-
const core_1 = require("@lerna-lite/core");
|
|
5
|
-
// manifest fields that may make sense to overwrite
|
|
1
|
+
import { isEmpty } from '@lerna-lite/core';
|
|
6
2
|
const PUBLISH_CONFIG_WHITELIST = new Set([
|
|
7
3
|
'bin',
|
|
8
4
|
'browser',
|
|
@@ -22,12 +18,8 @@ const PUBLISH_CONFIG_WHITELIST = new Set([
|
|
|
22
18
|
'umd:main',
|
|
23
19
|
'unpkg',
|
|
24
20
|
]);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
* @see https://github.com/pnpm/pnpm/blob/main/packages/exportable-manifest/src/overridePublishConfig.ts
|
|
28
|
-
*/
|
|
29
|
-
function overridePublishConfig(manifest) {
|
|
30
|
-
const publishConfig = manifest === null || manifest === void 0 ? void 0 : manifest.publishConfig;
|
|
21
|
+
export function overridePublishConfig(manifest) {
|
|
22
|
+
const publishConfig = manifest?.publishConfig;
|
|
31
23
|
if (publishConfig) {
|
|
32
24
|
Object.entries(publishConfig)
|
|
33
25
|
.filter(([key]) => PUBLISH_CONFIG_WHITELIST.has(key))
|
|
@@ -35,10 +27,9 @@ function overridePublishConfig(manifest) {
|
|
|
35
27
|
manifest[key] = value;
|
|
36
28
|
delete publishConfig[key];
|
|
37
29
|
});
|
|
38
|
-
if (
|
|
30
|
+
if (isEmpty(publishConfig)) {
|
|
39
31
|
delete manifest.publishConfig;
|
|
40
32
|
}
|
|
41
33
|
}
|
|
42
34
|
}
|
|
43
|
-
exports.overridePublishConfig = overridePublishConfig;
|
|
44
35
|
//# sourceMappingURL=override-publish-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"override-publish-config.js","sourceRoot":"","sources":["../../src/lib/override-publish-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"override-publish-config.js","sourceRoot":"","sources":["../../src/lib/override-publish-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAA0B,MAAM,kBAAkB,CAAC;AAGnE,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,KAAK;IACL,SAAS;IACT,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,SAAS;IACT,MAAM;IACN,MAAM;IACN,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,OAAO;IACP,SAAS;IACT,eAAe;IACf,UAAU;IACV,OAAO;CACR,CAAC,CAAC;AAMH,MAAM,UAAU,qBAAqB,CAAC,QAAqB;IACzD,MAAM,aAAa,GAAG,QAAQ,EAAE,aAA6C,CAAC;IAE9E,IAAI,aAAa,EAAE;QACjB,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;aAC1B,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACpD,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEL,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE;YAC1B,OAAO,QAAQ,CAAC,aAAa,CAAC;SAC/B;KACF;AACH,CAAC"}
|
|
@@ -1,9 +1,3 @@
|
|
|
1
1
|
import { Package, PackConfig } from '@lerna-lite/core';
|
|
2
|
-
import { Tarball } from '../models';
|
|
3
|
-
/**
|
|
4
|
-
* Pack a directory suitable for publishing, writing tarball to a tempfile.
|
|
5
|
-
* @param {Package|string} _pkg Package instance or path to manifest
|
|
6
|
-
* @param {string} dir to pack
|
|
7
|
-
* @param {PackConfig} options
|
|
8
|
-
*/
|
|
2
|
+
import { Tarball } from '../models/index.js';
|
|
9
3
|
export declare function packDirectory(_pkg: Package, dir: string, options: PackConfig): Promise<Tarball>;
|
|
@@ -1,66 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
const tar_1 = tslib_1.__importDefault(require("tar"));
|
|
12
|
-
const get_packed_1 = require("./get-packed");
|
|
13
|
-
/**
|
|
14
|
-
* Pack a directory suitable for publishing, writing tarball to a tempfile.
|
|
15
|
-
* @param {Package|string} _pkg Package instance or path to manifest
|
|
16
|
-
* @param {string} dir to pack
|
|
17
|
-
* @param {PackConfig} options
|
|
18
|
-
*/
|
|
19
|
-
async function packDirectory(_pkg, dir, options) {
|
|
20
|
-
const pkg = core_1.Package.lazy(_pkg, dir);
|
|
1
|
+
import { Package, runLifecycle } from '@lerna-lite/core';
|
|
2
|
+
import { tempWrite } from '@lerna-lite/version';
|
|
3
|
+
import Arborist from '@npmcli/arborist';
|
|
4
|
+
import packlist from 'npm-packlist';
|
|
5
|
+
import log from 'npmlog';
|
|
6
|
+
import { relative } from 'node:path';
|
|
7
|
+
import tar from 'tar';
|
|
8
|
+
import { getPacked } from './get-packed.js';
|
|
9
|
+
export async function packDirectory(_pkg, dir, options) {
|
|
10
|
+
const pkg = Package.lazy(_pkg, dir);
|
|
21
11
|
const opts = {
|
|
22
|
-
|
|
23
|
-
log: npmlog_1.default,
|
|
12
|
+
log,
|
|
24
13
|
...options,
|
|
25
14
|
};
|
|
26
|
-
opts.log.verbose('pack-directory',
|
|
15
|
+
opts.log.verbose('pack-directory', relative('.', pkg.contents));
|
|
27
16
|
if (opts.ignorePrepublish !== true) {
|
|
28
|
-
await
|
|
17
|
+
await runLifecycle(pkg, 'prepublish', opts);
|
|
29
18
|
}
|
|
30
|
-
await
|
|
19
|
+
await runLifecycle(pkg, 'prepare', opts);
|
|
31
20
|
if (opts.lernaCommand === 'publish') {
|
|
32
21
|
opts.stdio = 'inherit';
|
|
33
22
|
await pkg.refresh();
|
|
34
|
-
await
|
|
23
|
+
await runLifecycle(pkg, 'prepublishOnly', opts);
|
|
35
24
|
await pkg.refresh();
|
|
36
25
|
}
|
|
37
|
-
await
|
|
26
|
+
await runLifecycle(pkg, 'prepack', opts);
|
|
38
27
|
await pkg.refresh();
|
|
39
|
-
const arborist = new
|
|
28
|
+
const arborist = new Arborist({ path: pkg.contents });
|
|
40
29
|
const tree = await arborist.loadActual();
|
|
41
|
-
const files = await (
|
|
42
|
-
const stream =
|
|
30
|
+
const files = await packlist(tree);
|
|
31
|
+
const stream = tar.create({
|
|
43
32
|
cwd: pkg.contents,
|
|
44
33
|
prefix: 'package/',
|
|
45
34
|
portable: true,
|
|
46
|
-
// Provide a specific date in the 1980s for the benefit of zip,
|
|
47
|
-
// which is confounded by files dated at the Unix epoch 0.
|
|
48
35
|
mtime: new Date('1985-10-26T08:15:00.000Z'),
|
|
49
36
|
gzip: true,
|
|
50
|
-
},
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
files.map((f) => `./${f}`));
|
|
55
|
-
const tarFilePath = await (0, version_1.tempWrite)(stream, getTarballName(pkg));
|
|
56
|
-
return (0, get_packed_1.getPacked)(pkg, tarFilePath).then((packed) => Promise.resolve()
|
|
57
|
-
.then(() => (0, core_1.runLifecycle)(pkg, 'postpack', opts))
|
|
37
|
+
}, files.map((f) => `./${f}`));
|
|
38
|
+
const tarFilePath = await tempWrite(stream, getTarballName(pkg));
|
|
39
|
+
return getPacked(pkg, tarFilePath).then((packed) => Promise.resolve()
|
|
40
|
+
.then(() => runLifecycle(pkg, 'postpack', opts))
|
|
58
41
|
.then(() => packed));
|
|
59
42
|
}
|
|
60
|
-
exports.packDirectory = packDirectory;
|
|
61
43
|
function getTarballName(pkg) {
|
|
62
44
|
const name = pkg.name[0] === '@'
|
|
63
|
-
?
|
|
45
|
+
?
|
|
64
46
|
pkg.name.substring(1).replace(/\//g, '-')
|
|
65
47
|
: pkg.name;
|
|
66
48
|
return `${name}-${pkg.version}.tgz`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack-directory.js","sourceRoot":"","sources":["../../src/lib/pack-directory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pack-directory.js","sourceRoot":"","sources":["../../src/lib/pack-directory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
6
|
-
const p_map_1 = tslib_1.__importDefault(require("p-map"));
|
|
7
|
-
/**
|
|
8
|
-
* Remove temporary license files.
|
|
9
|
-
* @param {Package[]} packagesToBeLicensed
|
|
10
|
-
*/
|
|
11
|
-
function removeTempLicenses(packagesToBeLicensed) {
|
|
1
|
+
import { remove } from 'fs-extra/esm';
|
|
2
|
+
import pMap from 'p-map';
|
|
3
|
+
export function removeTempLicenses(packagesToBeLicensed) {
|
|
12
4
|
if (!packagesToBeLicensed.length) {
|
|
13
5
|
return Promise.resolve();
|
|
14
6
|
}
|
|
15
|
-
return (
|
|
7
|
+
return pMap(packagesToBeLicensed, (pkg) => remove(pkg.licensePath));
|
|
16
8
|
}
|
|
17
|
-
exports.removeTempLicenses = removeTempLicenses;
|
|
18
9
|
//# sourceMappingURL=remove-temp-licenses.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-temp-licenses.js","sourceRoot":"","sources":["../../src/lib/remove-temp-licenses.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remove-temp-licenses.js","sourceRoot":"","sources":["../../src/lib/remove-temp-licenses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,IAAI,MAAM,OAAO,CAAC;AAQzB,MAAM,UAAU,kBAAkB,CAAC,oBAA+B;IAChE,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;QAChC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;KAC1B;IAED,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1,9 +1,2 @@
|
|
|
1
1
|
import { FetchConfig, Package } from '@lerna-lite/core';
|
|
2
|
-
/**
|
|
3
|
-
* Throw an error if the logged-in user does not have read-write access to all packages.
|
|
4
|
-
* @param {{ name: string; }[]} packages
|
|
5
|
-
* @param {string} username
|
|
6
|
-
* @param {import('./fetch-config').FetchConfig} options
|
|
7
|
-
* @returns {Promise<void>}
|
|
8
|
-
*/
|
|
9
2
|
export declare function verifyNpmPackageAccess(packages: Package[], username: string, options: FetchConfig): Promise<void>;
|
|
@@ -1,54 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const core_1 = require("@lerna-lite/core");
|
|
7
|
-
const fetch_config_1 = require("./fetch-config");
|
|
8
|
-
/**
|
|
9
|
-
* Throw an error if the logged-in user does not have read-write access to all packages.
|
|
10
|
-
* @param {{ name: string; }[]} packages
|
|
11
|
-
* @param {string} username
|
|
12
|
-
* @param {import('./fetch-config').FetchConfig} options
|
|
13
|
-
* @returns {Promise<void>}
|
|
14
|
-
*/
|
|
15
|
-
function verifyNpmPackageAccess(packages, username, options) {
|
|
16
|
-
const opts = (0, fetch_config_1.getFetchConfig)(options, {
|
|
17
|
-
// don't wait forever for third-party failures to be dealt with
|
|
1
|
+
import access from 'libnpmaccess';
|
|
2
|
+
import { pulseTillDone, ValidationError } from '@lerna-lite/core';
|
|
3
|
+
import { getFetchConfig } from './fetch-config.js';
|
|
4
|
+
export function verifyNpmPackageAccess(packages, username, options) {
|
|
5
|
+
const opts = getFetchConfig(options, {
|
|
18
6
|
fetchRetries: 0,
|
|
19
7
|
});
|
|
20
8
|
opts.log.silly('verifyNpmPackageAccess', '');
|
|
21
|
-
return
|
|
9
|
+
return pulseTillDone(access.getPackages(username, opts)).then(success, failure);
|
|
22
10
|
function success(result) {
|
|
23
|
-
// when _no_ results received, access.getPackages returns null
|
|
24
|
-
// we can only assume that the packages in question have never been published
|
|
25
11
|
if (result === null) {
|
|
26
12
|
opts.log.warn('', 'The logged-in user does not have any previously-published packages, skipping permission checks...');
|
|
27
13
|
}
|
|
28
14
|
else {
|
|
29
15
|
for (const pkg of packages) {
|
|
30
|
-
if (
|
|
31
|
-
throw new
|
|
16
|
+
if (pkg?.name in result && result[pkg?.name] !== 'read-write') {
|
|
17
|
+
throw new ValidationError('EACCESS', `You do not have write permission required to publish "${pkg.name}"`);
|
|
32
18
|
}
|
|
33
19
|
}
|
|
34
20
|
}
|
|
35
21
|
}
|
|
36
22
|
function failure(err) {
|
|
37
|
-
// pass if registry does not support ls-packages endpoint
|
|
38
23
|
if (err.code === 'E500' || err.code === 'E404') {
|
|
39
|
-
|
|
40
|
-
opts.log.warn('EREGISTRY', 'Registry %j does not support `npm access ls-packages`, skipping permission checks...',
|
|
41
|
-
// registry
|
|
42
|
-
opts.registry);
|
|
43
|
-
// don't log redundant errors
|
|
24
|
+
opts.log.warn('EREGISTRY', 'Registry %j does not support `npm access ls-packages`, skipping permission checks...', opts.registry);
|
|
44
25
|
return;
|
|
45
26
|
}
|
|
46
|
-
// Log the error cleanly to stderr
|
|
47
27
|
opts.log.pause();
|
|
48
|
-
console.error(err.message);
|
|
28
|
+
console.error(err.message);
|
|
49
29
|
opts.log.resume();
|
|
50
|
-
throw new
|
|
30
|
+
throw new ValidationError('EWHOAMI', 'Authentication error. Use `npm whoami` to troubleshoot.');
|
|
51
31
|
}
|
|
52
32
|
}
|
|
53
|
-
exports.verifyNpmPackageAccess = verifyNpmPackageAccess;
|
|
54
33
|
//# sourceMappingURL=verify-npm-package-access.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-npm-package-access.js","sourceRoot":"","sources":["../../src/lib/verify-npm-package-access.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify-npm-package-access.js","sourceRoot":"","sources":["../../src/lib/verify-npm-package-access.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC,OAAO,EAAwB,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASnD,MAAM,UAAU,sBAAsB,CAAC,QAAmB,EAAE,QAAgB,EAAE,OAAoB;IAChG,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE;QAEnC,YAAY,EAAE,CAAC;KAChB,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAE7C,OAAO,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEhF,SAAS,OAAO,CAAC,MAAW;QAG1B,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,mGAAmG,CAAC,CAAC;SACxH;aAAM;YACL,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;gBAC1B,IAAI,GAAG,EAAE,IAAI,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,YAAY,EAAE;oBAC7D,MAAM,IAAI,eAAe,CAAC,SAAS,EAAE,yDAAyD,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;iBAC5G;aACF;SACF;IACH,CAAC;IAED,SAAS,OAAO,CAAC,GAAQ;QAEvB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;YAE9C,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,WAAW,EACX,sFAAsF,EAEtF,IAAI,CAAC,QAAQ,CACd,CAAC;YAGF,OAAO;SACR;QAGD,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAElB,MAAM,IAAI,eAAe,CAAC,SAAS,EAAE,yDAAyD,CAAC,CAAC;IAClG,CAAC;AACH,CAAC"}
|
package/dist/models/index.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ export interface DistTagOptions extends fetch.FetchOptions {
|
|
|
5
5
|
tag: string;
|
|
6
6
|
}
|
|
7
7
|
export type KebabCase<S> = S extends `${infer C}${infer T}` ? KebabCase<T> extends infer U ? U extends string ? T extends Uncapitalize<T> ? `${Uncapitalize<C>}${U}` : `${Uncapitalize<C>}-${U}` : never : never : S;
|
|
8
|
-
/** LibNpmPublishOptions - https://github.com/npm/libnpmpublish#opts */
|
|
9
8
|
export interface LibNpmPublishOptions extends KebabCase<fetch.FetchOptions> {
|
|
10
9
|
access?: 'public' | 'restricted';
|
|
11
10
|
defaultTag: string;
|
package/dist/models/index.js
CHANGED