@lerna-lite/publish 1.1.0 → 1.4.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 +474 -417
- package/dist/index.d.ts +3 -2
- package/dist/index.js +19 -18
- package/dist/index.js.map +1 -1
- package/dist/lib/create-temp-licenses.d.ts +7 -7
- package/dist/lib/create-temp-licenses.js +32 -32
- package/dist/lib/create-temp-licenses.js.map +1 -1
- package/dist/lib/fetch-config.d.ts +10 -7
- package/dist/lib/fetch-config.js +21 -21
- package/dist/lib/fetch-config.js.map +1 -1
- package/dist/lib/get-current-sha.d.ts +6 -6
- package/dist/lib/get-current-sha.js +19 -19
- package/dist/lib/get-current-tags.d.ts +8 -8
- package/dist/lib/get-current-tags.js +35 -35
- package/dist/lib/get-npm-username.d.ts +7 -7
- package/dist/lib/get-npm-username.js +49 -49
- package/dist/lib/get-npm-username.js.map +1 -1
- package/dist/lib/get-packages-without-license.d.ts +8 -8
- package/dist/lib/get-packages-without-license.js +23 -23
- package/dist/lib/get-packages-without-license.js.map +1 -1
- package/dist/lib/get-packed.d.ts +2 -2
- package/dist/lib/get-packed.js +65 -65
- package/dist/lib/get-profile-data.d.ts +7 -7
- package/dist/lib/get-profile-data.js +22 -22
- package/dist/lib/get-tagged-packages.d.ts +9 -8
- package/dist/lib/get-tagged-packages.js +29 -29
- package/dist/lib/get-tagged-packages.js.map +1 -1
- package/dist/lib/get-two-factor-auth-required.d.ts +7 -7
- package/dist/lib/get-two-factor-auth-required.js +42 -42
- package/dist/lib/get-two-factor-auth-required.js.map +1 -1
- package/dist/lib/get-unpublished-packages.d.ts +8 -8
- package/dist/lib/get-unpublished-packages.js +36 -36
- package/dist/lib/get-whoami.d.ts +11 -11
- package/dist/lib/get-whoami.js +20 -20
- package/dist/lib/git-checkout.d.ts +10 -7
- package/dist/lib/git-checkout.js +20 -20
- package/dist/lib/git-checkout.js.map +1 -1
- package/dist/lib/index.d.ts +19 -19
- package/dist/lib/index.js +35 -35
- package/dist/lib/log-packed.d.ts +2 -1
- package/dist/lib/log-packed.js +67 -67
- package/dist/lib/log-packed.js.map +1 -1
- package/dist/lib/npm-dist-tag.d.ts +33 -30
- package/dist/lib/npm-dist-tag.js +139 -141
- package/dist/lib/npm-dist-tag.js.map +1 -1
- package/dist/lib/npm-publish.d.ts +10 -11
- package/dist/lib/npm-publish.js +102 -116
- package/dist/lib/npm-publish.js.map +1 -1
- package/dist/lib/pack-directory.d.ts +8 -8
- package/dist/lib/pack-directory.js +66 -67
- package/dist/lib/pack-directory.js.map +1 -1
- package/dist/lib/remove-temp-licenses.d.ts +6 -6
- package/dist/lib/remove-temp-licenses.js +19 -19
- package/dist/lib/verify-npm-package-access.d.ts +9 -9
- package/dist/lib/verify-npm-package-access.js +55 -55
- package/dist/lib/verify-npm-package-access.js.map +1 -1
- package/dist/models/index.d.ts +32 -0
- package/dist/models/index.js +3 -0
- package/dist/models/index.js.map +1 -0
- package/dist/publish-command.d.ts +64 -61
- package/dist/publish-command.js +642 -626
- package/dist/publish-command.js.map +1 -1
- package/package.json +9 -10
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.verifyNpmPackageAccess = void 0;
|
|
7
|
-
const libnpmaccess_1 = __importDefault(require("libnpmaccess"));
|
|
8
|
-
const core_1 = require("@lerna-lite/core");
|
|
9
|
-
const fetch_config_1 = require("./fetch-config");
|
|
10
|
-
/**
|
|
11
|
-
* Throw an error if the logged-in user does not have read-write access to all packages.
|
|
12
|
-
* @param {{ name: string; }[]} packages
|
|
13
|
-
* @param {string} username
|
|
14
|
-
* @param {import('./fetch-config').FetchConfig} options
|
|
15
|
-
* @returns {Promise<void>}
|
|
16
|
-
*/
|
|
17
|
-
function verifyNpmPackageAccess(packages, username, options) {
|
|
18
|
-
const opts = (0, fetch_config_1.getFetchConfig)(options, {
|
|
19
|
-
// don't wait forever for third-party failures to be dealt with
|
|
20
|
-
fetchRetries: 0,
|
|
21
|
-
});
|
|
22
|
-
opts.log.silly('verifyNpmPackageAccess');
|
|
23
|
-
return (0, core_1.pulseTillDone)(libnpmaccess_1.default.lsPackages(username, opts)).then(success, failure);
|
|
24
|
-
function success(result) {
|
|
25
|
-
// when _no_ results received, access.lsPackages returns null
|
|
26
|
-
// we can only assume that the packages in question have never been published
|
|
27
|
-
if (result === null) {
|
|
28
|
-
opts.log.warn('', 'The logged-in user does not have any previously-published packages, skipping permission checks...');
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
for (const pkg of packages) {
|
|
32
|
-
if ((pkg === null || pkg === void 0 ? void 0 : pkg.name) in result && result[pkg === null || pkg === void 0 ? void 0 : pkg.name] !== 'read-write') {
|
|
33
|
-
throw new core_1.ValidationError('EACCESS', `You do not have write permission required to publish "${pkg.name}"`);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
function failure(err) {
|
|
39
|
-
// pass if registry does not support ls-packages endpoint
|
|
40
|
-
if (err.code === 'E500' || err.code === 'E404') {
|
|
41
|
-
// most likely a private registry (npm Enterprise, verdaccio, etc)
|
|
42
|
-
opts.log.warn('EREGISTRY', 'Registry %j does not support `npm access ls-packages`, skipping permission checks...',
|
|
43
|
-
// registry
|
|
44
|
-
opts.registry);
|
|
45
|
-
// don't log redundant errors
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
// Log the error cleanly to stderr
|
|
49
|
-
opts.log.pause();
|
|
50
|
-
console.error(err.message); // eslint-disable-line no-console
|
|
51
|
-
opts.log.resume();
|
|
52
|
-
throw new core_1.ValidationError('EWHOAMI', 'Authentication error. Use `npm whoami` to troubleshoot.');
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
exports.verifyNpmPackageAccess = verifyNpmPackageAccess;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.verifyNpmPackageAccess = void 0;
|
|
7
|
+
const libnpmaccess_1 = __importDefault(require("libnpmaccess"));
|
|
8
|
+
const core_1 = require("@lerna-lite/core");
|
|
9
|
+
const fetch_config_1 = require("./fetch-config");
|
|
10
|
+
/**
|
|
11
|
+
* Throw an error if the logged-in user does not have read-write access to all packages.
|
|
12
|
+
* @param {{ name: string; }[]} packages
|
|
13
|
+
* @param {string} username
|
|
14
|
+
* @param {import('./fetch-config').FetchConfig} options
|
|
15
|
+
* @returns {Promise<void>}
|
|
16
|
+
*/
|
|
17
|
+
function verifyNpmPackageAccess(packages, username, options) {
|
|
18
|
+
const opts = (0, fetch_config_1.getFetchConfig)(options, {
|
|
19
|
+
// don't wait forever for third-party failures to be dealt with
|
|
20
|
+
fetchRetries: 0,
|
|
21
|
+
});
|
|
22
|
+
opts.log.silly('verifyNpmPackageAccess', '');
|
|
23
|
+
return (0, core_1.pulseTillDone)(libnpmaccess_1.default.lsPackages(username, opts)).then(success, failure);
|
|
24
|
+
function success(result) {
|
|
25
|
+
// when _no_ results received, access.lsPackages returns null
|
|
26
|
+
// we can only assume that the packages in question have never been published
|
|
27
|
+
if (result === null) {
|
|
28
|
+
opts.log.warn('', 'The logged-in user does not have any previously-published packages, skipping permission checks...');
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
for (const pkg of packages) {
|
|
32
|
+
if ((pkg === null || pkg === void 0 ? void 0 : pkg.name) in result && result[pkg === null || pkg === void 0 ? void 0 : pkg.name] !== 'read-write') {
|
|
33
|
+
throw new core_1.ValidationError('EACCESS', `You do not have write permission required to publish "${pkg.name}"`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function failure(err) {
|
|
39
|
+
// pass if registry does not support ls-packages endpoint
|
|
40
|
+
if (err.code === 'E500' || err.code === 'E404') {
|
|
41
|
+
// most likely a private registry (npm Enterprise, verdaccio, etc)
|
|
42
|
+
opts.log.warn('EREGISTRY', 'Registry %j does not support `npm access ls-packages`, skipping permission checks...',
|
|
43
|
+
// registry
|
|
44
|
+
opts.registry);
|
|
45
|
+
// don't log redundant errors
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
// Log the error cleanly to stderr
|
|
49
|
+
opts.log.pause();
|
|
50
|
+
console.error(err.message); // eslint-disable-line no-console
|
|
51
|
+
opts.log.resume();
|
|
52
|
+
throw new core_1.ValidationError('EWHOAMI', 'Authentication error. Use `npm whoami` to troubleshoot.');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.verifyNpmPackageAccess = verifyNpmPackageAccess;
|
|
56
56
|
//# 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":";;;;;;AAAA,gEAAkC;AAElC,2CAAwF;AACxF,iDAAgD;AAEhD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,QAAmB,EAAE,QAAgB,EAAE,OAAoB;IAChG,MAAM,IAAI,GAAG,IAAA,6BAAc,EAAC,OAAO,EAAE;QACnC,+DAA+D;QAC/D,YAAY,EAAE,CAAC;KAChB,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"verify-npm-package-access.js","sourceRoot":"","sources":["../../src/lib/verify-npm-package-access.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAkC;AAElC,2CAAwF;AACxF,iDAAgD;AAEhD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CAAC,QAAmB,EAAE,QAAgB,EAAE,OAAoB;IAChG,MAAM,IAAI,GAAG,IAAA,6BAAc,EAAC,OAAO,EAAE;QACnC,+DAA+D;QAC/D,YAAY,EAAE,CAAC;KAChB,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAE7C,OAAO,IAAA,oBAAa,EAAC,sBAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE/E,SAAS,OAAO,CAAC,MAAW;QAC1B,6DAA6D;QAC7D,6EAA6E;QAC7E,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,EAAE,EACF,mGAAmG,CACpG,CAAC;SACH;aAAM;YACL,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;gBAC1B,IAAI,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,KAAI,MAAM,IAAI,MAAM,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,CAAC,KAAK,YAAY,EAAE;oBAC7D,MAAM,IAAI,sBAAe,CACvB,SAAS,EACT,yDAAyD,GAAG,CAAC,IAAI,GAAG,CACrE,CAAC;iBACH;aACF;SACF;IACH,CAAC;IAED,SAAS,OAAO,CAAC,GAAQ;QACvB,yDAAyD;QACzD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;YAC9C,kEAAkE;YAClE,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,WAAW,EACX,sFAAsF;YACtF,WAAW;YACX,IAAI,CAAC,QAAQ,CACd,CAAC;YAEF,6BAA6B;YAC7B,OAAO;SACR;QAED,kCAAkC;QAClC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC;QAC7D,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAElB,MAAM,IAAI,sBAAe,CAAC,SAAS,EAAE,yDAAyD,CAAC,CAAC;IAClG,CAAC;AACH,CAAC;AApDD,wDAoDC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import fetch from 'npm-registry-fetch';
|
|
2
|
+
export interface DistTagOptions extends fetch.FetchOptions {
|
|
3
|
+
defaultTag?: string;
|
|
4
|
+
dryRun?: boolean;
|
|
5
|
+
tag: string;
|
|
6
|
+
}
|
|
7
|
+
/** LibNpmPublishOptions - https://github.com/npm/libnpmpublish#opts */
|
|
8
|
+
export interface LibNpmPublishOptions extends fetch.FetchOptions {
|
|
9
|
+
access?: 'public' | 'restricted';
|
|
10
|
+
defaultTag: string;
|
|
11
|
+
dryRun?: boolean;
|
|
12
|
+
tag?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface PackagePublishConfig {
|
|
15
|
+
access?: 'public' | 'restricted';
|
|
16
|
+
defaultTag?: string;
|
|
17
|
+
registry?: string;
|
|
18
|
+
tag?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface Tarball {
|
|
21
|
+
name: string;
|
|
22
|
+
version: string;
|
|
23
|
+
files: any[];
|
|
24
|
+
bundled: any[];
|
|
25
|
+
filename: string;
|
|
26
|
+
size: number;
|
|
27
|
+
unpackedSize: number;
|
|
28
|
+
shasum: string;
|
|
29
|
+
integrity: boolean;
|
|
30
|
+
entryCount: number;
|
|
31
|
+
tarFilePath: string;
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":""}
|
|
@@ -1,61 +1,64 @@
|
|
|
1
|
-
import { Command, Package } from '@lerna-lite/core';
|
|
2
|
-
export declare function factory(argv:
|
|
3
|
-
export declare class PublishCommand extends Command {
|
|
4
|
-
/** command name */
|
|
5
|
-
name:
|
|
6
|
-
conf:
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
1
|
+
import { Command, CommandType, Conf, OneTimePasswordCache, Package, PackageGraphNode, PublishCommandOption } from '@lerna-lite/core';
|
|
2
|
+
export declare function factory(argv: PublishCommandOption): PublishCommand;
|
|
3
|
+
export declare class PublishCommand extends Command<PublishCommandOption> {
|
|
4
|
+
/** command name */
|
|
5
|
+
name: CommandType;
|
|
6
|
+
conf: Conf & {
|
|
7
|
+
snapshot?: any;
|
|
8
|
+
};
|
|
9
|
+
otpCache: OneTimePasswordCache;
|
|
10
|
+
gitReset: boolean;
|
|
11
|
+
savePrefix: string;
|
|
12
|
+
tagPrefix: string;
|
|
13
|
+
hasRootedLeaf: boolean;
|
|
14
|
+
npmSession: string;
|
|
15
|
+
packagesToPublish: Package[];
|
|
16
|
+
packagesToBeLicensed?: Package[];
|
|
17
|
+
runPackageLifecycle: (pkg: Package, stage: string) => Promise<void>;
|
|
18
|
+
runRootLifecycle: (stage: string) => Promise<void> | void;
|
|
19
|
+
verifyAccess: boolean;
|
|
20
|
+
twoFactorAuthRequired: boolean;
|
|
21
|
+
updates: PackageGraphNode[];
|
|
22
|
+
updatesVersions?: Map<string, any>;
|
|
23
|
+
get otherCommandConfigs(): string[];
|
|
24
|
+
get requiresGit(): boolean;
|
|
25
|
+
constructor(argv: PublishCommandOption);
|
|
26
|
+
configureProperties(): void;
|
|
27
|
+
get userAgent(): string;
|
|
28
|
+
initialize(): Promise<boolean>;
|
|
29
|
+
execute(): Promise<void>;
|
|
30
|
+
verifyWorkingTreeClean(): Promise<void>;
|
|
31
|
+
detectFromGit(): Promise<{
|
|
32
|
+
updates: Package[];
|
|
33
|
+
updatesVersions: string[][];
|
|
34
|
+
needsConfirmation: boolean;
|
|
35
|
+
}>;
|
|
36
|
+
detectFromPackage(): Promise<{
|
|
37
|
+
updates: any;
|
|
38
|
+
updatesVersions: any;
|
|
39
|
+
needsConfirmation: boolean;
|
|
40
|
+
}>;
|
|
41
|
+
detectCanaryVersions(): Promise<{
|
|
42
|
+
updates: any;
|
|
43
|
+
updatesVersions: any;
|
|
44
|
+
needsConfirmation: boolean;
|
|
45
|
+
}>;
|
|
46
|
+
confirmPublish(): true | Promise<boolean>;
|
|
47
|
+
prepareLicenseActions(): Promise<void>;
|
|
48
|
+
prepareRegistryActions(): Promise<any>;
|
|
49
|
+
updateCanaryVersions(): Promise<void[]>;
|
|
50
|
+
resolveLocalDependencyLinks(): Promise<void[]>;
|
|
51
|
+
resolveLocalDependencyWorkspaceProtocols(): Promise<void[]>;
|
|
52
|
+
annotateGitHead(): void;
|
|
53
|
+
serializeChanges(): Promise<Package[]>;
|
|
54
|
+
resetChanges(): Promise<any>;
|
|
55
|
+
execScript(pkg: Package, script: string): Package;
|
|
56
|
+
removeTempLicensesOnError(error: any): Promise<never>;
|
|
57
|
+
requestOneTimePassword(): Promise<string> | undefined;
|
|
58
|
+
topoMapPackages(mapper: (pkg: Package) => Promise<any>): Promise<unknown>;
|
|
59
|
+
packUpdated(): Promise<any>;
|
|
60
|
+
publishPacked(): Promise<any>;
|
|
61
|
+
npmUpdateAsLatest(): Promise<any>;
|
|
62
|
+
getDistTag(): string | undefined;
|
|
63
|
+
getPreDistTag(pkg: Package): string | undefined;
|
|
64
|
+
}
|