🚀 Big News:Socket Has Acquired Secure Annex.Learn More
Socket
Book a DemoSign in
Socket

@changesets/apply-release-plan

Package Overview
Dependencies
Maintainers
4
Versions
66
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@changesets/apply-release-plan - npm Package Compare versions

Comparing version
8.0.0-next.2
to
8.0.0-next.3
+21
LICENSE
MIT License
Copyright (c) 2019 Ben Conolly
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+25
-0
# @changesets/apply-release-plan
## 8.0.0-next.3
### Major Changes
- [#1954](https://github.com/changesets/changesets/pull/1954) [`ed6728c`](https://github.com/changesets/changesets/commit/ed6728ce3c089caaee19f71194a0cd7029480069) Thanks [@beeequeue](https://github.com/beeequeue)! - Bumped supported Node versions to `^22.11 || ^24 || >=26`
### Minor Changes
- [#1969](https://github.com/changesets/changesets/pull/1969) [`2c7c043`](https://github.com/changesets/changesets/commit/2c7c043d7071440009f8a69eff0b0c6746ac7625) Thanks [@marcalexiei](https://github.com/marcalexiei)! - Add a named export that mirrors the current `default` export
The `default` export is slated for removal in the next major release, so this ensures a smoother transition path.
### Patch Changes
- [#1667](https://github.com/changesets/changesets/pull/1667) [`81832f8`](https://github.com/changesets/changesets/commit/81832f855029f4093b2142ba22b747ba0de92425) Thanks [@Andarist](https://github.com/Andarist)! - Fixed resolution of changelog and commit generator modules so built-in modules can still be loaded when they are not installed in the target project.
- [#1985](https://github.com/changesets/changesets/pull/1985) [`ad3edbd`](https://github.com/changesets/changesets/commit/ad3edbdc78c7b2ba451577969b6137df275ec430) Thanks [@bluwy](https://github.com/bluwy)! - Update `detect-indent` package to v7
- Updated dependencies [[`ed6728c`](https://github.com/changesets/changesets/commit/ed6728ce3c089caaee19f71194a0cd7029480069), [`b9407b3`](https://github.com/changesets/changesets/commit/b9407b39a458bab106d0e23a3afab01d07d8482f), [`2c7c043`](https://github.com/changesets/changesets/commit/2c7c043d7071440009f8a69eff0b0c6746ac7625), [`a0b5326`](https://github.com/changesets/changesets/commit/a0b5326570e8e7bf5e35c1cefe8f70d9a51a5cd7)]:
- @changesets/get-version-range-type@1.0.0-next.2
- @changesets/should-skip-package@1.0.0-next.3
- @changesets/config@4.0.0-next.3
- @changesets/types@7.0.0-next.3
- @changesets/git@4.0.0-next.3
## 8.0.0-next.2

@@ -4,0 +29,0 @@

+54
-52

@@ -0,1 +1,5 @@

import fs from 'node:fs/promises';
import { createRequire } from 'node:module';
import path from 'node:path';
import { pathToFileURL } from 'node:url';
import { defaultConfig } from '@changesets/config';

@@ -5,18 +9,10 @@ import * as git from '@changesets/git';

import detectIndent from 'detect-indent';
import fs from 'node:fs/promises';
import path$1 from 'path';
import { resolve } from 'import-meta-resolve';
import prettier from 'prettier';
import { resolve } from 'import-meta-resolve';
import validRange from 'semver/ranges/valid.js';
import semverSatisfies from 'semver/functions/satisfies.js';
import path from 'node:path';
import getVersionRangeType from '@changesets/get-version-range-type';
import { getVersionRangeType } from '@changesets/get-version-range-type';
import Range from 'semver/classes/range.js';
import semverPrerelease from 'semver/functions/prerelease.js';
import { createRequire } from 'node:module';
import { pathToFileURL } from 'node:url';
/**
* Shared utility functions and business logic
*/
const bumpTypes = ["none", "patch", "minor", "major"];

@@ -101,6 +97,6 @@

if (rls && rls.type !== "none") {
changelogLines[rls.type].push(changelogFuncs.getReleaseLine(cs, rls.type, changelogOpts));
changelogLines[rls.type].push(Promise.resolve(changelogFuncs.getReleaseLine(cs, rls.type, changelogOpts)));
}
});
let dependentReleases = releases.filter(rel => {
const dependentReleases = releases.filter(rel => {
const dependencyVersionRange = release.packageJson.dependencies?.[rel.name];

@@ -110,3 +106,3 @@ const peerDependencyVersionRange = release.packageJson.peerDependencies?.[rel.name];

const usesWorkspaceRange = versionRange?.startsWith("workspace:");
return versionRange && (usesWorkspaceRange || validRange(versionRange) !== null) && shouldUpdateDependencyBasedOnConfig(cwd, {
return versionRange && (usesWorkspaceRange || validRange(versionRange) != null) && shouldUpdateDependencyBasedOnConfig(cwd, {
type: rel.type,

@@ -124,3 +120,3 @@ version: rel.newVersion,

});
let relevantChangesetIds = new Set();
const relevantChangesetIds = new Set();
dependentReleases.forEach(rel => {

@@ -131,4 +127,4 @@ rel.changesets.forEach(cs => {

});
let relevantChangesets = changesets.filter(cs => relevantChangesetIds.has(cs.id));
changelogLines.patch.push(changelogFuncs.getDependencyReleaseLine(relevantChangesets, dependentReleases, changelogOpts));
const relevantChangesets = changesets.filter(cs => relevantChangesetIds.has(cs.id));
changelogLines.patch.push(Promise.resolve(changelogFuncs.getDependencyReleaseLine(relevantChangesets, dependentReleases, changelogOpts)));
return [`## ${release.newVersion}`, await generateChangesForVersionTypeMarkdown(changelogLines, "major"), await generateChangesForVersionTypeMarkdown(changelogLines, "minor"), await generateChangesForVersionTypeMarkdown(changelogLines, "patch")].filter(line => line).join("\n");

@@ -145,3 +141,3 @@ }

}) {
let {
const {
newVersion,

@@ -151,6 +147,6 @@ packageJson

packageJson.version = newVersion;
for (let depType of DEPENDENCY_TYPES) {
let deps = packageJson[depType];
for (const depType of DEPENDENCY_TYPES) {
const deps = packageJson[depType];
if (deps) {
for (let {
for (const {
name,

@@ -178,3 +174,3 @@ version,

const usesWorkspaceRange = depCurrentVersion.startsWith("workspace:");
if (!usesWorkspaceRange && (bumpVersionsWithWorkspaceProtocolOnly || validRange(depCurrentVersion) === null)) {
if (!usesWorkspaceRange && (bumpVersionsWithWorkspaceProtocolOnly || validRange(depCurrentVersion) == null)) {
continue;

@@ -184,3 +180,3 @@ }

const workspaceDepVersion = depCurrentVersion.replace(/^workspace:/, "");
if (workspaceDepVersion === "*" || workspaceDepVersion === "^" || workspaceDepVersion === "~" || validRange(workspaceDepVersion) === null) {
if (workspaceDepVersion === "*" || workspaceDepVersion === "^" || workspaceDepVersion === "~" || validRange(workspaceDepVersion) == null) {
continue;

@@ -198,3 +194,3 @@ }

// leaving those as is would leave the package in a non-installable state (wrong dep versions would get installed)
semverPrerelease(version) !== null) {
semverPrerelease(version) != null) {
let newNewRange = snapshot ? version : `${getVersionRangeType(depCurrentVersion)}${version}`;

@@ -214,2 +210,5 @@ if (usesWorkspaceRange) newNewRange = `workspace:${newNewRange}`;

const require = createRequire(import.meta.url);
function importResolveFromDir(specifier, dir) {
return resolve(specifier, pathToFileURL(path.join(dir, "x.mjs")).toString());
}
function getPrettierInstance(cwd) {

@@ -257,11 +256,11 @@ try {

async function applyReleasePlan(releasePlan, packages, config = defaultConfig, snapshot, contextDir = import.meta.dirname) {
let cwd = packages.rootDir;
let touchedFiles = [];
const cwd = packages.rootDir;
const touchedFiles = [];
const packagesByName = new Map(packages.packages.map(x => [x.packageJson.name, x]));
let {
const {
releases,
changesets
} = releasePlan;
let releasesWithPackage = releases.map(release => {
let pkg = packagesByName.get(release.name);
const releasesWithPackage = releases.map(release => {
const pkg = packagesByName.get(release.name);
if (!pkg) throw new Error(`Could not find matching package for release of: ${release.name}`);

@@ -275,6 +274,6 @@ return {

// I think this might be the wrong place to do this, but gotta do it somewhere - add changelog entries to releases
let releaseWithChangelogs = await getNewChangelogEntry(releasesWithPackage, changesets, config, cwd, contextDir);
if (releasePlan.preState !== undefined && snapshot === undefined) {
const releaseWithChangelogs = await getNewChangelogEntry(releasesWithPackage, changesets, config, cwd, contextDir);
if (releasePlan.preState != null && snapshot == null) {
if (releasePlan.preState.mode === "exit") {
await fs.rm(path$1.join(cwd, ".changeset", "pre.json"), {
await fs.rm(path.join(cwd, ".changeset", "pre.json"), {
recursive: true,

@@ -284,7 +283,7 @@ force: true

} else {
await fs.writeFile(path$1.join(cwd, ".changeset", "pre.json"), JSON.stringify(releasePlan.preState, null, 2) + "\n");
await fs.writeFile(path.join(cwd, ".changeset", "pre.json"), JSON.stringify(releasePlan.preState, null, 2) + "\n");
}
touchedFiles.push(path$1.join(cwd, ".changeset", "pre.json"));
touchedFiles.push(path.join(cwd, ".changeset", "pre.json"));
}
let versionsToUpdate = releases.map(({
const versionsToUpdate = releases.map(({
name,

@@ -303,3 +302,3 @@ newVersion,

// iterate over releases updating packages
let finalisedRelease = releaseWithChangelogs.map(release => {
const finalisedRelease = releaseWithChangelogs.map(release => {
return versionPackage(release, versionsToUpdate, {

@@ -313,5 +312,5 @@ cwd,

});
let prettierInstance = config.prettier !== false ? getPrettierInstance(cwd) : undefined;
for (let release of finalisedRelease) {
let {
const prettierInstance = config.prettier !== false ? getPrettierInstance(cwd) : undefined;
for (const release of finalisedRelease) {
const {
changelog,

@@ -322,7 +321,7 @@ packageJson,

} = release;
const pkgJSONPath = path$1.resolve(dir, "package.json");
const pkgJSONPath = path.resolve(dir, "package.json");
await updatePackageJson(pkgJSONPath, packageJson);
touchedFiles.push(pkgJSONPath);
if (changelog && changelog.length > 0) {
const changelogPath = path$1.resolve(dir, "CHANGELOG.md");
const changelogPath = path.resolve(dir, "CHANGELOG.md");
await updateChangelog(changelogPath, changelog, name, prettierInstance);

@@ -332,7 +331,7 @@ touchedFiles.push(changelogPath);

}
if (releasePlan.preState === undefined || releasePlan.preState.mode === "exit") {
let changesetFolder = path$1.resolve(cwd, ".changeset");
if (releasePlan.preState == null || releasePlan.preState.mode === "exit") {
const changesetFolder = path.resolve(cwd, ".changeset");
await Promise.all(changesets.map(async changeset => {
let changesetPath = path$1.resolve(changesetFolder, `${changeset.id}.md`);
let changesetFolderPath = path$1.resolve(changesetFolder, changeset.id);
const changesetPath = path.resolve(changesetFolder, `${changeset.id}.md`);
const changesetFolderPath = path.resolve(changesetFolder, changeset.id);
if (await fs.access(changesetPath).then(() => true, () => false)) {

@@ -380,8 +379,8 @@ // DO NOT remove changeset for skipped packages

const changelogOpts = config.changelog[1];
let changesetPath = path$1.join(cwd, ".changeset");
const changesetPath = path.join(cwd, ".changeset");
let changelogPath;
try {
changelogPath = resolve(config.changelog[0], pathToFileURL(changesetPath).toString());
changelogPath = importResolveFromDir(config.changelog[0], changesetPath);
} catch {
changelogPath = resolve(config.changelog[0], pathToFileURL(contextDir).toString());
changelogPath = importResolveFromDir(config.changelog[0], contextDir);
}

@@ -402,4 +401,4 @@ let possibleChangelogFunc = await import(changelogPath);

}
let commits = await getCommitsThatAddChangesets(changesets.map(cs => cs.id), cwd);
let moddedChangesets = changesets.map((cs, i) => ({
const commits = await getCommitsThatAddChangesets(changesets.map(cs => cs.id), cwd);
const moddedChangesets = changesets.map((cs, i) => ({
...cs,

@@ -409,3 +408,3 @@ commit: commits[i]

return Promise.all(releasesWithPackage.map(async release => {
let changelog = await getChangelogEntry(cwd, release, releasesWithPackage, moddedChangesets, getChangelogFuncs, changelogOpts, {
const changelog = await getChangelogEntry(cwd, release, releasesWithPackage, moddedChangesets, getChangelogFuncs, changelogOpts, {
updateInternalDependencies: config.updateInternalDependencies,

@@ -425,3 +424,3 @@ onlyUpdatePeerDependentsWhenOutOfRange: config.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.onlyUpdatePeerDependentsWhenOutOfRange

async function updateChangelog(changelogPath, changelog, name, prettierInstance) {
let templateString = `\n\n${changelog.trim()}\n`;
const templateString = `\n\n${changelog.trim()}\n`;
let fileData;

@@ -465,2 +464,5 @@ try {

}
/** @deprecated Use named export `applyReleasePlan` instead */
const applyReleasePlanDefault = applyReleasePlan;
async function writeFormattedMarkdownFile(filePath, content, prettierInstance) {

@@ -476,2 +478,2 @@ await fs.writeFile(filePath, prettierInstance ?

export { applyReleasePlan as default };
export { applyReleasePlan, applyReleasePlanDefault as default };
import type { Packages, Config, ReleasePlan } from "@changesets/types";
export default function applyReleasePlan(releasePlan: ReleasePlan, packages: Packages, config?: Config, snapshot?: string | boolean, contextDir?: string): Promise<string[]>;
export declare function applyReleasePlan(releasePlan: ReleasePlan, packages: Packages, config?: Config, snapshot?: string | boolean, contextDir?: string): Promise<string[]>;
/** @deprecated Use named export `applyReleasePlan` instead */
declare const applyReleasePlanDefault: typeof applyReleasePlan;
export default applyReleasePlanDefault;
{
"name": "@changesets/apply-release-plan",
"version": "8.0.0-next.2",
"version": "8.0.0-next.3",
"description": "Takes a release plan and applies it to packages",

@@ -13,21 +13,21 @@ "type": "module",

"dependencies": {
"@changesets/config": "^4.0.0-next.2",
"@changesets/get-version-range-type": "^1.0.0-next.1",
"@changesets/git": "^4.0.0-next.2",
"@changesets/should-skip-package": "^1.0.0-next.2",
"@changesets/types": "^7.0.0-next.2",
"detect-indent": "^6.0.0",
"detect-indent": "^7.0.2",
"import-meta-resolve": "^4.2.0",
"prettier": "^3.7.4",
"semver": "^7.5.3"
"semver": "^7.5.3",
"@changesets/config": "^4.0.0-next.3",
"@changesets/get-version-range-type": "^1.0.0-next.2",
"@changesets/should-skip-package": "^1.0.0-next.3",
"@changesets/git": "^4.0.0-next.3",
"@changesets/types": "^7.0.0-next.3"
},
"devDependencies": {
"@changesets/test-utils": "0.0.9-next.2",
"@manypkg/get-packages": "^3.0.0",
"outdent": "^0.8.0",
"tinyexec": "^1.0.2"
"tinyexec": "^1.0.2",
"@changesets/test-utils": "0.0.9-next.3"
},
"engines": {
"node": ">=20.19.0"
"node": "^22.11 || ^24 || >=26"
}
}
}
# Apply Release Plan
[![npm package](https://img.shields.io/npm/v/@changesets/apply-release-plan)](https://npmjs.com/package/@changesets/apply-release-plan)
[![View changelog](https://img.shields.io/badge/Explore%20Changelog-brightgreen)](./CHANGELOG.md)
[![Open on npmx.dev](https://npmx.dev/api/registry/badge/version/@changesets/apply-release-plan?name=true)](https://npmx.dev/package/@changesets/apply-release-plan)
[![View changelog](https://npmx.dev/api/registry/badge/version/@changesets/cli?color=229fe4&value=View+changelog&label=+)](./CHANGELOG.md)

@@ -6,0 +6,0 @@ This takes a `releasePlan` object for changesets and applies the expected changes from that

@@ -27,3 +27,3 @@ import type {

// release is the package and version we are releasing
export default async function getChangelogEntry(
export async function getChangelogEntry(
cwd: string,

@@ -59,7 +59,9 @@ release: ModCompWithPackage,

changelogLines[rls.type].push(
changelogFuncs.getReleaseLine(cs, rls.type, changelogOpts),
Promise.resolve(
changelogFuncs.getReleaseLine(cs, rls.type, changelogOpts),
),
);
}
});
let dependentReleases = releases.filter((rel) => {
const dependentReleases = releases.filter((rel) => {
const dependencyVersionRange = release.packageJson.dependencies?.[rel.name];

@@ -73,3 +75,3 @@ const peerDependencyVersionRange =

versionRange &&
(usesWorkspaceRange || validRange(versionRange) !== null) &&
(usesWorkspaceRange || validRange(versionRange) != null) &&
shouldUpdateDependencyBasedOnConfig(

@@ -95,3 +97,3 @@ cwd,

let relevantChangesetIds: Set<string> = new Set();
const relevantChangesetIds: Set<string> = new Set();

@@ -104,3 +106,3 @@ dependentReleases.forEach((rel) => {

let relevantChangesets = changesets.filter((cs) =>
const relevantChangesets = changesets.filter((cs) =>
relevantChangesetIds.has(cs.id),

@@ -110,6 +112,8 @@ );

changelogLines.patch.push(
changelogFuncs.getDependencyReleaseLine(
relevantChangesets,
dependentReleases,
changelogOpts,
Promise.resolve(
changelogFuncs.getDependencyReleaseLine(
relevantChangesets,
dependentReleases,
changelogOpts,
),
),

@@ -116,0 +120,0 @@ );

@@ -0,1 +1,5 @@

import fs from "node:fs/promises";
import { createRequire } from "node:module";
import path from "node:path";
import { pathToFileURL } from "node:url";
import { defaultConfig } from "@changesets/config";

@@ -13,13 +17,13 @@ import * as git from "@changesets/git";

import detectIndent from "detect-indent";
import fs from "node:fs/promises";
import path from "path";
import { resolve } from "import-meta-resolve";
import prettier from "prettier";
import { resolve } from "import-meta-resolve";
import getChangelogEntry from "./get-changelog-entry.ts";
import versionPackage from "./version-package.ts";
import { createRequire } from "node:module";
import { pathToFileURL } from "node:url";
import { getChangelogEntry } from "./get-changelog-entry.ts";
import { versionPackage } from "./version-package.ts";
const require = createRequire(import.meta.url);
function importResolveFromDir(specifier: string, dir: string) {
return resolve(specifier, pathToFileURL(path.join(dir, "x.mjs")).toString());
}
function getPrettierInstance(cwd: string): typeof prettier {

@@ -72,3 +76,3 @@ try {

export default async function applyReleasePlan(
export async function applyReleasePlan(
releasePlan: ReleasePlan,

@@ -80,5 +84,5 @@ packages: Packages,

) {
let cwd = packages.rootDir;
const cwd = packages.rootDir;
let touchedFiles = [];
const touchedFiles = [];

@@ -89,6 +93,6 @@ const packagesByName = new Map(

let { releases, changesets } = releasePlan;
const { releases, changesets } = releasePlan;
let releasesWithPackage = releases.map((release) => {
let pkg = packagesByName.get(release.name);
const releasesWithPackage = releases.map((release) => {
const pkg = packagesByName.get(release.name);
if (!pkg)

@@ -105,3 +109,3 @@ throw new Error(

// I think this might be the wrong place to do this, but gotta do it somewhere - add changelog entries to releases
let releaseWithChangelogs = await getNewChangelogEntry(
const releaseWithChangelogs = await getNewChangelogEntry(
releasesWithPackage,

@@ -114,3 +118,3 @@ changesets,

if (releasePlan.preState !== undefined && snapshot === undefined) {
if (releasePlan.preState != null && snapshot == null) {
if (releasePlan.preState.mode === "exit") {

@@ -130,3 +134,3 @@ await fs.rm(path.join(cwd, ".changeset", "pre.json"), {

let versionsToUpdate = releases.map(
const versionsToUpdate = releases.map(
({ name, newVersion, oldVersion, type }) => ({

@@ -142,3 +146,3 @@ name,

// iterate over releases updating packages
let finalisedRelease = releaseWithChangelogs.map((release) => {
const finalisedRelease = releaseWithChangelogs.map((release) => {
return versionPackage(release, versionsToUpdate, {

@@ -156,7 +160,7 @@ cwd,

let prettierInstance =
const prettierInstance =
config.prettier !== false ? getPrettierInstance(cwd) : undefined;
for (let release of finalisedRelease) {
let { changelog, packageJson, dir, name } = release;
for (const release of finalisedRelease) {
const { changelog, packageJson, dir, name } = release;

@@ -174,11 +178,11 @@ const pkgJSONPath = path.resolve(dir, "package.json");

if (
releasePlan.preState === undefined ||
releasePlan.preState.mode === "exit"
) {
let changesetFolder = path.resolve(cwd, ".changeset");
if (releasePlan.preState == null || releasePlan.preState.mode === "exit") {
const changesetFolder = path.resolve(cwd, ".changeset");
await Promise.all(
changesets.map(async (changeset) => {
let changesetPath = path.resolve(changesetFolder, `${changeset.id}.md`);
let changesetFolderPath = path.resolve(changesetFolder, changeset.id);
const changesetPath = path.resolve(
changesetFolder,
`${changeset.id}.md`,
);
const changesetFolderPath = path.resolve(changesetFolder, changeset.id);
if (

@@ -246,15 +250,9 @@ await fs.access(changesetPath).then(

const changelogOpts = config.changelog[1];
let changesetPath = path.join(cwd, ".changeset");
const changesetPath = path.join(cwd, ".changeset");
let changelogPath;
try {
changelogPath = resolve(
config.changelog[0],
pathToFileURL(changesetPath).toString(),
);
changelogPath = importResolveFromDir(config.changelog[0], changesetPath);
} catch {
changelogPath = resolve(
config.changelog[0],
pathToFileURL(contextDir).toString(),
);
changelogPath = importResolveFromDir(config.changelog[0], contextDir);
}

@@ -280,7 +278,7 @@

let commits = await getCommitsThatAddChangesets(
const commits = await getCommitsThatAddChangesets(
changesets.map((cs) => cs.id),
cwd,
);
let moddedChangesets = changesets.map((cs, i) => ({
const moddedChangesets = changesets.map((cs, i) => ({
...cs,

@@ -292,3 +290,3 @@ commit: commits[i],

releasesWithPackage.map(async (release) => {
let changelog = await getChangelogEntry(
const changelog = await getChangelogEntry(
cwd,

@@ -330,3 +328,3 @@ release,

) {
let templateString = `\n\n${changelog.trim()}\n`;
const templateString = `\n\n${changelog.trim()}\n`;
let fileData;

@@ -394,2 +392,6 @@

/** @deprecated Use named export `applyReleasePlan` instead */
const applyReleasePlanDefault = applyReleasePlan;
export default applyReleasePlanDefault;
async function writeFormattedMarkdownFile(

@@ -396,0 +398,0 @@ filePath: string,

@@ -0,1 +1,6 @@

// plugin, must have a default export
/* eslint-disable import-lite/no-default-export */
import type { ChangelogFunctions } from "@changesets/types";
export default {

@@ -8,2 +13,2 @@ getReleaseLine: () => {

},
};
} satisfies ChangelogFunctions;
import { getCommitsThatAddFiles } from "@changesets/git";
import type { ComprehensiveRelease, NewChangeset } from "@changesets/types";
import type { RelevantChangesets } from "../types.ts";

@@ -36,2 +35,4 @@ import { capitalize } from "../utils.ts";

// plugin, needs default export
// eslint-disable-next-line import-lite/no-default-export
export default async function defaultChangelogGetter(

@@ -42,6 +43,6 @@ release: ComprehensiveRelease,

) {
let { cwd } = options;
const { cwd } = options;
// First, we construct the release lines, summaries of changesets that caused us to be released
let majorReleaseLines = await getReleaseLines(
const majorReleaseLines = await getReleaseLines(
relevantChangesets,

@@ -51,3 +52,3 @@ "major",

);
let minorReleaseLines = await getReleaseLines(
const minorReleaseLines = await getReleaseLines(
relevantChangesets,

@@ -57,3 +58,3 @@ "minor",

);
let patchReleaseLines = await getReleaseLines(
const patchReleaseLines = await getReleaseLines(
relevantChangesets,

@@ -60,0 +61,0 @@ "patch",

@@ -0,1 +1,3 @@

import path from "node:path";
import type { VersionType } from "@changesets/types";
/**

@@ -6,4 +8,2 @@ * Shared utility functions and business logic

import validRange from "semver/ranges/valid.js";
import type { VersionType } from "@changesets/types";
import path from "node:path";

@@ -10,0 +10,0 @@ const bumpTypes = ["none", "patch", "minor", "major"];

@@ -0,1 +1,2 @@

import { getVersionRangeType } from "@changesets/get-version-range-type";
import type {

@@ -6,3 +7,2 @@ ComprehensiveRelease,

} from "@changesets/types";
import getVersionRangeType from "@changesets/get-version-range-type";
import Range from "semver/classes/range.js";

@@ -20,3 +20,3 @@ import semverPrerelease from "semver/functions/prerelease.js";

export default function versionPackage(
export function versionPackage(
release: ComprehensiveRelease & {

@@ -48,10 +48,10 @@ changelog: string | null;

) {
let { newVersion, packageJson } = release;
const { newVersion, packageJson } = release;
packageJson.version = newVersion;
for (let depType of DEPENDENCY_TYPES) {
let deps = packageJson[depType];
for (const depType of DEPENDENCY_TYPES) {
const deps = packageJson[depType];
if (deps) {
for (let { name, version, oldVersion, type, dir } of versionsToUpdate) {
for (const { name, version, oldVersion, type, dir } of versionsToUpdate) {
let depCurrentVersion = deps[name];

@@ -82,3 +82,3 @@ if (

(bumpVersionsWithWorkspaceProtocolOnly ||
validRange(depCurrentVersion) === null)
validRange(depCurrentVersion) == null)
) {

@@ -97,3 +97,3 @@ continue;

workspaceDepVersion === "~" ||
validRange(workspaceDepVersion) === null
validRange(workspaceDepVersion) == null
) {

@@ -112,3 +112,3 @@ continue;

// leaving those as is would leave the package in a non-installable state (wrong dep versions would get installed)
semverPrerelease(version) !== null
semverPrerelease(version) != null
) {

@@ -115,0 +115,0 @@ let newNewRange = snapshot

// We are doing it here to avoide adding a circular dependency and as this is only used in testing.
// This is wicked, and please don't copy us.
// eslint-disable-next-line import/no-extraneous-dependencies
export { default } from "@changesets/cli/changelog";
// We are doing it here to avoide adding a circular dependency and as this is only used in testing.
// This is wicked, and please don't copy us.
// eslint-disable-next-line import/no-extraneous-dependencies
export { default } from "@changesets/cli/commit";

Sorry, the diff of this file is too big to display