release-monorepo-semantically 1.6.0 → 1.6.2

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 (83) hide show
  1. package/README.md +126 -0
  2. package/dist/MonorepoController.d.ts +1 -0
  3. package/dist/MonorepoController.d.ts.map +1 -1
  4. package/dist/MonorepoController.js +14 -0
  5. package/dist/MonorepoController.js.map +1 -1
  6. package/dist/MonorepoController.spec.js +22 -0
  7. package/dist/MonorepoController.spec.js.map +1 -1
  8. package/dist/exceptions/DomainException.d.ts +20 -0
  9. package/dist/exceptions/DomainException.d.ts.map +1 -0
  10. package/dist/exceptions/DomainException.js +43 -0
  11. package/dist/exceptions/DomainException.js.map +1 -0
  12. package/dist/index.js +3 -3
  13. package/dist/index.js.map +1 -1
  14. package/dist/main.spec.js +3 -3
  15. package/dist/main.spec.js.map +1 -1
  16. package/dist/models/NpmPackage.d.ts.map +1 -1
  17. package/dist/models/NpmPackage.js +2 -1
  18. package/dist/models/NpmPackage.js.map +1 -1
  19. package/dist/plugins/ChangelogPlugin.d.ts +1 -1
  20. package/dist/plugins/ChangelogPlugin.d.ts.map +1 -1
  21. package/dist/plugins/ChangelogPlugin.js +5 -1
  22. package/dist/plugins/ChangelogPlugin.js.map +1 -1
  23. package/dist/plugins/ChangelogPlugin.spec.d.ts +2 -0
  24. package/dist/plugins/ChangelogPlugin.spec.d.ts.map +1 -0
  25. package/dist/plugins/ChangelogPlugin.spec.js +106 -0
  26. package/dist/plugins/ChangelogPlugin.spec.js.map +1 -0
  27. package/dist/plugins/GitPlugin.d.ts.map +1 -1
  28. package/dist/plugins/GitPlugin.js +1 -0
  29. package/dist/plugins/GitPlugin.js.map +1 -1
  30. package/dist/plugins/GitPlugin.spec.d.ts +2 -0
  31. package/dist/plugins/GitPlugin.spec.d.ts.map +1 -0
  32. package/dist/plugins/GitPlugin.spec.js +92 -0
  33. package/dist/plugins/GitPlugin.spec.js.map +1 -0
  34. package/dist/plugins/GithubPlugin.d.ts.map +1 -1
  35. package/dist/plugins/GithubPlugin.js +7 -2
  36. package/dist/plugins/GithubPlugin.js.map +1 -1
  37. package/dist/plugins/GithubPlugin.spec.js +1 -0
  38. package/dist/plugins/GithubPlugin.spec.js.map +1 -1
  39. package/dist/plugins/NpmPlugin.d.ts +1 -1
  40. package/dist/plugins/NpmPlugin.d.ts.map +1 -1
  41. package/dist/plugins/NpmPlugin.js +10 -2
  42. package/dist/plugins/NpmPlugin.js.map +1 -1
  43. package/dist/plugins/NpmPlugin.spec.d.ts +2 -0
  44. package/dist/plugins/NpmPlugin.spec.d.ts.map +1 -0
  45. package/dist/plugins/NpmPlugin.spec.js +101 -0
  46. package/dist/plugins/NpmPlugin.spec.js.map +1 -0
  47. package/dist/plugins/PackageJsonPlugin.d.ts +1 -1
  48. package/dist/plugins/PackageJsonPlugin.d.ts.map +1 -1
  49. package/dist/plugins/PackageJsonPlugin.js +5 -1
  50. package/dist/plugins/PackageJsonPlugin.js.map +1 -1
  51. package/dist/plugins/PackageJsonPlugin.spec.js +27 -0
  52. package/dist/plugins/PackageJsonPlugin.spec.js.map +1 -1
  53. package/dist/services/ExceptionHandler.d.ts +4 -0
  54. package/dist/services/ExceptionHandler.d.ts.map +1 -0
  55. package/dist/services/ExceptionHandler.js +15 -0
  56. package/dist/services/ExceptionHandler.js.map +1 -0
  57. package/dist/services/ExceptionHandler.spec.d.ts +2 -0
  58. package/dist/services/ExceptionHandler.spec.d.ts.map +1 -0
  59. package/dist/services/ExceptionHandler.spec.js +21 -0
  60. package/dist/services/ExceptionHandler.spec.js.map +1 -0
  61. package/dist/services/GitService.d.ts +1 -0
  62. package/dist/services/GitService.d.ts.map +1 -1
  63. package/dist/services/GitService.js +4 -0
  64. package/dist/services/GitService.js.map +1 -1
  65. package/dist/services/GitService.spec.js +8 -0
  66. package/dist/services/GitService.spec.js.map +1 -1
  67. package/dist/services/HandlebarsRenderService.d.ts.map +1 -1
  68. package/dist/services/HandlebarsRenderService.js +3 -2
  69. package/dist/services/HandlebarsRenderService.js.map +1 -1
  70. package/dist/services/ReleaseCommitView.spec.d.ts +2 -0
  71. package/dist/services/ReleaseCommitView.spec.d.ts.map +1 -0
  72. package/dist/services/ReleaseCommitView.spec.js +35 -0
  73. package/dist/services/ReleaseCommitView.spec.js.map +1 -0
  74. package/package.json +2 -1
  75. package/templates/changelog.hbs +5 -5
  76. package/dist/plugins/ReleasePlugin.spec.d.ts +0 -2
  77. package/dist/plugins/ReleasePlugin.spec.d.ts.map +0 -1
  78. package/dist/plugins/ReleasePlugin.spec.js +0 -108
  79. package/dist/plugins/ReleasePlugin.spec.js.map +0 -1
  80. package/dist/services/ErrorHandler.d.ts +0 -4
  81. package/dist/services/ErrorHandler.d.ts.map +0 -1
  82. package/dist/services/ErrorHandler.js +0 -10
  83. package/dist/services/ErrorHandler.js.map +0 -1
