@icebreakers/monorepo-templates 1.3.0 → 1.3.2

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 (213) hide show
  1. package/README.md +6 -0
  2. package/README.zh-CN.md +6 -0
  3. package/assets/.github/workflows/ci.yml +11 -0
  4. package/assets/.github/workflows/release-intent-check.yml +57 -0
  5. package/assets/CONTRIBUTING.md +3 -1
  6. package/assets/package.json +57 -14
  7. package/assets/pnpm-workspace.yaml +13 -0
  8. package/assets/repoctl.config.ts +6 -1
  9. package/assets/turbo.json +16 -0
  10. package/package.json +4 -4
  11. package/templates/client/eslint.config.js +1 -1
  12. package/templates/client/package.json +13 -13
  13. package/templates/client/worker-configuration.d.ts +763 -217
  14. package/templates/server/package.json +3 -3
  15. package/templates/server/worker-configuration.d.ts +763 -217
  16. package/templates/vitepress/.vitepress/config.ts +17 -7
  17. package/templates/vitepress/.vitepress/home/content.ts +64 -156
  18. package/templates/vitepress/.vitepress/home/types.ts +18 -34
  19. package/templates/vitepress/.vitepress/navigation/routes.ts +89 -81
  20. package/templates/vitepress/.vitepress/seo.ts +16 -2
  21. package/templates/vitepress/.vitepress/theme/Layout.vue +27 -0
  22. package/templates/vitepress/.vitepress/theme/components/HomePage.vue +66 -88
  23. package/templates/vitepress/.vitepress/theme/home/foundation.css +161 -104
  24. package/templates/vitepress/.vitepress/theme/home/responsive.css +113 -20
  25. package/templates/vitepress/.vitepress/theme/home/sections.css +179 -100
  26. package/templates/vitepress/.vitepress/theme/index.ts +2 -0
  27. package/templates/vitepress/learn/index.md +18 -0
  28. package/templates/vitepress/{monorepo → learn/monorepo}/commands.md +1 -1
  29. package/templates/vitepress/{monorepo → learn/monorepo}/index.md +3 -3
  30. package/templates/vitepress/{monorepo → learn/monorepo}/templates.md +1 -1
  31. package/templates/vitepress/{why/what-is-npm-package.md → learn/packages/index.md} +1 -1
  32. package/templates/vitepress/{why → learn/packages}/modern/index.md +2 -2
  33. package/templates/vitepress/{why → learn/packages}/modern/typescript.md +1 -1
  34. package/templates/vitepress/{why/index.md → learn/packages/modern-overview.md} +1 -1
  35. package/templates/vitepress/{why/publish-basic-npm-package.md → learn/packages/publish.md} +1 -1
  36. package/templates/vitepress/{why/how-to-reuse-js-code.md → learn/packages/reuse-javascript.md} +2 -2
  37. package/templates/vitepress/{why/js-keywords.md → learn/packages/runtime-globals.md} +2 -2
  38. package/templates/vitepress/{repoctl/index.md → learn/repoctl-model.md} +8 -8
  39. package/templates/vitepress/{tools → learn/tools}/changeset.md +3 -3
  40. package/templates/vitepress/{tools → learn/tools}/husky.md +2 -2
  41. package/templates/vitepress/{tools → learn/tools}/lint-staged.md +2 -2
  42. package/templates/vitepress/{tools → learn/tools}/llms-txt.md +1 -1
  43. package/templates/vitepress/{tools → learn/tools}/pnpm.md +2 -2
  44. package/templates/vitepress/{tools → learn/tools}/renovate.md +2 -2
  45. package/templates/vitepress/{tools → learn/tools}/turborepo.md +2 -2
  46. package/templates/vitepress/package.json +7 -7
  47. package/templates/vitepress/public/brand/apple-touch-icon.png +0 -0
  48. package/templates/vitepress/public/brand/favicon.ico +0 -0
  49. package/templates/vitepress/public/brand/repoctl-lockup-dark.svg +6 -0
  50. package/templates/vitepress/public/brand/repoctl-lockup.svg +20 -0
  51. package/templates/vitepress/public/brand/repoctl-mark-192.png +0 -0
  52. package/templates/vitepress/public/brand/repoctl-mark-dark.svg +13 -0
  53. package/templates/vitepress/public/brand/repoctl-mark.svg +13 -0
  54. package/templates/vitepress/public/brand/repoctl-social-en.png +0 -0
  55. package/templates/vitepress/public/brand/repoctl-social-en.webp +0 -0
  56. package/templates/vitepress/public/brand/repoctl-social-zh.png +0 -0
  57. package/templates/vitepress/public/brand/repoctl-social-zh.webp +0 -0
  58. package/templates/vitepress/public/favicon.ico +0 -0
  59. package/templates/vitepress/public/logo.jpg +0 -0
  60. package/templates/vitepress/{repoctl → reference}/commands.md +2 -2
  61. package/templates/vitepress/reference/index.md +15 -0
  62. package/templates/vitepress/reference/output.md +37 -0
  63. package/templates/vitepress/{repoctl → reference}/templates.md +2 -2
  64. package/templates/vitepress/scripts/check-locales.ts +35 -1
  65. package/templates/vitepress/start/choose-next.md +14 -0
  66. package/templates/vitepress/start/first-run.md +39 -0
  67. package/templates/vitepress/start/index.md +26 -0
  68. package/templates/vitepress/{repoctl/getting-started.md → start/install.md} +5 -5
  69. package/templates/vitepress/{repoctl → tasks}/adopt-existing.md +30 -4
  70. package/templates/vitepress/{repoctl → tasks}/checks.md +27 -1
  71. package/templates/vitepress/{repoctl/workflows.md → tasks/ci.md} +30 -4
  72. package/templates/vitepress/tasks/create-project.md +37 -0
  73. package/templates/vitepress/{repoctl/scenarios.md → tasks/index.md} +8 -8
  74. package/templates/vitepress/tasks/release.md +31 -0
  75. package/templates/vitepress/{repoctl → tasks}/reports.md +25 -0
  76. package/templates/vitepress/{repoctl → tasks}/troubleshooting.md +30 -4
  77. package/templates/vitepress/zh/ai/llms-txt.md +6 -6
  78. package/templates/vitepress/zh/learn/index.md +18 -0
  79. package/templates/vitepress/zh/{monorepo → learn/monorepo}/commands.md +3 -3
  80. package/templates/vitepress/zh/{monorepo → learn/monorepo}/manage.md +4 -4
  81. package/templates/vitepress/zh/{monorepo → learn/monorepo}/templates.md +2 -2
  82. package/templates/vitepress/zh/{monorepo → learn/monorepo}/troubleshooting.md +2 -2
  83. package/templates/vitepress/zh/{why → learn/packages}/modern/index.md +1 -1
  84. package/templates/vitepress/zh/{why/index.md → learn/packages/modern-overview.md} +2 -2
  85. package/templates/vitepress/zh/{repoctl/index.md → learn/repoctl-model.md} +19 -19
  86. package/templates/vitepress/zh/{tools → learn/tools}/husky.md +1 -1
  87. package/templates/vitepress/zh/{tools → learn/tools}/lint-staged.md +1 -1
  88. package/templates/vitepress/zh/{tools → learn/tools}/llms-txt.md +1 -1
  89. package/templates/vitepress/zh/{tools → learn/tools}/pnpm.md +1 -1
  90. package/templates/vitepress/zh/{tools → learn/tools}/turborepo.md +11 -11
  91. package/templates/vitepress/zh/{repoctl → reference}/commands.md +4 -4
  92. package/templates/vitepress/zh/{repoctl → reference}/config.md +1 -1
  93. package/templates/vitepress/zh/reference/index.md +15 -0
  94. package/templates/vitepress/zh/reference/output.md +37 -0
  95. package/templates/vitepress/zh/{repoctl → reference}/templates.md +4 -4
  96. package/templates/vitepress/zh/start/choose-next.md +14 -0
  97. package/templates/vitepress/zh/{repoctl/doctor.md → start/diagnose.md} +1 -1
  98. package/templates/vitepress/zh/start/first-run.md +39 -0
  99. package/templates/vitepress/zh/start/index.md +26 -0
  100. package/templates/vitepress/zh/{repoctl/getting-started.md → start/install.md} +5 -5
  101. package/templates/vitepress/zh/{repoctl → tasks}/adopt-existing.md +30 -4
  102. package/templates/vitepress/zh/{repoctl → tasks}/checks.md +27 -1
  103. package/templates/vitepress/zh/{repoctl/workflows.md → tasks/ci.md} +38 -12
  104. package/templates/vitepress/zh/tasks/create-project.md +37 -0
  105. package/templates/vitepress/zh/{repoctl/scenarios.md → tasks/index.md} +8 -8
  106. package/templates/vitepress/zh/tasks/release.md +31 -0
  107. package/templates/vitepress/zh/{repoctl → tasks}/reports.md +25 -0
  108. package/templates/vitepress/zh/{repoctl → tasks}/troubleshooting.md +39 -13
  109. package/templates/vue-lib/package.json +5 -5
  110. package/templates/vitepress/getting-started.md +0 -11
  111. package/templates/vitepress/knowledge/index.md +0 -26
  112. package/templates/vitepress/thinking.md +0 -22
  113. package/templates/vitepress/zh/getting-started.md +0 -40
  114. package/templates/vitepress/zh/knowledge/index.md +0 -50
  115. package/templates/vitepress/zh/thinking.md +0 -91
  116. /package/templates/vitepress/{monorepo → learn/monorepo}/manage.md +0 -0
  117. /package/templates/vitepress/{monorepo → learn/monorepo}/publish.md +0 -0
  118. /package/templates/vitepress/{monorepo → learn/monorepo}/troubleshooting.md +0 -0
  119. /package/templates/vitepress/{why → learn/packages}/assets/npm-dt.svg +0 -0
  120. /package/templates/vitepress/{why → learn/packages}/assets/npm-ts.svg +0 -0
  121. /package/templates/vitepress/{why → learn/packages}/examples/0.npm-basic-package/index.js +0 -0
  122. /package/templates/vitepress/{why → learn/packages}/examples/0.npm-basic-package/package.json +0 -0
  123. /package/templates/vitepress/{why → learn/packages}/examples/1.npm-basic-package/index.cjs +0 -0
  124. /package/templates/vitepress/{why → learn/packages}/examples/1.npm-basic-package/index.d.ts +0 -0
  125. /package/templates/vitepress/{why → learn/packages}/examples/1.npm-basic-package/index.js +0 -0
  126. /package/templates/vitepress/{why → learn/packages}/examples/1.npm-basic-package/package.json +0 -0
  127. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/README.md +0 -0
  128. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/package-lock.json +0 -0
  129. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/package.json +0 -0
  130. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/rename-ext.js +0 -0
  131. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/src/index.ts +0 -0
  132. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.cjs.json +0 -0
  133. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.esm.json +0 -0
  134. /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.json +0 -0
  135. /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/README.md +0 -0
  136. /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/package-lock.json +0 -0
  137. /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/package.json +0 -0
  138. /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/src/index.ts +0 -0
  139. /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/tsconfig.json +0 -0
  140. /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/tsdown.config.ts +0 -0
  141. /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/cjs.cjs +0 -0
  142. /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/esm.mjs +0 -0
  143. /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/index.js +0 -0
  144. /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/package-lock.json +0 -0
  145. /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/package.json +0 -0
  146. /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/cjs.cjs +0 -0
  147. /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/createRequire.js +0 -0
  148. /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/esm.mjs +0 -0
  149. /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/index.js +0 -0
  150. /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/package-lock.json +0 -0
  151. /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/package.json +0 -0
  152. /package/templates/vitepress/{why → learn/packages}/modern/bundlers.md +0 -0
  153. /package/templates/vitepress/{why → learn/packages}/modern/dts.md +0 -0
  154. /package/templates/vitepress/{why → learn/packages}/modern/esm-vs-cjs.md +0 -0
  155. /package/templates/vitepress/{why → learn/packages}/modern/package-entry-points.md +0 -0
  156. /package/templates/vitepress/{why/js-cjs-mjs.md → learn/packages/module-extensions.md} +0 -0
  157. /package/templates/vitepress/{tools → learn/tools}/index.md +0 -0
  158. /package/templates/vitepress/{repoctl → reference}/aliases.md +0 -0
  159. /package/templates/vitepress/{repoctl → reference}/config.md +0 -0
  160. /package/templates/vitepress/{repoctl → reference}/execution-model.md +0 -0
  161. /package/templates/vitepress/{repoctl → reference}/template-assets.md +0 -0
  162. /package/templates/vitepress/{repoctl/doctor.md → start/diagnose.md} +0 -0
  163. /package/templates/vitepress/zh/{monorepo → learn/monorepo}/index.md +0 -0
  164. /package/templates/vitepress/zh/{monorepo → learn/monorepo}/publish.md +0 -0
  165. /package/templates/vitepress/zh/{why → learn/packages}/assets/npm-dt.svg +0 -0
  166. /package/templates/vitepress/zh/{why → learn/packages}/assets/npm-ts.svg +0 -0
  167. /package/templates/vitepress/zh/{why → learn/packages}/examples/0.npm-basic-package/index.js +0 -0
  168. /package/templates/vitepress/zh/{why → learn/packages}/examples/0.npm-basic-package/package.json +0 -0
  169. /package/templates/vitepress/zh/{why → learn/packages}/examples/1.npm-basic-package/index.cjs +0 -0
  170. /package/templates/vitepress/zh/{why → learn/packages}/examples/1.npm-basic-package/index.d.ts +0 -0
  171. /package/templates/vitepress/zh/{why → learn/packages}/examples/1.npm-basic-package/index.js +0 -0
  172. /package/templates/vitepress/zh/{why → learn/packages}/examples/1.npm-basic-package/package.json +0 -0
  173. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/README.md +0 -0
  174. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/package-lock.json +0 -0
  175. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/package.json +0 -0
  176. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/rename-ext.js +0 -0
  177. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/src/index.ts +0 -0
  178. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.cjs.json +0 -0
  179. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.esm.json +0 -0
  180. /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.json +0 -0
  181. /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/README.md +0 -0
  182. /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/package-lock.json +0 -0
  183. /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/package.json +0 -0
  184. /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/src/index.ts +0 -0
  185. /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/tsconfig.json +0 -0
  186. /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/tsdown.config.ts +0 -0
  187. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/cjs.cjs +0 -0
  188. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/esm.mjs +0 -0
  189. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/index.js +0 -0
  190. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/package-lock.json +0 -0
  191. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/package.json +0 -0
  192. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/cjs.cjs +0 -0
  193. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/createRequire.js +0 -0
  194. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/esm.mjs +0 -0
  195. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/index.js +0 -0
  196. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/package-lock.json +0 -0
  197. /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/package.json +0 -0
  198. /package/templates/vitepress/zh/{why/what-is-npm-package.md → learn/packages/index.md} +0 -0
  199. /package/templates/vitepress/zh/{why → learn/packages}/modern/bundlers.md +0 -0
  200. /package/templates/vitepress/zh/{why → learn/packages}/modern/dts.md +0 -0
  201. /package/templates/vitepress/zh/{why → learn/packages}/modern/esm-vs-cjs.md +0 -0
  202. /package/templates/vitepress/zh/{why → learn/packages}/modern/package-entry-points.md +0 -0
  203. /package/templates/vitepress/zh/{why → learn/packages}/modern/typescript.md +0 -0
  204. /package/templates/vitepress/zh/{why/js-cjs-mjs.md → learn/packages/module-extensions.md} +0 -0
  205. /package/templates/vitepress/zh/{why/publish-basic-npm-package.md → learn/packages/publish.md} +0 -0
  206. /package/templates/vitepress/zh/{why/how-to-reuse-js-code.md → learn/packages/reuse-javascript.md} +0 -0
  207. /package/templates/vitepress/zh/{why/js-keywords.md → learn/packages/runtime-globals.md} +0 -0
  208. /package/templates/vitepress/zh/{tools → learn/tools}/changeset.md +0 -0
  209. /package/templates/vitepress/zh/{tools → learn/tools}/index.md +0 -0
  210. /package/templates/vitepress/zh/{tools → learn/tools}/renovate.md +0 -0
  211. /package/templates/vitepress/zh/{repoctl → reference}/aliases.md +0 -0
  212. /package/templates/vitepress/zh/{repoctl → reference}/execution-model.md +0 -0
  213. /package/templates/vitepress/zh/{repoctl → reference}/template-assets.md +0 -0
