@exadev/semantic-release-workspace 1.3.5 → 1.3.7

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.cts CHANGED
@@ -7,12 +7,14 @@ export declare const packageName = "@exadev/semantic-release-workspace";
7
7
  /**
8
8
  * The manifest fields that can name a workspace sibling.
9
9
  *
10
- * All four contribute edges to the release order: whatever field a dependency sits in, the sibling has to have released before the dependent's manifest can name its new version. All four also contribute to the decision to release a dependent (see `releaseWorkspace`), because pnpm rewrites `workspace:` ranges in every one of them at pack time -- a `devDependencies` entry is part of the published artifact even though consumers never install it.
10
+ * All four contribute edges to the release order: whatever field a dependency sits in, the sibling has to have released before the dependent's manifest can name its new version. All four also contribute to the decision to release a dependent (see `releaseWorkspace`).
11
11
  */
12
12
  type DependencyField = 'dependencies' | 'devDependencies' | 'peerDependencies' | 'optionalDependencies';
13
13
  interface PackageManifest {
14
14
  readonly name: string;
15
15
  readonly version: string;
16
+ /** Whether the manifest sets `private` to the boolean `true`, the one value `@semantic-release/npm` treats as "never publish this package". */
17
+ readonly private: boolean;
16
18
  /** Only the fields actually present in the file, each mapping dependency name to its declared range. */
17
19
  readonly dependencies: ReadonlyMap<DependencyField, ReadonlyMap<string, string>>;
18
20
  }
