@icebreakers/monorepo-templates 1.1.0 → 1.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.
Files changed (159) hide show
  1. package/README.md +12 -8
  2. package/README.zh-CN.md +16 -0
  3. package/assets/.github/ISSUE_TEMPLATE/config.yml +1 -1
  4. package/assets/.github/workflows/release.yml +5 -3
  5. package/assets/AGENTS.md +4 -3
  6. package/assets/CONTRIBUTING.md +27 -2
  7. package/assets/SECURITY.md +12 -14
  8. package/assets/package.json +13 -4
  9. package/assets/pnpm-workspace.yaml +2 -9
  10. package/dist/cli.mjs +1 -1
  11. package/dist/index.mjs +1 -1
  12. package/dist/{prepare-CNCmvco-.mjs → prepare--cxFop8c.mjs} +20 -0
  13. package/package.json +9 -5
  14. package/templates/cli/package.json +11 -4
  15. package/templates/client/package.json +17 -1
  16. package/templates/server/package.json +11 -4
  17. package/templates/tsdown/package.json +11 -4
  18. package/templates/vitepress/.vitepress/config.ts +146 -165
  19. package/templates/vitepress/ai/index.md +12 -23
  20. package/templates/vitepress/ai/llms-txt.md +13 -31
  21. package/templates/vitepress/getting-started.md +3 -32
  22. package/templates/vitepress/index.md +27 -30
  23. package/templates/vitepress/knowledge/index.md +17 -41
  24. package/templates/vitepress/monorepo/commands.md +13 -18
  25. package/templates/vitepress/monorepo/index.md +22 -100
  26. package/templates/vitepress/monorepo/manage.md +15 -227
  27. package/templates/vitepress/monorepo/publish.md +15 -70
  28. package/templates/vitepress/monorepo/templates.md +10 -17
  29. package/templates/vitepress/monorepo/troubleshooting.md +13 -16
  30. package/templates/vitepress/package.json +10 -4
  31. package/templates/vitepress/public/_redirects +3 -0
  32. package/templates/vitepress/repoctl/adopt-existing.md +51 -53
  33. package/templates/vitepress/repoctl/aliases.md +18 -18
  34. package/templates/vitepress/repoctl/checks.md +21 -68
  35. package/templates/vitepress/repoctl/commands.md +16 -64
  36. package/templates/vitepress/repoctl/config.md +14 -35
  37. package/templates/vitepress/repoctl/doctor.md +20 -60
  38. package/templates/vitepress/repoctl/execution-model.md +16 -69
  39. package/templates/vitepress/repoctl/getting-started.md +34 -40
  40. package/templates/vitepress/repoctl/index.md +33 -61
  41. package/templates/vitepress/repoctl/reports.md +20 -74
  42. package/templates/vitepress/repoctl/scenarios.md +26 -28
  43. package/templates/vitepress/repoctl/template-assets.md +19 -88
  44. package/templates/vitepress/repoctl/templates.md +50 -81
  45. package/templates/vitepress/repoctl/troubleshooting.md +32 -46
  46. package/templates/vitepress/repoctl/workflows.md +38 -67
  47. package/templates/vitepress/thinking.md +4 -85
  48. package/templates/vitepress/tools/changeset.md +9 -59
  49. package/templates/vitepress/tools/husky.md +6 -124
  50. package/templates/vitepress/tools/index.md +13 -32
  51. package/templates/vitepress/tools/lint-staged.md +5 -96
  52. package/templates/vitepress/tools/llms-txt.md +4 -6
  53. package/templates/vitepress/tools/pnpm.md +7 -119
  54. package/templates/vitepress/tools/renovate.md +3 -87
  55. package/templates/vitepress/tools/turborepo.md +5 -157
  56. package/templates/vitepress/why/how-to-reuse-js-code.md +6 -247
  57. package/templates/vitepress/why/index.md +14 -1
  58. package/templates/vitepress/why/js-cjs-mjs.md +9 -96
  59. package/templates/vitepress/why/js-keywords.md +4 -129
  60. package/templates/vitepress/why/modern/bundlers.md +3 -50
  61. package/templates/vitepress/why/modern/dts.md +4 -90
  62. package/templates/vitepress/why/modern/esm-vs-cjs.md +4 -81
  63. package/templates/vitepress/why/modern/index.md +10 -51
  64. package/templates/vitepress/why/modern/package-entry-points.md +6 -117
  65. package/templates/vitepress/why/modern/typescript.md +4 -152
  66. package/templates/vitepress/why/publish-basic-npm-package.md +17 -144
  67. package/templates/vitepress/why/what-is-npm-package.md +4 -159
  68. package/templates/vitepress/zh/ai/index.md +33 -0
  69. package/templates/vitepress/zh/ai/llms-txt.md +42 -0
  70. package/templates/vitepress/zh/getting-started.md +40 -0
  71. package/templates/vitepress/zh/index.md +66 -0
  72. package/templates/vitepress/zh/knowledge/index.md +50 -0
  73. package/templates/vitepress/zh/monorepo/commands.md +21 -0
  74. package/templates/vitepress/zh/monorepo/index.md +115 -0
  75. package/templates/vitepress/zh/monorepo/manage.md +243 -0
  76. package/templates/vitepress/zh/monorepo/publish.md +87 -0
  77. package/templates/vitepress/zh/monorepo/templates.md +21 -0
  78. package/templates/vitepress/zh/monorepo/troubleshooting.md +20 -0
  79. package/templates/vitepress/zh/repoctl/adopt-existing.md +135 -0
  80. package/templates/vitepress/{en → zh}/repoctl/aliases.md +18 -18
  81. package/templates/vitepress/zh/repoctl/checks.md +86 -0
  82. package/templates/vitepress/zh/repoctl/commands.md +168 -0
  83. package/templates/vitepress/zh/repoctl/config.md +90 -0
  84. package/templates/vitepress/zh/repoctl/doctor.md +86 -0
  85. package/templates/vitepress/zh/repoctl/execution-model.md +81 -0
  86. package/templates/vitepress/zh/repoctl/getting-started.md +122 -0
  87. package/templates/vitepress/zh/repoctl/index.md +102 -0
  88. package/templates/vitepress/zh/repoctl/reports.md +94 -0
  89. package/templates/vitepress/{en → zh}/repoctl/scenarios.md +28 -26
  90. package/templates/vitepress/zh/repoctl/template-assets.md +116 -0
  91. package/templates/vitepress/zh/repoctl/templates.md +159 -0
  92. package/templates/vitepress/zh/repoctl/troubleshooting.md +110 -0
  93. package/templates/vitepress/zh/repoctl/workflows.md +118 -0
  94. package/templates/vitepress/zh/thinking.md +88 -0
  95. package/templates/vitepress/zh/tools/changeset.md +75 -0
  96. package/templates/vitepress/zh/tools/husky.md +130 -0
  97. package/templates/vitepress/zh/tools/index.md +38 -0
  98. package/templates/vitepress/zh/tools/lint-staged.md +103 -0
  99. package/templates/vitepress/zh/tools/llms-txt.md +9 -0
  100. package/templates/vitepress/zh/tools/pnpm.md +127 -0
  101. package/templates/vitepress/zh/tools/renovate.md +91 -0
  102. package/templates/vitepress/zh/tools/turborepo.md +166 -0
  103. package/templates/vitepress/zh/why/assets/npm-dt.svg +15 -0
  104. package/templates/vitepress/zh/why/assets/npm-ts.svg +19 -0
  105. package/templates/vitepress/zh/why/examples/0.npm-basic-package/index.js +10 -0
  106. package/templates/vitepress/zh/why/examples/0.npm-basic-package/package.json +11 -0
  107. package/templates/vitepress/zh/why/examples/1.npm-basic-package/index.cjs +12 -0
  108. package/templates/vitepress/zh/why/examples/1.npm-basic-package/index.d.ts +1 -0
  109. package/templates/vitepress/zh/why/examples/1.npm-basic-package/index.js +8 -0
  110. package/templates/vitepress/zh/why/examples/1.npm-basic-package/package.json +19 -0
  111. package/templates/vitepress/zh/why/examples/2.npm-basic-package/README.md +1 -0
  112. package/templates/vitepress/zh/why/examples/2.npm-basic-package/package-lock.json +30 -0
  113. package/templates/vitepress/zh/why/examples/2.npm-basic-package/package.json +35 -0
  114. package/templates/vitepress/zh/why/examples/2.npm-basic-package/rename-ext.js +24 -0
  115. package/templates/vitepress/zh/why/examples/2.npm-basic-package/src/index.ts +8 -0
  116. package/templates/vitepress/zh/why/examples/2.npm-basic-package/tsconfig.cjs.json +8 -0
  117. package/templates/vitepress/zh/why/examples/2.npm-basic-package/tsconfig.esm.json +7 -0
  118. package/templates/vitepress/zh/why/examples/2.npm-basic-package/tsconfig.json +18 -0
  119. package/templates/vitepress/zh/why/examples/3.npm-basic-package/README.md +1 -0
  120. package/templates/vitepress/zh/why/examples/3.npm-basic-package/package-lock.json +1496 -0
  121. package/templates/vitepress/zh/why/examples/3.npm-basic-package/package.json +31 -0
  122. package/templates/vitepress/zh/why/examples/3.npm-basic-package/src/index.ts +8 -0
  123. package/templates/vitepress/zh/why/examples/3.npm-basic-package/tsconfig.json +16 -0
  124. package/templates/vitepress/zh/why/examples/3.npm-basic-package/tsdown.config.ts +16 -0
  125. package/templates/vitepress/zh/why/examples/usage-cjs/cjs.cjs +4 -0
  126. package/templates/vitepress/zh/why/examples/usage-cjs/esm.mjs +4 -0
  127. package/templates/vitepress/zh/why/examples/usage-cjs/index.js +8 -0
  128. package/templates/vitepress/zh/why/examples/usage-cjs/package-lock.json +36 -0
  129. package/templates/vitepress/zh/why/examples/usage-cjs/package.json +20 -0
  130. package/templates/vitepress/zh/why/examples/usage-esm/cjs.cjs +4 -0
  131. package/templates/vitepress/zh/why/examples/usage-esm/createRequire.js +7 -0
  132. package/templates/vitepress/zh/why/examples/usage-esm/esm.mjs +4 -0
  133. package/templates/vitepress/zh/why/examples/usage-esm/index.js +8 -0
  134. package/templates/vitepress/zh/why/examples/usage-esm/package-lock.json +36 -0
  135. package/templates/vitepress/zh/why/examples/usage-esm/package.json +21 -0
  136. package/templates/vitepress/zh/why/how-to-reuse-js-code.md +250 -0
  137. package/templates/vitepress/zh/why/index.md +1 -0
  138. package/templates/vitepress/zh/why/js-cjs-mjs.md +99 -0
  139. package/templates/vitepress/zh/why/js-keywords.md +132 -0
  140. package/templates/vitepress/zh/why/modern/bundlers.md +52 -0
  141. package/templates/vitepress/zh/why/modern/dts.md +93 -0
  142. package/templates/vitepress/zh/why/modern/esm-vs-cjs.md +84 -0
  143. package/templates/vitepress/zh/why/modern/index.md +55 -0
  144. package/templates/vitepress/zh/why/modern/package-entry-points.md +128 -0
  145. package/templates/vitepress/zh/why/modern/typescript.md +155 -0
  146. package/templates/vitepress/zh/why/publish-basic-npm-package.md +146 -0
  147. package/templates/vitepress/zh/why/what-is-npm-package.md +162 -0
  148. package/templates/vue-lib/package.json +12 -5
  149. package/assets/.changeset/ledger.yaml +0 -26
  150. package/templates/vitepress/en/index.md +0 -63
  151. package/templates/vitepress/en/knowledge/monorepo.md +0 -37
  152. package/templates/vitepress/en/repoctl/adopt-existing.md +0 -133
  153. package/templates/vitepress/en/repoctl/commands.md +0 -120
  154. package/templates/vitepress/en/repoctl/config.md +0 -69
  155. package/templates/vitepress/en/repoctl/getting-started.md +0 -116
  156. package/templates/vitepress/en/repoctl/index.md +0 -74
  157. package/templates/vitepress/en/repoctl/templates.md +0 -128
  158. package/templates/vitepress/en/repoctl/troubleshooting.md +0 -96
  159. package/templates/vitepress/en/repoctl/workflows.md +0 -89
