@jsdevtools/npm-publish 4.0.1 → 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 +35 -4
- package/lib/action/core.d.ts +1 -1
- package/lib/action/core.js +5 -3
- package/lib/action/core.js.map +1 -1
- package/lib/action/main.js +1 -1
- package/lib/action/main.js.map +1 -1
- package/lib/cli/index.d.ts +1 -1
- package/lib/cli/index.js +3 -1
- package/lib/cli/index.js.map +1 -1
- package/lib/normalize-options.d.ts +1 -1
- package/lib/normalize-options.js +4 -4
- package/lib/normalize-options.js.map +1 -1
- package/lib/npm/call-npm-cli.d.ts +0 -1
- package/lib/npm/call-npm-cli.js +0 -1
- package/lib/npm/call-npm-cli.js.map +1 -1
- package/lib/npm/use-npm-environment.js +4 -1
- package/lib/npm/use-npm-environment.js.map +1 -1
- package/lib/options.d.ts +7 -2
- package/package.json +1 -1
- package/src/action/core.ts +6 -3
- package/src/action/main.ts +1 -1
- package/src/cli/index.ts +3 -1
- package/src/normalize-options.ts +6 -6
- package/src/npm/call-npm-cli.ts +0 -1
- package/src/npm/use-npm-environment.ts +4 -1
- package/src/options.ts +7 -2
package/README.md
CHANGED
|
@@ -44,7 +44,10 @@ jobs:
|
|
|
44
44
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
See
|
|
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
|
|
48
51
|
|
|
49
52
|
## Features
|
|
50
53
|
|
|
@@ -97,6 +100,30 @@ jobs:
|
|
|
97
100
|
token: ${{ secrets.NPM_TOKEN }}
|
|
98
101
|
```
|
|
99
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
|
+
|
|
100
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`:
|
|
101
128
|
|
|
102
129
|
```yaml
|
|
@@ -134,7 +161,7 @@ You can set any or all of the following input parameters using `with`:
|
|
|
134
161
|
|
|
135
162
|
| Name | Type | Default | Description |
|
|
136
163
|
| ---------------- | ---------------------- | ----------------------------- | -------------------------------------------------------------------------------- |
|
|
137
|
-
| `token` | string |
|
|
164
|
+
| `token` | string | unspecified | Registry authentication token, not required if using [trusted publishing][]³ |
|
|
138
165
|
| `registry`¹ | string | `https://registry.npmjs.org/` | Registry URL to use. |
|
|
139
166
|
| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. |
|
|
140
167
|
| `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. |
|
|
@@ -146,6 +173,7 @@ You can set any or all of the following input parameters using `with`:
|
|
|
146
173
|
|
|
147
174
|
1. May be specified using `publishConfig` in `package.json`.
|
|
148
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.
|
|
149
177
|
|
|
150
178
|
[npm-tag]: https://docs.npmjs.com/cli/v9/commands/npm-publish#tag
|
|
151
179
|
[npm-access]: https://docs.npmjs.com/cli/v9/commands/npm-publish#access
|
|
@@ -209,7 +237,7 @@ import type { Options } from "@jsdevtools/npm-publish";
|
|
|
209
237
|
|
|
210
238
|
| Name | Type | Default | Description |
|
|
211
239
|
| -------------------- | ---------------------- | ----------------------------- | -------------------------------------------------------------------------------- |
|
|
212
|
-
| `token` | string | **required** |
|
|
240
|
+
| `token` | string | **required** | Registry authentication token, not required if using [trusted publishing][]³ |
|
|
213
241
|
| `registry`¹ | string, `URL` | `https://registry.npmjs.org/` | Registry URL to use. |
|
|
214
242
|
| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. |
|
|
215
243
|
| `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. |
|
|
@@ -223,6 +251,7 @@ import type { Options } from "@jsdevtools/npm-publish";
|
|
|
223
251
|
|
|
224
252
|
1. May be specified using `publishConfig` in `package.json`.
|
|
225
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.
|
|
226
255
|
|
|
227
256
|
### API output
|
|
228
257
|
|
|
@@ -281,7 +310,9 @@ Arguments:
|
|
|
281
310
|
|
|
282
311
|
Options:
|
|
283
312
|
|
|
284
|
-
--token <token>
|
|
313
|
+
--token <token> npm authentication token.
|
|
314
|
+
Not required if using trusted publishing.
|
|
315
|
+
See npm documentation for details.
|
|
285
316
|
|
|
286
317
|
--registry <url> Registry to read from and write to.
|
|
287
318
|
Defaults to "https://registry.npmjs.org/".
|
package/lib/action/core.d.ts
CHANGED
|
@@ -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
|
|
17
|
+
export declare function getSecretInput(name: string): string | undefined;
|
|
18
18
|
/**
|
|
19
19
|
* Get a boolean input by name.
|
|
20
20
|
*
|
package/lib/action/core.js
CHANGED
|
@@ -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
|
|
26
|
-
const inputString =
|
|
27
|
-
|
|
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
|
/**
|
package/lib/action/core.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/lib/action/main.js
CHANGED
|
@@ -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.
|
|
7
|
+
token: core.getSecretInput("token"),
|
|
8
8
|
registry: core.getInput("registry"),
|
|
9
9
|
package: core.getInput("package"),
|
|
10
10
|
tag: core.getInput("tag"),
|
package/lib/action/main.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/lib/cli/index.d.ts
CHANGED
|
@@ -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>
|
|
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>
|
|
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/".
|
package/lib/cli/index.js.map
CHANGED
|
@@ -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
|
|
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"}
|
|
@@ -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>;
|
package/lib/normalize-options.js
CHANGED
|
@@ -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
|
|
38
|
-
|
|
37
|
+
if (typeof value !== "string" && value !== undefined && value !== null) {
|
|
38
|
+
throw new errors.InvalidTokenError();
|
|
39
39
|
}
|
|
40
|
-
|
|
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":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAEL,aAAa,EACb,iBAAiB,EAIjB,YAAY,EACZ,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAGtB,MAAM,YAAY,GAAG,6BAA6B,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC;AAsBnC;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAyB,EACzB,OAAgB;IAEhB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,EAAE,GAAG,IAAI,UAAU,CAAC;IAE7D,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,EAAE,QAAQ,IAAI,YAAY,CAAC;IAEzE,MAAM,aAAa,GACjB,QAAQ,CAAC,aAAa,EAAE,MAAM;QAC9B,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE7D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,aAAa,EAAE,UAAU,IAAI,KAAK,CAAC;IAEtE,OAAO;QACL,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC;
|
|
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.
|
package/lib/npm/call-npm-cli.js
CHANGED
|
@@ -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":"AAAA,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AA+BvC,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC;AAC3B,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AAEjC,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC;AAC3B,MAAM,CAAC,MAAM,
|
|
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 = {
|
|
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,
|
|
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
|
-
/**
|
|
25
|
-
|
|
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
package/src/action/core.ts
CHANGED
|
@@ -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
|
|
39
|
-
const inputString =
|
|
40
|
-
|
|
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
|
|
package/src/action/main.ts
CHANGED
|
@@ -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.
|
|
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>
|
|
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/".
|
package/src/normalize-options.ts
CHANGED
|
@@ -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
|
|
85
|
-
|
|
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
|
-
|
|
88
|
+
return typeof value === "string" && value.length > 0 ? value : undefined;
|
|
89
89
|
};
|
|
90
90
|
|
|
91
91
|
const validateRegistry = (value: unknown): URL => {
|
package/src/npm/call-npm-cli.ts
CHANGED
|
@@ -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 = {
|
|
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
|
-
/**
|
|
28
|
-
|
|
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.
|