release-monorepo-semantically 1.5.2 → 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.
Files changed (43) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +11 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/plugins/GithubPlugin.d.ts +18 -0
  5. package/dist/plugins/GithubPlugin.d.ts.map +1 -0
  6. package/dist/plugins/GithubPlugin.js +48 -0
  7. package/dist/plugins/GithubPlugin.js.map +1 -0
  8. package/dist/plugins/GithubPlugin.spec.d.ts +2 -0
  9. package/dist/plugins/GithubPlugin.spec.d.ts.map +1 -0
  10. package/dist/plugins/GithubPlugin.spec.js +114 -0
  11. package/dist/plugins/GithubPlugin.spec.js.map +1 -0
  12. package/dist/plugins/PackageJsonPlugin.spec.d.ts +2 -0
  13. package/dist/plugins/PackageJsonPlugin.spec.d.ts.map +1 -0
  14. package/dist/plugins/PackageJsonPlugin.spec.js +70 -0
  15. package/dist/plugins/PackageJsonPlugin.spec.js.map +1 -0
  16. package/dist/services/ChangelogView.spec.d.ts +2 -0
  17. package/dist/services/ChangelogView.spec.d.ts.map +1 -0
  18. package/dist/services/ChangelogView.spec.js +56 -0
  19. package/dist/services/ChangelogView.spec.js.map +1 -0
  20. package/dist/services/GitService.spec.js +34 -0
  21. package/dist/services/GitService.spec.js.map +1 -1
  22. package/dist/services/GithubReleaseView.d.ts +17 -0
  23. package/dist/services/GithubReleaseView.d.ts.map +1 -0
  24. package/dist/services/GithubReleaseView.js +17 -0
  25. package/dist/services/GithubReleaseView.js.map +1 -0
  26. package/dist/services/GithubReleaseView.spec.d.ts +2 -0
  27. package/dist/services/GithubReleaseView.spec.d.ts.map +1 -0
  28. package/dist/services/GithubReleaseView.spec.js +27 -0
  29. package/dist/services/GithubReleaseView.spec.js.map +1 -0
  30. package/dist/services/GithubService.d.ts +13 -0
  31. package/dist/services/GithubService.d.ts.map +1 -0
  32. package/dist/services/GithubService.js +39 -0
  33. package/dist/services/GithubService.js.map +1 -0
  34. package/dist/services/NodeFileSystemService.spec.d.ts +2 -0
  35. package/dist/services/NodeFileSystemService.spec.d.ts.map +1 -0
  36. package/dist/services/NodeFileSystemService.spec.js +62 -0
  37. package/dist/services/NodeFileSystemService.spec.js.map +1 -0
  38. package/dist/utils.spec.d.ts +2 -0
  39. package/dist/utils.spec.d.ts.map +1 -0
  40. package/dist/utils.spec.js +28 -0
  41. package/dist/utils.spec.js.map +1 -0
  42. package/package.json +2 -1
  43. package/templates/github-release-notes.hbs +21 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAqB,MAAM,cAAc,CAAC;AAwB7D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA8B1D;AAYD,wBAAgB,MAAM,CAAC,GAAG,SAAgB,EAAE,OAAO,WAAwB,GAAG,MAAM,CAqCnF;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,UAAU,EAAqB,MAAM,cAAc,CAAC;AA2B7D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA8B1D;AAYD,wBAAgB,MAAM,CAAC,GAAG,SAAgB,EAAE,OAAO,WAAwB,GAAG,MAAM,CA6CnF;AAED,eAAe,MAAM,CAAC"}
package/dist/index.js CHANGED
@@ -20,6 +20,9 @@ const ChangelogPlugin_1 = require("./plugins/ChangelogPlugin");
20
20
  const GitPlugin_1 = require("./plugins/GitPlugin");
21
21
  const NpmPlugin_1 = require("./plugins/NpmPlugin");
22
22
  const PackageJsonPlugin_1 = require("./plugins/PackageJsonPlugin");
