@jsdevtools/npm-publish 2.2.0 → 2.2.1

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
@@ -131,8 +131,35 @@ jobs:
131
131
  token: ${{ secrets.NPM_TOKEN }}
132
132
  ```
133
133
 
134
+ 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`:
135
+
136
+ ```yaml
137
+ on:
138
+ push:
139
+ branches: main
140
+
141
+ jobs:
142
+ publish:
143
+ runs-on: ubuntu-latest
144
+ permissions:
145
+ contents: read
146
+ packages: write # allow GITHUB_TOKEN to publish packages
147
+ steps:
148
+ - uses: actions/checkout@v3
149
+ - uses: actions/setup-node@v3
150
+ with:
151
+ node-version: "18"
152
+ - run: npm ci
153
+ - run: npm test
154
+ - uses: JS-DevTools/npm-publish@v2
155
+ with:
156
+ token: ${{ secrets.GITHUB_TOKEN }}
157
+ registry: "https://npm.pkg.github.com"
158
+ ```
159
+
134
160
  [workflow file]: https://help.github.com/en/actions/automating-your-workflow-with-github-actions
135
161
  [npm authentication token]: https://docs.npmjs.com/creating-and-viewing-authentication-tokens
162
+ [GitHub Package Registry]: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-npm-registry
136
163
 
137
164
  ### Usage
138
165
 
@@ -169,8 +196,7 @@ steps:
169
196
  token: ${{ secrets.NPM_TOKEN }}
170
197
 
171
198
  - if: ${{ steps.publish.outputs.type }}