package/README.md CHANGED
@@ -1,20 +1,24 @@
1
1
  # @icebreakers/monorepo-templates
2
2
 
3
- Template assets and metadata used by `create-icebreaker` and `@icebreakers/monorepo`.
3
+ English | [简体中文](README.zh-CN.md)
4
4
 
5
- This package ships:
5
+ Built-in project templates and managed workspace assets for repoctl.
6
6
 
7
- - `templates/`: app and package templates
8
- - `assets/`: root workspace config files and upgrade assets for `monorepo`
9
- - template metadata helpers such as `getTemplateChoices()`, `getTemplateChoice()`, and `getTemplateDefinition()`
7
+ This package is an implementation dependency of `repoctl` and `create-repoctl`. It publishes:
10
8
 
11
- ## Template Discovery
9
+ - app, service, library, documentation, and CLI templates;
10
+ - managed root tooling and workflow assets;
11
+ - template metadata and health-check helpers;
12
+ - workspace and individual-template scaffold APIs.
12
13
 
13
14
  ```ts
14
- import { getTemplateChoices, getTemplateDefinition } from '@icebreakers/monorepo-templates'
15
+ import {
16
+ getTemplateChoices,
17
+ getTemplateDefinition,
18
+ } from '@icebreakers/monorepo-templates'
15
19
 
16
20
  const libraries = getTemplateChoices({ category: 'library' })
17
21
  const vitepress = getTemplateDefinition('vitepress')
18
22
  ```