23
+ const GithubPlugin_1 = require("./plugins/GithubPlugin");
24
+ const GithubService_1 = require("./services/GithubService");
25
+ const GithubReleaseView_1 = require("./services/GithubReleaseView");
23
26
  function createProgram() {
24
27
  return new commander_1.Command()
25
28
  .name('monorepo-semantic-release')
@@ -82,11 +85,19 @@ function runCli(cwd = process.cwd(), cliArgs = process.argv.slice(2)) {
82
85
  const renderService = new HandlebarsRenderService_1.HandlebarsRenderService(cwd, node_path_1.default.resolve(__dirname, '..'));
83
86
  const changelogView = new ChangelogView_1.ChangelogView(templateOverrides.changelogTemplate, renderService);
84
87
  const releaseCommitView = new ReleaseCommitView_1.ReleaseCommitView(templateOverrides.releaseCommitTemplate, renderService);
88
+ const githubReleaseView = new GithubReleaseView_1.GithubReleaseView(undefined, renderService);
85
89
  const packageManager = new PackageManager_1.PackageManager();
90
+ const githubService = new GithubService_1.GithubService();
91
+ const githubConfig = {
92
+ isGithubActions: process.env.GITHUB_ACTIONS === 'true',
93
+ repository: process.env.GITHUB_REPOSITORY,
94
+ token: process.env.GITHUB_TOKEN,
95
+ };
86
96
  const controller = new MonorepoController_1.MonorepoController([
87
97
  new PackageJsonPlugin_1.PackageJsonPlugin(fsService, logger),
88
98
  new ChangelogPlugin_1.ChangelogPlugin('CHANGELOG.md', changelogView, fsService, logger),
89
99
  new GitPlugin_1.GitPlugin(vcsService, releaseCommitView, logger),
100
+ new GithubPlugin_1.GithubPlugin(githubService, logger, githubConfig, githubReleaseView),
90
101
  new NpmPlugin_1.NpmPlugin(packageManager, logger),
91
102
  ], fsService, vcsService, logger);
92
103
  controller.discoverPackages(cwd);
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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"}
@@ -0,0 +1,18 @@
1
+ import { ReleaseCompletePluginContext, ReleasePlugin } from './ReleasePlugin';
2
+ import { GithubService } from '../services/GithubService';
3
+ import { ConsoleLogger } from '../services/ConsoleLogger';
4
+ import { GithubReleaseView } from '../services/GithubReleaseView';
5
+ export interface GithubPluginConfig {
6
+ isGithubActions: boolean;
7
+ repository?: string;
8
+ token?: string;
9
+ }
10
+ export declare class GithubPlugin implements ReleasePlugin {
11
+ private readonly githubService;
12
+ private readonly logger;
13
+ private readonly config;
14
+ private readonly githubReleaseView;
15
+ constructor(githubService: GithubService, logger: ConsoleLogger, config: GithubPluginConfig, githubReleaseView: GithubReleaseView);
16
+ onReleaseComplete(context: ReleaseCompletePluginContext): void;
17
+ }
18
+ //# sourceMappingURL=GithubPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GithubPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/GithubPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,YAAa,YAAW,aAAa;IAE9C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAHjB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,iBAAiB;IAGvD,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI;CAmC/D"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GithubPlugin = void 0;
4
+ class GithubPlugin {
5
+ githubService;
6
+ logger;
7
+ config;
8
+ githubReleaseView;
9
+ constructor(githubService, logger, config, githubReleaseView) {
10
+ this.githubService = githubService;
11
+ this.logger = logger;
12
+ this.config = config;
13
+ this.githubReleaseView = githubReleaseView;
14
+ }
15
+ onReleaseComplete(context) {
16
+ if (context.dryRun || context.noPush) {
17
+ return;
18
+ }
19
+ if (!this.config.isGithubActions || !this.config.repository || !this.config.token) {
20
+ return;
21
+ }
22
+ if (!this.githubService.isCliAvailable()) {
23
+ throw new Error('GitHub release creation requires `gh` CLI when running in GitHub Actions');
24
+ }
25
+ for (const pkg of context.releasedPackages) {
26
+ const version = context.releasedVersions.get(pkg.name);
27
+ if (!version) {
28
+ continue;
29
+ }
30
+ this.githubService.createRelease({
31
+ repository: this.config.repository,
32
+ token: this.config.token,
33
+ tagName: `${pkg.name}@${version}`,
34
+ title: `${pkg.name} v${version}`,
35
+ notes: this.githubReleaseView.render({
36
+ packageName: pkg.name,
37
+ version,
38
+ commits: context.releasedCommits.get(pkg.name) ?? [],
39
+ dependencyUpdates: pkg.getDependencyUpdates(context.releasedVersions),
40
+ }),
41
+ prerelease: version.includes('-'),
42
+ });
43
+ this.logger.info(`RELEASE ${pkg.name}@${version}`);
44
+ }
45
+ }
46
+ }
47
+ exports.GithubPlugin = GithubPlugin;
48
+ //# sourceMappingURL=GithubPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GithubPlugin.js","sourceRoot":"","sources":["../../src/plugins/GithubPlugin.ts"],"names":[],"mappings":";;;AAWA,MAAa,YAAY;IAEJ;IACA;IACA;IACA;IAJnB,YACmB,aAA4B,EAC5B,MAAqB,EACrB,MAA0B,EAC1B,iBAAoC;QAHpC,kBAAa,GAAb,aAAa,CAAe;QAC5B,WAAM,GAAN,MAAM,CAAe;QACrB,WAAM,GAAN,MAAM,CAAoB;QAC1B,sBAAiB,GAAjB,iBAAiB,CAAmB;IACpD,CAAC;IAEJ,iBAAiB,CAAC,OAAqC;QACrD,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;gBAC/B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;gBAClC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;gBACxB,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE;gBACjC,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;gBAChC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;oBACnC,WAAW,EAAE,GAAG,CAAC,IAAI;oBACrB,OAAO;oBACP,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;oBACpD,iBAAiB,EAAE,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,gBAAgB,CAAC;iBACtE,CAAC;gBACF,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;CACF;AA3CD,oCA2CC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=GithubPlugin.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GithubPlugin.spec.d.ts","sourceRoot":"","sources":["../../src/plugins/GithubPlugin.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const GithubPlugin_1 = require("./GithubPlugin");
5
+ const NpmPackage_1 = require("../models/NpmPackage");
6
+ const ConventionalCommit_1 = require("../models/ConventionalCommit");
7
+ (0, vitest_1.describe)('GithubPlugin', () => {
8
+ (0, vitest_1.it)('given github actions and released packages when release completes then github releases are created', () => {
9
+ const github = {
10
+ isCliAvailable: vitest_1.vi.fn().mockReturnValue(true),
11
+ createRelease: vitest_1.vi.fn(),
12
+ };
13
+ const logger = {
14
+ info: vitest_1.vi.fn(),
15
+ };
16
+ const githubReleaseView = {
17
+ render: vitest_1.vi.fn().mockReturnValue('rendered release notes'),
18
+ };
19
+ const plugin = new GithubPlugin_1.GithubPlugin(github, logger, {
20
+ isGithubActions: true,
21
+ repository: 'acme/repo',
22
+ token: 'token',
23
+ }, githubReleaseView);
24
+ const pkg = NpmPackage_1.NpmPackage.createFromPackage({
25
+ name: 'pkg-a',
26
+ version: '1.0.0',
27
+ dependencies: {
28
+ 'pkg-b': '^1.0.0',
29
+ },
30
+ }, '/repo/packages/pkg-a');
31
+ plugin.onReleaseComplete?.({
32
+ dryRun: false,
33
+ noPush: false,
34
+ noPublish: false,
35
+ releasedPackages: [pkg],
36
+ releasedVersions: new Map([
37
+ ['pkg-a', '1.0.1'],
38
+ ['pkg-b', '1.1.0'],
39
+ ]),
40
+ releasedCommits: new Map([['pkg-a', [ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-a): bug fix')]]]),
41
+ });
42
+ (0, vitest_1.expect)(github.isCliAvailable).toHaveBeenCalledTimes(1);
43
+ (0, vitest_1.expect)(github.createRelease).toHaveBeenCalledWith(vitest_1.expect.objectContaining({
44
+ repository: 'acme/repo',
45
+ token: 'token',
46
+ tagName: 'pkg-a@1.0.1',
47
+ title: 'pkg-a v1.0.1',
48
+ notes: 'rendered release notes',
49
+ }));
50
+ (0, vitest_1.expect)(githubReleaseView.render).toHaveBeenCalledWith({
51
+ packageName: 'pkg-a',
52
+ version: '1.0.1',
53
+ commits: [ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-a): bug fix')],
54
+ dependencyUpdates: [
55
+ {
56
+ packageName: 'pkg-b',
57
+ oldVersion: '^1.0.0',
58
+ newVersion: '1.1.0',
59
+ },
60
+ ],
61
+ });
62
+ (0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('RELEASE pkg-a@1.0.1');
63
+ });
64
+ (0, vitest_1.it)('given dry run, no push, or missing github config when release completes then github releases are skipped', () => {
65
+ const github = {
66
+ isCliAvailable: vitest_1.vi.fn().mockReturnValue(true),
67
+ createRelease: vitest_1.vi.fn(),
68
+ };
69
+ const logger = {
70
+ info: vitest_1.vi.fn(),
71
+ };
72
+ const githubReleaseView = {
73
+ render: vitest_1.vi.fn(),
74
+ };
75
+ const plugin = new GithubPlugin_1.GithubPlugin(github, logger, {
76
+ isGithubActions: true,
77
+ repository: 'acme/repo',
78
+ token: 'token',
79
+ }, githubReleaseView);
80
+ const pkg = NpmPackage_1.NpmPackage.createFromPackage({ name: 'pkg-a', version: '1.0.0' }, '/repo/packages/pkg-a');
81
+ plugin.onReleaseComplete?.({
82
+ dryRun: true,
83
+ noPush: false,
84
+ noPublish: false,
85
+ releasedPackages: [pkg],
86
+ releasedVersions: new Map([['pkg-a', '1.0.1']]),
87
+ releasedCommits: new Map(),
88
+ });
89
+ plugin.onReleaseComplete?.({
90
+ dryRun: false,
91
+ noPush: true,
92
+ noPublish: false,
93
+ releasedPackages: [pkg],
94
+ releasedVersions: new Map([['pkg-a', '1.0.1']]),
95
+ releasedCommits: new Map(),
96
+ });
97
+ const pluginWithMissingConfig = new GithubPlugin_1.GithubPlugin(github, logger, {
98
+ isGithubActions: false,
99
+ repository: undefined,
100
+ token: undefined,
101
+ }, githubReleaseView);
102
+ pluginWithMissingConfig.onReleaseComplete?.({
103
+ dryRun: false,
104
+ noPush: false,
105
+ noPublish: false,
106
+ releasedPackages: [pkg],
107
+ releasedVersions: new Map([['pkg-a', '1.0.1']]),
108
+ releasedCommits: new Map(),
109
+ });
110
+ (0, vitest_1.expect)(github.createRelease).not.toHaveBeenCalled();
111
+ (0, vitest_1.expect)(githubReleaseView.render).not.toHaveBeenCalled();
112
+ });
113
+ });
114
+ //# sourceMappingURL=GithubPlugin.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GithubPlugin.spec.js","sourceRoot":"","sources":["../../src/plugins/GithubPlugin.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=PackageJsonPlugin.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageJsonPlugin.spec.d.ts","sourceRoot":"","sources":["../../src/plugins/PackageJsonPlugin.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const PackageJsonPlugin_1 = require("./PackageJsonPlugin");
5
+ const NpmPackage_1 = require("../models/NpmPackage");
6
+ (0, vitest_1.describe)('PackageJsonPlugin', () => {
7
+ (0, vitest_1.it)('given dependency version updates when package is released then package.json is rewritten and logged', () => {
8
+ const fileSystemService = {
9
+ readPackageJsonOrFail: vitest_1.vi.fn().mockReturnValue({
10
+ name: 'pkg-a',
11
+ version: '1.0.0',
12
+ dependencies: { 'pkg-b': '^1.0.0' },
13
+ }),
14
+ writeToPackageJsonOrFail: vitest_1.vi.fn(),
15
+ };
16
+ const logger = {
17
+ info: vitest_1.vi.fn(),
18
+ };
19
+ const plugin = new PackageJsonPlugin_1.PackageJsonPlugin(fileSystemService, logger);
20
+ const pkg = NpmPackage_1.NpmPackage.createFromPackage({
21
+ name: 'pkg-a',
22
+ version: '1.0.0',
23
+ dependencies: { 'pkg-b': '^1.0.0' },
24
+ }, '/repo/packages/pkg-a');
25
+ plugin.onPackageReleased?.({
26
+ dryRun: false,
27
+ noPush: false,
28
+ noPublish: false,
29
+ pkg,
30
+ releasedVersions: new Map([['pkg-b', '1.1.0']]),
31
+ releasedPackages: [pkg],
32
+ releasedCommits: [],
33
+ });
34
+ (0, vitest_1.expect)(fileSystemService.readPackageJsonOrFail).toHaveBeenCalledWith('/repo/packages/pkg-a');
35
+ (0, vitest_1.expect)(fileSystemService.writeToPackageJsonOrFail).toHaveBeenCalledWith('/repo/packages/pkg-a', {
36
+ name: 'pkg-a',
37
+ version: '1.0.0',
38
+ dependencies: { 'pkg-b': '1.1.0' },
39
+ });
40
+ (0, vitest_1.expect)(logger.info).toHaveBeenCalledWith('WRITE pkg-a package.json');
41
+ });
42
+ (0, vitest_1.it)('given no dependency changes when package is released then package.json is not rewritten', () => {
43
+ const fileSystemService = {
44
+ readPackageJsonOrFail: vitest_1.vi.fn(),
45
+ writeToPackageJsonOrFail: vitest_1.vi.fn(),
46
+ };
47
+ const logger = {
48
+ info: vitest_1.vi.fn(),
49
+ };
50
+ const plugin = new PackageJsonPlugin_1.PackageJsonPlugin(fileSystemService, logger);
51
+ const pkg = NpmPackage_1.NpmPackage.createFromPackage({
52
+ name: 'pkg-a',
53
+ version: '1.0.0',
54
+ dependencies: { 'pkg-b': '1.0.0' },
55
+ }, '/repo/packages/pkg-a');
56
+ plugin.onPackageReleased?.({
57
+ dryRun: false,
58
+ noPush: false,
59
+ noPublish: false,
60
+ pkg,
61
+ releasedVersions: new Map([['pkg-b', '1.0.0']]),
62
+ releasedPackages: [pkg],
63
+ releasedCommits: [],
64
+ });
65
+ (0, vitest_1.expect)(fileSystemService.readPackageJsonOrFail).not.toHaveBeenCalled();
66
+ (0, vitest_1.expect)(fileSystemService.writeToPackageJsonOrFail).not.toHaveBeenCalled();
67
+ (0, vitest_1.expect)(logger.info).not.toHaveBeenCalled();
68
+ });
69
+ });
70
+ //# sourceMappingURL=PackageJsonPlugin.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageJsonPlugin.spec.js","sourceRoot":"","sources":["../../src/plugins/PackageJsonPlugin.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ChangelogView.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChangelogView.spec.d.ts","sourceRoot":"","sources":["../../src/services/ChangelogView.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const ChangelogView_1 = require("./ChangelogView");
5
+ const NpmPackage_1 = require("../models/NpmPackage");
6
+ const ConventionalCommit_1 = require("../models/ConventionalCommit");
7
+ (0, vitest_1.describe)('ChangelogView', () => {
8
+ (0, vitest_1.it)('given released package context when changelog is rendered then entry data is provided for templates', () => {
9
+ const renderService = {
10
+ render: vitest_1.vi.fn().mockReturnValue('rendered'),
11
+ };
12
+ const view = new ChangelogView_1.ChangelogView('templates/custom.hbs', renderService);
13
+ const pkg = NpmPackage_1.NpmPackage.createFromPackage({
14
+ name: 'pkg-a',
15
+ version: '1.0.0',
16
+ dependencies: { 'pkg-b': '^1.0.0' },
17
+ }, '/repo/packages/pkg-a');
18
+ const commits = [
19
+ ConventionalCommit_1.ConventionalCommit.parse('feat(pkg-a): add feature'),
20
+ ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-a): fix bug'),
21
+ ConventionalCommit_1.ConventionalCommit.parse('perf(pkg-a): speed up'),
22
+ ];
23
+ const output = view.render({
24
+ pkg,
25
+ releasedCommits: commits,
26
+ releasedPackages: [pkg],
27
+ releasedVersions: new Map([
28
+ ['pkg-a', '1.1.0'],
29
+ ['pkg-b', '1.1.0'],
30
+ ]),
31
+ existing: 'existing body',
32
+ });
33
+ (0, vitest_1.expect)(output).toBe('rendered');
34
+ (0, vitest_1.expect)(renderService.render).toHaveBeenCalledWith('templates/custom.hbs', vitest_1.expect.objectContaining({
35
+ pkg,
36
+ releasedCommits: commits,
37
+ existing: 'existing body',
38
+ entry: vitest_1.expect.objectContaining({
39
+ version: '1.1.0',
40
+ oldVersion: '1.0.0',
41
+ }),
42
+ }));
43
+ const passedEntry = renderService.render.mock.calls[0][1].entry;
44
+ (0, vitest_1.expect)(passedEntry.fixes).toHaveLength(1);
45
+ (0, vitest_1.expect)(passedEntry.features).toHaveLength(1);
46
+ (0, vitest_1.expect)(passedEntry.performance).toHaveLength(1);
47
+ (0, vitest_1.expect)(passedEntry.dependencyUpdates).toEqual([
48
+ {
49
+ packageName: 'pkg-b',
50
+ oldVersion: '^1.0.0',
51
+ newVersion: '1.1.0',
52
+ },
53
+ ]);
54
+ });
55
+ });
56
+ //# sourceMappingURL=ChangelogView.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChangelogView.spec.js","sourceRoot":"","sources":["../../src/services/ChangelogView.spec.ts"],"names":[],"mappings":";;AAAA,mCAAkD;AAClD,mDAAgD;AAChD,qDAAkD;AAClD,qEAAkE;AAElE,IAAA,iBAAQ,EAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAA,WAAE,EAAC,qGAAqG,EAAE,GAAG,EAAE;QAC7G,MAAM,aAAa,GAAG;YACpB,MAAM,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC;SAC5C,CAAC;QAEF,MAAM,IAAI,GAAG,IAAI,6BAAa,CAAC,sBAAsB,EAAE,aAAsB,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,uBAAU,CAAC,iBAAiB,CACtC;YACE,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;SACpC,EACD,sBAAsB,CACvB,CAAC;QACF,MAAM,OAAO,GAAG;YACd,uCAAkB,CAAC,KAAK,CAAC,0BAA0B,CAAC;YACpD,uCAAkB,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAC/C,uCAAkB,CAAC,KAAK,CAAC,uBAAuB,CAAC;SAClD,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,GAAG;YACH,eAAe,EAAE,OAAO;YACxB,gBAAgB,EAAE,CAAC,GAAG,CAAC;YACvB,gBAAgB,EAAE,IAAI,GAAG,CAAC;gBACxB,CAAC,OAAO,EAAE,OAAO,CAAC;gBAClB,CAAC,OAAO,EAAE,OAAO,CAAC;aACnB,CAAC;YACF,QAAQ,EAAE,eAAe;SAC1B,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,IAAA,eAAM,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAC/C,sBAAsB,EACtB,eAAM,CAAC,gBAAgB,CAAC;YACtB,GAAG;YACH,eAAe,EAAE,OAAO;YACxB,QAAQ,EAAE,eAAe;YACzB,KAAK,EAAE,eAAM,CAAC,gBAAgB,CAAC;gBAC7B,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,OAAO;aACpB,CAAC;SACH,CAAC,CACH,CAAC;QAEF,MAAM,WAAW,GAAI,aAAa,CAAC,MAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9F,IAAA,eAAM,EAAC,WAAW,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAA,eAAM,EAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAA,eAAM,EAAC,WAAW,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC;YAC5C;gBACE,WAAW,EAAE,OAAO;gBACpB,UAAU,EAAE,QAAQ;gBACpB,UAAU,EAAE,OAAO;aACpB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -19,5 +19,39 @@ vitest_1.vi.mock('node:child_process', () => ({
19
19
  stdio: ['pipe', 'inherit', 'inherit'],
20
20
  });
21
21
  });
22
+ (0, vitest_1.it)('given an existing tag when commit history is queried then commits are read from tag range', () => {
23
+ vitest_1.vi.mocked(node_child_process_1.execSync).mockReturnValueOnce('refs/tags/pkg-a@1.0.0\n').mockReturnValueOnce('abcd123 fix(pkg-a): bug fix\n');
24
+ const service = new GitService_1.GitService();
25
+ const commits = service.findManyCommitsSinceTag('pkg-a@1.0.0');
26
+ (0, vitest_1.expect)(node_child_process_1.execSync).toHaveBeenNthCalledWith(1, 'git rev-parse --verify --quiet refs/tags/pkg-a@1.0.0', { encoding: 'utf-8' });
27
+ (0, vitest_1.expect)(node_child_process_1.execSync).toHaveBeenNthCalledWith(2, 'git log pkg-a@1.0.0..HEAD --format="%H %s"', { encoding: 'utf-8' });
28
+ (0, vitest_1.expect)(commits).toHaveLength(1);
29
+ (0, vitest_1.expect)(commits[0].type).toBe('fix');
30
+ (0, vitest_1.expect)(commits[0].hash).toBe('abcd123');
31
+ });
32
+ (0, vitest_1.it)('given a missing tag when commit history is queried then full history is read from HEAD', () => {
33
+ vitest_1.vi.mocked(node_child_process_1.execSync)
34
+ .mockImplementationOnce(() => {
35
+ throw new Error('missing tag');
36
+ })
37
+ .mockReturnValueOnce('');
38
+ const service = new GitService_1.GitService();
39
+ const commits = service.findManyCommitsSinceTag('pkg-a@1.0.0');
40
+ (0, vitest_1.expect)(node_child_process_1.execSync).toHaveBeenNthCalledWith(2, 'git log HEAD --format="%H %s"', { encoding: 'utf-8' });
41
+ (0, vitest_1.expect)(commits).toEqual([]);
42
+ });
43
+ (0, vitest_1.it)('given push with and without tags when push runs then tag push is conditional', () => {
44
+ const service = new GitService_1.GitService();
45
+ service.push(false);
46
+ service.push(true);
47
+ (0, vitest_1.expect)(node_child_process_1.execSync).toHaveBeenNthCalledWith(1, 'git push');
48
+ (0, vitest_1.expect)(node_child_process_1.execSync).toHaveBeenNthCalledWith(2, 'git push');
49
+ (0, vitest_1.expect)(node_child_process_1.execSync).toHaveBeenNthCalledWith(3, 'git push --tags');
50
+ });
51
+ (0, vitest_1.it)('given a tag name when createTag runs then git tag command is executed', () => {
52
+ const service = new GitService_1.GitService();
53
+ service.createTag('pkg-a@1.0.1');
54
+ (0, vitest_1.expect)(node_child_process_1.execSync).toHaveBeenCalledWith('git tag pkg-a@1.0.1');
55
+ });
22
56
  });
