@jsdevtools/npm-publish 1.4.3 → 2.1.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 +174 -147
- package/bin/npm-publish.js +10 -2
- package/lib/action/core.d.ts +45 -0
- package/lib/action/core.js +59 -0
- package/lib/action/core.js.map +1 -0
- package/lib/action/main.js +55 -0
- package/lib/action/main.js.map +1 -0
- package/lib/cli/index.d.ts +4 -2
- package/lib/cli/index.js +60 -53
- package/lib/cli/index.js.map +1 -1
- package/lib/cli/parse-cli-arguments.d.ts +17 -0
- package/lib/cli/parse-cli-arguments.js +40 -0
- package/lib/cli/parse-cli-arguments.js.map +1 -0
- package/lib/compare-and-publish/compare-and-publish.d.ts +21 -0
- package/lib/compare-and-publish/compare-and-publish.js +49 -0
- package/lib/compare-and-publish/compare-and-publish.js.map +1 -0
- package/lib/compare-and-publish/compare-versions.d.ts +16 -0
- package/lib/compare-and-publish/compare-versions.js +41 -0
- package/lib/compare-and-publish/compare-versions.js.map +1 -0
- package/lib/compare-and-publish/get-arguments.d.ts +21 -0
- package/lib/compare-and-publish/get-arguments.js +50 -0
- package/lib/compare-and-publish/get-arguments.js.map +1 -0
- package/lib/compare-and-publish/index.d.ts +1 -0
- package/lib/compare-and-publish/index.js +18 -0
- package/lib/compare-and-publish/index.js.map +1 -0
- package/lib/errors.d.ts +39 -0
- package/lib/errors.js +121 -0
- package/lib/errors.js.map +1 -0
- package/lib/format-publish-result.d.ts +12 -0
- package/lib/format-publish-result.js +36 -0
- package/lib/format-publish-result.js.map +1 -0
- package/lib/index.d.ts +4 -5
- package/lib/index.js +11 -10
- package/lib/index.js.map +1 -1
- package/lib/normalize-options.d.ts +28 -1
- package/lib/normalize-options.js +89 -14
- package/lib/normalize-options.js.map +1 -1
- package/lib/npm/call-npm-cli.d.ts +38 -0
- package/lib/npm/call-npm-cli.js +113 -0
- package/lib/npm/call-npm-cli.js.map +1 -0
- package/lib/npm/index.d.ts +2 -0
- package/lib/npm/index.js +19 -0
- package/lib/npm/index.js.map +1 -0
- package/lib/npm/use-npm-environment.d.ts +15 -0
- package/lib/npm/use-npm-environment.js +44 -0
- package/lib/npm/use-npm-environment.js.map +1 -0
- package/lib/npm-publish.d.ts +7 -4
- package/lib/npm-publish.js +25 -26
- package/lib/npm-publish.js.map +1 -1
- package/lib/options.d.ts +67 -44
- package/lib/options.js +5 -0
- package/lib/options.js.map +1 -1
- package/lib/read-manifest.d.ts +22 -1
- package/lib/read-manifest.js +122 -22
- package/lib/read-manifest.js.map +1 -1
- package/lib/results.d.ts +30 -28
- package/lib/results.js +3 -0
- package/lib/results.js.map +1 -1
- package/package.json +47 -35
- package/src/action/core.ts +91 -0
- package/src/action/main.ts +32 -0
- package/src/cli/index.ts +72 -0
- package/src/cli/parse-cli-arguments.ts +49 -0
- package/src/compare-and-publish/compare-and-publish.ts +75 -0
- package/src/compare-and-publish/compare-versions.ts +48 -0
- package/src/compare-and-publish/get-arguments.ts +61 -0
- package/src/compare-and-publish/index.ts +1 -0
- package/src/errors.ts +137 -0
- package/src/format-publish-result.ts +40 -0
- package/src/index.ts +7 -0
- package/src/normalize-options.ts +123 -0
- package/src/npm/call-npm-cli.ts +140 -0
- package/src/npm/index.ts +2 -0
- package/src/npm/use-npm-environment.ts +57 -0
- package/src/npm-publish.ts +40 -0
- package/src/options.ts +108 -0
- package/src/read-manifest.ts +142 -0
- package/src/results.ts +50 -0
- package/CHANGELOG.md +0 -49
- package/lib/action/index.js +0 -67
- package/lib/action/index.js.map +0 -1
- package/lib/cli/exit-code.d.ts +0 -1
- package/lib/cli/exit-code.js +0 -16
- package/lib/cli/exit-code.js.map +0 -1
- package/lib/cli/help.d.ts +0 -1
- package/lib/cli/help.js +0 -28
- package/lib/cli/help.js.map +0 -1
- package/lib/cli/parse-args.d.ts +0 -1
- package/lib/cli/parse-args.js +0 -58
- package/lib/cli/parse-args.js.map +0 -1
- package/lib/npm-config.d.ts +0 -1
- package/lib/npm-config.js +0 -85
- package/lib/npm-config.js.map +0 -1
- package/lib/npm-env.d.ts +0 -6
- package/lib/npm-env.js +0 -24
- package/lib/npm-env.js.map +0 -1
- package/lib/npm.d.ts +0 -1
- package/lib/npm.js +0 -95
- package/lib/npm.js.map +0 -1
- /package/lib/action/{index.d.ts → main.d.ts} +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
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.formatPublishResult = void 0;
|
|
7
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
8
|
+
/**
|
|
9
|
+
* Format publish results into a string.
|
|
10
|
+
*
|
|
11
|
+
* @param manifest Package manifest
|
|
12
|
+
* @param options Configuration options.
|
|
13
|
+
* @param result Results from running npm publish.
|
|
14
|
+
* @returns Formatted string.
|
|
15
|
+
*/
|
|
16
|
+
function formatPublishResult(manifest, options, result) {
|
|
17
|
+
if (result.id === undefined) {
|
|
18
|
+
return `🙅♀️ ${manifest.name}@${manifest.version} publish skipped.`;
|
|
19
|
+
}
|
|
20
|
+
return [
|
|
21
|
+
`📦 ${result.id}${options.dryRun.value ? " (DRY RUN)" : ""}`,
|
|
22
|
+
"=== Contents ===",
|
|
23
|
+
...result.files.map(({ path, size }) => `${formatSize(size)}\t${path}`),
|
|
24
|
+
].join(node_os_1.default.EOL);
|
|
25
|
+
}
|
|
26
|
+
exports.formatPublishResult = formatPublishResult;
|
|
27
|
+
const formatSize = (size) => {
|
|
28
|
+
if (size < 1000) {
|
|
29
|
+
return `${size} B`;
|
|
30
|
+
}
|
|
31
|
+
if (size < 1000000) {
|
|
32
|
+
return `${(size / 1000).toFixed(1)} kB`;
|
|
33
|
+
}
|
|
34
|
+
return `${(size / 1000000).toFixed(1)} MB`;
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=format-publish-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-publish-result.js","sourceRoot":"","sources":["../src/format-publish-result.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AAMzB;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CACjC,QAAyB,EACzB,OAA0B,EAC1B,MAAqB;IAErB,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE;QAC3B,OAAO,SAAS,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,mBAAmB,CAAC;KACtE;IAED,OAAO;QACL,MAAM,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE;QAC5D,kBAAkB;QAClB,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;KACxE,CAAC,IAAI,CAAC,iBAAE,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC;AAdD,kDAcC;AAED,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;IAC1C,IAAI,IAAI,GAAG,IAAI,EAAE;QACf,OAAO,GAAG,IAAI,IAAI,CAAC;KACpB;IACD,IAAI,IAAI,GAAG,OAAS,EAAE;QACpB,OAAO,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;KACzC;IAED,OAAO,GAAG,CAAC,IAAI,GAAG,OAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/C,CAAC,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./
|
|
4
|
-
export { npmPublish };
|
|
5
|
-
export default npmPublish;
|
|
1
|
+
export * from "./options.js";
|
|
2
|
+
export * from "./results.js";
|
|
3
|
+
export * from "./errors.js";
|
|
4
|
+
export { npmPublish } from "./npm-publish.js";
|
package/lib/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -11,14 +15,11 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
15
|
};
|
|
12
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
17
|
exports.npmPublish = void 0;
|
|
14
|
-
const npm_publish_1 = require("./npm-publish");
|
|
15
|
-
Object.defineProperty(exports, "npmPublish", { enumerable: true, get: function () { return npm_publish_1.npmPublish; } });
|
|
16
18
|
// Export the external type definitions as named exports
|
|
17
|
-
__exportStar(require("./options"), exports);
|
|
18
|
-
__exportStar(require("./results"), exports);
|
|
19
|
-
|
|
20
|
-
//
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
19
|
+
__exportStar(require("./options.js"), exports);
|
|
20
|
+
__exportStar(require("./results.js"), exports);
|
|
21
|
+
__exportStar(require("./errors.js"), exports);
|
|
22
|
+
// Export `npmPublish` as a named export and the default export
|
|
23
|
+
var npm_publish_js_1 = require("./npm-publish.js");
|
|
24
|
+
Object.defineProperty(exports, "npmPublish", { enumerable: true, get: function () { return npm_publish_js_1.npmPublish; } });
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAwD;AACxD,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAE5B,+DAA+D;AAC/D,mDAA8C;AAArC,4GAAA,UAAU,OAAA"}
|
|
@@ -1 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
import type { PackageManifest } from "./read-manifest.js";
|
|
2
|
+
import { type Access, type Strategy, type Options, type Logger } from "./options.js";
|
|
3
|
+
export declare const TAG_LATEST = "latest";
|
|
4
|
+
/** Normalized and sanitized auth, publish, and runtime configurations. */
|
|
5
|
+
export interface NormalizedOptions {
|
|
6
|
+
registry: URL;
|
|
7
|
+
token: string;
|
|
8
|
+
tag: ConfigValue<string>;
|
|
9
|
+
access: ConfigValue<Access | undefined>;
|
|
10
|
+
provenance: ConfigValue<boolean>;
|
|
11
|
+
dryRun: ConfigValue<boolean>;
|
|
12
|
+
strategy: ConfigValue<Strategy>;
|
|
13
|
+
logger: Logger | undefined;
|
|
14
|
+
temporaryDirectory: string;
|
|
15
|
+
}
|
|
16
|
+
/** A config value, and whether that value differs from default. */
|
|
17
|
+
export interface ConfigValue<TValue> {
|
|
18
|
+
value: TValue;
|
|
19
|
+
isDefault: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Normalizes and sanitizes options, and fills-in any default values.
|
|
23
|
+
*
|
|
24
|
+
* @param manifest Package metadata from package.json.
|
|
25
|
+
* @param options User-input options.
|
|
26
|
+
* @returns Validated auth and publish configuration.
|
|
27
|
+
*/
|
|
28
|
+
export declare function normalizeOptions(manifest: PackageManifest, options: Options): NormalizedOptions;
|
package/lib/normalize-options.js
CHANGED
|
@@ -1,24 +1,99 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
2
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeOptions = void 0;
|
|
4
|
-
const
|
|
29
|
+
exports.normalizeOptions = exports.TAG_LATEST = void 0;
|
|
30
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
31
|
+
const errors = __importStar(require("./errors.js"));
|
|
32
|
+
const options_js_1 = require("./options.js");
|
|
33
|
+
const REGISTRY_NPM = "https://registry.npmjs.org/";
|
|
34
|
+
exports.TAG_LATEST = "latest";
|
|
5
35
|
/**
|
|
6
36
|
* Normalizes and sanitizes options, and fills-in any default values.
|
|
7
|
-
*
|
|
37
|
+
*
|
|
38
|
+
* @param manifest Package metadata from package.json.
|
|
39
|
+
* @param options User-input options.
|
|
40
|
+
* @returns Validated auth and publish configuration.
|
|
8
41
|
*/
|
|
9
|
-
function normalizeOptions(options) {
|
|
10
|
-
|
|
42
|
+
function normalizeOptions(manifest, options) {
|
|
43
|
+
const defaultTag = manifest.publishConfig?.tag ?? exports.TAG_LATEST;
|
|
44
|
+
const defaultRegistry = manifest.publishConfig?.registry ?? REGISTRY_NPM;
|
|
45
|
+
const defaultAccess = manifest.publishConfig?.access ??
|
|
46
|
+
(manifest.scope === undefined ? options_js_1.ACCESS_PUBLIC : undefined);
|
|
47
|
+
const defaultProvenance = manifest.publishConfig?.provenance ?? false;
|
|
11
48
|
return {
|
|
12
|
-
token: options.token
|
|
13
|
-
registry:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
dryRun: options.dryRun
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
49
|
+
token: validateToken(options.token),
|
|
50
|
+
registry: validateRegistry(options.registry ?? defaultRegistry),
|
|
51
|
+
tag: setValue(options.tag, defaultTag, validateTag),
|
|
52
|
+
access: setValue(options.access, defaultAccess, validateAccess),
|
|
53
|
+
provenance: setValue(options.provenance, defaultProvenance, Boolean),
|
|
54
|
+
dryRun: setValue(options.dryRun, false, Boolean),
|
|
55
|
+
strategy: setValue(options.strategy, options_js_1.STRATEGY_ALL, validateStrategy),
|
|
56
|
+
logger: options.logger,
|
|
57
|
+
temporaryDirectory: options.temporaryDirectory ?? node_os_1.default.tmpdir(),
|
|
21
58
|
};
|
|
22
59
|
}
|
|
23
60
|
exports.normalizeOptions = normalizeOptions;
|
|
61
|
+
const setValue = (value, defaultValue, validate) => ({
|
|
62
|
+
value: validate(value ?? defaultValue),
|
|
63
|
+
isDefault: value === undefined,
|
|
64
|
+
});
|
|
65
|
+
const validateToken = (value) => {
|
|
66
|
+
if (typeof value === "string" && value.length > 0) {
|
|
67
|
+
return value;
|
|
68
|
+
}
|
|
69
|
+
throw new errors.InvalidTokenError();
|
|
70
|
+
};
|
|
71
|
+
const validateRegistry = (value) => {
|
|
72
|
+
try {
|
|
73
|
+
return new URL(value);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
throw new errors.InvalidRegistryUrlError(value);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const validateTag = (value) => {
|
|
80
|
+
if (typeof value === "string" && value.length > 0) {
|
|
81
|
+
return value;
|
|
82
|
+
}
|
|
83
|
+
throw new errors.InvalidTagError(value);
|
|
84
|
+
};
|
|
85
|
+
const validateAccess = (value) => {
|
|
86
|
+
if (value === undefined ||
|
|
87
|
+
value === options_js_1.ACCESS_PUBLIC ||
|
|
88
|
+
value === options_js_1.ACCESS_RESTRICTED) {
|
|
89
|
+
return value;
|
|
90
|
+
}
|
|
91
|
+
throw new errors.InvalidAccessError(value);
|
|
92
|
+
};
|
|
93
|
+
const validateStrategy = (value) => {
|
|
94
|
+
if (value === options_js_1.STRATEGY_ALL || value === options_js_1.STRATEGY_UPGRADE) {
|
|
95
|
+
return value;
|
|
96
|
+
}
|
|
97
|
+
throw new errors.InvalidStrategyError(value);
|
|
98
|
+
};
|
|
24
99
|
//# sourceMappingURL=normalize-options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../src/normalize-options.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../src/normalize-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Logger } from "../options.js";
|
|
2
|
+
import type { NpmCliEnvironment } from "./use-npm-environment.js";
|
|
3
|
+
export interface NpmCliOptions {
|
|
4
|
+
environment: NpmCliEnvironment;
|
|
5
|
+
logger?: Logger | undefined;
|
|
6
|
+
}
|
|
7
|
+
export interface NpmCallResult<CommandT extends Command> {
|
|
8
|
+
successData: SuccessData<CommandT> | undefined;
|
|
9
|
+
errorCode: string | undefined;
|
|
10
|
+
error: Error | undefined;
|
|
11
|
+
}
|
|
12
|
+
type SuccessData<T extends Command> = T extends typeof VIEW ? NpmViewData : T extends typeof PUBLISH ? NpmPublishData : unknown;
|
|
13
|
+
export interface NpmViewData {
|
|
14
|
+
"dist-tags": Record<string, string>;
|
|
15
|
+
versions: string[];
|
|
16
|
+
}
|
|
17
|
+
export interface NpmPublishData {
|
|
18
|
+
id: string;
|
|
19
|
+
files: {
|
|
20
|
+
path: string;
|
|
21
|
+
size: number;
|
|
22
|
+
}[];
|
|
23
|
+
}
|
|
24
|
+
export type Command = typeof VIEW | typeof PUBLISH | string;
|
|
25
|
+
export declare const VIEW = "view";
|
|
26
|
+
export declare const PUBLISH = "publish";
|
|
27
|
+
export declare const E404 = "E404";
|
|
28
|
+
export declare const EPUBLISHCONFLICT = "EPUBLISHCONFLICT";
|
|
29
|
+
/**
|
|
30
|
+
* Call the NPM CLI in JSON mode.
|
|
31
|
+
*
|
|
32
|
+
* @param command The command of the NPM CLI to call
|
|
33
|
+
* @param cliArguments Any arguments to send to the command
|
|
34
|
+
* @param options Customize environment variables or add an error handler.
|
|
35
|
+
* @returns The parsed JSON, or stdout if unparsable.
|
|
36
|
+
*/
|
|
37
|
+
export declare function callNpmCli<CommandT extends Command>(command: CommandT, cliArguments: string[], options: NpmCliOptions): Promise<NpmCallResult<CommandT>>;
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.callNpmCli = exports.EPUBLISHCONFLICT = exports.E404 = exports.PUBLISH = exports.VIEW = void 0;
|
|
30
|
+
const node_child_process_1 = __importDefault(require("node:child_process"));
|
|
31
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
32
|
+
const errors = __importStar(require("../errors.js"));
|
|
33
|
+
exports.VIEW = "view";
|
|
34
|
+
exports.PUBLISH = "publish";
|
|
35
|
+
exports.E404 = "E404";
|
|
36
|
+
exports.EPUBLISHCONFLICT = "EPUBLISHCONFLICT";
|
|
37
|
+
const NPM = node_os_1.default.platform() === "win32" ? "npm.cmd" : "npm";
|
|
38
|
+
const JSON_MATCH_RE = /(\{[\s\S]*\})/mu;
|
|
39
|
+
/**
|
|
40
|
+
* Call the NPM CLI in JSON mode.
|
|
41
|
+
*
|
|
42
|
+
* @param command The command of the NPM CLI to call
|
|
43
|
+
* @param cliArguments Any arguments to send to the command
|
|
44
|
+
* @param options Customize environment variables or add an error handler.
|
|
45
|
+
* @returns The parsed JSON, or stdout if unparsable.
|
|
46
|
+
*/
|
|
47
|
+
async function callNpmCli(command, cliArguments, options) {
|
|
48
|
+
const { stdout, stderr, exitCode } = await execNpm([command, "--ignore-scripts", "--json", ...cliArguments], options.environment, options.logger);
|
|
49
|
+
let successData;
|
|
50
|
+
let errorCode;
|
|
51
|
+
let error;
|
|
52
|
+
if (exitCode === 0) {
|
|
53
|
+
successData = parseJson(stdout);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const errorPayload = parseJson(stdout, stderr);
|
|
57
|
+
errorCode = errorPayload?.error?.code?.toUpperCase();
|
|
58
|
+
error = new errors.NpmCallError(command, exitCode, stderr);
|
|
59
|
+
}
|
|
60
|
+
return { successData, errorCode, error };
|
|
61
|
+
}
|
|
62
|
+
exports.callNpmCli = callNpmCli;
|
|
63
|
+
/**
|
|
64
|
+
* Execute the npm CLI.
|
|
65
|
+
*
|
|
66
|
+
* @param commandArguments Npm subcommand and arguments.
|
|
67
|
+
* @param environment Environment variables.
|
|
68
|
+
* @param logger Optional logger.
|
|
69
|
+
* @returns Stdout, stderr, and the exit code.
|
|
70
|
+
*/
|
|
71
|
+
async function execNpm(commandArguments, environment, logger) {
|
|
72
|
+
logger?.debug?.(`Running command: ${NPM} ${commandArguments.join(" ")}`);
|
|
73
|
+
return new Promise((resolve) => {
|
|
74
|
+
let stdout = "";
|
|
75
|
+
let stderr = "";
|
|
76
|
+
const npm = node_child_process_1.default.spawn(NPM, commandArguments, {
|
|
77
|
+
env: { ...process.env, ...environment },
|
|
78
|
+
});
|
|
79
|
+
npm.stdout.on("data", (data) => (stdout += data));
|
|
80
|
+
npm.stderr.on("data", (data) => (stderr += data));
|
|
81
|
+
npm.on("close", (code) => {
|
|
82
|
+
resolve({
|
|
83
|
+
stdout: stdout.trim(),
|
|
84
|
+
stderr: stderr.trim(),
|
|
85
|
+
exitCode: code ?? 0,
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Parse CLI outputs for JSON data.
|
|
92
|
+
*
|
|
93
|
+
* Certain versions of the npm CLI may intersperse JSON with human-readable
|
|
94
|
+
* output, which this function accounts for.
|
|
95
|
+
*
|
|
96
|
+
* @param values CLI outputs to check
|
|
97
|
+
* @returns Parsed JSON, if able to parse.
|
|
98
|
+
*/
|
|
99
|
+
function parseJson(...values) {
|
|
100
|
+
for (const value of values) {
|
|
101
|
+
const jsonValue = JSON_MATCH_RE.exec(value)?.[1];
|
|
102
|
+
if (jsonValue) {
|
|
103
|
+
try {
|
|
104
|
+
return JSON.parse(jsonValue);
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=call-npm-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-npm-cli.js","sourceRoot":"","sources":["../../src/npm/call-npm-cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA8C;AAC9C,sDAAyB;AAEzB,qDAAuC;AA+B1B,QAAA,IAAI,GAAG,MAAM,CAAC;AACd,QAAA,OAAO,GAAG,SAAS,CAAC;AAEpB,QAAA,IAAI,GAAG,MAAM,CAAC;AACd,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AAEnD,MAAM,GAAG,GAAG,iBAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAExC;;;;;;;GAOG;AACI,KAAK,UAAU,UAAU,CAC9B,OAAiB,EACjB,YAAsB,EACtB,OAAsB;IAEtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAChD,CAAC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,EACxD,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,MAAM,CACf,CAAC;IAEF,IAAI,WAAW,CAAC;IAChB,IAAI,SAAS,CAAC;IACd,IAAI,KAAK,CAAC;IAEV,IAAI,QAAQ,KAAK,CAAC,EAAE;QAClB,WAAW,GAAG,SAAS,CAAwB,MAAM,CAAC,CAAC;KACxD;SAAM;QACL,MAAM,YAAY,GAAG,SAAS,CAC5B,MAAM,EACN,MAAM,CACP,CAAC;QAEF,SAAS,GAAG,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QACrD,KAAK,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;KAC5D;IAED,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC3C,CAAC;AA5BD,gCA4BC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,OAAO,CACpB,gBAA0B,EAC1B,WAAmC,EACnC,MAAe;IAEf,MAAM,EAAE,KAAK,EAAE,CAAC,oBAAoB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEzE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,GAAG,GAAG,4BAAY,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE;YACpD,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,WAAW,EAAE;SACxC,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;QAClD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;QAClD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvB,OAAO,CAAC;gBACN,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;gBACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;gBACrB,QAAQ,EAAE,IAAI,IAAI,CAAC;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAU,GAAG,MAAgB;IAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjD,IAAI,SAAS,EAAE;YACb,IAAI;gBACF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAY,CAAC;aACzC;YAAC,MAAM;gBACN,OAAO,SAAS,CAAC;aAClB;SACF;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/lib/npm/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./call-npm-cli.js"), exports);
|
|
18
|
+
__exportStar(require("./use-npm-environment.js"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/npm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,2DAAyC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PackageManifest } from "../read-manifest.js";
|
|
2
|
+
import type { NormalizedOptions } from "../normalize-options.js";
|
|
3
|
+
export type NpmCliEnvironment = Record<string, string>;
|
|
4
|
+
export type NpmCliTask<TReturn> = (manifest: PackageManifest, options: NormalizedOptions, environment: NpmCliEnvironment) => Promise<TReturn>;
|
|
5
|
+
/**
|
|
6
|
+
* Create a temporary .npmrc file with the given auth token, and call a task
|
|
7
|
+
* with env vars set to use that .npmrc.
|
|
8
|
+
*
|
|
9
|
+
* @param manifest Pacakge metadata.
|
|
10
|
+
* @param options Configuration options.
|
|
11
|
+
* @param task A function called with the configured environment. After the
|
|
12
|
+
* function resolves, the temporary .npmrc file will be removed.
|
|
13
|
+
* @returns The resolved value of `task`
|
|
14
|
+
*/
|
|
15
|
+
export declare function useNpmEnvironment<TReturn>(manifest: PackageManifest, options: NormalizedOptions, task: NpmCliTask<TReturn>): Promise<TReturn>;
|
|
@@ -0,0 +1,44 @@
|
|
|
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.useNpmEnvironment = void 0;
|
|
7
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
8
|
+
const node_os_1 = __importDefault(require("node:os"));
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
/**
|
|
11
|
+
* Create a temporary .npmrc file with the given auth token, and call a task
|
|
12
|
+
* with env vars set to use that .npmrc.
|
|
13
|
+
*
|
|
14
|
+
* @param manifest Pacakge metadata.
|
|
15
|
+
* @param options Configuration options.
|
|
16
|
+
* @param task A function called with the configured environment. After the
|
|
17
|
+
* function resolves, the temporary .npmrc file will be removed.
|
|
18
|
+
* @returns The resolved value of `task`
|
|
19
|
+
*/
|
|
20
|
+
async function useNpmEnvironment(manifest, options, task) {
|
|
21
|
+
const { registry, token, logger, temporaryDirectory } = options;
|
|
22
|
+
const npmrcDirectory = await promises_1.default.mkdtemp(node_path_1.default.join(temporaryDirectory, "npm-publish-"));
|
|
23
|
+
const npmrc = node_path_1.default.join(npmrcDirectory, ".npmrc");
|
|
24
|
+
const environment = {
|
|
25
|
+
NODE_AUTH_TOKEN: token,
|
|
26
|
+
npm_config_userconfig: npmrc,
|
|
27
|
+
};
|
|
28
|
+
const config = [
|
|
29
|
+
"; created by jsdevtools/npm-publish",
|
|
30
|
+
`//${registry.host}/:_authToken=\${NODE_AUTH_TOKEN}`,
|
|
31
|
+
`registry=${registry.href}`,
|
|
32
|
+
"",
|
|
33
|
+
].join(node_os_1.default.EOL);
|
|
34
|
+
await promises_1.default.writeFile(npmrc, config, "utf8");
|
|
35
|
+
logger?.debug?.(`Temporary .npmrc created at ${npmrc}\n${config}`);
|
|
36
|
+
try {
|
|
37
|
+
return await task(manifest, options, environment);
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
await promises_1.default.rm(npmrcDirectory, { force: true, recursive: true });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.useNpmEnvironment = useNpmEnvironment;
|
|
44
|
+
//# sourceMappingURL=use-npm-environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-npm-environment.js","sourceRoot":"","sources":["../../src/npm/use-npm-environment.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAkC;AAClC,sDAAyB;AACzB,0DAA6B;AAa7B;;;;;;;;;GASG;AACI,KAAK,UAAU,iBAAiB,CACrC,QAAyB,EACzB,OAA0B,EAC1B,IAAyB;IAEzB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;IAChE,MAAM,cAAc,GAAG,MAAM,kBAAE,CAAC,OAAO,CACrC,mBAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAC9C,CAAC;IACF,MAAM,KAAK,GAAG,mBAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG;QAClB,eAAe,EAAE,KAAK;QACtB,qBAAqB,EAAE,KAAK;KAC7B,CAAC;IAEF,MAAM,MAAM,GAAG;QACb,qCAAqC;QACrC,KAAK,QAAQ,CAAC,IAAI,kCAAkC;QACpD,YAAY,QAAQ,CAAC,IAAI,EAAE;QAC3B,EAAE;KACH,CAAC,IAAI,CAAC,iBAAE,CAAC,GAAG,CAAC,CAAC;IAEf,MAAM,kBAAE,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1C,MAAM,EAAE,KAAK,EAAE,CAAC,+BAA+B,KAAK,KAAK,MAAM,EAAE,CAAC,CAAC;IAEnE,IAAI;QACF,OAAO,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;KACnD;YAAS;QACR,MAAM,kBAAE,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAC/D;AACH,CAAC;AA/BD,8CA+BC"}
|
package/lib/npm-publish.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { Options } from "./options";
|
|
2
|
-
import { Results } from "./results";
|
|
1
|
+
import type { Options } from "./options.js";
|
|
2
|
+
import type { Results } from "./results.js";
|
|
3
3
|
/**
|
|
4
|
-
* Publishes a package to NPM, if its version has changed
|
|
4
|
+
* Publishes a package to NPM, if its version has changed.
|
|
5
|
+
*
|
|
6
|
+
* @param options Publish options.
|
|
7
|
+
* @returns Release metadata.
|
|
5
8
|
*/
|
|
6
|
-
export declare function npmPublish(
|
|
9
|
+
export declare function npmPublish(options: Options): Promise<Results>;
|
package/lib/npm-publish.js
CHANGED
|
@@ -1,35 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.npmPublish = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
4
|
+
const read_manifest_js_1 = require("./read-manifest.js");
|
|
5
|
+
const normalize_options_js_1 = require("./normalize-options.js");
|
|
6
|
+
const index_js_1 = require("./npm/index.js");
|
|
7
|
+
const index_js_2 = require("./compare-and-publish/index.js");
|
|
8
|
+
const format_publish_result_js_1 = require("./format-publish-result.js");
|
|
8
9
|
/**
|
|
9
|
-
* Publishes a package to NPM, if its version has changed
|
|
10
|
+
* Publishes a package to NPM, if its version has changed.
|
|
11
|
+
*
|
|
12
|
+
* @param options Publish options.
|
|
13
|
+
* @returns Release metadata.
|
|
10
14
|
*/
|
|
11
|
-
async function npmPublish(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
tag: options.tag,
|
|
28
|
-
access: options.access || (manifest.name.startsWith("@") ? "restricted" : "public"),
|
|
29
|
-
dryRun: options.dryRun
|
|
15
|
+
async function npmPublish(options) {
|
|
16
|
+
const manifest = await (0, read_manifest_js_1.readManifest)(options.package);
|
|
17
|
+
const normalizedOptions = (0, normalize_options_js_1.normalizeOptions)(manifest, options);
|
|
18
|
+
const publishResult = await (0, index_js_1.useNpmEnvironment)(manifest, normalizedOptions, index_js_2.compareAndPublish);
|
|
19
|
+
normalizedOptions.logger?.info?.((0, format_publish_result_js_1.formatPublishResult)(manifest, normalizedOptions, publishResult));
|
|
20
|
+
return {
|
|
21
|
+
id: publishResult.id,
|
|
22
|
+
type: publishResult.type,
|
|
23
|
+
oldVersion: publishResult.oldVersion,
|
|
24
|
+
name: manifest.name,
|
|
25
|
+
version: manifest.version,
|
|
26
|
+
registry: normalizedOptions.registry,
|
|
27
|
+
tag: normalizedOptions.tag.value,
|
|
28
|
+
access: normalizedOptions.access.value,
|
|
29
|
+
strategy: normalizedOptions.strategy.value,
|
|
30
|
+
dryRun: normalizedOptions.dryRun.value,
|
|
30
31
|
};
|
|
31
|
-
options.debug("OUTPUT:", results);
|
|
32
|
-
return results;
|
|
33
32
|
}
|
|
34
33
|
exports.npmPublish = npmPublish;
|
|
35
34
|
//# sourceMappingURL=npm-publish.js.map
|
package/lib/npm-publish.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-publish.js","sourceRoot":"","sources":["../src/npm-publish.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"npm-publish.js","sourceRoot":"","sources":["../src/npm-publish.ts"],"names":[],"mappings":";;;AAAA,yDAAkD;AAClD,iEAA0D;AAC1D,6CAAmD;AACnD,6DAAmE;AACnE,yEAAiE;AAIjE;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAAC,OAAgB;IAC/C,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAY,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,iBAAiB,GAAG,IAAA,uCAAgB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,MAAM,IAAA,4BAAiB,EAC3C,QAAQ,EACR,iBAAiB,EACjB,4BAAiB,CAClB,CAAC;IAEF,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,CAC9B,IAAA,8CAAmB,EAAC,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAChE,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,aAAa,CAAC,EAAE;QACpB,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,UAAU,EAAE,aAAa,CAAC,UAAU;QACpC,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;QACpC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,KAAK;QAChC,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAAK;QACtC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK;QAC1C,MAAM,EAAE,iBAAiB,CAAC,MAAM,CAAC,KAAK;KACvC,CAAC;AACJ,CAAC;AAzBD,gCAyBC"}
|