autorel 0.0.12

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 (62) hide show
  1. package/README.md +158 -0
  2. package/dist/changelog.d.ts +3 -0
  3. package/dist/changelog.js +20 -0
  4. package/dist/changelog.js.map +1 -0
  5. package/dist/changelog.spec.d.ts +1 -0
  6. package/dist/changelog.spec.js +95 -0
  7. package/dist/changelog.spec.js.map +1 -0
  8. package/dist/cli.d.ts +1 -0
  9. package/dist/cli.js +40 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/config.d.ts +16 -0
  12. package/dist/config.js +102 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/config.spec.d.ts +1 -0
  15. package/dist/config.spec.js +126 -0
  16. package/dist/config.spec.js.map +1 -0
  17. package/dist/conventionalcommits.d.ts +16 -0
  18. package/dist/conventionalcommits.js +122 -0
  19. package/dist/conventionalcommits.js.map +1 -0
  20. package/dist/conventionalcommits.spec.d.ts +1 -0
  21. package/dist/conventionalcommits.spec.js +136 -0
  22. package/dist/conventionalcommits.spec.js.map +1 -0
  23. package/dist/index.d.ts +12 -0
  24. package/dist/index.js +122 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/lib/bash.d.ts +1 -0
  27. package/dist/lib/bash.js +17 -0
  28. package/dist/lib/bash.js.map +1 -0
  29. package/dist/lib/colors.d.ts +5 -0
  30. package/dist/lib/colors.js +24 -0
  31. package/dist/lib/colors.js.map +1 -0
  32. package/dist/lib/git.d.ts +13 -0
  33. package/dist/lib/git.js +52 -0
  34. package/dist/lib/git.js.map +1 -0
  35. package/dist/lib/httpRequest.d.ts +10 -0
  36. package/dist/lib/httpRequest.js +58 -0
  37. package/dist/lib/httpRequest.js.map +1 -0
  38. package/dist/lib/npm.d.ts +1 -0
  39. package/dist/lib/npm.js +12 -0
  40. package/dist/lib/npm.js.map +1 -0
  41. package/dist/lib/output.d.ts +11 -0
  42. package/dist/lib/output.js +23 -0
  43. package/dist/lib/output.js.map +1 -0
  44. package/dist/lib/toResult.d.ts +4 -0
  45. package/dist/lib/toResult.js +24 -0
  46. package/dist/lib/toResult.js.map +1 -0
  47. package/dist/semver.d.ts +16 -0
  48. package/dist/semver.js +229 -0
  49. package/dist/semver.js.map +1 -0
  50. package/dist/semver.spec.d.ts +1 -0
  51. package/dist/semver.spec.js +77 -0
  52. package/dist/semver.spec.js.map +1 -0
  53. package/dist/services/github.d.ts +12 -0
  54. package/dist/services/github.js +26 -0
  55. package/dist/services/github.js.map +1 -0
  56. package/dist/test_fixtures/fakeLog.d.ts +6 -0
  57. package/dist/test_fixtures/fakeLog.js +10 -0
  58. package/dist/test_fixtures/fakeLog.js.map +1 -0
  59. package/dist/versionBump.d.ts +4 -0
  60. package/dist/versionBump.js +57 -0
  61. package/dist/versionBump.js.map +1 -0
  62. package/package.json +43 -0
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.filterBreakingCommits = exports.groupCommits = exports.determineReleaseType = exports.parseConventionalCommit = void 0;
30
+ const node_util_1 = require("node:util");
31
+ const color = __importStar(require("./lib/colors"));
32
+ const output_1 = __importDefault(require("./lib/output"));
33
+ // eslint-disable-next-line max-lines-per-function
34
+ function parseConventionalCommit(commitMessage, hash) {
35
+ const lines = commitMessage.split('\n');
36
+ const header = lines[0];
37
+ // Extract type, scope, and description from the header
38
+ const headerPattern = /^(?<type>[\w]+)(?<breaking>!)?(\((?<scope>[^)]+)\))?(?<breakingAlt>!)?: (?<description>.+)$/;
39
+ const headerMatch = header.match(headerPattern);
40
+ if (!headerMatch || !headerMatch.groups) {
41
+ return undefined;
42
+ }
43
+ const { type, scope, breaking, breakingAlt, description } = headerMatch.groups;
44
+ // Extract body and footers
45
+ const bodyLines = lines.slice(1);
46
+ const footers = [];
47
+ let body = '';
48
+ let inFooter = false; // Whether we are currently parsing a footer
49
+ let breakingFooterDetected = false; // Whether we have detected a breaking change footer
50
+ const footerPattern = /^(BREAKING CHANGE(S?)|[a-zA-Z-]+): (.+)$/;
51
+ bodyLines.forEach((line) => {
52
+ if (footerPattern.test(line)) {
53
+ inFooter = true;
54
+ footers.push(line);
55
+ // test for breaking change
56
+ if (/^BREAKING CHANGE(S)?(.+)$/.test(line)) {
57
+ breakingFooterDetected = true;
58
+ }
59
+ }
60
+ else if (inFooter) {
61
+ // Append to the last footer
62
+ footers[footers.length - 1] += `\n${line}`;
63
+ }
64
+ else {
65
+ // Append to the body
66
+ body = body ? `${body}\n${line}` : line;
67
+ }
68
+ });
69
+ return {
70
+ type,
71
+ scope,
72
+ description,
73
+ body: body.trim(),
74
+ footers,
75
+ breaking: !!(breaking || breakingAlt || breakingFooterDetected),
76
+ hash,
77
+ };
78
+ }
79
+ exports.parseConventionalCommit = parseConventionalCommit;
80
+ function determineCommitReleaseType(commit, commitTypeMap) {
81
+ if (commit.breaking)
82
+ return 'major';
83
+ return commitTypeMap.get(commit.type)?.release || 'none';
84
+ }
85
+ function determineReleaseType(commits, commitTypeMap) {
86
+ const releaseTypes = commits.map((commit) => {
87
+ output_1.default.debug('Analyzing commit:');
88
+ output_1.default.debug((0, node_util_1.inspect)(commit, {
89
+ depth: null,
90
+ colors: false,
91
+ }));
92
+ const releaseType = determineCommitReleaseType(commit, commitTypeMap);
93
+ const releaseTypeStr = (releaseType === 'none' && color.grey('none'))
94
+ || (releaseType === 'major' && color.red('major'))
95
+ || (releaseType === 'minor' && color.yellow('minor'))
96
+ || (releaseType === 'patch' && color.green('patch'));
97
+ output_1.default.debug(`Release type: ${releaseTypeStr}`);
98
+ return releaseType;
99
+ });
100
+ if (releaseTypes.includes('major'))
101
+ return 'major';
102
+ if (releaseTypes.includes('minor'))
103
+ return 'minor';
104
+ if (releaseTypes.includes('patch'))
105
+ return 'patch';
106
+ return 'none';
107
+ }
108
+ exports.determineReleaseType = determineReleaseType;
109
+ function groupCommits(commits) {
110
+ return commits.reduce((acc, commit) => {
111
+ if (!acc[commit.type])
112
+ acc[commit.type] = [];
113
+ acc[commit.type].push(commit);
114
+ return acc;
115
+ }, {});
116
+ }
117
+ exports.groupCommits = groupCommits;
118
+ function filterBreakingCommits(commits) {
119
+ return commits.filter((commit) => commit.breaking);
120
+ }
121
+ exports.filterBreakingCommits = filterBreakingCommits;
122
+ //# sourceMappingURL=conventionalcommits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conventionalcommits.js","sourceRoot":"","sources":["../src/conventionalcommits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable max-lines-per-function */
4
+ const hoare_1 = require("hoare");
5
+ const conventionalcommits_1 = require("./conventionalcommits");
6
+ const commitTypes = [
7
+ { type: 'feat', title: 'Features', release: 'minor' },
8
+ { type: 'fix', title: 'Bug Fixes', release: 'patch' },
9
+ { type: 'docs', title: 'Documentation', release: 'none' },
10
+ ];
11
+ const commitTypeMap = new Map(commitTypes.map((type) => [type.type, type]));
12
+ (0, hoare_1.test)('filterBreakingCommits', (assert) => {
13
+ const commits = [
14
+ { type: 'feat', description: 'Add new feature', hash: 'abc123', breaking: true, footers: [] },
15
+ { type: 'fix', description: 'Fix a bug', hash: 'def456', breaking: false, footers: [] },
16
+ { type: 'docs', description: 'Update documentation', hash: 'ghi789', breaking: false, footers: [] },
17
+ ];
18
+ const expected = [
19
+ { type: 'feat', description: 'Add new feature', hash: 'abc123', breaking: true, footers: [] },
20
+ ];
21
+ const actual = (0, conventionalcommits_1.filterBreakingCommits)(commits);
22
+ assert.equal(actual, expected, 'should return only breaking changes');
23
+ assert.equal((0, conventionalcommits_1.filterBreakingCommits)([]), [], 'should return an empty array when there are no breaking changes');
24
+ });
25
+ (0, hoare_1.test)('determineReleaseType: should return the highest release type', (assert) => {
26
+ assert.equal((0, conventionalcommits_1.determineReleaseType)([
27
+ { type: 'feat', description: 'Add new feature', hash: 'abc123', breaking: true, footers: [] },
28
+ { type: 'fix', description: 'Fix a bug', hash: 'def456', breaking: false, footers: [] },
29
+ { type: 'docs', description: 'Update documentation', hash: 'ghi789', breaking: false, footers: [] },
30
+ ], commitTypeMap), 'major', 'highest is major');
31
+ assert.equal((0, conventionalcommits_1.determineReleaseType)([
32
+ { type: 'feat', description: 'Add new feature', hash: 'abc123', breaking: false, footers: [] },
33
+ { type: 'fix', description: 'Fix a bug', hash: 'def456', breaking: false, footers: [] },
34
+ { type: 'docs', description: 'Update documentation', hash: 'ghi789', breaking: false, footers: [] },
35
+ ], commitTypeMap), 'minor', 'highest is minor');
36
+ assert.equal((0, conventionalcommits_1.determineReleaseType)([
37
+ { type: 'fix', description: 'Fix a bug', hash: 'def456', breaking: false, footers: [] },
38
+ { type: 'docs', description: 'Update documentation', hash: 'ghi789', breaking: false, footers: [] },
39
+ ], commitTypeMap), 'patch', 'highest is patch');
40
+ assert.equal((0, conventionalcommits_1.determineReleaseType)([
41
+ { type: 'docs', description: 'Update documentation', hash: 'ghi789', breaking: false, footers: [] },
42
+ ], commitTypeMap), 'none', 'highest is none');
43
+ assert.equal((0, conventionalcommits_1.determineReleaseType)([], commitTypeMap), 'none', 'should return none for no commits');
44
+ assert.equal((0, conventionalcommits_1.determineReleaseType)([
45
+ { type: 'foo', description: 'blah', hash: 'ghi789', breaking: false, footers: [] },
46
+ ], commitTypeMap), 'none', 'should return none for unknown types');
47
+ });
48
+ (0, hoare_1.test)('parseConventionalCommit: breaking changes', (assert) => {
49
+ assert.equal((0, conventionalcommits_1.parseConventionalCommit)('feat: Add new feature\n\nBREAKING CHANGE: This is a breaking change', 'abc123'), {
50
+ type: 'feat',
51
+ scope: undefined,
52
+ description: 'Add new feature',
53
+ body: '',
54
+ footers: ['BREAKING CHANGE: This is a breaking change'],
55
+ breaking: true,
56
+ hash: 'abc123',
57
+ }, 'BREAKING CHANGE in footer');
58
+ assert.equal((0, conventionalcommits_1.parseConventionalCommit)('feat: Add new feature\n\nBREAKING CHANGES: This is a breaking change', 'abc123'), {
59
+ type: 'feat',
60
+ scope: undefined,
61
+ description: 'Add new feature',
62
+ body: '',
63
+ footers: ['BREAKING CHANGES: This is a breaking change'],
64
+ breaking: true,
65
+ hash: 'abc123',
66
+ }, 'BREAKING CHANGES in footer');
67
+ assert.equal((0, conventionalcommits_1.parseConventionalCommit)('feat!: Add new feature', 'abc123'), {
68
+ type: 'feat',
69
+ scope: undefined,
70
+ description: 'Add new feature',
71
+ body: '',
72
+ footers: [],
73
+ breaking: true,
74
+ hash: 'abc123',
75
+ }, 'breaking change via ! without scope');
76
+ assert.equal((0, conventionalcommits_1.parseConventionalCommit)('feat(signin)!: Add new feature', 'abc123'), {
77
+ type: 'feat',
78
+ scope: 'signin',
79
+ description: 'Add new feature',
80
+ body: '',
81
+ footers: [],
82
+ breaking: true,
83
+ hash: 'abc123',
84
+ }, 'breaking change via ! after scope');
85
+ assert.equal((0, conventionalcommits_1.parseConventionalCommit)('feat!(signin): Add new feature', 'abc123'), {
86
+ type: 'feat',
87
+ scope: 'signin',
88
+ description: 'Add new feature',
89
+ body: '',
90
+ footers: [],
91
+ breaking: true,
92
+ hash: 'abc123',
93
+ }, 'breaking change via ! before scope');
94
+ });
95
+ (0, hoare_1.test)('parseConventionalCommit: non-breaking changes', (assert) => {
96
+ assert.equal((0, conventionalcommits_1.parseConventionalCommit)('feat: Add new feature', 'abc123'), {
97
+ type: 'feat',
98
+ scope: undefined,
99
+ description: 'Add new feature',
100
+ body: '',
101
+ footers: [],
102
+ breaking: false,
103
+ hash: 'abc123',
104
+ }, 'without scope, body, or footers');
105
+ assert.equal((0, conventionalcommits_1.parseConventionalCommit)('fix(signin): Fix a bug\n\nThis is a body\n\nFixes: #123', 'abc123'), {
106
+ type: 'fix',
107
+ scope: 'signin',
108
+ description: 'Fix a bug',
109
+ body: 'This is a body',
110
+ footers: ['Fixes: #123'],
111
+ breaking: false,
112
+ hash: 'abc123',
113
+ }, 'with scope, body, and footers');
114
+ assert.equal((0, conventionalcommits_1.parseConventionalCommit)('fix(signin): Fix a bug\n\nThis is a body\n\nStuff: multi-line\nfooter', 'abc123'), {
115
+ type: 'fix',
116
+ scope: 'signin',
117
+ description: 'Fix a bug',
118
+ body: 'This is a body',
119
+ footers: ['Stuff: multi-line\nfooter'],
120
+ breaking: false,
121
+ hash: 'abc123',
122
+ }, 'multi-line footer');
123
+ assert.equal((0, conventionalcommits_1.parseConventionalCommit)('foo: Fix a bug', 'abc123'), {
124
+ type: 'foo',
125
+ scope: undefined,
126
+ description: 'Fix a bug',
127
+ body: '',
128
+ footers: [],
129
+ breaking: false,
130
+ hash: 'abc123',
131
+ }, 'non-specified type');
132
+ });
133
+ (0, hoare_1.test)('parseConventionalCommit: invalid commit should return undefined', (assert) => {
134
+ assert.equal((0, conventionalcommits_1.parseConventionalCommit)('this is not a conventional commit', 'abc123'), undefined);
135
+ });
136
+ //# sourceMappingURL=conventionalcommits.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conventionalcommits.spec.js","sourceRoot":"","sources":["../src/conventionalcommits.spec.ts"],"names":[],"mappings":";;AAAA,2CAA2C;AAC3C,iCAA2B;AAC3B,+DAA2G;AAG3G,MAAM,WAAW,GAAiB;IAC9B,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAC;IACnD,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAC;IACnD,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAC;CAC1D,CAAC;AACF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAE5E,IAAA,YAAI,EAAC,uBAAuB,EAAE,CAAC,MAAM,EAAE,EAAE;IAErC,MAAM,OAAO,GAAG;QACZ,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAC;QAC3F,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC;QACrF,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC;KACpG,CAAC;IACF,MAAM,QAAQ,GAAG;QACb,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAC;KAC9F,CAAC;IACF,MAAM,MAAM,GAAG,IAAA,2CAAqB,EAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,qCAAqC,CAAC,CAAC;IACtE,MAAM,CAAC,KAAK,CAAC,IAAA,2CAAqB,EAAC,EAAE,CAAC,EAAE,EAAE,EAAE,iEAAiE,CAAC,CAAC;AAEnH,CAAC,CAAC,CAAC;AAEH,IAAA,YAAI,EAAC,8DAA8D,EAAE,CAAC,MAAM,EAAE,EAAE;IAE5E,MAAM,CAAC,KAAK,CAAC,IAAA,0CAAoB,EAAC;QAC9B,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAC;QAC3F,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC;QACrF,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC;KACpG,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,IAAA,0CAAoB,EAAC;QAC9B,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC;QAC5F,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC;QACrF,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC;KACpG,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,IAAA,0CAAoB,EAAC;QAC9B,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC;QACrF,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC;KACpG,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,CAAC,IAAA,0CAAoB,EAAC;QAC9B,EAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC;KACpG,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,CAAC,IAAA,0CAAoB,EAAC,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,mCAAmC,CAAC,CAAC;IACnG,MAAM,CAAC,KAAK,CAAC,IAAA,0CAAoB,EAAC;QAC9B,EAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAC;KACnF,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,sCAAsC,CAAC,CAAC;AAEvE,CAAC,CAAC,CAAC;AAEH,IAAA,YAAI,EAAC,2CAA2C,EAAE,CAAC,MAAM,EAAE,EAAE;IAEzD,MAAM,CAAC,KAAK,CACR,IAAA,6CAAuB,EACnB,qEAAqE,EACrE,QAAQ,CACX,EACD;QACI,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,CAAC,4CAA4C,CAAC;QACvD,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,QAAQ;KACjB,EACD,2BAA2B,CAC9B,CAAC;IACF,MAAM,CAAC,KAAK,CACR,IAAA,6CAAuB,EACnB,sEAAsE,EACtE,QAAQ,CACX,EACD;QACI,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,CAAC,6CAA6C,CAAC;QACxD,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,QAAQ;KACjB,EACD,4BAA4B,CAC/B,CAAC;IACF,MAAM,CAAC,KAAK,CACR,IAAA,6CAAuB,EACnB,wBAAwB,EACxB,QAAQ,CACX,EACD;QACI,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,QAAQ;KACjB,EACD,qCAAqC,CACxC,CAAC;IACF,MAAM,CAAC,KAAK,CACR,IAAA,6CAAuB,EACnB,gCAAgC,EAChC,QAAQ,CACX,EACD;QACI,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,QAAQ;KACjB,EACD,mCAAmC,CACtC,CAAC;IACF,MAAM,CAAC,KAAK,CACR,IAAA,6CAAuB,EACnB,gCAAgC,EAChC,QAAQ,CACX,EACD;QACI,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,QAAQ;KACjB,EACD,oCAAoC,CACvC,CAAC;AAEN,CAAC,CAAC,CAAC;AAEH,IAAA,YAAI,EAAC,+CAA+C,EAAE,CAAC,MAAM,EAAE,EAAE;IAE7D,MAAM,CAAC,KAAK,CACR,IAAA,6CAAuB,EACnB,uBAAuB,EACvB,QAAQ,CACX,EACD;QACI,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,QAAQ;KACjB,EACD,iCAAiC,CACpC,CAAC;IACF,MAAM,CAAC,KAAK,CACR,IAAA,6CAAuB,EACnB,yDAAyD,EACzD,QAAQ,CACX,EACD;QACI,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,QAAQ;KACjB,EACD,+BAA+B,CAClC,CAAC;IACF,MAAM,CAAC,KAAK,CACR,IAAA,6CAAuB,EACnB,uEAAuE,EACvE,QAAQ,CACX,EACD;QACI,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,CAAC,2BAA2B,CAAC;QACtC,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,QAAQ;KACjB,EACD,mBAAmB,CACtB,CAAC;IACF,MAAM,CAAC,KAAK,CACR,IAAA,6CAAuB,EACnB,gBAAgB,EAChB,QAAQ,CACX,EACD;QACI,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,QAAQ;KACjB,EACD,oBAAoB,CACvB,CAAC;AAEN,CAAC,CAAC,CAAC;AAEH,IAAA,YAAI,EAAC,iEAAiE,EAAE,CAAC,MAAM,EAAE,EAAE;IAE/E,MAAM,CAAC,KAAK,CACR,IAAA,6CAAuB,EACnB,mCAAmC,EACnC,QAAQ,CACX,EACD,SAAS,CACZ,CAAC;AAEN,CAAC,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export type Args = {
2
+ githubToken?: string;
3
+ npmToken?: string;
4
+ dryRun?: boolean;
5
+ postReleaseBashScript?: string;
6
+ prereleaseChannel?: string;
7
+ tag?: string;
8
+ noRelease?: boolean;
9
+ publish?: boolean;
10
+ };
11
+ export declare function getPrereleaseChannel(args: Args): string | undefined;
12
+ export declare function autorel(args: Args): Promise<void>;
package/dist/index.js ADDED
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.autorel = exports.getPrereleaseChannel = void 0;
30
+ /* eslint-disable max-lines-per-function */
31
+ const semver = __importStar(require("./semver"));
32
+ const convCom = __importStar(require("./conventionalcommits"));
33
+ const git = __importStar(require("./lib/git"));
34
+ const npm = __importStar(require("./lib/npm"));
35
+ const color = __importStar(require("./lib/colors"));
36
+ const changelog_1 = require("./changelog");
37
+ const github = __importStar(require("./services/github"));
38
+ const output_1 = __importDefault(require("./lib/output"));
39
+ const config_1 = require("./config");
40
+ const versionBump_1 = require("./versionBump");
41
+ function getPrereleaseChannel(args) {
42
+ if (args.prereleaseChannel)
43
+ return args.prereleaseChannel;
44
+ const branch = git.getCurrentBranch();
45
+ if (!branch)
46
+ throw new Error('Could not get the current branch.');
47
+ const config = (0, config_1.getConfig)();
48
+ if (!config.branches || !config.branches.length)
49
+ throw new Error('Branches are not defined in the configuration.');
50
+ const matchingBranch = config.branches.find((b) => b.name === branch);
51
+ if (!matchingBranch)
52
+ throw new Error(`Branch ${branch} is not defined in the configuration.`);
53
+ return matchingBranch.prereleaseChannel || undefined;
54
+ }
55
+ exports.getPrereleaseChannel = getPrereleaseChannel;
56
+ async function autorel(args) {
57
+ const gitHubToken = args.githubToken || process.env.GITHUB_TOKEN;
58
+ const npmtoken = args.npmToken || process.env.NPM_TOKEN;
59
+ const prereleaseChannel = getPrereleaseChannel(args);
60
+ if (!gitHubToken) {
61
+ output_1.default.error('GitHub Token is required for creating releases. Set the GITHUB_TOKEN environment variable or pass it via --github-token.');
62
+ throw new Error('INVALID_CONFIGURATION');
63
+ }
64
+ if (!npmtoken && args.publish) {
65
+ output_1.default.error('NPM Token is required for publishing to npm. Set the NPM_TOKEN environment variable or pass it via --npm-token.');
66
+ throw new Error('INVALID_CONFIGURATION');
67
+ }
68
+ if (args.dryRun) {
69
+ output_1.default.warn('Running in dry-run mode. No changes will be made.');
70
+ }
71
+ if (prereleaseChannel && !args.tag) {
72
+ output_1.default.log(`Using prerelease channel: ${color.bold(prereleaseChannel)}`);
73
+ }
74
+ const config = (0, config_1.getConfig)();
75
+ const commitTypeMap = new Map(config.commitTypes.map((type) => [type.type, type]));
76
+ const lastTag = git.getLastTag();
77
+ const lastProdTag = git.getLastProdTag();
78
+ output_1.default.log(`The last tag is: ${lastTag ? lastTag : color.grey('none')}`);
79
+ output_1.default.log(`The last release tag is: ${lastProdTag ? lastProdTag : color.grey('none')}`);
80
+ const commits = git.getCommitsSinceLastTag(lastTag);
81
+ output_1.default.log(`Found ${color.bold(commits.length.toString())} commit(s) ${lastTag ? `since ${lastTag}` : 'in the repository'}.`);
82
+ const parsedCommits = commits.map((commit) => convCom.parseConventionalCommit(commit.message, commit.hash))
83
+ .filter((commit) => !!commit);
84
+ const releaseType = convCom.determineReleaseType(parsedCommits, commitTypeMap);
85
+ const releaseTypeStr = (releaseType === 'none' && color.grey('none'))
86
+ || (releaseType === 'major' && color.red('major'))
87
+ || (releaseType === 'minor' && color.yellow('minor'))
88
+ || (releaseType === 'patch' && color.green('patch'));
89
+ output_1.default.log(`The release type is: ${releaseTypeStr}`);
90
+ if (releaseType === 'none' && !args.tag) {
91
+ output_1.default.log('No release is needed. Have a nice day ^_^');
92
+ return;
93
+ }
94
+ const nextTag = semver.incrementVersion(lastProdTag || 'v0.0.1', lastTag || 'v0.0.1', releaseType, prereleaseChannel);
95
+ if (args.tag) {
96
+ output_1.default.log(`The next version would be ${nextTag}, but the tag was set by --tag to be ${color.bold(args.tag)}.`);
97
+ output_1.default.warn('The tag was overriden by the --tag parameter. This may cause the next release to be incorrect. Make sure you know what you are doing. This may fail if the tag already exists.');
98
+ }
99
+ else {
100
+ output_1.default.log(`The next version is: ${color.bold(nextTag)}`);
101
+ }
102
+ const changelog = (0, changelog_1.generateChangelog)(parsedCommits, commitTypeMap, config.breakingChangeTitle);
103
+ output_1.default.debug(`The changelog is:\n${changelog}`);
104
+ if (args.dryRun)
105
+ return;
106
+ git.createAndPushTag(args.tag ? args.tag : nextTag);
107
+ const { owner, repository } = git.getRepo();
108
+ !args.noRelease && github.createRelease({
109
+ token: gitHubToken,
110
+ owner,
111
+ repository,
112
+ tag: args.tag ? args.tag : nextTag,
113
+ name: nextTag,
114
+ body: changelog,
115
+ });
116
+ // update package.json
117
+ (0, versionBump_1.versionBump)(nextTag);
118
+ // publish package
119
+ args.publish && npm.publishPackage(gitHubToken, prereleaseChannel);
120
+ }
121
+ exports.autorel = autorel;
122
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function $(strings: TemplateStringsArray, ...values: any[]): string;
@@ -0,0 +1,17 @@
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
+ exports.$ = void 0;
7
+ const child_process_1 = require("child_process");
8
+ const output_1 = __importDefault(require("./output"));
9
+ function $(strings, ...values) {
10
+ const command = strings.reduce((acc, str, i) => acc + str + (values[i] || ''), '');
11
+ output_1.default.debug(command);
12
+ const escapedCommand = command.replace(/(["$`\\])/g, '\\$1').replace(/\n/g, '\\n');
13
+ const output = (0, child_process_1.execSync)(`bash -c "${escapedCommand}"`, { encoding: 'utf8' });
14
+ return output.trim();
15
+ }
16
+ exports.$ = $;
17
+ //# sourceMappingURL=bash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bash.js","sourceRoot":"","sources":["../../src/lib/bash.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAuC;AACvC,sDAA2B;AAE3B,SAAgB,CAAC,CAAC,OAA6B,EAAE,GAAG,MAAa;IAE7D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEnF,gBAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEnB,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,YAAY,cAAc,GAAG,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC;IAE3E,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AAEzB,CAAC;AAXD,cAWC"}
@@ -0,0 +1,5 @@
1
+ export declare function red(text: string): string;
2
+ export declare function grey(text: string): string;
3
+ export declare function yellow(text: string): string;
4
+ export declare function green(text: string): string;
5
+ export declare function bold(text: string): string;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bold = exports.green = exports.yellow = exports.grey = exports.red = void 0;
4
+ function red(text) {
5
+ return `\x1b[91m${text}\x1b[0m`;
6
+ }
7
+ exports.red = red;
8
+ function grey(text) {
9
+ return `\x1b[90m${text}\x1b[0m`;
10
+ }
11
+ exports.grey = grey;
12
+ function yellow(text) {
13
+ return `\x1b[33m${text}\x1b[0m`;
14
+ }
15
+ exports.yellow = yellow;
16
+ function green(text) {
17
+ return `\x1b[32m${text}\x1b[0m`;
18
+ }
19
+ exports.green = green;
20
+ function bold(text) {
21
+ return `\x1b[1m${text}\x1b[0m`;
22
+ }
23
+ exports.bold = bold;
24
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/lib/colors.ts"],"names":[],"mappings":";;;AAAA,SAAgB,GAAG,CAAC,IAAY;IAE5B,OAAO,WAAW,IAAI,SAAS,CAAC;AAEpC,CAAC;AAJD,kBAIC;AAED,SAAgB,IAAI,CAAC,IAAY;IAE7B,OAAO,WAAW,IAAI,SAAS,CAAC;AAEpC,CAAC;AAJD,oBAIC;AAED,SAAgB,MAAM,CAAC,IAAY;IAE/B,OAAO,WAAW,IAAI,SAAS,CAAC;AAEpC,CAAC;AAJD,wBAIC;AAED,SAAgB,KAAK,CAAC,IAAY;IAE9B,OAAO,WAAW,IAAI,SAAS,CAAC;AAEpC,CAAC;AAJD,sBAIC;AAED,SAAgB,IAAI,CAAC,IAAY;IAE7B,OAAO,UAAU,IAAI,SAAS,CAAC;AAEnC,CAAC;AAJD,oBAIC"}
@@ -0,0 +1,13 @@
1
+ export type Commit = {
2
+ hash: string;
3
+ message: string;
4
+ };
5
+ export declare function createAndPushTag(tag: string): void;
6
+ export declare function getLastTag(): string;
7
+ export declare function getLastProdTag(): string;
8
+ export declare function getRepo(): {
9
+ owner: string;
10
+ repository: string;
11
+ };
12
+ export declare function getCommitsSinceLastTag(lastTag: string): Commit[];
13
+ export declare function getCurrentBranch(): string;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCurrentBranch = exports.getCommitsSinceLastTag = exports.getRepo = exports.getLastProdTag = exports.getLastTag = exports.createAndPushTag = void 0;
4
+ const bash_1 = require("./bash");
5
+ function createAndPushTag(tag) {
6
+ (0, bash_1.$) `git tag ${tag}`;
7
+ (0, bash_1.$) `git push origin ${tag}`;
8
+ }
9
+ exports.createAndPushTag = createAndPushTag;
10
+ function getLastTag() {
11
+ return (0, bash_1.$) `git tag | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -n 1` || '';
12
+ }
13
+ exports.getLastTag = getLastTag;
14
+ function getLastProdTag() {
15
+ return (0, bash_1.$) `git tag --list | grep -E "^v[0-9]+\\.[0-9]+\\.[0-9]+$" | sort -V | tail -n 1` || '';
16
+ }
17
+ exports.getLastProdTag = getLastProdTag;
18
+ function getRepo() {
19
+ if (process.env.GITHUB_REPOSITORY) {
20
+ const [owner, repository] = process.env.GITHUB_REPOSITORY.split('/');
21
+ return { owner, repository };
22
+ }
23
+ const url = (0, bash_1.$) `git remote get-url origin`;
24
+ const regex = /^git@github\.com:(.+)\/(.+)\.git$/;
25
+ const matches = url.match(regex);
26
+ if (!matches)
27
+ throw new Error('The git repo URL does not match the expected pattern.');
28
+ const username = matches[1];
29
+ const repository = matches[2];
30
+ return { owner: username, repository };
31
+ }
32
+ exports.getRepo = getRepo;
33
+ function getCommitsSinceLastTag(lastTag) {
34
+ const format = '<commit><hash>%h</hash><message>%B</message></commit>';
35
+ const rawLog = lastTag !== ''
36
+ ? (0, bash_1.$) `git log --pretty=format:"${format}" ${lastTag}..HEAD`
37
+ : (0, bash_1.$) `git log --pretty=format:"${format}"`;
38
+ const commitsXml = rawLog.match(/<commit>.*?<\/commit>/gs);
39
+ if (!commitsXml)
40
+ return [];
41
+ return commitsXml.map((commitXml) => {
42
+ const hash = commitXml.match(/<hash>(.*?)<\/hash>/)?.[1].trim() || '';
43
+ const message = commitXml.match(/<message>(.*?)<\/message>/s)?.[1].trim() || '';
44
+ return { hash, message };
45
+ });
46
+ }
47
+ exports.getCommitsSinceLastTag = getCommitsSinceLastTag;
48
+ function getCurrentBranch() {
49
+ return (0, bash_1.$) `git rev-parse --abbrev-ref HEAD`;
50
+ }
51
+ exports.getCurrentBranch = getCurrentBranch;
52
+ //# sourceMappingURL=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/lib/git.ts"],"names":[],"mappings":";;;AAAA,iCAAyB;AAOzB,SAAgB,gBAAgB,CAAC,GAAW;IAExC,IAAA,QAAC,EAAA,WAAW,GAAG,EAAE,CAAC;IAClB,IAAA,QAAC,EAAA,mBAAmB,GAAG,EAAE,CAAC;AAE9B,CAAC;AALD,4CAKC;AAED,SAAgB,UAAU;IAEtB,OAAO,IAAA,QAAC,EAAA,oEAAoE,IAAI,EAAE,CAAC;AAEvF,CAAC;AAJD,gCAIC;AAED,SAAgB,cAAc;IAE1B,OAAO,IAAA,QAAC,EAAA,8EAA8E,IAAI,EAAE,CAAC;AAEjG,CAAC;AAJD,wCAIC;AAED,SAAgB,OAAO;IAEnB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE;QAE/B,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAErE,OAAO,EAAC,KAAK,EAAE,UAAU,EAAC,CAAC;KAE9B;IAED,MAAM,GAAG,GAAG,IAAA,QAAC,EAAA,2BAA2B,CAAC;IACzC,MAAM,KAAK,GAAG,mCAAmC,CAAC;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEjC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAEvF,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE9B,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAC,CAAC;AAEzC,CAAC;AArBD,0BAqBC;AAED,SAAgB,sBAAsB,CAAC,OAAe;IAElD,MAAM,MAAM,GAAG,uDAAuD,CAAC;IACvE,MAAM,MAAM,GAAG,OAAO,KAAK,EAAE;QACzB,CAAC,CAAC,IAAA,QAAC,EAAA,4BAA4B,MAAM,KAAK,OAAO,QAAQ;QACzD,CAAC,CAAC,IAAA,QAAC,EAAA,4BAA4B,MAAM,GAAG,CAAC;IAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAE3D,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QAEhC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QACtE,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAEhF,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;IAE3B,CAAC,CAAC,CAAC;AAEP,CAAC;AAnBD,wDAmBC;AAED,SAAgB,gBAAgB;IAE5B,OAAO,IAAA,QAAC,EAAA,iCAAiC,CAAC;AAE9C,CAAC;AAJD,4CAIC"}
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" />
2
+ import http from 'node:http';
3
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';
4
+ export declare class Non200Response extends Error {
5
+ status: number;
6
+ response: unknown;
7
+ request: string;
8
+ constructor(status: number, response: unknown, request: string);
9
+ }
10
+ export declare function httpRequest(method: HttpMethod, url: string, body?: string, options?: http.RequestOptions): Promise<string>;
@@ -0,0 +1,58 @@
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
+ exports.httpRequest = exports.Non200Response = void 0;
7
+ /* eslint-disable max-lines-per-function */
8
+ const node_http_1 = __importDefault(require("node:http"));
9
+ const node_https_1 = __importDefault(require("node:https"));
10
+ const node_url_1 = require("node:url");
11
+ const toResult_1 = require("./toResult");
12
+ class Non200Response extends Error {
13
+ constructor(status, response, request) {
14
+ super('Non200Response');
15
+ Object.setPrototypeOf(this, new.target.prototype); // restore prototype chain
16
+ this.name = 'Non200Response';
17
+ this.status = status;
18
+ this.response = response;
19
+ this.request = request;
20
+ }
21
+ }
22
+ exports.Non200Response = Non200Response;
23
+ async function httpRequest(method, url, body, options) {
24
+ const urlObj = new node_url_1.URL(url);
25
+ const requestOptions = {
26
+ hostname: urlObj.hostname,
27
+ port: urlObj.port,
28
+ path: urlObj.pathname,
29
+ protocol: urlObj.protocol,
30
+ method,
31
+ ...options,
32
+ };
33
+ const [err, resp] = await (0, toResult_1.toResultAsync)(httpRequestPromise(requestOptions, body));
34
+ if (err) {
35
+ throw err;
36
+ }
37
+ const responseData = await new Promise((resolve, reject) => {
38
+ let data = '';
39
+ resp.on('data', (chunk) => data += chunk);
40
+ resp.on('end', () => resolve(data));
41
+ resp.on('error', reject);
42
+ });
43
+ const statusCode = resp.statusCode || 0;
44
+ if (statusCode < 200 || statusCode > 299) {
45
+ throw new Non200Response(statusCode, responseData, `${method} ${url}`);
46
+ }
47
+ return responseData;
48
+ }
49
+ exports.httpRequest = httpRequest;
50
+ async function httpRequestPromise(options, body) {
51
+ return new Promise((resolve, reject) => {
52
+ const req = options.protocol === 'https:' ? node_https_1.default.request(options, resolve) : node_http_1.default.request(options, resolve);
53
+ req.on('error', reject);
54
+ req.write(body || '');
55
+ req.end();
56
+ });
57
+ }
58
+ //# sourceMappingURL=httpRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpRequest.js","sourceRoot":"","sources":["../../src/lib/httpRequest.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA2C;AAC3C,0DAA6B;AAC7B,4DAA+B;AAC/B,uCAA6B;AAC7B,yCAAyC;AAIzC,MAAa,cAAe,SAAQ,KAAK;IAMrC,YAAY,MAAc,EAAE,QAAiB,EAAE,OAAe;QAE1D,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,0BAA0B;QAC7E,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAE3B,CAAC;CAEJ;AAjBD,wCAiBC;AAEM,KAAK,UAAU,WAAW,CAC7B,MAAkB,EAClB,GAAW,EACX,IAAa,EACb,OAA6B;IAG7B,MAAM,MAAM,GAAG,IAAI,cAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,cAAc,GAAG;QACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,QAAQ;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,MAAM;QACN,GAAG,OAAO;KACb,CAAC;IAEF,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,MAAM,IAAA,wBAAa,EAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IAElF,IAAI,GAAG,EAAE;QAEL,MAAM,GAAG,CAAC;KAEb;IAED,MAAM,YAAY,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAEvD,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE7B,CAAC,CAAW,CAAC;IACb,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IAGxC,IAAI,UAAU,GAAG,GAAG,IAAI,UAAU,GAAG,GAAG,EAAE;QAEtC,MAAM,IAAI,cAAc,CACpB,UAAU,EACV,YAAY,EACZ,GAAG,MAAM,IAAI,GAAG,EAAE,CACrB,CAAC;KAEL;IAED,OAAO,YAAY,CAAC;AAExB,CAAC;AAjDD,kCAiDC;AAED,KAAK,UAAU,kBAAkB,CAAC,OAA6B,EAAE,IAAa;IAE1E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAEnC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE7G,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACtB,GAAG,CAAC,GAAG,EAAE,CAAC;IAEd,CAAC,CAAC,CAAC;AAEP,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function publishPackage(npmToken: string, channel?: string): void;