23
57
  //# sourceMappingURL=GitService.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GitService.spec.js","sourceRoot":"","sources":["../../src/services/GitService.spec.ts"],"names":[],"mappings":";;AAAA,mCAA8D;AAC9D,2DAA8C;AAC9C,6CAA0C;AAE1C,WAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,QAAQ,EAAE,WAAE,CAAC,EAAE,EAAE;CAClB,CAAC,CAAC,CAAC;AAEJ,IAAA,iBAAQ,EAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,WAAE,CAAC,MAAM,CAAC,6BAAQ,CAAC,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,0FAA0F,EAAE,GAAG,EAAE;QAClG,MAAM,OAAO,GAAG,IAAI,uBAAU,EAAE,CAAC;QAEjC,OAAO,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC;QAEzD,IAAA,eAAM,EAAC,6BAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QACzD,IAAA,eAAM,EAAC,6BAAQ,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAE,+BAA+B,EAAE;YAC3E,KAAK,EAAE,wCAAwC;YAC/C,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC;SACtC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"GitService.spec.js","sourceRoot":"","sources":["../../src/services/GitService.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { HandlebarsRenderService } from './HandlebarsRenderService';
2
+ import { ConventionalCommit } from '../models/ConventionalCommit';
3
+ import { DependencyVersionChange } from '../models/ReleaseTypes';
4
+ export declare const DEFAULT_GITHUB_RELEASE_NOTES_TEMPLATE = "templates/github-release-notes.hbs";
5
+ export interface GithubReleaseViewContext extends Record<string, unknown> {
6
+ packageName: string;
7
+ version: string;
8
+ commits: ConventionalCommit[];
9
+ dependencyUpdates: DependencyVersionChange[];
10
+ }
11
+ export declare class GithubReleaseView {
12
+ private readonly templatePath;
13
+ private readonly renderService;
14
+ constructor(templatePath: string | undefined, renderService: HandlebarsRenderService);
15
+ render(context: GithubReleaseViewContext): string;
16
+ }
17
+ //# sourceMappingURL=GithubReleaseView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GithubReleaseView.d.ts","sourceRoot":"","sources":["../../src/services/GithubReleaseView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,eAAO,MAAM,qCAAqC,uCAAuC,CAAC;AAE1F,MAAM,WAAW,wBAAyB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,iBAAiB,EAAE,uBAAuB,EAAE,CAAC;CAC9C;AAED,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,YAAY,oBAAwC,EACpD,aAAa,EAAE,uBAAuB;IAGzD,MAAM,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM;CAGlD"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GithubReleaseView = exports.DEFAULT_GITHUB_RELEASE_NOTES_TEMPLATE = void 0;
4
+ exports.DEFAULT_GITHUB_RELEASE_NOTES_TEMPLATE = 'templates/github-release-notes.hbs';
5
+ class GithubReleaseView {
6
+ templatePath;
7
+ renderService;
8
+ constructor(templatePath = exports.DEFAULT_GITHUB_RELEASE_NOTES_TEMPLATE, renderService) {
9
+ this.templatePath = templatePath;
10
+ this.renderService = renderService;
11
+ }
12
+ render(context) {
13
+ return this.renderService.render(this.templatePath, context);
14
+ }
15
+ }
16
+ exports.GithubReleaseView = GithubReleaseView;
17
+ //# sourceMappingURL=GithubReleaseView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GithubReleaseView.js","sourceRoot":"","sources":["../../src/services/GithubReleaseView.ts"],"names":[],"mappings":";;;AAIa,QAAA,qCAAqC,GAAG,oCAAoC,CAAC;AAS1F,MAAa,iBAAiB;IAET;IACA;IAFnB,YACmB,eAAe,6CAAqC,EACpD,aAAsC;QADtC,iBAAY,GAAZ,YAAY,CAAwC;QACpD,kBAAa,GAAb,aAAa,CAAyB;IACtD,CAAC;IAEJ,MAAM,CAAC,OAAiC;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;CACF;AATD,8CASC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=GithubReleaseView.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GithubReleaseView.spec.d.ts","sourceRoot":"","sources":["../../src/services/GithubReleaseView.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const GithubReleaseView_1 = require("./GithubReleaseView");
5
+ const ConventionalCommit_1 = require("../models/ConventionalCommit");
6
+ (0, vitest_1.describe)('GithubReleaseView', () => {
7
+ (0, vitest_1.it)('renders release notes through configured template', () => {
8
+ const renderService = {
9
+ render: vitest_1.vi.fn().mockReturnValue('notes'),
10
+ };
11
+ const view = new GithubReleaseView_1.GithubReleaseView('templates/github-release-notes.hbs', renderService);
12
+ const result = view.render({
13
+ packageName: 'pkg-a',
14
+ version: '1.0.1',
15
+ commits: [ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-a): bug fix')],
16
+ dependencyUpdates: [],
17
+ });
18
+ (0, vitest_1.expect)(result).toBe('notes');
19
+ (0, vitest_1.expect)(renderService.render).toHaveBeenCalledWith('templates/github-release-notes.hbs', {
20
+ packageName: 'pkg-a',
21
+ version: '1.0.1',
22
+ commits: [ConventionalCommit_1.ConventionalCommit.parse('fix(pkg-a): bug fix')],
23
+ dependencyUpdates: [],
24
+ });
25
+ });
26
+ });
27
+ //# sourceMappingURL=GithubReleaseView.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GithubReleaseView.spec.js","sourceRoot":"","sources":["../../src/services/GithubReleaseView.spec.ts"],"names":[],"mappings":";;AAAA,mCAAkD;AAClD,2DAAwD;AACxD,qEAAkE;AAElE,IAAA,iBAAQ,EAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAA,WAAE,EAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,aAAa,GAAG;YACpB,MAAM,EAAE,WAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;SACzC,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,qCAAiB,CAAC,oCAAoC,EAAE,aAAsB,CAAC,CAAC;QAEjG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,OAAO;YACpB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,CAAC,uCAAkB,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC1D,iBAAiB,EAAE,EAAE;SACtB,CAAC,CAAC;QAEH,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAA,eAAM,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,oCAAoC,EAAE;YACtF,WAAW,EAAE,OAAO;YACpB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE,CAAC,uCAAkB,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAC1D,iBAAiB,EAAE,EAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export interface GithubReleaseCreateOptions {
2
+ repository: string;
3
+ token: string;
4
+ tagName: string;
5
+ title: string;
6
+ notes: string;
7
+ prerelease?: boolean;
8
+ }
9
+ export declare class GithubService {
10
+ isCliAvailable(): boolean;
11
+ createRelease(options: GithubReleaseCreateOptions): void;
12
+ }
13
+ //# sourceMappingURL=GithubService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GithubService.d.ts","sourceRoot":"","sources":["../../src/services/GithubService.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,aAAa;IACxB,cAAc,IAAI,OAAO;IASzB,aAAa,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;CAuBzD"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GithubService = void 0;
4
+ const node_child_process_1 = require("node:child_process");
5
+ class GithubService {
6
+ isCliAvailable() {
7
+ try {
8
+ (0, node_child_process_1.execFileSync)('gh', ['--version'], { stdio: 'pipe' });
9
+ return true;
10
+ }
11
+ catch {
12
+ return false;
13
+ }
14
+ }
15
+ createRelease(options) {
16
+ const args = ['release', 'create', options.tagName, '--repo', options.repository, '--title', options.title, '--notes', options.notes];
17
+ if (options.prerelease) {
18
+ args.push('--prerelease');
19
+ }
20
+ try {
21
+ (0, node_child_process_1.execFileSync)('gh', args, {
22
+ stdio: 'pipe',
23
+ env: {
24
+ ...process.env,
25
+ GH_TOKEN: options.token,
26
+ },
27
+ });
28
+ }
29
+ catch (error) {
30
+ const message = error.stderr?.toString() ?? error.message ?? '';
31
+ if (message.includes('already_exists') || message.includes('already exists')) {
32
+ return;
33
+ }
34
+ throw error;
35
+ }
36
+ }
37
+ }
38
+ exports.GithubService = GithubService;
39
+ //# sourceMappingURL=GithubService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GithubService.js","sourceRoot":"","sources":["../../src/services/GithubService.ts"],"names":[],"mappings":";;;AAAA,2DAAkD;AAWlD,MAAa,aAAa;IACxB,cAAc;QACZ,IAAI,CAAC;YACH,IAAA,iCAAY,EAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,aAAa,CAAC,OAAmC;QAC/C,MAAM,IAAI,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAEtI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC;YACH,IAAA,iCAAY,EAAC,IAAI,EAAE,IAAI,EAAE;gBACvB,KAAK,EAAE,MAAM;gBACb,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,QAAQ,EAAE,OAAO,CAAC,KAAK;iBACxB;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAI,KAA+C,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAK,KAA8B,CAAC,OAAO,IAAI,EAAE,CAAC;YACrI,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC7E,OAAO;YACT,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAjCD,sCAiCC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=NodeFileSystemService.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeFileSystemService.spec.d.ts","sourceRoot":"","sources":["../../src/services/NodeFileSystemService.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const vitest_1 = require("vitest");
7
+ const node_fs_1 = require("node:fs");
8
+ const node_os_1 = require("node:os");
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const NodeFileSystemService_1 = require("./NodeFileSystemService");
11
+ (0, vitest_1.describe)('NodeFileSystemService', () => {
12
+ const tempRoots = [];
13
+ (0, vitest_1.afterEach)(() => {
14
+ for (const root of tempRoots.splice(0)) {
15
+ (0, node_fs_1.rmSync)(root, { recursive: true, force: true });
16
+ }
17
+ });
18
+ (0, vitest_1.it)('given file content when read and write methods are used then values are persisted and retrieved', () => {
19
+ const root = (0, node_fs_1.mkdtempSync)(node_path_1.default.join((0, node_os_1.tmpdir)(), 'node-fs-service-'));
20
+ tempRoots.push(root);
21
+ const service = new NodeFileSystemService_1.NodeFileSystemService();
22
+ const sampleFile = node_path_1.default.join(root, 'sample.txt');
23
+ service.writeFile(sampleFile, 'hello');
24
+ (0, vitest_1.expect)(service.fileExists(sampleFile)).toBe(true);
25
+ (0, vitest_1.expect)(service.readFile(sampleFile)).toBe('hello');
26
+ });
27
+ (0, vitest_1.it)('given package json path forms when package json methods run then directory and file paths are supported', () => {
28
+ const root = (0, node_fs_1.mkdtempSync)(node_path_1.default.join((0, node_os_1.tmpdir)(), 'node-fs-service-'));
29
+ tempRoots.push(root);
30
+ const service = new NodeFileSystemService_1.NodeFileSystemService();
31
+ const pkgDir = node_path_1.default.join(root, 'pkg-a');
32
+ (0, node_fs_1.mkdirSync)(pkgDir, { recursive: true });
33
+ (0, node_fs_1.writeFileSync)(node_path_1.default.join(pkgDir, 'package.json'), '{"name":"pkg-a","version":"1.0.0"}\n');
34
+ service.writeToPackageJsonOrFail(pkgDir, { name: 'pkg-a', version: '1.0.1' });
35
+ (0, vitest_1.expect)(service.readPackageJsonOrFail(pkgDir)).toEqual({ name: 'pkg-a', version: '1.0.1' });
36
+ (0, vitest_1.expect)(service.readPackageJsonOrFail(node_path_1.default.join(pkgDir, 'package.json'))).toEqual({ name: 'pkg-a', version: '1.0.1' });
37
+ });
38
+ (0, vitest_1.it)('given workspace globs with duplicate matches when package json files are discovered then unique package directories are returned', () => {
39
+ const root = (0, node_fs_1.mkdtempSync)(node_path_1.default.join((0, node_os_1.tmpdir)(), 'node-fs-service-'));
40
+ tempRoots.push(root);
41
+ const service = new NodeFileSystemService_1.NodeFileSystemService();
42
+ const pkgA = node_path_1.default.join(root, 'packages', 'a');
43
+ const pkgB = node_path_1.default.join(root, 'packages', 'b');
44
+ (0, node_fs_1.mkdirSync)(pkgA, { recursive: true });
45
+ (0, node_fs_1.mkdirSync)(pkgB, { recursive: true });
46
+ (0, node_fs_1.writeFileSync)(node_path_1.default.join(pkgA, 'package.json'), '{"name":"pkg-a","version":"1.0.0"}\n');
47
+ (0, node_fs_1.writeFileSync)(node_path_1.default.join(pkgB, 'package.json'), '{"name":"pkg-b","version":"1.0.0"}\n');
48
+ const discovered = service.findManyPackageJsonByGlob(['packages/*', 'packages/*/package.json'], root);
49
+ (0, vitest_1.expect)(discovered.map(([pkgPath]) => pkgPath).sort()).toEqual([pkgA, pkgB]);
50
+ (0, vitest_1.expect)(discovered.map(([, pkg]) => pkg.name).sort()).toEqual(['pkg-a', 'pkg-b']);
51
+ });
52
+ (0, vitest_1.it)('given json file when readJson is called then parsed content is returned', () => {
53
+ const root = (0, node_fs_1.mkdtempSync)(node_path_1.default.join((0, node_os_1.tmpdir)(), 'node-fs-service-'));
54
+ tempRoots.push(root);
55
+ const service = new NodeFileSystemService_1.NodeFileSystemService();
56
+ const jsonPath = node_path_1.default.join(root, 'config.json');
57
+ (0, node_fs_1.writeFileSync)(jsonPath, '{"a":1,"b":"ok"}\n');
58
+ (0, vitest_1.expect)(service.readJson(jsonPath)).toEqual({ a: 1, b: 'ok' });
59
+ (0, vitest_1.expect)((0, node_fs_1.readFileSync)(jsonPath, 'utf-8')).toContain('"a":1');
60
+ });
61
+ });
62
+ //# sourceMappingURL=NodeFileSystemService.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeFileSystemService.spec.js","sourceRoot":"","sources":["../../src/services/NodeFileSystemService.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=utils.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.spec.d.ts","sourceRoot":"","sources":["../src/utils.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const utils_1 = require("./utils");
5
+ (0, vitest_1.describe)('uniqBy', () => {
6
+ (0, vitest_1.it)('given duplicate values when uniqBy runs then it keeps first occurrence by predicate', () => {
7
+ const items = [
8
+ { id: 'a', value: 1 },
9
+ { id: 'a', value: 2 },
10
+ { id: 'b', value: 3 },
11
+ ];
12
+ const result = (0, utils_1.uniqBy)(items, (left, right) => left.id === right.id);
13
+ (0, vitest_1.expect)(result).toEqual([
14
+ { id: 'a', value: 1 },
15
+ { id: 'b', value: 3 },
16
+ ]);
17
+ });
18
+ });
19
+ (0, vitest_1.describe)('isPresent', () => {
20
+ (0, vitest_1.it)('given nullable values when isPresent checks then it returns false only for null and undefined', () => {
21
+ (0, vitest_1.expect)((0, utils_1.isPresent)(undefined)).toBe(false);
22
+ (0, vitest_1.expect)((0, utils_1.isPresent)(null)).toBe(false);
23
+ (0, vitest_1.expect)((0, utils_1.isPresent)(0)).toBe(true);
24
+ (0, vitest_1.expect)((0, utils_1.isPresent)('')).toBe(true);
25
+ (0, vitest_1.expect)((0, utils_1.isPresent)(false)).toBe(true);
26
+ });
27
+ });
28
+ //# sourceMappingURL=utils.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.spec.js","sourceRoot":"","sources":["../src/utils.spec.ts"],"names":[],"mappings":";;AAAA,mCAA8C;AAC9C,mCAA4C;AAE5C,IAAA,iBAAQ,EAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAA,WAAE,EAAC,qFAAqF,EAAE,GAAG,EAAE;QAC7F,MAAM,KAAK,GAAG;YACZ,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;YACrB,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;YACrB,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;SACtB,CAAC;QAEF,MAAM,MAAM,GAAG,IAAA,cAAM,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;QAEpE,IAAA,eAAM,EAAC,MAAM,CAAC,CAAC,OAAO,CAAC;YACrB,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;YACrB,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,iBAAQ,EAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAA,WAAE,EAAC,+FAA+F,EAAE,GAAG,EAAE;QACvG,IAAA,eAAM,EAAC,IAAA,iBAAS,EAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAA,eAAM,EAAC,IAAA,iBAAS,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAA,eAAM,EAAC,IAAA,iBAAS,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAA,eAAM,EAAC,IAAA,iBAAS,EAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAA,eAAM,EAAC,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-monorepo-semantically",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "description": "cli commands to manage versioning of package in monorepo and generate changelog",
5
5
  "license": "ISC",