19
23
 
20
- The returned metadata is a cloned snapshot, so callers can safely format it for CLI help, docs, or scaffold previews without mutating the package registry.
24
+ The source workspaces under the repository's `templates/` directory are private. This package is their supported distribution boundary.
@@ -0,0 +1,16 @@
1
+ # @icebreakers/monorepo-templates
2
+
3
+ [English](README.md) | 简体中文
4
+
5
+ repoctl 的内置项目模板和受管工作区资产包。
6
+
7
+ 本包是 `repoctl` 与 `create-repoctl` 的实现依赖,发布应用、服务、库、文档站与 CLI 模板,受管根配置和工作流资产,以及模板元数据、健康检查与 scaffold API。
8
+
9
+ ```ts
10
+ import { getTemplateChoices, getTemplateDefinition } from '@icebreakers/monorepo-templates'
11
+
12
+ const libraries = getTemplateChoices({ category: 'library' })
13
+ const vitepress = getTemplateDefinition('vitepress')
14
+ ```
15
+
16
+ 仓库 `templates/` 下的源码工作区均为私有,本包是这些模板的正式分发边界。
@@ -1,7 +1,7 @@
1
1
  blank_issues_enabled: false
2
2
  contact_links:
3
3
  - name: Feature Request
4
- url: https://github.com/sonofmagic/monorepo-template/discussions
4
+ url: https://github.com/sonofmagic/repoctl/discussions
5
5
  about: Suggest new features for consideration