package/README.md CHANGED
@@ -22,3 +22,9 @@ const vitepress = getTemplateDefinition('vitepress')
22
22
  ```
23
23
 
24
24
  The source workspaces under the repository's `templates/` directory are private. This package is their supported distribution boundary.
25
+
26
+ ## Project links
27
+
28
+ - Documentation: https://repoctl.icebreaker.top
29
+ - Repository: https://github.com/sonofmagic/repoctl/tree/main/packages/monorepo-templates
30
+ - Issues: https://github.com/sonofmagic/repoctl/issues
package/README.zh-CN.md CHANGED
@@ -14,3 +14,9 @@ const vitepress = getTemplateDefinition('vitepress')
14
14
  ```
15
15
 
16
16
  仓库 `templates/` 下的源码工作区均为私有,本包是这些模板的正式分发边界。
17
+
18
+ ## 项目链接
19
+
20
+ - 文档:https://repoctl.icebreaker.top
21
+ - 仓库:https://github.com/sonofmagic/repoctl/tree/main/packages/monorepo-templates
22
+ - 问题反馈:https://github.com/sonofmagic/repoctl/issues
@@ -5,6 +5,11 @@ on:
5
5
  # branches: ['main']
6
6
  pull_request:
7
7
  types: [opened, synchronize]