172
- run: |
173
- echo "Version changed!"
199
+ run: echo "Version changed!"
174
200
  ```
175
201
 
176
202
  | Name | Type | Description |
@@ -1 +1,2 @@
1
- export {};
1
+ /** Main action entry point. */
2
+ export declare function main(): Promise<void>;
@@ -23,6 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.main = void 0;
26
27
  /** Action entry point */
27
28
  const index_js_1 = require("../index.js");
28
29
  const core = __importStar(require("./core.js"));
@@ -52,5 +53,14 @@ async function run() {
52
53
  core.setOutput("strategy", results.strategy);
53
54
  core.setOutput("dry-run", results.dryRun);
54
55
  }
55
- run().catch((error) => core.setFailed(error));
56
+ /** Main action entry point. */
57
+ async function main() {
58
+ try {
59
+ await run();
60
+ }
61
+ catch (error) {
62
+ core.setFailed(error);
63
+ }
64
+ }
65
+ exports.main = main;
56
66
  //# sourceMappingURL=main.js.map
@@ -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,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"}
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,+BAA+B;AACxB,KAAK,UAAU,IAAI;IACxB,IAAI;QACF,MAAM,GAAG,EAAE,CAAC;KACb;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KACvB;AACH,CAAC;AAND,oBAMC"}
@@ -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 --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";
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";
2
2
  /**
3
3
  * The main entry point of the CLI
4
4
  *
package/lib/cli/index.js CHANGED
@@ -33,8 +33,8 @@ 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.
36
+ --no-ignore-scripts Allow lifecycle scripts, which are disabled by default
37
+ as a security precaution. Defaults to false.
38
38
 
39
39
  --dry-run Do not actually publish anything.
40
40
  --quiet Only print errors.
package/lib/index.js CHANGED
@@ -19,7 +19,7 @@ exports.npmPublish = void 0;
19
19
  __exportStar(require("./options.js"), exports);
20
20
  __exportStar(require("./results.js"), exports);
21
21
  __exportStar(require("./errors.js"), exports);
22
- // Export `npmPublish` as a named export and the default export
22
+ // Export `npmPublish` as a named export
23
23
  var npm_publish_js_1 = require("./npm-publish.js");
24
24
  Object.defineProperty(exports, "npmPublish", { enumerable: true, get: function () { return npm_publish_js_1.npmPublish; } });
25
25
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAwD;AACxD,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAE5B,+DAA+D;AAC/D,mDAA8C;AAArC,4GAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wDAAwD;AACxD,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAE5B,wCAAwC;AACxC,mDAA8C;AAArC,4GAAA,UAAU,OAAA"}
@@ -55,7 +55,9 @@ async function callNpmCli(command, cliArguments, options) {
55
55
  }
56
56
  else {
57
57
  const errorPayload = parseJson(stdout, stderr);
58
- errorCode = errorPayload?.error?.code?.toUpperCase();
58
+ if (errorPayload?.error?.code) {
59
+ errorCode = String(errorPayload.error.code).toUpperCase();
60
+ }
59
61
  error = new errors.NpmCallError(command, exitCode, stderr);
60
62
  }
61
63
  return { successData, errorCode, error };
@@ -80,6 +82,8 @@ async function execNpm(commandArguments, environment, logger) {
80
82
  npm.stdout.on("data", (data) => (stdout += data));
81
83
  npm.stderr.on("data", (data) => (stderr += data));
82
84
  npm.on("close", (code) => {
85
+ logger?.debug?.(`Received stdout: ${stdout}`);
86
+ logger?.debug?.(`Received stderr: ${stderr}`);
83
87
  resolve({
84
88
  stdout: stdout.trim(),
85
89
  stderr: stderr.trim(),
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA8C;AAC9C,sDAAyB;AAEzB,qDAAuC;AAgC1B,QAAA,IAAI,GAAG,MAAM,CAAC;AACd,QAAA,OAAO,GAAG,SAAS,CAAC;AAEpB,QAAA,IAAI,GAAG,MAAM,CAAC;AACd,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AAEnD,MAAM,GAAG,GAAG,iBAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAExC,MAAM,aAAa,GAAG,CAAC,OAAsB,EAAE,EAAE,CAC/C,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAEtE;;;;;;;GAOG;AACI,KAAK,UAAU,UAAU,CAC9B,OAAiB,EACjB,YAAsB,EACtB,OAAsB;IAEtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAChD,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,GAAG,YAAY,CAAC,EACrD,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,MAAM,CACf,CAAC;IAEF,IAAI,WAAW,CAAC;IAChB,IAAI,SAAS,CAAC;IACd,IAAI,KAAK,CAAC;IAEV,IAAI,QAAQ,KAAK,CAAC,EAAE;QAClB,WAAW,GAAG,SAAS,CAAwB,MAAM,CAAC,CAAC;KACxD;SAAM;QACL,MAAM,YAAY,GAAG,SAAS,CAC5B,MAAM,EACN,MAAM,CACP,CAAC;QAEF,IAAI,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE;YAC7B,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;SAC3D;QAED,KAAK,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;KAC5D;IAED,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC3C,CAAC;AA/BD,gCA+BC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,OAAO,CACpB,gBAA0B,EAC1B,WAAmC,EACnC,MAAe;IAEf,MAAM,EAAE,KAAK,EAAE,CAAC,oBAAoB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEzE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,MAAM,GAAG,GAAG,4BAAY,CAAC,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE;YACpD,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,WAAW,EAAE;SACxC,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;QAClD,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC;QAClD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACvB,MAAM,EAAE,KAAK,EAAE,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;YAC9C,MAAM,EAAE,KAAK,EAAE,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;YAE9C,OAAO,CAAC;gBACN,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;gBACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;gBACrB,QAAQ,EAAE,IAAI,IAAI,CAAC;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAU,GAAG,MAAgB;IAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjD,IAAI,SAAS,EAAE;YACb,IAAI;gBACF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAY,CAAC;aACzC;YAAC,MAAM;gBACN,OAAO,SAAS,CAAC;aAClB;SACF;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/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.2.0",
4
+ "version": "2.2.1",
5
5
  "keywords": [
6
6
  "github-action",
7
7
  "npm",
@@ -19,6 +19,7 @@
19
19
  "type": "git",
20
20
  "url": "https://github.com/JS-DevTools/npm-publish.git"
21
21
  },
22
+ "type": "commonjs",
22
23
  "main": "lib/index.js",
23
24
  "types": "lib/index.d.ts",
24
25
  "bin": {
@@ -53,18 +54,18 @@
53
54
  "devDependencies": {
54
55
  "@actions/core": "^1.10.0",
55
56
  "@types/command-line-args": "^5.0.0",
56
- "@types/node": "^18.16.3",
57
- "@types/tar": "^6.1.4",
57
+ "@types/node": "^20.3.3",
58
+ "@types/tar": "^6.1.5",
58
59
  "@typescript-eslint/eslint-plugin": "^5.59.2",
59
60
  "@typescript-eslint/parser": "^5.59.2",
60
- "@vitest/coverage-istanbul": "^0.31.4",
61
+ "@vitest/coverage-istanbul": "^0.32.4",
61
62
  "concurrently": "^8.0.1",
62
- "esbuild": "^0.17.18",
63
+ "esbuild": "^0.18.11",
63
64
  "eslint": "^8.39.0",
64
65
  "eslint-config-prettier": "^8.8.0",
65
66
  "eslint-import-resolver-typescript": "^3.5.5",
66
67
  "eslint-plugin-import": "npm:eslint-plugin-i@^2.27.5-1",
67
- "eslint-plugin-jsdoc": "^43.1.1",
68
+ "eslint-plugin-jsdoc": "^46.2.4",
68
69
  "eslint-plugin-n": "^16.0.0",
69
70
  "eslint-plugin-promise": "^6.1.1",
70
71
  "eslint-plugin-sonarjs": "^0.19.0",
@@ -72,15 +73,14 @@
72
73
  "prettier": "^2.8.8",
73
74
  "prettier-plugin-jsdoc": "^0.4.2",
74
75
  "rimraf": "^5.0.0",
75
- "testdouble": "^3.17.2",
76
- "testdouble-vitest": "^0.1.2",
77
76
  "typescript": "^5.0.4",
78
- "vitest": "^0.31.4"
77
+ "vitest": "^0.32.4",
78
+ "vitest-when": "^0.1.2"
79
79
  },
80
80
  "dependencies": {
81
- "@types/semver": "^7.3.13",
81
+ "@types/semver": "^7.5.0",
82
82
  "command-line-args": "^5.1.1",
83
- "semver": "^7.5.0",
84
- "tar": "^6.1.13"
83
+ "semver": "^7.5.3",
84
+ "tar": "^6.1.15"
85
85
  }
86
86
  }
@@ -30,4 +30,11 @@ async function run(): Promise<void> {
30
30
  core.setOutput("dry-run", results.dryRun);
31
31
  }
32
32
 
33
- run().catch((error: Error) => core.setFailed(error));
33
+ /** Main action entry point. */
34
+ export async function main(): Promise<void> {
35
+ try {
36
+ await run();
37
+ } catch (error) {
38
+ core.setFailed(error);
39
+ }
40
+ }
package/src/cli/index.ts CHANGED
@@ -31,8 +31,8 @@ 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.
34
+ --no-ignore-scripts Allow lifecycle scripts, which are disabled by default
35
+ as a security precaution. Defaults to false.
36
36
 
37
37
  --dry-run Do not actually publish anything.
38
38
  --quiet Only print errors.
package/src/index.ts CHANGED
@@ -3,5 +3,5 @@ export * from "./options.js";
3
3
  export * from "./results.js";
4
4
  export * from "./errors.js";
5
5
 
6
- // Export `npmPublish` as a named export and the default export
6
+ // Export `npmPublish` as a named export
7
7
  export { npmPublish } from "./npm-publish.js";
@@ -71,12 +71,15 @@ export async function callNpmCli<CommandT extends Command>(
71
71
  if (exitCode === 0) {
72
72
  successData = parseJson<SuccessData<CommandT>>(stdout);
73
73
  } else {
74
- const errorPayload = parseJson<{ error?: { code?: string | null } }>(
74
+ const errorPayload = parseJson<{ error?: { code?: unknown } }>(
75
75
  stdout,
76
76
  stderr
77
77
  );
78
78
 
79
- errorCode = errorPayload?.error?.code?.toUpperCase();
79
+ if (errorPayload?.error?.code) {
80
+ errorCode = String(errorPayload.error.code).toUpperCase();
81
+ }
82
+
80
83
  error = new errors.NpmCallError(command, exitCode, stderr);
81
84
  }
82
85
 
@@ -109,6 +112,9 @@ async function execNpm(
109
112
  npm.stdout.on("data", (data) => (stdout += data));
110
113
  npm.stderr.on("data", (data) => (stderr += data));
111
114
  npm.on("close", (code) => {
115
+ logger?.debug?.(`Received stdout: ${stdout}`);
116
+ logger?.debug?.(`Received stderr: ${stderr}`);
117
+
112
118
  resolve({
113
119
  stdout: stdout.trim(),
114
120
  stderr: stderr.trim(),