6
6
  # - name: Discord Chat
7
7
  # url: https://chat.vuejs.org
@@ -49,12 +49,14 @@ jobs:
49
49
  runs-on: ubuntu-latest
50
50
  steps:
51
51
  - name: Checkout Repo
52
- uses: actions/checkout@v7
52
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
53
+ with:
54
+ fetch-depth: 0
53
55
 
54
- - uses: pnpm/action-setup@v6
56
+ - uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
55
57
 
56
58
  - name: Setup Node.js environment
57
- uses: actions/setup-node@v7
59
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
58
60
  with:
59
61
  node-version: 24
60
62
  cache: pnpm
package/assets/AGENTS.md CHANGED
@@ -2,16 +2,17 @@
2
2
 
3
3
  ## Project Structure & Module Organization
4
4
 
5
- This pnpm + Turbo monorepo keeps template sources under `templates/` (`cli`, `client`, `server`, `vitepress`, `tsdown`, `vue-lib`) and reusable tooling under `packages/` (e.g., `monorepo`, `create-icebreaker`). Shared TypeScript and build settings live in root configs such as `turbo.json`, `tsconfig.json`, and `eslint.config.js`. Tests sit alongside their targets in `test/*.test.ts`, and each app owns its public assets (`public/`, `worker/`) to keep deployments self-contained.
5
+ This repository is the source workspace for repoctl, a task-first CLI for pnpm and Turborepo monorepos. Product packages live under `packages/`: `repoctl` is the recommended entrypoint, `monorepo` contains the core engine, `monorepo-templates` distributes managed assets, and the create packages provide primary and compatibility bootstrap commands. Private template source workspaces live under `templates/`; they are product assets, not independently published packages. Shared TypeScript and build settings live in root configs such as `turbo.json`, `tsconfig.json`, and `eslint.config.js`.
6
6
 