8
+ paths-ignore:
9
+ - '**/*.md'
10
+ - 'docs/**'
11
+ - '.changeset/**'
12
+ - 'LICENSE*'
8
13
  workflow_dispatch:
9
14
 
10
15
  permissions:
@@ -43,6 +48,12 @@ jobs:
43
48
  - name: Install dependencies
44
49
  run: pnpm install --frozen-lockfile
45
50
 
51
+ - name: Check tracked build artifacts
52
+ run: pnpm check:no-tracked-build-artifacts
53
+
54
+ - name: Check CI/CD workflow contracts
55
+ run: pnpm check:workflows
56
+
46
57
  - name: Security Audit
47
58
  run: pnpm audit --audit-level=moderate
48
59
  continue-on-error: true
@@ -0,0 +1,57 @@
1
+ name: Release Intent Check
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize, reopened, ready_for_review]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ release-intent:
12
+ name: Require release intent for publishable changes
13
+ if: ${{ !github.event.pull_request.draft }}
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - name: Checkout repository
17
+ uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
18
+ with:
19
+ fetch-depth: 0
20
+
21
+ - name: Skip generated release PRs
22
+ if: startsWith(github.head_ref, 'pnpm-release/') || startsWith(github.head_ref, 'release/pnpm-version')
23
+ run: echo "Generated pnpm release PR detected; skipping validation"
24
+
25
+ - name: Validate release intent presence
26
+ if: ${{ !startsWith(github.head_ref, 'pnpm-release/') && !startsWith(github.head_ref, 'release/pnpm-version') }}
27
+ shell: bash
28
+ run: |
29
+ set -euo pipefail
30
+
31
+ base_sha="${{ github.event.pull_request.base.sha }}"
32
+ head_sha="${{ github.event.pull_request.head.sha }}"
33
+ changed_files="$(git diff --name-only "$base_sha" "$head_sha")"
34
+
35
+ publishable_changes="$(printf '%s\n' "$changed_files" | \
36
+ rg '^packages/[^/]+/' \
37
+ | rg -v '/dist/' \
38
+ || true)"
39
+
40
+ if [ -z "$publishable_changes" ]; then
41
+ echo "No publishable package changes detected"
42
+ exit 0
43
+ fi
44
+
45
+ release_intents="$(printf '%s\n' "$changed_files" | rg '^\.changeset/.+\.md$' || true)"
46
+
47
+ if [ -n "$release_intents" ]; then
48
+ echo "pnpm release intent detected"
49
+ exit 0
50
+ fi
51
+
52
+ echo "Publishable package changes require a pnpm release intent in .changeset/*.md."
53
+ echo "Create one with: pnpm change"
54
+ echo
55
+ echo "Changed files:"
56
+ printf '%s\n' "$publishable_changes"
57
+ exit 1
@@ -6,7 +6,7 @@ repoctl accepts bug fixes, documentation improvements, tests, and focused featur
6
6
 
