@jsdevtools/npm-publish 2.0.0 → 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.
Files changed (73) hide show
  1. package/README.md +39 -26
  2. package/lib/action/main.js +1 -0
  3. package/lib/action/main.js.map +1 -1
  4. package/lib/cli/index.d.ts +1 -1
  5. package/lib/cli/index.js +4 -1
  6. package/lib/cli/index.js.map +1 -1
  7. package/lib/cli/parse-cli-arguments.js +1 -0
  8. package/lib/cli/parse-cli-arguments.js.map +1 -1
  9. package/lib/compare-and-publish/compare-and-publish.d.ts +21 -0
  10. package/lib/compare-and-publish/compare-and-publish.js +49 -0
  11. package/lib/compare-and-publish/compare-and-publish.js.map +1 -0
  12. package/lib/compare-and-publish/compare-versions.d.ts +16 -0
  13. package/lib/compare-and-publish/compare-versions.js +41 -0
  14. package/lib/compare-and-publish/compare-versions.js.map +1 -0
  15. package/lib/compare-and-publish/get-arguments.d.ts +21 -0
  16. package/lib/compare-and-publish/get-arguments.js +50 -0
  17. package/lib/compare-and-publish/get-arguments.js.map +1 -0
  18. package/lib/compare-and-publish/index.d.ts +1 -0
  19. package/lib/compare-and-publish/index.js +18 -0
  20. package/lib/compare-and-publish/index.js.map +1 -0
  21. package/lib/errors.d.ts +3 -0
  22. package/lib/errors.js +8 -1
  23. package/lib/errors.js.map +1 -1
  24. package/lib/format-publish-result.d.ts +3 -3
  25. package/lib/format-publish-result.js +5 -5
  26. package/lib/format-publish-result.js.map +1 -1
  27. package/lib/normalize-options.d.ts +4 -2
  28. package/lib/normalize-options.js +14 -12
  29. package/lib/normalize-options.js.map +1 -1
  30. package/lib/npm/call-npm-cli.d.ts +26 -4
  31. package/lib/npm/call-npm-cli.js +49 -27
  32. package/lib/npm/call-npm-cli.js.map +1 -1
  33. package/lib/npm/index.d.ts +2 -29
  34. package/lib/npm/index.js +16 -38
  35. package/lib/npm/index.js.map +1 -1
  36. package/lib/npm/use-npm-environment.d.ts +4 -2
  37. package/lib/npm/use-npm-environment.js +7 -5
  38. package/lib/npm/use-npm-environment.js.map +1 -1
  39. package/lib/npm-publish.js +7 -12
  40. package/lib/npm-publish.js.map +1 -1
  41. package/lib/options.d.ts +14 -3
  42. package/lib/read-manifest.d.ts +4 -7
  43. package/lib/read-manifest.js +4 -1
  44. package/lib/read-manifest.js.map +1 -1
  45. package/lib/results.d.ts +5 -1
  46. package/lib/results.js +3 -0
  47. package/lib/results.js.map +1 -1
  48. package/package.json +7 -3
  49. package/src/action/main.ts +1 -0
  50. package/src/cli/index.ts +4 -1
  51. package/src/cli/parse-cli-arguments.ts +1 -0
  52. package/src/compare-and-publish/compare-and-publish.ts +75 -0
  53. package/src/compare-and-publish/compare-versions.ts +48 -0
  54. package/src/compare-and-publish/get-arguments.ts +61 -0
  55. package/src/compare-and-publish/index.ts +1 -0
  56. package/src/errors.ts +7 -0
  57. package/src/format-publish-result.ts +6 -6
  58. package/src/normalize-options.ts +16 -12
  59. package/src/npm/call-npm-cli.ts +90 -48
  60. package/src/npm/index.ts +2 -64
  61. package/src/npm/use-npm-environment.ts +10 -4
  62. package/src/npm-publish.ts +11 -18
  63. package/src/options.ts +15 -3
  64. package/src/read-manifest.ts +8 -9
  65. package/src/results.ts +6 -1
  66. package/lib/compare-versions.d.ts +0 -20
  67. package/lib/compare-versions.js +0 -36
  68. package/lib/compare-versions.js.map +0 -1
  69. package/lib/npm/get-publish-arguments.d.ts +0 -9
  70. package/lib/npm/get-publish-arguments.js +0 -29
  71. package/lib/npm/get-publish-arguments.js.map +0 -1
  72. package/src/compare-versions.ts +0 -52
  73. package/src/npm/get-publish-arguments.ts +0 -34