@@ -28,6 +30,8 @@ export declare function writeDependencyRange(path: string, field: DependencyFiel
28
30
  interface WorkspacePackage {
29
31
  readonly name: string;
30
32
  readonly version: string;
33
+ /** Whether the package is marked `private`, which means it is never published to npm. */
34
+ readonly private: boolean;
31
35
  /** Absolute path to the package directory. */
32
36
  readonly directory: string;
33
37
  /** Path relative to the workspace root, always POSIX-separated. Used for filesystem and git-pathspec purposes scoped to the workspace itself (for example `git add` run with the workspace root as `cwd`) -- never for matching against `git log` output, which `git` always reports relative to the repository's toplevel, not to whatever `cwd` a command happened to run from. Compare `repoRelativeDirectory` for that. */
@@ -87,7 +91,7 @@ export declare function topologicalOrder(graph: DependencyGraph): readonly strin
87
91
  /**
88
92
  * What happens to one dependency range when the sibling it points at releases a new version.
89
93
  *
90
- * The distinction between `rewritten` and `resolved-at-publish` matters for the manifest, not for the release decision: both mean the dependent's *published* dependency range changes, and therefore that the dependent needs a release of its own for that change to reach consumers. Only `wildcard` leaves the published artifact genuinely identical.
94
+ * The distinction between `rewritten` and `resolved-at-publish` matters for the manifest, not for the release decision: both make the dependent release in its own right, so it always follows a sibling it depends on. Only `wildcard` leaves the dependent entirely unaffected.
91
95
  */
92
96
  type DependencyRangeUpdate =
93
97
  /** The range names a concrete version that has to be rewritten in the manifest. */
@@ -95,7 +99,7 @@ type DependencyRangeUpdate =
95
99
  readonly kind: 'rewritten';
96
100
  readonly range: string;
97
101
  } |
98
- /** A bare `workspace:*`, `workspace:^`, or `workspace:~` range: pnpm substitutes the sibling's current version at pack time, so the manifest on disk needs no edit even though the published range does change. */
102
+ /** A bare `workspace:*`, `workspace:^`, or `workspace:~` range: it names no version, so the manifest on disk needs no edit. Only a private package or a `devDependencies` entry can carry one and still be released (see `assertPublishableDependencies`), because `npm publish` ships the specifier unchanged. */
99
103
  {
100
104
  readonly kind: 'resolved-at-publish';
101
105
  } |
@@ -128,7 +132,7 @@ export declare function updateDependencyRange(current: string, version: string):
128
132
  //#endregion
129
133
  //#region src/plugins.d.ts
130
134
  /**
131
- * One workspace dependency range that changed because its package released a new version during this run. `rewritten` means the dependent's manifest was edited on disk; `resolved-at-publish` means a `workspace:^`-style range whose on-disk text is unchanged but whose published value pnpm re-resolves at pack time. Both change the dependent's published artifact, which is why both count towards its release.
135
+ * One workspace dependency range that changed because its package released a new version during this run. `rewritten` means the dependent's manifest was edited on disk; `resolved-at-publish` means a bare `workspace:^`-style range whose on-disk text is unchanged. Both count towards the dependent's release.
132
136
  */
133
137
  interface DependencyBump {
134
138
  readonly dependency: string;
@@ -139,13 +143,13 @@ interface DependencyBump {
139
143
  }
140
144
  /** What the scoped plugins need to know about bumps recorded so far in the run, for the package they are about to analyse. */
141
145
  interface DependencyBumpSource {
142
- bumpsFor(dependent: string): readonly DependencyBump[];
146
+ bumpsFor: (dependent: string) => readonly DependencyBump[];
143
147
  }
144
148
  /** A publish-pipeline plugin entry as the orchestrator accepts it: a module name, optionally with a config object. */
145
149
  type PublishPluginSpec = string | readonly [string] | readonly [string, Record<string, unknown>];
146
150
  /** The standard publish pipeline this orchestrator coordinates when a workspace configures none of its own. Every entry reuses the corresponding official plugin -- the orchestrator scopes and sequences them per package, it does not reimplement npm publishing, GitHub release creation, or changelog writing. */
147
151
  export declare const DEFAULT_PUBLISH_PLUGINS: readonly PublishPluginSpec[];
148
- /** The standard publish pipeline for `commitStrategy: 'single'`: the same as `DEFAULT_PUBLISH_PLUGINS` minus @semantic-release/git, which that mode never runs -- see `resolvePublishPlugins`'s `forbidGitPlugin` option for why it is rejected outright rather than merely unused. Single-commit mode does its own committing (one combined commit for every released package), so a `prepare`-step git plugin here would create the very per-package commits that mode exists to avoid. */
152
+ /** The standard publish pipeline for `commitStrategy: 'single'`: the same as `DEFAULT_PUBLISH_PLUGINS` minus `@semantic-release/git`, which that mode never runs -- see `resolvePublishPlugins`'s `forbidGitPlugin` option for why it is rejected outright rather than merely unused. Single-commit mode does its own committing (one combined commit for every released package), so a `prepare`-step git plugin here would create the very per-package commits that mode exists to avoid. */
149
153
  export declare const SINGLE_COMMIT_DEFAULT_PUBLISH_PLUGINS: readonly PublishPluginSpec[];
150
154
  interface ScopedPlugins {
151
155
  readonly analyzeCommits: (pluginConfig: Record<string, unknown>, context: AnalyzeCommitsContext & {
@@ -158,7 +162,7 @@ interface ScopedPlugins {
158
162
  /**
159
163
  * Builds the per-package `analyzeCommits` and `generateNotes` functions handed to semantic-release as inline plugins.
160
164
  *
161
- * Both apply the same path scoping before delegating to the real @semantic-release/commit-analyzer and @semantic-release/release-notes-generator: the commit list semantic-release already fetched for the release range is filtered down to commits whose `git log --name-only` file list intersects the package's own directory, and only the filtered list reaches the standard plugin. Conventional-commit parsing and changelog formatting stay entirely inside the standard plugins.
165
+ * Both apply the same path scoping before delegating to the real `@semantic-release/commit-analyzer` and `@semantic-release/release-notes-generator`: the commit list semantic-release already fetched for the release range is filtered down to commits whose `git log --name-only` file list intersects the package's own directory, and only the filtered list reaches the standard plugin. Conventional-commit parsing and changelog formatting stay entirely inside the standard plugins.
162
166
  *
163
167
  * The `analyzeCommits` wrapper carries one addition beyond filtering: when the standard analyzer finds no releasable commits but a workspace dependency range of the package's has changed, it returns 'patch' anyway. A dependent whose only change is a dependency bump still needs a release for that range to reach the registry. "Has changed" is read from two sources, merged: bumps recorded in memory earlier in the current run (`scope.bumps`), and bumps recorded in the package's own filtered commit history via the trailer `dependency-bump-commit.ts` writes and reads -- the latter is what lets a run that starts after a previous run already committed and pushed the bump (a crash recovery, or simply a later run) reach the same decision, rather than depending on state that existed only inside the process that made the commit.
164
168
  */
@@ -226,11 +230,11 @@ interface ReleaseWorkspaceOptions {
226
230
  readonly dryRun?: boolean;
227
231
  /** Release branch configuration for semantic-release. Defaults to semantic-release's own default branch list. */
228
232
  readonly branches?: readonly BranchSpec[];
229
- /** Publish-pipeline plugins (changelog, npm, GitHub, git), each scoped per package by semantic-release's own `cwd`. Defaults to the standard pipeline in DEFAULT_PUBLISH_PLUGINS for `commitStrategy: 'per-package'`, or SINGLE_COMMIT_DEFAULT_PUBLISH_PLUGINS (the same list minus @semantic-release/git) for `commitStrategy: 'single'`. */
233
+ /** Publish-pipeline plugins (changelog, npm, GitHub, git), each scoped per package by semantic-release's own `cwd`. Defaults to the standard pipeline in DEFAULT_PUBLISH_PLUGINS for `commitStrategy: 'per-package'`, or SINGLE_COMMIT_DEFAULT_PUBLISH_PLUGINS (the same list minus `@semantic-release/git`) for `commitStrategy: 'single'`. */
230
234
  readonly plugins?: readonly PublishPluginSpec[];
231
- /** Options for the wrapped @semantic-release/commit-analyzer, applied per package after path filtering. */
235
+ /** Options for the wrapped `@semantic-release/commit-analyzer`, applied per package after path filtering. */
232
236
  readonly analyzeCommits?: Record<string, unknown>;
233
- /** Options for the wrapped @semantic-release/release-notes-generator, applied per package after path filtering. */
237
+ /** Options for the wrapped `@semantic-release/release-notes-generator`, applied per package after path filtering. */
234
238
  readonly generateNotes?: Record<string, unknown>;
235
239
  /** Progress sink for the orchestrator's own narration (semantic-release logs its own detail). Defaults to `console.log`. */
236
240
  readonly log?: (message: string) => void;
@@ -247,17 +251,22 @@ interface AppliedDependencyBump extends DependencyBump {
247
251
  /** Which manifest field held the range that was rewritten. */
248
252
  readonly field: DependencyField;
249
253
  }
250
- interface PackageReleaseOutcome {
254
+ type PackageReleaseOutcome = {
251
255
  readonly name: string;
252
256
  readonly directory: string;
253
- readonly released: boolean;
254
- readonly version: string | undefined;
255
- readonly gitTag: string | undefined;
256
- /** The semantic-release release type ('minor', 'patch', ...), including the forced 'patch' of a dependency-bump-only release. */
257
- readonly type: string | undefined;
258
257
  /** Dependency ranges rewritten in this package's own manifest because a workspace dependency released earlier in the run. */
259
258
  readonly dependencyBumps: readonly AppliedDependencyBump[];
260
- }
259
+ } & ({
260
+ readonly released: true;
261
+ readonly version: string;
262
+ readonly gitTag: string;
263
+ readonly type: string;
264
+ } | {
265
+ readonly released: false;
266
+ readonly version?: undefined;
267
+ readonly gitTag?: undefined;
268
+ readonly type?: undefined;
269
+ });
261
270
  interface WorkspaceReleaseOutcome {
262
271
  /** The topological order the packages were released in. */
263
272
  readonly order: readonly string[];
@@ -289,7 +298,7 @@ export declare class DependencyCycleError extends WorkspaceReleaseError {
289
298
  readonly cycle: readonly string[];
290
299
  constructor(cycle: readonly string[]);
291
300
  }
292
- /** A dependency on a workspace sibling uses a range this tool cannot rewrite with confidence. Rewriting it wrongly, or leaving it silently stale, both produce a published manifest that disagrees with the repository, so the run stops instead. */
301
+ /** A dependency range this tool cannot release correctly: either a range on a workspace sibling that it cannot rewrite with confidence (rewriting it wrongly, or leaving it silently stale, produces a published manifest that disagrees with the repository), or a `workspace:`, `catalog:`, `link:`, or `file:` specifier in a publishable package's published dependencies, which `npm publish` ships verbatim and no consumer can install. The run stops instead. */
293
302
  export declare class UnsupportedDependencyRangeError extends WorkspaceReleaseError {}
294
303
  /** The semantic-release options handed to the orchestrator cannot be scoped to a single package -- typically a publish plugin list that would leave a release commit or a cross-package manifest bump uncommitted. */
295
304
  export declare class ReleaseConfigurationError extends WorkspaceReleaseError {}
package/dist/index.d.ts CHANGED
@@ -7,12 +7,14 @@ export declare const packageName = "@exadev/semantic-release-workspace";
7
7
  /**
8
8
  * The manifest fields that can name a workspace sibling.
9
9
  *
10
- * All four contribute edges to the release order: whatever field a dependency sits in, the sibling has to have released before the dependent's manifest can name its new version. All four also contribute to the decision to release a dependent (see `releaseWorkspace`), because pnpm rewrites `workspace:` ranges in every one of them at pack time -- a `devDependencies` entry is part of the published artifact even though consumers never install it.
10
+ * All four contribute edges to the release order: whatever field a dependency sits in, the sibling has to have released before the dependent's manifest can name its new version. All four also contribute to the decision to release a dependent (see `releaseWorkspace`).
11
11
  */
12
12
  type DependencyField = 'dependencies' | 'devDependencies' | 'peerDependencies' | 'optionalDependencies';
13
13
  interface PackageManifest {
14
14
  readonly name: string;
15
15
  readonly version: string;
16
+ /** Whether the manifest sets `private` to the boolean `true`, the one value `@semantic-release/npm` treats as "never publish this package". */
17
+ readonly private: boolean;
16
18
  /** Only the fields actually present in the file, each mapping dependency name to its declared range. */
17
19
  readonly dependencies: ReadonlyMap<DependencyField, ReadonlyMap<string, string>>;
18
20
  }
@@ -28,6 +30,8 @@ export declare function writeDependencyRange(path: string, field: DependencyFiel
28
30
  interface WorkspacePackage {
29
31
  readonly name: string;
30
32
  readonly version: string;
33
+ /** Whether the package is marked `private`, which means it is never published to npm. */
34
+ readonly private: boolean;
31
35
  /** Absolute path to the package directory. */
32
36
  readonly directory: string;
33
37
  /** Path relative to the workspace root, always POSIX-separated. Used for filesystem and git-pathspec purposes scoped to the workspace itself (for example `git add` run with the workspace root as `cwd`) -- never for matching against `git log` output, which `git` always reports relative to the repository's toplevel, not to whatever `cwd` a command happened to run from. Compare `repoRelativeDirectory` for that. */
@@ -87,7 +91,7 @@ export declare function topologicalOrder(graph: DependencyGraph): readonly strin
87
91
  /**
88
92
  * What happens to one dependency range when the sibling it points at releases a new version.
89
93
  *
90
- * The distinction between `rewritten` and `resolved-at-publish` matters for the manifest, not for the release decision: both mean the dependent's *published* dependency range changes, and therefore that the dependent needs a release of its own for that change to reach consumers. Only `wildcard` leaves the published artifact genuinely identical.
94
+ * The distinction between `rewritten` and `resolved-at-publish` matters for the manifest, not for the release decision: both make the dependent release in its own right, so it always follows a sibling it depends on. Only `wildcard` leaves the dependent entirely unaffected.
91
95
  */
92
96
  type DependencyRangeUpdate =
93
97
  /** The range names a concrete version that has to be rewritten in the manifest. */
@@ -95,7 +99,7 @@ type DependencyRangeUpdate =
95
99
  readonly kind: 'rewritten';
96
100
  readonly range: string;
97
101
  } |
98
- /** A bare `workspace:*`, `workspace:^`, or `workspace:~` range: pnpm substitutes the sibling's current version at pack time, so the manifest on disk needs no edit even though the published range does change. */
102
+ /** A bare `workspace:*`, `workspace:^`, or `workspace:~` range: it names no version, so the manifest on disk needs no edit. Only a private package or a `devDependencies` entry can carry one and still be released (see `assertPublishableDependencies`), because `npm publish` ships the specifier unchanged. */
99
103
  {
100
104
  readonly kind: 'resolved-at-publish';
101
105
  } |
@@ -128,7 +132,7 @@ export declare function updateDependencyRange(current: string, version: string):
128
132
  //#endregion
129
133
  //#region src/plugins.d.ts
130
134
  /**
131
- * One workspace dependency range that changed because its package released a new version during this run. `rewritten` means the dependent's manifest was edited on disk; `resolved-at-publish` means a `workspace:^`-style range whose on-disk text is unchanged but whose published value pnpm re-resolves at pack time. Both change the dependent's published artifact, which is why both count towards its release.
135
+ * One workspace dependency range that changed because its package released a new version during this run. `rewritten` means the dependent's manifest was edited on disk; `resolved-at-publish` means a bare `workspace:^`-style range whose on-disk text is unchanged. Both count towards the dependent's release.
132
136
  */
133
137
  interface DependencyBump {
134
138
  readonly dependency: string;
@@ -139,13 +143,13 @@ interface DependencyBump {
139
143
  }
140
144
  /** What the scoped plugins need to know about bumps recorded so far in the run, for the package they are about to analyse. */
141
145
  interface DependencyBumpSource {
142
- bumpsFor(dependent: string): readonly DependencyBump[];
146
+ bumpsFor: (dependent: string) => readonly DependencyBump[];
143
147
  }
144
148
  /** A publish-pipeline plugin entry as the orchestrator accepts it: a module name, optionally with a config object. */
145
149
  type PublishPluginSpec = string | readonly [string] | readonly [string, Record<string, unknown>];
146
150
  /** The standard publish pipeline this orchestrator coordinates when a workspace configures none of its own. Every entry reuses the corresponding official plugin -- the orchestrator scopes and sequences them per package, it does not reimplement npm publishing, GitHub release creation, or changelog writing. */
147
151
  export declare const DEFAULT_PUBLISH_PLUGINS: readonly PublishPluginSpec[];
148
- /** The standard publish pipeline for `commitStrategy: 'single'`: the same as `DEFAULT_PUBLISH_PLUGINS` minus @semantic-release/git, which that mode never runs -- see `resolvePublishPlugins`'s `forbidGitPlugin` option for why it is rejected outright rather than merely unused. Single-commit mode does its own committing (one combined commit for every released package), so a `prepare`-step git plugin here would create the very per-package commits that mode exists to avoid. */
152
+ /** The standard publish pipeline for `commitStrategy: 'single'`: the same as `DEFAULT_PUBLISH_PLUGINS` minus `@semantic-release/git`, which that mode never runs -- see `resolvePublishPlugins`'s `forbidGitPlugin` option for why it is rejected outright rather than merely unused. Single-commit mode does its own committing (one combined commit for every released package), so a `prepare`-step git plugin here would create the very per-package commits that mode exists to avoid. */
149
153
  export declare const SINGLE_COMMIT_DEFAULT_PUBLISH_PLUGINS: readonly PublishPluginSpec[];
150
154
  interface ScopedPlugins {
151
155
  readonly analyzeCommits: (pluginConfig: Record<string, unknown>, context: AnalyzeCommitsContext & {
@@ -158,7 +162,7 @@ interface ScopedPlugins {
158
162
  /**
159
163
  * Builds the per-package `analyzeCommits` and `generateNotes` functions handed to semantic-release as inline plugins.
160
164
  *
161
- * Both apply the same path scoping before delegating to the real @semantic-release/commit-analyzer and @semantic-release/release-notes-generator: the commit list semantic-release already fetched for the release range is filtered down to commits whose `git log --name-only` file list intersects the package's own directory, and only the filtered list reaches the standard plugin. Conventional-commit parsing and changelog formatting stay entirely inside the standard plugins.
165
+ * Both apply the same path scoping before delegating to the real `@semantic-release/commit-analyzer` and `@semantic-release/release-notes-generator`: the commit list semantic-release already fetched for the release range is filtered down to commits whose `git log --name-only` file list intersects the package's own directory, and only the filtered list reaches the standard plugin. Conventional-commit parsing and changelog formatting stay entirely inside the standard plugins.
162
166
  *
163
167
  * The `analyzeCommits` wrapper carries one addition beyond filtering: when the standard analyzer finds no releasable commits but a workspace dependency range of the package's has changed, it returns 'patch' anyway. A dependent whose only change is a dependency bump still needs a release for that range to reach the registry. "Has changed" is read from two sources, merged: bumps recorded in memory earlier in the current run (`scope.bumps`), and bumps recorded in the package's own filtered commit history via the trailer `dependency-bump-commit.ts` writes and reads -- the latter is what lets a run that starts after a previous run already committed and pushed the bump (a crash recovery, or simply a later run) reach the same decision, rather than depending on state that existed only inside the process that made the commit.
164
168
  */
@@ -226,11 +230,11 @@ interface ReleaseWorkspaceOptions {
226
230
  readonly dryRun?: boolean;
227
231
  /** Release branch configuration for semantic-release. Defaults to semantic-release's own default branch list. */
228
232
  readonly branches?: readonly BranchSpec[];
229
- /** Publish-pipeline plugins (changelog, npm, GitHub, git), each scoped per package by semantic-release's own `cwd`. Defaults to the standard pipeline in DEFAULT_PUBLISH_PLUGINS for `commitStrategy: 'per-package'`, or SINGLE_COMMIT_DEFAULT_PUBLISH_PLUGINS (the same list minus @semantic-release/git) for `commitStrategy: 'single'`. */
233
+ /** Publish-pipeline plugins (changelog, npm, GitHub, git), each scoped per package by semantic-release's own `cwd`. Defaults to the standard pipeline in DEFAULT_PUBLISH_PLUGINS for `commitStrategy: 'per-package'`, or SINGLE_COMMIT_DEFAULT_PUBLISH_PLUGINS (the same list minus `@semantic-release/git`) for `commitStrategy: 'single'`. */
230
234
  readonly plugins?: readonly PublishPluginSpec[];
231
- /** Options for the wrapped @semantic-release/commit-analyzer, applied per package after path filtering. */
235
+ /** Options for the wrapped `@semantic-release/commit-analyzer`, applied per package after path filtering. */
232
236
  readonly analyzeCommits?: Record<string, unknown>;
233
- /** Options for the wrapped @semantic-release/release-notes-generator, applied per package after path filtering. */
237
+ /** Options for the wrapped `@semantic-release/release-notes-generator`, applied per package after path filtering. */
234
238
  readonly generateNotes?: Record<string, unknown>;
235
239
  /** Progress sink for the orchestrator's own narration (semantic-release logs its own detail). Defaults to `console.log`. */
236
240
  readonly log?: (message: string) => void;
@@ -247,17 +251,22 @@ interface AppliedDependencyBump extends DependencyBump {
247
251
  /** Which manifest field held the range that was rewritten. */
248
252
  readonly field: DependencyField;
249
253
  }
250
- interface PackageReleaseOutcome {
254
+ type PackageReleaseOutcome = {
251
255
  readonly name: string;
252
256
  readonly directory: string;
253
- readonly released: boolean;
254
- readonly version: string | undefined;
255
- readonly gitTag: string | undefined;
256
- /** The semantic-release release type ('minor', 'patch', ...), including the forced 'patch' of a dependency-bump-only release. */
257
- readonly type: string | undefined;
258
257
  /** Dependency ranges rewritten in this package's own manifest because a workspace dependency released earlier in the run. */
259
258
  readonly dependencyBumps: readonly AppliedDependencyBump[];
260
- }
259
+ } & ({
260
+ readonly released: true;
261
+ readonly version: string;
262
+ readonly gitTag: string;
263
+ readonly type: string;
264
+ } | {
265
+ readonly released: false;
266
+ readonly version?: undefined;
267
+ readonly gitTag?: undefined;
268
+ readonly type?: undefined;
269
+ });
261
270
  interface WorkspaceReleaseOutcome {
262
271
  /** The topological order the packages were released in. */
263
272
  readonly order: readonly string[];
@@ -289,7 +298,7 @@ export declare class DependencyCycleError extends WorkspaceReleaseError {
289
298
  readonly cycle: readonly string[];
290
299
  constructor(cycle: readonly string[]);
291
300
  }
292
- /** A dependency on a workspace sibling uses a range this tool cannot rewrite with confidence. Rewriting it wrongly, or leaving it silently stale, both produce a published manifest that disagrees with the repository, so the run stops instead. */
301
+ /** A dependency range this tool cannot release correctly: either a range on a workspace sibling that it cannot rewrite with confidence (rewriting it wrongly, or leaving it silently stale, produces a published manifest that disagrees with the repository), or a `workspace:`, `catalog:`, `link:`, or `file:` specifier in a publishable package's published dependencies, which `npm publish` ships verbatim and no consumer can install. The run stops instead. */
293
302
  export declare class UnsupportedDependencyRangeError extends WorkspaceReleaseError {}
294
303
  /** The semantic-release options handed to the orchestrator cannot be scoped to a single package -- typically a publish plugin list that would leave a release commit or a cross-package manifest bump uncommitted. */
295
304
  export declare class ReleaseConfigurationError extends WorkspaceReleaseError {}