7
7
  ## Development setup
8
8
 
9
- 1. Use Node.js 22.12+ and enable Corepack.
9
+ 1. Use Node.js 22.13+ and enable Corepack.
10
10
  2. Run `pnpm install`.
11
11
  3. Create a focused branch from `main`.
12
12
  4. Add or update tests with the implementation.
@@ -23,6 +23,8 @@ pnpm test
23
23
 
24
24
  Changes to publishable packages require a pnpm change intent created with `pnpm change`. Commits must use Conventional Commit syntax.
25
25
 
26
+ The repository includes repoctl's CLI and monorepo engine, template assets, shared lint/config packages, and the `apps/mock` fixture demo. Keep package APIs and independent version lines intact when working across these areas.
27
+
26
28
  When changing templates or managed root assets, update their source first and refresh packaged copies with `pnpm --filter @icebreakers/monorepo-templates sync:assets`.
27
29
 
28
30
  Report bugs at https://github.com/sonofmagic/repoctl/issues and use discussions for design questions that do not yet have a concrete implementation.
@@ -3,8 +3,8 @@
3
3
  "type": "module",
4
4
  "version": "0.0.0",
5
5
  "private": true,
6
- "packageManager": "pnpm@11.22.0",
7
- "description": "Source workspace for repoctl, a task-first CLI for pnpm and Turborepo monorepos",
6
+ "packageManager": "pnpm@11.25.0",
7
+ "description": "Source workspace for repoctl and Icebreaker's shared development packages",
8
8
  "author": "ice breaker <hi@sonofmagic.top>",
