@jsdevtools/npm-publish 2.1.0 → 2.2.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 +79 -32
- package/lib/action/core.d.ts +2 -2
- package/lib/action/core.js +7 -2
- package/lib/action/core.js.map +1 -1
- package/lib/action/main.js +1 -0
- package/lib/action/main.js.map +1 -1
- package/lib/cli/index.d.ts +1 -1
- package/lib/cli/index.js +3 -0
- package/lib/cli/index.js.map +1 -1
- package/lib/cli/parse-cli-arguments.js +7 -1
- package/lib/cli/parse-cli-arguments.js.map +1 -1
- package/lib/compare-and-publish/compare-and-publish.js +5 -1
- package/lib/compare-and-publish/compare-and-publish.js.map +1 -1
- package/lib/normalize-options.d.ts +1 -0
- package/lib/normalize-options.js +1 -0
- package/lib/normalize-options.js.map +1 -1
- package/lib/npm/call-npm-cli.d.ts +1 -0
- package/lib/npm/call-npm-cli.js +2 -1
- package/lib/npm/call-npm-cli.js.map +1 -1
- package/lib/options.d.ts +14 -6
- package/package.json +12 -12
- package/src/action/core.ts +7 -3
- package/src/action/main.ts +1 -0
- package/src/cli/index.ts +3 -0
- package/src/cli/parse-cli-arguments.ts +10 -1
- package/src/compare-and-publish/compare-and-publish.ts +5 -1
- package/src/normalize-options.ts +2 -0
- package/src/npm/call-npm-cli.ts +5 -1
- package/src/options.ts +15 -6
package/README.md
CHANGED
|
@@ -31,7 +31,7 @@ This package can be used three different ways:
|
|
|
31
31
|
|
|
32
32
|
- 🤖 A [**GitHub Action**](#github-action) as part of your CI/CD process
|
|
33
33
|
|
|
34
|
-
- 🧩 A [**function**](#javascript-
|
|
34
|
+
- 🧩 A [**function**](#javascript-api) that you call in your JavaScript code
|
|
35
35
|
|
|
36
36
|
- 🖥 A [**CLI**](#command-line-interface) that you run in your terminal
|
|
37
37
|
|
|
@@ -39,12 +39,37 @@ This package can be used three different ways:
|
|
|
39
39
|
|
|
40
40
|
The v1 to v2 upgrade brought a few notable **breaking changes**. To migrate, make the following updates:
|
|
41
41
|
|
|
42
|
-
- The `type` output is now an empty string instead of `none` when no release occurs
|
|
42
|
+
- The `type` output is now an empty string instead of `'none'` when no release occurs
|
|
43
43
|
```diff
|
|
44
44
|
- run: echo "Version changed!"
|
|
45
45
|
- if: ${{ steps.publish.outputs.type != 'none' }}
|
|
46
46
|
+ if: ${{ steps.publish.outputs.type }}
|
|
47
47
|
```
|
|
48
|
+
- The `--ignore-scripts` option is now passed to `npm publish` as a security precaution. If you define any publish lifecycle scripts - `prepublishOnly`, `prepack`, `prepare`, `postpack`, `publish`, `postpublish` - run them explicitly or set the `ignore-scripts` input to `false`.
|
|
49
|
+
```diff
|
|
50
|
+
with:
|
|
51
|
+
token: ${{ secrets.NPM_TOKEN }}
|
|
52
|
+
+ ignore-scripts: false
|
|
53
|
+
```
|
|
54
|
+
- The workflow's `.npmrc` file is no longer modified. If you have any workarounds to adjust for this misbehavior - for example, if you're using `actions/setup-node` to configure `.npmrc` - you should remove them.
|
|
55
|
+
|
|
56
|
+
```diff
|
|
57
|
+
- uses: actions/setup-node@v3
|
|
58
|
+
with:
|
|
59
|
+
node-version: '18'
|
|
60
|
+
registry-url: https://registry.npmjs.org/
|
|
61
|
+
|
|
62
|
+
- uses: JS-DevTools/npm-publish@v1
|
|
63
|
+
with:
|
|
64
|
+
token: ${{ secrets.NPM_TOKEN }}
|
|
65
|
+
|
|
66
|
+
- name: Do some more stuff with npm
|
|
67
|
+
run: npm whoami
|
|
68
|
+
env:
|
|
69
|
+
- INPUT_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
70
|
+
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
71
|
+
```
|
|
72
|
+
|
|
48
73
|
- The `check-version` and `greater-version-only` options have been removed and replaced with `strategy`.
|
|
49
74
|
- Use `strategy: all` (default) to publish all versions that do not yet exist in the registry.
|
|
50
75
|
```diff
|
|
@@ -62,10 +87,24 @@ The v1 to v2 upgrade brought a few notable **breaking changes**. To migrate, mak
|
|
|
62
87
|
- greater-version-only: true
|
|
63
88
|
+ strategy: upgrade
|
|
64
89
|
```
|
|
65
|
-
- `check-version: false` has been removed. You
|
|
90
|
+
- `check-version: false` has been removed. You may not need this action if you're not checking already published versions; [you can `npm` directly][publishing-nodejs-packages], instead.
|
|
91
|
+
```diff
|
|
92
|
+
- - uses: JS-DevTools/npm-publish@v1
|
|
93
|
+
- with:
|
|
94
|
+
- token: ${{ secrets.NPM_TOKEN }}
|
|
95
|
+
- check-version: false
|
|
96
|
+
+ - uses: actions/setup-node@v3
|
|
97
|
+
+ with:
|
|
98
|
+
+ node-version: '18'
|
|
99
|
+
+ registry-url: https://registry.npmjs.org/
|
|
100
|
+
+ - run: npm publish
|
|
101
|
+
+ env:
|
|
102
|
+
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
103
|
+
```
|
|
66
104
|
|
|
67
105
|
See the [change log][] for more details and other changes in the v2 release.
|
|
68
106
|
|
|
107
|
+
[publishing-nodejs-packages]: https://docs.github.com/actions/publishing-packages/publishing-nodejs-packages
|
|
69
108
|
[change log]: https://github.com/JS-DevTools/npm-publish/releases
|
|
70
109
|
|
|
71
110
|
## GitHub Action
|
|
@@ -99,21 +138,24 @@ jobs:
|
|
|
99
138
|
|
|
100
139
|
You can set any or all of the following input parameters using `with`:
|
|
101
140
|
|
|
102
|
-
| Name
|
|
103
|
-
|
|
|
104
|
-
| `token`
|
|
105
|
-
| `registry
|
|
106
|
-
| `package`
|
|
107
|
-
| `tag
|
|
108
|
-
| `access
|
|
109
|
-
| `provenance
|
|
110
|
-
| `strategy`
|
|
111
|
-
| `
|
|
112
|
-
|
|
113
|
-
|
|
141
|
+
| Name | Type | Default | Description |
|
|
142
|
+
| ---------------- | ---------------------- | ----------------------------- | -------------------------------------------------------------------------------- |
|
|
143
|
+
| `token` | string | **required** | Authentication token to use with the configured registry. |
|
|
144
|
+
| `registry`¹ | string | `https://registry.npmjs.org/` | Registry URL to use. |
|
|
145
|
+
| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. |
|
|
146
|
+
| `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. |
|
|
147
|
+
| `access`¹ | `public`, `restricted` | [npm defaults][npm-access] | Whether the package should be publicly visible or restricted. |
|
|
148
|
+
| `provenance`¹ ² | boolean | `false` | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. |
|
|
149
|
+
| `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. |
|
|
150
|
+
| `ignore-scripts` | boolean | `true` | Run `npm publish` with the `--ignore-scripts` flag as a security precaution. |
|
|
151
|
+
| `dry-run` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. |
|
|
152
|
+
|
|
153
|
+
1. May be specified using `publishConfig` in `package.json`.
|
|
154
|
+
2. Provenance requires npm `>=9.5.0`.
|
|
114
155
|
|
|
115
156
|
[npm-tag]: https://docs.npmjs.com/cli/v9/commands/npm-publish#tag
|
|
116
157
|
[npm-access]: https://docs.npmjs.com/cli/v9/commands/npm-publish#access
|
|
158
|
+
[provenance]: https://docs.npmjs.com/generating-provenance-statements
|
|
117
159
|
|
|
118
160
|
### Output
|
|
119
161
|
|
|
@@ -145,7 +187,7 @@ steps:
|
|
|
145
187
|
|
|
146
188
|
[semver release type]: https://github.com/npm/node-semver#release_types
|
|
147
189
|
|
|
148
|
-
## JavaScript
|
|
190
|
+
## JavaScript API
|
|
149
191
|
|
|
150
192
|
To use npm-package in your JavaScript code, you'll need to install it using [npm][] or other package manager of choice:
|
|
151
193
|
|
|
@@ -172,20 +214,22 @@ As shown in the example above, you should pass an options object to the `npmPubl
|
|
|
172
214
|
import type { Options } from "@jsdevtools/npm-publish";
|
|
173
215
|
```
|
|
174
216
|
|
|
175
|
-
| Name | Type | Default
|
|
176
|
-
| -------------------- | ---------------------- |
|
|
177
|
-
| `token` | string | **required**
|
|
178
|
-
| `registry
|
|
179
|
-
| `package` | string | Current working directory
|
|
180
|
-
| `tag
|
|
181
|
-
| `access
|
|
182
|
-
| `provenance
|
|
183
|
-
| `strategy` | `all`, `upgrade` | `all`
|
|
184
|
-
| `
|
|
185
|
-
| `
|
|
186
|
-
| `
|
|
187
|
-
|
|
188
|
-
|
|
217
|
+
| Name | Type | Default | Description |
|
|
218
|
+
| -------------------- | ---------------------- | ----------------------------- | -------------------------------------------------------------------------------- |
|
|
219
|
+
| `token` | string | **required** | Authentication token to use with the configured registry. |
|
|
220
|
+
| `registry`¹ | string, `URL` | `https://registry.npmjs.org/` | Registry URL to use. |
|
|
221
|
+
| `package` | string | Current working directory | Path to a package directory, a `package.json`, or a packed `.tgz` to publish. |
|
|
222
|
+
| `tag`¹ | string | `latest` | [Distribution tag][npm-tag] to publish to. |
|
|
223
|
+
| `access`¹ | `public`, `restricted` | [npm defaults][npm-access] | Whether the package should be publicly visible or restricted. |
|
|
224
|
+
| `provenance`¹ ² | boolean | `false` | Run `npm publish` with the `--provenance` flag to add [provenance][] statements. |
|
|
225
|
+
| `strategy` | `all`, `upgrade` | `all` | Use `all` to publish all unique versions, `upgrade` for only semver upgrades. |
|
|
226
|
+
| `ignoreScripts` | boolean | `true` | Run `npm publish` with the `--ignore-scripts` flag as a security precaution. |
|
|
227
|
+
| `dryRun` | boolean | `false` | Run `npm publish` with the `--dry-run` flag to prevent publication. |
|
|
228
|
+
| `logger` | object | `undefined` | Logging interface with `debug`, `info`, and `error` log methods. |
|
|
229
|
+
| `temporaryDirectory` | string | `os.tmpdir()` | Temporary directory to hold a generated `.npmrc` file |
|
|
230
|
+
|
|
231
|
+
1. May be specified using `publishConfig` in `package.json`.
|
|
232
|
+
2. Provenance requires npm `>=9.5.0`.
|
|
189
233
|
|
|
190
234
|
### Output
|
|
191
235
|
|
|
@@ -224,7 +268,7 @@ npx npm-publish --token YOUR_NPM_AUTH_TOKEN_HERE
|
|
|
224
268
|
You can customize your call with options to change the registry, package, etc.
|
|
225
269
|
|
|
226
270
|
```bash
|
|
227
|
-
npm-publish --token YOUR_NPM_AUTH_TOKEN_HERE --registry http://example.com ./path/to/package
|
|
271
|
+
npx npm-publish --token YOUR_NPM_AUTH_TOKEN_HERE --registry http://example.com ./path/to/package
|
|
228
272
|
```
|
|
229
273
|
|
|
230
274
|
### Options
|
|
@@ -261,12 +305,15 @@ Options:
|
|
|
261
305
|
--strategy <strategy> Publish strategy, may be "all" or "upgrade".
|
|
262
306
|
Defaults to "all", see documentation for details.
|
|
263
307
|
|
|
308
|
+
--no-ignore-scripts Allow lifecycle scripts, which are disabled by default
|
|
309
|
+
as a security precaution. Defaults to false.
|
|
310
|
+
|
|
264
311
|
--dry-run Do not actually publish anything.
|
|
265
312
|
--quiet Only print errors.
|
|
266
313
|
--debug Print debug logs.
|
|
267
314
|
|
|
268
315
|
-v, --version Print the version number.
|
|
269
|
-
-h --help
|
|
316
|
+
-h, --help Show usage text.
|
|
270
317
|
|
|
271
318
|
Examples:
|
|
272
319
|
|
package/lib/action/core.d.ts
CHANGED
|
@@ -19,9 +19,9 @@ export declare function getRequiredSecretInput(name: string): string;
|
|
|
19
19
|
* Get a boolean input by name.
|
|
20
20
|
*
|
|
21
21
|
* @param name Input name
|
|
22
|
-
* @returns True if value is "true", false if
|
|
22
|
+
* @returns True if value is "true", false if "false", undefined if unset
|
|
23
23
|
*/
|
|
24
|
-
export declare function getBooleanInput(name: string): boolean;
|
|
24
|
+
export declare function getBooleanInput(name: string): boolean | undefined;
|
|
25
25
|
/**
|
|
26
26
|
* Set the action as failed due to an error.
|
|
27
27
|
*
|
package/lib/action/core.js
CHANGED
|
@@ -36,10 +36,15 @@ exports.getRequiredSecretInput = getRequiredSecretInput;
|
|
|
36
36
|
* Get a boolean input by name.
|
|
37
37
|
*
|
|
38
38
|
* @param name Input name
|
|
39
|
-
* @returns True if value is "true", false if
|
|
39
|
+
* @returns True if value is "true", false if "false", undefined if unset
|
|
40
40
|
*/
|
|
41
41
|
function getBooleanInput(name) {
|
|
42
|
-
|
|
42
|
+
const inputString = (0, core_1.getInput)(name).toLowerCase();
|
|
43
|
+
if (inputString === "true")
|
|
44
|
+
return true;
|
|
45
|
+
if (inputString === "false")
|
|
46
|
+
return false;
|
|
47
|
+
return undefined;
|
|
43
48
|
}
|
|
44
49
|
exports.getBooleanInput = getBooleanInput;
|
|
45
50
|
/**
|
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,wCAQuB;AAIvB,mDAAmD;AACtC,QAAA,MAAM,GAAW;IAC5B,KAAK,EAAE,YAAU;IACjB,IAAI,EAAE,WAAS;IACf,KAAK,EAAE,YAAU;CAClB,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,QAAQ,CAAmB,IAAY;IACrD,MAAM,WAAW,GAAG,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC;IACrC,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,WAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAHD,4BAGC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,IAAY;IACjD,MAAM,WAAW,GAAG,IAAA,eAAU,EAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAA,gBAAW,EAAC,WAAW,CAAC,CAAC;IACzB,OAAO,WAAW,CAAC;AACrB,CAAC;AAJD,wDAIC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/action/core.ts"],"names":[],"mappings":";;;AAAA,uCAAuC;AACvC,wCAQuB;AAIvB,mDAAmD;AACtC,QAAA,MAAM,GAAW;IAC5B,KAAK,EAAE,YAAU;IACjB,IAAI,EAAE,WAAS;IACf,KAAK,EAAE,YAAU;CAClB,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,QAAQ,CAAmB,IAAY;IACrD,MAAM,WAAW,GAAG,IAAA,eAAU,EAAC,IAAI,CAAC,CAAC;IACrC,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,WAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAHD,4BAGC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,IAAY;IACjD,MAAM,WAAW,GAAG,IAAA,eAAU,EAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,IAAA,gBAAW,EAAC,WAAW,CAAC,CAAC;IACzB,OAAO,WAAW,CAAC;AACrB,CAAC;AAJD,wDAIC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,WAAW,GAAG,IAAA,eAAU,EAAC,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;AAND,0CAMC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CAAC,KAAc;IACtC,IAAA,gBAAW,EAAC,KAAc,CAAC,CAAC;AAC9B,CAAC;AAFD,8BAEC;AAuBD,+CAA+C;AAC/C,SAAgB,SAAS,CACvB,IAAY,EACZ,KAAmC,EACnC,YAA2C;IAE3C,IAAA,gBAAW,EAAC,IAAI,EAAE,KAAK,IAAI,YAAY,CAAC,CAAC;AAC3C,CAAC;AAND,8BAMC"}
|
package/lib/action/main.js
CHANGED
|
@@ -36,6 +36,7 @@ async function run() {
|
|
|
36
36
|
access: core.getInput("access"),
|
|
37
37
|
provenance: core.getBooleanInput("provenance"),
|
|
38
38
|
strategy: core.getInput("strategy"),
|
|
39
|
+
ignoreScripts: core.getBooleanInput("ignore-scripts"),
|
|
39
40
|
dryRun: core.getBooleanInput("dry-run"),
|
|
40
41
|
logger: core.logger,
|
|
41
42
|
temporaryDirectory: process.env["RUNNER_TEMP"],
|
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,0CAAyC;AACzC,gDAAkC;AAElC,sBAAsB;AACtB,KAAK,UAAU,GAAG;IAChB,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAU,EAAC;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,CAAC;QAC/B,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;QAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;QACvC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;KAC/C,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,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/action/main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yBAAyB;AACzB,0CAAyC;AACzC,gDAAkC;AAElC,sBAAsB;AACtB,KAAK,UAAU,GAAG;IAChB,MAAM,OAAO,GAAG,MAAM,IAAA,qBAAU,EAAC;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,CAAC;QAC/B,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC;QAC9C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QACnC,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,aAAa,CAAC;KAC/C,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,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,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> (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 --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> (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 --ignore-scripts Ignore lifecycle scripts as a security precaution.\n Defaults to true.\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
|
@@ -33,6 +33,9 @@ Options:
|
|
|
33
33
|
--strategy <strategy> Publish strategy, may be "all" or "upgrade".
|
|
34
34
|
Defaults to "all", see documentation for details.
|
|
35
35
|
|
|
36
|
+
--ignore-scripts Ignore lifecycle scripts as a security precaution.
|
|
37
|
+
Defaults to true.
|
|
38
|
+
|
|
36
39
|
--dry-run Do not actually publish anything.
|
|
37
40
|
--quiet Only print errors.
|
|
38
41
|
--debug Print debug logs.
|
package/lib/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAAA,0CAAsD;AACtD,qEAA6D;AAEhD,QAAA,KAAK,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAAA,0CAAsD;AACtD,qEAA6D;AAEhD,QAAA,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CpB,CAAC;AAEF;;;;;GAKG;AACI,KAAK,UAAU,IAAI,CAAC,IAAc,EAAE,OAAe;IACxD,MAAM,YAAY,GAAG,IAAA,0CAAiB,EAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,YAAY,CAAC,IAAI,EAAE;QACrB,OAAO,CAAC,IAAI,CAAC,aAAK,CAAC,CAAC;QACpB,OAAO;KACR;IAED,IAAI,YAAY,CAAC,OAAO,EAAE;QACxB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO;KACR;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,IAAA,qBAAU,EAAC,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AACxD,CAAC;AApBD,oBAoBC"}
|
|
@@ -14,6 +14,7 @@ const ARGUMENTS_OPTIONS = [
|
|
|
14
14
|
{ name: "access", type: String },
|
|
15
15
|
{ name: "provenance", type: Boolean },
|
|
16
16
|
{ name: "strategy", type: String },
|
|
17
|
+
{ name: "no-ignore-scripts", type: Boolean },
|
|
17
18
|
{ name: "dry-run", type: Boolean },
|
|
18
19
|
{ name: "quiet", type: Boolean },
|
|
19
20
|
{ name: "debug", type: Boolean },
|
|
@@ -27,7 +28,12 @@ const ARGUMENTS_OPTIONS = [
|
|
|
27
28
|
* @returns A parsed object of options.
|
|
28
29
|
*/
|
|
29
30
|
function parseCliArguments(argv) {
|
|
30
|
-
const { help, version, quiet, debug, ...
|
|
31
|
+
const { help, version, quiet, debug, ...optionFlags } = (0, command_line_args_1.default)(ARGUMENTS_OPTIONS, { argv, camelCase: true });
|
|
32
|
+
const options = Object.fromEntries(Object.entries(optionFlags).map(([key, value]) => {
|
|
33
|
+
return key === "noIgnoreScripts"
|
|
34
|
+
? ["ignoreScripts", !value]
|
|
35
|
+
: [key, value];
|
|
36
|
+
}));
|
|
31
37
|
return {
|
|
32
38
|
help: Boolean(help),
|
|
33
39
|
version: Boolean(version),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-cli-arguments.js","sourceRoot":"","sources":["../../src/cli/parse-cli-arguments.ts"],"names":[],"mappings":";AAAA,2CAA2C;;;;;;AAE3C,0EAAgD;AAGhD,MAAM,iBAAiB,GAAG;IACxB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE;IACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAClC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IAChC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;IACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;IAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IAChC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;CAC5C,CAAC;AAWF;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,IAAc;IAC9C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"parse-cli-arguments.js","sourceRoot":"","sources":["../../src/cli/parse-cli-arguments.ts"],"names":[],"mappings":";AAAA,2CAA2C;;;;;;AAE3C,0EAAgD;AAGhD,MAAM,iBAAiB,GAAG;IACxB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE;IACtD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;IAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAClC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;IAC7B,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;IAChC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;IACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;IAClC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE;IAClC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IAChC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;IAChC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9C,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;CAC5C,CAAC;AAWF;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,IAAc;IAC9C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,WAAW,EAAE,GAAG,IAAA,2BAAe,EACrE,iBAAiB,EACjB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAC1B,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC/C,OAAO,GAAG,KAAK,iBAAiB;YAC9B,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC;YAC3B,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnB,CAAC,CAAC,CACH,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;QACrB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;QACrB,OAAO,EAAE,OAAkB;KAC5B,CAAC;AACJ,CAAC;AArBD,8CAqBC"}
|
|
@@ -14,7 +14,11 @@ const get_arguments_js_1 = require("./get-arguments.js");
|
|
|
14
14
|
*/
|
|
15
15
|
async function compareAndPublish(manifest, options, environment) {
|
|
16
16
|
const { name, version, packageSpec } = manifest;
|
|
17
|
-
const cliOptions = {
|
|
17
|
+
const cliOptions = {
|
|
18
|
+
environment,
|
|
19
|
+
ignoreScripts: options.ignoreScripts.value,
|
|
20
|
+
logger: options.logger,
|
|
21
|
+
};
|
|
18
22
|
const viewArguments = (0, get_arguments_js_1.getViewArguments)(name, options);
|
|
19
23
|
const publishArguments = (0, get_arguments_js_1.getPublishArguments)(packageSpec, options);
|
|
20
24
|
let viewCall = await (0, index_js_1.callNpmCli)(index_js_1.VIEW, viewArguments, cliOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare-and-publish.js","sourceRoot":"","sources":["../../src/compare-and-publish/compare-and-publish.ts"],"names":[],"mappings":";;;AAEA,8CAOyB;AACzB,+DAAgF;AAChF,yDAA2E;AAY3E;;;;;;;GAOG;AACI,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,
|
|
1
|
+
{"version":3,"file":"compare-and-publish.js","sourceRoot":"","sources":["../../src/compare-and-publish/compare-and-publish.ts"],"names":[],"mappings":";;;AAEA,8CAOyB;AACzB,+DAAgF;AAChF,yDAA2E;AAY3E;;;;;;;GAOG;AACI,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,IAAA,mCAAgB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,gBAAgB,GAAG,IAAA,sCAAmB,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACnE,IAAI,QAAQ,GAAG,MAAM,IAAA,qBAAU,EAAC,eAAI,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAEjE,4EAA4E;IAC5E,2EAA2E;IAC3E,yCAAyC;IACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;QAC5C,gEAAgE;QAChE,oCAAoC;QACpC,MAAM,oBAAoB,GAAG,IAAA,mCAAgB,EAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACnE,QAAQ,GAAG,MAAM,IAAA,qBAAU,EAAC,eAAI,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;KACrE;IAED,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,SAAS,KAAK,eAAI,EAAE;QACjD,MAAM,QAAQ,CAAC,KAAK,CAAC;KACtB;IAED,MAAM,UAAU,GAAG,IAAA,qCAAe,EAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI;QACjC,CAAC,CAAC,MAAM,IAAA,qBAAU,EAAC,kBAAO,EAAE,gBAAgB,EAAE,UAAU,CAAC;QACzD,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAEvE,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,SAAS,KAAK,2BAAgB,EAAE;QACnE,MAAM,WAAW,CAAC,KAAK,CAAC;KACzB;IAED,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;IAEjD,OAAO;QACL,EAAE,EAAE,WAAW,EAAE,EAAE;QACnB,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;AA/CD,8CA+CC"}
|
|
@@ -8,6 +8,7 @@ export interface NormalizedOptions {
|
|
|
8
8
|
tag: ConfigValue<string>;
|
|
9
9
|
access: ConfigValue<Access | undefined>;
|
|
10
10
|
provenance: ConfigValue<boolean>;
|
|
11
|
+
ignoreScripts: ConfigValue<boolean>;
|
|
11
12
|
dryRun: ConfigValue<boolean>;
|
|
12
13
|
strategy: ConfigValue<Strategy>;
|
|
13
14
|
logger: Logger | undefined;
|
package/lib/normalize-options.js
CHANGED
|
@@ -51,6 +51,7 @@ function normalizeOptions(manifest, options) {
|
|
|
51
51
|
tag: setValue(options.tag, defaultTag, validateTag),
|
|
52
52
|
access: setValue(options.access, defaultAccess, validateAccess),
|
|
53
53
|
provenance: setValue(options.provenance, defaultProvenance, Boolean),
|
|
54
|
+
ignoreScripts: setValue(options.ignoreScripts, true, Boolean),
|
|
54
55
|
dryRun: setValue(options.dryRun, false, Boolean),
|
|
55
56
|
strategy: setValue(options.strategy, options_js_1.STRATEGY_ALL, validateStrategy),
|
|
56
57
|
logger: options.logger,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../src/normalize-options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sDAAyB;AAEzB,oDAAsC;AAEtC,6CASsB;AAEtB,MAAM,YAAY,GAAG,6BAA6B,CAAC;AACtC,QAAA,UAAU,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"normalize-options.js","sourceRoot":"","sources":["../src/normalize-options.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { Logger } from "../options.js";
|
|
|
2
2
|
import type { NpmCliEnvironment } from "./use-npm-environment.js";
|
|
3
3
|
export interface NpmCliOptions {
|
|
4
4
|
environment: NpmCliEnvironment;
|
|
5
|
+
ignoreScripts: boolean;
|
|
5
6
|
logger?: Logger | undefined;
|
|
6
7
|
}
|
|
7
8
|
export interface NpmCallResult<CommandT extends Command> {
|
package/lib/npm/call-npm-cli.js
CHANGED
|
@@ -36,6 +36,7 @@ exports.E404 = "E404";
|
|
|
36
36
|
exports.EPUBLISHCONFLICT = "EPUBLISHCONFLICT";
|
|
37
37
|
const NPM = node_os_1.default.platform() === "win32" ? "npm.cmd" : "npm";
|
|
38
38
|
const JSON_MATCH_RE = /(\{[\s\S]*\})/mu;
|
|
39
|
+
const baseArguments = (options) => options.ignoreScripts ? ["--ignore-scripts", "--json"] : ["--json"];
|
|
39
40
|
/**
|
|
40
41
|
* Call the NPM CLI in JSON mode.
|
|
41
42
|
*
|
|
@@ -45,7 +46,7 @@ const JSON_MATCH_RE = /(\{[\s\S]*\})/mu;
|
|
|
45
46
|
* @returns The parsed JSON, or stdout if unparsable.
|
|
46
47
|
*/
|
|
47
48
|
async function callNpmCli(command, cliArguments, options) {
|
|
48
|
-
const { stdout, stderr, exitCode } = await execNpm([command,
|
|
49
|
+
const { stdout, stderr, exitCode } = await execNpm([command, ...baseArguments(options), ...cliArguments], options.environment, options.logger);
|
|
49
50
|
let successData;
|
|
50
51
|
let errorCode;
|
|
51
52
|
let error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call-npm-cli.js","sourceRoot":"","sources":["../../src/npm/call-npm-cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA8C;AAC9C,sDAAyB;AAEzB,qDAAuC;
|
|
1
|
+
{"version":3,"file":"call-npm-cli.js","sourceRoot":"","sources":["../../src/npm/call-npm-cli.ts"],"names":[],"mappings":"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"}
|
package/lib/options.d.ts
CHANGED
|
@@ -53,7 +53,7 @@ export interface Options {
|
|
|
53
53
|
* packages.
|
|
54
54
|
*
|
|
55
55
|
* Defaults to "restricted" for scoped packages, unless that package has been
|
|
56
|
-
* previously published as `public
|
|
56
|
+
* previously published as `public`.
|
|
57
57
|
*
|
|
58
58
|
* Can be set by the package.json's `publishConfig` field.
|
|
59
59
|
*/
|
|
@@ -72,13 +72,21 @@ export interface Options {
|
|
|
72
72
|
/**
|
|
73
73
|
* Version check strategy.
|
|
74
74
|
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* package will be published if its version is
|
|
78
|
-
*
|
|
79
|
-
* Defaults to `upgrade`.
|
|
75
|
+
* - `always` (default): the package will be published if its version is simply
|
|
76
|
+
* not yet published.
|
|
77
|
+
* - `upgrade`: the package will only be published if its version is higher than
|
|
78
|
+
* the existing version on the configured tag.
|
|
80
79
|
*/
|
|
81
80
|
strategy?: Strategy | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Ignore lifecycle scripts.
|
|
83
|
+
*
|
|
84
|
+
* If `true` (default), `--ignore-scripts` will be passed to `npm`. If you
|
|
85
|
+
* rely on publish lifecycle scripts - i.e. `prepublishOnly`, `prepack`,
|
|
86
|
+
* `prepare`, `postpack`, `publish`, `postpublish` - you should set this to
|
|
87
|
+
* `false` or rework your build and publish workflow.
|
|
88
|
+
*/
|
|
89
|
+
ignoreScripts?: boolean | undefined;
|
|
82
90
|
/**
|
|
83
91
|
* Pretend to publish, but don't actually upload to the registry.
|
|
84
92
|
*
|
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.
|
|
4
|
+
"version": "2.2.0",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"github-action",
|
|
7
7
|
"npm",
|
|
@@ -53,29 +53,29 @@
|
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@actions/core": "^1.10.0",
|
|
55
55
|
"@types/command-line-args": "^5.0.0",
|
|
56
|
-
"@types/node": "^18.
|
|
56
|
+
"@types/node": "^18.16.3",
|
|
57
57
|
"@types/tar": "^6.1.4",
|
|
58
|
-
"@typescript-eslint/eslint-plugin": "^5.59.
|
|
59
|
-
"@typescript-eslint/parser": "^5.59.
|
|
60
|
-
"@vitest/coverage-istanbul": "^0.
|
|
58
|
+
"@typescript-eslint/eslint-plugin": "^5.59.2",
|
|
59
|
+
"@typescript-eslint/parser": "^5.59.2",
|
|
60
|
+
"@vitest/coverage-istanbul": "^0.31.4",
|
|
61
61
|
"concurrently": "^8.0.1",
|
|
62
|
-
"esbuild": "0.17.
|
|
63
|
-
"eslint": "^8.
|
|
62
|
+
"esbuild": "^0.17.18",
|
|
63
|
+
"eslint": "^8.39.0",
|
|
64
64
|
"eslint-config-prettier": "^8.8.0",
|
|
65
65
|
"eslint-import-resolver-typescript": "^3.5.5",
|
|
66
66
|
"eslint-plugin-import": "npm:eslint-plugin-i@^2.27.5-1",
|
|
67
|
-
"eslint-plugin-jsdoc": "^43.
|
|
68
|
-
"eslint-plugin-n": "^
|
|
67
|
+
"eslint-plugin-jsdoc": "^43.1.1",
|
|
68
|
+
"eslint-plugin-n": "^16.0.0",
|
|
69
69
|
"eslint-plugin-promise": "^6.1.1",
|
|
70
70
|
"eslint-plugin-sonarjs": "^0.19.0",
|
|
71
|
-
"eslint-plugin-unicorn": "^46.0.
|
|
72
|
-
"prettier": "^2.8.
|
|
71
|
+
"eslint-plugin-unicorn": "^46.0.1",
|
|
72
|
+
"prettier": "^2.8.8",
|
|
73
73
|
"prettier-plugin-jsdoc": "^0.4.2",
|
|
74
74
|
"rimraf": "^5.0.0",
|
|
75
75
|
"testdouble": "^3.17.2",
|
|
76
76
|
"testdouble-vitest": "^0.1.2",
|
|
77
77
|
"typescript": "^5.0.4",
|
|
78
|
-
"vitest": "^0.
|
|
78
|
+
"vitest": "^0.31.4"
|
|
79
79
|
},
|
|
80
80
|
"dependencies": {
|
|
81
81
|
"@types/semver": "^7.3.13",
|
package/src/action/core.ts
CHANGED
|
@@ -45,10 +45,14 @@ export function getRequiredSecretInput(name: string): string {
|
|
|
45
45
|
* Get a boolean input by name.
|
|
46
46
|
*
|
|
47
47
|
* @param name Input name
|
|
48
|
-
* @returns True if value is "true", false if
|
|
48
|
+
* @returns True if value is "true", false if "false", undefined if unset
|
|
49
49
|
*/
|
|
50
|
-
export function getBooleanInput(name: string): boolean {
|
|
51
|
-
|
|
50
|
+
export function getBooleanInput(name: string): boolean | undefined {
|
|
51
|
+
const inputString = ghGetInput(name).toLowerCase();
|
|
52
|
+
|
|
53
|
+
if (inputString === "true") return true;
|
|
54
|
+
if (inputString === "false") return false;
|
|
55
|
+
return undefined;
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
/**
|
package/src/action/main.ts
CHANGED
|
@@ -12,6 +12,7 @@ async function run(): Promise<void> {
|
|
|
12
12
|
access: core.getInput("access"),
|
|
13
13
|
provenance: core.getBooleanInput("provenance"),
|
|
14
14
|
strategy: core.getInput("strategy"),
|
|
15
|
+
ignoreScripts: core.getBooleanInput("ignore-scripts"),
|
|
15
16
|
dryRun: core.getBooleanInput("dry-run"),
|
|
16
17
|
logger: core.logger,
|
|
17
18
|
temporaryDirectory: process.env["RUNNER_TEMP"],
|
package/src/cli/index.ts
CHANGED
|
@@ -31,6 +31,9 @@ Options:
|
|
|
31
31
|
--strategy <strategy> Publish strategy, may be "all" or "upgrade".
|
|
32
32
|
Defaults to "all", see documentation for details.
|
|
33
33
|
|
|
34
|
+
--ignore-scripts Ignore lifecycle scripts as a security precaution.
|
|
35
|
+
Defaults to true.
|
|
36
|
+
|
|
34
37
|
--dry-run Do not actually publish anything.
|
|
35
38
|
--quiet Only print errors.
|
|
36
39
|
--debug Print debug logs.
|
|
@@ -11,6 +11,7 @@ const ARGUMENTS_OPTIONS = [
|
|
|
11
11
|
{ name: "access", type: String },
|
|
12
12
|
{ name: "provenance", type: Boolean },
|
|
13
13
|
{ name: "strategy", type: String },
|
|
14
|
+
{ name: "no-ignore-scripts", type: Boolean },
|
|
14
15
|
{ name: "dry-run", type: Boolean },
|
|
15
16
|
{ name: "quiet", type: Boolean },
|
|
16
17
|
{ name: "debug", type: Boolean },
|
|
@@ -34,11 +35,19 @@ export interface ParsedArguments {
|
|
|
34
35
|
* @returns A parsed object of options.
|
|
35
36
|
*/
|
|
36
37
|
export function parseCliArguments(argv: string[]): ParsedArguments {
|
|
37
|
-
const { help, version, quiet, debug, ...
|
|
38
|
+
const { help, version, quiet, debug, ...optionFlags } = commandLineArgs(
|
|
38
39
|
ARGUMENTS_OPTIONS,
|
|
39
40
|
{ argv, camelCase: true }
|
|
40
41
|
);
|
|
41
42
|
|
|
43
|
+
const options = Object.fromEntries(
|
|
44
|
+
Object.entries(optionFlags).map(([key, value]) => {
|
|
45
|
+
return key === "noIgnoreScripts"
|
|
46
|
+
? ["ignoreScripts", !value]
|
|
47
|
+
: [key, value];
|
|
48
|
+
})
|
|
49
|
+
);
|
|
50
|
+
|
|
42
51
|
return {
|
|
43
52
|
help: Boolean(help),
|
|
44
53
|
version: Boolean(version),
|
|
@@ -35,7 +35,11 @@ export async function compareAndPublish(
|
|
|
35
35
|
environment: NpmCliEnvironment
|
|
36
36
|
): Promise<PublishResult> {
|
|
37
37
|
const { name, version, packageSpec } = manifest;
|
|
38
|
-
const cliOptions = {
|
|
38
|
+
const cliOptions = {
|
|
39
|
+
environment,
|
|
40
|
+
ignoreScripts: options.ignoreScripts.value,
|
|
41
|
+
logger: options.logger,
|
|
42
|
+
};
|
|
39
43
|
|
|
40
44
|
const viewArguments = getViewArguments(name, options);
|
|
41
45
|
const publishArguments = getPublishArguments(packageSpec, options);
|
package/src/normalize-options.ts
CHANGED
|
@@ -23,6 +23,7 @@ export interface NormalizedOptions {
|
|
|
23
23
|
tag: ConfigValue<string>;
|
|
24
24
|
access: ConfigValue<Access | undefined>;
|
|
25
25
|
provenance: ConfigValue<boolean>;
|
|
26
|
+
ignoreScripts: ConfigValue<boolean>;
|
|
26
27
|
dryRun: ConfigValue<boolean>;
|
|
27
28
|
strategy: ConfigValue<Strategy>;
|
|
28
29
|
logger: Logger | undefined;
|
|
@@ -62,6 +63,7 @@ export function normalizeOptions(
|
|
|
62
63
|
tag: setValue(options.tag, defaultTag, validateTag),
|
|
63
64
|
access: setValue(options.access, defaultAccess, validateAccess),
|
|
64
65
|
provenance: setValue(options.provenance, defaultProvenance, Boolean),
|
|
66
|
+
ignoreScripts: setValue(options.ignoreScripts, true, Boolean),
|
|
65
67
|
dryRun: setValue(options.dryRun, false, Boolean),
|
|
66
68
|
strategy: setValue(options.strategy, STRATEGY_ALL, validateStrategy),
|
|
67
69
|
logger: options.logger,
|
package/src/npm/call-npm-cli.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type { NpmCliEnvironment } from "./use-npm-environment.js";
|
|
|
7
7
|
|
|
8
8
|
export interface NpmCliOptions {
|
|
9
9
|
environment: NpmCliEnvironment;
|
|
10
|
+
ignoreScripts: boolean;
|
|
10
11
|
logger?: Logger | undefined;
|
|
11
12
|
}
|
|
12
13
|
|
|
@@ -41,6 +42,9 @@ export const EPUBLISHCONFLICT = "EPUBLISHCONFLICT";
|
|
|
41
42
|
const NPM = os.platform() === "win32" ? "npm.cmd" : "npm";
|
|
42
43
|
const JSON_MATCH_RE = /(\{[\s\S]*\})/mu;
|
|
43
44
|
|
|
45
|
+
const baseArguments = (options: NpmCliOptions) =>
|
|
46
|
+
options.ignoreScripts ? ["--ignore-scripts", "--json"] : ["--json"];
|
|
47
|
+
|
|
44
48
|
/**
|
|
45
49
|
* Call the NPM CLI in JSON mode.
|
|
46
50
|
*
|
|
@@ -55,7 +59,7 @@ export async function callNpmCli<CommandT extends Command>(
|
|
|
55
59
|
options: NpmCliOptions
|
|
56
60
|
): Promise<NpmCallResult<CommandT>> {
|
|
57
61
|
const { stdout, stderr, exitCode } = await execNpm(
|
|
58
|
-
[command,
|
|
62
|
+
[command, ...baseArguments(options), ...cliArguments],
|
|
59
63
|
options.environment,
|
|
60
64
|
options.logger
|
|
61
65
|
);
|
package/src/options.ts
CHANGED
|
@@ -60,7 +60,7 @@ export interface Options {
|
|
|
60
60
|
* packages.
|
|
61
61
|
*
|
|
62
62
|
* Defaults to "restricted" for scoped packages, unless that package has been
|
|
63
|
-
* previously published as `public
|
|
63
|
+
* previously published as `public`.
|
|
64
64
|
*
|
|
65
65
|
* Can be set by the package.json's `publishConfig` field.
|
|
66
66
|
*/
|
|
@@ -81,14 +81,23 @@ export interface Options {
|
|
|
81
81
|
/**
|
|
82
82
|
* Version check strategy.
|
|
83
83
|
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
* package will be published if its version is
|
|
87
|
-
*
|
|
88
|
-
* Defaults to `upgrade`.
|
|
84
|
+
* - `always` (default): the package will be published if its version is simply
|
|
85
|
+
* not yet published.
|
|
86
|
+
* - `upgrade`: the package will only be published if its version is higher than
|
|
87
|
+
* the existing version on the configured tag.
|
|
89
88
|
*/
|
|
90
89
|
strategy?: Strategy | undefined;
|
|
91
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Ignore lifecycle scripts.
|
|
93
|
+
*
|
|
94
|
+
* If `true` (default), `--ignore-scripts` will be passed to `npm`. If you
|
|
95
|
+
* rely on publish lifecycle scripts - i.e. `prepublishOnly`, `prepack`,
|
|
96
|
+
* `prepare`, `postpack`, `publish`, `postpublish` - you should set this to
|
|
97
|
+
* `false` or rework your build and publish workflow.
|
|
98
|
+
*/
|
|
99
|
+
ignoreScripts?: boolean | undefined;
|
|
100
|
+
|
|
92
101
|
/**
|
|
93
102
|
* Pretend to publish, but don't actually upload to the registry.
|
|
94
103
|
*
|