@cluerise/tools 4.1.2 → 4.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/configs/eslint.config.js +0 -3
- package/dist/configs/prettier.config.js +1 -0
- package/dist/configs/release.config.js +10 -1
- package/dist/scripts/check-heroku-node-version/main.js +51 -69
- package/dist/scripts/create-commit-message/main.js +31 -46
- package/dist/scripts/format-commit-message/main.js +31 -46
- package/dist/scripts/init/main.js +284 -319
- package/dist/scripts/lint/main.js +152 -182
- package/dist/scripts/release/assets/index-BOULatd3.js +50541 -0
- package/dist/scripts/release/main.js +34222 -174
- package/dist/scripts/update-node-versions/main.js +53 -71
- package/package.json +15 -14
- package/dist/configs/pnpm-workspace.yaml +0 -1
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __typeError = (msg) => {
|
|
2
|
-
throw TypeError(msg);
|
|
3
|
-
};
|
|
4
|
-
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
5
|
-
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
6
|
-
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
7
|
-
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
8
|
-
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
9
|
-
var _origins, _names, _data, _PackageJson_instances, parseGitRepository_fn, _releasesUrl;
|
|
10
1
|
import FileSystem from "node:fs/promises";
|
|
11
2
|
import * as ActionsCore from "@actions/core";
|
|
12
3
|
import SemVer from "semver";
|
|
@@ -14,7 +5,9 @@ import { z } from "zod";
|
|
|
14
5
|
const gitProviderOrigins = {
|
|
15
6
|
github: "https://github.com"
|
|
16
7
|
};
|
|
17
|
-
|
|
8
|
+
class GitProvider {
|
|
9
|
+
static #origins = gitProviderOrigins;
|
|
10
|
+
static #names = Object.keys(this.#origins);
|
|
18
11
|
/**
|
|
19
12
|
* Checks if the provided name is a valid Git provider name.
|
|
20
13
|
*
|
|
@@ -22,7 +15,7 @@ const _GitProvider = class _GitProvider {
|
|
|
22
15
|
* @returns True if the name is valid, false otherwise.
|
|
23
16
|
*/
|
|
24
17
|
static isValidName(name) {
|
|
25
|
-
return
|
|
18
|
+
return this.#names.includes(name);
|
|
26
19
|
}
|
|
27
20
|
/**
|
|
28
21
|
* Returns a Git provider origin.
|
|
@@ -31,14 +24,9 @@ const _GitProvider = class _GitProvider {
|
|
|
31
24
|
* @returns The origin URL of the Git provider.
|
|
32
25
|
*/
|
|
33
26
|
static getOrigin(name) {
|
|
34
|
-
return
|
|
27
|
+
return this.#origins[name];
|
|
35
28
|
}
|
|
36
|
-
}
|
|
37
|
-
_origins = new WeakMap();
|
|
38
|
-
_names = new WeakMap();
|
|
39
|
-
__privateAdd(_GitProvider, _origins, gitProviderOrigins);
|
|
40
|
-
__privateAdd(_GitProvider, _names, Object.keys(__privateGet(_GitProvider, _origins)));
|
|
41
|
-
let GitProvider = _GitProvider;
|
|
29
|
+
}
|
|
42
30
|
const enginesSchema = z.object({
|
|
43
31
|
node: z.string()
|
|
44
32
|
});
|
|
@@ -55,11 +43,10 @@ const packageJsonDataSchema = z.object({
|
|
|
55
43
|
engines: enginesSchema.optional(),
|
|
56
44
|
repository: repositorySchema.optional()
|
|
57
45
|
});
|
|
58
|
-
|
|
46
|
+
class PackageJson {
|
|
47
|
+
#data;
|
|
59
48
|
constructor(data) {
|
|
60
|
-
|
|
61
|
-
__privateAdd(this, _data);
|
|
62
|
-
__privateSet(this, _data, data);
|
|
49
|
+
this.#data = data;
|
|
63
50
|
}
|
|
64
51
|
static async init() {
|
|
65
52
|
const content = await FileSystem.readFile("package.json", { encoding: "utf8" });
|
|
@@ -70,13 +57,13 @@ const _PackageJson = class _PackageJson {
|
|
|
70
57
|
cause: parseResult.error
|
|
71
58
|
});
|
|
72
59
|
}
|
|
73
|
-
return new
|
|
60
|
+
return new PackageJson(data);
|
|
74
61
|
}
|
|
75
62
|
/**
|
|
76
63
|
* Returns the required engines.
|
|
77
64
|
*/
|
|
78
65
|
get engines() {
|
|
79
|
-
return
|
|
66
|
+
return this.#data.engines;
|
|
80
67
|
}
|
|
81
68
|
/**
|
|
82
69
|
* Sets the required engines.
|
|
@@ -84,13 +71,44 @@ const _PackageJson = class _PackageJson {
|
|
|
84
71
|
* @param engines - The engines to set.
|
|
85
72
|
*/
|
|
86
73
|
set engines(engines) {
|
|
87
|
-
|
|
74
|
+
this.#data.engines = engines;
|
|
88
75
|
}
|
|
89
76
|
/**
|
|
90
77
|
* Returns the repository information.
|
|
91
78
|
*/
|
|
92
79
|
get repository() {
|
|
93
|
-
return
|
|
80
|
+
return this.#data.repository;
|
|
81
|
+
}
|
|
82
|
+
#parseGitRepository(urlString) {
|
|
83
|
+
if (!urlString) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
const urlValue = urlString.includes(":") ? urlString : `https://${urlString}`;
|
|
87
|
+
const url = new URL(urlValue);
|
|
88
|
+
const scheme = url.protocol.slice(0, -1);
|
|
89
|
+
if (GitProvider.isValidName(scheme)) {
|
|
90
|
+
const [owner, repositoryName] = url.pathname.split("/");
|
|
91
|
+
if (!owner || !repositoryName) {
|
|
92
|
+
throw new Error("Unknown owner or repositoryName");
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
origin: GitProvider.getOrigin(scheme),
|
|
96
|
+
owner,
|
|
97
|
+
repositoryName
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
if (scheme === "https") {
|
|
101
|
+
const [, owner, repositoryName] = url.pathname.split("/");
|
|
102
|
+
if (!owner || !repositoryName) {
|
|
103
|
+
throw new Error("Unknown owner or repositoryName");
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
origin: url.origin,
|
|
107
|
+
owner,
|
|
108
|
+
repositoryName: repositoryName.endsWith(".git") ? repositoryName.slice(0, -4) : repositoryName
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
throw new Error("Unsupported repository URL");
|
|
94
112
|
}
|
|
95
113
|
/**
|
|
96
114
|
* Parses the repository information from package.json.
|
|
@@ -102,52 +120,18 @@ const _PackageJson = class _PackageJson {
|
|
|
102
120
|
return null;
|
|
103
121
|
}
|
|
104
122
|
if (typeof this.repository === "string") {
|
|
105
|
-
return
|
|
123
|
+
return this.#parseGitRepository(this.repository);
|
|
106
124
|
}
|
|
107
|
-
return
|
|
125
|
+
return this.#parseGitRepository(this.repository.url);
|
|
108
126
|
}
|
|
109
127
|
/**
|
|
110
128
|
* Saves the package.json file with the current data.
|
|
111
129
|
*/
|
|
112
130
|
async save() {
|
|
113
|
-
const content = JsonUtils.prettify(
|
|
131
|
+
const content = JsonUtils.prettify(this.#data) + "\n";
|
|
114
132
|
await FileSystem.writeFile("package.json", content, { encoding: "utf8" });
|
|
115
133
|
}
|
|
116
|
-
}
|
|
117
|
-
_data = new WeakMap();
|
|
118
|
-
_PackageJson_instances = new WeakSet();
|
|
119
|
-
parseGitRepository_fn = function(urlString) {
|
|
120
|
-
if (!urlString) {
|
|
121
|
-
return null;
|
|
122
|
-
}
|
|
123
|
-
const urlValue = urlString.includes(":") ? urlString : `https://${urlString}`;
|
|
124
|
-
const url = new URL(urlValue);
|
|
125
|
-
const scheme = url.protocol.slice(0, -1);
|
|
126
|
-
if (GitProvider.isValidName(scheme)) {
|
|
127
|
-
const [owner, repositoryName] = url.pathname.split("/");
|
|
128
|
-
if (!owner || !repositoryName) {
|
|
129
|
-
throw new Error("Unknown owner or repositoryName");
|
|
130
|
-
}
|
|
131
|
-
return {
|
|
132
|
-
origin: GitProvider.getOrigin(scheme),
|
|
133
|
-
owner,
|
|
134
|
-
repositoryName
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
if (scheme === "https") {
|
|
138
|
-
const [, owner, repositoryName] = url.pathname.split("/");
|
|
139
|
-
if (!owner || !repositoryName) {
|
|
140
|
-
throw new Error("Unknown owner or repositoryName");
|
|
141
|
-
}
|
|
142
|
-
return {
|
|
143
|
-
origin: url.origin,
|
|
144
|
-
owner,
|
|
145
|
-
repositoryName: repositoryName.endsWith(".git") ? repositoryName.slice(0, -4) : repositoryName
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
throw new Error("Unsupported repository URL");
|
|
149
|
-
};
|
|
150
|
-
let PackageJson = _PackageJson;
|
|
134
|
+
}
|
|
151
135
|
const runMain = (main2) => {
|
|
152
136
|
Promise.resolve().then(() => main2(process.argv.slice(2))).then((exitCode) => {
|
|
153
137
|
process.exit(exitCode);
|
|
@@ -190,13 +174,14 @@ const nodeJsReleaseSchema = z.object({
|
|
|
190
174
|
security: z.boolean()
|
|
191
175
|
});
|
|
192
176
|
class NodeJs {
|
|
177
|
+
static #releasesUrl = "https://nodejs.org/dist/index.json";
|
|
193
178
|
/**
|
|
194
179
|
* Fetches all Node.js releases.
|
|
195
180
|
*
|
|
196
181
|
* @returns A promise that resolves to an array of NodeJsRelease objects.
|
|
197
182
|
*/
|
|
198
183
|
static async fetchReleases() {
|
|
199
|
-
const response = await fetch(
|
|
184
|
+
const response = await fetch(this.#releasesUrl);
|
|
200
185
|
const data = await response.json();
|
|
201
186
|
return z.array(nodeJsReleaseSchema).parse(data);
|
|
202
187
|
}
|
|
@@ -210,12 +195,9 @@ class NodeJs {
|
|
|
210
195
|
return latestRelease ?? null;
|
|
211
196
|
}
|
|
212
197
|
}
|
|
213
|
-
_releasesUrl = new WeakMap();
|
|
214
|
-
__privateAdd(NodeJs, _releasesUrl, "https://nodejs.org/dist/index.json");
|
|
215
198
|
const updateNvmrc = (version) => FileSystem.writeFile(".nvmrc", `v${version}
|
|
216
199
|
`);
|
|
217
200
|
const updatePackageJson = async (version) => {
|
|
218
|
-
var _a;
|
|
219
201
|
const packageJson = await PackageJson.init();
|
|
220
202
|
if (!packageJson.engines) {
|
|
221
203
|
return;
|
|
@@ -224,7 +206,7 @@ const updatePackageJson = async (version) => {
|
|
|
224
206
|
if (!nodeVersion || nodeVersion === version) {
|
|
225
207
|
return;
|
|
226
208
|
}
|
|
227
|
-
const coerceNodeVersion =
|
|
209
|
+
const coerceNodeVersion = SemVer.coerce(nodeVersion)?.version;
|
|
228
210
|
if (!coerceNodeVersion) {
|
|
229
211
|
return;
|
|
230
212
|
}
|
|
@@ -234,8 +216,8 @@ const updatePackageJson = async (version) => {
|
|
|
234
216
|
const main = async () => {
|
|
235
217
|
try {
|
|
236
218
|
const nodeRelease = await NodeJs.fetchLatestRelease();
|
|
237
|
-
const nodeVersion = nodeRelease
|
|
238
|
-
const versionNumber =
|
|
219
|
+
const nodeVersion = nodeRelease?.version;
|
|
220
|
+
const versionNumber = nodeVersion?.startsWith("v") ? nodeVersion.slice(1) : nodeVersion;
|
|
239
221
|
if (!versionNumber) {
|
|
240
222
|
console.error("Error: Unknown latest Node.js version number");
|
|
241
223
|
return 1;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cluerise/tools",
|
|
3
|
-
"version": "4.1
|
|
3
|
+
"version": "4.2.1",
|
|
4
4
|
"description": "Tools for maintaining TypeScript projects.",
|
|
5
5
|
"author": "Branislav Holý <brano@holy.am>",
|
|
6
6
|
"repository": "github:cluerise/tools",
|
|
@@ -22,29 +22,30 @@
|
|
|
22
22
|
"@commitlint/config-conventional": "19.8.1",
|
|
23
23
|
"@commitlint/load": "19.8.1",
|
|
24
24
|
"@commitlint/types": "19.8.1",
|
|
25
|
-
"@eslint/js": "9.
|
|
25
|
+
"@eslint/js": "9.29.0",
|
|
26
26
|
"@eslint/json": "0.12.0",
|
|
27
|
-
"@eslint/markdown": "6.
|
|
28
|
-
"@html-eslint/eslint-plugin": "0.
|
|
29
|
-
"@html-eslint/parser": "0.
|
|
30
|
-
"@typescript-eslint/parser": "8.
|
|
27
|
+
"@eslint/markdown": "6.6.0",
|
|
28
|
+
"@html-eslint/eslint-plugin": "0.42.0",
|
|
29
|
+
"@html-eslint/parser": "0.42.0",
|
|
30
|
+
"@typescript-eslint/parser": "8.35.0",
|
|
31
31
|
"conventional-changelog-conventionalcommits": "9.0.0",
|
|
32
|
-
"eslint": "9.
|
|
32
|
+
"eslint": "9.29.0",
|
|
33
33
|
"eslint-config-prettier": "10.1.5",
|
|
34
34
|
"eslint-import-resolver-typescript": "4.4.3",
|
|
35
|
-
"eslint-plugin-import": "2.
|
|
36
|
-
"eslint-plugin-prettier": "5.
|
|
35
|
+
"eslint-plugin-import": "2.32.0",
|
|
36
|
+
"eslint-plugin-prettier": "5.5.0",
|
|
37
37
|
"eslint-plugin-simple-import-sort": "12.1.1",
|
|
38
38
|
"eslint-plugin-unicorn": "59.0.1",
|
|
39
39
|
"eslint-plugin-yml": "1.18.0",
|
|
40
|
-
"glob": "11.0.
|
|
40
|
+
"glob": "11.0.3",
|
|
41
41
|
"globals": "16.2.0",
|
|
42
|
-
"lint-staged": "16.1.
|
|
43
|
-
"prettier": "3.
|
|
42
|
+
"lint-staged": "16.1.2",
|
|
43
|
+
"prettier": "3.6.1",
|
|
44
|
+
"prettier-plugin-sh": "0.17.4",
|
|
44
45
|
"semantic-release": "24.2.5",
|
|
45
46
|
"semver": "7.7.2",
|
|
46
47
|
"smol-toml": "1.3.4",
|
|
47
|
-
"typescript-eslint": "8.
|
|
48
|
-
"zod": "3.25.
|
|
48
|
+
"typescript-eslint": "8.35.0",
|
|
49
|
+
"zod": "3.25.67"
|
|
49
50
|
}
|
|
50
51
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
engineStrict: true
|