9
9
  "homepage": "https://repoctl.icebreaker.top",
10
10
  "repository": {
@@ -22,17 +22,20 @@
22
22
  "typescript"
23
23
  ],
24
24
  "engines": {
25
- "node": ">=22.12.0"
25
+ "node": ">=22.13.0"
26
26
  },
27
27
  "scripts": {
28
28
  "build": "turbo run build",
29
29
  "tooling:build": "turbo run build --filter=@icebreakers/monorepo --filter=repoctl",
30
30
  "dev": "turbo run dev --parallel",
31
- "test": "vitest run",
31
+ "test": "node -e \"require('node:fs').mkdirSync('coverage/.tmp', { recursive: true })\" && pnpm check:no-tracked-build-artifacts && vitest run && pnpm test:types",
32
32
  "test:packaged-doctor": "node scripts/smoke-packaged-doctor.mjs",
33
- "test:dev": "vitest",
33
+ "test:dev": "node -e \"require('node:fs').mkdirSync('coverage/.tmp', { recursive: true })\" && pnpm check:no-tracked-build-artifacts && vitest",
34
34
  "lint": "pnpm run tooling:build && turbo run lint",
35
35
  "tsd": "turbo run tsd",
36
+ "test:types": "turbo run test:types",
37
+ "check:no-tracked-build-artifacts": "node ./scripts/check-no-tracked-build-artifacts.mjs",
38
+ "check:workflows": "node ./scripts/check-workflows.mjs",
36
39
  "audit": "pnpm audit --audit-level=moderate",
37
40
  "audit:fix": "pnpm audit --fix",
38
41
  "cf-typegen": "pnpm --filter @icebreakers/client --filter @icebreakers/server run cf-typegen",
@@ -47,8 +50,12 @@
47
50
  "------": "--------------",
48
51
  "preinstall": "npx only-allow pnpm",
49
52
  "prepare": "husky",
53
+ "postinstall": "pnpm run build",
50
54
  "commit": "commit",
51
55
  "commitlint": "commitlint --edit",
56
+ "sync": "turbo run sync",
57
+ "inspector": "npx @eslint/config-inspector",
58
+ "build:inspector": "pnpm build && npx @eslint/config-inspector build",
52
59
  "-------": "---------------",
53
60
  "repo:init": "repo init",
54
61
  "repo:new": "repo new",
@@ -64,31 +71,67 @@
64
71
  },