7
7
  ## Build, Test, and Development Commands
8
8
 
9
- - `pnpm install` — set up workspaces; ensure Node 20+ as defined in `package.json`.
9
+ - `pnpm install` — set up workspaces; ensure Node 22.12+ as defined in `package.json`.
10
10
  - `pnpm dev` — run `turbo run dev --parallel` for all apps that expose a `dev` script.
11
11
  - `pnpm build` — execute `turbo run build` to build every workspace with caching.
12
12
  - `pnpm test` / `pnpm test:dev` — run Vitest suites once or in watch mode across packages.
13
13
  - `pnpm lint` — invoke `turbo run lint` to apply ESLint/Stylelint policies repo-wide.
14
- - `pnpm script:sync` & `pnpm script:clean` — use the monorepo helper to align dependency versions or clear generated artifacts.
14
+ - `pnpm repo:doctor` — diagnose the source workspace with the same repoctl entrypoint delivered to users.
15
+ - `pnpm --filter @icebreakers/monorepo-templates sync:assets` — refresh the managed assets and template copies from repository sources.
15
16
 
16
17
  ## Coding Style & Naming Conventions
17
18
 
@@ -1,3 +1,28 @@
1
- # Contributing
1
+ # Contributing to repoctl
2
2
 
3
- TODO
3
+ English | [简体中文](CONTRIBUTING.zh-CN.md)
4
+
5
+ repoctl accepts bug fixes, documentation improvements, tests, and focused feature proposals.
6
+
7
+ ## Development setup
8
+
9
+ 1. Use Node.js 22.12+ and enable Corepack.
10
+ 2. Run `pnpm install`.
11
+ 3. Create a focused branch from `main`.
12
+ 4. Add or update tests with the implementation.
13
+
14
+ Before opening a pull request, run:
15
+
16
+ ```bash
17
+ pnpm build
18
+ pnpm lint
19
+ pnpm typecheck
20
+ pnpm tsd
21
+ pnpm test
22
+ ```
23
+
24
+ Changes to publishable packages require a pnpm change intent created with `pnpm change`. Commits must use Conventional Commit syntax.
25
+
26
+ When changing templates or managed root assets, update their source first and refresh packaged copies with `pnpm --filter @icebreakers/monorepo-templates sync:assets`.
27
+
28
+ Report bugs at https://github.com/sonofmagic/repoctl/issues and use discussions for design questions that do not yet have a concrete implementation.
@@ -1,21 +1,19 @@
1
1
  # Security Policy
2
2
 
3
- ## Supported Versions
3
+ English | [简体中文](SECURITY.zh-CN.md)
4
4
 
5
- Use this section to tell people about which versions of your project are
6
- currently being supported with security updates.
5
+ ## Supported versions
7
6
 
8
- | Version | Supported |
9
- | ------- | ------------------ |
10
- | 5.1.x | :white_check_mark: |
11
- | 5.0.x | :x: |
12
- | 4.0.x | :white_check_mark: |
13
- | < 4.0 | :x: |
7
+ Security fixes are provided for the latest stable major release of `repoctl` and its fixed-version core package. Upgrade to the latest release before reporting a problem that may already be resolved.
14
8
 
15
- ## Reporting a Vulnerability
9
+ ## Reporting a vulnerability
16
10
 
17
- Use this section to tell people how to report a vulnerability.
11
+ Do not open a public issue for a suspected vulnerability. Use GitHub's private vulnerability reporting for `sonofmagic/repoctl`:
18
12
 
