@rtorcato/repo-tooling 2.59.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.
- package/AGENTS.md +113 -0
- package/LICENSE +21 -0
- package/README.md +201 -0
- package/dist/cli/commands/doctor.js +336 -0
- package/dist/cli/commands/fix-targets.js +192 -0
- package/dist/cli/commands/fix.js +440 -0
- package/dist/cli/commands/setup-presets.js +281 -0
- package/dist/cli/commands/setup.js +501 -0
- package/dist/cli/generators/agent-rules.js +103 -0
- package/dist/cli/generators/badges.js +88 -0
- package/dist/cli/generators/build.js +216 -0
- package/dist/cli/generators/bun.js +25 -0
- package/dist/cli/generators/community-health.js +145 -0
- package/dist/cli/generators/docs-site.js +436 -0
- package/dist/cli/generators/git.js +164 -0
- package/dist/cli/generators/github-actions.js +35 -0
- package/dist/cli/generators/github-workflows.js +24 -0
- package/dist/cli/generators/gitlab-ci.js +10 -0
- package/dist/cli/generators/index.js +123 -0
- package/dist/cli/generators/linting.js +54 -0
- package/dist/cli/generators/misc.js +298 -0
- package/dist/cli/generators/nx.js +16 -0
- package/dist/cli/generators/package-json.js +317 -0
- package/dist/cli/generators/pnpm-workspace.js +126 -0
- package/dist/cli/generators/postcss.js +24 -0
- package/dist/cli/generators/readme.js +268 -0
- package/dist/cli/generators/security.js +156 -0
- package/dist/cli/generators/skills-install.js +70 -0
- package/dist/cli/generators/tailwind.js +34 -0
- package/dist/cli/generators/testing.js +88 -0
- package/dist/cli/generators/treeshake.js +148 -0
- package/dist/cli/generators/tsconfig.js +27 -0
- package/dist/cli/generators/turborepo.js +35 -0
- package/dist/cli/generators/typedoc.js +40 -0
- package/dist/cli/index.js +332 -0
- package/dist/cli/utils/copy-preset.js +98 -0
- package/dist/cli/utils/detect-language.js +22 -0
- package/dist/cli/utils/format.js +32 -0
- package/dist/cli/utils/install.js +28 -0
- package/dist/cli/utils/lockfile.js +84 -0
- package/dist/languages/js/checks.js +949 -0
- package/dist/languages/js/ci.js +251 -0
- package/dist/languages/js/fixers.js +735 -0
- package/dist/languages/registry.js +37 -0
- package/dist/languages/swift/checks.js +127 -0
- package/dist/languages/swift/ci.js +165 -0
- package/dist/languages/swift/fixers.js +102 -0
- package/dist/languages/swift/git-hooks.js +63 -0
- package/dist/languages/swift/gitignore.js +43 -0
- package/dist/languages/swift/scaffold.js +244 -0
- package/package.json +461 -0
- package/tooling/biome/README.md +90 -0
- package/tooling/biome/biome.json +63 -0
- package/tooling/bun/bunfig.toml +14 -0
- package/tooling/changesets/README.md +35 -0
- package/tooling/changesets/config.json +11 -0
- package/tooling/claude/repo-tooling.md +87 -0
- package/tooling/commitlint/commitlint.d.mts +4 -0
- package/tooling/commitlint/commitlint.mjs +40 -0
- package/tooling/cypress/cypress.config.d.mts +4 -0
- package/tooling/cypress/cypress.config.mjs +11 -0
- package/tooling/docusaurus/index.d.mts +17 -0
- package/tooling/docusaurus/index.mjs +38 -0
- package/tooling/docusaurus/sync-changelog.mjs +42 -0
- package/tooling/docusaurus/theme-tokens.css +79 -0
- package/tooling/docusaurus/theme.css +378 -0
- package/tooling/esbuild/index.d.mts +6 -0
- package/tooling/esbuild/index.mjs +102 -0
- package/tooling/eslint/base.d.mts +6 -0
- package/tooling/eslint/base.mjs +122 -0
- package/tooling/eslint/nextjs.d.mts +4 -0
- package/tooling/eslint/nextjs.mjs +22 -0
- package/tooling/eslint/types.d.ts +58 -0
- package/tooling/github-actions/workflows/cloudflare-pages.yml +42 -0
- package/tooling/github-actions/workflows/docker-publish.yml +44 -0
- package/tooling/github-actions/workflows/preview-deployments.yml +54 -0
- package/tooling/github-actions/workflows/vercel-deploy.yml +40 -0
- package/tooling/jest-presets/browser/jest-preset.d.mts +4 -0
- package/tooling/jest-presets/browser/jest-preset.mjs +14 -0
- package/tooling/jest-presets/node/jest-preset.d.mts +4 -0
- package/tooling/jest-presets/node/jest-preset.mjs +13 -0
- package/tooling/mcp/mcp.json.example +27 -0
- package/tooling/nx/nx.json +24 -0
- package/tooling/oxlint/README.md +25 -0
- package/tooling/oxlint/oxlintrc.json +28 -0
- package/tooling/playwright/playwright.config.d.mts +4 -0
- package/tooling/playwright/playwright.config.mjs +19 -0
- package/tooling/prettier/index.d.mts +4 -0
- package/tooling/prettier/index.mjs +36 -0
- package/tooling/release-please/.release-please-manifest.json +3 -0
- package/tooling/release-please/release-please-config.json +9 -0
- package/tooling/rolldown/rolldown.config.d.mts +18 -0
- package/tooling/rolldown/rolldown.config.mjs +59 -0
- package/tooling/rollup/rollup.config.d.mts +20 -0
- package/tooling/rollup/rollup.config.mjs +70 -0
- package/tooling/semantic-release/docker.d.mts +4 -0
- package/tooling/semantic-release/docker.mjs +59 -0
- package/tooling/semantic-release/github.d.mts +4 -0
- package/tooling/semantic-release/github.mjs +79 -0
- package/tooling/semantic-release/index.d.mts +4 -0
- package/tooling/semantic-release/index.mjs +80 -0
- package/tooling/swift/periphery.yml +4 -0
- package/tooling/swift/swiftlint.yml +23 -0
- package/tooling/tests/exports-resolution.d.mts +14 -0
- package/tooling/tests/exports-resolution.mjs +68 -0
- package/tooling/tests/ssr-safety.d.mts +14 -0
- package/tooling/tests/ssr-safety.mjs +53 -0
- package/tooling/tsup/index.d.mts +8 -0
- package/tooling/tsup/index.mjs +33 -0
- package/tooling/typedoc/typedoc.json +7 -0
- package/tooling/typescript/README.md +49 -0
- package/tooling/typescript/reset.d.ts +9 -0
- package/tooling/typescript/tsconfig.base.json +84 -0
- package/tooling/typescript/tsconfig.build.json +11 -0
- package/tooling/typescript/tsconfig.bun.json +9 -0
- package/tooling/typescript/tsconfig.express.json +9 -0
- package/tooling/typescript/tsconfig.next.json +20 -0
- package/tooling/typescript/tsconfig.node.json +9 -0
- package/tooling/typescript/tsconfig.react.json +15 -0
- package/tooling/typescript/tsconfig.test.json +8 -0
- package/tooling/typescript/v1/tsconfig.base.json +81 -0
- package/tooling/typescript/v1/tsconfig.express.json +9 -0
- package/tooling/typescript/v1/tsconfig.next.json +19 -0
- package/tooling/typescript/v1/tsconfig.node.json +9 -0
- package/tooling/typescript/v1/tsconfig.react.json +14 -0
- package/tooling/typescript/v1/tsconfig.test.json +8 -0
- package/tooling/vite/vite.config.d.mts +4 -0
- package/tooling/vite/vite.config.mjs +18 -0
- package/tooling/vitest/jsdom-shims.d.mts +1 -0
- package/tooling/vitest/jsdom-shims.mjs +58 -0
- package/tooling/vitest/vitest.config.d.mts +4 -0
- package/tooling/vitest/vitest.config.mjs +25 -0
- package/tooling/vitest/vitest.config.react.d.mts +4 -0
- package/tooling/vitest/vitest.config.react.mjs +27 -0
- package/tooling/vitest/vitest.setup.d.mts +1 -0
- package/tooling/vitest/vitest.setup.mjs +3 -0
package/package.json
ADDED
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@rtorcato/repo-tooling",
|
|
3
|
+
"version": "2.59.0",
|
|
4
|
+
"description": "One CLI to scaffold, audit and fix your repo's whole toolchain — linting, tests, commits, releases & CI.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"tooling",
|
|
8
|
+
"typescript",
|
|
9
|
+
"eslint"
|
|
10
|
+
],
|
|
11
|
+
"author": "Richard Torcato",
|
|
12
|
+
"packageManager": "pnpm@11.1.3",
|
|
13
|
+
"sideEffects": false,
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/rtorcato/repo-tooling.git"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/rtorcato/repo-tooling#readme",
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/rtorcato/repo-tooling/issues"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "pnpm build-cli",
|
|
25
|
+
"build-cli": "rimraf ./dist && tsc --project src/cli/tsconfig.json",
|
|
26
|
+
"prepublishOnly": "./scripts/fix-bins.sh",
|
|
27
|
+
"dev": "pnpm --filter @rtorcato/docs dev",
|
|
28
|
+
"docs:build": "pnpm --filter @rtorcato/docs build",
|
|
29
|
+
"==================== Common ====================": "",
|
|
30
|
+
"lint": "pnpm exec biome lint --config-path=biome.json src scripts",
|
|
31
|
+
"format": "pnpm exec biome format --config-path=biome.json src scripts",
|
|
32
|
+
"check:fix": "pnpm exec biome check --config-path=biome.json --fix src scripts",
|
|
33
|
+
"check": "pnpm exec biome check --config-path=biome.json src scripts",
|
|
34
|
+
"prepare": "is-ci || husky",
|
|
35
|
+
"typecheck": "tsc --noEmit --project src/cli/tsconfig.json",
|
|
36
|
+
"test": "vitest",
|
|
37
|
+
"test:watch": "vitest --watch",
|
|
38
|
+
"test:integration": "pnpm build-cli && node scripts/integration/preset-lifecycle.mjs library",
|
|
39
|
+
"coverage": "vitest run --coverage",
|
|
40
|
+
"verify": "pnpm run check && pnpm run typecheck && pnpm test --run && pnpm run build-cli",
|
|
41
|
+
"dogfood": "node scripts/dogfood.mjs",
|
|
42
|
+
"knip": "knip",
|
|
43
|
+
"commit": "cz",
|
|
44
|
+
"================================================": ""
|
|
45
|
+
},
|
|
46
|
+
"files": [
|
|
47
|
+
"dist/cli/**/*.js",
|
|
48
|
+
"dist/languages/**/*.js",
|
|
49
|
+
"tooling/commitlint/commitlint.mjs",
|
|
50
|
+
"tooling/commitlint/commitlint.d.mts",
|
|
51
|
+
"tooling/esbuild/index.mjs",
|
|
52
|
+
"tooling/esbuild/index.d.mts",
|
|
53
|
+
"tooling/eslint/*.mjs",
|
|
54
|
+
"tooling/eslint/*.d.mts",
|
|
55
|
+
"tooling/eslint/types.d.ts",
|
|
56
|
+
"tooling/jest-presets/**",
|
|
57
|
+
"tooling/playwright/playwright.config.mjs",
|
|
58
|
+
"tooling/playwright/playwright.config.d.mts",
|
|
59
|
+
"tooling/cypress/cypress.config.mjs",
|
|
60
|
+
"tooling/cypress/cypress.config.d.mts",
|
|
61
|
+
"tooling/prettier/index.mjs",
|
|
62
|
+
"tooling/prettier/index.d.mts",
|
|
63
|
+
"tooling/typescript/*.json",
|
|
64
|
+
"tooling/typescript/v1/*.json",
|
|
65
|
+
"tooling/typescript/reset.d.ts",
|
|
66
|
+
"tooling/vite/vite.config.mjs",
|
|
67
|
+
"tooling/vite/vite.config.d.mts",
|
|
68
|
+
"tooling/vitest/vitest.config.mjs",
|
|
69
|
+
"tooling/vitest/vitest.config.d.mts",
|
|
70
|
+
"tooling/vitest/vitest.config.react.mjs",
|
|
71
|
+
"tooling/vitest/vitest.config.react.d.mts",
|
|
72
|
+
"tooling/vitest/vitest.setup.mjs",
|
|
73
|
+
"tooling/vitest/vitest.setup.d.mts",
|
|
74
|
+
"tooling/vitest/jsdom-shims.mjs",
|
|
75
|
+
"tooling/vitest/jsdom-shims.d.mts",
|
|
76
|
+
"tooling/tests/exports-resolution.mjs",
|
|
77
|
+
"tooling/tests/exports-resolution.d.mts",
|
|
78
|
+
"tooling/tests/ssr-safety.mjs",
|
|
79
|
+
"tooling/tests/ssr-safety.d.mts",
|
|
80
|
+
"tooling/tsup/index.mjs",
|
|
81
|
+
"tooling/tsup/index.d.mts",
|
|
82
|
+
"tooling/rollup/rollup.config.mjs",
|
|
83
|
+
"tooling/rollup/rollup.config.d.mts",
|
|
84
|
+
"tooling/rolldown/rolldown.config.mjs",
|
|
85
|
+
"tooling/rolldown/rolldown.config.d.mts",
|
|
86
|
+
"tooling/docusaurus/index.mjs",
|
|
87
|
+
"tooling/docusaurus/index.d.mts",
|
|
88
|
+
"tooling/docusaurus/sync-changelog.mjs",
|
|
89
|
+
"tooling/docusaurus/theme-tokens.css",
|
|
90
|
+
"tooling/docusaurus/theme.css",
|
|
91
|
+
"tooling/biome/biome.json",
|
|
92
|
+
"tooling/bun/bunfig.toml",
|
|
93
|
+
"tooling/nx/nx.json",
|
|
94
|
+
"tooling/changesets/config.json",
|
|
95
|
+
"tooling/release-please/release-please-config.json",
|
|
96
|
+
"tooling/release-please/.release-please-manifest.json",
|
|
97
|
+
"tooling/oxlint/oxlintrc.json",
|
|
98
|
+
"tooling/typedoc/typedoc.json",
|
|
99
|
+
"tooling/semantic-release/*.mjs",
|
|
100
|
+
"tooling/semantic-release/*.d.mts",
|
|
101
|
+
"tooling/claude/*.md",
|
|
102
|
+
"tooling/mcp/mcp.json.example",
|
|
103
|
+
"tooling/swift/*.yml",
|
|
104
|
+
"tooling/github-actions/workflows/*.yml",
|
|
105
|
+
"README.md",
|
|
106
|
+
"AGENTS.md"
|
|
107
|
+
],
|
|
108
|
+
"exports": {
|
|
109
|
+
"./commitlint/config": {
|
|
110
|
+
"types": "./tooling/commitlint/commitlint.d.mts",
|
|
111
|
+
"import": "./tooling/commitlint/commitlint.mjs"
|
|
112
|
+
},
|
|
113
|
+
"./esbuild": {
|
|
114
|
+
"types": "./tooling/esbuild/index.d.mts",
|
|
115
|
+
"import": "./tooling/esbuild/index.mjs"
|
|
116
|
+
},
|
|
117
|
+
"./eslint/base": {
|
|
118
|
+
"types": "./tooling/eslint/base.d.mts",
|
|
119
|
+
"import": "./tooling/eslint/base.mjs"
|
|
120
|
+
},
|
|
121
|
+
"./eslint/nextjs": {
|
|
122
|
+
"types": "./tooling/eslint/nextjs.d.mts",
|
|
123
|
+
"import": "./tooling/eslint/nextjs.mjs"
|
|
124
|
+
},
|
|
125
|
+
"./jest-presets/browser/jest-preset": {
|
|
126
|
+
"types": "./tooling/jest-presets/browser/jest-preset.d.mts",
|
|
127
|
+
"import": "./tooling/jest-presets/browser/jest-preset.mjs"
|
|
128
|
+
},
|
|
129
|
+
"./jest-presets/node/jest-preset": {
|
|
130
|
+
"types": "./tooling/jest-presets/node/jest-preset.d.mts",
|
|
131
|
+
"import": "./tooling/jest-presets/node/jest-preset.mjs"
|
|
132
|
+
},
|
|
133
|
+
"./playwright": {
|
|
134
|
+
"types": "./tooling/playwright/playwright.config.d.mts",
|
|
135
|
+
"import": "./tooling/playwright/playwright.config.mjs"
|
|
136
|
+
},
|
|
137
|
+
"./cypress": {
|
|
138
|
+
"types": "./tooling/cypress/cypress.config.d.mts",
|
|
139
|
+
"import": "./tooling/cypress/cypress.config.mjs"
|
|
140
|
+
},
|
|
141
|
+
"./prettier": {
|
|
142
|
+
"types": "./tooling/prettier/index.d.mts",
|
|
143
|
+
"import": "./tooling/prettier/index.mjs"
|
|
144
|
+
},
|
|
145
|
+
"./typescript/base": "./tooling/typescript/tsconfig.base.json",
|
|
146
|
+
"./typescript/next": "./tooling/typescript/tsconfig.next.json",
|
|
147
|
+
"./typescript/express": "./tooling/typescript/tsconfig.express.json",
|
|
148
|
+
"./typescript/node": "./tooling/typescript/tsconfig.node.json",
|
|
149
|
+
"./typescript/bun": "./tooling/typescript/tsconfig.bun.json",
|
|
150
|
+
"./typescript/react": "./tooling/typescript/tsconfig.react.json",
|
|
151
|
+
"./typescript/test": "./tooling/typescript/tsconfig.test.json",
|
|
152
|
+
"./typescript/reset": "./tooling/typescript/reset.d.ts",
|
|
153
|
+
"./typescript/base@1": "./tooling/typescript/v1/tsconfig.base.json",
|
|
154
|
+
"./typescript/next@1": "./tooling/typescript/v1/tsconfig.next.json",
|
|
155
|
+
"./typescript/express@1": "./tooling/typescript/v1/tsconfig.express.json",
|
|
156
|
+
"./typescript/node@1": "./tooling/typescript/v1/tsconfig.node.json",
|
|
157
|
+
"./typescript/react@1": "./tooling/typescript/v1/tsconfig.react.json",
|
|
158
|
+
"./typescript/test@1": "./tooling/typescript/v1/tsconfig.test.json",
|
|
159
|
+
"./vite": {
|
|
160
|
+
"types": "./tooling/vite/vite.config.d.mts",
|
|
161
|
+
"import": "./tooling/vite/vite.config.mjs"
|
|
162
|
+
},
|
|
163
|
+
"./vitest/config": {
|
|
164
|
+
"types": "./tooling/vitest/vitest.config.d.mts",
|
|
165
|
+
"import": "./tooling/vitest/vitest.config.mjs"
|
|
166
|
+
},
|
|
167
|
+
"./vitest/react": {
|
|
168
|
+
"types": "./tooling/vitest/vitest.config.react.d.mts",
|
|
169
|
+
"import": "./tooling/vitest/vitest.config.react.mjs"
|
|
170
|
+
},
|
|
171
|
+
"./vitest/setup": {
|
|
172
|
+
"types": "./tooling/vitest/vitest.setup.d.mts",
|
|
173
|
+
"import": "./tooling/vitest/vitest.setup.mjs"
|
|
174
|
+
},
|
|
175
|
+
"./vitest/jsdom-shims": {
|
|
176
|
+
"types": "./tooling/vitest/jsdom-shims.d.mts",
|
|
177
|
+
"import": "./tooling/vitest/jsdom-shims.mjs"
|
|
178
|
+
},
|
|
179
|
+
"./tsup": {
|
|
180
|
+
"types": "./tooling/tsup/index.d.mts",
|
|
181
|
+
"import": "./tooling/tsup/index.mjs"
|
|
182
|
+
},
|
|
183
|
+
"./rollup": {
|
|
184
|
+
"types": "./tooling/rollup/rollup.config.d.mts",
|
|
185
|
+
"import": "./tooling/rollup/rollup.config.mjs"
|
|
186
|
+
},
|
|
187
|
+
"./rolldown": {
|
|
188
|
+
"types": "./tooling/rolldown/rolldown.config.d.mts",
|
|
189
|
+
"import": "./tooling/rolldown/rolldown.config.mjs"
|
|
190
|
+
},
|
|
191
|
+
"./docusaurus": {
|
|
192
|
+
"types": "./tooling/docusaurus/index.d.mts",
|
|
193
|
+
"import": "./tooling/docusaurus/index.mjs"
|
|
194
|
+
},
|
|
195
|
+
"./biome": "./tooling/biome/biome.json",
|
|
196
|
+
"./nx": "./tooling/nx/nx.json",
|
|
197
|
+
"./changesets": "./tooling/changesets/config.json",
|
|
198
|
+
"./release-please": "./tooling/release-please/release-please-config.json",
|
|
199
|
+
"./oxlint": "./tooling/oxlint/oxlintrc.json",
|
|
200
|
+
"./typedoc": "./tooling/typedoc/typedoc.json",
|
|
201
|
+
"./semantic-release": {
|
|
202
|
+
"types": "./tooling/semantic-release/index.d.mts",
|
|
203
|
+
"import": "./tooling/semantic-release/index.mjs"
|
|
204
|
+
},
|
|
205
|
+
"./semantic-release/github": {
|
|
206
|
+
"types": "./tooling/semantic-release/github.d.mts",
|
|
207
|
+
"import": "./tooling/semantic-release/github.mjs"
|
|
208
|
+
},
|
|
209
|
+
"./semantic-release/docker": {
|
|
210
|
+
"types": "./tooling/semantic-release/docker.d.mts",
|
|
211
|
+
"import": "./tooling/semantic-release/docker.mjs"
|
|
212
|
+
},
|
|
213
|
+
"./tests/exports-resolution": {
|
|
214
|
+
"types": "./tooling/tests/exports-resolution.d.mts",
|
|
215
|
+
"import": "./tooling/tests/exports-resolution.mjs"
|
|
216
|
+
},
|
|
217
|
+
"./tests/ssr-safety": {
|
|
218
|
+
"types": "./tooling/tests/ssr-safety.d.mts",
|
|
219
|
+
"import": "./tooling/tests/ssr-safety.mjs"
|
|
220
|
+
},
|
|
221
|
+
"./package.json": "./package.json"
|
|
222
|
+
},
|
|
223
|
+
"dependencies": {
|
|
224
|
+
"chalk": "^5.6.2",
|
|
225
|
+
"commander": "^15.0.0",
|
|
226
|
+
"diff": "^9.0.0",
|
|
227
|
+
"fs-extra": "^11.4.0",
|
|
228
|
+
"inquirer": "^14.0.2"
|
|
229
|
+
},
|
|
230
|
+
"devDependencies": {
|
|
231
|
+
"@biomejs/biome": "^2.5.5",
|
|
232
|
+
"@types/diff": "^8.0.0",
|
|
233
|
+
"@commitlint/cli": "^21.2.1",
|
|
234
|
+
"@commitlint/config-conventional": "^21.2.0",
|
|
235
|
+
"@commitlint/types": "^21.2.0",
|
|
236
|
+
"@eslint/js": "^10.0.1",
|
|
237
|
+
"@ianvs/prettier-plugin-sort-imports": "^4.4.2",
|
|
238
|
+
"@next/eslint-plugin-next": "^16.2.11",
|
|
239
|
+
"@playwright/test": "^1.62.0",
|
|
240
|
+
"@semantic-release/changelog": "^7.0.0",
|
|
241
|
+
"@rollup/plugin-typescript": "^12.0.0",
|
|
242
|
+
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
243
|
+
"@semantic-release/exec": "^7.1.0",
|
|
244
|
+
"@semantic-release/git": "^11.0.1",
|
|
245
|
+
"@semantic-release/github": "^12.0.9",
|
|
246
|
+
"@semantic-release/npm": "^13.1.5",
|
|
247
|
+
"@semantic-release/release-notes-generator": "^14.1.1",
|
|
248
|
+
"@total-typescript/ts-reset": "0.6.1",
|
|
249
|
+
"@types/fs-extra": "^11.0.4",
|
|
250
|
+
"@types/node": "^26.1.1",
|
|
251
|
+
"@typescript-eslint/eslint-plugin": "^8.65.0",
|
|
252
|
+
"@typescript-eslint/parser": "^8.65.0",
|
|
253
|
+
"@vitejs/plugin-react": "^6.0.4",
|
|
254
|
+
"@vitest/coverage-v8": "^4.1.10",
|
|
255
|
+
"commitizen": "^4.3.1",
|
|
256
|
+
"conventional-changelog-conventionalcommits": "^10.2.1",
|
|
257
|
+
"cz-conventional-changelog": "^3.3.0",
|
|
258
|
+
"esbuild": "^0.28.0",
|
|
259
|
+
"esbuild-node-externals": "^1.23.1",
|
|
260
|
+
"eslint": "10.8.0",
|
|
261
|
+
"eslint-plugin-import": "^2.32.0",
|
|
262
|
+
"eslint-plugin-jest": "29.16.0",
|
|
263
|
+
"husky": "^9.1.7",
|
|
264
|
+
"is-ci": "^4.1.0",
|
|
265
|
+
"jest": "^30.4.2",
|
|
266
|
+
"jsdom": "^29.1.1",
|
|
267
|
+
"knip": "^6.29.0",
|
|
268
|
+
"prettier": "^3.9.6",
|
|
269
|
+
"rimraf": "6.1.3",
|
|
270
|
+
"rollup": "^4.62.0",
|
|
271
|
+
"semantic-release": "^25.0.8",
|
|
272
|
+
"ts-jest": "^29.4.12",
|
|
273
|
+
"tslib": "^2.8.0",
|
|
274
|
+
"tsup": "8.5.1",
|
|
275
|
+
"typescript": "^7.0.2",
|
|
276
|
+
"typescript-eslint": "^8.65.0",
|
|
277
|
+
"vitest": "^4.1.10"
|
|
278
|
+
},
|
|
279
|
+
"peerDependencies": {
|
|
280
|
+
"@biomejs/biome": "^2.0.0",
|
|
281
|
+
"@commitlint/cli": "^20.0.0 || ^21.0.0",
|
|
282
|
+
"@commitlint/config-conventional": "^21.2.0",
|
|
283
|
+
"@commitlint/types": "^21.2.0",
|
|
284
|
+
"@eslint/js": "^9.0.0",
|
|
285
|
+
"@ianvs/prettier-plugin-sort-imports": "^4.0.0",
|
|
286
|
+
"@next/eslint-plugin-next": "^16.2.11",
|
|
287
|
+
"@rollup/plugin-typescript": "^12.0.0",
|
|
288
|
+
"@semantic-release/changelog": "^6.0.0",
|
|
289
|
+
"@semantic-release/commit-analyzer": "^13.0.0",
|
|
290
|
+
"@semantic-release/exec": "^7.0.0",
|
|
291
|
+
"@semantic-release/git": "^10.0.0",
|
|
292
|
+
"@semantic-release/github": "^12.0.9",
|
|
293
|
+
"@semantic-release/npm": "^13.0.0",
|
|
294
|
+
"@semantic-release/release-notes-generator": "^14.0.0",
|
|
295
|
+
"@size-limit/preset-small-lib": "^12.0.0",
|
|
296
|
+
"@total-typescript/ts-reset": "^0.6.0",
|
|
297
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
298
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
299
|
+
"conventional-changelog-conventionalcommits": "^9.0.0",
|
|
300
|
+
"esbuild": "^0.25.0 || ^0.27.0 || ^0.28.0",
|
|
301
|
+
"esbuild-node-externals": "^1.0.0",
|
|
302
|
+
"eslint": ">=9.0.0",
|
|
303
|
+
"eslint-plugin-import": "^2.0.0",
|
|
304
|
+
"eslint-plugin-jest": "^29.0.0",
|
|
305
|
+
"jest": "^29.0.0",
|
|
306
|
+
"prettier": "^3.0.0",
|
|
307
|
+
"rollup": "^4.0.0",
|
|
308
|
+
"semantic-release": "^25.0.0",
|
|
309
|
+
"size-limit": "^12.0.0",
|
|
310
|
+
"ts-jest": "^29.0.0",
|
|
311
|
+
"tslib": "^2.0.0",
|
|
312
|
+
"tsup": "^8.0.0",
|
|
313
|
+
"typescript": ">=5.0.0",
|
|
314
|
+
"typescript-eslint": "^8.0.0",
|
|
315
|
+
"vitest": ">=3.0.0"
|
|
316
|
+
},
|
|
317
|
+
"peerDependenciesMeta": {
|
|
318
|
+
"@biomejs/biome": {
|
|
319
|
+
"optional": true
|
|
320
|
+
},
|
|
321
|
+
"@commitlint/cli": {
|
|
322
|
+
"optional": true
|
|
323
|
+
},
|
|
324
|
+
"@commitlint/config-conventional": {
|
|
325
|
+
"optional": true
|
|
326
|
+
},
|
|
327
|
+
"@commitlint/types": {
|
|
328
|
+
"optional": true
|
|
329
|
+
},
|
|
330
|
+
"@eslint/js": {
|
|
331
|
+
"optional": true
|
|
332
|
+
},
|
|
333
|
+
"@ianvs/prettier-plugin-sort-imports": {
|
|
334
|
+
"optional": true
|
|
335
|
+
},
|
|
336
|
+
"@next/eslint-plugin-next": {
|
|
337
|
+
"optional": true
|
|
338
|
+
},
|
|
339
|
+
"@semantic-release/changelog": {
|
|
340
|
+
"optional": true
|
|
341
|
+
},
|
|
342
|
+
"@semantic-release/commit-analyzer": {
|
|
343
|
+
"optional": true
|
|
344
|
+
},
|
|
345
|
+
"@semantic-release/exec": {
|
|
346
|
+
"optional": true
|
|
347
|
+
},
|
|
348
|
+
"@semantic-release/git": {
|
|
349
|
+
"optional": true
|
|
350
|
+
},
|
|
351
|
+
"@semantic-release/github": {
|
|
352
|
+
"optional": true
|
|
353
|
+
},
|
|
354
|
+
"@semantic-release/npm": {
|
|
355
|
+
"optional": true
|
|
356
|
+
},
|
|
357
|
+
"@semantic-release/release-notes-generator": {
|
|
358
|
+
"optional": true
|
|
359
|
+
},
|
|
360
|
+
"@total-typescript/ts-reset": {
|
|
361
|
+
"optional": true
|
|
362
|
+
},
|
|
363
|
+
"@typescript-eslint/eslint-plugin": {
|
|
364
|
+
"optional": true
|
|
365
|
+
},
|
|
366
|
+
"@typescript-eslint/parser": {
|
|
367
|
+
"optional": true
|
|
368
|
+
},
|
|
369
|
+
"conventional-changelog-conventionalcommits": {
|
|
370
|
+
"optional": true
|
|
371
|
+
},
|
|
372
|
+
"esbuild": {
|
|
373
|
+
"optional": true
|
|
374
|
+
},
|
|
375
|
+
"esbuild-node-externals": {
|
|
376
|
+
"optional": true
|
|
377
|
+
},
|
|
378
|
+
"eslint": {
|
|
379
|
+
"optional": true
|
|
380
|
+
},
|
|
381
|
+
"eslint-plugin-import": {
|
|
382
|
+
"optional": true
|
|
383
|
+
},
|
|
384
|
+
"eslint-plugin-jest": {
|
|
385
|
+
"optional": true
|
|
386
|
+
},
|
|
387
|
+
"jest": {
|
|
388
|
+
"optional": true
|
|
389
|
+
},
|
|
390
|
+
"prettier": {
|
|
391
|
+
"optional": true
|
|
392
|
+
},
|
|
393
|
+
"semantic-release": {
|
|
394
|
+
"optional": true
|
|
395
|
+
},
|
|
396
|
+
"size-limit": {
|
|
397
|
+
"optional": true
|
|
398
|
+
},
|
|
399
|
+
"@size-limit/preset-small-lib": {
|
|
400
|
+
"optional": true
|
|
401
|
+
},
|
|
402
|
+
"ts-jest": {
|
|
403
|
+
"optional": true
|
|
404
|
+
},
|
|
405
|
+
"@rollup/plugin-typescript": {
|
|
406
|
+
"optional": true
|
|
407
|
+
},
|
|
408
|
+
"rollup": {
|
|
409
|
+
"optional": true
|
|
410
|
+
},
|
|
411
|
+
"tslib": {
|
|
412
|
+
"optional": true
|
|
413
|
+
},
|
|
414
|
+
"tsup": {
|
|
415
|
+
"optional": true
|
|
416
|
+
},
|
|
417
|
+
"typescript": {
|
|
418
|
+
"optional": true
|
|
419
|
+
},
|
|
420
|
+
"typescript-eslint": {
|
|
421
|
+
"optional": true
|
|
422
|
+
},
|
|
423
|
+
"vitest": {
|
|
424
|
+
"optional": true
|
|
425
|
+
}
|
|
426
|
+
},
|
|
427
|
+
"knip": {
|
|
428
|
+
"entry": [
|
|
429
|
+
"src/cli/index.ts",
|
|
430
|
+
"src/cli/commands/doctor.ts",
|
|
431
|
+
"tooling/**/*.{mjs,ts}"
|
|
432
|
+
],
|
|
433
|
+
"project": [
|
|
434
|
+
"src/**/*.ts",
|
|
435
|
+
"tooling/**/*.{mjs,ts}"
|
|
436
|
+
],
|
|
437
|
+
"ignoreDependencies": [
|
|
438
|
+
"ts-jest",
|
|
439
|
+
"@semantic-release/commit-analyzer",
|
|
440
|
+
"@semantic-release/exec",
|
|
441
|
+
"@semantic-release/github",
|
|
442
|
+
"@semantic-release/npm",
|
|
443
|
+
"@semantic-release/release-notes-generator",
|
|
444
|
+
"conventional-changelog-conventionalcommits"
|
|
445
|
+
]
|
|
446
|
+
},
|
|
447
|
+
"bin": {
|
|
448
|
+
"repo-tooling": "./dist/cli/index.js"
|
|
449
|
+
},
|
|
450
|
+
"config": {
|
|
451
|
+
"commitizen": {
|
|
452
|
+
"path": "cz-conventional-changelog"
|
|
453
|
+
}
|
|
454
|
+
},
|
|
455
|
+
"publishConfig": {
|
|
456
|
+
"access": "public"
|
|
457
|
+
},
|
|
458
|
+
"engines": {
|
|
459
|
+
"node": ">=22"
|
|
460
|
+
}
|
|
461
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Biome Configuration
|
|
2
|
+
|
|
3
|
+
This package provides a standardized Biome configuration for consistent code formatting and linting across projects.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -D @rtorcato/repo-tooling @biomejs/biome
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
### Option 1: CLI Copy Command (Recommended)
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npx @rtorcato/repo-tooling copy biome
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
This will copy the base `biome.json` configuration to your project root.
|
|
20
|
+
|
|
21
|
+
### Option 2: Manual Copy
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
cp node_modules/@rtorcato/repo-tooling/tooling/biome/biome.json ./biome.json
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Option 3: Reference in package.json
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"scripts": {
|
|
32
|
+
"lint": "biome lint .",
|
|
33
|
+
"format": "biome format .",
|
|
34
|
+
"check": "biome check .",
|
|
35
|
+
"check:fix": "biome check --fix ."
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Configuration Features
|
|
41
|
+
|
|
42
|
+
- **Formatter**: Tab indentation, 100 character line width, single quotes
|
|
43
|
+
- **Linter**: Recommended rules with sensible overrides
|
|
44
|
+
- **JavaScript**: ES5 trailing commas, semicolons as needed
|
|
45
|
+
- **Import organization**: Disabled to prevent conflicts
|
|
46
|
+
- **File patterns**: Excludes common build/config directories
|
|
47
|
+
|
|
48
|
+
## Customization
|
|
49
|
+
|
|
50
|
+
After copying the configuration, you can customize it for your project:
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
// Add project-specific rules
|
|
55
|
+
"linter": {
|
|
56
|
+
"rules": {
|
|
57
|
+
"recommended": true,
|
|
58
|
+
"suspicious": {
|
|
59
|
+
"noExplicitAny": "error"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
// Add project-specific file patterns
|
|
64
|
+
"files": {
|
|
65
|
+
"includes": [
|
|
66
|
+
"src/**/*",
|
|
67
|
+
"!src/generated/**"
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## VS Code Integration
|
|
74
|
+
|
|
75
|
+
Add to your `.vscode/settings.json`:
|
|
76
|
+
|
|
77
|
+
```json
|
|
78
|
+
{
|
|
79
|
+
"editor.defaultFormatter": "biomejs.biome",
|
|
80
|
+
"editor.formatOnSave": true,
|
|
81
|
+
"editor.codeActionsOnSave": {
|
|
82
|
+
"quickfix.biome": "explicit",
|
|
83
|
+
"source.organizeImports.biome": "explicit"
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Why Biome Can't Extend Configurations
|
|
89
|
+
|
|
90
|
+
Unlike ESLint or TypeScript, Biome doesn't support configuration inheritance/extending. Each project needs its own complete `biome.json` file. This package provides a well-tested base configuration that you can copy and customize.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/2.5.0/schema.json",
|
|
3
|
+
"vcs": {
|
|
4
|
+
"enabled": false,
|
|
5
|
+
"clientKind": "git",
|
|
6
|
+
"useIgnoreFile": true
|
|
7
|
+
},
|
|
8
|
+
"files": {
|
|
9
|
+
"ignoreUnknown": false,
|
|
10
|
+
"includes": [
|
|
11
|
+
"**",
|
|
12
|
+
"!**/node_modules",
|
|
13
|
+
"!**/package.json",
|
|
14
|
+
"!**/tsconfig*.json",
|
|
15
|
+
"!**/dist",
|
|
16
|
+
"!**/coverage",
|
|
17
|
+
"!**/.git",
|
|
18
|
+
"!**/.github",
|
|
19
|
+
"!**/.vscode"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"formatter": {
|
|
23
|
+
"enabled": true,
|
|
24
|
+
"indentStyle": "tab",
|
|
25
|
+
"lineWidth": 100
|
|
26
|
+
},
|
|
27
|
+
"linter": {
|
|
28
|
+
"enabled": true,
|
|
29
|
+
"rules": {
|
|
30
|
+
"preset": "recommended",
|
|
31
|
+
"style": {
|
|
32
|
+
"noInferrableTypes": "off"
|
|
33
|
+
},
|
|
34
|
+
"complexity": {
|
|
35
|
+
"useLiteralKeys": "off"
|
|
36
|
+
},
|
|
37
|
+
"suspicious": {
|
|
38
|
+
"noExplicitAny": "off",
|
|
39
|
+
"noTemplateCurlyInString": "off"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"assist": {
|
|
44
|
+
"actions": {
|
|
45
|
+
"source": {
|
|
46
|
+
"organizeImports": "off"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"javascript": {
|
|
51
|
+
"formatter": {
|
|
52
|
+
"quoteStyle": "single",
|
|
53
|
+
"trailingCommas": "es5",
|
|
54
|
+
"semicolons": "asNeeded"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"json": {
|
|
58
|
+
"formatter": {
|
|
59
|
+
"indentStyle": "space",
|
|
60
|
+
"indentWidth": 2
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Bun configuration — https://bun.sh/docs/runtime/bunfig
|
|
2
|
+
# Tune to taste; this is a minimal, Node-compatible-library-friendly default.
|
|
3
|
+
|
|
4
|
+
[install]
|
|
5
|
+
# Fail the install if the lockfile would change in CI (mirrors --frozen-lockfile).
|
|
6
|
+
frozenLockfile = false
|
|
7
|
+
# Pin exact versions on `bun add` for reproducible installs.
|
|
8
|
+
exact = true
|
|
9
|
+
|
|
10
|
+
[test]
|
|
11
|
+
# Enable coverage with `bun test --coverage`; leave off by default for speed.
|
|
12
|
+
coverage = false
|
|
13
|
+
# Directories/globs Bun's test runner discovers (matches the tests/ convention).
|
|
14
|
+
root = "."
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Changesets preset
|
|
2
|
+
|
|
3
|
+
Shared [Changesets](https://github.com/changesets/changesets) configuration for projects using `@rtorcato/repo-tooling`.
|
|
4
|
+
|
|
5
|
+
Changesets is a **monorepo-friendly alternative to semantic-release**. The release workflow is the same shape (CI bumps versions, generates a changelog, publishes to npm), but the *intent* is captured in changeset markdown files at PR time rather than parsed from commit messages.
|
|
6
|
+
|
|
7
|
+
Pick one — Changesets or semantic-release — per repo. The `doctor` check flags repos configured for both.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx @rtorcato/repo-tooling copy changesets
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
This scaffolds `.changeset/config.json` from this preset. After that:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm changeset # interactive — author a changeset for the current change
|
|
19
|
+
pnpm changeset version # consume changesets, bump versions, write CHANGELOG.md
|
|
20
|
+
pnpm changeset publish # publish to npm
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
CI typically runs the [Changesets release bot](https://github.com/changesets/action), which opens a "Version Packages" PR when changesets are present and publishes on merge.
|
|
24
|
+
|
|
25
|
+
## Why pick this over semantic-release
|
|
26
|
+
|
|
27
|
+
- **Monorepos** — Changesets handles multi-package version bumps in a way semantic-release doesn't out of the box.
|
|
28
|
+
- **Explicit intent** — Authors declare a change's bump level in the changeset file rather than encoding it in commit message conventions, which is more forgiving for human commits.
|
|
29
|
+
- **Pre-release flows** — `--snapshot` and `pre enter <tag>` are first-class.
|
|
30
|
+
|
|
31
|
+
## Why pick semantic-release instead
|
|
32
|
+
|
|
33
|
+
- **Single-package repos** — Less ceremony; nothing to author per change.
|
|
34
|
+
- **Strict conventional-commits discipline already in place.**
|
|
35
|
+
- **Existing CI built around the `npm run release` path.**
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://unpkg.com/@changesets/config@3.0.5/schema.json",
|
|
3
|
+
"changelog": "@changesets/cli/changelog",
|
|
4
|
+
"commit": false,
|
|
5
|
+
"fixed": [],
|
|
6
|
+
"linked": [],
|
|
7
|
+
"access": "public",
|
|
8
|
+
"baseBranch": "main",
|
|
9
|
+
"updateInternalDependencies": "patch",
|
|
10
|
+
"ignore": []
|
|
11
|
+
}
|