65
72
  "devDependencies": {
66
73
  "@commitlint/cli": "^21.2.2",
74
+ "@eslint/config-inspector": "^3.4.0",
75
+ "@eslint/eslintrc": "^3.3.7",
76
+ "@icebreakers/commitlint-config": "workspace:*",
77
+ "@icebreakers/eslint-config": "workspace:*",
78
+ "@icebreakers/stylelint-config": "workspace:*",
79
+ "@next/eslint-plugin-next": "^16.3.4",
80
+ "@prettier/plugin-xml": "^3.4.2",
81
+ "@tanstack/eslint-plugin-query": "^5.102.8",
82
+ "@types/eslint-plugin-tailwindcss": "^3.17.0",
83
+ "@types/fs-extra": "^11.0.4",
84
+ "@types/lodash": "^4.17.25",
85
+ "@types/lodash-es": "^4.17.12",
86
+ "@types/micromatch": "^4.0.10",
67
87
  "@icebreakers/monorepo": "workspace:*",
68
- "@types/node": "^26.2.0",
88
+ "@types/node": "^26.4.1",
69
89
  "@types/semver": "^7.8.0",
70
- "@vitest/coverage-v8": "~4.1.10",
90
+ "@types/set-value": "^4.0.3",
91
+ "@typescript-eslint/types": "^8.69.0",
92
+ "@unocss/eslint-plugin": "66.9.2",
93
+ "@vitest/coverage-v8": "~4.1.11",
94
+ "astro-eslint-parser": "^3.1.0",
71
95
  "ci-info": "^4.4.0",
72
96
  "cross-env": "^10.1.0",
73
97
  "defu": "^6.1.7",
74
- "es-toolkit": "^1.50.0",
75
- "eslint": "^10.8.1",
98
+ "es-toolkit": "^1.52.0",
99
+ "eslint": "^10.9.1",
100
+ "eslint-plugin-astro": "^3.1.0",
101
+ "eslint-plugin-mdx": "3.8.1",
102
+ "eslint-plugin-svelte": "^3.23.0",
103
+ "execa": "^10.0.1",
104
+ "fast-glob": "^3.3.3",
105
+ "fs-extra": "^11.4.0",
106
+ "get-value": "^4.1.0",
76
107
  "husky": "^9.1.7",
77
- "lint-staged": "^17.3.0",
108
+ "jiti": "^2.7.0",
109
+ "lint-staged": "^17.4.1",
110
+ "lodash": "^4.18.1",
111
+ "lodash-es": "^4.18.1",
112
+ "micromatch": "^4.0.8",
78
113
  "only-allow": "^1.2.2",
79
114
  "pathe": "^2.0.3",
80
115
  "pkg-types": "^2.3.1",
116
+ "prettier": "^3.9.6",
117
+ "prettier-plugin-astro": "^0.14.1",
81
118
  "repoctl": "workspace:*",
119
+ "rimraf": "^6.1.3",
120
+ "set-value": "^4.1.0",
82
121
  "stylelint": "^17.14.1",
122
+ "svelte": "^5.57.0",
123
+ "svelte-eslint-parser": "^1.8.1",
83
124
  "tailwindcss": "^4.3.3",
84
125
  "tsd": "^0.33.0",
85
126
  "tsdown": "0.22.14",
86
127
  "tslib": "^2.8.1",
87
- "tsx": "^4.23.12",
88
- "turbo": "^2.10.10",
89
- "type-fest": "^5.8.0",
128
+ "tsx": "^4.23.13",
129
+ "turbo": "^2.10.12",
130
+ "type-fest": "^5.9.0",
131
+ "tsup": "^8.5.1",
90
132
  "typescript": "^6.0.3",
91
- "vitest": "~4.1.10",
133
+ "unbuild": "^3.6.1",
134
+ "vitest": "~4.1.11",
92
135
  "yaml": "^2.9.0"
93
136
  },