19
- Tell them where to go, how often they can expect to get an update on a
20
- reported vulnerability, what to expect if the vulnerability is accepted or
21
- declined, etc.
13
+ https://github.com/sonofmagic/repoctl/security/advisories/new
14
+
15
+ Include the affected version, environment, impact, reproduction steps, and any suggested mitigation. Maintainers will acknowledge a complete report as soon as practical and coordinate validation, remediation, and disclosure with the reporter.
16
+
17
+ ## Scope
18
+
19
+ Reports involving repoctl command execution, generated workflow security, release credentials, dependency handling, path traversal, or unsafe template extraction are in scope. Vulnerabilities in third-party tools should also be reported upstream when appropriate.
@@ -1,17 +1,26 @@
1
1
  {
2
- "name": "monorepo-template",
2
+ "name": "repoctl-workspace",
3
3
  "type": "module",
4
4
  "version": "0.0.0",
5
5
  "private": true,
6
- "packageManager": "pnpm@11.21.0",
6
+ "packageManager": "pnpm@11.22.0",
7
+ "description": "Source workspace for repoctl, a task-first CLI for pnpm and Turborepo monorepos",
7
8
  "author": "ice breaker <hi@sonofmagic.top>",
9
+ "homepage": "https://repo.icebreaker.top",
8
10
  "repository": {
9
11
  "type": "git",
10
- "url": "git+https://github.com/sonofmagic/monorepo-template.git"
12
+ "url": "git+https://github.com/sonofmagic/repoctl.git"
11
13
  },
12
14
  "bugs": {
13
- "url": "https://github.com/sonofmagic/monorepo-template/issues"
15
+ "url": "https://github.com/sonofmagic/repoctl/issues"
14
16
  },
17
+ "keywords": [
18
+ "repoctl",
19
+ "monorepo",
20
+ "pnpm",
21
+ "turborepo",
22
+ "typescript"
23
+ ],
15
24
  "engines": {
16
25
  "node": ">=22.12.0"
17
26
  },
@@ -2,20 +2,13 @@ packages:
2
2
  - apps/*
3
3
  - packages/*
4
4
  - templates/*
5
- - '!**/test/**'
6
-
5
+ - "!**/test/**"
7
6
  minimumReleaseAge: 0
8
-
9
7
  versioning:
10
- fixed:
11
- - ['@icebreakers/monorepo', repoctl]
12
- ignore:
13
- - '@icebreakers/client'
14
8
  changelog:
15
9
  storage: repository
16
-
17
10
  allowBuilds:
18
- '@tailwindcss/oxide': true
11
+ "@tailwindcss/oxide": true
19
12
  esbuild: true
20
13
  msgpackr-extract: true
21
14
  sharp: true
package/dist/cli.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as prepareAssets } from "./prepare-CNCmvco-.mjs";
1
+ import { t as prepareAssets } from "./prepare--cxFop8c.mjs";
2
2
  import process from "node:process";
3
3
  //#region src/cli.ts
4
4
  async function main() {
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { a as toPublishGitignorePath, c as assetsDir, d as templatesDir, f as assetTargets$1, i as isGitignoreFile, l as packageDir, n as createTemplateCopyFilter, o as toWorkspaceGitignorePath, p as getAssetTargets$1, r as shouldSkipTemplatePath, s as templateChoices$1, t as prepareAssets, u as skeletonDir } from "./prepare-CNCmvco-.mjs";
1
+ import { a as toPublishGitignorePath, c as assetsDir, d as templatesDir, f as assetTargets$1, i as isGitignoreFile, l as packageDir, n as createTemplateCopyFilter, o as toWorkspaceGitignorePath, p as getAssetTargets$1, r as shouldSkipTemplatePath, s as templateChoices$1, t as prepareAssets, u as skeletonDir } from "./prepare--cxFop8c.mjs";
2
2
  import path from "node:path";
3
3
  import fs, { access, open, rm } from "node:fs/promises";
4
4
  import exec from "nanoexec";
@@ -2,6 +2,7 @@ import * as path$1 from "node:path";
2
2
  import path from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import fs from "node:fs/promises";
5
+ import YAML from "yaml";
5
6
  //#region assets-data.mjs
6
7
  const coreAssetTargets = [
7
8
  ".changeset",
@@ -201,6 +202,14 @@ const sourceRepoReleaseToolingBuildStepPattern = /\r?\n\s+- name: Build Release
201
202
  function removeSourceRepoReleaseToolingBuildStepContent(content) {
202
203
  return content.replaceAll(sourceRepoReleaseToolingBuildStepPattern, "\n");
203
204
  }
205
+ function sanitizePublishedWorkspaceContent(content) {
206
+ const workspace = YAML.parse(content);
207
+ if (!workspace?.versioning || typeof workspace.versioning !== "object") return content;
208
+ delete workspace.versioning["fixed"];
209
+ delete workspace.versioning["ignore"];
210
+ delete workspace.versioning["lanes"];
211
+ return YAML.stringify(workspace);
212
+ }
204
213
  async function pathExists(targetPath) {
205
214
  try {
206
215
  await fs.access(targetPath);
@@ -286,6 +295,15 @@ async function writePublishedToolingConfigs() {
286
295
  if (await pathExists(targetPath)) await fs.writeFile(targetPath, content);
287
296
  }));
288
297
  }
298
+ async function sanitizePublishedWorkspace() {
299
+ const workspacePath = path$1.join(assetsDir, "pnpm-workspace.yaml");
300
+ if (!await pathExists(workspacePath)) return;
301
+ const content = await fs.readFile(workspacePath, "utf8");
302
+ await fs.writeFile(workspacePath, sanitizePublishedWorkspaceContent(content), "utf8");
303
+ }
304
+ async function removePublishedReleaseState() {
305
+ await fs.rm(path$1.join(assetsDir, ".changeset", "ledger.yaml"), { force: true });
306
+ }
289
307
  async function removeSourceRepoReleaseToolingBuildStep() {
290
308
  const releaseWorkflowPath = path$1.join(assetsDir, ".github/workflows/release.yml");
291
309
  if (!await pathExists(releaseWorkflowPath)) return;
@@ -310,6 +328,8 @@ async function prepareAssets(options = {}) {
310
328
  await resetDir(assetsDir, overwriteExisting);
311
329
  await resetDir(templatesDir, overwriteExisting);
312
330
  await copyAssets(repoRoot, overwriteExisting);
331
+ await sanitizePublishedWorkspace();
332
+ await removePublishedReleaseState();
313
333
  await writePublishedToolingConfigs();
314
334
  await removeSourceRepoReleaseToolingBuildStep();
315
335
  await copyTemplates(repoRoot, overwriteExisting);
package/package.json CHANGED
@@ -1,19 +1,21 @@
1
1
  {
2
2
  "name": "@icebreakers/monorepo-templates",
3
3
  "type": "module",
4
- "version": "1.1.0",
5
- "description": "Template assets for icebreaker monorepo scaffolding",
4
+ "version": "1.2.1",
5
+ "description": "Built-in project templates and managed workspace assets for repoctl",
6
6
  "author": "ice breaker <hi@sonofmagic.top>",
7
7
  "license": "MIT",
8
+ "homepage": "https://repo.icebreaker.top",
8
9
  "repository": {
9
10
  "type": "git",
10
- "url": "git+https://github.com/sonofmagic/monorepo-template.git",
11
+ "url": "git+https://github.com/sonofmagic/repoctl.git",
11
12
  "directory": "packages/monorepo-templates"
12
13
  },
13
14
  "bugs": {
14
- "url": "https://github.com/sonofmagic/monorepo-template/issues"
15
+ "url": "https://github.com/sonofmagic/repoctl/issues"
15
16
  },
16
17
  "keywords": [
18
+ "repoctl",
17
19
  "monorepo",
18
20
  "template",
19
21
  "scaffold"
@@ -47,7 +49,8 @@
47
49
  "@inquirer/input": "^5.1.2",
48
50
  "@inquirer/select": "^5.2.1",
49
51
  "commander": "^15.0.0",
50
- "nanoexec": "^1.1.0"
52
+ "nanoexec": "^1.1.0",
53
+ "yaml": "^2.9.0"
51
54
  },
52
55
  "publishConfig": {
53
56
  "access": "public"
@@ -55,6 +58,7 @@
55
58
  "scripts": {
56
59
  "dev": "tsdown --watch --sourcemap",
57
60
  "build": "tsdown",
61
+ "test": "vitest run",
58
62
  "typecheck": "node ../../node_modules/typescript/bin/tsc -p tsconfig.json",
59
63
  "tsd": "pnpm build && tsd --files test-d/**/*.test-d.ts",
60
64
  "sync:assets": "pnpm run build && node dist/cli.mjs",
@@ -2,18 +2,25 @@
2
2
  "name": "@icebreakers/cli",
3
3
  "type": "module",
4
4
  "version": "0.0.0",
5
- "description": "icebreaker's cli template",
5
+ "private": true,
6
+ "description": "Internal CLI template shipped with repoctl",
6
7
  "author": "ice breaker <hi@sonofmagic.top>",
7
8
  "license": "MIT",
9
+ "homepage": "https://repo.icebreaker.top",
8
10
  "repository": {
9
11
  "type": "git",
10
- "url": "git+https://github.com/sonofmagic/monorepo-template.git",
12
+ "url": "git+https://github.com/sonofmagic/repoctl.git",
11
13
  "directory": "templates/cli"
12
14
  },
13
15
  "bugs": {
14
- "url": "https://github.com/sonofmagic/monorepo-template/issues"
16
+ "url": "https://github.com/sonofmagic/repoctl/issues"
15
17
  },
16
- "keywords": [],
18
+ "keywords": [
19
+ "repoctl",
20
+ "cli",
21
+ "template",
22
+ "typescript"
23
+ ],
17
24
  "bin": {
18
25
  "ice": "./dev/index.ts"
19
26
  },
@@ -3,6 +3,22 @@
3
3
  "type": "module",
4
4
  "version": "0.0.1",
5
5
  "private": true,
6
+ "description": "Internal Vue and Cloudflare application template shipped with repoctl",
7
+ "homepage": "https://repo.icebreaker.top",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/sonofmagic/repoctl.git",
11
+ "directory": "templates/client"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/sonofmagic/repoctl/issues"
15
+ },
16
+ "keywords": [
17
+ "repoctl",
18
+ "vue",
19
+ "cloudflare",
20
+ "template"
21
+ ],
6
22
  "scripts": {
7
23
  "dev": "vite --host",
8
24
  "build": "vue-tsc -b && vite build",
@@ -45,7 +61,7 @@
45
61
  "vite": "^8.2.1",
46
62
  "vite-plugin-vue-devtools": "^8.2.1",
47
63
  "vite-tsconfig-paths": "^6.1.1",
48
- "vue-tsc": "3.3.9",
64
+ "vue-tsc": "3.3.10",
49
65
  "wrangler": "^4.123.0",
50
66
  "zod": "^4.4.3"
51
67
  }