6
6
  "author": "",
@@ -51,6 +51,7 @@
51
51
  "@semantic-release/npm": "^13.1.5",
52
52
  "@semantic-release/release-notes-generator": "^14.1.0",
53
53
  "@types/node": "^22.16.0",
54
+ "@vitest/coverage-v8": "^4.0.18",
54
55
  "eslint": "^9.39.2",
55
56
  "husky": "^9.1.7",
56
57
  "lint-staged": "^16.2.7",
@@ -0,0 +1,21 @@
1
+ ## {{packageName}}@{{version}}
2
+ {{#if commits}}
3
+
4
+ ### Changes
5
+ {{#each commits}}
6
+ - {{this.type}}{{#if this.isBreaking}}!{{/if}}: {{this.subject}}
7
+ {{/each}}
8
+ {{/if}}
9
+ {{#if dependencyUpdates}}
10
+
11
+ ### Dependencies
12
+ {{#each dependencyUpdates}}
13
+ - update {{this.packageName}} from {{this.oldVersion}} to {{this.newVersion}}
14
+ {{/each}}
15
+ {{/if}}
16
+ {{#unless commits}}
17
+ {{#unless dependencyUpdates}}
18
+
19
+ - No direct changes in this release
20
+ {{/unless}}
21
+ {{/unless}}