@cluerise/tools 5.3.3 → 5.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/configs/commitlint.config.ts +3 -3
- package/dist/configs/eslint.config.js +93 -63
- package/dist/configs/lint-staged.config.js +2 -2
- package/dist/configs/prettier.config.js +10 -5
- package/dist/configs/release-cwd.config.cjs +1 -1
- package/dist/configs/release.config.js +19 -19
- package/dist/configs/tsconfig.json +1 -0
- package/dist/scripts/init/main.js +4 -8
- package/dist/scripts/lint/main.js +4 -8
- package/dist/scripts/release/main.js +8 -8
- package/package.json +10 -10
|
@@ -22,10 +22,10 @@ const commitlintConfig: UserConfig = {
|
|
|
22
22
|
'type-enum': [
|
|
23
23
|
RuleConfigSeverity.Error,
|
|
24
24
|
'always',
|
|
25
|
-
['chore', 'deps', 'docs', 'feat', 'fix', 'perf', 'refactor', 'release', 'revert', 'style', 'test']
|
|
25
|
+
['chore', 'deps', 'docs', 'feat', 'fix', 'perf', 'refactor', 'release', 'revert', 'style', 'test'],
|
|
26
26
|
],
|
|
27
|
-
'type-empty': [RuleConfigSeverity.Error, 'never']
|
|
28
|
-
}
|
|
27
|
+
'type-empty': [RuleConfigSeverity.Error, 'never'],
|
|
28
|
+
},
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
export default commitlintConfig;
|
|
@@ -15,7 +15,7 @@ export default defineConfig([
|
|
|
15
15
|
// JavaScript
|
|
16
16
|
{
|
|
17
17
|
...eslintJs.configs.recommended,
|
|
18
|
-
name: 'cluerise: eslint/js'
|
|
18
|
+
name: 'cluerise: eslint/js',
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
name: 'cluerise: eslint/js/rules',
|
|
@@ -25,33 +25,33 @@ export default defineConfig([
|
|
|
25
25
|
'no-undef-init': 'error',
|
|
26
26
|
'no-unused-vars': 'off',
|
|
27
27
|
'object-shorthand': 'error',
|
|
28
|
-
'sort-imports': 'off'
|
|
29
|
-
}
|
|
28
|
+
'sort-imports': 'off',
|
|
29
|
+
},
|
|
30
30
|
},
|
|
31
31
|
// TypeScript
|
|
32
32
|
...typescriptEslint.configs.recommendedTypeChecked.map((config) => ({
|
|
33
33
|
...config,
|
|
34
|
-
name: `cluerise: ${config.name ?? 'typescript-eslint'}
|
|
34
|
+
name: `cluerise: ${config.name ?? 'typescript-eslint'}`,
|
|
35
35
|
})),
|
|
36
36
|
{
|
|
37
37
|
name: 'cluerise: typescript-eslint/language-options',
|
|
38
38
|
languageOptions: {
|
|
39
39
|
globals: {
|
|
40
40
|
...globals.browser,
|
|
41
|
-
...globals.node
|
|
41
|
+
...globals.node,
|
|
42
42
|
},
|
|
43
43
|
parserOptions: {
|
|
44
44
|
projectService: {
|
|
45
|
-
allowDefaultProject: ['*.md/*']
|
|
45
|
+
allowDefaultProject: ['*.md/*'],
|
|
46
46
|
},
|
|
47
|
-
tsconfigRootDir: import.meta.dirname
|
|
48
|
-
}
|
|
49
|
-
}
|
|
47
|
+
tsconfigRootDir: import.meta.dirname,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
name: 'cluerise: typescript-eslint/disable-type-checked',
|
|
53
53
|
files: ['**/*.html', '**/*.js', '**/*.cjs', '**/*.json', '**/*.jsonc', '**/*.yaml'],
|
|
54
|
-
extends: [typescriptEslint.configs.disableTypeChecked]
|
|
54
|
+
extends: [typescriptEslint.configs.disableTypeChecked],
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
name: 'cluerise: typescript-eslint/rules',
|
|
@@ -68,24 +68,25 @@ export default defineConfig([
|
|
|
68
68
|
caughtErrorsIgnorePattern: '^_',
|
|
69
69
|
destructuredArrayIgnorePattern: '^_',
|
|
70
70
|
ignoreRestSiblings: true,
|
|
71
|
-
varsIgnorePattern: '^_'
|
|
72
|
-
}
|
|
73
|
-
]
|
|
74
|
-
|
|
71
|
+
varsIgnorePattern: '^_',
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
'@typescript-eslint/require-await': 'off',
|
|
75
|
+
},
|
|
75
76
|
},
|
|
76
77
|
{
|
|
77
78
|
name: 'cluerise: typescript-eslint/rules/ts',
|
|
78
79
|
files: ['**/*.{ts,tsx}'],
|
|
79
80
|
rules: {
|
|
80
|
-
'@typescript-eslint/consistent-type-imports': ['error', { fixStyle: 'inline-type-imports' }]
|
|
81
|
-
}
|
|
81
|
+
'@typescript-eslint/consistent-type-imports': ['error', { fixStyle: 'inline-type-imports' }],
|
|
82
|
+
},
|
|
82
83
|
},
|
|
83
84
|
{
|
|
84
85
|
name: 'cluerise: typescript-eslint/rules/tests',
|
|
85
86
|
files: ['**/*.test.{ts,tsx}'],
|
|
86
87
|
rules: {
|
|
87
|
-
'@typescript-eslint/no-unsafe-assignment': 'off'
|
|
88
|
-
}
|
|
88
|
+
'@typescript-eslint/no-unsafe-assignment': 'off',
|
|
89
|
+
},
|
|
89
90
|
},
|
|
90
91
|
// JSON
|
|
91
92
|
{
|
|
@@ -93,14 +94,14 @@ export default defineConfig([
|
|
|
93
94
|
files: ['**/*.json'],
|
|
94
95
|
plugins: { json: eslintJson },
|
|
95
96
|
language: 'json/json',
|
|
96
|
-
extends: ['json/recommended']
|
|
97
|
+
extends: ['json/recommended'],
|
|
97
98
|
},
|
|
98
99
|
{
|
|
99
100
|
name: 'cluerise: eslint/jsonc',
|
|
100
101
|
files: ['**/*.jsonc'],
|
|
101
102
|
plugins: { json: eslintJson },
|
|
102
103
|
language: 'json/jsonc',
|
|
103
|
-
extends: ['json/recommended']
|
|
104
|
+
extends: ['json/recommended'],
|
|
104
105
|
},
|
|
105
106
|
// Markdown
|
|
106
107
|
{
|
|
@@ -108,26 +109,40 @@ export default defineConfig([
|
|
|
108
109
|
files: ['**/*.md'],
|
|
109
110
|
plugins: { markdown: eslintMarkdown },
|
|
110
111
|
processor: 'markdown/markdown',
|
|
111
|
-
extends: ['markdown/recommended']
|
|
112
|
+
extends: ['markdown/recommended'],
|
|
112
113
|
},
|
|
113
114
|
// YAML
|
|
114
115
|
...eslintPluginYml.configs['flat/recommended'].map((config) => ({
|
|
115
116
|
...config,
|
|
116
|
-
name: `cluerise: ${config.name ?? 'eslint/yaml'}
|
|
117
|
+
name: `cluerise: ${config.name ?? 'eslint/yaml'}`,
|
|
117
118
|
})),
|
|
118
119
|
{
|
|
119
120
|
name: 'cluerise: eslint/yaml/rules',
|
|
120
121
|
rules: {
|
|
121
122
|
'yml/no-empty-mapping-value': 'off',
|
|
122
|
-
'yml/quotes': ['error', { prefer: 'single' }]
|
|
123
|
-
}
|
|
123
|
+
'yml/quotes': ['error', { prefer: 'single' }],
|
|
124
|
+
},
|
|
124
125
|
},
|
|
125
126
|
// Import
|
|
126
127
|
{
|
|
127
128
|
name: 'cluerise: eslint/import/js',
|
|
128
|
-
files: ['**/*.js
|
|
129
|
+
files: ['**/*.{js,cjs}'],
|
|
129
130
|
extends: [eslintPluginImport.flatConfigs.recommended],
|
|
130
131
|
rules: {
|
|
132
|
+
'import/extensions': [
|
|
133
|
+
'error',
|
|
134
|
+
'ignorePackages',
|
|
135
|
+
{
|
|
136
|
+
checkTypeImports: true,
|
|
137
|
+
pattern: { js: 'always', jsx: 'always', ts: 'always', tsx: 'always' },
|
|
138
|
+
pathGroupOverrides: [
|
|
139
|
+
{
|
|
140
|
+
pattern: ':/*',
|
|
141
|
+
action: 'ignore',
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
],
|
|
131
146
|
'import/first': 'error',
|
|
132
147
|
'import/namespace': 'off',
|
|
133
148
|
'import/newline-after-import': 'error',
|
|
@@ -137,14 +152,29 @@ export default defineConfig([
|
|
|
137
152
|
'import/no-duplicates': 'error',
|
|
138
153
|
'import/no-mutable-exports': 'error',
|
|
139
154
|
'import/no-unassigned-import': ['error', { allow: ['reset-css'] }],
|
|
140
|
-
'import/order': 'off'
|
|
141
|
-
}
|
|
155
|
+
'import/order': 'off',
|
|
156
|
+
},
|
|
142
157
|
},
|
|
143
158
|
{
|
|
144
159
|
name: 'cluerise: eslint/import/ts',
|
|
145
160
|
files: ['**/*.{ts,tsx}'],
|
|
146
161
|
extends: [eslintPluginImport.flatConfigs.recommended, eslintPluginImport.flatConfigs.typescript],
|
|
147
162
|
rules: {
|
|
163
|
+
'import/extensions': [
|
|
164
|
+
'error',
|
|
165
|
+
'ignorePackages',
|
|
166
|
+
{
|
|
167
|
+
checkTypeImports: true,
|
|
168
|
+
pattern: { js: 'always', jsx: 'always', ts: 'always', tsx: 'always' },
|
|
169
|
+
pathGroupOverrides: [
|
|
170
|
+
{
|
|
171
|
+
pattern: ':/*',
|
|
172
|
+
action: 'ignore',
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
},
|
|
176
|
+
],
|
|
177
|
+
'import/export': 'off',
|
|
148
178
|
'import/first': 'error',
|
|
149
179
|
'import/namespace': 'off',
|
|
150
180
|
'import/newline-after-import': 'error',
|
|
@@ -155,76 +185,76 @@ export default defineConfig([
|
|
|
155
185
|
'import/no-mutable-exports': 'error',
|
|
156
186
|
'import/no-unassigned-import': ['error', { allow: ['reset-css'] }],
|
|
157
187
|
'import/no-unresolved': ['error', { ignore: ['cloudflare:test', 'cloudflare:workers', 'cloudflare:workflows'] }],
|
|
158
|
-
'import/order': 'off'
|
|
159
|
-
}
|
|
188
|
+
'import/order': 'off',
|
|
189
|
+
},
|
|
160
190
|
},
|
|
161
191
|
{
|
|
162
192
|
name: 'cluerise: eslint/import/rules/config.js,cjs',
|
|
163
193
|
files: ['**/*.config.{js,cjs}'],
|
|
164
194
|
rules: {
|
|
165
195
|
'@typescript-eslint/no-require-imports': 'off',
|
|
166
|
-
'import/no-commonjs': 'off'
|
|
167
|
-
}
|
|
196
|
+
'import/no-commonjs': 'off',
|
|
197
|
+
},
|
|
168
198
|
},
|
|
169
199
|
{
|
|
170
200
|
name: 'cluerise: eslint/import/rules/config.js,cjs,ts',
|
|
171
201
|
files: ['**/*.config.{js,cjs,ts}'],
|
|
172
202
|
rules: {
|
|
173
|
-
'import/no-default-export': 'off'
|
|
174
|
-
}
|
|
203
|
+
'import/no-default-export': 'off',
|
|
204
|
+
},
|
|
175
205
|
},
|
|
176
206
|
{
|
|
177
207
|
name: 'cluerise: eslint/import/rules/setup.js,cjs',
|
|
178
208
|
files: ['**/*.setup.{js,cjs}'],
|
|
179
209
|
rules: {
|
|
180
210
|
'@typescript-eslint/no-require-imports': 'off',
|
|
181
|
-
'import/no-commonjs': 'off'
|
|
182
|
-
}
|
|
211
|
+
'import/no-commonjs': 'off',
|
|
212
|
+
},
|
|
183
213
|
},
|
|
184
214
|
{
|
|
185
215
|
name: 'cluerise: eslint/import/rules/setup.js,cjs,ts',
|
|
186
216
|
files: ['**/*.setup.{js,cjs,ts}'],
|
|
187
217
|
rules: {
|
|
188
|
-
'import/no-default-export': 'off'
|
|
189
|
-
}
|
|
218
|
+
'import/no-default-export': 'off',
|
|
219
|
+
},
|
|
190
220
|
},
|
|
191
221
|
{
|
|
192
222
|
name: 'cluerise: eslint/import/rules/routes',
|
|
193
|
-
files: ['**/*-route.tsx'],
|
|
223
|
+
files: ['**/*-route-content.tsx'],
|
|
194
224
|
rules: {
|
|
195
|
-
'import/no-default-export': 'off'
|
|
196
|
-
}
|
|
225
|
+
'import/no-default-export': 'off',
|
|
226
|
+
},
|
|
197
227
|
},
|
|
198
228
|
{
|
|
199
229
|
name: 'cluerise: eslint/import/rules/workers',
|
|
200
230
|
files: ['**/src/index.{ts,tsx}'],
|
|
201
231
|
rules: {
|
|
202
|
-
'import/no-default-export': 'off'
|
|
203
|
-
}
|
|
232
|
+
'import/no-default-export': 'off',
|
|
233
|
+
},
|
|
204
234
|
},
|
|
205
235
|
{
|
|
206
236
|
name: 'cluerise: settings/eslint/import',
|
|
207
237
|
settings: {
|
|
208
238
|
'import/resolver': {
|
|
209
|
-
typescript: {}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
239
|
+
typescript: {},
|
|
240
|
+
},
|
|
241
|
+
},
|
|
212
242
|
},
|
|
213
243
|
// Simple Import Sort
|
|
214
244
|
{
|
|
215
245
|
name: 'cluerise: eslint/simple-import-sort',
|
|
216
246
|
plugins: {
|
|
217
|
-
'simple-import-sort': eslintPluginSimpleImportSort
|
|
247
|
+
'simple-import-sort': eslintPluginSimpleImportSort,
|
|
218
248
|
},
|
|
219
249
|
rules: {
|
|
220
250
|
'simple-import-sort/exports': 'error',
|
|
221
|
-
'simple-import-sort/imports': 'error'
|
|
222
|
-
}
|
|
251
|
+
'simple-import-sort/imports': 'error',
|
|
252
|
+
},
|
|
223
253
|
},
|
|
224
254
|
// Unicorn
|
|
225
255
|
{
|
|
226
256
|
...eslintPluginUnicorn.configs.recommended,
|
|
227
|
-
name: 'cluerise: eslint/unicorn'
|
|
257
|
+
name: 'cluerise: eslint/unicorn',
|
|
228
258
|
},
|
|
229
259
|
{
|
|
230
260
|
name: 'cluerise: eslint/unicorn/rules',
|
|
@@ -234,8 +264,8 @@ export default defineConfig([
|
|
|
234
264
|
'error',
|
|
235
265
|
{
|
|
236
266
|
case: 'kebabCase',
|
|
237
|
-
ignore: [String.raw`\.md$`]
|
|
238
|
-
}
|
|
267
|
+
ignore: [String.raw`\.md$`],
|
|
268
|
+
},
|
|
239
269
|
],
|
|
240
270
|
'unicorn/no-array-reduce': 'off',
|
|
241
271
|
'unicorn/no-null': 'off',
|
|
@@ -261,18 +291,18 @@ export default defineConfig([
|
|
|
261
291
|
refs: false,
|
|
262
292
|
rel: false,
|
|
263
293
|
temp: false,
|
|
264
|
-
utils: false
|
|
265
|
-
}
|
|
266
|
-
}
|
|
294
|
+
utils: false,
|
|
295
|
+
},
|
|
296
|
+
},
|
|
267
297
|
],
|
|
268
|
-
'unicorn/switch-case-braces': ['error', 'avoid']
|
|
269
|
-
}
|
|
298
|
+
'unicorn/switch-case-braces': ['error', 'avoid'],
|
|
299
|
+
},
|
|
270
300
|
},
|
|
271
301
|
// HTML
|
|
272
302
|
{
|
|
273
303
|
...eslintPluginHtml.configs['flat/recommended'],
|
|
274
304
|
name: 'cluerise: html-eslint',
|
|
275
|
-
files: ['**/*.html']
|
|
305
|
+
files: ['**/*.html'],
|
|
276
306
|
},
|
|
277
307
|
{
|
|
278
308
|
name: 'cluerise: html-eslint/rules',
|
|
@@ -281,8 +311,8 @@ export default defineConfig([
|
|
|
281
311
|
'@html-eslint/indent': ['error', 2],
|
|
282
312
|
'@html-eslint/no-extra-spacing-attrs': ['error', { enforceBeforeSelfClose: true }],
|
|
283
313
|
'@html-eslint/require-closing-tags': ['error', { selfClosing: 'always' }],
|
|
284
|
-
'@html-eslint/require-title': 'off'
|
|
285
|
-
}
|
|
314
|
+
'@html-eslint/require-title': 'off',
|
|
315
|
+
},
|
|
286
316
|
},
|
|
287
317
|
// Ignore
|
|
288
318
|
{
|
|
@@ -387,12 +417,12 @@ export default defineConfig([
|
|
|
387
417
|
'**/*.txt',
|
|
388
418
|
|
|
389
419
|
// XML
|
|
390
|
-
'**/*.xml'
|
|
391
|
-
]
|
|
420
|
+
'**/*.xml',
|
|
421
|
+
],
|
|
392
422
|
},
|
|
393
423
|
// Prettier
|
|
394
424
|
{
|
|
395
425
|
...eslintPluginPrettier,
|
|
396
|
-
name: 'cluerise: eslint/prettier'
|
|
397
|
-
}
|
|
426
|
+
name: 'cluerise: eslint/prettier',
|
|
427
|
+
},
|
|
398
428
|
]);
|
|
@@ -58,7 +58,7 @@ export default {
|
|
|
58
58
|
const relativeFilenames = mapToRelative(filenames, Path.dirname(configPath));
|
|
59
59
|
const tempConfig = {
|
|
60
60
|
extends: './tsconfig.json',
|
|
61
|
-
files: relativeFilenames
|
|
61
|
+
files: relativeFilenames,
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
// eslint-disable-next-line no-restricted-globals
|
|
@@ -67,5 +67,5 @@ export default {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
return [...fileGroups.keys()].map((configPath) => `tsc -p ${Path.relative('.', configPath)}`);
|
|
70
|
-
}
|
|
70
|
+
},
|
|
71
71
|
};
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
printWidth: 120,
|
|
3
3
|
singleQuote: true,
|
|
4
|
-
trailingComma: 'none',
|
|
5
4
|
plugins: ['prettier-plugin-sh'],
|
|
6
5
|
overrides: [
|
|
7
6
|
{
|
|
8
7
|
files: '*.html',
|
|
9
8
|
options: {
|
|
10
|
-
parser: 'html'
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
9
|
+
parser: 'html',
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
files: ['*.json', '*.jsonc'],
|
|
14
|
+
options: {
|
|
15
|
+
trailingComma: 'none',
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
],
|
|
14
19
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const Path = require('node:path');
|
|
2
2
|
|
|
3
3
|
const modulesNames = Object.keys(require.cache).filter((path) =>
|
|
4
|
-
Path.posix.normalize(path).endsWith('/git-log-parser/src/index.js')
|
|
4
|
+
Path.posix.normalize(path).endsWith('/git-log-parser/src/index.js'),
|
|
5
5
|
);
|
|
6
6
|
|
|
7
7
|
for (const moduleName of modulesNames) {
|
|
@@ -13,13 +13,13 @@ export const defaultReleaseRules = [
|
|
|
13
13
|
{ type: 'release', release: false },
|
|
14
14
|
{ type: 'revert', release: false },
|
|
15
15
|
{ type: 'style', release: false },
|
|
16
|
-
{ type: 'test', release: false }
|
|
16
|
+
{ type: 'test', release: false },
|
|
17
17
|
];
|
|
18
18
|
|
|
19
19
|
export const defaultChangelogTypes = [
|
|
20
20
|
{ type: 'feat', section: 'Features' },
|
|
21
21
|
{ type: 'fix', section: 'Fixes' },
|
|
22
|
-
{ type: 'perf', section: 'Performance improvements' }
|
|
22
|
+
{ type: 'perf', section: 'Performance improvements' },
|
|
23
23
|
];
|
|
24
24
|
|
|
25
25
|
const getRepositoryUrl = (path) => {
|
|
@@ -38,11 +38,11 @@ export const createReleaseConfig = ({
|
|
|
38
38
|
tagFormat,
|
|
39
39
|
releaseRules: inputReleaseRules = defaultReleaseRules,
|
|
40
40
|
changelogTypes: inputChangelogTypes = defaultChangelogTypes,
|
|
41
|
-
dependencyScopes = ['prod']
|
|
41
|
+
dependencyScopes = ['prod'],
|
|
42
42
|
}) => {
|
|
43
43
|
const releaseRules = [
|
|
44
44
|
...inputReleaseRules,
|
|
45
|
-
...dependencyScopes.map((scope) => ({ type: 'deps', scope, release: 'patch' }))
|
|
45
|
+
...dependencyScopes.map((scope) => ({ type: 'deps', scope, release: 'patch' })),
|
|
46
46
|
];
|
|
47
47
|
|
|
48
48
|
const changelogTypes = [
|
|
@@ -50,8 +50,8 @@ export const createReleaseConfig = ({
|
|
|
50
50
|
...dependencyScopes.map((scope) => ({
|
|
51
51
|
type: 'deps',
|
|
52
52
|
scope,
|
|
53
|
-
section: 'Dependency updates'
|
|
54
|
-
}))
|
|
53
|
+
section: 'Dependency updates',
|
|
54
|
+
})),
|
|
55
55
|
];
|
|
56
56
|
|
|
57
57
|
return {
|
|
@@ -66,15 +66,15 @@ export const createReleaseConfig = ({
|
|
|
66
66
|
[
|
|
67
67
|
'@semantic-release/commit-analyzer',
|
|
68
68
|
{
|
|
69
|
-
releaseRules
|
|
70
|
-
}
|
|
69
|
+
releaseRules,
|
|
70
|
+
},
|
|
71
71
|
],
|
|
72
72
|
[
|
|
73
73
|
'@semantic-release/release-notes-generator',
|
|
74
74
|
{
|
|
75
75
|
host,
|
|
76
76
|
presetConfig: {
|
|
77
|
-
types: changelogTypes
|
|
77
|
+
types: changelogTypes,
|
|
78
78
|
},
|
|
79
79
|
writerOpts: {
|
|
80
80
|
commitGroupsSort: ({ title: titleA }, { title: titleB }) => {
|
|
@@ -90,17 +90,17 @@ export const createReleaseConfig = ({
|
|
|
90
90
|
...commit,
|
|
91
91
|
subject: commit.subject.replace(
|
|
92
92
|
`${host}/${context.owner}/${context.repository}`,
|
|
93
|
-
`${host}/${owner}/${repository}
|
|
94
|
-
)
|
|
93
|
+
`${host}/${owner}/${repository}`,
|
|
94
|
+
),
|
|
95
95
|
})),
|
|
96
|
-
collapse: commitGroup.title === 'Dependency updates'
|
|
96
|
+
collapse: commitGroup.title === 'Dependency updates',
|
|
97
97
|
}));
|
|
98
98
|
|
|
99
99
|
return {
|
|
100
100
|
...context,
|
|
101
101
|
owner,
|
|
102
102
|
repository,
|
|
103
|
-
commitGroups
|
|
103
|
+
commitGroups,
|
|
104
104
|
};
|
|
105
105
|
},
|
|
106
106
|
mainTemplate: `{{> header}}
|
|
@@ -134,16 +134,16 @@ export const createReleaseConfig = ({
|
|
|
134
134
|
</details>
|
|
135
135
|
{{/if}}
|
|
136
136
|
|
|
137
|
-
{{/each}}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
]
|
|
141
|
-
]
|
|
137
|
+
{{/each}}`,
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
],
|
|
141
|
+
],
|
|
142
142
|
};
|
|
143
143
|
};
|
|
144
144
|
|
|
145
145
|
export default createReleaseConfig({
|
|
146
146
|
host: 'https://github.com',
|
|
147
147
|
owner: 'cluerise',
|
|
148
|
-
repository: 'tools'
|
|
148
|
+
repository: 'tools',
|
|
149
149
|
});
|
|
@@ -498,20 +498,16 @@ class FileLinter {
|
|
|
498
498
|
return this.#eslint.isPathIgnored(path);
|
|
499
499
|
}
|
|
500
500
|
async #prettierLint(patterns) {
|
|
501
|
-
const configPath = await Prettier.resolveConfigFile();
|
|
502
|
-
if (!configPath) {
|
|
503
|
-
return [];
|
|
504
|
-
}
|
|
505
|
-
const config = await Prettier.resolveConfig(configPath);
|
|
506
|
-
if (!config) {
|
|
507
|
-
return [];
|
|
508
|
-
}
|
|
509
501
|
const paths = await glob(patterns, {
|
|
510
502
|
nodir: true,
|
|
511
503
|
ignore: "node_modules/**"
|
|
512
504
|
});
|
|
513
505
|
const results = await Promise.all(
|
|
514
506
|
paths.map(async (path) => {
|
|
507
|
+
const config = await Prettier.resolveConfig(path);
|
|
508
|
+
if (!config) {
|
|
509
|
+
return null;
|
|
510
|
+
}
|
|
515
511
|
if (await this.#isIgnoredByPrettier(path)) {
|
|
516
512
|
return null;
|
|
517
513
|
}
|
|
@@ -287,20 +287,16 @@ class FileLinter {
|
|
|
287
287
|
return this.#eslint.isPathIgnored(path);
|
|
288
288
|
}
|
|
289
289
|
async #prettierLint(patterns) {
|
|
290
|
-
const configPath = await Prettier.resolveConfigFile();
|
|
291
|
-
if (!configPath) {
|
|
292
|
-
return [];
|
|
293
|
-
}
|
|
294
|
-
const config = await Prettier.resolveConfig(configPath);
|
|
295
|
-
if (!config) {
|
|
296
|
-
return [];
|
|
297
|
-
}
|
|
298
290
|
const paths = await glob(patterns, {
|
|
299
291
|
nodir: true,
|
|
300
292
|
ignore: "node_modules/**"
|
|
301
293
|
});
|
|
302
294
|
const results = await Promise.all(
|
|
303
295
|
paths.map(async (path) => {
|
|
296
|
+
const config = await Prettier.resolveConfig(path);
|
|
297
|
+
if (!config) {
|
|
298
|
+
return null;
|
|
299
|
+
}
|
|
304
300
|
if (await this.#isIgnoredByPrettier(path)) {
|
|
305
301
|
return null;
|
|
306
302
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as ActionsCore from "@actions/core";
|
|
2
2
|
import { z, ZodError } from "zod";
|
|
3
3
|
import ChildProcess from "node:child_process";
|
|
4
|
+
import { existsSync } from "node:fs";
|
|
4
5
|
import FileSystem from "node:fs/promises";
|
|
5
6
|
import OS from "node:os";
|
|
6
7
|
import Path from "node:path";
|
|
@@ -236,20 +237,16 @@ class FileLinter {
|
|
|
236
237
|
return this.#eslint.isPathIgnored(path);
|
|
237
238
|
}
|
|
238
239
|
async #prettierLint(patterns) {
|
|
239
|
-
const configPath = await Prettier.resolveConfigFile();
|
|
240
|
-
if (!configPath) {
|
|
241
|
-
return [];
|
|
242
|
-
}
|
|
243
|
-
const config = await Prettier.resolveConfig(configPath);
|
|
244
|
-
if (!config) {
|
|
245
|
-
return [];
|
|
246
|
-
}
|
|
247
240
|
const paths = await glob(patterns, {
|
|
248
241
|
nodir: true,
|
|
249
242
|
ignore: "node_modules/**"
|
|
250
243
|
});
|
|
251
244
|
const results = await Promise.all(
|
|
252
245
|
paths.map(async (path) => {
|
|
246
|
+
const config = await Prettier.resolveConfig(path);
|
|
247
|
+
if (!config) {
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
253
250
|
if (await this.#isIgnoredByPrettier(path)) {
|
|
254
251
|
return null;
|
|
255
252
|
}
|
|
@@ -397,6 +394,9 @@ class Releaser {
|
|
|
397
394
|
};
|
|
398
395
|
}
|
|
399
396
|
async #getLatestReleaseChangelog() {
|
|
397
|
+
if (!existsSync(this.#changelogPath)) {
|
|
398
|
+
return null;
|
|
399
|
+
}
|
|
400
400
|
const contentBuffer = await FileSystem.readFile(this.#changelogPath);
|
|
401
401
|
const content = contentBuffer.toString();
|
|
402
402
|
const [, latestReleaseChangelog] = content.split(Releaser.#releaseSeparator);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cluerise/tools",
|
|
3
|
-
"version": "5.3.
|
|
3
|
+
"version": "5.3.5",
|
|
4
4
|
"description": "Tools for maintaining TypeScript projects.",
|
|
5
5
|
"author": "Branislav Holý <brano@holy.am>",
|
|
6
6
|
"repository": "github:cluerise/tools",
|
|
@@ -17,26 +17,26 @@
|
|
|
17
17
|
"./dist/"
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@actions/core": "
|
|
20
|
+
"@actions/core": "2.0.1",
|
|
21
21
|
"@commitlint/cli": "20.2.0",
|
|
22
22
|
"@commitlint/config-conventional": "20.2.0",
|
|
23
23
|
"@commitlint/load": "20.2.0",
|
|
24
24
|
"@commitlint/types": "20.2.0",
|
|
25
|
-
"@eslint/js": "9.39.
|
|
25
|
+
"@eslint/js": "9.39.2",
|
|
26
26
|
"@eslint/json": "0.14.0",
|
|
27
27
|
"@eslint/markdown": "7.5.1",
|
|
28
|
-
"@html-eslint/eslint-plugin": "0.
|
|
29
|
-
"@html-eslint/parser": "0.
|
|
30
|
-
"@typescript-eslint/parser": "8.
|
|
28
|
+
"@html-eslint/eslint-plugin": "0.52.0",
|
|
29
|
+
"@html-eslint/parser": "0.52.0",
|
|
30
|
+
"@typescript-eslint/parser": "8.50.0",
|
|
31
31
|
"conventional-changelog-conventionalcommits": "9.1.0",
|
|
32
|
-
"eslint": "9.39.
|
|
32
|
+
"eslint": "9.39.2",
|
|
33
33
|
"eslint-config-prettier": "10.1.8",
|
|
34
34
|
"eslint-import-resolver-typescript": "4.4.4",
|
|
35
35
|
"eslint-plugin-import": "2.32.0",
|
|
36
36
|
"eslint-plugin-prettier": "5.5.4",
|
|
37
37
|
"eslint-plugin-simple-import-sort": "12.1.1",
|
|
38
38
|
"eslint-plugin-unicorn": "62.0.0",
|
|
39
|
-
"eslint-plugin-yml": "1.19.
|
|
39
|
+
"eslint-plugin-yml": "1.19.1",
|
|
40
40
|
"glob": "13.0.0",
|
|
41
41
|
"globals": "16.5.0",
|
|
42
42
|
"lint-staged": "16.2.7",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"semantic-release": "25.0.2",
|
|
46
46
|
"semver": "7.7.3",
|
|
47
47
|
"smol-toml": "1.5.2",
|
|
48
|
-
"typescript-eslint": "8.
|
|
49
|
-
"zod": "4.1
|
|
48
|
+
"typescript-eslint": "8.50.0",
|
|
49
|
+
"zod": "4.2.1"
|
|
50
50
|
}
|
|
51
51
|
}
|