package/README.md ADDED
@@ -0,0 +1,126 @@
1
+ # monorepo-semantic-release
2
+
3
+ CLI for semantic versioning and release automation in `pnpm` monorepos.
4
+
5
+ It discovers workspace packages, analyzes conventional commits per package scope, bumps versions in dependency order, updates internal dependency versions, generates changelogs, creates a release commit and tags, optionally creates GitHub Releases, and publishes to npm.
6
+
7
+ ## Requirements
8
+
9
+ - Node.js: `>=22 <23`
10
+ - pnpm: `10.20.0`
11
+ - Git repository with conventional commits
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ pnpm add -D release-monorepo-semantically
17
+ ```
18
+
19
+ Run from your monorepo root:
20
+
21
+ ```bash
22
+ pnpm monorepo-semantic-release
23
+ ```
24
+
25
+ ## Commit conventions
26
+
27
+ Release-triggering commits:
28
+
29
+ - `feat(scope): ...` -> `minor`
30
+ - `fix(scope): ...` -> `patch`
31
+ - `perf(scope): ...` -> `patch`
32
+ - `BREAKING CHANGE` or `!` -> `major`
33
+
34
+ Non-release types: `docs`, `test`, `ci`, `chore`, `refactor`, `style`.
35
+
36
+ Package scope is matched by package name.
37
+
38
+ ## Release flow
39
+
40
+ 1. Discover workspace packages from root `package.json` workspaces.
41
+ 2. Exclude private packages.
42
+ 3. Sort packages so dependencies are processed first.
43
+ 4. Read commits since `<package-name>@<version>` tag.
44
+ 5. Compute bump type (`major > minor > patch > none`).
45
+ 6. Update package versions and internal dependency versions.
46
+ 7. Render changelog entries.
47
+ 8. Create one release commit and per-package tags.
48
+ 9. Push commit/tags (unless disabled).
49
+ 10. Create GitHub Releases (if configured).
50
+ 11. Publish released packages (unless disabled).
51
+
52
+ ## CLI options
53
+
54
+ ```bash
55
+ monorepo-semantic-release [options]
56
+
57
+ Options:
58
+ --dry-run Preview changes without mutating files/git/publish
59
+ --no-push Skip git push
60
+ --no-publish Skip npm publish
61
+ --changelog-template <path> Override changelog template
62
+ --release-commit-template <path> Override release commit template
63
+ -h, --help Show help
64
+ ```
65
+
66
+ ## Template overrides
67
+
68
+ You can override templates via CLI options or root `package.json`:
69
+
70
+ ```json
71
+ {
72
+ "releaseTemplates": {
73
+ "changelogTemplate": "templates/changelog.hbs",
74
+ "releaseCommitTemplate": "templates/release-commit-msg.hbs"
75
+ }
76
+ }
77
+ ```
78
+
79
+ Built-in templates:
80
+
81
+ - `templates/changelog.hbs`
82
+ - `templates/release-commit-msg.hbs`
83
+ - `templates/github-release-notes.hbs`
84
+
85
+ ## GitHub Releases
86
+
87
+ GitHub release creation runs only when all conditions are met:
88
+
89
+ - `GITHUB_ACTIONS=true`
90
+ - `GITHUB_REPOSITORY` is set (for example `owner/repo`)
91
+ - `GITHUB_TOKEN` is set
92
+ - `gh` CLI is available
93
+ - not `--dry-run`
94
+ - not `--no-push`
95
+
96
+ Each released package creates a release:
97
+
98
+ - tag: `<package-name>@<version>`
99
+ - title: `<package-name> v<version>`
100
+ - notes rendered from `templates/github-release-notes.hbs`
101
+
102
+ ## Plugin architecture
103
+
104
+ Release lifecycle is implemented by plugins:
105
+
106
+ - `PackageJsonPlugin`: updates internal dependency versions in `package.json`
107
+ - `ChangelogPlugin`: writes per-package changelog updates
108
+ - `GitPlugin`: creates release commit, tags, and push
109
+ - `GithubPlugin`: creates GitHub Releases
110
+ - `NpmPlugin`: bumps package version and publishes
111
+
112
+ ## Development
113
+
114
+ ```bash
115
+ pnpm install
116
+ pnpm run build
117
+ pnpm test
118
+ pnpm run test:e2e
119
+ pnpm run lint
120
+ ```
121
+
122
+ ## Notes
123
+
124
+ - Internal monorepo dependencies are written as exact versions.
125
+ - Tag format is fixed: `<package-name>@<version>`.
126
+ - In `--dry-run`, no files/git/releases/publish actions are performed.
@@ -14,6 +14,7 @@ export declare class MonorepoController {
14
14
  discoverPackages(monorepoPath: string): void;
15
15
  release(options?: ReleaseOptions): void;
16
16
  private logStep;
17
+ private ensureWritableReleaseState;
17
18
  }
18
19
  export {};
19
20
  //# sourceMappingURL=MonorepoController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MonorepoController.d.ts","sourceRoot":"","sources":["../src/MonorepoController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,KAAK,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC;AAEnF,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,iBAAiB,CAAoB;gBAG1B,OAAO,EAAE,aAAa,EAAE,EACjC,EAAE,EAAE,qBAAqB,EACzB,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,aAAa;IAG/B,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQ5C,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI;IAgD3C,OAAO,CAAC,OAAO;CAGhB"}
1
+ {"version":3,"file":"MonorepoController.d.ts","sourceRoot":"","sources":["../src/MonorepoController.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIxD,KAAK,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC;AAEnF,qBAAa,kBAAkB;IAI3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,iBAAiB,CAAoB;gBAG1B,OAAO,EAAE,aAAa,EAAE,EACjC,EAAE,EAAE,qBAAqB,EACzB,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,aAAa;IAG/B,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQ5C,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI;IAsD3C,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,0BAA0B;CASnC"}
@@ -4,6 +4,7 @@ exports.MonorepoController = void 0;
4
4
  const NpmPackage_1 = require("./models/NpmPackage");
5
5
  const SemVerBumpType_1 = require("./models/SemVerBumpType");
6
6
  const sortLessDependenciesFirst_1 = require("./sortLessDependenciesFirst");
7
+ const DomainException_1 = require("./exceptions/DomainException");
7
8
  class MonorepoController {
8
9
  plugins;
9
10
  fs;
@@ -25,6 +26,7 @@ class MonorepoController {
25
26
  const { dryRun = false, noPush = false, noPublish = false } = options;
26
27
  const releasedVersions = new Map();
27
28
  const releasedCommits = new Map();
29
+ let releaseStarted = false;
28
30
  for (const pkg of this.packageSortedList) {
29
31
  const pkgReleaseCommits = this.vsc.findManyCommitsSinceTag(pkg.getCommitTag()).filter((c) => c.matchesScope(pkg.name) && c.isReleaseTrigger());
30
32
  const dependencyUpdates = pkg.getDependencyUpdates(releasedVersions);
@@ -33,6 +35,10 @@ class MonorepoController {
33
35
  this.logStep('SKIP', `${pkg.name}@${pkg.version}`);
34
36
  continue;
35
37
  }
38
+ if (!releaseStarted) {
39
+ this.ensureWritableReleaseState(dryRun);
40
+ releaseStarted = true;
41
+ }
36
42
  const newVersion = pkg.getNewVersion(versionBump);
37
43
  releasedVersions.set(pkg.name, newVersion);
38
44
  releasedCommits.set(pkg.name, pkgReleaseCommits);
@@ -63,6 +69,14 @@ class MonorepoController {
63
69
  logStep(step, detail) {
64
70
  this.logger.info(`${step.padEnd(8)} ${detail}`);
65
71
  }
72
+ ensureWritableReleaseState(dryRun) {
73
+ if (dryRun) {
74
+ return;
75
+ }
76
+ if (!this.vsc.isWorkingTreeClean()) {
77
+ throw new DomainException_1.DirtyWorkingTreeException();
78
+ }
79
+ }
66
80
  }
67
81
  exports.MonorepoController = MonorepoController;
68
82
  //# sourceMappingURL=MonorepoController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MonorepoController.js","sourceRoot":"","sources":["../src/MonorepoController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MonorepoController.js","sourceRoot":"","sources":["../src/MonorepoController.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ const vitest_1 = require("vitest");
4
4
  const MonorepoController_1 = require("./MonorepoController");
5
5
  const NpmPackage_1 = require("./models/NpmPackage");
6
6
  const ConventionalCommit_1 = require("./models/ConventionalCommit");
7
+ const DomainException_1 = require("./exceptions/DomainException");
7
8
  (0, vitest_1.describe)('MonorepoController.discoverPackages', () => {
8
9
  (0, vitest_1.it)('given workspace package json files when packages are discovered then private packages are excluded', () => {
9
10
  const fs = {
@@ -28,6 +29,7 @@ const ConventionalCommit_1 = require("./models/ConventionalCommit");
28
29
  };
29
30
  const vsc = {
30
31
  findManyCommitsSinceTag: vitest_1.vi.fn().mockReturnValue([]),
32
+ isWorkingTreeClean: vitest_1.vi.fn().mockReturnValue(true),
31
33
  };
32
34
  const logger = {
33
35
  info: vitest_1.vi.fn(),
@@ -57,6 +59,7 @@ const ConventionalCommit_1 = require("./models/ConventionalCommit");
57
59
  findManyCommitsSinceTag: vitest_1.vi
58
60
  .fn()
59
61
  .mockImplementation((tag) => tag === 'pkg-a@1.0.0' ? [ConventionalCommit_1.ConventionalCommit.parse('feat(pkg-a): add feature')] : [ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-b): resolve bug')]),
62
+ isWorkingTreeClean: vitest_1.vi.fn().mockReturnValue(true),
60
63
  };
61
64
  const logger = {
62
65
  info: vitest_1.vi.fn(),
@@ -77,5 +80,24 @@ const ConventionalCommit_1 = require("./models/ConventionalCommit");
77
80
  (0, vitest_1.expect)(finalizeArg.releasedCommits.get('pkg-a')).toHaveLength(1);
78
81
  (0, vitest_1.expect)(finalizeArg.releasedCommits.get('pkg-b')).toHaveLength(1);
79
82
  });
83
+ (0, vitest_1.it)('given dirty working tree when a non-dry-run release starts then it fails before plugin hooks mutate state', () => {
84
+ const plugin = {
85
+ onPackageReleased: vitest_1.vi.fn(),
86
+ onReleaseComplete: vitest_1.vi.fn(),
87
+ };
88
+ const vsc = {
89
+ findManyCommitsSinceTag: vitest_1.vi.fn().mockReturnValue([ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-a): patch')]),
90
+ isWorkingTreeClean: vitest_1.vi.fn().mockReturnValue(false),
91
+ };
92
+ const logger = {
93
+ info: vitest_1.vi.fn(),
94
+ };
95
+ const controller = new MonorepoController_1.MonorepoController([plugin], {}, vsc, logger);
96
+ const pkg = NpmPackage_1.NpmPackage.createFromPackage({ name: 'pkg-a', version: '1.0.0' }, '/repo/packages/pkg-a/package.json');
97
+ controller.packageSortedList = [pkg];
98
+ (0, vitest_1.expect)(() => controller.release()).toThrow(DomainException_1.DirtyWorkingTreeException);
99
+ (0, vitest_1.expect)(plugin.onPackageReleased).not.toHaveBeenCalled();
100
+ (0, vitest_1.expect)(plugin.onReleaseComplete).not.toHaveBeenCalled();
101
+ });
80
102
  });
81
103
  //# sourceMappingURL=MonorepoController.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MonorepoController.spec.js","sourceRoot":"","sources":["../src/MonorepoController.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MonorepoController.spec.js","sourceRoot":"","sources":["../src/MonorepoController.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export declare abstract class DomainException extends Error {
2
+ readonly code: string;
3
+ protected constructor(code: string, message: string);
4
+ }
5
+ export declare class MissingDependencyVersionException extends DomainException {
6
+ constructor(packageName: string, dependencyName: string);
7
+ }
8
+ export declare class GithubCliUnavailableException extends DomainException {
9
+ constructor();
10
+ }
11
+ export declare class TemplateInvocationTargetException extends DomainException {
12
+ constructor(methodName: string);
13
+ }
14
+ export declare class TemplateMethodNotFunctionException extends DomainException {
15
+ constructor(methodName: string);
16
+ }
17
+ export declare class DirtyWorkingTreeException extends DomainException {
18
+ constructor();
19
+ }
20
+ //# sourceMappingURL=DomainException.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DomainException.d.ts","sourceRoot":"","sources":["../../src/exceptions/DomainException.ts"],"names":[],"mappings":"AAAA,8BAAsB,eAAgB,SAAQ,KAAK;IAE/C,QAAQ,CAAC,IAAI,EAAE,MAAM;IADvB,SAAS,aACE,IAAI,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKlB;AAED,qBAAa,iCAAkC,SAAQ,eAAe;gBACxD,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;CAGxD;AAED,qBAAa,6BAA8B,SAAQ,eAAe;;CAIjE;AAED,qBAAa,iCAAkC,SAAQ,eAAe;gBACxD,UAAU,EAAE,MAAM;CAG/B;AAED,qBAAa,kCAAmC,SAAQ,eAAe;gBACzD,UAAU,EAAE,MAAM;CAG/B;AAED,qBAAa,yBAA0B,SAAQ,eAAe;;CAI7D"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DirtyWorkingTreeException = exports.TemplateMethodNotFunctionException = exports.TemplateInvocationTargetException = exports.GithubCliUnavailableException = exports.MissingDependencyVersionException = exports.DomainException = void 0;
4
+ class DomainException extends Error {
5
+ code;
6
+ constructor(code, message) {
7
+ super(message);
8
+ this.code = code;
9
+ this.name = new.target.name;
10
+ }
11
+ }
12
+ exports.DomainException = DomainException;
13
+ class MissingDependencyVersionException extends DomainException {
14
+ constructor(packageName, dependencyName) {
15
+ super('MISSING_DEPENDENCY_VERSION', `Dependency ${dependencyName} not found in ${packageName}`);
16
+ }
17
+ }
18
+ exports.MissingDependencyVersionException = MissingDependencyVersionException;
19
+ class GithubCliUnavailableException extends DomainException {
20
+ constructor() {
21
+ super('GITHUB_CLI_UNAVAILABLE', 'GitHub release creation requires `gh` CLI when running in GitHub Actions');
22
+ }
23
+ }
24
+ exports.GithubCliUnavailableException = GithubCliUnavailableException;
25
+ class TemplateInvocationTargetException extends DomainException {
26
+ constructor(methodName) {
27
+ super('TEMPLATE_INVOCATION_TARGET_INVALID', `Cannot call method ${methodName} on non-object target`);
28
+ }
29
+ }
30
+ exports.TemplateInvocationTargetException = TemplateInvocationTargetException;
31
+ class TemplateMethodNotFunctionException extends DomainException {
32
+ constructor(methodName) {
33
+ super('TEMPLATE_METHOD_NOT_FUNCTION', `Method ${methodName} is not a function`);
34
+ }
35
+ }
36
+ exports.TemplateMethodNotFunctionException = TemplateMethodNotFunctionException;
37
+ class DirtyWorkingTreeException extends DomainException {
38
+ constructor() {
39
+ super('DIRTY_WORKING_TREE', 'Release requires a clean working tree (commit or stash local changes first)');
40
+ }
41
+ }
42
+ exports.DirtyWorkingTreeException = DirtyWorkingTreeException;
43
+ //# sourceMappingURL=DomainException.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DomainException.js","sourceRoot":"","sources":["../../src/exceptions/DomainException.ts"],"names":[],"mappings":";;;AAAA,MAAsB,eAAgB,SAAQ,KAAK;IAEtC;IADX,YACW,IAAY,EACrB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHN,SAAI,GAAJ,IAAI,CAAQ;QAIrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9B,CAAC;CACF;AARD,0CAQC;AAED,MAAa,iCAAkC,SAAQ,eAAe;IACpE,YAAY,WAAmB,EAAE,cAAsB;QACrD,KAAK,CAAC,4BAA4B,EAAE,cAAc,cAAc,iBAAiB,WAAW,EAAE,CAAC,CAAC;IAClG,CAAC;CACF;AAJD,8EAIC;AAED,MAAa,6BAA8B,SAAQ,eAAe;IAChE;QACE,KAAK,CAAC,wBAAwB,EAAE,0EAA0E,CAAC,CAAC;IAC9G,CAAC;CACF;AAJD,sEAIC;AAED,MAAa,iCAAkC,SAAQ,eAAe;IACpE,YAAY,UAAkB;QAC5B,KAAK,CAAC,oCAAoC,EAAE,sBAAsB,UAAU,uBAAuB,CAAC,CAAC;IACvG,CAAC;CACF;AAJD,8EAIC;AAED,MAAa,kCAAmC,SAAQ,eAAe;IACrE,YAAY,UAAkB;QAC5B,KAAK,CAAC,8BAA8B,EAAE,UAAU,UAAU,oBAAoB,CAAC,CAAC;IAClF,CAAC;CACF;AAJD,gFAIC;AAED,MAAa,yBAA0B,SAAQ,eAAe;IAC5D;QACE,KAAK,CAAC,oBAAoB,EAAE,6EAA6E,CAAC,CAAC;IAC7G,CAAC;CACF;AAJD,8DAIC"}
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ const HandlebarsRenderService_1 = require("./services/HandlebarsRenderService");
13
13
  const ReleaseCommitView_1 = require("./services/ReleaseCommitView");
14
14
  const PackageManager_1 = require("./services/PackageManager");
15
15
  const ConsoleLogger_1 = require("./services/ConsoleLogger");
16
- const ErrorHandler_1 = require("./services/ErrorHandler");
16
+ const ExceptionHandler_1 = require("./services/ExceptionHandler");
17
17
  const commander_1 = require("commander");
18
18
  const node_path_1 = __importDefault(require("node:path"));
19
19
  const ChangelogPlugin_1 = require("./plugins/ChangelogPlugin");
@@ -75,7 +75,7 @@ function runCli(cwd = process.cwd(), cliArgs = process.argv.slice(2)) {
75
75
  const cliOptions = parseCliOptions(cliArgs);
76
76
  const fsService = new NodeFileSystemService_1.NodeFileSystemService();
77
77
  const vcsService = new GitService_1.GitService();
78
- const errorHandler = new ErrorHandler_1.ErrorHandler();
78
+ const exceptionHandler = new ExceptionHandler_1.ExceptionHandler();
79
79
  if (cliOptions.help) {
80
80
  return 0;
81
81
  }
@@ -105,7 +105,7 @@ function runCli(cwd = process.cwd(), cliArgs = process.argv.slice(2)) {
105
105
  return 0;
106
106
  }
107
107
  catch (error) {
108
- errorHandler.handle(error);
108
+ exceptionHandler.handle(error);
109
109
  return 1;
110
110
  }
111
111
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/main.spec.js CHANGED
@@ -4,7 +4,7 @@ const vitest_1 = require("vitest");
4
4
  const index_1 = require("./index");
5
5
  const MonorepoController_1 = require("./MonorepoController");
6
6
  const NodeFileSystemService_1 = require("./services/NodeFileSystemService");
7
- const ErrorHandler_1 = require("./services/ErrorHandler");
7
+ const ExceptionHandler_1 = require("./services/ExceptionHandler");
8
8
  (0, vitest_1.describe)('runCli', () => {
9
9
  (0, vitest_1.afterEach)(() => {
10
10
  vitest_1.vi.restoreAllMocks();
@@ -46,9 +46,9 @@ const ErrorHandler_1 = require("./services/ErrorHandler");
46
46
  releaseCommitTemplate: 'templates/custom-release.hbs',
47
47
  });
48
48
  });
49
- (0, vitest_1.it)('given a runtime error when the cli fails then it delegates error reporting to ErrorHandler', () => {
49
+ (0, vitest_1.it)('given a runtime error when the cli fails then it delegates error reporting to ExceptionHandler', () => {
50
50
  const expectedError = new Error('boom');
51
- const handleSpy = vitest_1.vi.spyOn(ErrorHandler_1.ErrorHandler.prototype, 'handle').mockImplementation(() => undefined);
51
+ const handleSpy = vitest_1.vi.spyOn(ExceptionHandler_1.ExceptionHandler.prototype, 'handle').mockImplementation(() => undefined);
52
52
  vitest_1.vi.spyOn(NodeFileSystemService_1.NodeFileSystemService.prototype, 'readJson').mockImplementation(() => {
53
53
  throw expectedError;
54
54
  });
@@ -1 +1 @@
1
- {"version":3,"file":"main.spec.js","sourceRoot":"","sources":["../src/main.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.spec.js","sourceRoot":"","sources":["../src/main.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NpmPackage.d.ts","sourceRoot":"","sources":["../../src/models/NpmPackage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,UAAW,YAAW,QAAQ;IAMvC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAVlD,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU;gBAKnE,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGlD,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;IAIvD,aAAa,CAAC,UAAU,EAAE,MAAM;IAIhC,YAAY,IAAI,MAAM;IAItB,OAAO,CAAC,iCAAiC;IAQzC,OAAO,CAAC,qBAAqB;IAK7B,oBAAoB,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,uBAAuB,EAAE;IAiBtF,oBAAoB,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAI1D,aAAa,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;CAahD"}
1
+ {"version":3,"file":"NpmPackage.d.ts","sourceRoot":"","sources":["../../src/models/NpmPackage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,qBAAa,UAAW,YAAW,QAAQ;IAMvC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAVlD,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU;gBAKnE,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAGlD,kBAAkB,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;IAIvD,aAAa,CAAC,UAAU,EAAE,MAAM;IAIhC,YAAY,IAAI,MAAM;IAItB,OAAO,CAAC,iCAAiC;IAQzC,OAAO,CAAC,qBAAqB;IAK7B,oBAAoB,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,uBAAuB,EAAE;IAiBtF,oBAAoB,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAI1D,aAAa,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;CAahD"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NpmPackage = void 0;
4
4
  const SemVerBumpType_1 = require("./SemVerBumpType");
5
+ const DomainException_1 = require("../exceptions/DomainException");
5
6
  class NpmPackage {
6
7
  name;
7
8
  dirname;
@@ -32,7 +33,7 @@ class NpmPackage {
32
33
  findDependencyVersionByNameOrFail(depName) {
33
34
  const dependencyVersion = this.dependencies[depName] ?? this.devDependencies[depName];
34
35
  if (!dependencyVersion) {
35
- throw new Error(`Dependency ${depName} not found in ${this.name}`);
36
+ throw new DomainException_1.MissingDependencyVersionException(this.name, depName);
36
37
  }
37
38
  return dependencyVersion;
38
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NpmPackage.js","sourceRoot":"","sources":["../../src/models/NpmPackage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NpmPackage.js","sourceRoot":"","sources":["../../src/models/NpmPackage.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,6 @@ export declare class ChangelogPlugin implements ReleasePlugin {
8
8
  private readonly fs;
9
9
  private readonly logger;
10
10
  constructor(changelogName: string, view: ChangelogView, fs: NodeFileSystemService, logger: ConsoleLogger);
11
- onPackageReleased({ pkg, releasedCommits, releasedVersions, releasedPackages }: PackageReleasedPluginContext): void;
11
+ onPackageReleased({ dryRun, pkg, releasedCommits, releasedVersions, releasedPackages }: PackageReleasedPluginContext): void;
12
12
  }
13
13
  //# sourceMappingURL=ChangelogPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChangelogPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/ChangelogPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,qBAAa,eAAgB,YAAW,aAAa;IAEjD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,aAAa,EACnB,EAAE,EAAE,qBAAqB,EACzB,MAAM,EAAE,aAAa;IAGxC,iBAAiB,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,EAAE,4BAA4B,GAAG,IAAI;CAYpH"}
1
+ {"version":3,"file":"ChangelogPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/ChangelogPlugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,qBAAa,eAAgB,YAAW,aAAa;IAEjD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAHN,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,aAAa,EACnB,EAAE,EAAE,qBAAqB,EACzB,MAAM,EAAE,aAAa;IAGxC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,EAAE,4BAA4B,GAAG,IAAI;CAiB5H"}
@@ -16,7 +16,11 @@ class ChangelogPlugin {
16
16
  this.fs = fs;
17
17
  this.logger = logger;
18
18
  }
19
- onPackageReleased({ pkg, releasedCommits, releasedVersions, releasedPackages }) {
19
+ onPackageReleased({ dryRun, pkg, releasedCommits, releasedVersions, releasedPackages }) {
20
+ if (dryRun) {
21
+ this.logger.info(`SKIP ${pkg.name} ${this.changelogName} (dry-run)`);
22
+ return;
23
+ }
20
24
  const changelogFile = node_path_1.default.resolve(pkg.dirname, this.changelogName);
21
25
  const content = this.view.render({
22
26
  pkg,
@@ -1 +1 @@
1
- {"version":3,"file":"ChangelogPlugin.js","sourceRoot":"","sources":["../../src/plugins/ChangelogPlugin.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAM7B,MAAa,eAAe;IAEP;IACA;IACA;IACA;IAJnB,YACmB,aAAqB,EACrB,IAAmB,EACnB,EAAyB,EACzB,MAAqB;QAHrB,kBAAa,GAAb,aAAa,CAAQ;QACrB,SAAI,GAAJ,IAAI,CAAe;QACnB,OAAE,GAAF,EAAE,CAAuB;QACzB,WAAM,GAAN,MAAM,CAAe;IACrC,CAAC;IAEJ,iBAAiB,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAgC;QAC1G,MAAM,aAAa,GAAG,mBAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/B,GAAG;YACH,gBAAgB;YAChB,gBAAgB;YAChB,eAAe;YACf,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;SACnF,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACjE,CAAC;CACF;AApBD,0CAoBC"}
1
+ {"version":3,"file":"ChangelogPlugin.js","sourceRoot":"","sources":["../../src/plugins/ChangelogPlugin.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA6B;AAM7B,MAAa,eAAe;IAEP;IACA;IACA;IACA;IAJnB,YACmB,aAAqB,EACrB,IAAmB,EACnB,EAAyB,EACzB,MAAqB;QAHrB,kBAAa,GAAb,aAAa,CAAQ;QACrB,SAAI,GAAJ,IAAI,CAAe;QACnB,OAAE,GAAF,EAAE,CAAuB;QACzB,WAAM,GAAN,MAAM,CAAe;IACrC,CAAC;IAEJ,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAgC;QAClH,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,YAAY,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,mBAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC/B,GAAG;YACH,gBAAgB;YAChB,gBAAgB;YAChB,eAAe;YACf,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE;SACnF,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACjE,CAAC;CACF;AAzBD,0CAyBC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ChangelogPlugin.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChangelogPlugin.spec.d.ts","sourceRoot":"","sources":["../../src/plugins/ChangelogPlugin.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const ChangelogPlugin_1 = require("./ChangelogPlugin");
5
+ const NpmPackage_1 = require("../models/NpmPackage");
6
+ const ConventionalCommit_1 = require("../models/ConventionalCommit");
7
+ (0, vitest_1.describe)('ChangelogPlugin', () => {
8
+ (0, vitest_1.it)('given dry run when package is released then changelog write is skipped', () => {
9
+ const view = {
10
+ render: vitest_1.vi.fn().mockReturnValue('new changelog'),
11
+ };
12
+ const fs = {
13
+ fileExists: vitest_1.vi.fn().mockReturnValue(true),
14
+ readFile: vitest_1.vi.fn().mockReturnValue('old changelog'),
15
+ writeFile: vitest_1.vi.fn(),
16
+ };
17
+ const logger = {
18
+ info: vitest_1.vi.fn(),
19
+ };
20
+ const plugin = new ChangelogPlugin_1.ChangelogPlugin('CHANGELOG.md', view, fs, logger);
21
+ const pkg = NpmPackage_1.NpmPackage.createFromPackage({ name: 'pkg-a', version: '1.0.0' }, '/repo/packages/pkg-a');
22
+ plugin.onPackageReleased?.({
23
+ dryRun: true,
24
+ noPush: false,
25
+ noPublish: false,
26
+ pkg,
27
+ releasedVersions: new Map([['pkg-a', '1.0.1']]),
28
+ releasedPackages: [pkg],
29
+ releasedCommits: [ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-a): patch')],
30
+ });
31
+ (0, vitest_1.expect)(view.render).not.toHaveBeenCalled();
32
+ (0, vitest_1.expect)(fs.readFile).not.toHaveBeenCalled();
33
+ (0, vitest_1.expect)(fs.writeFile).not.toHaveBeenCalled();
34
+ (0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('SKIP pkg-a CHANGELOG.md (dry-run)');
35
+ });
36
+ (0, vitest_1.it)('given missing changelog when package is released then empty existing content is passed to view', () => {
37
+ const view = {
38
+ render: vitest_1.vi.fn().mockReturnValue('new changelog'),
39
+ };
40
+ const fs = {
41
+ fileExists: vitest_1.vi.fn().mockReturnValue(false),
42
+ readFile: vitest_1.vi.fn(),
43
+ writeFile: vitest_1.vi.fn(),
44
+ };
45
+ const logger = {
46
+ info: vitest_1.vi.fn(),
47
+ };
48
+ const plugin = new ChangelogPlugin_1.ChangelogPlugin('CHANGELOG.md', view, fs, logger);
49
+ const pkg = NpmPackage_1.NpmPackage.createFromPackage({ name: 'pkg-a', version: '1.0.0' }, '/repo/packages/pkg-a');
50
+ const commits = [ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-a): patch')];
51
+ plugin.onPackageReleased?.({
52
+ dryRun: false,
53
+ noPush: false,
54
+ noPublish: false,
55
+ pkg,
56
+ releasedVersions: new Map([['pkg-a', '1.0.1']]),
57
+ releasedPackages: [pkg],
58
+ releasedCommits: commits,
59
+ });
60
+ (0, vitest_1.expect)(view.render).toHaveBeenCalledWith({
61
+ pkg,
62
+ releasedPackages: [pkg],
63
+ releasedVersions: new Map([['pkg-a', '1.0.1']]),
64
+ releasedCommits: commits,
65
+ existing: '',
66
+ });
67
+ (0, vitest_1.expect)(fs.readFile).not.toHaveBeenCalled();
68
+ (0, vitest_1.expect)(fs.writeFile).toHaveBeenCalledWith('/repo/packages/pkg-a/CHANGELOG.md', 'new changelog');
69
+ (0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('WRITE pkg-a CHANGELOG.md');
70
+ });
71
+ (0, vitest_1.it)('given existing changelog when package is released then existing content is passed to view and file is rewritten', () => {
72
+ const view = {
73
+ render: vitest_1.vi.fn().mockReturnValue('new changelog'),
74
+ };
75
+ const fs = {
76
+ fileExists: vitest_1.vi.fn().mockReturnValue(true),
77
+ readFile: vitest_1.vi.fn().mockReturnValue('old changelog'),
78
+ writeFile: vitest_1.vi.fn(),
79
+ };
80
+ const logger = {
81
+ info: vitest_1.vi.fn(),
82
+ };
83
+ const plugin = new ChangelogPlugin_1.ChangelogPlugin('CHANGELOG.md', view, fs, logger);
84
+ const pkg = NpmPackage_1.NpmPackage.createFromPackage({ name: 'pkg-a', version: '1.0.0' }, '/repo/packages/pkg-a');
85
+ const commits = [ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-a): patch')];
86
+ plugin.onPackageReleased?.({
87
+ dryRun: false,
88
+ noPush: false,
89
+ noPublish: false,
90
+ pkg,
91
+ releasedVersions: new Map([['pkg-a', '1.0.1']]),
92
+ releasedPackages: [pkg],
93
+ releasedCommits: commits,
94
+ });
95
+ (0, vitest_1.expect)(view.render).toHaveBeenCalledWith({
96
+ pkg,
97
+ releasedPackages: [pkg],
98
+ releasedVersions: new Map([['pkg-a', '1.0.1']]),
99
+ releasedCommits: commits,
100
+ existing: 'old changelog',
101
+ });
102
+ (0, vitest_1.expect)(fs.writeFile).toHaveBeenCalledWith('/repo/packages/pkg-a/CHANGELOG.md', 'new changelog');
103
+ (0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('WRITE pkg-a CHANGELOG.md');
104
+ });
105
+ });
106
+ //# sourceMappingURL=ChangelogPlugin.spec.js.map