@deltabox/toolchain 1.6.1 → 1.7.8

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/CHANGELOG.md CHANGED
@@ -1,122 +1,189 @@
1
1
  # Changelog
2
2
 
3
- ## 1.6.1 (October 2026)
3
+ ## 1.7.8 (October 2026)
4
4
 
5
5
  <!-- release:start -->
6
6
 
7
- ### Documentation
8
- #### Config
9
- - Inline nested sub-schemas in the generated reference ([#5a9a9e3](https://github.com/deltabox-studio/toolchain/commit/5a9a9e3) by [T0chi](https://github.com/T0chi))
10
- - \
7
+ ### Bug fixes
8
+ #### Vscode
9
+ - Reverted VS Code extension package name to `toolchain-vscode` due to `toolchain` ([#5d0d38b](https://github.com/deltabox-studio/toolchain/commit/5d0d38b) by [T0chi](https://github.com/T0chi))
11
10
 
12
11
  <!-- release:end -->
13
12
 
14
13
 
14
+ ## 1.7.7 (October 2026)
15
+
16
+ ### CI
17
+ #### Vscode
18
+ - Upload `release-vscode.yml` pipeline ([#3080357](https://github.com/deltabox-studio/toolchain/issues/3080357) by [T0chi](https://github.com/T0chi))
19
+
20
+ ## 1.7.6 (October 2026)
21
+
22
+ ### CI
23
+ #### Vscode
24
+ - Fixed failed build in `release-vscode.yml` for Azure Pipelines ([#f6f4b14](https://github.com/deltabox-studio/toolchain/commit/f6f4b14) by [T0chi](https://github.com/T0chi))
25
+ - The build failed due to missing workspace builds, specifically from `@deltabox/toolchain-tsdown`
26
+
27
+ ## 1.7.5 (October 2026)
28
+
29
+ ### Chores
30
+ - Revert `extend` value to `tsconfig.base.json` for vscode workspace's `tsconfig.default.json` ([#96e021e](https://github.com/deltabox-studio/toolchain/commit/96e021e) by [T0chi](https://github.com/T0chi))
31
+
32
+ ## 1.7.4 (October 2026)
33
+
34
+ ### Bug fixes
35
+ #### Vscode
36
+ - Extending root `tsconfig.json` instead of root `tsconfig.base.json` ([#9aa9669](https://github.com/deltabox-studio/toolchain/commit/9aa9669) by [T0chi](https://github.com/T0chi))
37
+
38
+ ## 1.7.3 (October 2026)
39
+
40
+ ### CI
41
+ #### Vscode
42
+ - Set up CI with `Azure Pipelines` ([#2ec1863](https://github.com/deltabox-studio/toolchain/commit/2ec1863) by [T0chi](https://github.com/T0chi))
43
+ - [skip ci]
44
+ ### Chores
45
+ #### Ci
46
+ - Remove `azure-pipelines-setup.yml` ([#03a4196](https://github.com/deltabox-studio/toolchain/commit/03a4196) by [T0chi](https://github.com/T0chi))
47
+
48
+ ## 1.7.2 (October 2026)
49
+
50
+ ### CI
51
+ #### Vscode
52
+ - Set up ci with `Azure Pipelines` ([#5bc736f](https://github.com/deltabox-studio/toolchain/commit/5bc736f) by [T0chi](https://github.com/T0chi))
53
+ - [skip ci]
54
+ ### Chores
55
+ - Remove `azure-pipelines.yml` ([#7965965](https://github.com/deltabox-studio/toolchain/issues/7965965) by [T0chi](https://github.com/T0chi))
56
+
57
+ ## 1.7.1 (October 2026)
58
+
59
+ ### Chores
60
+ #### Vscode
61
+ - Uploaded the vscode extension to the Marketplace ([#993aadf](https://github.com/deltabox-studio/toolchain/commit/993aadf) by [T0chi](https://github.com/T0chi))
62
+
63
+ ## 1.7.0 (October 2026)
64
+
65
+ ### New features
66
+ #### Vscode
67
+ - Let users choose the project or bundled dbx ([#6cdd686](https://github.com/deltabox-studio/toolchain/commit/6cdd686) by [T0chi](https://github.com/T0chi))
68
+ - The extension had no awareness of a workspace's own @deltabox/toolchain, so its auto-sync ran the bundled (possibly older) dbx. On activation it now detects the workspace dbx, shows a notification with action buttons (project vs bundled), remembers the choice per workspace (workspaceState) and falls back to the bundled CLI. Adds the deltabox.toolchain.chooseDbxSource command + a getDbxSource/setDbxSource API.
69
+ #### Shared
70
+ - Sanitize shell-escape artifacts in generated markdown ([#fcac95e](https://github.com/deltabox-studio/toolchain/commit/fcac95e) by [T0chi](https://github.com/T0chi))
71
+ - Add stripControlChars/stripEscapeArtifacts/sanitizeText to the shared string utils: they strip the predictable shell-escape artifacts (a backslash before a control character) and any remaining bare control characters, while leaving ordinary backslashes and normal whitespace alone. Apply them to the config markdown generator's descriptions and the changelog commit reader/formatter, and cap generated headings at h6 (VitePress dropped the literal #######).
72
+ ### Chores
73
+ #### Changelog
74
+ - Repair escaped commit text and label code refs ([#1425419](https://github.com/deltabox-studio/toolchain/issues/1425419) by [T0chi](https://github.com/T0chi))
75
+ - PowerShell interpreted the escaped backticks in the commit bodies as control-character escapes, so the changelog carried backslash+control artifacts (TAB/CR/LF/BS/FF/VT) and mojibake. Repair the affected 1.4.1-1.6.1 entries and add backticks around commands, paths, flags, types and identifiers throughout the file.
76
+
77
+ ## 1.6.1 (October 2026)
78
+
79
+ ### Documentation
80
+ #### Config
81
+ - Inline nested sub-schemas in the generated reference ([#5a9a9e3](https://github.com/deltabox-studio/toolchain/commit/5a9a9e3) by [T0chi](https://github.com/T0chi))
82
+ - `renderConfigFileMarkdown` only recursed into inline objects, so named sub-schemas (`changelog.workflows`, `changelog.versioning.target/workspaces`, `templates.sources[]`, `project.type`) rendered as a bare type name. It now resolves the JSON Schema `$defs` and expands objects, object unions and array items inline (each named type once per section), so the reference documents every option with types, required markers, defaults and descriptions.
83
+
15
84
  ## 1.6.0 (October 2026)
16
85
 
17
86
  ### New features
18
87
  #### Changelog
19
88
  - Add a configurable versioning option ([#e5cbefc](https://github.com/deltabox-studio/toolchain/commit/e5cbefc) by [T0chi](https://github.com/T0chi))
20
- - Add \ oolchain.changelog.versioning\ (boolean | { target, workspaces }) to the shared Zod model, defaulting to true/uniform. \ arget\ selects uniform (root + all workspaces), root-only, or individual (each changed workspace bumps on its own); \workspaces\ globs select which workspaces to version (defaulting to the root workspaces field, else the root package.json alone). The CLI now threads the changelog config into the generator and writeChangelogs takes per-workspace versions. Documented in the new 'Changelog & versioning' guide.
89
+ - Add `toolchain.changelog.versioning` (boolean | { target, workspaces }) to the shared Zod model, defaulting to `true`/uniform. `target` selects `uniform` (root + all workspaces), `root-only`, or `individual` (each changed workspace bumps on its own); `workspaces` globs select which workspaces to version (defaulting to the root `workspaces` field, else the root `package.json` alone). The CLI now threads the changelog config into the generator and `writeChangelogs` takes per-workspace versions. Documented in the new 'Changelog & versioning' guide.
21
90
  ### Bug fixes
22
91
  #### Shared
23
92
  - Add spawn timeouts so a stalled child can't hang the tool ([#e7fdf96](https://github.com/deltabox-studio/toolchain/commit/e7fdf96) by [T0chi](https://github.com/T0chi))
24
- - spawnCross/run gain \ imeoutMs\ (kills the child's whole tree — \ askkill /t\ on Windows — with a warning); runVp forwards it; the plugin's one-shot \
93
+ - `spawnCross`/`run` gain `timeoutMs` (kills the child's whole tree — `taskkill /t` on Windows — with a warning); `runVp` forwards it; the plugin's one-shot `runDbx` sync/check defaults to 5 min; the VS Code extension's captured `dbx` commands default to 5 min. Dev servers/watchers stay unbounded. Adds `killProcessTree()` + a timeout test.
25
94
  #### Vite
26
- - Build DBX_TASKS from a resolved binary and warn on fallbacks ([#c1a29db](https://github.com/deltabox-studio/toolchain/commit/c1a29db) by [T0chi](https://github.com/T0chi))
27
- - Vite Task runs a task's command through a shell, so a bare \dbx sync\ depended on PATH/environment and could miss or pick a stale binary. DBX_TASKS now bakes in the \
28
- - Warn and fall back on missing DBX_BIN/PATH/ComSpec ([#f91ad12](https://github.com/deltabox-studio/toolchain/commit/f91ad12) by [T0chi](https://github.com/T0chi))
29
- - resolveDbx now ignores a DBX_BIN that points at a missing file (warn + fall through) instead of wedging every dbx call; \which\ warns once when PATH is empty; the Windows spawner warns once when ComSpec is unset before falling back to cmd.exe.
30
- - Never run a stale global dbx from a pinned project ([#d441427](https://github.com/deltabox-studio/toolchain/commit/d441427) by [T0chi](https://github.com/T0chi))
31
- - resolveDbx fell back to a global \dbx\ on PATH whenever the project's own binary wasn't resolvable — which happens in the toolchain repo itself (Yarn doesn't link the root's own bin, and findOwnCliEntry needs a built dist). A stale global dbx would then run \dbx sync\ and rewrite generated files in an older format. Now a project that pins @deltabox/toolchain (node_modules or the repo itself) never uses a global dbx: it warns and uses \
32
- px @deltabox/toolchain@<pinned>\; the global is only used when the project pins nothing. Adds localToolchainVersion() + tests, and documents the resolution.
95
+ - Build `DBX_TASKS` from a resolved binary and warn on fallbacks ([#c1a29db](https://github.com/deltabox-studio/toolchain/commit/c1a29db) by [T0chi](https://github.com/T0chi))
96
+ - Vite Task runs a task's command through a shell, so a bare `dbx sync` depended on `PATH`/environment and could miss or pick a stale binary. `DBX_TASKS` now bakes in the `resolveDbx` result (project's own, or pinned `npx`) at config load; `dbxTaskCommand(sub)` builds one for any subcommand. `resolveDbx` also warns (once) when it ignores an invalid `DBX_BIN`, skips a global for a pinned project, or falls back to `npx`.
97
+ - Warn and fall back on missing `DBX_BIN`/`PATH`/`ComSpec` ([#f91ad12](https://github.com/deltabox-studio/toolchain/commit/f91ad12) by [T0chi](https://github.com/T0chi))
98
+ - `resolveDbx` now ignores a `DBX_BIN` that points at a missing file (warn + fall through) instead of wedging every `dbx` call; `which` warns once when `PATH` is empty; the Windows spawner warns once when `ComSpec` is unset before falling back to `cmd.exe`.
99
+ - Never run a stale global `dbx` from a pinned project ([#d441427](https://github.com/deltabox-studio/toolchain/commit/d441427) by [T0chi](https://github.com/T0chi))
100
+ - `resolveDbx` fell back to a global `dbx` on `PATH` whenever the project's own binary wasn't resolvable — which happens in the toolchain repo itself (Yarn doesn't link the root's own bin, and `findOwnCliEntry` needs a built `dist`). A stale global `dbx` would then run `dbx sync` and rewrite generated files in an older format. Now a project that pins `@deltabox/toolchain` (`node_modules` or the repo itself) never uses a global `dbx`: it warns and uses `npx @deltabox/toolchain@<pinned>`; the global is only used when the project pins nothing. Adds `localToolchainVersion()` + tests, and documents the resolution.
33
101
  #### Vscode
34
- - Pin the npx fallback to the extension's version ([#57d27fa](https://github.com/deltabox-studio/toolchain/commit/57d27fa) by [T0chi](https://github.com/T0chi))
35
- - The extension's last-resort \
36
- px --yes @deltabox/toolchain\ resolved \@latest\, which could drift from the workspace's generated files. It now pins its own version (\@deltabox/toolchain@<extension version>\), since the extension is versioned in lockstep with the toolchain.
102
+ - Pin the `npx` fallback to the extension's version ([#57d27fa](https://github.com/deltabox-studio/toolchain/commit/57d27fa) by [T0chi](https://github.com/T0chi))
103
+ - The extension's last-resort `npx --yes @deltabox/toolchain` resolved `@latest`, which could drift from the workspace's generated files. It now pins its own version (`@deltabox/toolchain@<extension version>`), since the extension is versioned in lockstep with the toolchain.
37
104
  #### Tsdown
38
- - Let Yarn own the single-entry bin field ([#d6198b5](https://github.com/deltabox-studio/toolchain/commit/d6198b5) by [T0chi](https://github.com/T0chi))
39
- - Reproduced (and minimised) the 'unexplained' bin revert: Yarn 4 normalises a single-entry \in\ object to a plain string on every \yarn install\, so an explicit tsdown \in\ object could never persist — install and build fought over package.json. Set tsdown's \exports.bin\ to \ alse\ so tsdown leaves the field alone, and commit the string form Yarn writes. install + build are now idempotent.
105
+ - Let Yarn own the single-entry `bin` field ([#d6198b5](https://github.com/deltabox-studio/toolchain/commit/d6198b5) by [T0chi](https://github.com/T0chi))
106
+ - Reproduced (and minimised) the 'unexplained' `bin` revert: Yarn 4 normalises a single-entry `bin` object to a plain string on every `yarn install`, so an explicit tsdown `bin` object could never persist — install and build fought over `package.json`. Set tsdown's `exports.bin` to `false` so tsdown leaves the field alone, and commit the string form Yarn writes. install + build are now idempotent.
40
107
  - Re-apply the explicit changelog and tsconfig bins ([#192a2d3](https://github.com/deltabox-studio/toolchain/commit/192a2d3) by [T0chi](https://github.com/T0chi))
41
- - The generated version bump commit dropped the explicit \in\ mapping (object form) from both package.jsons; regenerate it from the pinned tsdown \exports.bin\ so \yarn build\ stays idempotent.
108
+ - The generated version bump commit dropped the explicit `bin` mapping (object form) from both `package.json`s; regenerate it from the pinned tsdown `exports.bin` so `yarn build` stays idempotent.
42
109
 
43
110
  ## 1.5.0 (October 2026)
44
111
 
45
112
  ### New features
46
113
  #### Changelog
47
- - Emit the husky commit-msg hook for consumers ([#6898386](https://github.com/deltabox-studio/toolchain/issues/6898386) by [T0chi](https://github.com/T0chi))
48
- - \dbx sync\ now writes .husky/commit-msg (running commitlint) alongside the workflows and commitlint.config.mjs, so consumers using the Conventional-Commits CI lint commits locally too. The docs recommend \postinstall: husky\ (Yarn Berry never runs \prepare\) and \.husky/* text eol=lf\ (a trailing CR breaks the hook).
114
+ - Emit the husky `commit-msg` hook for consumers ([#6898386](https://github.com/deltabox-studio/toolchain/issues/6898386) by [T0chi](https://github.com/T0chi))
115
+ - `dbx sync` now writes `.husky/commit-msg` (running `commitlint`) alongside the workflows and `commitlint.config.mjs`, so consumers using the Conventional-Commits CI lint commits locally too. The docs recommend `postinstall: husky` (Yarn Berry never runs `prepare`) and `.husky/* text eol=lf` (a trailing CR breaks the hook).
49
116
 
50
117
  ## 1.4.1 (October 2026)
51
118
 
52
119
  ### Bug fixes
53
120
  #### Tsdown
54
121
  - Pin the changelog and tsconfig bins explicitly ([#f616626](https://github.com/deltabox-studio/toolchain/commit/f616626) by [T0chi](https://github.com/T0chi))
55
- - With \exports: true\ and no \in\, tsdown soft auto-detects the shebang entry and derives the command name from the package name, rewriting the committed \in\ on every build. Map the command names explicitly so the field is stable and the build is idempotent.
122
+ - With `exports: true` and no `bin`, tsdown soft auto-detects the shebang entry and derives the command name from the package name, rewriting the committed `bin` on every build. Map the command names explicitly so the field is stable and the build is idempotent.
56
123
  #### Ci
57
- - Bootstrap the dist the vite shim needs before build ([#b96b89a](https://github.com/deltabox-studio/toolchain/commit/b96b89a) by [T0chi](https://github.com/T0chi))
58
- - \prepare\ never runs on \yarn install\ under Yarn Berry, so scripts/bootstrap.mjs never built dist/vite.js and \yarn build\ failed to load the generated vite.config.ts shim on a fresh CI checkout. Run the bootstrap from a root \postinstall\ and at the start of build/typecheck/test (all begin with \ p run\, which loads the shim); it is a no-op once dist/vite.js exists.
124
+ - Bootstrap the `dist` the vite shim needs before build ([#b96b89a](https://github.com/deltabox-studio/toolchain/commit/b96b89a) by [T0chi](https://github.com/T0chi))
125
+ - `prepare` never runs on `yarn install` under Yarn Berry, so `scripts/bootstrap.mjs` never built `dist/vite.js` and `yarn build` failed to load the generated `vite.config.ts` shim on a fresh CI checkout. Run the bootstrap from a root `postinstall` and at the start of `build`/`typecheck`/`test` (all begin with `vp run`, which loads the shim); it is a no-op once `dist/vite.js` exists.
59
126
 
60
127
  ## 1.4.0 (October 2026)
61
128
 
62
129
  ### New features
63
- - Render the dbx CLI with clack, author the Vite+ config in dbx.config ([#fb8b9ef](https://github.com/deltabox-studio/toolchain/commit/fb8b9ef) by [T0chi](https://github.com/T0chi))
64
- - vite.config.ts in and adds the fmt ignore; dbx resolves its own binary first
65
- and colour Commander's help
130
+ - Render the `dbx` CLI with `clack`, author the Vite+ config in `dbx.config` ([#fb8b9ef](https://github.com/deltabox-studio/toolchain/commit/fb8b9ef) by [T0chi](https://github.com/T0chi))
131
+ - `vite.config.ts` in and adds the `fmt` ignore; `dbx` resolves its own binary first
132
+ and colour `Commander`'s help
66
133
  #### Vscode
67
134
  - Add Providers and Templates views ([#9aa6d12](https://github.com/deltabox-studio/toolchain/commit/9aa6d12) by [T0chi](https://github.com/T0chi))
68
- - add/remove/run-command/open-homepage/copy-id actions
69
- toolchainProviders(), so a registered provider's commands become dbx commands
135
+ - `add`/`remove`/`run-command`/`open-homepage`/`copy-id` actions
136
+ `toolchainProviders()`, so a registered provider's commands become `dbx` commands
70
137
  Templates -> Managed Files
71
138
  #### Vite
72
- - Drive dbx from the dbx plugin, drop defineDbxConfig ([#8d11557](https://github.com/deltabox-studio/toolchain/commit/8d11557) by [T0chi](https://github.com/T0chi))
73
- - The Vite/Vite+ integration is now the dbx() plugin plus spreading DBX_TASKS into
74
- run.tasks, so the consumer's own vite config stays the config:
75
- - export default defineConfig({
76
- plugins: [dbx()],
77
- run: { tasks: { ...DBX_TASKS } },
78
- });
79
- - Remove the defineDbxConfig wrapper (and DbxViteConfig) and update the README, the
139
+ - Drive `dbx` from the `dbx()` plugin, drop `defineDbxConfig` ([#8d11557](https://github.com/deltabox-studio/toolchain/commit/8d11557) by [T0chi](https://github.com/T0chi))
140
+ - The Vite/Vite+ integration is now the `dbx()` plugin plus spreading `DBX_TASKS` into
141
+ `run.tasks`, so the consumer's own `vite` config stays the config:
142
+ - `export default defineConfig({`
143
+ `plugins: [dbx()],`
144
+ `run: { tasks: { ...DBX_TASKS } },`
145
+ `});`
146
+ - Remove the `defineDbxConfig` wrapper (and `DbxViteConfig`) and update the README, the
80
147
  Providers guide and the API reference.
81
- - Author the Vite+ config in dbx.config, generate vite.config.ts ([#9885225](https://github.com/deltabox-studio/toolchain/issues/9885225) by [T0chi](https://github.com/T0chi))
82
- - toolchain.vite now holds the whole Vite+ config (a loose object) with a
83
- config: false opt-out, and dbx sync generates the managed root
84
- vite.config.ts from it, so dbx.config.* is the only hand-authored root config.
85
- - Add dbx migrate --from vite (auto-detected): it extracts the object passed to
86
- defineConfig in an existing root vite.config.ts and folds it into dbx.config.*'s
87
- toolchain.vite, refusing configs it cannot migrate faithfully.
88
- - The config-types generator now honors .catchall, emitting an index signature.
148
+ - Author the Vite+ config in `dbx.config`, generate `vite.config.ts` ([#9885225](https://github.com/deltabox-studio/toolchain/issues/9885225) by [T0chi](https://github.com/T0chi))
149
+ - `toolchain.vite` now holds the whole Vite+ config (a loose object) with a
150
+ `config: false` opt-out, and `dbx sync` generates the managed root
151
+ `vite.config.ts` from it, so `dbx.config.*` is the only hand-authored root config.
152
+ - Add `dbx migrate --from vite` (auto-detected): it extracts the object passed to
153
+ `defineConfig` in an existing root `vite.config.ts` and folds it into `dbx.config.*`'s
154
+ `toolchain.vite`, refusing configs it cannot migrate faithfully.
155
+ - The config-types generator now honors `.catchall`, emitting an index signature.
89
156
  #### Config
90
- - Expose the Vite+ config type, rename Tooling* to Toolchain* ([#088de56](https://github.com/deltabox-studio/toolchain/commit/088de56) by [T0chi](https://github.com/T0chi))
91
- - ToolchainViteConfig is now Vite+ ViteUserConfig intersected with the managed
92
- config?: boolean opt-out, instead of a generated loose object. The config-types
157
+ - Expose the Vite+ config type, rename `Tooling*` to `Toolchain*` ([#088de56](https://github.com/deltabox-studio/toolchain/commit/088de56) by [T0chi](https://github.com/T0chi))
158
+ - `ToolchainViteConfig` is now Vite+ `ViteUserConfig` intersected with the managed
159
+ `config?: boolean` opt-out, instead of a generated loose object. The config-types
93
160
  generator gains a hand-written type override plus an imports block, used for the
94
- vite type, and vite-plus becomes an optional peer dependency.
95
- - Rename every Tooling* type, schema id and identifier to Toolchain*. That covers
96
- the config schema ids, CONFIG_TYPE_SCHEMAS keys, the provider/migration models
97
- and the CLI helpers (toolchainConfigSchema, loadToolchainConfig,
98
- toolchainProviders, registerToolchainCommands). Regenerated types/schema/docs.
161
+ vite type, and `vite-plus` becomes an optional peer dependency.
162
+ - Rename every `Tooling*` type, schema id and identifier to `Toolchain*`. That covers
163
+ the config schema ids, `CONFIG_TYPE_SCHEMAS` keys, the provider/migration models
164
+ and the CLI helpers (`toolchainConfigSchema`, `loadToolchainConfig`,
165
+ `toolchainProviders`, `registerToolchainCommands`). Regenerated types/schema/docs.
99
166
  ### Bug fixes
100
167
  #### Deps
101
- - Sync the lockfile for @clack/prompts ([#568a7c6](https://github.com/deltabox-studio/toolchain/commit/568a7c6) by [T0chi](https://github.com/T0chi))
102
- - The lockfile was missing the @clack/prompts entry for packages/shared and
103
- packages/template, so 'yarn install --immutable' failed in CI (YN0028).
168
+ - Sync the lockfile for `@clack/prompts` ([#568a7c6](https://github.com/deltabox-studio/toolchain/commit/568a7c6) by [T0chi](https://github.com/T0chi))
169
+ - The lockfile was missing the `@clack/prompts` entry for `packages/shared` and
170
+ `packages/template`, so `yarn install --immutable` failed in CI (YN0028).
104
171
  ### Refactors
105
172
  - Rename Ox to Oxc across the project ([#39b37d3](https://github.com/deltabox-studio/toolchain/commit/39b37d3) by [T0chi](https://github.com/T0chi))
106
- - (Oxfmt/Oxlint and .oxlintrc/.oxfmtrc are unchanged)
173
+ - (`Oxfmt`/`Oxlint` and `.oxlintrc`/`.oxfmtrc` are unchanged)
107
174
  ### Documentation
108
- - Cover the clack CLI output, prompts and dbx binary resolution ([#f45ed3f](https://github.com/deltabox-studio/toolchain/commit/f45ed3f) by [T0chi](https://github.com/T0chi))
109
- - Document the Vite+ config type and the Toolchain* names ([#1e70950](https://github.com/deltabox-studio/toolchain/commit/1e70950) by [T0chi](https://github.com/T0chi))
110
- - Note that toolchain.vite is typed as Vite's UserConfig as augmented by Vite+
111
- (ToolchainViteConfig), and list ToolchainViteConfig among the shared config
175
+ - Cover the clack CLI output, prompts and `dbx` binary resolution ([#f45ed3f](https://github.com/deltabox-studio/toolchain/commit/f45ed3f) by [T0chi](https://github.com/T0chi))
176
+ - Document the Vite+ config type and the `Toolchain*` names ([#1e70950](https://github.com/deltabox-studio/toolchain/commit/1e70950) by [T0chi](https://github.com/T0chi))
177
+ - Note that `toolchain.vite` is typed as Vite's `UserConfig` as augmented by Vite+
178
+ (`ToolchainViteConfig`), and list `ToolchainViteConfig` among the shared config
112
179
  types. Covers the unreleased changes since v1.3.1 together with the sections the
113
- feature commits already added (the Vite+ config in dbx.config, the generated
114
- vite.config.ts, the vite migration and the dbx plugin).
180
+ feature commits already added (the Vite+ config in `dbx.config`, the generated
181
+ `vite.config.ts`, the vite migration and the `dbx` plugin).
115
182
  #### Vscode
116
- - Refresh the extension screenshot and add its LICENSE ([#49d4510](https://github.com/deltabox-studio/toolchain/commit/49d4510) by [T0chi](https://github.com/T0chi))
183
+ - Refresh the extension screenshot and add its `LICENSE` ([#49d4510](https://github.com/deltabox-studio/toolchain/commit/49d4510) by [T0chi](https://github.com/T0chi))
117
184
  ### Build system
118
- - Package the VS Code extension in yarn build ([#1dd14a1](https://github.com/deltabox-studio/toolchain/commit/1dd14a1) by [T0chi](https://github.com/T0chi))
119
- - yarn build now also runs the vscode package:vsix, so deltabox-toolchain.vsix
185
+ - Package the VS Code extension in `yarn build` ([#1dd14a1](https://github.com/deltabox-studio/toolchain/commit/1dd14a1) by [T0chi](https://github.com/T0chi))
186
+ - `yarn build` now also runs the vscode `package:vsix`, so `deltabox-toolchain.vsix`
120
187
  is always produced.
121
188
 
122
189
  ### Package changes
@@ -136,24 +203,24 @@
136
203
 
137
204
  ### New features
138
205
  #### Core
139
- - Keep the generated .dbx directory out of git ([#9fc1434](https://github.com/deltabox-studio/toolchain/commit/9fc1434) by [T0chi](https://github.com/T0chi))
140
- - dbx sync now appends the .dbx ignore block (everything under .dbx/ except the
141
- manifest, which holds no absolute paths) to an existing .gitignore, and the
206
+ - Keep the generated `.dbx` directory out of git ([#9fc1434](https://github.com/deltabox-studio/toolchain/commit/9fc1434) by [T0chi](https://github.com/T0chi))
207
+ - `dbx sync` now appends the `.dbx` ignore block (everything under `.dbx/` except the
208
+ manifest, which holds no absolute paths) to an existing `.gitignore`, and the
142
209
  installation guide documents the pattern and the automatic step.
143
210
  #### Cli
144
211
  - Route CLI output through the logger, add a providers colour option ([#ce76a4d](https://github.com/deltabox-studio/toolchain/commit/ce76a4d) by [T0chi](https://github.com/T0chi))
145
- - Commander's help and errors now go through the shared logger (help to stdout,
212
+ - `Commander`'s help and errors now go through the shared logger (help to stdout,
146
213
  errors to stderr, colour-aware, ANSI stripped when colour is off). Vite+
147
- passthrough commands keep commander's defaults so the spawned vp keeps its own
214
+ passthrough commands keep `commander`'s defaults so the spawned `vp` keeps its own
148
215
  coloured logging.
149
- - Add a providers config section (color?: boolean): color: false forces plain
150
- provider output, the global --no-color still turns it off, and runVp sets
151
- NO_COLOR / FORCE_COLOR on the child when colour is disabled.
152
- - Check for a newer dbx version ([#772aae2](https://github.com/deltabox-studio/toolchain/commit/772aae2) by [T0chi](https://github.com/T0chi))
216
+ - Add a `providers` config section (`color?: boolean`): `color: false` forces plain
217
+ provider output, the global `--no-color` still turns it off, and `runVp` sets
218
+ `NO_COLOR` / `FORCE_COLOR` on the child when colour is disabled.
219
+ - Check for a newer `dbx` version ([#772aae2](https://github.com/deltabox-studio/toolchain/commit/772aae2) by [T0chi](https://github.com/T0chi))
153
220
  - On each run, check the npm registry in the background (cached for a day, never
154
221
  blocking) and print a short notice with a link to the release when a newer
155
- @deltabox/toolchain exists. Skipped in CI and by NO_UPDATE_NOTIFIER or
156
- DBX_NO_UPDATE_CHECK, and can be turned off with the new --no-update-check flag.
222
+ `@deltabox/toolchain` exists. Skipped in CI and by `NO_UPDATE_NOTIFIER` or
223
+ `DBX_NO_UPDATE_CHECK`, and can be turned off with the new `--no-update-check` flag.
157
224
  - Default a bare Vite+ command to the `vite` passthrough ([#75770e4](https://github.com/deltabox-studio/toolchain/commit/75770e4) by [T0chi](https://github.com/T0chi))
158
225
  - `dbx fmt` / `dbx lint` / `dbx run` / `dbx dev` now work: when the first operand
159
226
  is not a built-in command but names a Vite+ subcommand (or one of its aliases),
@@ -163,51 +230,51 @@
163
230
  - The Package scripts, Migrations, Monorepo, CLI and Providers guides now show the
164
231
  bare form, and the consumers' root scripts were updated to match.
165
232
  #### Vscode
166
- - Bundle the dbx CLI into the extension ([#bf12403](https://github.com/deltabox-studio/toolchain/commit/bf12403) by [T0chi](https://github.com/T0chi))
167
- - Ship a self-contained dbx.cjs inside the VSIX (built by the new
168
- tsdown.bin.config.ts) and prefer it in the extension, so a consumer no longer
169
- needs to install @deltabox/toolchain. It falls back to a workspace-local
170
- install and then npx.
233
+ - Bundle the `dbx` CLI into the extension ([#bf12403](https://github.com/deltabox-studio/toolchain/commit/bf12403) by [T0chi](https://github.com/T0chi))
234
+ - Ship a self-contained `dbx.cjs` inside the VSIX (built by the new
235
+ `tsdown.bin.config.ts`) and prefer it in the extension, so a consumer no longer
236
+ needs to install `@deltabox/toolchain`. It falls back to a workspace-local
237
+ install and then `npx`.
171
238
  - Make the changelog and tsconfig direct-run guards basename-aware so they do not
172
239
  fire when the module is inlined into the single-file bundle.
173
240
  #### Shared
174
241
  - Add a configurable shared logger ([#54b51fa](https://github.com/deltabox-studio/toolchain/commit/54b51fa) by [T0chi](https://github.com/T0chi))
175
- - Add packages/shared/src/logger.ts: one level-aware, colour-aware sink (colours
176
- via picocolors, the same package Vite uses) with debug, info, success, warn,
177
- error and raw (unprefixed machine output). It is configurable from dbx.config's
178
- new logger section and from the CLI (--log-level, --no-color), with the CLI
242
+ - Add `packages/shared/src/logger.ts`: one level-aware, colour-aware sink (colours
243
+ via `picocolors`, the same package Vite uses) with `debug`, `info`, `success`, `warn`,
244
+ `error` and `raw` (unprefixed machine output). It is configurable from `dbx.config`'s
245
+ new `logger` section and from the CLI (`--log-level`, `--no-color`), with the CLI
179
246
  taking precedence.
180
- - Every console call in the toolchain now goes through the logger (JSON output
181
- through raw), including the sync/watch log callback and the run helper's
247
+ - Every `console` call in the toolchain now goes through the logger (JSON output
248
+ through `raw`), including the sync/watch log callback and the `run` helper's
182
249
  verbose line. The generated config types, the JSON schema, the docs reference
183
- and the Configuration/CLI guides document the new logger section.
250
+ and the Configuration/CLI guides document the new `logger` section.
184
251
  ### Bug fixes
185
- - Correct tsconfig aliases under --cwd, prune self-referential task runs ([#40e0c34](https://github.com/deltabox-studio/toolchain/commit/40e0c34) by [T0chi](https://github.com/T0chi))
252
+ - Correct tsconfig aliases under `--cwd`, prune self-referential task runs ([#40e0c34](https://github.com/deltabox-studio/toolchain/commit/40e0c34) by [T0chi](https://github.com/T0chi))
186
253
  - Two bugs found by exercising the CLI against the local consumer projects:
187
- - instead of process.cwd(), so `dbx sync --cwd <dir>` (run from elsewhere)
254
+ - instead of `process.cwd()`, so `dbx sync --cwd <dir>` (run from elsewhere)
188
255
  writes correct relative paths rather than paths pointing at the caller.
189
256
  spawning the task runner, and prunes itself when the same command runs again
190
257
  from the same root. A root task whose script calls `run -r <task>` can no
191
258
  longer recurse.
192
259
  - Changelog links, oxfmt map, build idempotency, watch timer, vscode spawn ([#2389c98](https://github.com/deltabox-studio/toolchain/commit/2389c98) by [T0chi](https://github.com/T0chi))
193
- - render commits as a plain short hash instead of a github.com/undefined link
260
+ - render commits as a plain short hash instead of a `github.com/undefined` link
194
261
  `yarn build` no longer rewrites it and the working tree stays idempotent
195
- spawnCli and cliInvocation
196
- - Sync --check writes, quiet level, log flags and template tokens ([#7f5690f](https://github.com/deltabox-studio/toolchain/commit/7f5690f) by [T0chi](https://github.com/T0chi))
262
+ `spawnCli` and `cliInvocation`
263
+ - Sync `--check` writes, quiet level, log flags and template tokens ([#7f5690f](https://github.com/deltabox-studio/toolchain/commit/7f5690f) by [T0chi](https://github.com/T0chi))
197
264
  - Audit pass over the toolchain source:
198
- - actually generated by dbx sync
265
+ - actually generated by `dbx sync`
199
266
  ### Documentation
200
267
  - Document the full public API surface ([#6f78245](https://github.com/deltabox-studio/toolchain/commit/6f78245) by [T0chi](https://github.com/T0chi))
201
- - Expand guide/api.md to cover the umbrella plus every subpath export, grouped by
202
- package. Add the logging API (logger, createLogger, setLogConfig,
203
- setLogOverrides, levels, colours, raw) to the API and Configuration guides, and
204
- document the config generator's formatGenerated helper and the Vite and CLI
268
+ - Expand `guide/api.md` to cover the umbrella plus every subpath export, grouped by
269
+ package. Add the logging API (`logger`, `createLogger`, `setLogConfig`,
270
+ `setLogOverrides`, levels, colours, `raw`) to the API and Configuration guides, and
271
+ document the config generator's `formatGenerated` helper and the Vite and CLI
205
272
  programmatic helpers.
206
273
  ### Chores
207
- - Track only the .dbx manifest ([#a254062](https://github.com/deltabox-studio/toolchain/commit/a254062) by [T0chi](https://github.com/T0chi))
208
- - Ignore everything under .dbx/ except .dbx/toolchain/manifest.json, which records the managed files and holds no absolute paths. The project graph (which embeds the absolute root) stays ignored.
209
- - Stop tracking the generated .dbx directory ([#b7c53f0](https://github.com/deltabox-studio/toolchain/commit/b7c53f0) by [T0chi](https://github.com/T0chi))
210
- - The managed-file manifest and project graph under .dbx/ are generated state, so ignore them and untrack the two committed files.
274
+ - Track only the `.dbx` manifest ([#a254062](https://github.com/deltabox-studio/toolchain/commit/a254062) by [T0chi](https://github.com/T0chi))
275
+ - Ignore everything under `.dbx/` except `.dbx/toolchain/manifest.json`, which records the managed files and holds no absolute paths. The project graph (which embeds the absolute root) stays ignored.
276
+ - Stop tracking the generated `.dbx` directory ([#b7c53f0](https://github.com/deltabox-studio/toolchain/commit/b7c53f0) by [T0chi](https://github.com/T0chi))
277
+ - The managed-file manifest and project graph under `.dbx/` are generated state, so ignore them and untrack the two committed files.
211
278
 
212
279
  ### Package changes
213
280
  #### Added
@@ -233,14 +300,14 @@
233
300
  ### Bug fixes
234
301
  #### Config
235
302
  - Tidy generated types and format them with Oxfmt ([#6fef440](https://github.com/deltabox-studio/toolchain/commit/6fef440) by [T0chi](https://github.com/T0chi))
236
- - untyped's type generator emits a blank line between every member and verbose
303
+ - `untyped`'s type generator emits a blank line between every member and verbose
237
304
  multi-line JSDoc. Strip the member blank lines in the generator, then run the
238
305
  generated output through Oxfmt's programmatic `format()` (with `jsdoc: true`)
239
306
  at generation time instead of shelling out to the repo-root `vp`, so the file
240
307
  is written already formatted and resembles the hand-written `types.ts`.
241
308
  - Also drop the toolchain-specific `yarn config:types` hint from the generated
242
309
  header: the types ship through `@deltabox/toolchain-shared`, so a script name
243
- that only exists in this repo's package.json is misleading to consumers (a
310
+ that only exists in this repo's `package.json` is misleading to consumers (a
244
311
  consumer supplies its own header via the `header` option).
245
312
  ### Documentation
246
313
  - Add Package scripts guide and a navbar version ([#b279739](https://github.com/deltabox-studio/toolchain/commit/b279739) by [T0chi](https://github.com/T0chi))
@@ -292,7 +359,7 @@
292
359
  #### Config
293
360
  - Generate the shared config types via the config generator ([#a063a2d](https://github.com/deltabox-studio/toolchain/commit/a063a2d) by [T0chi](https://github.com/T0chi))
294
361
  - Teach the config engine's Zod->untyped bridge and types generator to handle
295
- unions (anyOf/oneOf), `const`, and unknown records, and to render a schema's
362
+ unions (`anyOf`/`oneOf`), `const`, and unknown records, and to render a schema's
296
363
  fields on the main interface when it has no `base` group (plus type aliases for
297
364
  non-object roots). Named `$ref`s (via `.meta({ id })`) render as the type name,
298
365
  so the generated config types reference each other instead of inlining.
@@ -326,9 +393,9 @@
326
393
 
327
394
  ### Bug fixes
328
395
  #### Ci
329
- - Skip the Marketplace publish when VSCE_PAT is unset ([#fe4b3ad](https://github.com/deltabox-studio/toolchain/commit/fe4b3ad) by [T0chi](https://github.com/T0chi))
396
+ - Skip the Marketplace publish when `VSCE_PAT` is unset ([#fe4b3ad](https://github.com/deltabox-studio/toolchain/commit/fe4b3ad) by [T0chi](https://github.com/T0chi))
330
397
  - The VS Code Marketplace publish was the only failing release step (no
331
- VSCE_PAT set). Make it a no-op while the secret is unset and publish
398
+ `VSCE_PAT` set). Make it a no-op while the secret is unset and publish
332
399
  automatically once it is added to the `toolchain / release` environment.
333
400
  - Also remove the temporary OIDC diagnostic step now that the release publishes.
334
401
 
@@ -377,20 +444,20 @@
377
444
  environment claim therefore did not match, the token exchange failed, and npm
378
445
  silently fell back to the placeholder token (the misleading E404).
379
446
  - Declare `environment: 'toolchain / release'` on the job and add an optional
380
- NODE_AUTH_TOKEN fallback (the environment's NPM_TOKEN) to the publish step.
447
+ `NODE_AUTH_TOKEN` fallback (the environment's `NPM_TOKEN`) to the publish step.
381
448
  OIDC is still tried first, so the token is never relied on.
382
449
  #### Vscode
383
450
  - Spawn the CLI safely on Windows ([#99e3ad1](https://github.com/deltabox-studio/toolchain/commit/99e3ad1) by [T0chi](https://github.com/T0chi))
384
451
  - `spawn('npx.cmd', ...)` throws EINVAL synchronously on Windows, and
385
452
  `captureCli`/`runCli` call spawn inside a Promise executor, so the throw
386
453
  rejected the promise and the command aborted with no UI ("nothing happens").
387
- This fired whenever the CLI resolved to the npx.cmd fallback (a workspace
388
- without a local @deltabox/toolchain), e.g. "From template..." which round-trips
389
- template:list --json through captureCli.
390
- - Add a pure win-spawn module (ported from the shared spawnCross) that escapes
391
- the command + args and runs a .cmd shim through cmd.exe; use it from spawnCli.
392
- captureCli/runCli no longer reject on a spawn failure. Also fix cliInvocation
393
- for the integrated terminal: process.execPath is the VS Code binary in the
454
+ This fired whenever the CLI resolved to the `npx.cmd` fallback (a workspace
455
+ without a local `@deltabox/toolchain`), e.g. "From template..." which round-trips
456
+ `template:list --json` through `captureCli`.
457
+ - Add a pure `win-spawn` module (ported from the shared `spawnCross`) that escapes
458
+ the command + args and runs a `.cmd` shim through `cmd.exe`; use it from `spawnCli`.
459
+ `captureCli`/`runCli` no longer reject on a spawn failure. Also fix `cliInvocation`
460
+ for the integrated terminal: `process.execPath` is the VS Code binary in the
394
461
  extension host, so it now uses `npx dbx` / `npx --yes @deltabox/toolchain`.
395
462
 
396
463
  ## 1.1.17 (October 2026)
@@ -413,7 +480,7 @@
413
480
  ## 1.1.15 (October 2026)
414
481
 
415
482
  ### Chores
416
- - Formatted README.md ([#4485c48](https://github.com/deltabox-studio/toolchain/commit/4485c48) by [T0chi](https://github.com/T0chi))
483
+ - Formatted `README.md` ([#4485c48](https://github.com/deltabox-studio/toolchain/commit/4485c48) by [T0chi](https://github.com/T0chi))
417
484
 
418
485
  ## 1.1.14 (October 2026)
419
486
 
@@ -434,7 +501,7 @@
434
501
 
435
502
  ### Documentation
436
503
  - Drop backticks from the landing feature cards ([#9d6ed28](https://github.com/deltabox-studio/toolchain/commit/9d6ed28) by [T0chi](https://github.com/T0chi))
437
- - Use currentColor for the logo so it shows on light mode ([#907a07e](https://github.com/deltabox-studio/toolchain/commit/907a07e) by [T0chi](https://github.com/T0chi))
504
+ - Use `currentColor` for the logo so it shows on light mode ([#907a07e](https://github.com/deltabox-studio/toolchain/commit/907a07e) by [T0chi](https://github.com/T0chi))
438
505
  - Fix README formatting ([#2dc01d4](https://github.com/deltabox-studio/toolchain/commit/2dc01d4) by [T0chi](https://github.com/T0chi))
439
506
  - Make the logo black in light mode (white in dark) ([#c6d9410](https://github.com/deltabox-studio/toolchain/commit/c6d9410) by [T0chi](https://github.com/T0chi))
440
507
  ### CI
@@ -451,7 +518,7 @@
451
518
  - Reindent the README lists ([#1d41d68](https://github.com/deltabox-studio/toolchain/commit/1d41d68) by [T0chi](https://github.com/T0chi))
452
519
  - Mirror the VS Code extension installation guide from the README ([#1889832](https://github.com/deltabox-studio/toolchain/issues/1889832) by [T0chi](https://github.com/T0chi))
453
520
  ### Chores
454
- - Update VS Code extension installation guide in README.md ([#aab06d5](https://github.com/deltabox-studio/toolchain/commit/aab06d5) by [T0chi](https://github.com/T0chi))
521
+ - Update VS Code extension installation guide in `README.md` ([#aab06d5](https://github.com/deltabox-studio/toolchain/commit/aab06d5) by [T0chi](https://github.com/T0chi))
455
522
 
456
523
  ## 1.1.8 (October 2026)
457
524
 
@@ -466,7 +533,7 @@
466
533
  ## 1.1.6 (October 2026)
467
534
 
468
535
  ### Documentation
469
- - Use box2d.svg for the navbar/hero logo and box2d_bg.svg for the favicon ([#2c7a094](https://github.com/deltabox-studio/toolchain/commit/2c7a094) by [T0chi](https://github.com/T0chi))
536
+ - Use `box2d.svg` for the navbar/hero logo and `box2d_bg.svg` for the favicon ([#2c7a094](https://github.com/deltabox-studio/toolchain/commit/2c7a094) by [T0chi](https://github.com/T0chi))
470
537
 
471
538
  ## 1.1.5 (October 2026)
472
539
 
@@ -491,14 +558,14 @@
491
558
 
492
559
  ### Documentation
493
560
  - Add a tests badge to the README ([#01513ee](https://github.com/deltabox-studio/toolchain/commit/01513ee) by [T0chi](https://github.com/T0chi))
494
- - Fix CHANGELOG.md mojibake and add backticks to code refs ([#6b721eb](https://github.com/deltabox-studio/toolchain/commit/6b721eb) by [T0chi](https://github.com/T0chi))
561
+ - Fix `CHANGELOG.md` mojibake and add backticks to code refs ([#6b721eb](https://github.com/deltabox-studio/toolchain/commit/6b721eb) by [T0chi](https://github.com/T0chi))
495
562
 
496
563
  ## 1.1.1 (October 2026)
497
564
 
498
565
  ### Documentation
499
566
 
500
567
  - Publish `config.schema.json` at the docs site root ([#b7680cb](https://github.com/deltabox-studio/toolchain/commit/b7680cb) by [T0chi](https://github.com/T0chi))
501
- - The VitePress build now copies the generated dbx JSON schema into the dist
568
+ - The VitePress build now copies the generated `dbx` JSON schema into the dist
502
569
  root, so it is served at https://toolchain.deltabox.studio/config.schema.json.
503
570
 
504
571
  ### CI
@@ -518,7 +585,7 @@
518
585
  #### Vite
519
586
 
520
587
  - Add a `dbx()` Vite+ plugin and `defineDbxConfig` wrapper ([#a1edaf9](https://github.com/deltabox-studio/toolchain/commit/a1edaf9) by [T0chi](https://github.com/T0chi))
521
- - Lets Vite+-only consumers drive dbx from `vite.config.ts`: `dbx()` runs
588
+ - Lets Vite+-only consumers drive `dbx` from `vite.config.ts`: `dbx()` runs
522
589
  `dbx sync` before dev/build (or `dbx sync --check` in CI) and re-syncs on
523
590
  input changes; `defineDbxConfig()` also registers the `vp run dbx:*` tasks
524
591
  (Vite+ reads `run.tasks` from the static config, not a plugin hook).
@@ -599,7 +666,7 @@
599
666
  ### Chores
600
667
 
601
668
  - Exclude `CHANGELOG.md` from Oxfmt (the changelog pipeline owns its format) ([#f6ad3c0](https://github.com/deltabox-studio/toolchain/commit/f6ad3c0) by [T0chi](https://github.com/T0chi))
602
- - Add MPL-2.0 `LICENSE` and the project homepage ([#cea0fb5](https://github.com/deltabox-studio/toolchain/commit/cea0fb5) by [T0chi](https://github.com/T0chi))
669
+ - Add `MPL-2.0` `LICENSE` and the project homepage ([#cea0fb5](https://github.com/deltabox-studio/toolchain/commit/cea0fb5) by [T0chi](https://github.com/T0chi))
603
670
 
604
671
  ## 1.0.2 (October 2026)
605
672
 
package/README.md CHANGED
@@ -220,16 +220,13 @@ await runSync({ tasks: defaultSyncTasks(), cwd: process.cwd(), config, tokens, p
220
220
 
221
221
  ## VS Code extension
222
222
 
223
- A VS Code extension is available for `deltabox toolchain`.
223
+ Download from the [Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=deltabox.toolchain).
224
224
 
225
- Follow the steps below to use it. Will be published to the marketplace in the future.
225
+ or through the CLI:
226
226
 
227
- 1. Download `deltabox-toolchain.vsix` from [releases](https://github.com/deltabox-studio/toolchain/releases).
228
- 2. In VS Code install the `deltabox-toolchain.vsix` by going to the Extensions sidebar panel, click the three dotted menu on the panel header and select `Install from VSIX...` from the context menu.
229
- 3. Now a screwdriver icon should pop up on the VS Code sidemenu, and you can use the command palette (Ctrl + P) as well:
230
- 1. Sync / Check sync / Scaffold project, From template…
231
- 2. Run Vite+ command...
232
- 3. Create Vite+ project...
227
+ ```bash
228
+ code --install-extension deltabox.toolchain
229
+ ```
233
230
 
234
231
  See [packages/vscode/README.md](./packages/vscode/README.md) to learn more about how it works.
235
232
 
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ import { Colors, LOG_LEVELS, LogChannel, LogLevel, Logger, LoggerConfig, LoggerO
6
6
  import { Sortable, deepMerge, isPlainObject, mapValues, resolveSort, sort } from "./packages/shared/src/object-utils.js";
7
7
  import { ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, providerActions } from "./packages/shared/src/provider.js";
8
8
  import { RunOptions, SpawnCrossOptions, killProcessTree, run, spawnCross } from "./packages/shared/src/run.js";
9
- import { asString, camelCase, camelCaseId, capitalize, constantCase, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, formatCliFlag, hasText, indent, isLocalhost, kebabCase, pascalCase, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, sanitizeSlashes, snakeCase, str, titleCase } from "./packages/shared/src/string-utils.js";
9
+ import { asString, camelCase, camelCaseId, capitalize, constantCase, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, formatCliFlag, hasText, indent, isLocalhost, kebabCase, pascalCase, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, sanitizeSlashes, sanitizeText, snakeCase, str, stripControlChars, stripEscapeArtifacts, titleCase } from "./packages/shared/src/string-utils.js";
10
10
  import { ReplacementOptions, ReplacementValue, Replacements, Replacer, applyReplacements, applyReplacementsDeep, createReplacer, defineReplacements, extractTokens, hasUnresolvedTokens, tokenPattern } from "./packages/shared/src/template.js";
11
11
  import { ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowsConfig, DbxConfigSections, ProjectType, ToolchainBiomeConfig, ToolchainChangelogConfig, ToolchainConfigSections, ToolchainLoggerConfig, ToolchainProjectConfig, ToolchainProvidersConfig, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainViteConfig, ToolchainWatchConfig, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig } from "./packages/shared/src/config-types.js";
12
12
  import { Awaitable, GeneratedFile, JsonValue, PackageJson, ToolchainArgument, ToolchainCommand, ToolchainCommandContext, ToolchainOption } from "./packages/shared/src/types.js";
@@ -33,4 +33,4 @@ import { index_d_exports as index_d_exports$6 } from "./packages/tsconfig/src/in
33
33
  import { index_d_exports as index_d_exports$4 } from "./packages/project/src/index.js";
34
34
  import { index_d_exports as index_d_exports$7 } from "./packages/tsdown/src/index.js";
35
35
  import { defaultSyncTasks } from "./sync.js";
36
- export { Awaitable, BuildProjectGraphOptions, CONFIG_FILE_NAMES, CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, CONFIG_TYPE_SCHEMAS, ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowsConfig, Colors, DBX_GITIGNORE_BLOCK, DbxConfig, DbxConfigSections, GeneratedFile, IGNORED_DIRS, JsonValue, LOG_LEVELS, LoadedConfig, LogChannel, LogLevel, Logger, LoggerConfig, LoggerOptions, MANIFEST_DIR, MANIFEST_FILE, ManagedFile, Manifest, PackageJson, PackageManager, ProjectGraph, ProjectNode, ProjectType, ReplacementOptions, ReplacementValue, Replacements, Replacer, ResetProjectsOptions, ResetProjectsResult, ResetSelectors, ResetToolchainOptions, ResetToolchainResult, RunOptions, RunSyncOptions, RunWatchOptions, SelectProjectsOptions, SelectedProject, Sortable, SpawnCrossOptions, SyncContext, SyncResult, SyncSummary, SyncTask, TOOLCHAIN_PACKAGE, ToolchainArgument, ToolchainBiomeConfig, ToolchainChangelogConfig, ToolchainCommand, ToolchainCommandContext, ToolchainConfig, ToolchainConfigSections, ToolchainHooks, ToolchainLoggerConfig, ToolchainOption, ToolchainProjectConfig, ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, ToolchainProvidersConfig, ToolchainSection, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainViteConfig, ToolchainWatchConfig, VscodeSyncOptions, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, type YamlValue, applyReplacements, applyReplacementsDeep, asString, index_d_exports as biome, biomeConfigSchema, buildProjectGraph, camelCase, camelCaseId, capitalize, index_d_exports$1 as changelog, changelogConfigSchema, changelogVersioningConfigSchema, changelogVersioningSchema, changelogVersioningTargetSchema, changelogWorkflowsConfigSchema, index_d_exports$2 as config, configureLogger, constantCase, index_d_exports$3 as core, createLogger, createReplacer, dbxConfigSchema, deepMerge, defaultSyncTasks, defineConfig, defineReplacements, detectPackageManager, detectProjectType, ensureDbxGitignore, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, extractTokens, findConfigFile, findOwnCliEntry, formatCliFlag, getLogOverrides, getLogger, hasText, hasUnresolvedTokens, indent, isLocalhost, isLogLevel, isPlainObject, kebabCase, killProcessTree, loadToolchainConfig, localToolchainVersion, logger, loggerConfigSchema, mapValues, mergeJsonAt, normalizeLogLevel, orderProjects, pascalCase, index_d_exports$4 as project, projectConfigSchema, projectGraphPath, projectTypeSchema, providerActions, providerRegistryPath, providersConfigSchema, readJsonAt, readJsonFile, readManifest, readProjectGraph, readProviderRegistry, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repoSlugFromUrl, resetProjects, resetToolchain, resolveProjectType, resolveSort, resolveTokens, run, runSync, runWatch, sanitizeSlashes, sectionConfig, sectionEnabled, selectProjects, setLogConfig, setLogOverrides, index_d_exports$5 as shared, snakeCase, sort, spawnCross, str, stripAnsi, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, titleCase, toJson, toYaml, tokenPattern, toolchainConfigSchema, index_d_exports$6 as tsconfig, tsconfigConfigSchema, index_d_exports$7 as tsdown, viteConfigSchema, vscodeSyncTask, watchConfigSchema, workflowConfigSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, writeJsonFile, writeManifest, writeProjectGraph, writeProviderRegistry };
36
+ export { Awaitable, BuildProjectGraphOptions, CONFIG_FILE_NAMES, CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, CONFIG_TYPE_SCHEMAS, ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowsConfig, Colors, DBX_GITIGNORE_BLOCK, DbxConfig, DbxConfigSections, GeneratedFile, IGNORED_DIRS, JsonValue, LOG_LEVELS, LoadedConfig, LogChannel, LogLevel, Logger, LoggerConfig, LoggerOptions, MANIFEST_DIR, MANIFEST_FILE, ManagedFile, Manifest, PackageJson, PackageManager, ProjectGraph, ProjectNode, ProjectType, ReplacementOptions, ReplacementValue, Replacements, Replacer, ResetProjectsOptions, ResetProjectsResult, ResetSelectors, ResetToolchainOptions, ResetToolchainResult, RunOptions, RunSyncOptions, RunWatchOptions, SelectProjectsOptions, SelectedProject, Sortable, SpawnCrossOptions, SyncContext, SyncResult, SyncSummary, SyncTask, TOOLCHAIN_PACKAGE, ToolchainArgument, ToolchainBiomeConfig, ToolchainChangelogConfig, ToolchainCommand, ToolchainCommandContext, ToolchainConfig, ToolchainConfigSections, ToolchainHooks, ToolchainLoggerConfig, ToolchainOption, ToolchainProjectConfig, ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, ToolchainProvidersConfig, ToolchainSection, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainViteConfig, ToolchainWatchConfig, VscodeSyncOptions, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, type YamlValue, applyReplacements, applyReplacementsDeep, asString, index_d_exports as biome, biomeConfigSchema, buildProjectGraph, camelCase, camelCaseId, capitalize, index_d_exports$1 as changelog, changelogConfigSchema, changelogVersioningConfigSchema, changelogVersioningSchema, changelogVersioningTargetSchema, changelogWorkflowsConfigSchema, index_d_exports$2 as config, configureLogger, constantCase, index_d_exports$3 as core, createLogger, createReplacer, dbxConfigSchema, deepMerge, defaultSyncTasks, defineConfig, defineReplacements, detectPackageManager, detectProjectType, ensureDbxGitignore, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, extractTokens, findConfigFile, findOwnCliEntry, formatCliFlag, getLogOverrides, getLogger, hasText, hasUnresolvedTokens, indent, isLocalhost, isLogLevel, isPlainObject, kebabCase, killProcessTree, loadToolchainConfig, localToolchainVersion, logger, loggerConfigSchema, mapValues, mergeJsonAt, normalizeLogLevel, orderProjects, pascalCase, index_d_exports$4 as project, projectConfigSchema, projectGraphPath, projectTypeSchema, providerActions, providerRegistryPath, providersConfigSchema, readJsonAt, readJsonFile, readManifest, readProjectGraph, readProviderRegistry, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repoSlugFromUrl, resetProjects, resetToolchain, resolveProjectType, resolveSort, resolveTokens, run, runSync, runWatch, sanitizeSlashes, sanitizeText, sectionConfig, sectionEnabled, selectProjects, setLogConfig, setLogOverrides, index_d_exports$5 as shared, snakeCase, sort, spawnCross, str, stripAnsi, stripControlChars, stripEscapeArtifacts, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, titleCase, toJson, toYaml, tokenPattern, toolchainConfigSchema, index_d_exports$6 as tsconfig, tsconfigConfigSchema, index_d_exports$7 as tsdown, viteConfigSchema, vscodeSyncTask, watchConfigSchema, workflowConfigSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, writeJsonFile, writeManifest, writeProjectGraph, writeProviderRegistry };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{TOOLCHAIN_PACKAGE as e,findOwnCliEntry as t,localToolchainVersion as n}from"./packages/shared/src/bin.js";import{deepMerge as r,isPlainObject as i,mapValues as a,resolveSort as o,sort as s}from"./packages/shared/src/object-utils.js";import{mergeJsonAt as c,readJsonAt as l,readJsonFile as u,toJson as d,writeJsonFile as f}from"./packages/shared/src/fs-utils.js";import{LOG_LEVELS as p,configureLogger as m,createLogger as h,getLogOverrides as g,getLogger as _,isLogLevel as v,logger as y,normalizeLogLevel as b,setLogConfig as x,setLogOverrides as S,stripAnsi as C}from"./packages/shared/src/logger.js";import{providerActions as w}from"./packages/shared/src/provider.js";import{killProcessTree as T,run as E,spawnCross as D}from"./packages/shared/src/run.js";import{asString as O,camelCase as k,camelCaseId as A,capitalize as j,constantCase as M,ensureLeadingSlash as N,ensureSlashes as P,ensureTrailingSlash as F,formatCliFlag as I,hasText as L,indent as R,isLocalhost as z,kebabCase as B,pascalCase as V,removeDoubleSlashes as H,removeLeadingSlash as U,removeTrailingSlash as W,sanitizeSlashes as G,snakeCase as K,str as q,titleCase as J}from"./packages/shared/src/string-utils.js";import{applyReplacements as Y,applyReplacementsDeep as X,createReplacer as Z,defineReplacements as Q,extractTokens as $,hasUnresolvedTokens as ee,tokenPattern as te}from"./packages/shared/src/template.js";import{CONFIG_SECTION_DESCRIPTIONS as ne,CONFIG_SECTION_SCHEMAS as re,CONFIG_TYPE_SCHEMAS as ie,biomeConfigSchema as ae,changelogConfigSchema as oe,changelogVersioningConfigSchema as se,changelogVersioningSchema as ce,changelogVersioningTargetSchema as le,changelogWorkflowsConfigSchema as ue,dbxConfigSchema as de,loggerConfigSchema as fe,projectConfigSchema as pe,projectTypeSchema as me,providersConfigSchema as he,templateKindSchema as ge,templateSourceSchema as _e,templateSourceTypeSchema as ve,templatesConfigSchema as ye,toolchainConfigSchema as be,tsconfigConfigSchema as xe,viteConfigSchema as Se,watchConfigSchema as Ce,workflowConfigSchema as we,workflowSettingSchema as Te,workflowStepSchema as Ee,workflowStepsConfigSchema as De}from"./packages/shared/src/config-schema.js";import{CONFIG_FILE_NAMES as Oe,defineConfig as ke,repoSlugFromUrl as Ae,resolveTokens as je,sectionConfig as Me,sectionEnabled as Ne}from"./packages/shared/src/toolchain.js";import{toYaml as Pe}from"./packages/shared/src/yaml.js";import{src_exports as Fe}from"./packages/shared/src/index.js";import{src_exports as Ie}from"./packages/biome/src/index.js";import{src_exports as Le}from"./packages/changelog/src/index.js";import{src_exports as Re}from"./packages/config/src/index.js";import{DBX_GITIGNORE_BLOCK as ze,ensureDbxGitignore as Be}from"./packages/core/src/gitignore.js";import{detectProjectType as Ve,resolveProjectType as He}from"./packages/core/src/project-type.js";import{findConfigFile as Ue,loadToolchainConfig as We}from"./packages/core/src/loader.js";import{IGNORED_DIRS as Ge,buildProjectGraph as Ke,detectPackageManager as qe,orderProjects as Je,projectGraphPath as Ye,readProjectGraph as Xe,writeProjectGraph as Ze}from"./packages/core/src/graph.js";import{MANIFEST_DIR as Qe,MANIFEST_FILE as $e,readManifest as et,writeManifest as tt}from"./packages/core/src/manifest.js";import{providerRegistryPath as nt,readProviderRegistry as rt,writeProviderRegistry as it}from"./packages/core/src/provider-registry.js";import{selectProjects as at}from"./packages/core/src/select.js";import{resetProjects as ot,resetToolchain as st}from"./packages/core/src/reset.js";import{runSync as ct}from"./packages/core/src/sync.js";import{vscodeSyncTask as lt}from"./packages/core/src/vscode.js";import{runWatch as ut}from"./packages/core/src/watch.js";import{src_exports as dt}from"./packages/core/src/index.js";import{src_exports as ft}from"./packages/tsconfig/src/index.js";import{src_exports as pt}from"./packages/project/src/index.js";import{src_exports as mt}from"./packages/tsdown/src/index.js";import{defaultSyncTasks as ht}from"./sync.js";export{Oe as CONFIG_FILE_NAMES,ne as CONFIG_SECTION_DESCRIPTIONS,re as CONFIG_SECTION_SCHEMAS,ie as CONFIG_TYPE_SCHEMAS,ze as DBX_GITIGNORE_BLOCK,Ge as IGNORED_DIRS,p as LOG_LEVELS,Qe as MANIFEST_DIR,$e as MANIFEST_FILE,e as TOOLCHAIN_PACKAGE,Y as applyReplacements,X as applyReplacementsDeep,O as asString,Ie as biome,ae as biomeConfigSchema,Ke as buildProjectGraph,k as camelCase,A as camelCaseId,j as capitalize,Le as changelog,oe as changelogConfigSchema,se as changelogVersioningConfigSchema,ce as changelogVersioningSchema,le as changelogVersioningTargetSchema,ue as changelogWorkflowsConfigSchema,Re as config,m as configureLogger,M as constantCase,dt as core,h as createLogger,Z as createReplacer,de as dbxConfigSchema,r as deepMerge,ht as defaultSyncTasks,ke as defineConfig,Q as defineReplacements,qe as detectPackageManager,Ve as detectProjectType,Be as ensureDbxGitignore,N as ensureLeadingSlash,P as ensureSlashes,F as ensureTrailingSlash,$ as extractTokens,Ue as findConfigFile,t as findOwnCliEntry,I as formatCliFlag,g as getLogOverrides,_ as getLogger,L as hasText,ee as hasUnresolvedTokens,R as indent,z as isLocalhost,v as isLogLevel,i as isPlainObject,B as kebabCase,T as killProcessTree,We as loadToolchainConfig,n as localToolchainVersion,y as logger,fe as loggerConfigSchema,a as mapValues,c as mergeJsonAt,b as normalizeLogLevel,Je as orderProjects,V as pascalCase,pt as project,pe as projectConfigSchema,Ye as projectGraphPath,me as projectTypeSchema,w as providerActions,nt as providerRegistryPath,he as providersConfigSchema,l as readJsonAt,u as readJsonFile,et as readManifest,Xe as readProjectGraph,rt as readProviderRegistry,H as removeDoubleSlashes,U as removeLeadingSlash,W as removeTrailingSlash,Ae as repoSlugFromUrl,ot as resetProjects,st as resetToolchain,He as resolveProjectType,o as resolveSort,je as resolveTokens,E as run,ct as runSync,ut as runWatch,G as sanitizeSlashes,Me as sectionConfig,Ne as sectionEnabled,at as selectProjects,x as setLogConfig,S as setLogOverrides,Fe as shared,K as snakeCase,s as sort,D as spawnCross,q as str,C as stripAnsi,ge as templateKindSchema,_e as templateSourceSchema,ve as templateSourceTypeSchema,ye as templatesConfigSchema,J as titleCase,d as toJson,Pe as toYaml,te as tokenPattern,be as toolchainConfigSchema,ft as tsconfig,xe as tsconfigConfigSchema,mt as tsdown,Se as viteConfigSchema,lt as vscodeSyncTask,Ce as watchConfigSchema,we as workflowConfigSchema,Te as workflowSettingSchema,Ee as workflowStepSchema,De as workflowStepsConfigSchema,f as writeJsonFile,tt as writeManifest,Ze as writeProjectGraph,it as writeProviderRegistry};
1
+ import"node:path";import"node:url";import.meta.url;import{TOOLCHAIN_PACKAGE as e,findOwnCliEntry as t,localToolchainVersion as n}from"./packages/shared/src/bin.js";import{deepMerge as r,isPlainObject as i,mapValues as a,resolveSort as o,sort as s}from"./packages/shared/src/object-utils.js";import{mergeJsonAt as c,readJsonAt as l,readJsonFile as u,toJson as d,writeJsonFile as f}from"./packages/shared/src/fs-utils.js";import{LOG_LEVELS as p,configureLogger as m,createLogger as h,getLogOverrides as g,getLogger as _,isLogLevel as v,logger as y,normalizeLogLevel as b,setLogConfig as x,setLogOverrides as S,stripAnsi as C}from"./packages/shared/src/logger.js";import{providerActions as w}from"./packages/shared/src/provider.js";import{killProcessTree as T,run as E,spawnCross as D}from"./packages/shared/src/run.js";import{asString as O,camelCase as k,camelCaseId as A,capitalize as j,constantCase as M,ensureLeadingSlash as N,ensureSlashes as P,ensureTrailingSlash as F,formatCliFlag as I,hasText as L,indent as R,isLocalhost as z,kebabCase as B,pascalCase as V,removeDoubleSlashes as H,removeLeadingSlash as U,removeTrailingSlash as W,sanitizeSlashes as G,sanitizeText as K,snakeCase as q,str as J,stripControlChars as Y,stripEscapeArtifacts as X,titleCase as Z}from"./packages/shared/src/string-utils.js";import{applyReplacements as Q,applyReplacementsDeep as $,createReplacer as ee,defineReplacements as te,extractTokens as ne,hasUnresolvedTokens as re,tokenPattern as ie}from"./packages/shared/src/template.js";import{CONFIG_SECTION_DESCRIPTIONS as ae,CONFIG_SECTION_SCHEMAS as oe,CONFIG_TYPE_SCHEMAS as se,biomeConfigSchema as ce,changelogConfigSchema as le,changelogVersioningConfigSchema as ue,changelogVersioningSchema as de,changelogVersioningTargetSchema as fe,changelogWorkflowsConfigSchema as pe,dbxConfigSchema as me,loggerConfigSchema as he,projectConfigSchema as ge,projectTypeSchema as _e,providersConfigSchema as ve,templateKindSchema as ye,templateSourceSchema as be,templateSourceTypeSchema as xe,templatesConfigSchema as Se,toolchainConfigSchema as Ce,tsconfigConfigSchema as we,viteConfigSchema as Te,watchConfigSchema as Ee,workflowConfigSchema as De,workflowSettingSchema as Oe,workflowStepSchema as ke,workflowStepsConfigSchema as Ae}from"./packages/shared/src/config-schema.js";import{CONFIG_FILE_NAMES as je,defineConfig as Me,repoSlugFromUrl as Ne,resolveTokens as Pe,sectionConfig as Fe,sectionEnabled as Ie}from"./packages/shared/src/toolchain.js";import{toYaml as Le}from"./packages/shared/src/yaml.js";import{src_exports as Re}from"./packages/shared/src/index.js";import{src_exports as ze}from"./packages/biome/src/index.js";import{src_exports as Be}from"./packages/changelog/src/index.js";import{src_exports as Ve}from"./packages/config/src/index.js";import{DBX_GITIGNORE_BLOCK as He,ensureDbxGitignore as Ue}from"./packages/core/src/gitignore.js";import{detectProjectType as We,resolveProjectType as Ge}from"./packages/core/src/project-type.js";import{findConfigFile as Ke,loadToolchainConfig as qe}from"./packages/core/src/loader.js";import{IGNORED_DIRS as Je,buildProjectGraph as Ye,detectPackageManager as Xe,orderProjects as Ze,projectGraphPath as Qe,readProjectGraph as $e,writeProjectGraph as et}from"./packages/core/src/graph.js";import{MANIFEST_DIR as tt,MANIFEST_FILE as nt,readManifest as rt,writeManifest as it}from"./packages/core/src/manifest.js";import{providerRegistryPath as at,readProviderRegistry as ot,writeProviderRegistry as st}from"./packages/core/src/provider-registry.js";import{selectProjects as ct}from"./packages/core/src/select.js";import{resetProjects as lt,resetToolchain as ut}from"./packages/core/src/reset.js";import{runSync as dt}from"./packages/core/src/sync.js";import{vscodeSyncTask as ft}from"./packages/core/src/vscode.js";import{runWatch as pt}from"./packages/core/src/watch.js";import{src_exports as mt}from"./packages/core/src/index.js";import{src_exports as ht}from"./packages/tsconfig/src/index.js";import{src_exports as gt}from"./packages/project/src/index.js";import{src_exports as _t}from"./packages/tsdown/src/index.js";import{defaultSyncTasks as vt}from"./sync.js";export{je as CONFIG_FILE_NAMES,ae as CONFIG_SECTION_DESCRIPTIONS,oe as CONFIG_SECTION_SCHEMAS,se as CONFIG_TYPE_SCHEMAS,He as DBX_GITIGNORE_BLOCK,Je as IGNORED_DIRS,p as LOG_LEVELS,tt as MANIFEST_DIR,nt as MANIFEST_FILE,e as TOOLCHAIN_PACKAGE,Q as applyReplacements,$ as applyReplacementsDeep,O as asString,ze as biome,ce as biomeConfigSchema,Ye as buildProjectGraph,k as camelCase,A as camelCaseId,j as capitalize,Be as changelog,le as changelogConfigSchema,ue as changelogVersioningConfigSchema,de as changelogVersioningSchema,fe as changelogVersioningTargetSchema,pe as changelogWorkflowsConfigSchema,Ve as config,m as configureLogger,M as constantCase,mt as core,h as createLogger,ee as createReplacer,me as dbxConfigSchema,r as deepMerge,vt as defaultSyncTasks,Me as defineConfig,te as defineReplacements,Xe as detectPackageManager,We as detectProjectType,Ue as ensureDbxGitignore,N as ensureLeadingSlash,P as ensureSlashes,F as ensureTrailingSlash,ne as extractTokens,Ke as findConfigFile,t as findOwnCliEntry,I as formatCliFlag,g as getLogOverrides,_ as getLogger,L as hasText,re as hasUnresolvedTokens,R as indent,z as isLocalhost,v as isLogLevel,i as isPlainObject,B as kebabCase,T as killProcessTree,qe as loadToolchainConfig,n as localToolchainVersion,y as logger,he as loggerConfigSchema,a as mapValues,c as mergeJsonAt,b as normalizeLogLevel,Ze as orderProjects,V as pascalCase,gt as project,ge as projectConfigSchema,Qe as projectGraphPath,_e as projectTypeSchema,w as providerActions,at as providerRegistryPath,ve as providersConfigSchema,l as readJsonAt,u as readJsonFile,rt as readManifest,$e as readProjectGraph,ot as readProviderRegistry,H as removeDoubleSlashes,U as removeLeadingSlash,W as removeTrailingSlash,Ne as repoSlugFromUrl,lt as resetProjects,ut as resetToolchain,Ge as resolveProjectType,o as resolveSort,Pe as resolveTokens,E as run,dt as runSync,pt as runWatch,G as sanitizeSlashes,K as sanitizeText,Fe as sectionConfig,Ie as sectionEnabled,ct as selectProjects,x as setLogConfig,S as setLogOverrides,Re as shared,q as snakeCase,s as sort,D as spawnCross,J as str,C as stripAnsi,Y as stripControlChars,X as stripEscapeArtifacts,ye as templateKindSchema,be as templateSourceSchema,xe as templateSourceTypeSchema,Se as templatesConfigSchema,Z as titleCase,d as toJson,Le as toYaml,ie as tokenPattern,Ce as toolchainConfigSchema,ht as tsconfig,we as tsconfigConfigSchema,_t as tsdown,Te as viteConfigSchema,ft as vscodeSyncTask,Ee as watchConfigSchema,De as workflowConfigSchema,Oe as workflowSettingSchema,ke as workflowStepSchema,Ae as workflowStepsConfigSchema,f as writeJsonFile,it as writeManifest,et as writeProjectGraph,st as writeProviderRegistry};
package/dist/package.js CHANGED
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;var e=`1.6.1`;export{e as version};
1
+ import"node:path";import"node:url";import.meta.url;var e=`1.7.8`;export{e as version};
@@ -1,5 +1,5 @@
1
- import"node:path";import"node:url";import.meta.url;import{logger as e}from"../../../shared/src/logger.js";import"../../../shared/src/index.js";import{readFileSync as t,writeFileSync as n}from"node:fs";const r={feat:`New features`,fix:`Bug fixes`,refactor:`Refactors`,docs:`Documentation`,style:`Styles`,chore:`Chores`,test:`Tests`,perf:`Performance`,build:`Build system`,ci:`CI`,revert:`Reverts`,breaking:`Breaking changes`},i=[`breaking`,`feat`,`fix`,`perf`,`refactor`,`docs`,`style`,`test`,`build`,`ci`,`chore`,`revert`];function a(e){return r[e]??r[e.toLowerCase()]??`Other changes`}function o(e){let t=/^([a-zA-Z][a-zA-Z0-9]*)(\(([^)]*)\))?(!)?:\s*(.*)$/.exec(e);return t?{type:t[1].toLowerCase(),scope:t[3]?.trim()||void 0,breaking:!!t[4],rest:t[5]??``}:{type:`chore`,breaking:!1,rest:e}}function s(e){let t=/* @__PURE__ */ new Map;for(let n of e){let{parsed:e}=n,r=t.get(e.type)??{title:a(e.type),ungrouped:[],scopes:/* @__PURE__ */ new Map};if(e.scope){let t=r.scopes.get(e.scope)??[];t.push(n),r.scopes.set(e.scope,t)}else r.ungrouped.push(n);t.set(e.type,r)}return[...t.entries()].sort((e,t)=>{let n=i.indexOf(e[0]),r=i.indexOf(t[0]);return(n===-1?i.length:n)-(r===-1?i.length:r)}).map(([,e])=>e)}function c(e){if(e.length===0)return`- No description provided.`;let t=[];for(let n of e){t.push(`### ${n.title}`);for(let e of n.ungrouped)t.push(e.text),t.push(...l(e.bodyParagraphs));for(let[e,r]of n.scopes){t.push(`#### ${u(e)}`);for(let e of r)t.push(e.text),t.push(...l(e.bodyParagraphs))}}return t.join(`
2
- `)}function l(e){let t=[];for(let n of e){let[e,...r]=n;e&&(t.push(` - ${e}`),t.push(...r.map(e=>` ${e}`)))}return t}function u(e){return e.charAt(0).toUpperCase()+e.slice(1)}function d(e){return e.length>0?e.charAt(0).toUpperCase()+e.slice(1):e}function f(e){let t=e.lastIndexOf(`([#`);if(t===-1)return{main:e,inline:``};let n=e.slice(t),r=/^(\(\[#[^\]]+\]\([^)]*\) by [^)]*\)\)?)(?:\(fixes [^)]*\)\)?)?/.exec(n);if(!r)return{main:e,inline:``};let i=r[0]??``;return{main:e.slice(0,t)+i,inline:e.slice(t+i.length).trim()}}function p(e){let t=[],n=[];for(let r of e.split(`
3
- `)){let e=r.trim();if(!e){n.length>0&&(t.push(n),n=[]);continue}if(e.startsWith(`-`)||e.startsWith(`*`)||/^[0-9]+[.)]/.test(e)||!e.replace(/(?:close[sd]?|fixe?s|fixed|resolves?|resolved)\b\s*:?\s*#\d+\s*[,;]?\s*/gi,``).trim())continue;let i=/^(BREAKING CHANGE|Reviewed-by|Signed-off-by|Co-authored-by|Acked-by|Co-developed-by|Helped-by|Reported-by|Suggested-by|Tested-by|Cc):\s+(.+)$/i.exec(e);i&&!/^(http|https)\b/.test(e)?(n.length>0&&(t.push(n),n=[]),t.push([`**${(i[1]??``).trim()}:** ${(i[2]??``).trim()}`])):n.push(e)}return n.length>0&&t.push(n),t}function m(e,t){return`https://github.com/${e}/commit/${t}`}function h(e,t){return`https://github.com/${e}/issues/${t}`}function g(e,t){return e.replace(/\[(#[0-9a-fA-F]{6,40})\]\(([^)]*)\)/g,(e,n)=>{let r=n.replace(`#`,``).slice(0,7);return`[#${r}](${m(t,r)})`}).replace(/(^|[^\w[])#([0-9a-fA-F]{7,40})(?![0-9a-fA-F])(?=[)\].,;:\s]|$)/g,(e,n,r)=>{let i=r.slice(0,7);return`${n}[#${i}](${m(t,i)})`})}function _(e,t){return e.replace(/\[#(\d+)(?=[ \]])(?:[^\]]*)\]\([^)]*\)/g,(e,n)=>`[#${n}](${h(t,n)})`).replace(/(^|[^\w[])#(\d+)(?=[)\].,;:\s]|$)/g,(e,n,r)=>`${n}[#${r}](${h(t,r)})`)}function v(e,t){if(!t)return e;let n=g(e,t);return n=_(n,t),n}function y(r,i){if(!i)return;let a=t(r,`utf8`),o=a.split(`
4
- `).map(e=>v(e,i)).join(`
5
- `);o!==a&&(n(r,o,`utf8`),e.info(` formatted ${r}`))}export{d as capitalize,p as formatBody,y as formatChangelogFile,v as formatLine,s as groupItems,o as parseCcSubject,c as renderGroups,a as ruleTitle,f as splitInlineDescription};
1
+ import"node:path";import"node:url";import.meta.url;import{logger as e}from"../../../shared/src/logger.js";import{sanitizeText as t}from"../../../shared/src/string-utils.js";import"../../../shared/src/index.js";import{readFileSync as n,writeFileSync as r}from"node:fs";const i={feat:`New features`,fix:`Bug fixes`,refactor:`Refactors`,docs:`Documentation`,style:`Styles`,chore:`Chores`,test:`Tests`,perf:`Performance`,build:`Build system`,ci:`CI`,revert:`Reverts`,breaking:`Breaking changes`},a=[`breaking`,`feat`,`fix`,`perf`,`refactor`,`docs`,`style`,`test`,`build`,`ci`,`chore`,`revert`];function o(e){return i[e]??i[e.toLowerCase()]??`Other changes`}function s(e){let t=/^([a-zA-Z][a-zA-Z0-9]*)(\(([^)]*)\))?(!)?:\s*(.*)$/.exec(e);return t?{type:t[1].toLowerCase(),scope:t[3]?.trim()||void 0,breaking:!!t[4],rest:t[5]??``}:{type:`chore`,breaking:!1,rest:e}}function c(e){let t=/* @__PURE__ */ new Map;for(let n of e){let{parsed:e}=n,r=t.get(e.type)??{title:o(e.type),ungrouped:[],scopes:/* @__PURE__ */ new Map};if(e.scope){let t=r.scopes.get(e.scope)??[];t.push(n),r.scopes.set(e.scope,t)}else r.ungrouped.push(n);t.set(e.type,r)}return[...t.entries()].sort((e,t)=>{let n=a.indexOf(e[0]),r=a.indexOf(t[0]);return(n===-1?a.length:n)-(r===-1?a.length:r)}).map(([,e])=>e)}function l(e){if(e.length===0)return`- No description provided.`;let t=[];for(let n of e){t.push(`### ${n.title}`);for(let e of n.ungrouped)t.push(e.text),t.push(...u(e.bodyParagraphs));for(let[e,r]of n.scopes){t.push(`#### ${d(e)}`);for(let e of r)t.push(e.text),t.push(...u(e.bodyParagraphs))}}return t.join(`
2
+ `)}function u(e){let t=[];for(let n of e){let[e,...r]=n;e&&(t.push(` - ${e}`),t.push(...r.map(e=>` ${e}`)))}return t}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}function f(e){return e.length>0?e.charAt(0).toUpperCase()+e.slice(1):e}function p(e){let t=e.lastIndexOf(`([#`);if(t===-1)return{main:e,inline:``};let n=e.slice(t),r=/^(\(\[#[^\]]+\]\([^)]*\) by [^)]*\)\)?)(?:\(fixes [^)]*\)\)?)?/.exec(n);if(!r)return{main:e,inline:``};let i=r[0]??``;return{main:e.slice(0,t)+i,inline:e.slice(t+i.length).trim()}}function m(e){let n=[],r=[];for(let i of e.split(`
3
+ `)){let e=t(i.trim());if(!e){r.length>0&&(n.push(r),r=[]);continue}if(e.startsWith(`-`)||e.startsWith(`*`)||/^[0-9]+[.)]/.test(e)||!e.replace(/(?:close[sd]?|fixe?s|fixed|resolves?|resolved)\b\s*:?\s*#\d+\s*[,;]?\s*/gi,``).trim())continue;let a=/^(BREAKING CHANGE|Reviewed-by|Signed-off-by|Co-authored-by|Acked-by|Co-developed-by|Helped-by|Reported-by|Suggested-by|Tested-by|Cc):\s+(.+)$/i.exec(e);a&&!/^(http|https)\b/.test(e)?(r.length>0&&(n.push(r),r=[]),n.push([`**${(a[1]??``).trim()}:** ${(a[2]??``).trim()}`])):r.push(e)}return r.length>0&&n.push(r),n}function h(e,t){return`https://github.com/${e}/commit/${t}`}function g(e,t){return`https://github.com/${e}/issues/${t}`}function _(e,t){return e.replace(/\[(#[0-9a-fA-F]{6,40})\]\(([^)]*)\)/g,(e,n)=>{let r=n.replace(`#`,``).slice(0,7);return`[#${r}](${h(t,r)})`}).replace(/(^|[^\w[])#([0-9a-fA-F]{7,40})(?![0-9a-fA-F])(?=[)\].,;:\s]|$)/g,(e,n,r)=>{let i=r.slice(0,7);return`${n}[#${i}](${h(t,i)})`})}function v(e,t){return e.replace(/\[#(\d+)(?=[ \]])(?:[^\]]*)\]\([^)]*\)/g,(e,n)=>`[#${n}](${g(t,n)})`).replace(/(^|[^\w[])#(\d+)(?=[)\].,;:\s]|$)/g,(e,n,r)=>`${n}[#${r}](${g(t,r)})`)}function y(e,t){if(!t)return e;let n=_(e,t);return n=v(n,t),n}function b(t,i){if(!i)return;let a=n(t,`utf8`),o=a.split(`
4
+ `).map(e=>y(e,i)).join(`
5
+ `);o!==a&&(r(t,o,`utf8`),e.info(` formatted ${t}`))}export{f as capitalize,m as formatBody,b as formatChangelogFile,y as formatLine,c as groupItems,s as parseCcSubject,l as renderGroups,o as ruleTitle,p as splitInlineDescription};
@@ -1 +1 @@
1
- import{default as e}from"node:path";import"node:url";import.meta.url;import t from"node:fs";import{execFileSync as n}from"node:child_process";function r(e,t){let r=[`log`,`--no-merges`,`--pretty=format:%H%x1f%s%x1f%b%x1f%an%x1f%ae%x1e`,e];return t&&r.push(`--`,t),n(`git`,r,{encoding:`utf8`,stdio:[`ignore`,`pipe`,`pipe`]}).split(``).filter(e=>e.length>0).map(e=>{let[t,n,r,i,a]=e.split(``);return{hash:t.trim(),subject:(n??``).trim(),body:(r??``).trim(),author:(i??``).trim(),authorEmail:(a??``).trim()}}).filter(e=>e.subject.length>0)}function i(e){let t=e.match(/(?:github\.com[/:])([^/]+)\/([^/.]+?)(?:\.git)?$/);if(t?.[1]&&t[2])return`${t[1]}/${t[2]}`}function a(){try{let e=i(n(`git`,[`remote`,`get-url`,`origin`],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim());if(e)return e}catch{}try{let n=t.readFileSync(e.join(process.cwd(),`package.json`),`utf8`),r=JSON.parse(n),a=typeof r.repository==`string`?r.repository:r.repository?.url;if(a)return i(a)}catch{}}let o;function s(){if(o!==void 0)return o;try{n(`gh`,[`auth`,`status`],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`pipe`]}),o=!0}catch{o=!1}return o}const c=/* @__PURE__ */ new Map;function l(e,t,r){if(!s())return;let i=`repos/${e}${t}::${r}`;if(c.has(i))return c.get(i);let a;try{let i=n(`gh`,[`api`,`repos/${e}${t}`,`--jq`,r],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`pipe`]}).trim();a=i&&i!==`null`?i:void 0}catch{a=void 0}return c.set(i,a),a}function u(e){return/^(\d+)\+([^@]+)@users\.noreply\.github\.com$/.exec(e.trim())?.[2]}function d(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function f(e,t){let n;t&&(n=l(t,`/commits/${e.hash}/pulls`,`.[0].user.login`),n||=l(t,`/commits/${e.hash}`,`.author.login`)),n||=u(e.authorEmail);let r=n??e.author;return d(r)&&(r=u(r)??r.split(`@`)[0]??r),{name:r,url:n?`https://github.com/${n}`:void 0}}function p(e){return e.url?`[${e.name}](${e.url})`:e.name}function m(e){let t=/* @__PURE__ */ new Set;for(let n of e.matchAll(/\b(?:close[sd]?|fixe?s|fixed|resolves?|resolved)\b\s*:?\s*#(\d+)/gi)){let e=Number(n[1]);Number.isInteger(e)&&t.add(e)}return[...t]}function h(e,t){let n={number:t},r=l(e,`/issues/${t}`,`[.title,.html_url]`);if(r)try{let e=JSON.parse(r);n.title=e[0]||void 0,n.url=e[1]||void 0}catch{}return n}function g(e,t){let n=m(`${e.subject}\n${e.body}`);return n.length===0?[]:t?n.map(e=>h(t,e)):n.map(e=>({number:e}))}function _(e){return e.length===0?``:` (fixes ${e.map(e=>e.url&&e.title?`[#${e.number} ${e.title}](${e.url})`:e.url?`[#${e.number}](${e.url})`:`#${e.number}`).join(`, `)})`}function v(e){return/\[(#[0-9a-fA-F]{6,40})\]\([^)]*\)/.exec(e)?.[1]?.replace(`#`,``)}function y(e){try{return n(`git`,[`log`,`-1`,`--format=%aI`,e],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim()}catch{return}}function b(e){for(let t of[`v${e}`,e])try{let e=n(`git`,[`log`,`-1`,`--format=%aI`,t],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim();if(e)return e}catch{}}function x(e,t){let n=b(e);if(n)return new Date(n);for(let e of t){let t=v(e);if(t){let e=y(t);if(e)return new Date(e)}}}let S;function C(){if(S)return S;let e=/* @__PURE__ */ new Map;try{let t=n(`git`,[`log`,`--no-merges`,`--all`,`--format=%H%x1f%s%x1f%b%x1e`],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`],maxBuffer:134217728});for(let n of t.split(``)){if(!n.trim())continue;let[t=``,r=``,i=``]=n.split(``);if(!t)continue;let a={subject:r.trim(),body:i.trim()};e.set(t.trim(),a),e.set(t.trim().slice(0,7),a)}}catch{}return S=e,e}function w(e){return C().get(e)}function T(e){let t=`patch`;for(let n of e){let e=`${n.subject}\n${n.body}`;/\bBREAKING CHANGE\b/.test(e)||/^[a-zA-Z]+(\([^)]*\))?!:/.test(n.subject)?t=`major`:t!==`major`&&/^feat(\([^)]*\))?:/i.test(n.subject)&&(t=`minor`)}return t}export{v as bulletHash,T as deriveBump,x as deriveVersionDate,w as readCommit,r as readCommits,g as recordIssues,p as renderAuthor,_ as renderIssues,a as repoSlug,f as resolveAuthorInfo};
1
+ import{default as e}from"node:path";import"node:url";import.meta.url;import{sanitizeText as t}from"../../../shared/src/string-utils.js";import"../../../shared/src/index.js";import n from"node:fs";import{execFileSync as r}from"node:child_process";function i(e,n){let i=[`log`,`--no-merges`,`--pretty=format:%H%x1f%s%x1f%b%x1f%an%x1f%ae%x1e`,e];return n&&i.push(`--`,n),r(`git`,i,{encoding:`utf8`,stdio:[`ignore`,`pipe`,`pipe`]}).split(``).filter(e=>e.length>0).map(e=>{let[n,r,i,a,o]=e.split(``);return{hash:n.trim(),subject:t((r??``).trim()),body:t((i??``).trim()),author:(a??``).trim(),authorEmail:(o??``).trim()}}).filter(e=>e.subject.length>0)}function a(e){let t=e.match(/(?:github\.com[/:])([^/]+)\/([^/.]+?)(?:\.git)?$/);if(t?.[1]&&t[2])return`${t[1]}/${t[2]}`}function o(){try{let e=a(r(`git`,[`remote`,`get-url`,`origin`],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim());if(e)return e}catch{}try{let t=n.readFileSync(e.join(process.cwd(),`package.json`),`utf8`),r=JSON.parse(t),i=typeof r.repository==`string`?r.repository:r.repository?.url;if(i)return a(i)}catch{}}let s;function c(){if(s!==void 0)return s;try{r(`gh`,[`auth`,`status`],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`pipe`]}),s=!0}catch{s=!1}return s}const l=/* @__PURE__ */ new Map;function u(e,t,n){if(!c())return;let i=`repos/${e}${t}::${n}`;if(l.has(i))return l.get(i);let a;try{let i=r(`gh`,[`api`,`repos/${e}${t}`,`--jq`,n],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`pipe`]}).trim();a=i&&i!==`null`?i:void 0}catch{a=void 0}return l.set(i,a),a}function d(e){return/^(\d+)\+([^@]+)@users\.noreply\.github\.com$/.exec(e.trim())?.[2]}function f(e){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function p(e,t){let n;t&&(n=u(t,`/commits/${e.hash}/pulls`,`.[0].user.login`),n||=u(t,`/commits/${e.hash}`,`.author.login`)),n||=d(e.authorEmail);let r=n??e.author;return f(r)&&(r=d(r)??r.split(`@`)[0]??r),{name:r,url:n?`https://github.com/${n}`:void 0}}function m(e){return e.url?`[${e.name}](${e.url})`:e.name}function h(e){let t=/* @__PURE__ */ new Set;for(let n of e.matchAll(/\b(?:close[sd]?|fixe?s|fixed|resolves?|resolved)\b\s*:?\s*#(\d+)/gi)){let e=Number(n[1]);Number.isInteger(e)&&t.add(e)}return[...t]}function g(e,t){let n={number:t},r=u(e,`/issues/${t}`,`[.title,.html_url]`);if(r)try{let e=JSON.parse(r);n.title=e[0]||void 0,n.url=e[1]||void 0}catch{}return n}function _(e,t){let n=h(`${e.subject}\n${e.body}`);return n.length===0?[]:t?n.map(e=>g(t,e)):n.map(e=>({number:e}))}function v(e){return e.length===0?``:` (fixes ${e.map(e=>e.url&&e.title?`[#${e.number} ${e.title}](${e.url})`:e.url?`[#${e.number}](${e.url})`:`#${e.number}`).join(`, `)})`}function y(e){return/\[(#[0-9a-fA-F]{6,40})\]\([^)]*\)/.exec(e)?.[1]?.replace(`#`,``)}function b(e){try{return r(`git`,[`log`,`-1`,`--format=%aI`,e],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim()}catch{return}}function x(e){for(let t of[`v${e}`,e])try{let e=r(`git`,[`log`,`-1`,`--format=%aI`,t],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`]}).trim();if(e)return e}catch{}}function S(e,t){let n=x(e);if(n)return new Date(n);for(let e of t){let t=y(e);if(t){let e=b(t);if(e)return new Date(e)}}}let C;function w(){if(C)return C;let e=/* @__PURE__ */ new Map;try{let t=r(`git`,[`log`,`--no-merges`,`--all`,`--format=%H%x1f%s%x1f%b%x1e`],{encoding:`utf8`,stdio:[`ignore`,`pipe`,`ignore`],maxBuffer:134217728});for(let n of t.split(``)){if(!n.trim())continue;let[t=``,r=``,i=``]=n.split(``);if(!t)continue;let a={subject:r.trim(),body:i.trim()};e.set(t.trim(),a),e.set(t.trim().slice(0,7),a)}}catch{}return C=e,e}function T(e){return w().get(e)}function E(e){let t=`patch`;for(let n of e){let e=`${n.subject}\n${n.body}`;/\bBREAKING CHANGE\b/.test(e)||/^[a-zA-Z]+(\([^)]*\))?!:/.test(n.subject)?t=`major`:t!==`major`&&/^feat(\([^)]*\))?:/i.test(n.subject)&&(t=`minor`)}return t}export{y as bulletHash,E as deriveBump,S as deriveVersionDate,T as readCommit,i as readCommits,_ as recordIssues,m as renderAuthor,v as renderIssues,o as repoSlug,p as resolveAuthorInfo};
@@ -1,14 +1,14 @@
1
- import{default as e}from"node:path";import"node:url";import.meta.url;import{titleCase as t}from"../../../shared/src/string-utils.js";import"../../../shared/src/index.js";import{splitBaseSchema as n,zodToJsonSchema as r}from"../schema.js";import{collectEnvVars as i}from"../collect.js";import{cliFlagLabel as a}from"./cli.js";import o from"node:fs";import{z as s}from"zod";function c(e,t,n,r){let i=[`${n} ${t}`];return e.type===`object`&&e.properties?(i.push(...l(e,`${n}#`,r)),i):(e.env&&i.push(`- **Env**: \`${e.env}\``),i.push(`- **Type**: \`${e.tsType??(Array.isArray(e.type)?e.type.join(` | `):e.type)??`any`}\``),e.default!==void 0&&i.push(`- **Default**: \`${JSON.stringify(e.default)}\``),e.description&&i.push(``,e.description),i)}function l(e,t,n){let r=[];for(let[i,o]of Object.entries(e.properties??{})){let e=n.useFlags&&o.env?a(o.env,n):`\`${i}\``;r.push(``,...c(o,e,t,n))}return r}function u(e,r,i={}){let a=i.outline??[2,3,4],o={useFlags:e===(i.cliScope??`cli`),baseGroup:i.baseGroup??`base`,...i.envPrefix?{envPrefix:i.envPrefix}:{},...i.shortFlags?{shortFlags:i.shortFlags}:{}},{base:s,groups:c}=n(r,o.baseGroup),u=[`---`,`title: ${t(e)} Configuration`,`outline: ${JSON.stringify(a)}`,`---`,``,`# ${t(e)} Configuration`,``,`Every setting below is configured through an environment variable.`,``,`## Base`,``,...l(s,`###`,o)];for(let[e,n]of Object.entries(c.properties??{}))u.push(``,`## ${t(e)}`,``,...l(n,`###`,o));return`${u.join(`
2
- `).trim()}\n`}function d(e){return e===void 0?`—`:Array.isArray(e)?`\`${e.join(`,`)}\``:typeof e==`object`?`\`${JSON.stringify(e)}\``:`\`${String(e)}\``}function f(e,t,n){for(let r of Object.values(e.properties??{})){let e=r;if(e.type===`object`&&e.properties)f(r,t,n);else if(e.env){let r=e.envDefault??e.default;n.push({name:e.env,scope:t,...e.description?{description:e.description}:{},...r===void 0?{}:{default:r},...e.required===!0?{required:!0}:{},...e.secret?{secret:!0}:{},...e.public?{public:!0}:{}})}}}function p(e,t={}){let a=t.outline??[2,3,4],o=t.baseGroup??`base`,s=t.labels??{},c=[],l=[];for(let[t,i]of Object.entries(e)){let e=i.jsonSchema??r(i.zodSchema);f(n(e,o).base,t,l)}for(let n of i(e,t.envPrefix??`APP_`,{envPathOf:t.envPathOf}))n.required&&c.push({name:n.name,scope:n.scope,...n.description?{description:n.description}:{},...n.default===void 0?{}:{default:n.default}});let u=e=>[`| Variable | Default | Description |`,`| -------- | ------- | ----------- |`,...e.map(e=>`| \`${e.name}\` | ${d(e.default)} | ${(e.description??``).replace(/\n/g,` `).replace(/\|/g,`\\|`)} |`)].join(`
3
- `),p=s.title??`Environment variables`,m=t.intro??`Environment variables are prefixed with \`${t.envPrefix??`APP_`}\`.
1
+ import{default as e}from"node:path";import"node:url";import.meta.url;import{sanitizeText as t,titleCase as n}from"../../../shared/src/string-utils.js";import"../../../shared/src/index.js";import{splitBaseSchema as r,zodToJsonSchema as i}from"../schema.js";import{collectEnvVars as a}from"../collect.js";import{cliFlagLabel as o}from"./cli.js";import s from"node:fs";import{z as c}from"zod";function l(e,n,r,i){let a=[`${r} ${n}`];return e.type===`object`&&e.properties?(a.push(...u(e,`${r}#`,i)),a):(e.env&&a.push(`- **Env**: \`${e.env}\``),a.push(`- **Type**: \`${e.tsType??(Array.isArray(e.type)?e.type.join(` | `):e.type)??`any`}\``),e.default!==void 0&&a.push(`- **Default**: \`${JSON.stringify(e.default)}\``),e.description&&a.push(``,t(e.description)),a)}function u(e,t,n){let r=[];for(let[i,a]of Object.entries(e.properties??{})){let e=n.useFlags&&a.env?o(a.env,n):`\`${i}\``;r.push(``,...l(a,e,t,n))}return r}function d(e,t,i={}){let a=i.outline??[2,3,4],o={useFlags:e===(i.cliScope??`cli`),baseGroup:i.baseGroup??`base`,...i.envPrefix?{envPrefix:i.envPrefix}:{},...i.shortFlags?{shortFlags:i.shortFlags}:{}},{base:s,groups:c}=r(t,o.baseGroup),l=[`---`,`title: ${n(e)} Configuration`,`outline: ${JSON.stringify(a)}`,`---`,``,`# ${n(e)} Configuration`,``,`Every setting below is configured through an environment variable.`,``,`## Base`,``,...u(s,`###`,o)];for(let[e,t]of Object.entries(c.properties??{}))l.push(``,`## ${n(e)}`,``,...u(t,`###`,o));return`${l.join(`
2
+ `).trim()}\n`}function f(e){return e===void 0?`—`:Array.isArray(e)?`\`${e.join(`,`)}\``:typeof e==`object`?`\`${JSON.stringify(e)}\``:`\`${String(e)}\``}function p(e,t,n){for(let r of Object.values(e.properties??{})){let e=r;if(e.type===`object`&&e.properties)p(r,t,n);else if(e.env){let r=e.envDefault??e.default;n.push({name:e.env,scope:t,...e.description?{description:e.description}:{},...r===void 0?{}:{default:r},...e.required===!0?{required:!0}:{},...e.secret?{secret:!0}:{},...e.public?{public:!0}:{}})}}}function m(e,t={}){let n=t.outline??[2,3,4],o=t.baseGroup??`base`,s=t.labels??{},c=[],l=[];for(let[t,n]of Object.entries(e)){let e=n.jsonSchema??i(n.zodSchema);p(r(e,o).base,t,l)}for(let n of a(e,t.envPrefix??`APP_`,{envPathOf:t.envPathOf}))n.required&&c.push({name:n.name,scope:n.scope,...n.description?{description:n.description}:{},...n.default===void 0?{}:{default:n.default}});let u=e=>[`| Variable | Default | Description |`,`| -------- | ------- | ----------- |`,...e.map(e=>`| \`${e.name}\` | ${f(e.default)} | ${(e.description??``).replace(/\n/g,` `).replace(/\|/g,`\\|`)} |`)].join(`
3
+ `),d=s.title??`Environment variables`,m=t.intro??`Environment variables are prefixed with \`${t.envPrefix??`APP_`}\`.
4
4
  The underscore is a path separator, so every config value has an environment
5
5
  variable equivalent.`,h=t.requiredNote??`These variables have no safe default and **must** be set:`,g=t.coreNote??`The core (base) config values:`,_=t.references&&t.references.length?`\n## References\n\n${t.references.map(e=>`- [${e.label}](${e.href})`).join(`
6
6
  `)}\n`:``;return`---
7
- title: ${p}
8
- outline: ${JSON.stringify(a)}
7
+ title: ${d}
8
+ outline: ${JSON.stringify(n)}
9
9
  ---
10
10
 
11
- # ${p}
11
+ # ${d}
12
12
 
13
13
  ${m}
14
14
 
@@ -23,5 +23,5 @@ ${u(c)}
23
23
  ${g}
24
24
 
25
25
  ${u(l)}
26
- ${_}`}function m(t,n){let i=n.outline??[2,3,4],a=Object.entries(t).map(([t,a])=>[e.resolve(n.outDir,`${t}.md`),u(t,a.jsonSchema??r(a.zodSchema),{...n,outline:i})]);a.push([e.resolve(n.outDir,n.indexFilename??`index.md`),p(t,{...n,outline:i})]);for(let[t,n]of a)o.mkdirSync(e.dirname(t),{recursive:!0}),o.writeFileSync(t,n,`utf-8`);return a.map(([e])=>e)}function h(e){return e.$ref?e.$ref.split(`/`).pop()??void 0:void 0}function g(e,t){let n=h(e);return n&&t[n]?t[n]:e}function _(e){return typeof e==`string`?`'${e}'`:String(e)}function v(e,t){if(e.$ref){let n=g(e,t);return n.properties||n.anyOf||n.oneOf?h(e):v(n,t)}if(e.const!==void 0)return _(e.const);if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum.map(_).join(` | `);let n=e.anyOf??e.oneOf;if(n&&n.length>0)return n.map(e=>v(e,t)).join(` | `);if(e.properties)return`object`;let r=Array.isArray(e.type)?e.type:e.type?[e.type]:[];return r.includes(`array`)?`Array<${v(e.items??{},t)}>`:r.includes(`object`)?`Record<string, unknown>`:r.length===0?`unknown`:r.map(e=>e===`integer`?`number`:e).join(` | `)}function y(e,t,n){let r=h(e);if(r){if(n.has(r))return{properties:{},required:[]};n.add(r)}let i=g(e,t);if(i.properties)return{properties:i.properties,required:i.required??[]};let a=i.anyOf??i.oneOf;if(a){let e={},r=/* @__PURE__ */ new Set;for(let i of a){let a=y(i,t,n);Object.assign(e,a.properties);for(let e of a.required)r.add(e)}return{properties:e,required:[...r]}}return(Array.isArray(i.type)?i.type:i.type?[i.type]:[]).includes(`array`)&&i.items?y(i.items,t,n):{properties:{},required:[]}}function b(e,t,n,r,i,a){let o=g(t,r),s=[`${n} \`${e}\``];s.push(`- **Type**: \`${v(t,r)}\``),a&&s.push(`- **Required**`);let c=t.default??o.default;c!==void 0&&s.push(`- **Default**: \`${JSON.stringify(c)}\``);let l=t.description??o.description;l&&s.push(``,l);let u=y(t,r,i);for(let[e,t]of Object.entries(u.properties))s.push(``,...b(e,t,`${n}#`,r,i,u.required.includes(e)));return s}function x(e,t,n,r){let i=[],a=e.required??[];for(let[o,s]of Object.entries(e.properties??{}))i.push(``,...b(o,s,t,n,r,a.includes(o)));return i}function S(e,t={}){let n=t.title??`Configuration`,r=[`---`,`title: ${n}`,`outline: ${JSON.stringify(t.outline??[2,3,4])}`,`---`,``,`# ${n}`,``];t.intro&&r.push(t.intro,``);for(let t of e){r.push(`## \`${t.key}\``,``),t.description&&r.push(t.description,``);let e=s.toJSONSchema(t.schema,{target:`draft-2020-12`}),n=e.$defs??{},i=e.$ref?g(e,n):e;r.push(...x(i,`###`,n,/* @__PURE__ */ new Set),``)}return`${r.join(`
27
- `).trim()}\n`}export{m as generateConfigMarkdown,S as renderConfigFileMarkdown,p as renderConfigIndex,u as renderScopeMarkdown};
26
+ ${_}`}function h(t,n){let r=n.outline??[2,3,4],a=Object.entries(t).map(([t,a])=>[e.resolve(n.outDir,`${t}.md`),d(t,a.jsonSchema??i(a.zodSchema),{...n,outline:r})]);a.push([e.resolve(n.outDir,n.indexFilename??`index.md`),m(t,{...n,outline:r})]);for(let[t,n]of a)s.mkdirSync(e.dirname(t),{recursive:!0}),s.writeFileSync(t,n,`utf-8`);return a.map(([e])=>e)}function g(e){return e.$ref?e.$ref.split(`/`).pop()??void 0:void 0}function _(e,t){let n=g(e);return n&&t[n]?t[n]:e}function v(e){return typeof e==`string`?`'${e}'`:String(e)}function y(e,t){if(e.$ref){let n=_(e,t);return n.properties||n.anyOf||n.oneOf?g(e):y(n,t)}if(e.const!==void 0)return v(e.const);if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum.map(v).join(` | `);let n=e.anyOf??e.oneOf;if(n&&n.length>0)return n.map(e=>y(e,t)).join(` | `);if(e.properties)return`object`;let r=Array.isArray(e.type)?e.type:e.type?[e.type]:[];return r.includes(`array`)?`Array<${y(e.items??{},t)}>`:r.includes(`object`)?`Record<string, unknown>`:r.length===0?`unknown`:r.map(e=>e===`integer`?`number`:e).join(` | `)}function b(e,t,n){let r=g(e);if(r){if(n.has(r))return{properties:{},required:[]};n.add(r)}let i=_(e,t);if(i.properties)return{properties:i.properties,required:i.required??[]};let a=i.anyOf??i.oneOf;if(a){let e={},r=/* @__PURE__ */ new Set;for(let i of a){let a=b(i,t,n);Object.assign(e,a.properties);for(let e of a.required)r.add(e)}return{properties:e,required:[...r]}}return(Array.isArray(i.type)?i.type:i.type?[i.type]:[]).includes(`array`)&&i.items?b(i.items,t,n):{properties:{},required:[]}}function x(e,n,r,i,a,o){let s=_(n,i),c=[`${r} \`${e}\``];c.push(`- **Type**: \`${y(n,i)}\``),o&&c.push(`- **Required**`);let l=n.default??s.default;l!==void 0&&c.push(`- **Default**: \`${JSON.stringify(l)}\``);let u=t(n.description??s.description??``);u&&c.push(``,u);let d=b(n,i,a),f=r.length<6?`${r}#`:r;for(let[e,t]of Object.entries(d.properties))c.push(``,...x(e,t,f,i,a,d.required.includes(e)));return c}function S(e,t,n,r){let i=[],a=e.required??[];for(let[o,s]of Object.entries(e.properties??{}))i.push(``,...x(o,s,t,n,r,a.includes(o)));return i}function C(e,t={}){let n=t.title??`Configuration`,r=[`---`,`title: ${n}`,`outline: ${JSON.stringify(t.outline??[2,3,4])}`,`---`,``,`# ${n}`,``];t.intro&&r.push(t.intro,``);for(let t of e){r.push(`## \`${t.key}\``,``),t.description&&r.push(t.description,``);let e=c.toJSONSchema(t.schema,{target:`draft-2020-12`}),n=e.$defs??{},i=e.$ref?_(e,n):e;r.push(...S(i,`###`,n,/* @__PURE__ */ new Set),``)}return`${r.join(`
27
+ `).trim()}\n`}export{h as generateConfigMarkdown,C as renderConfigFileMarkdown,m as renderConfigIndex,d as renderScopeMarkdown};
@@ -6,7 +6,7 @@ import { Colors, LOG_LEVELS, LogChannel, LogLevel, Logger, LoggerConfig, LoggerO
6
6
  import { Sortable, deepMerge, isPlainObject, mapValues, resolveSort, sort } from "./object-utils.js";
7
7
  import { ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, providerActions } from "./provider.js";
8
8
  import { RunOptions, SpawnCrossOptions, killProcessTree, run, spawnCross } from "./run.js";
9
- import { asString, camelCase, camelCaseId, capitalize, constantCase, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, formatCliFlag, hasText, indent, isLocalhost, kebabCase, pascalCase, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, sanitizeSlashes, snakeCase, str, titleCase } from "./string-utils.js";
9
+ import { asString, camelCase, camelCaseId, capitalize, constantCase, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, formatCliFlag, hasText, indent, isLocalhost, kebabCase, pascalCase, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, sanitizeSlashes, sanitizeText, snakeCase, str, stripControlChars, stripEscapeArtifacts, titleCase } from "./string-utils.js";
10
10
  import { ReplacementOptions, ReplacementValue, Replacements, Replacer, applyReplacements, applyReplacementsDeep, createReplacer, defineReplacements, extractTokens, hasUnresolvedTokens, tokenPattern } from "./template.js";
11
11
  import { ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowsConfig, DbxConfigSections, ProjectType, ToolchainBiomeConfig, ToolchainChangelogConfig, ToolchainConfigSections, ToolchainLoggerConfig, ToolchainProjectConfig, ToolchainProvidersConfig, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainViteConfig, ToolchainWatchConfig, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig } from "./config-types.js";
12
12
  import { Awaitable, GeneratedFile, JsonValue, PackageJson, ToolchainArgument, ToolchainCommand, ToolchainCommandContext, ToolchainOption } from "./types.js";
@@ -14,7 +14,7 @@ import { CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, CONFIG_TYPE_SCHEMA
14
14
  import { CONFIG_FILE_NAMES, DbxConfig, ManagedFile, SyncContext, SyncSummary, SyncTask, ToolchainConfig, ToolchainHooks, ToolchainSection, defineConfig, repoSlugFromUrl, resolveTokens, sectionConfig, sectionEnabled } from "./toolchain.js";
15
15
  import { YamlValue, toYaml } from "./yaml.js";
16
16
  declare namespace index_d_exports {
17
- export { Awaitable, CONFIG_FILE_NAMES, CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, CONFIG_TYPE_SCHEMAS, ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowsConfig, Colors, DbxConfig, DbxConfigSections, GeneratedFile, JsonValue, LOG_LEVELS, LogChannel, LogLevel, Logger, LoggerConfig, LoggerOptions, ManagedFile, PackageJson, ProjectType, ReplacementOptions, ReplacementValue, Replacements, Replacer, RunOptions, Sortable, SpawnCrossOptions, SyncContext, SyncSummary, SyncTask, TOOLCHAIN_PACKAGE, ToolchainArgument, ToolchainBiomeConfig, ToolchainChangelogConfig, ToolchainCommand, ToolchainCommandContext, ToolchainConfig, ToolchainConfigSections, ToolchainHooks, ToolchainLoggerConfig, ToolchainOption, ToolchainProjectConfig, ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, ToolchainProvidersConfig, ToolchainSection, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainViteConfig, ToolchainWatchConfig, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, YamlValue, applyReplacements, applyReplacementsDeep, asString, biomeConfigSchema, camelCase, camelCaseId, capitalize, changelogConfigSchema, changelogVersioningConfigSchema, changelogVersioningSchema, changelogVersioningTargetSchema, changelogWorkflowsConfigSchema, configureLogger, constantCase, createLogger, createReplacer, dbxConfigSchema, deepMerge, defineConfig, defineReplacements, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, extractTokens, findOwnCliEntry, formatCliFlag, getLogOverrides, getLogger, hasText, hasUnresolvedTokens, indent, isLocalhost, isLogLevel, isPlainObject, kebabCase, killProcessTree, localToolchainVersion, logger, loggerConfigSchema, mapValues, mergeJsonAt, normalizeLogLevel, pascalCase, projectConfigSchema, projectTypeSchema, providerActions, providersConfigSchema, readJsonAt, readJsonFile, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repoSlugFromUrl, resolveSort, resolveTokens, run, sanitizeSlashes, sectionConfig, sectionEnabled, setLogConfig, setLogOverrides, snakeCase, sort, spawnCross, str, stripAnsi, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, titleCase, toJson, toYaml, tokenPattern, toolchainConfigSchema, tsconfigConfigSchema, viteConfigSchema, watchConfigSchema, workflowConfigSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, writeJsonFile };
17
+ export { Awaitable, CONFIG_FILE_NAMES, CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, CONFIG_TYPE_SCHEMAS, ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowsConfig, Colors, DbxConfig, DbxConfigSections, GeneratedFile, JsonValue, LOG_LEVELS, LogChannel, LogLevel, Logger, LoggerConfig, LoggerOptions, ManagedFile, PackageJson, ProjectType, ReplacementOptions, ReplacementValue, Replacements, Replacer, RunOptions, Sortable, SpawnCrossOptions, SyncContext, SyncSummary, SyncTask, TOOLCHAIN_PACKAGE, ToolchainArgument, ToolchainBiomeConfig, ToolchainChangelogConfig, ToolchainCommand, ToolchainCommandContext, ToolchainConfig, ToolchainConfigSections, ToolchainHooks, ToolchainLoggerConfig, ToolchainOption, ToolchainProjectConfig, ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, ToolchainProvidersConfig, ToolchainSection, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainViteConfig, ToolchainWatchConfig, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, YamlValue, applyReplacements, applyReplacementsDeep, asString, biomeConfigSchema, camelCase, camelCaseId, capitalize, changelogConfigSchema, changelogVersioningConfigSchema, changelogVersioningSchema, changelogVersioningTargetSchema, changelogWorkflowsConfigSchema, configureLogger, constantCase, createLogger, createReplacer, dbxConfigSchema, deepMerge, defineConfig, defineReplacements, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, extractTokens, findOwnCliEntry, formatCliFlag, getLogOverrides, getLogger, hasText, hasUnresolvedTokens, indent, isLocalhost, isLogLevel, isPlainObject, kebabCase, killProcessTree, localToolchainVersion, logger, loggerConfigSchema, mapValues, mergeJsonAt, normalizeLogLevel, pascalCase, projectConfigSchema, projectTypeSchema, providerActions, providersConfigSchema, readJsonAt, readJsonFile, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repoSlugFromUrl, resolveSort, resolveTokens, run, sanitizeSlashes, sanitizeText, sectionConfig, sectionEnabled, setLogConfig, setLogOverrides, snakeCase, sort, spawnCross, str, stripAnsi, stripControlChars, stripEscapeArtifacts, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, titleCase, toJson, toYaml, tokenPattern, toolchainConfigSchema, tsconfigConfigSchema, viteConfigSchema, watchConfigSchema, workflowConfigSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, writeJsonFile };
18
18
  }
19
19
  //#endregion
20
- export { Awaitable, CONFIG_FILE_NAMES, CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, CONFIG_TYPE_SCHEMAS, ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowsConfig, Colors, DbxConfig, DbxConfigSections, GeneratedFile, JsonValue, LOG_LEVELS, LogChannel, LogLevel, Logger, LoggerConfig, LoggerOptions, ManagedFile, PackageJson, ProjectType, ReplacementOptions, ReplacementValue, Replacements, Replacer, RunOptions, Sortable, SpawnCrossOptions, SyncContext, SyncSummary, SyncTask, TOOLCHAIN_PACKAGE, ToolchainArgument, ToolchainBiomeConfig, ToolchainChangelogConfig, ToolchainCommand, ToolchainCommandContext, ToolchainConfig, ToolchainConfigSections, ToolchainHooks, ToolchainLoggerConfig, ToolchainOption, ToolchainProjectConfig, ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, ToolchainProvidersConfig, ToolchainSection, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainViteConfig, ToolchainWatchConfig, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, type YamlValue, applyReplacements, applyReplacementsDeep, asString, biomeConfigSchema, camelCase, camelCaseId, capitalize, changelogConfigSchema, changelogVersioningConfigSchema, changelogVersioningSchema, changelogVersioningTargetSchema, changelogWorkflowsConfigSchema, configureLogger, constantCase, createLogger, createReplacer, dbxConfigSchema, deepMerge, defineConfig, defineReplacements, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, extractTokens, findOwnCliEntry, formatCliFlag, getLogOverrides, getLogger, hasText, hasUnresolvedTokens, indent, index_d_exports, isLocalhost, isLogLevel, isPlainObject, kebabCase, killProcessTree, localToolchainVersion, logger, loggerConfigSchema, mapValues, mergeJsonAt, normalizeLogLevel, pascalCase, projectConfigSchema, projectTypeSchema, providerActions, providersConfigSchema, readJsonAt, readJsonFile, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repoSlugFromUrl, resolveSort, resolveTokens, run, sanitizeSlashes, sectionConfig, sectionEnabled, setLogConfig, setLogOverrides, snakeCase, sort, spawnCross, str, stripAnsi, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, titleCase, toJson, toYaml, tokenPattern, toolchainConfigSchema, tsconfigConfigSchema, viteConfigSchema, watchConfigSchema, workflowConfigSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, writeJsonFile };
20
+ export { Awaitable, CONFIG_FILE_NAMES, CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, CONFIG_TYPE_SCHEMAS, ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowsConfig, Colors, DbxConfig, DbxConfigSections, GeneratedFile, JsonValue, LOG_LEVELS, LogChannel, LogLevel, Logger, LoggerConfig, LoggerOptions, ManagedFile, PackageJson, ProjectType, ReplacementOptions, ReplacementValue, Replacements, Replacer, RunOptions, Sortable, SpawnCrossOptions, SyncContext, SyncSummary, SyncTask, TOOLCHAIN_PACKAGE, ToolchainArgument, ToolchainBiomeConfig, ToolchainChangelogConfig, ToolchainCommand, ToolchainCommandContext, ToolchainConfig, ToolchainConfigSections, ToolchainHooks, ToolchainLoggerConfig, ToolchainOption, ToolchainProjectConfig, ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, ToolchainProvidersConfig, ToolchainSection, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainViteConfig, ToolchainWatchConfig, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, type YamlValue, applyReplacements, applyReplacementsDeep, asString, biomeConfigSchema, camelCase, camelCaseId, capitalize, changelogConfigSchema, changelogVersioningConfigSchema, changelogVersioningSchema, changelogVersioningTargetSchema, changelogWorkflowsConfigSchema, configureLogger, constantCase, createLogger, createReplacer, dbxConfigSchema, deepMerge, defineConfig, defineReplacements, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, extractTokens, findOwnCliEntry, formatCliFlag, getLogOverrides, getLogger, hasText, hasUnresolvedTokens, indent, index_d_exports, isLocalhost, isLogLevel, isPlainObject, kebabCase, killProcessTree, localToolchainVersion, logger, loggerConfigSchema, mapValues, mergeJsonAt, normalizeLogLevel, pascalCase, projectConfigSchema, projectTypeSchema, providerActions, providersConfigSchema, readJsonAt, readJsonFile, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repoSlugFromUrl, resolveSort, resolveTokens, run, sanitizeSlashes, sanitizeText, sectionConfig, sectionEnabled, setLogConfig, setLogOverrides, snakeCase, sort, spawnCross, str, stripAnsi, stripControlChars, stripEscapeArtifacts, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, titleCase, toJson, toYaml, tokenPattern, toolchainConfigSchema, tsconfigConfigSchema, viteConfigSchema, watchConfigSchema, workflowConfigSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, writeJsonFile };
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{__exportAll as ee}from"../../../_virtual/_rolldown/runtime.js";import{TOOLCHAIN_PACKAGE as e,findOwnCliEntry as t,localToolchainVersion as n}from"./bin.js";import{deepMerge as r,isPlainObject as i,mapValues as a,resolveSort as o,sort as s}from"./object-utils.js";import{mergeJsonAt as c,readJsonAt as l,readJsonFile as u,toJson as d,writeJsonFile as f}from"./fs-utils.js";import{LOG_LEVELS as p,configureLogger as m,createLogger as h,getLogOverrides as g,getLogger as _,isLogLevel as v,logger as y,normalizeLogLevel as b,setLogConfig as x,setLogOverrides as S,stripAnsi as C}from"./logger.js";import{providerActions as w}from"./provider.js";import{killProcessTree as T,run as E,spawnCross as D}from"./run.js";import{asString as O,camelCase as k,camelCaseId as A,capitalize as j,constantCase as M,ensureLeadingSlash as N,ensureSlashes as P,ensureTrailingSlash as F,formatCliFlag as I,hasText as L,indent as R,isLocalhost as z,kebabCase as B,pascalCase as V,removeDoubleSlashes as H,removeLeadingSlash as U,removeTrailingSlash as W,sanitizeSlashes as G,snakeCase as K,str as q,titleCase as te}from"./string-utils.js";import{applyReplacements as J,applyReplacementsDeep as Y,createReplacer as X,defineReplacements as Z,extractTokens as Q,hasUnresolvedTokens as $,tokenPattern as ne}from"./template.js";import{CONFIG_SECTION_DESCRIPTIONS as re,CONFIG_SECTION_SCHEMAS as ie,CONFIG_TYPE_SCHEMAS as ae,biomeConfigSchema as oe,changelogConfigSchema as se,changelogVersioningConfigSchema as ce,changelogVersioningSchema as le,changelogVersioningTargetSchema as ue,changelogWorkflowsConfigSchema as de,dbxConfigSchema as fe,loggerConfigSchema as pe,projectConfigSchema as me,projectTypeSchema as he,providersConfigSchema as ge,templateKindSchema as _e,templateSourceSchema as ve,templateSourceTypeSchema as ye,templatesConfigSchema as be,toolchainConfigSchema as xe,tsconfigConfigSchema as Se,viteConfigSchema as Ce,watchConfigSchema as we,workflowConfigSchema as Te,workflowSettingSchema as Ee,workflowStepSchema as De,workflowStepsConfigSchema as Oe}from"./config-schema.js";import{CONFIG_FILE_NAMES as ke,defineConfig as Ae,repoSlugFromUrl as je,resolveTokens as Me,sectionConfig as Ne,sectionEnabled as Pe}from"./toolchain.js";import{toYaml as Fe}from"./yaml.js";var Ie=/* @__PURE__ */ ee({CONFIG_FILE_NAMES:()=>ke,CONFIG_SECTION_DESCRIPTIONS:()=>re,CONFIG_SECTION_SCHEMAS:()=>ie,CONFIG_TYPE_SCHEMAS:()=>ae,LOG_LEVELS:()=>p,TOOLCHAIN_PACKAGE:()=>e,applyReplacements:()=>J,applyReplacementsDeep:()=>Y,asString:()=>O,biomeConfigSchema:()=>oe,camelCase:()=>k,camelCaseId:()=>A,capitalize:()=>j,changelogConfigSchema:()=>se,changelogVersioningConfigSchema:()=>ce,changelogVersioningSchema:()=>le,changelogVersioningTargetSchema:()=>ue,changelogWorkflowsConfigSchema:()=>de,configureLogger:()=>m,constantCase:()=>M,createLogger:()=>h,createReplacer:()=>X,dbxConfigSchema:()=>fe,deepMerge:()=>r,defineConfig:()=>Ae,defineReplacements:()=>Z,ensureLeadingSlash:()=>N,ensureSlashes:()=>P,ensureTrailingSlash:()=>F,extractTokens:()=>Q,findOwnCliEntry:()=>t,formatCliFlag:()=>I,getLogOverrides:()=>g,getLogger:()=>_,hasText:()=>L,hasUnresolvedTokens:()=>$,indent:()=>R,isLocalhost:()=>z,isLogLevel:()=>v,isPlainObject:()=>i,kebabCase:()=>B,killProcessTree:()=>T,localToolchainVersion:()=>n,logger:()=>y,loggerConfigSchema:()=>pe,mapValues:()=>a,mergeJsonAt:()=>c,normalizeLogLevel:()=>b,pascalCase:()=>V,projectConfigSchema:()=>me,projectTypeSchema:()=>he,providerActions:()=>w,providersConfigSchema:()=>ge,readJsonAt:()=>l,readJsonFile:()=>u,removeDoubleSlashes:()=>H,removeLeadingSlash:()=>U,removeTrailingSlash:()=>W,repoSlugFromUrl:()=>je,resolveSort:()=>o,resolveTokens:()=>Me,run:()=>E,sanitizeSlashes:()=>G,sectionConfig:()=>Ne,sectionEnabled:()=>Pe,setLogConfig:()=>x,setLogOverrides:()=>S,snakeCase:()=>K,sort:()=>s,spawnCross:()=>D,str:()=>q,stripAnsi:()=>C,templateKindSchema:()=>_e,templateSourceSchema:()=>ve,templateSourceTypeSchema:()=>ye,templatesConfigSchema:()=>be,titleCase:()=>te,toJson:()=>d,toYaml:()=>Fe,tokenPattern:()=>ne,toolchainConfigSchema:()=>xe,tsconfigConfigSchema:()=>Se,viteConfigSchema:()=>Ce,watchConfigSchema:()=>we,workflowConfigSchema:()=>Te,workflowSettingSchema:()=>Ee,workflowStepSchema:()=>De,workflowStepsConfigSchema:()=>Oe,writeJsonFile:()=>f});export{ke as CONFIG_FILE_NAMES,re as CONFIG_SECTION_DESCRIPTIONS,ie as CONFIG_SECTION_SCHEMAS,ae as CONFIG_TYPE_SCHEMAS,p as LOG_LEVELS,e as TOOLCHAIN_PACKAGE,J as applyReplacements,Y as applyReplacementsDeep,O as asString,oe as biomeConfigSchema,k as camelCase,A as camelCaseId,j as capitalize,se as changelogConfigSchema,ce as changelogVersioningConfigSchema,le as changelogVersioningSchema,ue as changelogVersioningTargetSchema,de as changelogWorkflowsConfigSchema,m as configureLogger,M as constantCase,h as createLogger,X as createReplacer,fe as dbxConfigSchema,r as deepMerge,Ae as defineConfig,Z as defineReplacements,N as ensureLeadingSlash,P as ensureSlashes,F as ensureTrailingSlash,Q as extractTokens,t as findOwnCliEntry,I as formatCliFlag,g as getLogOverrides,_ as getLogger,L as hasText,$ as hasUnresolvedTokens,R as indent,z as isLocalhost,v as isLogLevel,i as isPlainObject,B as kebabCase,T as killProcessTree,n as localToolchainVersion,y as logger,pe as loggerConfigSchema,a as mapValues,c as mergeJsonAt,b as normalizeLogLevel,V as pascalCase,me as projectConfigSchema,he as projectTypeSchema,w as providerActions,ge as providersConfigSchema,l as readJsonAt,u as readJsonFile,H as removeDoubleSlashes,U as removeLeadingSlash,W as removeTrailingSlash,je as repoSlugFromUrl,o as resolveSort,Me as resolveTokens,E as run,G as sanitizeSlashes,Ne as sectionConfig,Pe as sectionEnabled,x as setLogConfig,S as setLogOverrides,K as snakeCase,s as sort,D as spawnCross,Ie as src_exports,q as str,C as stripAnsi,_e as templateKindSchema,ve as templateSourceSchema,ye as templateSourceTypeSchema,be as templatesConfigSchema,te as titleCase,d as toJson,Fe as toYaml,ne as tokenPattern,xe as toolchainConfigSchema,Se as tsconfigConfigSchema,Ce as viteConfigSchema,we as watchConfigSchema,Te as workflowConfigSchema,Ee as workflowSettingSchema,De as workflowStepSchema,Oe as workflowStepsConfigSchema,f as writeJsonFile};
1
+ import"node:path";import"node:url";import.meta.url;import{__exportAll as ee}from"../../../_virtual/_rolldown/runtime.js";import{TOOLCHAIN_PACKAGE as e,findOwnCliEntry as t,localToolchainVersion as n}from"./bin.js";import{deepMerge as r,isPlainObject as i,mapValues as a,resolveSort as o,sort as s}from"./object-utils.js";import{mergeJsonAt as c,readJsonAt as l,readJsonFile as u,toJson as d,writeJsonFile as f}from"./fs-utils.js";import{LOG_LEVELS as p,configureLogger as m,createLogger as h,getLogOverrides as g,getLogger as _,isLogLevel as v,logger as y,normalizeLogLevel as b,setLogConfig as x,setLogOverrides as S,stripAnsi as C}from"./logger.js";import{providerActions as w}from"./provider.js";import{killProcessTree as T,run as E,spawnCross as D}from"./run.js";import{asString as O,camelCase as k,camelCaseId as A,capitalize as j,constantCase as M,ensureLeadingSlash as N,ensureSlashes as P,ensureTrailingSlash as F,formatCliFlag as I,hasText as L,indent as R,isLocalhost as z,kebabCase as B,pascalCase as V,removeDoubleSlashes as H,removeLeadingSlash as U,removeTrailingSlash as W,sanitizeSlashes as G,sanitizeText as K,snakeCase as q,str as te,stripControlChars as J,stripEscapeArtifacts as Y,titleCase as X}from"./string-utils.js";import{applyReplacements as Z,applyReplacementsDeep as Q,createReplacer as $,defineReplacements as ne,extractTokens as re,hasUnresolvedTokens as ie,tokenPattern as ae}from"./template.js";import{CONFIG_SECTION_DESCRIPTIONS as oe,CONFIG_SECTION_SCHEMAS as se,CONFIG_TYPE_SCHEMAS as ce,biomeConfigSchema as le,changelogConfigSchema as ue,changelogVersioningConfigSchema as de,changelogVersioningSchema as fe,changelogVersioningTargetSchema as pe,changelogWorkflowsConfigSchema as me,dbxConfigSchema as he,loggerConfigSchema as ge,projectConfigSchema as _e,projectTypeSchema as ve,providersConfigSchema as ye,templateKindSchema as be,templateSourceSchema as xe,templateSourceTypeSchema as Se,templatesConfigSchema as Ce,toolchainConfigSchema as we,tsconfigConfigSchema as Te,viteConfigSchema as Ee,watchConfigSchema as De,workflowConfigSchema as Oe,workflowSettingSchema as ke,workflowStepSchema as Ae,workflowStepsConfigSchema as je}from"./config-schema.js";import{CONFIG_FILE_NAMES as Me,defineConfig as Ne,repoSlugFromUrl as Pe,resolveTokens as Fe,sectionConfig as Ie,sectionEnabled as Le}from"./toolchain.js";import{toYaml as Re}from"./yaml.js";var ze=/* @__PURE__ */ ee({CONFIG_FILE_NAMES:()=>Me,CONFIG_SECTION_DESCRIPTIONS:()=>oe,CONFIG_SECTION_SCHEMAS:()=>se,CONFIG_TYPE_SCHEMAS:()=>ce,LOG_LEVELS:()=>p,TOOLCHAIN_PACKAGE:()=>e,applyReplacements:()=>Z,applyReplacementsDeep:()=>Q,asString:()=>O,biomeConfigSchema:()=>le,camelCase:()=>k,camelCaseId:()=>A,capitalize:()=>j,changelogConfigSchema:()=>ue,changelogVersioningConfigSchema:()=>de,changelogVersioningSchema:()=>fe,changelogVersioningTargetSchema:()=>pe,changelogWorkflowsConfigSchema:()=>me,configureLogger:()=>m,constantCase:()=>M,createLogger:()=>h,createReplacer:()=>$,dbxConfigSchema:()=>he,deepMerge:()=>r,defineConfig:()=>Ne,defineReplacements:()=>ne,ensureLeadingSlash:()=>N,ensureSlashes:()=>P,ensureTrailingSlash:()=>F,extractTokens:()=>re,findOwnCliEntry:()=>t,formatCliFlag:()=>I,getLogOverrides:()=>g,getLogger:()=>_,hasText:()=>L,hasUnresolvedTokens:()=>ie,indent:()=>R,isLocalhost:()=>z,isLogLevel:()=>v,isPlainObject:()=>i,kebabCase:()=>B,killProcessTree:()=>T,localToolchainVersion:()=>n,logger:()=>y,loggerConfigSchema:()=>ge,mapValues:()=>a,mergeJsonAt:()=>c,normalizeLogLevel:()=>b,pascalCase:()=>V,projectConfigSchema:()=>_e,projectTypeSchema:()=>ve,providerActions:()=>w,providersConfigSchema:()=>ye,readJsonAt:()=>l,readJsonFile:()=>u,removeDoubleSlashes:()=>H,removeLeadingSlash:()=>U,removeTrailingSlash:()=>W,repoSlugFromUrl:()=>Pe,resolveSort:()=>o,resolveTokens:()=>Fe,run:()=>E,sanitizeSlashes:()=>G,sanitizeText:()=>K,sectionConfig:()=>Ie,sectionEnabled:()=>Le,setLogConfig:()=>x,setLogOverrides:()=>S,snakeCase:()=>q,sort:()=>s,spawnCross:()=>D,str:()=>te,stripAnsi:()=>C,stripControlChars:()=>J,stripEscapeArtifacts:()=>Y,templateKindSchema:()=>be,templateSourceSchema:()=>xe,templateSourceTypeSchema:()=>Se,templatesConfigSchema:()=>Ce,titleCase:()=>X,toJson:()=>d,toYaml:()=>Re,tokenPattern:()=>ae,toolchainConfigSchema:()=>we,tsconfigConfigSchema:()=>Te,viteConfigSchema:()=>Ee,watchConfigSchema:()=>De,workflowConfigSchema:()=>Oe,workflowSettingSchema:()=>ke,workflowStepSchema:()=>Ae,workflowStepsConfigSchema:()=>je,writeJsonFile:()=>f});export{Me as CONFIG_FILE_NAMES,oe as CONFIG_SECTION_DESCRIPTIONS,se as CONFIG_SECTION_SCHEMAS,ce as CONFIG_TYPE_SCHEMAS,p as LOG_LEVELS,e as TOOLCHAIN_PACKAGE,Z as applyReplacements,Q as applyReplacementsDeep,O as asString,le as biomeConfigSchema,k as camelCase,A as camelCaseId,j as capitalize,ue as changelogConfigSchema,de as changelogVersioningConfigSchema,fe as changelogVersioningSchema,pe as changelogVersioningTargetSchema,me as changelogWorkflowsConfigSchema,m as configureLogger,M as constantCase,h as createLogger,$ as createReplacer,he as dbxConfigSchema,r as deepMerge,Ne as defineConfig,ne as defineReplacements,N as ensureLeadingSlash,P as ensureSlashes,F as ensureTrailingSlash,re as extractTokens,t as findOwnCliEntry,I as formatCliFlag,g as getLogOverrides,_ as getLogger,L as hasText,ie as hasUnresolvedTokens,R as indent,z as isLocalhost,v as isLogLevel,i as isPlainObject,B as kebabCase,T as killProcessTree,n as localToolchainVersion,y as logger,ge as loggerConfigSchema,a as mapValues,c as mergeJsonAt,b as normalizeLogLevel,V as pascalCase,_e as projectConfigSchema,ve as projectTypeSchema,w as providerActions,ye as providersConfigSchema,l as readJsonAt,u as readJsonFile,H as removeDoubleSlashes,U as removeLeadingSlash,W as removeTrailingSlash,Pe as repoSlugFromUrl,o as resolveSort,Fe as resolveTokens,E as run,G as sanitizeSlashes,K as sanitizeText,Ie as sectionConfig,Le as sectionEnabled,x as setLogConfig,S as setLogOverrides,q as snakeCase,s as sort,D as spawnCross,ze as src_exports,te as str,C as stripAnsi,J as stripControlChars,Y as stripEscapeArtifacts,be as templateKindSchema,xe as templateSourceSchema,Se as templateSourceTypeSchema,Ce as templatesConfigSchema,X as titleCase,d as toJson,Re as toYaml,ae as tokenPattern,we as toolchainConfigSchema,Te as tsconfigConfigSchema,Ee as viteConfigSchema,De as watchConfigSchema,Oe as workflowConfigSchema,ke as workflowSettingSchema,Ae as workflowStepSchema,je as workflowStepsConfigSchema,f as writeJsonFile};
@@ -49,4 +49,20 @@ export declare function removeDoubleSlashes(value: string, slash?: string): stri
49
49
  export declare function sanitizeSlashes(value: string, operations?: ('leading' | 'trailing' | 'double')[], slash?: string): string;
50
50
  /** Ensure slashes at the requested positions. */
51
51
  export declare function ensureSlashes(value: string, operations: ('leading' | 'trailing')[], slash?: string): string;
52
+ /** Strip bare control characters, keeping `\t`, `\n` and `\r`. */
53
+ export declare function stripControlChars(text: string): string;
54
+ /**
55
+ * Strip the predictable shell-escape artifacts: a backslash that precedes a
56
+ * control character. Ordinary backslashes (Windows paths, regular expressions,
57
+ * Markdown hard breaks that use two trailing spaces) are left untouched — only
58
+ * a backslash directly before a control character is removed.
59
+ */
60
+ export declare function stripEscapeArtifacts(text: string): string;
61
+ /**
62
+ * Sanitize text that may have passed through a shell (commit bodies, generated
63
+ * descriptions) before it is rendered to markdown: normalize CRLF to LF, then
64
+ * strip shell-escape artifacts followed by any remaining bare control
65
+ * characters. Conservative by design — it never removes an ordinary backslash.
66
+ */
67
+ export declare function sanitizeText(text: string): string;
52
68
  //#endregion
@@ -1,3 +1,4 @@
1
1
  import"node:path";import"node:url";import.meta.url;function e(e){return typeof e==`string`?e.trim():``}function t(e){return typeof e==`string`?e:``}function n(e){return typeof e==`string`&&e.trim().length>0}function r(e){return e.length>0?e.charAt(0).toUpperCase()+e.slice(1):e}function i(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(/[^a-zA-Z0-9]+/).filter(Boolean)}function a(e){return i(e).map((e,t)=>t===0?e.toLowerCase():r(e.toLowerCase())).join(``)}function o(e){return i(e).map(e=>r(e.toLowerCase())).join(``)}function s(e){return i(e).map(e=>e.toLowerCase()).join(`-`)}function c(e){return i(e).map(e=>e.toLowerCase()).join(`_`)}function l(e){return i(e).map(e=>e.toUpperCase()).join(`_`)}function u(e){return i(e).map(e=>r(e.toLowerCase())).join(` `)}function d(e){return a(e)}function f(e,t=``){return s(t&&e.startsWith(t)?e.slice(t.length):e)}function p(e,t=2){let n=` `.repeat(t);return e.split(`
2
2
  `).map(e=>e.trim()?n+e:e).join(`
3
- `)}function m(e){return/localhost|127\.0\.0\.1|0\.0\.0\.0|::/.test(e)}function h(e,t=`/`){return e.startsWith(t)?e:`${t}${e}`}function g(e,t=`/`){return e.endsWith(t)?e:`${e}${t}`}function _(e,t=`/`){return e.replace(RegExp(`^${S(t)}+`),``)}function v(e,t=`/`){return e.replace(RegExp(`${S(t)}+$`),``)}function y(e,t=`/`){return e.replace(RegExp(`${S(t)}+`,`g`),t)}function b(e,t=[`leading`,`trailing`,`double`],n=`/`){let r=e;for(let e of t)e===`leading`&&(r=_(r,n)),e===`trailing`&&(r=v(r,n)),e===`double`&&(r=y(r,n));return r}function x(e,t,n=`/`){if(!t.length)throw Error(`ensureSlashes: operations array cannot be empty.`);let r=e;for(let e of t)if(e===`leading`)r=h(r,n);else if(e===`trailing`)r=g(r,n);else throw Error(`ensureSlashes: invalid operation: ${e}`);return r}function S(e){return e===`/`?`\\/`:e}export{t as asString,a as camelCase,d as camelCaseId,r as capitalize,l as constantCase,h as ensureLeadingSlash,x as ensureSlashes,g as ensureTrailingSlash,f as formatCliFlag,n as hasText,p as indent,m as isLocalhost,s as kebabCase,o as pascalCase,y as removeDoubleSlashes,_ as removeLeadingSlash,v as removeTrailingSlash,b as sanitizeSlashes,c as snakeCase,e as str,u as titleCase};
3
+ `)}function m(e){return/localhost|127\.0\.0\.1|0\.0\.0\.0|::/.test(e)}function h(e,t=`/`){return e.startsWith(t)?e:`${t}${e}`}function g(e,t=`/`){return e.endsWith(t)?e:`${e}${t}`}function _(e,t=`/`){return e.replace(RegExp(`^${S(t)}+`),``)}function v(e,t=`/`){return e.replace(RegExp(`${S(t)}+$`),``)}function y(e,t=`/`){return e.replace(RegExp(`${S(t)}+`,`g`),t)}function b(e,t=[`leading`,`trailing`,`double`],n=`/`){let r=e;for(let e of t)e===`leading`&&(r=_(r,n)),e===`trailing`&&(r=v(r,n)),e===`double`&&(r=y(r,n));return r}function x(e,t,n=`/`){if(!t.length)throw Error(`ensureSlashes: operations array cannot be empty.`);let r=e;for(let e of t)if(e===`leading`)r=h(r,n);else if(e===`trailing`)r=g(r,n);else throw Error(`ensureSlashes: invalid operation: ${e}`);return r}function S(e){return e===`/`?`\\/`:e}const C=/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g,w=/\\[\u0000-\u001f]/g;function T(e){return e.replace(C,``)}function E(e){return e.replace(w,``)}function D(e){return T(E(e.replace(/\r\n?/g,`
4
+ `)))}export{t as asString,a as camelCase,d as camelCaseId,r as capitalize,l as constantCase,h as ensureLeadingSlash,x as ensureSlashes,g as ensureTrailingSlash,f as formatCliFlag,n as hasText,p as indent,m as isLocalhost,s as kebabCase,o as pascalCase,y as removeDoubleSlashes,_ as removeLeadingSlash,v as removeTrailingSlash,b as sanitizeSlashes,D as sanitizeText,c as snakeCase,e as str,T as stripControlChars,E as stripEscapeArtifacts,u as titleCase};
package/dist/shared.d.ts CHANGED
@@ -6,7 +6,7 @@ import { Colors, LOG_LEVELS, LogChannel, LogLevel, Logger, LoggerConfig, LoggerO
6
6
  import { Sortable, deepMerge, isPlainObject, mapValues, resolveSort, sort } from "./packages/shared/src/object-utils.js";
7
7
  import { ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, providerActions } from "./packages/shared/src/provider.js";
8
8
  import { RunOptions, SpawnCrossOptions, killProcessTree, run, spawnCross } from "./packages/shared/src/run.js";
9
- import { asString, camelCase, camelCaseId, capitalize, constantCase, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, formatCliFlag, hasText, indent, isLocalhost, kebabCase, pascalCase, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, sanitizeSlashes, snakeCase, str, titleCase } from "./packages/shared/src/string-utils.js";
9
+ import { asString, camelCase, camelCaseId, capitalize, constantCase, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, formatCliFlag, hasText, indent, isLocalhost, kebabCase, pascalCase, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, sanitizeSlashes, sanitizeText, snakeCase, str, stripControlChars, stripEscapeArtifacts, titleCase } from "./packages/shared/src/string-utils.js";
10
10
  import { ReplacementOptions, ReplacementValue, Replacements, Replacer, applyReplacements, applyReplacementsDeep, createReplacer, defineReplacements, extractTokens, hasUnresolvedTokens, tokenPattern } from "./packages/shared/src/template.js";
11
11
  import { ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowsConfig, DbxConfigSections, ProjectType, ToolchainBiomeConfig, ToolchainChangelogConfig, ToolchainConfigSections, ToolchainLoggerConfig, ToolchainProjectConfig, ToolchainProvidersConfig, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainViteConfig, ToolchainWatchConfig, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig } from "./packages/shared/src/config-types.js";
12
12
  import { Awaitable, GeneratedFile, JsonValue, PackageJson, ToolchainArgument, ToolchainCommand, ToolchainCommandContext, ToolchainOption } from "./packages/shared/src/types.js";
@@ -14,4 +14,4 @@ import { CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, CONFIG_TYPE_SCHEMA
14
14
  import { CONFIG_FILE_NAMES, DbxConfig, ManagedFile, SyncContext, SyncSummary, SyncTask, ToolchainConfig, ToolchainHooks, ToolchainSection, defineConfig, repoSlugFromUrl, resolveTokens, sectionConfig, sectionEnabled } from "./packages/shared/src/toolchain.js";
15
15
  import { YamlValue, toYaml } from "./packages/shared/src/yaml.js";
16
16
  import "./packages/shared/src/index.js";
17
- export { Awaitable, CONFIG_FILE_NAMES, CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, CONFIG_TYPE_SCHEMAS, ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowsConfig, Colors, DbxConfig, DbxConfigSections, GeneratedFile, JsonValue, LOG_LEVELS, LogChannel, LogLevel, Logger, LoggerConfig, LoggerOptions, ManagedFile, PackageJson, ProjectType, ReplacementOptions, ReplacementValue, Replacements, Replacer, RunOptions, Sortable, SpawnCrossOptions, SyncContext, SyncSummary, SyncTask, TOOLCHAIN_PACKAGE, ToolchainArgument, ToolchainBiomeConfig, ToolchainChangelogConfig, ToolchainCommand, ToolchainCommandContext, ToolchainConfig, ToolchainConfigSections, ToolchainHooks, ToolchainLoggerConfig, ToolchainOption, ToolchainProjectConfig, ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, ToolchainProvidersConfig, ToolchainSection, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainViteConfig, ToolchainWatchConfig, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, type YamlValue, applyReplacements, applyReplacementsDeep, asString, biomeConfigSchema, camelCase, camelCaseId, capitalize, changelogConfigSchema, changelogVersioningConfigSchema, changelogVersioningSchema, changelogVersioningTargetSchema, changelogWorkflowsConfigSchema, configureLogger, constantCase, createLogger, createReplacer, dbxConfigSchema, deepMerge, defineConfig, defineReplacements, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, extractTokens, findOwnCliEntry, formatCliFlag, getLogOverrides, getLogger, hasText, hasUnresolvedTokens, indent, isLocalhost, isLogLevel, isPlainObject, kebabCase, killProcessTree, localToolchainVersion, logger, loggerConfigSchema, mapValues, mergeJsonAt, normalizeLogLevel, pascalCase, projectConfigSchema, projectTypeSchema, providerActions, providersConfigSchema, readJsonAt, readJsonFile, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repoSlugFromUrl, resolveSort, resolveTokens, run, sanitizeSlashes, sectionConfig, sectionEnabled, setLogConfig, setLogOverrides, snakeCase, sort, spawnCross, str, stripAnsi, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, titleCase, toJson, toYaml, tokenPattern, toolchainConfigSchema, tsconfigConfigSchema, viteConfigSchema, watchConfigSchema, workflowConfigSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, writeJsonFile };
17
+ export { Awaitable, CONFIG_FILE_NAMES, CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, CONFIG_TYPE_SCHEMAS, ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowsConfig, Colors, DbxConfig, DbxConfigSections, GeneratedFile, JsonValue, LOG_LEVELS, LogChannel, LogLevel, Logger, LoggerConfig, LoggerOptions, ManagedFile, PackageJson, ProjectType, ReplacementOptions, ReplacementValue, Replacements, Replacer, RunOptions, Sortable, SpawnCrossOptions, SyncContext, SyncSummary, SyncTask, TOOLCHAIN_PACKAGE, ToolchainArgument, ToolchainBiomeConfig, ToolchainChangelogConfig, ToolchainCommand, ToolchainCommandContext, ToolchainConfig, ToolchainConfigSections, ToolchainHooks, ToolchainLoggerConfig, ToolchainOption, ToolchainProjectConfig, ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, ToolchainProvidersConfig, ToolchainSection, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainViteConfig, ToolchainWatchConfig, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, type YamlValue, applyReplacements, applyReplacementsDeep, asString, biomeConfigSchema, camelCase, camelCaseId, capitalize, changelogConfigSchema, changelogVersioningConfigSchema, changelogVersioningSchema, changelogVersioningTargetSchema, changelogWorkflowsConfigSchema, configureLogger, constantCase, createLogger, createReplacer, dbxConfigSchema, deepMerge, defineConfig, defineReplacements, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, extractTokens, findOwnCliEntry, formatCliFlag, getLogOverrides, getLogger, hasText, hasUnresolvedTokens, indent, isLocalhost, isLogLevel, isPlainObject, kebabCase, killProcessTree, localToolchainVersion, logger, loggerConfigSchema, mapValues, mergeJsonAt, normalizeLogLevel, pascalCase, projectConfigSchema, projectTypeSchema, providerActions, providersConfigSchema, readJsonAt, readJsonFile, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repoSlugFromUrl, resolveSort, resolveTokens, run, sanitizeSlashes, sanitizeText, sectionConfig, sectionEnabled, setLogConfig, setLogOverrides, snakeCase, sort, spawnCross, str, stripAnsi, stripControlChars, stripEscapeArtifacts, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, titleCase, toJson, toYaml, tokenPattern, toolchainConfigSchema, tsconfigConfigSchema, viteConfigSchema, watchConfigSchema, workflowConfigSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, writeJsonFile };
package/dist/shared.js CHANGED
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{TOOLCHAIN_PACKAGE as e,findOwnCliEntry as t,localToolchainVersion as n}from"./packages/shared/src/bin.js";import{deepMerge as r,isPlainObject as i,mapValues as a,resolveSort as o,sort as s}from"./packages/shared/src/object-utils.js";import{mergeJsonAt as c,readJsonAt as l,readJsonFile as u,toJson as d,writeJsonFile as f}from"./packages/shared/src/fs-utils.js";import{LOG_LEVELS as p,configureLogger as m,createLogger as h,getLogOverrides as g,getLogger as _,isLogLevel as v,logger as y,normalizeLogLevel as b,setLogConfig as x,setLogOverrides as S,stripAnsi as C}from"./packages/shared/src/logger.js";import{providerActions as w}from"./packages/shared/src/provider.js";import{killProcessTree as T,run as E,spawnCross as D}from"./packages/shared/src/run.js";import{asString as O,camelCase as k,camelCaseId as A,capitalize as j,constantCase as M,ensureLeadingSlash as N,ensureSlashes as P,ensureTrailingSlash as F,formatCliFlag as I,hasText as L,indent as R,isLocalhost as z,kebabCase as B,pascalCase as V,removeDoubleSlashes as H,removeLeadingSlash as U,removeTrailingSlash as W,sanitizeSlashes as G,snakeCase as K,str as q,titleCase as J}from"./packages/shared/src/string-utils.js";import{applyReplacements as Y,applyReplacementsDeep as X,createReplacer as Z,defineReplacements as Q,extractTokens as $,hasUnresolvedTokens as ee,tokenPattern as te}from"./packages/shared/src/template.js";import{CONFIG_SECTION_DESCRIPTIONS as ne,CONFIG_SECTION_SCHEMAS as re,CONFIG_TYPE_SCHEMAS as ie,biomeConfigSchema as ae,changelogConfigSchema as oe,changelogVersioningConfigSchema as se,changelogVersioningSchema as ce,changelogVersioningTargetSchema as le,changelogWorkflowsConfigSchema as ue,dbxConfigSchema as de,loggerConfigSchema as fe,projectConfigSchema as pe,projectTypeSchema as me,providersConfigSchema as he,templateKindSchema as ge,templateSourceSchema as _e,templateSourceTypeSchema as ve,templatesConfigSchema as ye,toolchainConfigSchema as be,tsconfigConfigSchema as xe,viteConfigSchema as Se,watchConfigSchema as Ce,workflowConfigSchema as we,workflowSettingSchema as Te,workflowStepSchema as Ee,workflowStepsConfigSchema as De}from"./packages/shared/src/config-schema.js";import{CONFIG_FILE_NAMES as Oe,defineConfig as ke,repoSlugFromUrl as Ae,resolveTokens as je,sectionConfig as Me,sectionEnabled as Ne}from"./packages/shared/src/toolchain.js";import{toYaml as Pe}from"./packages/shared/src/yaml.js";import"./packages/shared/src/index.js";export{Oe as CONFIG_FILE_NAMES,ne as CONFIG_SECTION_DESCRIPTIONS,re as CONFIG_SECTION_SCHEMAS,ie as CONFIG_TYPE_SCHEMAS,p as LOG_LEVELS,e as TOOLCHAIN_PACKAGE,Y as applyReplacements,X as applyReplacementsDeep,O as asString,ae as biomeConfigSchema,k as camelCase,A as camelCaseId,j as capitalize,oe as changelogConfigSchema,se as changelogVersioningConfigSchema,ce as changelogVersioningSchema,le as changelogVersioningTargetSchema,ue as changelogWorkflowsConfigSchema,m as configureLogger,M as constantCase,h as createLogger,Z as createReplacer,de as dbxConfigSchema,r as deepMerge,ke as defineConfig,Q as defineReplacements,N as ensureLeadingSlash,P as ensureSlashes,F as ensureTrailingSlash,$ as extractTokens,t as findOwnCliEntry,I as formatCliFlag,g as getLogOverrides,_ as getLogger,L as hasText,ee as hasUnresolvedTokens,R as indent,z as isLocalhost,v as isLogLevel,i as isPlainObject,B as kebabCase,T as killProcessTree,n as localToolchainVersion,y as logger,fe as loggerConfigSchema,a as mapValues,c as mergeJsonAt,b as normalizeLogLevel,V as pascalCase,pe as projectConfigSchema,me as projectTypeSchema,w as providerActions,he as providersConfigSchema,l as readJsonAt,u as readJsonFile,H as removeDoubleSlashes,U as removeLeadingSlash,W as removeTrailingSlash,Ae as repoSlugFromUrl,o as resolveSort,je as resolveTokens,E as run,G as sanitizeSlashes,Me as sectionConfig,Ne as sectionEnabled,x as setLogConfig,S as setLogOverrides,K as snakeCase,s as sort,D as spawnCross,q as str,C as stripAnsi,ge as templateKindSchema,_e as templateSourceSchema,ve as templateSourceTypeSchema,ye as templatesConfigSchema,J as titleCase,d as toJson,Pe as toYaml,te as tokenPattern,be as toolchainConfigSchema,xe as tsconfigConfigSchema,Se as viteConfigSchema,Ce as watchConfigSchema,we as workflowConfigSchema,Te as workflowSettingSchema,Ee as workflowStepSchema,De as workflowStepsConfigSchema,f as writeJsonFile};
1
+ import"node:path";import"node:url";import.meta.url;import{TOOLCHAIN_PACKAGE as e,findOwnCliEntry as t,localToolchainVersion as n}from"./packages/shared/src/bin.js";import{deepMerge as r,isPlainObject as i,mapValues as a,resolveSort as o,sort as s}from"./packages/shared/src/object-utils.js";import{mergeJsonAt as c,readJsonAt as l,readJsonFile as u,toJson as d,writeJsonFile as f}from"./packages/shared/src/fs-utils.js";import{LOG_LEVELS as p,configureLogger as m,createLogger as h,getLogOverrides as g,getLogger as _,isLogLevel as v,logger as y,normalizeLogLevel as b,setLogConfig as x,setLogOverrides as S,stripAnsi as C}from"./packages/shared/src/logger.js";import{providerActions as w}from"./packages/shared/src/provider.js";import{killProcessTree as T,run as E,spawnCross as D}from"./packages/shared/src/run.js";import{asString as O,camelCase as k,camelCaseId as A,capitalize as j,constantCase as M,ensureLeadingSlash as N,ensureSlashes as P,ensureTrailingSlash as F,formatCliFlag as I,hasText as L,indent as R,isLocalhost as z,kebabCase as B,pascalCase as V,removeDoubleSlashes as H,removeLeadingSlash as U,removeTrailingSlash as W,sanitizeSlashes as G,sanitizeText as K,snakeCase as q,str as J,stripControlChars as Y,stripEscapeArtifacts as X,titleCase as Z}from"./packages/shared/src/string-utils.js";import{applyReplacements as Q,applyReplacementsDeep as $,createReplacer as ee,defineReplacements as te,extractTokens as ne,hasUnresolvedTokens as re,tokenPattern as ie}from"./packages/shared/src/template.js";import{CONFIG_SECTION_DESCRIPTIONS as ae,CONFIG_SECTION_SCHEMAS as oe,CONFIG_TYPE_SCHEMAS as se,biomeConfigSchema as ce,changelogConfigSchema as le,changelogVersioningConfigSchema as ue,changelogVersioningSchema as de,changelogVersioningTargetSchema as fe,changelogWorkflowsConfigSchema as pe,dbxConfigSchema as me,loggerConfigSchema as he,projectConfigSchema as ge,projectTypeSchema as _e,providersConfigSchema as ve,templateKindSchema as ye,templateSourceSchema as be,templateSourceTypeSchema as xe,templatesConfigSchema as Se,toolchainConfigSchema as Ce,tsconfigConfigSchema as we,viteConfigSchema as Te,watchConfigSchema as Ee,workflowConfigSchema as De,workflowSettingSchema as Oe,workflowStepSchema as ke,workflowStepsConfigSchema as Ae}from"./packages/shared/src/config-schema.js";import{CONFIG_FILE_NAMES as je,defineConfig as Me,repoSlugFromUrl as Ne,resolveTokens as Pe,sectionConfig as Fe,sectionEnabled as Ie}from"./packages/shared/src/toolchain.js";import{toYaml as Le}from"./packages/shared/src/yaml.js";import"./packages/shared/src/index.js";export{je as CONFIG_FILE_NAMES,ae as CONFIG_SECTION_DESCRIPTIONS,oe as CONFIG_SECTION_SCHEMAS,se as CONFIG_TYPE_SCHEMAS,p as LOG_LEVELS,e as TOOLCHAIN_PACKAGE,Q as applyReplacements,$ as applyReplacementsDeep,O as asString,ce as biomeConfigSchema,k as camelCase,A as camelCaseId,j as capitalize,le as changelogConfigSchema,ue as changelogVersioningConfigSchema,de as changelogVersioningSchema,fe as changelogVersioningTargetSchema,pe as changelogWorkflowsConfigSchema,m as configureLogger,M as constantCase,h as createLogger,ee as createReplacer,me as dbxConfigSchema,r as deepMerge,Me as defineConfig,te as defineReplacements,N as ensureLeadingSlash,P as ensureSlashes,F as ensureTrailingSlash,ne as extractTokens,t as findOwnCliEntry,I as formatCliFlag,g as getLogOverrides,_ as getLogger,L as hasText,re as hasUnresolvedTokens,R as indent,z as isLocalhost,v as isLogLevel,i as isPlainObject,B as kebabCase,T as killProcessTree,n as localToolchainVersion,y as logger,he as loggerConfigSchema,a as mapValues,c as mergeJsonAt,b as normalizeLogLevel,V as pascalCase,ge as projectConfigSchema,_e as projectTypeSchema,w as providerActions,ve as providersConfigSchema,l as readJsonAt,u as readJsonFile,H as removeDoubleSlashes,U as removeLeadingSlash,W as removeTrailingSlash,Ne as repoSlugFromUrl,o as resolveSort,Pe as resolveTokens,E as run,G as sanitizeSlashes,K as sanitizeText,Fe as sectionConfig,Ie as sectionEnabled,x as setLogConfig,S as setLogOverrides,q as snakeCase,s as sort,D as spawnCross,J as str,C as stripAnsi,Y as stripControlChars,X as stripEscapeArtifacts,ye as templateKindSchema,be as templateSourceSchema,xe as templateSourceTypeSchema,Se as templatesConfigSchema,Z as titleCase,d as toJson,Le as toYaml,ie as tokenPattern,Ce as toolchainConfigSchema,we as tsconfigConfigSchema,Te as viteConfigSchema,Ee as watchConfigSchema,De as workflowConfigSchema,Oe as workflowSettingSchema,ke as workflowStepSchema,Ae as workflowStepsConfigSchema,f as writeJsonFile};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deltabox/toolchain",
3
- "version": "1.6.1",
3
+ "version": "1.7.8",
4
4
  "description": "All-in-one toolchain: scaffold projects, manage templates, configs, tsconfigs, changelogs and builds.",
5
5
  "homepage": "https://toolchain.deltabox.studio",
6
6
  "author": "Victor Sango <victor@deltabox.studio>",
@@ -37,7 +37,8 @@
37
37
  "settings"
38
38
  ],
39
39
  "scripts": {
40
- "build": "node scripts/bootstrap.mjs && vp run --filter \"./packages/*\" build && vp run build:root && yarn workspace toolchain-vscode package:vsix",
40
+ "build": "node scripts/bootstrap.mjs && vp run --filter \"./packages/*\" build && vp run build:root && yarn build:vscode",
41
+ "build:vscode": "yarn workspace toolchain-vscode package:vsix",
41
42
  "docs": "vp run --filter \"./apps/docs\"",
42
43
  "format": "vp fmt",
43
44
  "format:check": "vp fmt --check",
@@ -76,17 +77,17 @@
76
77
  "devDependencies": {
77
78
  "@commitlint/cli": "^21.2.2",
78
79
  "@commitlint/config-conventional": "^21.2.2",
79
- "@deltabox/toolchain-biome": "1.6.1",
80
- "@deltabox/toolchain-changelog": "1.6.1",
81
- "@deltabox/toolchain-config": "1.6.1",
82
- "@deltabox/toolchain-core": "1.6.1",
83
- "@deltabox/toolchain-migrate": "1.6.1",
84
- "@deltabox/toolchain-project": "1.6.1",
85
- "@deltabox/toolchain-shared": "1.6.1",
86
- "@deltabox/toolchain-template": "1.6.1",
87
- "@deltabox/toolchain-tsconfig": "1.6.1",
88
- "@deltabox/toolchain-tsdown": "1.6.1",
89
- "@deltabox/toolchain-vite": "1.6.1",
80
+ "@deltabox/toolchain-biome": "1.7.8",
81
+ "@deltabox/toolchain-changelog": "1.7.8",
82
+ "@deltabox/toolchain-config": "1.7.8",
83
+ "@deltabox/toolchain-core": "1.7.8",
84
+ "@deltabox/toolchain-migrate": "1.7.8",
85
+ "@deltabox/toolchain-project": "1.7.8",
86
+ "@deltabox/toolchain-shared": "1.7.8",
87
+ "@deltabox/toolchain-template": "1.7.8",
88
+ "@deltabox/toolchain-tsconfig": "1.7.8",
89
+ "@deltabox/toolchain-tsdown": "1.7.8",
90
+ "@deltabox/toolchain-vite": "1.7.8",
90
91
  "@types/node": "^22.10.2",
91
92
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
92
93
  "cross-env": "^10.1.0",