94
137
  "publishConfig": {
@@ -14,3 +14,16 @@ allowBuilds:
14
14
  sharp: true
15
15
  vue-demi: true
16
16
  workerd: true
17
+ overrides:
18
+ prettier: 3.9.6
19
+ typescript: 6.0.3
20
+ vite: 8.2.2
21
+ postcss: 8.5.26
22
+ postcss-selector-parser: 7.1.5
23
+ js-yaml: 5.4.1
24
+ nanoid: 6.0.1
25
+ brace-expansion: 5.0.9
26
+ cross-spawn: 7.0.6
27
+ adm-zip: 0.6.0
28
+ uuid: 14.0.2
29
+ esbuild: 0.28.2
@@ -20,10 +20,15 @@ export default {
20
20
  extends: ['@commitlint/config-conventional'],
21
21
  },
22
22
  eslint: {
23
+ astro: true,
23
24
  ignores: ['**/fixtures/**'],
25
+ svelte: true,
26
+ vue: true,
24
27
  },
25
28
  stylelint: {
26
- rules: {},
29
+ rules: {
30
+ 'media-feature-range-notation': 'prefix',
31
+ },
27
32
  },
28
33
  lintStaged: {
29
34
  monorepoCommand: 'pnpm exec repo',
package/assets/turbo.json CHANGED
@@ -52,6 +52,19 @@
52
52
  "coverage/**"
53
53
  ]
54
54
  },
