@deltabox/toolchain 1.10.4 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -3
- package/README.md +2 -2
- package/dist/cli/index.js +1 -1
- package/dist/package.js +1 -1
- package/dist/packages/project/src/cli/index.js +1 -1
- package/package.json +13 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,15 +1,50 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 1.
|
|
3
|
+
## 1.11.0 (October 2026)
|
|
4
4
|
|
|
5
5
|
<!-- release:start -->
|
|
6
6
|
|
|
7
|
-
###
|
|
8
|
-
|
|
7
|
+
### New features
|
|
8
|
+
#### Vscode
|
|
9
|
+
- Scaffold any template and drive Vite+ create from the extension ([#fb4a55c](https://github.com/deltabox-studio/toolchain/commit/fb4a55c) by [T0chi](https://github.com/T0chi))
|
|
10
|
+
- project" picker (`template:list --online`) instead of only the dbx builtins;
|
|
11
|
+
each entry runs the same create pipeline (name/scope/variables/actions).
|
|
12
|
+
bare `vite-plus` template — through the extension's prompt pipeline: pick a
|
|
13
|
+
concrete Vite+ template, then create like any other template. Consumers no
|
|
14
|
+
longer land in the interactive `vp create` CLI menu.
|
|
15
|
+
### Bug fixes
|
|
16
|
+
#### Project
|
|
17
|
+
- Tag a scaffolded workspace with its own project type ([#9d05637](https://github.com/deltabox-studio/toolchain/commit/9d05637) by [T0chi](https://github.com/T0chi))
|
|
18
|
+
- `resolveType` fell back to the loaded config's `project.type`, but a scaffold
|
|
19
|
+
runs with the config of the directory it is invoked from — the monorepo root
|
|
20
|
+
when adding a workspace. A workspace was therefore tagged `monorepo-root`, and
|
|
21
|
+
the post-scaffold sync then generated root-only CI, husky and VS Code files
|
|
22
|
+
inside the workspace.
|
|
23
|
+
- Only honour an explicit `--type` (or the command's implied default); ignore the
|
|
24
|
+
ambient config type.
|
|
25
|
+
### Documentation
|
|
26
|
+
- Update descriptions and vscode screenshot ([#215bc4f](https://github.com/deltabox-studio/toolchain/commit/215bc4f) by [T0chi](https://github.com/T0chi))
|
|
27
|
+
### Styles
|
|
28
|
+
- Wrap long description lines for the formatter ([#213ea73](https://github.com/deltabox-studio/toolchain/commit/213ea73) by [T0chi](https://github.com/T0chi))
|
|
29
|
+
- Long single-line descriptions from earlier commits; `vp fmt` wraps them back.
|
|
30
|
+
### Tests
|
|
31
|
+
- Emulate custom templates/providers and workspace scaffolding ([#37d370e](https://github.com/deltabox-studio/toolchain/commit/37d370e) by [T0chi](https://github.com/T0chi))
|
|
32
|
+
- Code extension writes) and assert the CLI lists, scaffolds and runs them —
|
|
33
|
+
i.e. the payloads the extension's trees consume.
|
|
34
|
+
assert the workspace does NOT inherit their outputs
|
|
35
|
+
(.github/.husky/.vscode/commitlint.config.mjs).
|
|
36
|
+
### Chores
|
|
37
|
+
#### Vscode
|
|
38
|
+
- Rename the Home "All actions" section to "More actions" ([#b8a2137](https://github.com/deltabox-studio/toolchain/commit/b8a2137) by [T0chi](https://github.com/T0chi))
|
|
9
39
|
|
|
10
40
|
<!-- release:end -->
|
|
11
41
|
|
|
12
42
|
|
|
43
|
+
## 1.10.4 (October 2026)
|
|
44
|
+
|
|
45
|
+
### Documentation
|
|
46
|
+
- Removed video preview dimensions ([#322b4b1](https://github.com/deltabox-studio/toolchain/commit/322b4b1) by [T0chi](https://github.com/T0chi))
|
|
47
|
+
|
|
13
48
|
## 1.10.3 (October 2026)
|
|
14
49
|
|
|
15
50
|
### Bug fixes
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
[](https://github.com/deltabox-studio/toolchain/actions/workflows/ci.yml)
|
|
5
5
|
[](https://www.npmjs.com/package/@deltabox/toolchain)
|
|
6
6
|
|
|
7
|
-
All-in-one
|
|
7
|
+
All-in-one development toolchain that let's you scaffold projects, generate and manage configs, tsconfigs, custom templates, syncing, changelogs, CI, Vite+, migrations, and more.
|
|
8
8
|
|
|
9
9
|
- Save and use templates (local/remote) so you never have to scaffold the same projects over and over again.
|
|
10
10
|
- Generate config types, env variables, cli flags, markdown and JSON schemas, so your codebase stays consistent, validated and well-documented.
|
|
@@ -15,7 +15,7 @@ All-in-one, config-driven dev toolchain: scaffold projects, generate and manage
|
|
|
15
15
|
See the [list of features](#features).
|
|
16
16
|
|
|
17
17
|
<div align="left">
|
|
18
|
-
<video controls>
|
|
18
|
+
<video width="1342" controls>
|
|
19
19
|
<source src="./apps/docs/public/vscode-example.mp4" type="video/mp4">
|
|
20
20
|
</video>
|
|
21
21
|
</div>
|
package/dist/cli/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import"node:path";import{fileURLToPath as e}from"node:url";import.meta.url;import{LOG_LEVELS as t,logger as n,normalizeLogLevel as r,setLogOverrides as i,stripAnsi as a}from"../packages/shared/src/logger.js";import"../packages/shared/src/index.js";import{version as o}from"../package.js";import{projectCommands as s}from"../packages/project/src/cli/index.js";import{resolveVpCommand as c}from"../packages/vite/src/commands.js";import{viteCommands as l}from"../packages/vite/src/cli/index.js";import{changelogCommands as u}from"../packages/changelog/src/cli/index.js";import{migrateCommands as d}from"../packages/migrate/src/cli/index.js";import{templateCommands as f}from"../packages/template/src/cli/index.js";import{tsconfigCommands as p}from"../packages/tsconfig/src/cli/index.js";import{cleanupCommands as m}from"../packages/tsdown/src/cli/index.js";import{syncCommands as h}from"./commands/index.js";import{isPassthroughCommand as g,registerToolchainCommands as _}from"./register.js";import{runUpdateCheck as v}from"./update-check.js";import{realpathSync as y}from"node:fs";import{Command as b}from"commander";function x(){return[...h(),...p(),...m(),...u(),...d(),...s(),...f(),...l()]}function S(){return new Set(x().map(e=>e.name))}function C(e,t=S()){let n=e[2];return!n||n.startsWith(`-`)||t.has(n)||!c(n)?e:[...e.slice(0,2),`vite`,...e.slice(2)]}function w(e){let t={},n=[];for(let i=0;i<e.length;i++){let a=e[i];if(a===`--`){n.push(...e.slice(i));break}if(a===`--no-color`)t.color=!1;else if(a===`--color`)t.color=!0;else if(a===`--log-level`){let n=e[++i];n!==void 0&&(t.level=r(n))}else a.startsWith(`--log-level=`)?t.level=r(a.slice(12)):n.push(a)}return{argv:n,options:t}}function T(e){let t=!0,n=[];for(let r=0;r<e.length;r++){let i=e[r];if(i===`--`){n.push(...e.slice(r));break}i===`--no-update-check`?t=!1:i===`--update-check`?t=!0:n.push(i)}return{argv:n,updateCheck:t}}function E(){let e=new b,r=e.configureOutput();return e.configureOutput({writeOut:e=>g()?r.writeOut?.(e):n.write(`out`,e),writeErr:e=>g()?r.writeErr?.(e):n.write(`err`,e),getOutHasColors:()=>g()?r.getOutHasColors?.()??!1:n.colors.isColorSupported,getErrHasColors:()=>g()?r.getErrHasColors?.()??!1:n.colors.isColorSupported,stripColor:e=>g()?r.stripColor?.(e)??e:a(e)}),e.name(`dbx`).description(`All-in-one project toolchain: configs, tsconfigs, changelogs, scaffolding.`).version(o,`-V, --version`,`Output the version number`).option(`--log-level <level>`,`Minimum log level (${t.join(`|`)}).`).option(`--no-color`,`Disable coloured output.`).option(`--no-update-check`,`Do not check for a newer dbx version.`).showHelpAfterError(),e.configureHelp({styleTitle:e=>n.colors.bold(e),styleCommandText:e=>n.colors.cyan(e),styleOptionText:e=>n.colors.yellow(e),styleOptionTerm:e=>n.colors.yellow(e),styleSubcommandText:e=>n.colors.cyan(e),styleSubcommandTerm:e=>n.colors.cyan(e),styleArgumentText:e=>n.colors.yellow(e),styleArgumentTerm:e=>n.colors.yellow(e)}),_(e,x()),e}async function D(e=process.argv){let{argv:t,options:n}=w(e),{argv:r,updateCheck:a}=T(t);i(n);let s=e.some(e=>e===`--help`||e===`-h`||e===`--version`),c=r.some(e=>e===`--json`);!s&&!c&&v(o,a),await E().parseAsync(C(r))}function O(){let t=process.argv[1];if(!t)return!1;try{return y(t)===e(import.meta.url)}catch{return!1}}O()&&D();export{x as builtinCommands,E as createCli,w as extractLogOptions,T as extractUpdateCheck,_ as registerToolchainCommands,D as runCli,C as withDefaultVite};
|
|
2
|
+
import"node:path";import{fileURLToPath as e}from"node:url";import.meta.url;import{LOG_LEVELS as t,logger as n,normalizeLogLevel as r,setLogOverrides as i,stripAnsi as a}from"../packages/shared/src/logger.js";import"../packages/shared/src/index.js";import{version as o}from"../package.js";import{projectCommands as s}from"../packages/project/src/cli/index.js";import{resolveVpCommand as c}from"../packages/vite/src/commands.js";import{viteCommands as l}from"../packages/vite/src/cli/index.js";import{changelogCommands as u}from"../packages/changelog/src/cli/index.js";import{migrateCommands as d}from"../packages/migrate/src/cli/index.js";import{templateCommands as f}from"../packages/template/src/cli/index.js";import{tsconfigCommands as p}from"../packages/tsconfig/src/cli/index.js";import{cleanupCommands as m}from"../packages/tsdown/src/cli/index.js";import{syncCommands as h}from"./commands/index.js";import{isPassthroughCommand as g,registerToolchainCommands as _}from"./register.js";import{runUpdateCheck as v}from"./update-check.js";import{realpathSync as y}from"node:fs";import{Command as b}from"commander";function x(){return[...h(),...p(),...m(),...u(),...d(),...s(),...f(),...l()]}function S(){return new Set(x().map(e=>e.name))}function C(e,t=S()){let n=e[2];return!n||n.startsWith(`-`)||t.has(n)||!c(n)?e:[...e.slice(0,2),`vite`,...e.slice(2)]}function w(e){let t={},n=[];for(let i=0;i<e.length;i++){let a=e[i];if(a===`--`){n.push(...e.slice(i));break}if(a===`--no-color`)t.color=!1;else if(a===`--color`)t.color=!0;else if(a===`--log-level`){let n=e[++i];n!==void 0&&(t.level=r(n))}else a.startsWith(`--log-level=`)?t.level=r(a.slice(12)):n.push(a)}return{argv:n,options:t}}function T(e){let t=!0,n=[];for(let r=0;r<e.length;r++){let i=e[r];if(i===`--`){n.push(...e.slice(r));break}i===`--no-update-check`?t=!1:i===`--update-check`?t=!0:n.push(i)}return{argv:n,updateCheck:t}}function E(){let e=new b,r=e.configureOutput();return e.configureOutput({writeOut:e=>g()?r.writeOut?.(e):n.write(`out`,e),writeErr:e=>g()?r.writeErr?.(e):n.write(`err`,e),getOutHasColors:()=>g()?r.getOutHasColors?.()??!1:n.colors.isColorSupported,getErrHasColors:()=>g()?r.getErrHasColors?.()??!1:n.colors.isColorSupported,stripColor:e=>g()?r.stripColor?.(e)??e:a(e)}),e.name(`dbx`).description(`All-in-one project toolchain: configs, tsconfigs, changelogs, CI, templates, scaffolding, migrations.`).version(o,`-V, --version`,`Output the version number`).option(`--log-level <level>`,`Minimum log level (${t.join(`|`)}).`).option(`--no-color`,`Disable coloured output.`).option(`--no-update-check`,`Do not check for a newer dbx version.`).showHelpAfterError(),e.configureHelp({styleTitle:e=>n.colors.bold(e),styleCommandText:e=>n.colors.cyan(e),styleOptionText:e=>n.colors.yellow(e),styleOptionTerm:e=>n.colors.yellow(e),styleSubcommandText:e=>n.colors.cyan(e),styleSubcommandTerm:e=>n.colors.cyan(e),styleArgumentText:e=>n.colors.yellow(e),styleArgumentTerm:e=>n.colors.yellow(e)}),_(e,x()),e}async function D(e=process.argv){let{argv:t,options:n}=w(e),{argv:r,updateCheck:a}=T(t);i(n);let s=e.some(e=>e===`--help`||e===`-h`||e===`--version`),c=r.some(e=>e===`--json`);!s&&!c&&v(o,a),await E().parseAsync(C(r))}function O(){let t=process.argv[1];if(!t)return!1;try{return y(t)===e(import.meta.url)}catch{return!1}}O()&&D();export{x as builtinCommands,E as createCli,w as extractLogOptions,T as extractUpdateCheck,_ as registerToolchainCommands,D as runCli,C as withDefaultVite};
|
package/dist/package.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"node:path";import"node:url";import.meta.url;var e=`1.
|
|
1
|
+
import"node:path";import"node:url";import.meta.url;var e=`1.11.0`;export{e as version};
|
|
@@ -1 +1 @@
|
|
|
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{createMonorepoRootFiles as t,createRootProjectFiles as n,createWorkspaceFiles as r,writeGeneratedFiles as i}from"../typescript.js";import{generateProjectConfigs as a}from"../config.js";const o=[{flags:`--no-config`,description:`Skip the dbx.config.ts file.`},{flags:`--type <type>`,description:`Project type: project | monorepo-root | monorepo-workspace.`}],s={flags:`--package-manager <pm>`,description:`Package manager: yarn (default) | pnpm | npm | bun.`},c=[`project`,`monorepo-root`,`monorepo-workspace`];function l(e,t){let n=String(e.name??t.project?.name??``).trim();if(!n)throw Error("a project name is required: pass `--name <name>` or set `project.name` in dbx.config.*.");return n}function u(e,t
|
|
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{createMonorepoRootFiles as t,createRootProjectFiles as n,createWorkspaceFiles as r,writeGeneratedFiles as i}from"../typescript.js";import{generateProjectConfigs as a}from"../config.js";const o=[{flags:`--no-config`,description:`Skip the dbx.config.ts file.`},{flags:`--type <type>`,description:`Project type: project | monorepo-root | monorepo-workspace.`}],s={flags:`--package-manager <pm>`,description:`Package manager: yarn (default) | pnpm | npm | bun.`},c=[`project`,`monorepo-root`,`monorepo-workspace`];function l(e,t){let n=String(e.name??t.project?.name??``).trim();if(!n)throw Error("a project name is required: pass `--name <name>` or set `project.name` in dbx.config.*.");return n}function u(e,t){let n=e.type??t;if(!c.includes(n))throw Error(`invalid project type "${n}" (expected one of: ${c.join(`, `)}).`);return n}function d(){return[{name:`project:init`,description:`Scaffold a single-package TypeScript project.`,options:[{flags:`-n, --name <name>`,description:`Project name.`},{flags:`-s, --scope <scope>`,description:`npm scope, eg. @acme.`},{flags:`-o, --out <dir>`,description:`Output directory (default: cwd).`},s,...o],run:(t,r)=>{let a=l(t,r.config),o=n({name:a,...t.scope?{scope:t.scope}:{},...t.packageManager?{packageManager:t.packageManager}:{},type:u(t,`project`),includeConfig:t.config??!0}),s=i(o,t.out??r.cwd);for(let t of s)e.info(`Created ${t}`)}},{name:`project:init:monorepo`,description:`Scaffold a monorepo root (add --example for one example workspace).`,options:[{flags:`-n, --name <name>`,description:`Project name.`},{flags:`-s, --scope <scope>`,description:`npm scope, eg. @acme.`},{flags:`-o, --out <dir>`,description:`Output directory (default: cwd).`},{flags:`--example`,description:`Also scaffold one example workspace package.`},s,...o],run:(n,a)=>{let o=l(n,a.config),s=n.scope??a.config.project?.scope??`@${o}`,c=n.out??a.cwd,d=n.config??!0,f=u(n,`monorepo-root`),p=!!n.example,m=n.packageManager,h=t({name:o,scope:s,type:f,includeConfig:d,...m?{packageManager:m}:{},workspaces:p?[{alias:`core`,dir:`packages/core`}]:[]});p&&h.push(...r({name:o,scope:s,wsName:`core`,wsDir:`packages/core`,type:`monorepo-workspace`,includeConfig:d,useCatalog:!0,...m?{packageManager:m}:{}}).map(e=>({...e,path:`packages/core/${e.path}`})));let g=i(h,c);for(let t of g)e.info(`Created ${t}`)}},{name:`project:init:workspace`,description:`Scaffold a monorepo workspace package into an existing monorepo root.`,options:[{flags:`-n, --name <name>`,description:`Workspace package name (unscoped).`},{flags:`-s, --scope <scope>`,description:`npm scope, eg. @acme.`},{flags:`-r, --root <dir>`,description:`Monorepo root (default: cwd).`},{flags:`-d, --dir <dir>`,description:`Workspace dir relative to the root (default: packages/<name>).`},s,...o],run:(t,n)=>{let a=t.root??n.cwd,o=l(t,n.config),s=t.scope??n.config.project?.scope??`@${o}`,c=(t.dir??`packages/${o}`).replace(/\\/g,`/`).replace(/\/+$/,``),d=t.config??!0,f=u(t,`monorepo-workspace`),p=t.packageManager,m=r({name:o,scope:s,wsName:o,wsDir:c,type:f,includeConfig:d,...p?{packageManager:p}:{}}).map(e=>({...e,path:`${c}/${e.path}`})),h=i(m,a);for(let t of h)e.info(`Created ${t}`)}},{name:`project:config`,description:`Generate dbx.config.ts for existing projects that are missing one.`,options:[{flags:`--cwd <dir>`,description:`Root to scan (default: cwd).`},{flags:`--include <pattern...>`,description:`Only projects matching these patterns (glob or substring).`},{flags:`--exclude <pattern...>`,description:`Skip projects matching these patterns (glob or substring).`},{flags:`--type <type>`,description:`Force a project type for every config.`},{flags:`--force`,description:`Overwrite configs that already exist.`},{flags:`--dry-run`,description:`Report what would be written without writing.`},{flags:`--json`,description:`Print the result as JSON.`}],run:(t,n)=>{let r=t.cwd??n.cwd,i=a({root:r,...t.include?{include:t.include}:{},...t.exclude?{exclude:t.exclude}:{},...t.type?{type:t.type}:{},force:!!t.force,dryRun:!!t.dryRun});if(t.json){e.raw(JSON.stringify(i,null,4));return}let o=i.dryRun?`would create`:`created`;e.info(`${o} ${i.created.length} config(s), skipped ${i.skipped.length}.`);for(let t of i.configs)t.created&&e.info(` + ${t.rel===`.`?`dbx.config.ts`:`${t.rel}/dbx.config.ts`} [${t.type}]`)}}]}export{d as projectCommands};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deltabox/toolchain",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "All-in-one
|
|
3
|
+
"version": "1.11.0",
|
|
4
|
+
"description": "All-in-one development toolchain that let's you scaffold projects, generate and manage configs, tsconfigs, custom templates, syncing, changelogs, CI, Vite+, migrations, and more.",
|
|
5
5
|
"homepage": "https://toolchain.deltabox.studio",
|
|
6
6
|
"author": "Victor Sango <victor@deltabox.studio>",
|
|
7
7
|
"repository": {
|
|
@@ -79,17 +79,17 @@
|
|
|
79
79
|
"@commitlint/cli": "^21.2.2",
|
|
80
80
|
"@commitlint/config-conventional": "^21.2.2",
|
|
81
81
|
"@deltabox/toolchain": "portal:.",
|
|
82
|
-
"@deltabox/toolchain-biome": "1.
|
|
83
|
-
"@deltabox/toolchain-changelog": "1.
|
|
84
|
-
"@deltabox/toolchain-config": "1.
|
|
85
|
-
"@deltabox/toolchain-core": "1.
|
|
86
|
-
"@deltabox/toolchain-migrate": "1.
|
|
87
|
-
"@deltabox/toolchain-project": "1.
|
|
88
|
-
"@deltabox/toolchain-shared": "1.
|
|
89
|
-
"@deltabox/toolchain-template": "1.
|
|
90
|
-
"@deltabox/toolchain-tsconfig": "1.
|
|
91
|
-
"@deltabox/toolchain-tsdown": "1.
|
|
92
|
-
"@deltabox/toolchain-vite": "1.
|
|
82
|
+
"@deltabox/toolchain-biome": "1.11.0",
|
|
83
|
+
"@deltabox/toolchain-changelog": "1.11.0",
|
|
84
|
+
"@deltabox/toolchain-config": "1.11.0",
|
|
85
|
+
"@deltabox/toolchain-core": "1.11.0",
|
|
86
|
+
"@deltabox/toolchain-migrate": "1.11.0",
|
|
87
|
+
"@deltabox/toolchain-project": "1.11.0",
|
|
88
|
+
"@deltabox/toolchain-shared": "1.11.0",
|
|
89
|
+
"@deltabox/toolchain-template": "1.11.0",
|
|
90
|
+
"@deltabox/toolchain-tsconfig": "1.11.0",
|
|
91
|
+
"@deltabox/toolchain-tsdown": "1.11.0",
|
|
92
|
+
"@deltabox/toolchain-vite": "1.11.0",
|
|
93
93
|
"@types/node": "^22.10.2",
|
|
94
94
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
95
95
|
"cross-env": "^10.1.0",
|