@containerbase/semantic-release-pnpm 1.3.34 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/index.js +95 -35
  2. package/package.json +1 -1
package/lib/index.js CHANGED
@@ -8,7 +8,7 @@ var __export = (target, all) => {
8
8
  // src/index.ts
9
9
  import { execa } from "execa";
10
10
  import "semantic-release";
11
- import AggregateError from "aggregate-error";
11
+ import AggregateError2 from "aggregate-error";
12
12
 
13
13
  // src/get-error.ts
14
14
  import SemanticReleaseError from "@semantic-release/error";
@@ -16,7 +16,9 @@ import SemanticReleaseError from "@semantic-release/error";
16
16
  // src/definitions/errors.ts
17
17
  var errors_exports = {};
18
18
  __export(errors_exports, {
19
- EINVALIDNPMAUTH: () => EINVALIDNPMAUTH
19
+ EINVALIDNPMAUTH: () => EINVALIDNPMAUTH,
20
+ ENOPKG: () => ENOPKG,
21
+ ENOPKGNAME: () => ENOPKGNAME
20
22
  });
21
23
  function EINVALIDNPMAUTH(_ctx) {
22
24
  return {
@@ -26,6 +28,22 @@ function EINVALIDNPMAUTH(_ctx) {
26
28
  Please verify your authentication configuration.`
27
29
  };
28
30
  }
31
+ function ENOPKGNAME(_ctx) {
32
+ return {
33
+ message: "Missing `name` property in `package.json`.",
34
+ details: `The \`package.json\`'s [name](https://docs.npmjs.com/files/package.json#name) property is required in order to publish a package to the npm registry.
35
+
36
+ Please make sure to add a valid \`name\` for your package in your \`package.json\`.`
37
+ };
38
+ }
39
+ function ENOPKG(_ctx) {
40
+ return {
41
+ message: "Missing `package.json` file.",
42
+ details: `A [package.json file](https://docs.npmjs.com/files/package.json) at the root of your project is required to release on npm.
43
+
44
+ Please follow the [npm guideline](https://docs.npmjs.com/getting-started/creating-node-modules) to create a valid \`package.json\` file.`
45
+ };
46
+ }
29
47
 
30
48
  // src/get-error.ts
31
49
  var get_error_default = (code, ctx = {}) => {
@@ -39,6 +57,27 @@ function getChannel(channel) {
39
57
  return channel ? validRange(channel) ? `release-${channel}` : channel : "latest";
40
58
  }
41
59
 
60
+ // src/get-pkg.ts
61
+ import path from "path";
62
+ import { readPackage } from "read-pkg";
63
+ import AggregateError from "aggregate-error";
64
+ async function getPkg(cwd, pkgRoot) {
65
+ try {
66
+ const pkg = await readPackage({
67
+ cwd: pkgRoot ? path.resolve(cwd, pkgRoot) : cwd
68
+ });
69
+ if (!pkg.name) {
70
+ throw get_error_default("ENOPKGNAME");
71
+ }
72
+ return pkg;
73
+ } catch (error) {
74
+ if (error instanceof Error && "code" in error && error.code === "ENOENT") {
75
+ throw new AggregateError([get_error_default("ENOPKG")]);
76
+ }
77
+ throw new AggregateError([error]);
78
+ }
79
+ }
80
+
42
81
  // src/index.ts
43
82
  async function verifyConditions(_pluginConfig, { cwd = ".", env, stderr, stdout, logger }) {
44
83
  logger.log(`Verifying registry access`);
@@ -62,7 +101,7 @@ async function verifyConditions(_pluginConfig, { cwd = ".", env, stderr, stdout,
62
101
  );
63
102
  for (const line of [...res.stdout, ...res.stderr]) {
64
103
  if (line.includes("This command requires you to be logged in to ")) {
65
- throw new AggregateError([get_error_default("EINVALIDNPMAUTH")]);
104
+ throw new AggregateError2([get_error_default("EINVALIDNPMAUTH")]);
66
105
  }
67
106
  }
68
107
  }
@@ -75,40 +114,61 @@ async function prepare(_pluginConfig, {
75
114
  nextRelease: { version }
76
115
  }) {
77
116
  logger.log("Write version %s to package.json in %s", version, cwd);
78
- await execa(
79
- "pnpm",
80
- [
81
- "pnpm",
82
- "version",
83
- version,
84
- "--no-git-tag-version",
85
- "--allow-same-version"
86
- ],
87
- {
88
- cwd,
89
- env,
90
- stdout,
91
- stderr
117
+ const errors = [];
118
+ try {
119
+ const pkg = await getPkg(cwd);
120
+ if (pkg.private != true) {
121
+ await execa(
122
+ "pnpm",
123
+ [
124
+ "pnpm",
125
+ "version",
126
+ version,
127
+ "--no-git-tag-version",
128
+ "--allow-same-version"
129
+ ],
130
+ {
131
+ cwd,
132
+ env,
133
+ stdout,
134
+ stderr
135
+ }
136
+ );
92
137
  }
93
- );
94
- await execa(
95
- "pnpm",
96
- [
97
- "-r",
98
- "exec",
99
- "pnpm",
100
- "version",
101
- version,
102
- "--no-git-tag-version",
103
- "--allow-same-version"
104
- ],
105
- {
106
- cwd,
107
- env,
108
- stdout,
109
- stderr
138
+ } catch (err) {
139
+ if (err instanceof AggregateError2) {
140
+ errors.push(...err.errors);
110
141
  }
111
- );
142
+ errors.push(err);
143
+ }
144
+ if (errors.length > 0) {
145
+ throw new AggregateError2(errors);
146
+ }
147
+ try {
148
+ await execa(
149
+ "pnpm",
150
+ [
151
+ "-r",
152
+ "exec",
153
+ "pnpm",
154
+ "version",
155
+ version,
156
+ "--no-git-tag-version",
157
+ "--allow-same-version"
158
+ ],
159
+ {
160
+ cwd,
161
+ env,
162
+ stdout,
163
+ stderr
164
+ }
165
+ );
166
+ } catch (err) {
167
+ errors.push(err);
168
+ }
169
+ if (errors.length > 0) {
170
+ throw new AggregateError2(errors);
171
+ }
112
172
  }
113
173
  async function publish(_pluginConfig, {
114
174
  cwd = ".",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@containerbase/semantic-release-pnpm",
3
- "version": "1.3.34",
3
+ "version": "1.4.0",
4
4
  "description": "A pnpm plugin for semantic-release",
5
5
  "keywords": [
6
6
  "semantic-release",