@vitejs/release-scripts 1.4.0 → 1.6.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/dist/index.d.ts CHANGED
@@ -1,5 +1,12 @@
1
+ export declare function generateChangelog(options: {
2
+ /** @example () => `packages/${pkgName}` */
3
+ getPkgDir: () => string;
4
+ /** @example `${pkgName}@` */
5
+ tagPrefix?: string;
6
+ }): Promise<void>;
7
+
1
8
  export declare function publish(options: {
2
- defaultPackage: string;
9
+ defaultPackage?: string;
3
10
  getPkgDir?: (pkg: string) => string;
4
11
  /**
5
12
  * Enables npm package provenance https://docs.npmjs.com/generating-provenance-statements
package/dist/index.js CHANGED
@@ -116,9 +116,19 @@ async function publishPackage(pkgDir, tag, provenance, packageManager = "npm") {
116
116
  }
117
117
  async function getActiveVersion(npmName) {
118
118
  try {
119
- return (await run("npm", ["info", npmName, "version"], { stdio: "pipe" })).stdout;
119
+ const { stdout } = await run(
120
+ "npm",
121
+ ["info", npmName, "version", "--json"],
122
+ { stdio: "pipe" }
123
+ );
124
+ return JSON.parse(stdout);
120
125
  } catch (e) {
121
- if (e.stderr.startsWith("npm ERR! code E404")) return;
126
+ if (e.stdout) {
127
+ const stdout = JSON.parse(e.stdout);
128
+ if (stdout.error.code === "E404") {
129
+ return;
130
+ }
131
+ }
122
132
  throw e;
123
133
  }
124
134
  }
@@ -137,6 +147,10 @@ var publish = async ({
137
147
  if (tag.includes("@")) [pkgName, version] = tag.split("@");
138
148
  else version = tag;
139
149
  if (version.startsWith("v")) version = version.slice(1);
150
+ if (pkgName === void 0)
151
+ throw new Error(
152
+ `Package name should be specified in tag "${tag}" when defaultPackage is not set`
153
+ );
140
154
  const { pkg, pkgDir } = getPackageInfo(pkgName, getPkgDir);
141
155
  if (pkg.version !== version)
142
156
  throw new Error(
@@ -158,7 +172,7 @@ var release = async ({
158
172
  repo,
159
173
  packages,
160
174
  logChangelog,
161
- generateChangelog,
175
+ generateChangelog: generateChangelog2,
162
176
  toTag,
163
177
  getPkgDir
164
178
  }) => {
@@ -219,7 +233,7 @@ var release = async ({
219
233
  if (!yes) return;
220
234
  step("\nUpdating package version...");
221
235
  updateVersion(pkgPath, targetVersion);
222
- await generateChangelog(selectedPkg, targetVersion);
236
+ await generateChangelog2(selectedPkg, targetVersion);
223
237
  const { stdout } = await run("git", ["diff"], { stdio: "pipe" });
224
238
  if (stdout) {
225
239
  step("\nCommitting changes...");
@@ -247,7 +261,61 @@ https://github.com/vitejs/${repo}/actions/workflows/publish.yml`
247
261
  }
248
262
  console.log();
249
263
  };
264
+
265
+ // src/changelog.ts
266
+ import fs from "node:fs";
267
+ import { ConventionalChangelog } from "conventional-changelog";
268
+ import createPreset, {
269
+ DEFAULT_COMMIT_TYPES
270
+ } from "conventional-changelog-conventionalcommits";
271
+ var generateChangelog = async ({
272
+ getPkgDir,
273
+ tagPrefix
274
+ }) => {
275
+ const preset = await createPreset({
276
+ types: DEFAULT_COMMIT_TYPES.map((t) => ({ ...t, hidden: false }))
277
+ });
278
+ preset.writer ??= {};
279
+ preset.writer.headerPartial = `
280
+ ## {{#if isPatch~}} <small> {{~/if~}}
281
+ {{#if @root.linkCompare~}}
282
+ [{{version}}](
283
+ {{~#if @root.repository~}}
284
+ {{~#if @root.host}}
285
+ {{~@root.host}}/
286
+ {{~/if}}
287
+ {{~#if @root.owner}}
288
+ {{~@root.owner}}/
289
+ {{~/if}}
290
+ {{~@root.repository}}
291
+ {{~else}}
292
+ {{~@root.repoUrl}}
293
+ {{~/if~}}
294
+ /compare/{{previousTag}}...{{currentTag}})
295
+ {{~else}}
296
+ {{~version}}
297
+ {{~/if}}
298
+ {{~#if title}} "{{title}}"
299
+ {{~/if}}
300
+ {{~#if date}} ({{date}})
301
+ {{~/if}}
302
+ {{~#if isPatch~}} </small> {{~/if}}
303
+ `.trim();
304
+ preset.writer.mainTemplate += "\n";
305
+ const pkgDir = getPkgDir();
306
+ const generator = new ConventionalChangelog().readPackage(`${pkgDir}/package.json`).config(preset).options({ releaseCount: 1 }).commits({ path: pkgDir });
307
+ if (tagPrefix) {
308
+ generator.tags({ prefix: tagPrefix });
309
+ }
310
+ const originalChangelog = fs.readFileSync(`${pkgDir}/CHANGELOG.md`, "utf-8");
311
+ const writeStream = fs.createWriteStream(`${pkgDir}/CHANGELOG.md`);
312
+ for await (const chunk of generator.write()) {
313
+ writeStream.write(chunk);
314
+ }
315
+ writeStream.write(originalChangelog);
316
+ };
250
317
  export {
318
+ generateChangelog,
251
319
  publish,
252
320
  release
253
321
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vitejs/release-scripts",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "@vitejs release scripts",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -26,21 +26,23 @@
26
26
  "release": "tnode scripts/release.ts"
27
27
  },
28
28
  "dependencies": {
29
+ "conventional-changelog": "^7.1.0",
30
+ "conventional-changelog-conventionalcommits": "^9.0.0",
29
31
  "execa": "^8.0.1",
30
32
  "mri": "^1.2.0",
31
33
  "picocolors": "^1.1.1",
32
34
  "prompts": "^2.4.2",
33
- "publint": "^0.3.2",
34
- "semver": "^7.6.3"
35
+ "publint": "^0.3.12",
36
+ "semver": "^7.7.2"
35
37
  },
36
38
  "devDependencies": {
37
- "@arnaud-barre/tnode": "^0.24.0",
38
- "@types/node": "^22.10.9",
39
+ "@arnaud-barre/tnode": "^0.25.0",
40
+ "@types/node": "^22.15.33",
39
41
  "@types/prompts": "^2.4.9",
40
- "@types/semver": "^7.5.8",
41
- "esbuild": "^0.24.2",
42
- "prettier": "^3.4.2",
43
- "typescript": "^5.7.3"
42
+ "@types/semver": "^7.7.0",
43
+ "esbuild": "^0.25.0",
44
+ "prettier": "^3.6.2",
45
+ "typescript": "^5.8.3"
44
46
  },
45
- "packageManager": "pnpm@9.15.4"
47
+ "packageManager": "pnpm@10.12.4"
46
48
  }