@@ -26,30 +26,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.normalizeOptions = void 0;
29
+ exports.normalizeOptions = exports.TAG_LATEST = void 0;
30
30
  const node_os_1 = __importDefault(require("node:os"));
31
31
  const errors = __importStar(require("./errors.js"));
32
32
  const options_js_1 = require("./options.js");
33
- const DEFAULT_REGISTRY = "https://registry.npmjs.org/";
34
- const DEFAULT_TAG = "latest";
33
+ const REGISTRY_NPM = "https://registry.npmjs.org/";
34
+ exports.TAG_LATEST = "latest";
35
35
  /**
36
36
  * Normalizes and sanitizes options, and fills-in any default values.
37
37
  *
38
- * @param options User-input options.
39
38
  * @param manifest Package metadata from package.json.
39
+ * @param options User-input options.
40
40
  * @returns Validated auth and publish configuration.
41
41
  */
42
- function normalizeOptions(options, manifest) {
43
- const defaultTag = manifest.publishConfig?.tag ?? DEFAULT_TAG;
44
- const defaultRegistry = manifest.publishConfig?.registry ?? DEFAULT_REGISTRY;
42
+ function normalizeOptions(manifest, options) {
43
+ const defaultTag = manifest.publishConfig?.tag ?? exports.TAG_LATEST;
44
+ const defaultRegistry = manifest.publishConfig?.registry ?? REGISTRY_NPM;
45
45
  const defaultAccess = manifest.publishConfig?.access ??
46
46
  (manifest.scope === undefined ? options_js_1.ACCESS_PUBLIC : undefined);
47
+ const defaultProvenance = manifest.publishConfig?.provenance ?? false;
47
48
  return {
48
49
  token: validateToken(options.token),
49
50
  registry: validateRegistry(options.registry ?? defaultRegistry),
50
51
  tag: setValue(options.tag, defaultTag, validateTag),
51
52
  access: setValue(options.access, defaultAccess, validateAccess),
52
- dryRun: setValue(options.dryRun, false, validateDryRun),
53
+ provenance: setValue(options.provenance, defaultProvenance, Boolean),
54
+ dryRun: setValue(options.dryRun, false, Boolean),
53
55
  strategy: setValue(options.strategy, options_js_1.STRATEGY_ALL, validateStrategy),
54
56
  logger: options.logger,
55
57
  temporaryDirectory: options.temporaryDirectory ?? node_os_1.default.tmpdir(),
@@ -75,10 +77,10 @@ const validateRegistry = (value) => {
75
77
  }
76
78
  };
77
79
  const validateTag = (value) => {
78
- return value;
79
- };
80
- const validateDryRun = (value) => {
81
- return value;
80
+ if (typeof value === "string" && value.length > 0) {
81
+ return value;
82
+ }
83
+ throw new errors.InvalidTagError(value);
82
84
  };
83
85
  const validateAccess = (value) => {
84
86
  if (value === undefined ||
@@ -1 +1 @@
1
- {"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../src/normalize-options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../src/normalize-options.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,31 @@
1
1
  import type { Logger } from "../options.js";
2
2
  import type { NpmCliEnvironment } from "./use-npm-environment.js";
3
- export interface NpmCliOptions<TReturn> {
4
- environment?: NpmCliEnvironment;
5
- ifError?: Record<string, TReturn>;
3
+ export interface NpmCliOptions {
4
+ environment: NpmCliEnvironment;
6
5
  logger?: Logger | undefined;
7
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";
8
29
  /**
9
30
  * Call the NPM CLI in JSON mode.
10
31
  *
@@ -13,4 +34,5 @@ export interface NpmCliOptions<TReturn> {
13
34
  * @param options Customize environment variables or add an error handler.
14
35
  * @returns The parsed JSON, or stdout if unparsable.
15
36
  */
16
- export declare function callNpmCli<TReturn = string>(command: string, cliArguments: string[], options?: NpmCliOptions<TReturn>): Promise<TReturn>;
37
+ export declare function callNpmCli<CommandT extends Command>(command: CommandT, cliArguments: string[], options: NpmCliOptions): Promise<NpmCallResult<CommandT>>;
38
+ export {};
@@ -26,13 +26,49 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.callNpmCli = void 0;
29
+ exports.callNpmCli = exports.EPUBLISHCONFLICT = exports.E404 = exports.PUBLISH = exports.VIEW = void 0;
30
30
  const node_child_process_1 = __importDefault(require("node:child_process"));
31
31
  const node_os_1 = __importDefault(require("node:os"));
32
32
  const errors = __importStar(require("../errors.js"));
33
+ exports.VIEW = "view";
34
+ exports.PUBLISH = "publish";
35
+ exports.E404 = "E404";
36
+ exports.EPUBLISHCONFLICT = "EPUBLISHCONFLICT";
33
37
  const NPM = node_os_1.default.platform() === "win32" ? "npm.cmd" : "npm";
34
38
  const JSON_MATCH_RE = /(\{[\s\S]*\})/mu;
35
- const execNpm = (commandArguments, environment = {}, logger) => {
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) {
36
72
  logger?.debug?.(`Running command: ${NPM} ${commandArguments.join(" ")}`);
37
73
  return new Promise((resolve) => {
38
74
  let stdout = "";
@@ -50,8 +86,17 @@ const execNpm = (commandArguments, environment = {}, logger) => {
50
86
  });
51
87
  });
52
88
  });
53
- };
54
- const parseJson = (...values) => {
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) {
55
100
  for (const value of values) {
56
101
  const jsonValue = JSON_MATCH_RE.exec(value)?.[1];
57
102
  if (jsonValue) {
@@ -64,28 +109,5 @@ const parseJson = (...values) => {
64
109
  }
65
110
  }
66
111
  return undefined;
67
- };
68
- /**
69
- * Call the NPM CLI in JSON mode.
70
- *
71
- * @param command The command of the NPM CLI to call
72
- * @param cliArguments Any arguments to send to the command
73
- * @param options Customize environment variables or add an error handler.
74
- * @returns The parsed JSON, or stdout if unparsable.
75
- */
76
- async function callNpmCli(command, cliArguments, options = {}) {
77
- const { stdout, stderr, exitCode } = await execNpm([command, "--ignore-scripts", "--json", ...cliArguments], options.environment, options.logger);
78
- if (exitCode !== 0) {
79
- const errorPayload = parseJson(stdout, stderr);
80
- const errorCode = errorPayload?.error?.code?.toLowerCase();
81
- if (typeof errorCode === "string" &&
82
- options.ifError &&
83
- errorCode in options.ifError) {
84
- return options.ifError[errorCode];
85
- }
86
- throw new errors.NpmCallError(command, exitCode, stderr);
87
- }
88
- return parseJson(stdout) ?? stdout;
89
112
  }
90
- exports.callNpmCli = callNpmCli;
91
113
  //# sourceMappingURL=call-npm-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"call-npm-cli.js","sourceRoot":"","sources":["../../src/npm/call-npm-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"call-npm-cli.js","sourceRoot":"","sources":["../../src/npm/call-npm-cli.ts"],"names":[],"mappings":"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"}
@@ -1,29 +1,2 @@
1
- import type { NormalizedOptions } from "../normalize-options.js";
2
- export interface PublishedVersions {
3
- "dist-tags": Record<string, string>;
4
- versions: string[];
5
- }
6
- export interface PublishFile {
7
- path: string;
8
- size: number;
9
- }
10
- export interface PublishResult {
11
- id: string;
12
- files: PublishFile[];
13
- }
14
- /**
15
- * Get a package's published versions.
16
- *
17
- * @param packageName The name of the package to get published versions for.
18
- * @param options Configuration options.
19
- * @returns All published versions and tags.
20
- */
21
- export declare function getVersions(packageName: string, options: NormalizedOptions): Promise<PublishedVersions>;
22
- /**
23
- * Publish a package.
24
- *
25
- * @param packageSpec Package specification to pass to npm.
26
- * @param options Configuration options.
27
- * @returns Release metadata.
28
- */
29
- export declare function publish(packageSpec: string, options: NormalizedOptions): Promise<PublishResult>;
1
+ export * from "./call-npm-cli.js";
2
+ export * from "./use-npm-environment.js";
package/lib/npm/index.js CHANGED
@@ -1,41 +1,19 @@
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 __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
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.publish = exports.getVersions = void 0;
4
- const use_npm_environment_js_1 = require("./use-npm-environment.js");
5
- const call_npm_cli_js_1 = require("./call-npm-cli.js");
6
- const get_publish_arguments_js_1 = require("./get-publish-arguments.js");
7
- /**
8
- * Get a package's published versions.
9
- *
10
- * @param packageName The name of the package to get published versions for.
11
- * @param options Configuration options.
12
- * @returns All published versions and tags.
13
- */
14
- async function getVersions(packageName, options) {
15
- return (0, use_npm_environment_js_1.useNpmEnvironment)(options, (environment) => {
16
- return (0, call_npm_cli_js_1.callNpmCli)("view", [packageName, "dist-tags", "versions"], {
17
- logger: options.logger,
18
- environment,
19
- ifError: { e404: { "dist-tags": {}, versions: [] } },
20
- });
21
- });
22
- }
23
- exports.getVersions = getVersions;
24
- /**
25
- * Publish a package.
26
- *
27
- * @param packageSpec Package specification to pass to npm.
28
- * @param options Configuration options.
29
- * @returns Release metadata.
30
- */
31
- async function publish(packageSpec, options) {
32
- const publishArguments = (0, get_publish_arguments_js_1.getPublishArguments)(packageSpec, options);
33
- return (0, use_npm_environment_js_1.useNpmEnvironment)(options, (environment) => {
34
- return (0, call_npm_cli_js_1.callNpmCli)("publish", publishArguments, {
35
- logger: options.logger,
36
- environment,
37
- });
38
- });
39
- }
40
- exports.publish = publish;
17
+ __exportStar(require("./call-npm-cli.js"), exports);
18
+ __exportStar(require("./use-npm-environment.js"), exports);
41
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/npm/index.ts"],"names":[],"mappings":";;;AACA,qEAA6D;AAC7D,uDAA+C;AAC/C,yEAAiE;AAiBjE;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAC/B,WAAmB,EACnB,OAA0B;IAE1B,OAAO,IAAA,0CAAiB,EAAC,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE;QAChD,OAAO,IAAA,4BAAU,EACf,MAAM,EACN,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,CAAC,EACtC;YACE,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,WAAW;YACX,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE;SACrD,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAfD,kCAeC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,OAAO,CAC3B,WAAmB,EACnB,OAA0B;IAE1B,MAAM,gBAAgB,GAAG,IAAA,8CAAmB,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAEnE,OAAO,IAAA,0CAAiB,EAAC,OAAO,EAAE,CAAC,WAAW,EAAE,EAAE;QAChD,OAAO,IAAA,4BAAU,EAAgB,SAAS,EAAE,gBAAgB,EAAE;YAC5D,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,WAAW;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAZD,0BAYC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/npm/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,2DAAyC"}
@@ -1,13 +1,15 @@
1
+ import type { PackageManifest } from "../read-manifest.js";
1
2
  import type { NormalizedOptions } from "../normalize-options.js";
2
3
  export type NpmCliEnvironment = Record<string, string>;
3
- export type NpmCliTask<TReturn> = (environment: NpmCliEnvironment) => Promise<TReturn>;
4
+ export type NpmCliTask<TReturn> = (manifest: PackageManifest, options: NormalizedOptions, environment: NpmCliEnvironment) => Promise<TReturn>;
4
5
  /**
5
6
  * Create a temporary .npmrc file with the given auth token, and call a task
6
7
  * with env vars set to use that .npmrc.
7
8
  *
9
+ * @param manifest Pacakge metadata.
8
10
  * @param options Configuration options.
9
11
  * @param task A function called with the configured environment. After the
10
12
  * function resolves, the temporary .npmrc file will be removed.
11
13
  * @returns The resolved value of `task`
12
14
  */
13
- export declare function useNpmEnvironment<TReturn>(options: NormalizedOptions, task: NpmCliTask<TReturn>): Promise<TReturn>;
15
+ export declare function useNpmEnvironment<TReturn>(manifest: PackageManifest, options: NormalizedOptions, task: NpmCliTask<TReturn>): Promise<TReturn>;
@@ -11,15 +11,20 @@ const node_path_1 = __importDefault(require("node:path"));
11
11
  * Create a temporary .npmrc file with the given auth token, and call a task
12
12
  * with env vars set to use that .npmrc.
13
13
  *
14
+ * @param manifest Pacakge metadata.
14
15
  * @param options Configuration options.
15
16
  * @param task A function called with the configured environment. After the
16
17
  * function resolves, the temporary .npmrc file will be removed.
17
18
  * @returns The resolved value of `task`
18
19
  */
19
- async function useNpmEnvironment(options, task) {
20
+ async function useNpmEnvironment(manifest, options, task) {
20
21
  const { registry, token, logger, temporaryDirectory } = options;
21
22
  const npmrcDirectory = await promises_1.default.mkdtemp(node_path_1.default.join(temporaryDirectory, "npm-publish-"));
22
23
  const npmrc = node_path_1.default.join(npmrcDirectory, ".npmrc");
24
+ const environment = {
25
+ NODE_AUTH_TOKEN: token,
26
+ npm_config_userconfig: npmrc,
27
+ };
23
28
  const config = [
24
29
  "; created by jsdevtools/npm-publish",
25
30
  `//${registry.host}/:_authToken=\${NODE_AUTH_TOKEN}`,
@@ -29,10 +34,7 @@ async function useNpmEnvironment(options, task) {
29
34
  await promises_1.default.writeFile(npmrc, config, "utf8");
30
35
  logger?.debug?.(`Temporary .npmrc created at ${npmrc}\n${config}`);
31
36
  try {
32
- return await task({
33
- NODE_AUTH_TOKEN: token,
34
- npm_config_userconfig: npmrc,
35
- });
37
+ return await task(manifest, options, environment);
36
38
  }
37
39
  finally {
38
40
  await promises_1.default.rm(npmrcDirectory, { force: true, recursive: true });
@@ -1 +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;AAU7B;;;;;;;;GAQG;AACI,KAAK,UAAU,iBAAiB,CACrC,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;IAElD,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;YAChB,eAAe,EAAE,KAAK;YACtB,qBAAqB,EAAE,KAAK;SAC7B,CAAC,CAAC;KACJ;YAAS;QACR,MAAM,kBAAE,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAC/D;AACH,CAAC;AA7BD,8CA6BC"}
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"}
@@ -4,7 +4,7 @@ exports.npmPublish = void 0;
4
4
  const read_manifest_js_1 = require("./read-manifest.js");
5
5
  const normalize_options_js_1 = require("./normalize-options.js");
6
6
  const index_js_1 = require("./npm/index.js");
7
- const compare_versions_js_1 = require("./compare-versions.js");
7
+ const index_js_2 = require("./compare-and-publish/index.js");
8
8
  const format_publish_result_js_1 = require("./format-publish-result.js");
9
9
  /**
10
10
  * Publishes a package to NPM, if its version has changed.
@@ -13,21 +13,16 @@ const format_publish_result_js_1 = require("./format-publish-result.js");
13
13
  * @returns Release metadata.
14
14
  */
15
15
  async function npmPublish(options) {
16
- const { packageSpec, manifest } = await (0, read_manifest_js_1.readManifest)(options.package);
17
- const normalizedOptions = (0, normalize_options_js_1.normalizeOptions)(options, manifest);
18
- const publishedVersions = await (0, index_js_1.getVersions)(manifest.name, normalizedOptions);
19
- const versionComparison = (0, compare_versions_js_1.compareVersions)(manifest.version, publishedVersions, normalizedOptions);
20
- let publishResult;
21
- if (versionComparison.type !== undefined) {
22
- publishResult = await (0, index_js_1.publish)(packageSpec, normalizedOptions);
23
- }
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);
24
19
  normalizedOptions.logger?.info?.((0, format_publish_result_js_1.formatPublishResult)(manifest, normalizedOptions, publishResult));
25
20
  return {
26
- id: publishResult?.id,
21
+ id: publishResult.id,
22
+ type: publishResult.type,
23
+ oldVersion: publishResult.oldVersion,
27
24
  name: manifest.name,
28
25
  version: manifest.version,
29
- type: versionComparison.type,
30
- oldVersion: versionComparison.oldVersion,
31
26
  registry: normalizedOptions.registry,
32
27
  tag: normalizedOptions.tag.value,
33
28
  access: normalizedOptions.access.value,
@@ -1 +1 @@
1
- {"version":3,"file":"npm-publish.js","sourceRoot":"","sources":["../src/npm-publish.ts"],"names":[],"mappings":";;;AAAA,yDAAkD;AAClD,iEAA0D;AAC1D,6CAAsD;AACtD,+DAAwD;AACxD,yEAAiE;AAIjE;;;;;GAKG;AACI,KAAK,UAAU,UAAU,CAAC,OAAgB;IAC/C,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,+BAAY,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,IAAA,uCAAgB,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,iBAAiB,GAAG,MAAM,IAAA,sBAAW,EAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC9E,MAAM,iBAAiB,GAAG,IAAA,qCAAe,EACvC,QAAQ,CAAC,OAAO,EAChB,iBAAiB,EACjB,iBAAiB,CAClB,CAAC;IAEF,IAAI,aAAa,CAAC;IAElB,IAAI,iBAAiB,CAAC,IAAI,KAAK,SAAS,EAAE;QACxC,aAAa,GAAG,MAAM,IAAA,kBAAO,EAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;KAC/D;IAED,iBAAiB,CAAC,MAAM,EAAE,IAAI,EAAE,CAC9B,IAAA,8CAAmB,EAAC,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,CAChE,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,aAAa,EAAE,EAAE;QACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,IAAI,EAAE,iBAAiB,CAAC,IAAI;QAC5B,UAAU,EAAE,iBAAiB,CAAC,UAAU;QACxC,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;AAhCD,gCAgCC"}
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"}
package/lib/options.d.ts CHANGED
@@ -34,7 +34,7 @@ export interface Options {
34
34
  *
35
35
  * Defaults to "https://registry.npmjs.org/".
36
36
  *
37
- * Can be overridden by the package.json's `publishConfig` field.
37
+ * Can be set by the package.json's `publishConfig` field.
38
38
  */
39
39
  registry?: string | URL | undefined;
40
40
  /**
@@ -42,7 +42,7 @@ export interface Options {
42
42
  *
43
43
  * Defaults to "latest".
44
44
  *
45
- * Can be overridden by the package.json's `publishConfig` field.
45
+ * Can be set by the package.json's `publishConfig` field.
46
46
  */
47
47
  tag?: string | undefined;
48
48
  /**
@@ -55,9 +55,20 @@ export interface Options {
55
55
  * Defaults to "restricted" for scoped packages, unless that package has been
56
56
  * previously published as `public`
57
57
  *
58
- * Can be overridden by the package.json's `publishConfig` field.
58
+ * Can be set by the package.json's `publishConfig` field.
59
59
  */
60
60
  access?: Access | undefined;
61
+ /**
62
+ * Generate provenance statements.
63
+ *
64
+ * Publish must be run from a supported CI provider to succeed. When run from
65
+ * GitHub Actions, requires `id-token: write` permission.
66
+ *
67
+ * Defaults to `false`.
68
+ *
69
+ * Can be set by the package.json's `publishConfig` field.
70
+ */
71
+ provenance?: boolean | undefined;
61
72
  /**
62
73
  * Version check strategy.
63
74
  *
@@ -1,10 +1,6 @@
1
- /** The result of reading a package manifest */
2
- export interface ManifestReadResult {
3
- packageSpec: string;
4
- manifest: PackageManifest;
5
- }
6
- /** A package manifest (package.json) */
1
+ /** A package manifest (package.json) and associated details. */
7
2
  export interface PackageManifest {
3
+ packageSpec: string;
8
4
  name: string;
9
5
  version: string;
10
6
  scope: string | undefined;
@@ -15,6 +11,7 @@ export interface PackagePublishConfig {
15
11
  tag?: string;
16
12
  access?: string;
17
13
  registry?: string;
14
+ provenance?: boolean;
18
15
  }
19
16
  /**
20
17
  * Reads the package manifest (package.json) and returns its parsed contents.
@@ -22,4 +19,4 @@ export interface PackagePublishConfig {
22
19
  * @param packagePath The path to the package being published.
23
20
  * @returns The parsed package metadata.
24
21
  */
25
- export declare function readManifest(packagePath: unknown): Promise<ManifestReadResult>;
22
+ export declare function readManifest(packagePath: unknown): Promise<PackageManifest>;
@@ -128,7 +128,10 @@ async function readManifest(packagePath) {
128
128
  }
129
129
  return {
130
130
  packageSpec,
131
- manifest: { name, version, publishConfig, scope: SCOPE_RE.exec(name)?.[1] },
131
+ name,
132
+ version,
133
+ publishConfig,
134
+ scope: SCOPE_RE.exec(name)?.[1],
132
135
  };
133
136
  }
134
137
  exports.readManifest = readManifest;
@@ -1 +1 @@
1
- {"version":3,"file":"read-manifest.js","sourceRoot":"","sources":["../src/read-manifest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gEAAkC;AAClC,0DAA6B;AAC7B,mCAA8C;AAC9C,6BAAsD;AAEtD,oDAAsC;AAuBtC,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEhC,MAAM,iBAAiB,GAAG,cAAc,CAAC;AACzC,MAAM,eAAe,GAAG,MAAM,CAAC;AAE/B,MAAM,UAAU,GAAG,CAAC,IAAa,EAAkB,EAAE;IACnD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,mBAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,iBAAiB,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAAa,EAAkB,EAAE;IACpD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC/D,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,IAAa,EAAkB,EAAE;IAClD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,mBAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,OAAgB,EAAqB,EAAE;IACxD,OAAO,IAAA,cAAW,EAAC,OAAiB,CAAC,KAAK,IAAI,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAAE,GAAG,YAAsB,EAAmB,EAAE;IAC3E,MAAM,IAAI,GAAG,mBAAI,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC;IAE3C,IAAI;QACF,OAAO,MAAM,kBAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACxC;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACpD;AACH,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,KAAK,EAAE,IAAY,EAAmB,EAAE;IACrE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,CAAC,KAAgB,EAAE,EAAE;QACnC,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,EAAE;YACzC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SAC/C;IACH,CAAC,CAAC;IAEF,IAAI;QACF,MAAM,IAAA,UAAO,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;SAC1D;KACF;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACvD;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxC,CAAC,CAAC;AAEF;;;;;GAKG;AACI,KAAK,UAAU,YAAY,CAChC,WAAoB;IAEpB,IAAI,WAA+B,CAAC;IACpC,IAAI,gBAAwB,CAAC;IAE7B,IAAI,CAAC,WAAW,EAAE;QAChB,WAAW,GAAG,EAAE,CAAC;QACjB,gBAAgB,GAAG,MAAM,eAAe,CAAC,iBAAiB,CAAC,CAAC;KAC7D;SAAM,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE;QAClC,WAAW,GAAG,mBAAI,CAAC,OAAO,CAAC,mBAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QACtD,gBAAgB,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;KACvD;SAAM,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE;QACnC,WAAW,GAAG,mBAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACxC,gBAAgB,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;KAC1E;SAAM,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE;QACjC,WAAW,GAAG,mBAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACxC,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;KAC9D;SAAM;QACL,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;KACnD;IAED,IAAI,YAAqC,CAAC;IAC1C,IAAI,IAAa,CAAC;IAClB,IAAI,OAAgB,CAAC;IACrB,IAAI,aAAsB,CAAC;IAE3B,IAAI;QACF,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAA4B,CAAC;QACvE,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAClC,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KACrD;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;KAC5D;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACjD,MAAM,IAAI,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;KAChD;IAED,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACvB,MAAM,IAAI,MAAM,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;KACtD;IAED,IACE,OAAO,aAAa,KAAK,QAAQ;QACjC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;QAC5B,CAAC,aAAa,EACd;QACA,MAAM,IAAI,MAAM,CAAC,gCAAgC,CAAC,aAAa,CAAC,CAAC;KAClE;IAED,OAAO;QACL,WAAW;QACX,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;KAC5E,CAAC;AACJ,CAAC;AAxDD,oCAwDC"}
1
+ {"version":3,"file":"read-manifest.js","sourceRoot":"","sources":["../src/read-manifest.ts"],"names":[],"mappings":"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"}
package/lib/results.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  import type { Access, Strategy } from "./options.js";
2
- import type { ReleaseType } from "./compare-versions.js";
2
+ import type { ReleaseType as SemverReleaseType } from "semver";
3
+ /** Release type */
4
+ export type ReleaseType = SemverReleaseType | typeof INITIAL | typeof DIFFERENT;
5
+ export declare const INITIAL = "initial";
6
+ export declare const DIFFERENT = "different";
3
7
  /** Results of the publish */
4
8
  export interface Results {
5
9
  /**
package/lib/results.js CHANGED
@@ -1,3 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DIFFERENT = exports.INITIAL = void 0;
4
+ exports.INITIAL = "initial";
5
+ exports.DIFFERENT = "different";
3
6
  //# sourceMappingURL=results.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"results.js","sourceRoot":"","sources":["../src/results.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"results.js","sourceRoot":"","sources":["../src/results.ts"],"names":[],"mappings":";;;AAKa,QAAA,OAAO,GAAG,SAAS,CAAC;AACpB,QAAA,SAAS,GAAG,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jsdevtools/npm-publish",
3
3
  "description": "Fast, easy publishing to NPM",
4
- "version": "2.0.0",
4
+ "version": "2.1.0",
5
5
  "keywords": [
6
6
  "github-action",
7
7
  "npm",
@@ -31,7 +31,7 @@
31
31
  "!__tests__"
32
32
  ],
33
33
  "scripts": {
34
- "all": "npm run clean && npm run build && npm run lint && npm run coverage",
34
+ "all": "npm run clean && npm run build && npm run format && npm run coverage",
35
35
  "clean": "rimraf coverage lib dist e2e/fixture *.tgz",
36
36
  "lint": "npm run _eslint && npm run _prettier -- --check",
37
37
  "format": "npm run _eslint -- --fix && npm run _prettier -- --write",
@@ -41,11 +41,15 @@
41
41
  "test": "vitest",
42
42
  "coverage": "vitest run --coverage",
43
43
  "_eslint": "eslint \"**/*.@(js|ts)\"",
44
- "_prettier": "prettier \"**/*.@(js|ts|json|md|yml)\""
44
+ "_prettier": "prettier \"**/*.@(js|ts|json|md|yaml)\""
45
45
  },
46
46
  "engines": {
47
47
  "node": ">=16"
48
48
  },
49
+ "publishConfig": {
50
+ "access": "public",
51
+ "provenance": true
52
+ },
49
53
  "devDependencies": {
50
54
  "@actions/core": "^1.10.0",
51
55
  "@types/command-line-args": "^5.0.0",
@@ -10,6 +10,7 @@ async function run(): Promise<void> {
10
10
  package: core.getInput("package"),
11
11
  tag: core.getInput("tag"),
12
12
  access: core.getInput("access"),
13
+ provenance: core.getBooleanInput("provenance"),
13
14
  strategy: core.getInput("strategy"),
14
15
  dryRun: core.getBooleanInput("dry-run"),
15
16
  logger: core.logger,
package/src/cli/index.ts CHANGED
@@ -23,7 +23,10 @@ Options:
23
23
  Defaults to "latest".
24
24
 
25
25
  --access <access> Package access, may be "public" or "restricted".
26
- See documentation for details.
26
+ See npm documentation for details.
27
+
28
+ --provenance Publish with provenance statements.
29
+ See npm documentation for details.
27
30
 
28
31
  --strategy <strategy> Publish strategy, may be "all" or "upgrade".
29
32
  Defaults to "all", see documentation for details.
@@ -9,6 +9,7 @@ const ARGUMENTS_OPTIONS = [
9
9
  { name: "registry", type: String },
10
10
  { name: "tag", type: String },
11
11
  { name: "access", type: String },
12
+ { name: "provenance", type: Boolean },
12
13
  { name: "strategy", type: String },
13
14
  { name: "dry-run", type: Boolean },
14
15
  { name: "quiet", type: Boolean },