@jsdevtools/npm-publish 4.0.0 → 4.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 CHANGED
@@ -6,7 +6,7 @@
6
6
  [![License](https://img.shields.io/npm/l/@jsdevtools/npm-publish.svg)](LICENSE)
7
7
  [![Buy us a tree](https://img.shields.io/badge/Treeware-%F0%9F%8C%B3-lightgreen)](https://plant.treeware.earth/JS-DevTools/npm-publish)
8
8
 
9
- Publish packages to npm automatically in GitHub Actions by updating the version number.
9
+ Publish packages to npm automatically in GitHub Actions whenever a change to your package's `version` field is detected.
10
10
 
11
11
  - [Change log][releases]
12
12
  - [v3 to v4 migration guide](#v3-to-v4)
@@ -15,6 +15,40 @@ Publish packages to npm automatically in GitHub Actions by updating the version
15
15
 
16
16
  [releases]: https://github.com/JS-DevTools/npm-publish/releases
17
17
 
18
+ ## ⚠️ You probably don't need this!
19
+
20
+ This action automates a specific kind of continuous deployment to `npm`, where you want to publish whenever the `version` field in `package.json` changes on your `main` branch. If you prefer to publish on tags (for example, those created by the `npm version` command), or are using an alternative package manager like `pnpm`, you don't need this action! Simply configure `setup-node` with its `registry-url` option and call your package manager's `publish` command directly. This is more secure than relying on a third-party action like this one, and is more customizable.
21
+
22
+ ```yaml
23
+ # Publish to npm whenever a tag is pushed
24
+ name: Publish to npm
25
+ on:
26
+ push:
27
+ tags: v*
28
+ jobs:
29
+ build:
30
+ runs-on: ubuntu-latest
31
+ permissions:
32
+ contents: read
33
+ id-token: write
34
+ steps:
35
+ - uses: actions/checkout@v5
36
+ - uses: actions/setup-node@v5
37
+ with:
38
+ node-version: "24"
39
+ registry-url: "https://registry.npmjs.org"
40
+ - run: npm ci
41
+ - run: npm test
42
+ - run: npm publish --provenance --ignore-scripts
43
+ env:
44
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
45
+ ```
46
+
47
+ See GitHub's [Node.js publishing][] guide and npm's [trusted publishing][] docs for more details and examples.
48
+
49
+ [Node.js publishing]: https://docs.github.com/en/actions/tutorials/publish-packages/publish-nodejs-packages
50
+ [trusted publishing]: https://docs.npmjs.com/trusted-publishers#supported-cicd-providers
51
+
18
52
  ## Features
19
53
 
20
54
  - 🧠 **Smart**
@@ -66,6 +100,30 @@ jobs:
66
100
  token: ${{ secrets.NPM_TOKEN }}
67
101
  ```
68
102
 
103
+ If you have [trusted publishing][] configured for your package and use `npm@>=11.5.1`, you can omit the `token` input and use OIDC instead.
104
+
105
+ > [!IMPORTANT]
106
+ > If you're publishing a private package, you will still need to provide a read-only `token` so the action can read existing versions from the registry before publish.
107
+
108
+ ```diff
109
+ jobs:
110
+ publish:
111
+ runs-on: ubuntu-latest
112
+ + permissions:
113
+ + contents: read
114
+ + id-token: write # required to use OIDC
115
+ steps:
116
+ - uses: actions/checkout@v5
117
+ - uses: actions/setup-node@v5
118
+ with:
119
+ node-version: "24" # includes npm@11.6.0
120
+ - run: npm ci
121
+ - run: npm test
122
+ - uses: JS-DevTools/npm-publish@v4
123
+ - with:
124
+ - token: ${{ secrets.NPM_TOKEN }}
125
+ ```
126
+
69
127
  You can also publish to third-party registries. For example, to publish to the [GitHub Package Registry][], set `token` to `secrets.GITHUB_TOKEN` and `registry` to `https://npm.pkg.github.com`:
70
128
 
71
129
  ```yaml
@@ -103,7 +161,7 @@ You can set any or all of the following input parameters using `with`:
103
161
 
104
162
  | Name | Type | Default | Description |
105
163
  | ---------------- | ---------------------- | ----------------------------- | -------------------------------------------------------------------------------- |
106
- | `token` | string | **required** | Authentication token to use with the configured registry. |
164
+ | `token` | string | unspecified | Registry authentication token, not required if using [trusted publishing][]³ |
107
165
  | `registry`¹ | string | `https://registry.npmjs.org/` | Registry URL to use. |
108
166
  | `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. |
109
167
  | `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. |
@@ -115,6 +173,7 @@ You can set any or all of the following input parameters using `with`:
115
173
 
116
174
  1. May be specified using `publishConfig` in `package.json`.
117
175
  2. Provenance requires npm `>=9.5.0`.
176
+ 3. Trusted publishing npm `>=11.5.1` and must be run from a supported cloud provider.
118
177
 
119
178
  [npm-tag]: https://docs.npmjs.com/cli/v9/commands/npm-publish#tag
120
179
  [npm-access]: https://docs.npmjs.com/cli/v9/commands/npm-publish#access
@@ -178,7 +237,7 @@ import type { Options } from "@jsdevtools/npm-publish";
178
237
 
179
238
  | Name | Type | Default | Description |
180
239
  | -------------------- | ---------------------- | ----------------------------- | -------------------------------------------------------------------------------- |
181
- | `token` | string | **required** | Authentication token to use with the configured registry. |
240
+ | `token` | string | **required** | Registry authentication token, not required if using [trusted publishing][]³ |
182
241
  | `registry`¹ | string, `URL` | `https://registry.npmjs.org/` | Registry URL to use. |
183
242
  | `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. |
184
243
  | `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. |
@@ -192,6 +251,7 @@ import type { Options } from "@jsdevtools/npm-publish";
192
251
 
193
252
  1. May be specified using `publishConfig` in `package.json`.
194
253
  2. Provenance requires npm `>=9.5.0`.
254
+ 3. Trusted publishing npm `>=11.5.1` and must be run from a supported cloud provider.
195
255
 
196
256
  ### API output
197
257
 
@@ -250,7 +310,9 @@ Arguments:
250
310
 
251
311
  Options:
252
312
 
253
- --token <token> (Required) npm authentication token.
313
+ --token <token> npm authentication token.
314
+ Not required if using trusted publishing.
315
+ See npm documentation for details.
254
316
 
255
317
  --registry <url> Registry to read from and write to.
256
318
  Defaults to "https://registry.npmjs.org/".
@@ -14,7 +14,7 @@ export declare function getInput(name: string): string | undefined;
14
14
  * @param name Input name
15
15
  * @returns The input secret value.
16
16
  */
17
- export declare function getRequiredSecretInput(name: string): string;
17
+ export declare function getSecretInput(name: string): string | undefined;
18
18
  /**
19
19
  * Get a boolean input by name.
20
20
  *
@@ -22,9 +22,11 @@ export function getInput(name) {
22
22
  * @param name Input name
23
23
  * @returns The input secret value.
24
24
  */
25
- export function getRequiredSecretInput(name) {
26
- const inputString = ghGetInput(name, { required: true });
27
- ghSetSecret(inputString);
25
+ export function getSecretInput(name) {
26
+ const inputString = getInput(name);
27
+ if (inputString) {
28
+ ghSetSecret(inputString);
29
+ }
28
30
  return inputString;
29
31
  }
30
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/action/core.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EACL,KAAK,IAAI,UAAU,EACnB,KAAK,IAAI,UAAU,EACnB,QAAQ,IAAI,UAAU,EACtB,IAAI,IAAI,SAAS,EACjB,SAAS,IAAI,WAAW,EACxB,SAAS,IAAI,WAAW,EACxB,SAAS,IAAI,WAAW,GACzB,MAAM,eAAe,CAAC;AAIvB,mDAAmD;AACnD,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,WAAW,CAAC,WAAW,CAAC,CAAC;IACzB,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAEnD,IAAI,WAAW,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,WAAW,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,WAAW,CAAC,KAAc,CAAC,CAAC;AAC9B,CAAC;AAuBD,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,KAAmC,EACnC,YAA+B;IAE/B,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,YAAY,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/action/core.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EACL,KAAK,IAAI,UAAU,EACnB,KAAK,IAAI,UAAU,EACnB,QAAQ,IAAI,UAAU,EACtB,IAAI,IAAI,SAAS,EACjB,SAAS,IAAI,WAAW,EACxB,SAAS,IAAI,WAAW,EACxB,SAAS,IAAI,WAAW,GACzB,MAAM,eAAe,CAAC;AAIvB,mDAAmD;AACnD,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,UAAU;CAClB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,WAAW,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IAEnD,IAAI,WAAW,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,WAAW,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,WAAW,CAAC,KAAc,CAAC,CAAC;AAC9B,CAAC;AAuBD,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,KAAmC,EACnC,YAA+B;IAE/B,WAAW,CAAC,IAAI,EAAE,KAAK,IAAI,YAAY,CAAC,CAAC;AAC3C,CAAC"}
@@ -4,7 +4,7 @@ import * as core from "./core.js";
4
4
  /** Run the action. */
5
5
  async function run() {
6
6
  const results = await npmPublish({
7
- token: core.getRequiredSecretInput("token"),
7
+ token: core.getSecretInput("token"),
8
8
  registry: core.getInput("registry"),
9
9
  package: core.getInput("package"),
10
10
  tag: core.getInput("tag"),
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/action/main.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,OAAO,EAAe,UAAU,EAAiB,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,sBAAsB;AACtB,KAAK,UAAU,GAAG;IAChB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC;QAC/B,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;QAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QACjC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAuB;QACrD,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;QAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAyB;QAC3D,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;QACrD,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;QACvC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;KAC5C,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,+BAA+B;AAC/B,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/action/main.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,OAAO,EAAe,UAAU,EAAiB,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,sBAAsB;AACtB,KAAK,UAAU,GAAG;IAChB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC;QAC/B,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;QACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QACjC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACzB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAuB;QACrD,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;QAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAyB;QAC3D,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;QACrD,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;QACvC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;KAC5C,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpD,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,+BAA+B;AAC/B,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare const USAGE = "\nUsage:\n\n npm-publish <options> [package]\n\nArguments:\n\n package The path to the package to publish.\n May be a directory, package.json, or .tgz file.\n Defaults to the package in the current directory.\n\nOptions:\n\n --token <token> (Required) npm authentication token.\n\n --registry <url> Registry to read from and write to.\n Defaults to \"https://registry.npmjs.org/\".\n\n --tag <tag> The distribution tag to check against and publish to.\n Defaults to \"latest\".\n\n --access <access> Package access, may be \"public\" or \"restricted\".\n See npm documentation for details.\n\n --provenance Publish with provenance statements.\n See npm documentation for details.\n\n --strategy <strategy> Publish strategy, may be \"all\" or \"upgrade\".\n Defaults to \"all\", see documentation for details.\n\n --no-ignore-scripts Allow lifecycle scripts, which are disabled by default\n as a security precaution. Defaults to false.\n\n --dry-run Do not actually publish anything.\n --quiet Only print errors.\n --debug Print debug logs.\n\n -v, --version Print the version number.\n -h, --help Show usage text.\n\nExamples:\n\n $ npm-publish --token abc123 ./my-package\n";
1
+ export declare const USAGE = "\nUsage:\n\n npm-publish <options> [package]\n\nArguments:\n\n package The path to the package to publish.\n May be a directory, package.json, or .tgz file.\n Defaults to the package in the current directory.\n\nOptions:\n\n --token <token> npm authentication token.\n Not required if using trusted publishing.\n See npm documentation for details.\n\n --registry <url> Registry to read from and write to.\n Defaults to \"https://registry.npmjs.org/\".\n\n --tag <tag> The distribution tag to check against and publish to.\n Defaults to \"latest\".\n\n --access <access> Package access, may be \"public\" or \"restricted\".\n See npm documentation for details.\n\n --provenance Publish with provenance statements.\n See npm documentation for details.\n\n --strategy <strategy> Publish strategy, may be \"all\" or \"upgrade\".\n Defaults to \"all\", see documentation for details.\n\n --no-ignore-scripts Allow lifecycle scripts, which are disabled by default\n as a security precaution. Defaults to false.\n\n --dry-run Do not actually publish anything.\n --quiet Only print errors.\n --debug Print debug logs.\n\n -v, --version Print the version number.\n -h, --help Show usage text.\n\nExamples:\n\n $ npm-publish --token abc123 ./my-package\n";
2
2
  /**
3
3
  * The main entry point of the CLI
4
4
  *
package/lib/cli/index.js CHANGED
@@ -13,7 +13,9 @@ Arguments:
13
13
 
14
14
  Options:
15
15
 
16
- --token <token> (Required) npm authentication token.
16
+ --token <token> npm authentication token.
17
+ Not required if using trusted publishing.
18
+ See npm documentation for details.
17
19
 
18
20
  --registry <url> Registry to read from and write to.
19
21
  Defaults to "https://registry.npmjs.org/".
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CpB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,OAAe;IACxD,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IAED,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAW;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,YAAY,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC7D,KAAK,EAAE,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC;IAEF,MAAM,UAAU,CAAC,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CpB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,OAAe;IACxD,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IAED,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAW;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,IAAI,EAAE,YAAY,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC7D,KAAK,EAAE,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC;IAEF,MAAM,UAAU,CAAC,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AACxD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { callNpmCli, E404, E409, EPUBLISHCONFLICT, PUBLISH, VIEW, } from "../npm/index.js";
1
+ import { callNpmCli, E404, EPUBLISHCONFLICT, PUBLISH, VIEW, } from "../npm/index.js";
2
2
  import { compareVersions } from "./compare-versions.js";
3
3
  import { getPublishArguments, getViewArguments } from "./get-arguments.js";
4
4
  /**
@@ -36,9 +36,7 @@ export async function compareAndPublish(manifest, options, environment) {
36
36
  const publishCall = (comparison.type ?? isDryRun)
37
37
  ? await callNpmCli(PUBLISH, publishArguments, cliOptions)
38
38
  : { successData: undefined, errorCode: undefined, error: undefined };
39
- if (publishCall.error &&
40
- publishCall.errorCode !== EPUBLISHCONFLICT &&
41
- publishCall.errorCode !== E409) {
39
+ if (publishCall.error && publishCall.errorCode !== EPUBLISHCONFLICT) {
42
40
  throw publishCall.error;
43
41
  }
44
42
  const { successData: publishData } = publishCall;
@@ -1 +1 @@
1
- {"version":3,"file":"compare-and-publish.js","sourceRoot":"","sources":["../../src/compare-and-publish/compare-and-publish.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,gBAAgB,EAEhB,OAAO,EACP,IAAI,GACL,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAA0B,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAY3E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAyB,EACzB,OAA0B,EAC1B,WAA8B;IAE9B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;IAChD,MAAM,UAAU,GAAG;QACjB,WAAW;QACX,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK;QAC1C,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC;IAEF,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnE,IAAI,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAEjE,4EAA4E;IAC5E,2EAA2E;IAC3E,yCAAyC;IACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC7C,gEAAgE;QAChE,oCAAoC;QACpC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACnE,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,QAAQ,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACtC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,WAAW,GACf,CAAC,UAAU,CAAC,IAAI,IAAI,QAAQ,CAAC;QAC3B,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,CAAC;QACzD,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAEzE,IACE,WAAW,CAAC,KAAK;QACjB,WAAW,CAAC,SAAS,KAAK,gBAAgB;QAC1C,WAAW,CAAC,SAAS,KAAK,IAAI,EAC9B,CAAC;QACD,MAAM,WAAW,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;IAEjD,OAAO;QACL,EAAE,EAAE,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;QAC9D,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;QAC/B,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC/C,UAAU,EAAE,UAAU,CAAC,UAAU;KAClC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"compare-and-publish.js","sourceRoot":"","sources":["../../src/compare-and-publish/compare-and-publish.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,IAAI,EACJ,gBAAgB,EAEhB,OAAO,EACP,IAAI,GACL,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAA0B,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAY3E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAyB,EACzB,OAA0B,EAC1B,WAA8B;IAE9B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;IAChD,MAAM,UAAU,GAAG;QACjB,WAAW;QACX,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK;QAC1C,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC;IAEF,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnE,IAAI,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAEjE,4EAA4E;IAC5E,2EAA2E;IAC3E,yCAAyC;IACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC7C,gEAAgE;QAChE,oCAAoC;QACpC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACnE,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,QAAQ,CAAC,KAAK,CAAC;IACvB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACtC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,WAAW,GACf,CAAC,UAAU,CAAC,IAAI,IAAI,QAAQ,CAAC;QAC3B,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,CAAC;QACzD,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAEzE,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,SAAS,KAAK,gBAAgB,EAAE,CAAC;QACpE,MAAM,WAAW,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;IAEjD,OAAO;QACL,EAAE,EAAE,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;QAC9D,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;QAC/B,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC/C,UAAU,EAAE,UAAU,CAAC,UAAU;KAClC,CAAC;AACJ,CAAC"}
@@ -4,7 +4,7 @@ export declare const TAG_LATEST = "latest";
4
4
  /** Normalized and sanitized auth, publish, and runtime configurations. */
5
5
  export interface NormalizedOptions {
6
6
  registry: URL;
7
- token: string;
7
+ token: string | undefined;
8
8
  tag: ConfigValue<string>;
9
9
  access: ConfigValue<Access | undefined>;
10
10
  provenance: ConfigValue<boolean>;
@@ -17,7 +17,7 @@ export function normalizeOptions(manifest, options) {
17
17
  (manifest.scope === undefined ? ACCESS_PUBLIC : undefined);
18
18
  const defaultProvenance = manifest.publishConfig?.provenance ?? false;
19
19
  return {
20
- token: validateToken(options.token),
20
+ token: validateToken(options.token ?? undefined),
21
21
  registry: validateRegistry(options.registry ?? defaultRegistry),
22
22
  tag: setValue(options.tag, defaultTag, validateTag),
23
23
  access: setValue(options.access, defaultAccess, validateAccess),
@@ -34,10 +34,10 @@ const setValue = (value, defaultValue, validate) => ({
34
34
  isDefault: value === undefined,
35
35
  });
36
36
  const validateToken = (value) => {
37
- if (typeof value === "string" && value.length > 0) {
38
- return value;
37
+ if (typeof value !== "string" && value !== undefined && value !== null) {
38
+ throw new errors.InvalidTokenError();
39
39
  }
40
- throw new errors.InvalidTokenError();
40
+ return typeof value === "string" && value.length > 0 ? value : undefined;
41
41
  };
42
42
  const validateRegistry = (value) => {
43
43
  try {
@@ -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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"}
@@ -25,7 +25,6 @@ export interface NpmPublishData {
25
25
  export declare const VIEW = "view";
26
26
  export declare const PUBLISH = "publish";
27
27
  export declare const E404 = "E404";
28
- export declare const E409 = "E409";
29
28
  export declare const EPUBLISHCONFLICT = "EPUBLISHCONFLICT";
30
29
  /**
31
30
  * Call the NPM CLI in JSON mode.
@@ -4,7 +4,6 @@ import * as errors from "../errors.js";
4
4
  export const VIEW = "view";
5
5
  export const PUBLISH = "publish";
6
6
  export const E404 = "E404";
7
- export const E409 = "E409";
8
7
  export const EPUBLISHCONFLICT = "EPUBLISHCONFLICT";
9
8
  const IS_WINDOWS = os.platform() === "win32";
10
9
  const NPM = IS_WINDOWS ? "npm.cmd" : "npm";
@@ -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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"}
@@ -23,7 +23,10 @@ export async function useNpmEnvironment(manifest, options, task) {
23
23
  ].join(os.EOL);
24
24
  const npmrcDirectory = await fs.mkdtemp(path.join(temporaryDirectory, "npm-publish-"));
25
25
  const npmrc = path.join(npmrcDirectory, ".npmrc");
26
- const environment = { NODE_AUTH_TOKEN: token, npm_config_userconfig: npmrc };
26
+ const environment = {
27
+ NODE_AUTH_TOKEN: token ?? "",
28
+ npm_config_userconfig: npmrc,
29
+ };
27
30
  await fs.writeFile(npmrc, config, "utf8");
28
31
  logger?.debug?.(`Temporary .npmrc created at ${npmrc}\n${config}`);
29
32
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"use-npm-environment.js","sourceRoot":"","sources":["../../src/npm/use-npm-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAa7B;;;;;;;;;GASG;AACH,MAAM,CAAC,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,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAC5C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC;IAC7E,MAAM,MAAM,GAAG;QACb,qCAAqC;QACrC,KAAK,IAAI,GAAG,iBAAiB,iCAAiC;QAC9D,YAAY,MAAM,GAAG,iBAAiB,EAAE;QACxC,EAAE;KACH,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAEf,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,OAAO,CACrC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAC9C,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC;IAE7E,MAAM,EAAE,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,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"use-npm-environment.js","sourceRoot":"","sources":["../../src/npm/use-npm-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAa7B;;;;;;;;;GASG;AACH,MAAM,CAAC,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,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAC5C,MAAM,iBAAiB,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC;IAC7E,MAAM,MAAM,GAAG;QACb,qCAAqC;QACrC,KAAK,IAAI,GAAG,iBAAiB,iCAAiC;QAC9D,YAAY,MAAM,GAAG,iBAAiB,EAAE;QACxC,EAAE;KACH,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAEf,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,OAAO,CACrC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAC9C,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG;QAClB,eAAe,EAAE,KAAK,IAAI,EAAE;QAC5B,qBAAqB,EAAE,KAAK;KAC7B,CAAC;IAEF,MAAM,EAAE,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,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
package/lib/options.d.ts CHANGED
@@ -21,8 +21,13 @@ export interface Logger {
21
21
  }
22
22
  /** Options that determine how/whether the package is published. */
23
23
  export interface Options {
24
- /** The NPM access token to use when publishing. */
25
- token: string;
24
+ /**
25
+ * The NPM access token to use when publishing.
26
+ *
27
+ * May be left unspecified if `npm` is running in an environment with [trusted
28
+ * publishing](https://docs.npmjs.com/trusted-publishers#supported-cicd-providers)
29
+ */
30
+ token?: string | undefined;
26
31
  /**
27
32
  * The absolute or relative path of your package.
28
33
  *
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": "4.0.0",
4
+ "version": "4.1.0",
5
5
  "keywords": [
6
6
  "github-action",
7
7
  "npm",
@@ -35,9 +35,12 @@ export function getInput(name: string): string | undefined {
35
35
  * @param name Input name
36
36
  * @returns The input secret value.
37
37
  */
38
- export function getRequiredSecretInput(name: string): string {
39
- const inputString = ghGetInput(name, { required: true });
40
- ghSetSecret(inputString);
38
+ export function getSecretInput(name: string): string | undefined {
39
+ const inputString = getInput(name);
40
+ if (inputString) {
41
+ ghSetSecret(inputString);
42
+ }
43
+
41
44
  return inputString;
42
45
  }
43
46
 
@@ -5,7 +5,7 @@ import * as core from "./core.js";
5
5
  /** Run the action. */
6
6
  async function run(): Promise<void> {
7
7
  const results = await npmPublish({
8
- token: core.getRequiredSecretInput("token"),
8
+ token: core.getSecretInput("token"),
9
9
  registry: core.getInput("registry"),
10
10
  package: core.getInput("package"),
11
11
  tag: core.getInput("tag"),
package/src/cli/index.ts CHANGED
@@ -14,7 +14,9 @@ Arguments:
14
14
 
15
15
  Options:
16
16
 
17
- --token <token> (Required) npm authentication token.
17
+ --token <token> npm authentication token.
18
+ Not required if using trusted publishing.
19
+ See npm documentation for details.
18
20
 
19
21
  --registry <url> Registry to read from and write to.
20
22
  Defaults to "https://registry.npmjs.org/".
@@ -2,7 +2,6 @@ import type { NormalizedOptions } from "../normalize-options.js";
2
2
  import {
3
3
  callNpmCli,
4
4
  E404,
5
- E409,
6
5
  EPUBLISHCONFLICT,
7
6
  type NpmCliEnvironment,
8
7
  PUBLISH,
@@ -67,11 +66,7 @@ export async function compareAndPublish(
67
66
  ? await callNpmCli(PUBLISH, publishArguments, cliOptions)
68
67
  : { successData: undefined, errorCode: undefined, error: undefined };
69
68
 
70
- if (
71
- publishCall.error &&
72
- publishCall.errorCode !== EPUBLISHCONFLICT &&
73
- publishCall.errorCode !== E409
74
- ) {
69
+ if (publishCall.error && publishCall.errorCode !== EPUBLISHCONFLICT) {
75
70
  throw publishCall.error;
76
71
  }
77
72
 
@@ -19,7 +19,7 @@ export const TAG_LATEST = "latest";
19
19
  /** Normalized and sanitized auth, publish, and runtime configurations. */
20
20
  export interface NormalizedOptions {
21
21
  registry: URL;
22
- token: string;
22
+ token: string | undefined;
23
23
  tag: ConfigValue<string>;
24
24
  access: ConfigValue<Access | undefined>;
25
25
  provenance: ConfigValue<boolean>;
@@ -58,7 +58,7 @@ export function normalizeOptions(
58
58
  const defaultProvenance = manifest.publishConfig?.provenance ?? false;
59
59
 
60
60
  return {
61
- token: validateToken(options.token),
61
+ token: validateToken(options.token ?? undefined),
62
62
  registry: validateRegistry(options.registry ?? defaultRegistry),
63
63
  tag: setValue(options.tag, defaultTag, validateTag),
64
64
  access: setValue(options.access, defaultAccess, validateAccess),
@@ -80,12 +80,12 @@ const setValue = <TValue>(
80
80
  isDefault: value === undefined,
81
81
  });
82
82
 
83
- const validateToken = (value: unknown): string => {
84
- if (typeof value === "string" && value.length > 0) {
85
- return value;
83
+ const validateToken = (value: unknown): string | undefined => {
84
+ if (typeof value !== "string" && value !== undefined && value !== null) {
85
+ throw new errors.InvalidTokenError();
86
86
  }
87
87
 
88
- throw new errors.InvalidTokenError();
88
+ return typeof value === "string" && value.length > 0 ? value : undefined;
89
89
  };
90
90
 
91
91
  const validateRegistry = (value: unknown): URL => {
@@ -36,7 +36,6 @@ export const VIEW = "view";
36
36
  export const PUBLISH = "publish";
37
37
 
38
38
  export const E404 = "E404";
39
- export const E409 = "E409";
40
39
  export const EPUBLISHCONFLICT = "EPUBLISHCONFLICT";
41
40
 
42
41
  const IS_WINDOWS = os.platform() === "win32";
@@ -42,7 +42,10 @@ export async function useNpmEnvironment<TReturn>(
42
42
  path.join(temporaryDirectory, "npm-publish-")
43
43
  );
44
44
  const npmrc = path.join(npmrcDirectory, ".npmrc");
45
- const environment = { NODE_AUTH_TOKEN: token, npm_config_userconfig: npmrc };
45
+ const environment = {
46
+ NODE_AUTH_TOKEN: token ?? "",
47
+ npm_config_userconfig: npmrc,
48
+ };
46
49
 
47
50
  await fs.writeFile(npmrc, config, "utf8");
48
51
 
package/src/options.ts CHANGED
@@ -24,8 +24,13 @@ export interface Logger {
24
24
 
25
25
  /** Options that determine how/whether the package is published. */
26
26
  export interface Options {
27
- /** The NPM access token to use when publishing. */
28
- token: string;
27
+ /**
28
+ * The NPM access token to use when publishing.
29
+ *
30
+ * May be left unspecified if `npm` is running in an environment with [trusted
31
+ * publishing](https://docs.npmjs.com/trusted-publishers#supported-cicd-providers)
32
+ */
33
+ token?: string | undefined;
29
34
 
30
35
  /**
31
36
  * The absolute or relative path of your package.