@@ -2,18 +2,25 @@
2
2
  "name": "@icebreakers/server",
3
3
  "type": "module",
4
4
  "version": "0.0.1",
5
- "description": "tsdown build package template",
5
+ "private": true,
6
+ "description": "Internal server package template shipped with repoctl",
6
7
  "author": "ice breaker <hi@sonofmagic.top>",
7
8
  "license": "MIT",
9
+ "homepage": "https://repo.icebreaker.top",
8
10
  "repository": {
9
11
  "type": "git",
10
- "url": "git+https://github.com/sonofmagic/monorepo-template.git",
12
+ "url": "git+https://github.com/sonofmagic/repoctl.git",
11
13
  "directory": "templates/server"
12
14
  },
13
15
  "bugs": {
14
- "url": "https://github.com/sonofmagic/monorepo-template/issues"
16
+ "url": "https://github.com/sonofmagic/repoctl/issues"
15
17
  },
16
- "keywords": [],
18
+ "keywords": [
19
+ "repoctl",
20
+ "server",
21
+ "hono",
22
+ "template"
23
+ ],
17
24
  "sideEffects": false,
18
25
  "exports": {
19
26
  ".": "./src/index.ts",
@@ -2,18 +2,25 @@
2
2
  "name": "@icebreakers/tsdown-template",
3
3
  "type": "module",
4
4
  "version": "0.0.0",
5
- "description": "tsdown bundler template",
5
+ "private": true,
6
+ "description": "Internal TypeScript library template shipped with repoctl",
6
7
  "author": "ice breaker <hi@sonofmagic.top>",
7
8
  "license": "MIT",
9
+ "homepage": "https://repo.icebreaker.top",
8
10
  "repository": {
9
11
  "type": "git",
10
- "url": "git+https://github.com/sonofmagic/monorepo-template.git",
12
+ "url": "git+https://github.com/sonofmagic/repoctl.git",
11
13
  "directory": "templates/tsdown"
12
14
  },
13
15
  "bugs": {
14
- "url": "https://github.com/sonofmagic/monorepo-template/issues"
16
+ "url": "https://github.com/sonofmagic/repoctl/issues"
15
17
  },
16
- "keywords": [],
18
+ "keywords": [
19
+ "repoctl",
20
+ "typescript",
21
+ "library",
22
+ "template"
23
+ ],
17
24
  "sideEffects": false,
18
25
  "exports": {
19
26
  ".": {