55
+ "test:types": {
56
+ "dependsOn": [
57
+ "build",
58
+ "^build"
59
+ ],
60
+ "inputs": [
61
+ "test-d/**",
62
+ "package.json",
63
+ "tsconfig*.json",
64
+ "dist/**"
65
+ ],
66
+ "outputs": []
67
+ },
55
68
  "typecheck": {
56
69
  "dependsOn": [
57
70
  "^typecheck"
@@ -66,6 +79,9 @@
66
79
  "outputs": []
67
80
  },
68
81
  "tsd": {
82
+ "dependsOn": [
83
+ "^tsd"
84
+ ],
69
85
  "inputs": [
70
86
  "src/**",
71
87
  "lib/**",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@icebreakers/monorepo-templates",
3
3
  "type": "module",
4
- "version": "1.3.0",
4
+ "version": "1.3.2",
5
5
  "description": "Built-in project templates and managed workspace assets for repoctl",
6
6
  "author": "ice breaker <hi@sonofmagic.top>",
7
7
  "license": "MIT",
@@ -45,9 +45,9 @@
45
45
  "node": ">=18.0.0"
46
46
  },
47
47
  "dependencies": {
48
- "@inquirer/checkbox": "^5.2.1",
49
- "@inquirer/input": "^5.1.2",
50
- "@inquirer/select": "^5.2.1",
48
+ "@inquirer/checkbox": "^5.2.3",
49
+ "@inquirer/input": "^5.1.4",
50
+ "@inquirer/select": "^5.2.3",
51
51
  "commander": "^15.0.0",
52
52
  "nanoexec": "^1.1.0",
53
53
  "yaml": "^2.9.0"
@@ -10,6 +10,6 @@ export default await defineEslintConfig({
10
10
  tailwindcss: {
11
11
  entryPoint: tailwindEntryPoint,
12
12
  },
13
- ignores: ['**/fixtures/**', 'worker-configuration.d.ts'],
13
+ ignores: ['**/fixtures/**', '**/*.svg', 'worker-configuration.d.ts'],
14
14
  },
15
15
  })
@@ -32,21 +32,21 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@faker-js/faker": "^10.6.0",
35
- "@tanstack/vue-query": "^5.101.4",
36
- "@tanstack/vue-query-devtools": "^6.1.38",
37
- "@tanstack/vue-table": "^9.1.2",
38
- "@tanstack/vue-virtual": "^3.13.35",
35
+ "@tanstack/vue-query": "^5.102.8",
36
+ "@tanstack/vue-query-devtools": "^6.1.48",
37
+ "@tanstack/vue-table": "^9.2.4",
38
+ "@tanstack/vue-virtual": "^3.13.36",
39
39
  "@trpc/client": "^11.18.0",
40
40
  "clsx": "^2.1.1",
41
41
  "pinia": "^4.0.3",
42
42
  "tailwind-merge": "^3.6.0",
43
43
  "tailwind-variants": "^3.3.1",
44
- "vue": "^3.5.41",
45
- "vue-i18n": "^11.4.8",
46
- "vue-router": "^5.2.0"
44
+ "vue": "^3.5.42",
45
+ "vue-i18n": "^11.4.10",
46
+ "vue-router": "^5.3.0"
47
47
  },
48
48
  "devDependencies": {
49
- "@cloudflare/vite-plugin": "^1.52.1",
49
+ "@cloudflare/vite-plugin": "^1.54.3",
50
50
  "@hono/node-server": "^2.1.1",
51
51
  "@hono/trpc-server": "^0.4.2",
52
52
  "@tailwindcss/vite": "^4.3.3",
@@ -55,14 +55,14 @@
55
55
  "@vitejs/plugin-vue-jsx": "^5.1.6",
56
56
  "@vue/tsconfig": "^0.9.1",
57
57
  "consola": "^3.4.2",
58
- "hono": "^4.13.2",
58
+ "hono": "^4.13.5",
59
59
  "tailwindcss": "^4.3.3",
60
60
  "typescript": "~6.0.3",
61
- "vite": "^8.2.1",
61
+ "vite": "^8.2.2",
62
62
  "vite-plugin-vue-devtools": "^8.2.1",
63
63
  "vite-tsconfig-paths": "^6.1.1",
64
- "vue-tsc": "3.3.10",
65
- "wrangler": "^4.123.0",
66
- "zod": "^4.4.3"
64
+ "vue-tsc": "3.3.11",
65
+ "wrangler": "^4.128.0",
66
+ "zod": "^4.5.4"
67
67
  }
68
68
  }