@deltabox/toolchain 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -4
- package/dist/cli/index.js +1 -1
- package/dist/cli/register.js +1 -1
- package/dist/package.js +1 -1
- package/dist/packages/changelog/src/utils/release-notes.js +1 -1
- package/package.json +12 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 2.1.
|
|
3
|
+
## 2.1.1 (October 2026)
|
|
4
4
|
|
|
5
5
|
<!-- release:start -->
|
|
6
6
|
|
|
7
|
-
###
|
|
7
|
+
### Bug fixes
|
|
8
8
|
#### Changelog
|
|
9
|
-
-
|
|
10
|
-
-
|
|
9
|
+
- Use the release-notes helper for releases ([#36616f0](https://github.com/deltabox-studio/toolchain/commit/36616f0) by [T0chi](https://github.com/T0chi))
|
|
10
|
+
- Replace the custom release workflow's awk/git-describe extraction with dbx changelog --release-notes, treat --release-notes as machine output, and normalize v-prefixed current versions.
|
|
11
11
|
|
|
12
12
|
<!-- release:end -->
|
|
13
13
|
|
|
14
14
|
|
|
15
|
+
## 2.1.0 (October 2026)
|
|
16
|
+
|
|
17
|
+
### New features
|
|
18
|
+
#### Changelog
|
|
19
|
+
- Configure breaking-change detection ([#f80634f](https://github.com/deltabox-studio/toolchain/commit/f80634f) by [T0chi](https://github.com/T0chi))
|
|
20
|
+
- Detect breaking changes by Conventional Commits rules by default (! in the subject or a BREAKING CHANGE: footer) and add a changelog.breaking / ci.changelog.breaking override (conventional, ny, alse, pattern/match, or a callback).
|
|
21
|
+
|
|
15
22
|
## 2.0.1 (October 2026)
|
|
16
23
|
|
|
17
24
|
### Bug fixes
|
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{loadToolchainConfig as o}from"../packages/core/src/loader.js";import"../packages/core/src/index.js";import{migrateCommands as s}from"../packages/migrate/src/cli/index.js";import{version as c}from"../package.js";import{projectCommands as l}from"../packages/project/src/cli/index.js";import{resolveVpCommand as u}from"../packages/vite/src/commands.js";import{viteCommands as d}from"../packages/vite/src/cli/index.js";import{changelogCommands as f}from"../packages/changelog/src/cli/index.js";import{templateCommands as p}from"../packages/template/src/cli/index.js";import{tsconfigCommands as m}from"../packages/tsconfig/src/cli/index.js";import{cleanupCommands as h}from"../packages/tsdown/src/cli/index.js";import{extractConfigSelection as g,setConfigSelection as _}from"./config-selection.js";import{syncCommands as v}from"./commands/index.js";import{isPassthroughCommand as y,registerToolchainCommands as b}from"./register.js";import{runUpdateCheck as x}from"./update-check.js";import{realpathSync as S}from"node:fs";import{Command as C}from"commander";function w(e){return[...v(e),...m(),...h(),...f(),...s(),...l(),...p(),...d()]}function T(e=w()){return new Set(e.map(e=>e.name))}function E(e,t=T()){let n=e[2];return!n||n.startsWith(`-`)||t.has(n)||!u(n)?e:[...e.slice(0,2),`vite`,...e.slice(2)]}function D(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 O(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 k(e=w()){let r=new C,i=r.configureOutput();return r.configureOutput({writeOut:e=>y()?i.writeOut?.(e):n.write(`out`,e),writeErr:e=>y()?i.writeErr?.(e):n.write(`err`,e),getOutHasColors:()=>y()?i.getOutHasColors?.()??!1:n.colors.isColorSupported,getErrHasColors:()=>y()?i.getErrHasColors?.()??!1:n.colors.isColorSupported,stripColor:e=>y()?i.stripColor?.(e)??e:a(e)}),r.name(`dbx`).description(`All-in-one project toolchain: configs, tsconfigs, changelogs, CI, templates, scaffolding, migrations.`).version(c,`-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.`).option(`--config <file>`,`Use a specific dbx config file.`).option(`--no-config`,`Ignore discovered config; use CLI flags/env only.`).showHelpAfterError(),r.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)}),b(r,e),r}async function A(e=process.argv){let t=w(),n=T(t),r=new Set(t.filter(e=>e.passthrough).map(e=>e.name)),{argv:a,options:s}=D(e),{argv:l,updateCheck:d}=O(a),{argv:f,selection:p}=g(l,e=>r.has(e)||!n.has(e)&&u(e)!==void 0);_(p),i(s);let m=w((await o(process.cwd(),{tolerant:!0,skipHooks:!0,...p})).config),h=T(m),v=e.some(e=>e===`--help`||e===`-h`||e===`--version`),y=/* @__PURE__ */ new Set([`template:info`]),b=/* @__PURE__ */ new Set([`--json`,`--alias`,`--paths`,`--references`]),S=f.some(e=>b.has(e))||f[2]!==void 0&&y.has(f[2]);!v&&!S&&x(c,d),await k(m).parseAsync(E(f,h))}function j(){let t=process.argv[1];if(!t)return!1;try{return S(t)===e(import.meta.url)}catch{return!1}}j()&&A();export{w as builtinCommands,k as createCli,g as extractConfigSelection,D as extractLogOptions,O as extractUpdateCheck,b as registerToolchainCommands,A as runCli,E 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{loadToolchainConfig as o}from"../packages/core/src/loader.js";import"../packages/core/src/index.js";import{migrateCommands as s}from"../packages/migrate/src/cli/index.js";import{version as c}from"../package.js";import{projectCommands as l}from"../packages/project/src/cli/index.js";import{resolveVpCommand as u}from"../packages/vite/src/commands.js";import{viteCommands as d}from"../packages/vite/src/cli/index.js";import{changelogCommands as f}from"../packages/changelog/src/cli/index.js";import{templateCommands as p}from"../packages/template/src/cli/index.js";import{tsconfigCommands as m}from"../packages/tsconfig/src/cli/index.js";import{cleanupCommands as h}from"../packages/tsdown/src/cli/index.js";import{extractConfigSelection as g,setConfigSelection as _}from"./config-selection.js";import{syncCommands as v}from"./commands/index.js";import{isPassthroughCommand as y,registerToolchainCommands as b}from"./register.js";import{runUpdateCheck as x}from"./update-check.js";import{realpathSync as S}from"node:fs";import{Command as C}from"commander";function w(e){return[...v(e),...m(),...h(),...f(),...s(),...l(),...p(),...d()]}function T(e=w()){return new Set(e.map(e=>e.name))}function E(e,t=T()){let n=e[2];return!n||n.startsWith(`-`)||t.has(n)||!u(n)?e:[...e.slice(0,2),`vite`,...e.slice(2)]}function D(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 O(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 k(e=w()){let r=new C,i=r.configureOutput();return r.configureOutput({writeOut:e=>y()?i.writeOut?.(e):n.write(`out`,e),writeErr:e=>y()?i.writeErr?.(e):n.write(`err`,e),getOutHasColors:()=>y()?i.getOutHasColors?.()??!1:n.colors.isColorSupported,getErrHasColors:()=>y()?i.getErrHasColors?.()??!1:n.colors.isColorSupported,stripColor:e=>y()?i.stripColor?.(e)??e:a(e)}),r.name(`dbx`).description(`All-in-one project toolchain: configs, tsconfigs, changelogs, CI, templates, scaffolding, migrations.`).version(c,`-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.`).option(`--config <file>`,`Use a specific dbx config file.`).option(`--no-config`,`Ignore discovered config; use CLI flags/env only.`).showHelpAfterError(),r.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)}),b(r,e),r}async function A(e=process.argv){let t=w(),n=T(t),r=new Set(t.filter(e=>e.passthrough).map(e=>e.name)),{argv:a,options:s}=D(e),{argv:l,updateCheck:d}=O(a),{argv:f,selection:p}=g(l,e=>r.has(e)||!n.has(e)&&u(e)!==void 0);_(p),i(s);let m=w((await o(process.cwd(),{tolerant:!0,skipHooks:!0,...p})).config),h=T(m),v=e.some(e=>e===`--help`||e===`-h`||e===`--version`),y=/* @__PURE__ */ new Set([`template:info`]),b=/* @__PURE__ */ new Set([`--json`,`--alias`,`--paths`,`--references`,`--release-notes`]),S=f.some(e=>b.has(e))||f[2]!==void 0&&y.has(f[2]);!v&&!S&&x(c,d),await k(m).parseAsync(E(f,h))}function j(){let t=process.argv[1];if(!t)return!1;try{return S(t)===e(import.meta.url)}catch{return!1}}j()&&A();export{w as builtinCommands,k as createCli,g as extractConfigSelection,D as extractLogOptions,O as extractUpdateCheck,b as registerToolchainCommands,A as runCli,E as withDefaultVite};
|
package/dist/cli/register.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"node:path";import"node:url";import.meta.url;import{getLogOverrides as e,logger as t,setLogConfig as n,setLogOverrides as r}from"../packages/shared/src/logger.js";import"../packages/shared/src/index.js";import{defaultSyncTasks as i}from"../sync.js";import{getConfigSelection as a}from"./config-selection.js";import{loadContext as o}from"./context.js";import{optionKeys as s}from"./options.js";import{intro as c,outro as l}from"@clack/prompts";let u=!1;function d(){return u}function f(d,f){let p=new Set(f.filter(e=>e.passthrough).map(e=>e.name));d.hook(`preSubcommand`,(e,t)=>{u=p.has(t.name())});for(let u of f){let f=d.command(u.name).description(u.description);u.passthrough&&f.allowUnknownOption(!0).allowExcessArguments(!0);let p=/* @__PURE__ */ new Set;for(let e of u.options??[]){for(let t of s(e.flags))p.add(t);e.multiple?f.option(e.flags,e.description,(e,t=[])=>[...t,e],e.default===void 0?[]:[e.default]):e.default===void 0?f.option(e.flags,e.description):f.option(e.flags,e.description,e.default)}for(let e of u.args??[]){let t=e.required===!1?`[`:`<`,n=e.required===!1?`]`:`>`;f.argument(`${t}${e.name}${e.variadic?`...`:``}${n}`,e.description)}f.action(async(...s)=>{let d=s.pop(),f=s.pop()??{},m={};for(let e of p)d.getOptionValueSource(e)===`cli`&&(m[e]=f[e]);if(u.passthrough)m.args=d.args.slice();else for(let[e,t]of(u.args??[]).entries())s[e]!==void 0&&(m[t.name]=s[e]);let h=m.cwd??process.cwd(),g=u.name===`template:info`||m.json===!0||m.alias===!0||m.paths===!0||m.references===!0,_=!u.passthrough&&!g&&m.quiet!==!0,v=`${d.parent?.name()??``} ${u.name}`.trim();_&&c(v);try{let s=await o(h),c=a();s.error&&t.warn(s.error),n(s.config.logger),m.quiet===!0&&r({...e(),level:`error`});let d={cwd:h,projectType:s.projectType,config:s.config,ownConfig:s.ownConfig,tokens:s.tokens,syncTasks:i(),...s.path?{configPath:s.path}:{},...c.noConfig?{noConfig:!0}:{},...s.error?{configError:s.error}:{}};await u.run(m,d),_&&l(process.exitCode?`Failed`:`Done`)}catch(e){let n=e instanceof Error?e.message:String(e);t.error(n),_&&l(`Failed`),process.exitCode=1}})}return d}export{d as isPassthroughCommand,f as registerToolchainCommands};
|
|
1
|
+
import"node:path";import"node:url";import.meta.url;import{getLogOverrides as e,logger as t,setLogConfig as n,setLogOverrides as r}from"../packages/shared/src/logger.js";import"../packages/shared/src/index.js";import{defaultSyncTasks as i}from"../sync.js";import{getConfigSelection as a}from"./config-selection.js";import{loadContext as o}from"./context.js";import{optionKeys as s}from"./options.js";import{intro as c,outro as l}from"@clack/prompts";let u=!1;function d(){return u}function f(d,f){let p=new Set(f.filter(e=>e.passthrough).map(e=>e.name));d.hook(`preSubcommand`,(e,t)=>{u=p.has(t.name())});for(let u of f){let f=d.command(u.name).description(u.description);u.passthrough&&f.allowUnknownOption(!0).allowExcessArguments(!0);let p=/* @__PURE__ */ new Set;for(let e of u.options??[]){for(let t of s(e.flags))p.add(t);e.multiple?f.option(e.flags,e.description,(e,t=[])=>[...t,e],e.default===void 0?[]:[e.default]):e.default===void 0?f.option(e.flags,e.description):f.option(e.flags,e.description,e.default)}for(let e of u.args??[]){let t=e.required===!1?`[`:`<`,n=e.required===!1?`]`:`>`;f.argument(`${t}${e.name}${e.variadic?`...`:``}${n}`,e.description)}f.action(async(...s)=>{let d=s.pop(),f=s.pop()??{},m={};for(let e of p)d.getOptionValueSource(e)===`cli`&&(m[e]=f[e]);if(u.passthrough)m.args=d.args.slice();else for(let[e,t]of(u.args??[]).entries())s[e]!==void 0&&(m[t.name]=s[e]);let h=m.cwd??process.cwd(),g=u.name===`template:info`||m.json===!0||m.alias===!0||m.paths===!0||m.references===!0||m.releaseNotes!==void 0,_=!u.passthrough&&!g&&m.quiet!==!0,v=`${d.parent?.name()??``} ${u.name}`.trim();_&&c(v);try{let s=await o(h),c=a();s.error&&t.warn(s.error),n(s.config.logger),m.quiet===!0&&r({...e(),level:`error`});let d={cwd:h,projectType:s.projectType,config:s.config,ownConfig:s.ownConfig,tokens:s.tokens,syncTasks:i(),...s.path?{configPath:s.path}:{},...c.noConfig?{noConfig:!0}:{},...s.error?{configError:s.error}:{}};await u.run(m,d),_&&l(process.exitCode?`Failed`:`Done`)}catch(e){let n=e instanceof Error?e.message:String(e);t.error(n),_&&l(`Failed`),process.exitCode=1}})}return d}export{d as isPassthroughCommand,f as registerToolchainCommands};
|
package/dist/package.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"node:path";import"node:url";import.meta.url;var e=`2.1.
|
|
1
|
+
import"node:path";import"node:url";import.meta.url;var e=`2.1.1`;export{e as version};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{resolve as e}from"node:path";import"node:url";import.meta.url;import{repoRoot as t}from"./repo.js";import{existsSync as n,readFileSync as r}from"node:fs";import{spawnSync as i}from"node:child_process";function a(e){return/(?:^|@)v?(\d+\.\d+\.\d+)$/.exec(e.trim())?.[1]}function o(e){let t=[];for(let n of e.matchAll(/^##\s+(\d+\.\d+\.\d+)(?:\s|$)/gm))n.index!==void 0&&t.push({version:n[1],index:n.index});return t}function s(e,t,n){let r=o(e);if(r.length===0)return``;let i=r[0].index,s=new Set(t.map(a).filter(e=>e!==void 0)),c=r.find(e=>e.version!==
|
|
1
|
+
import{resolve as e}from"node:path";import"node:url";import.meta.url;import{repoRoot as t}from"./repo.js";import{existsSync as n,readFileSync as r}from"node:fs";import{spawnSync as i}from"node:child_process";function a(e){return/(?:^|@)v?(\d+\.\d+\.\d+)$/.exec(e.trim())?.[1]}function o(e){let t=[];for(let n of e.matchAll(/^##\s+(\d+\.\d+\.\d+)(?:\s|$)/gm))n.index!==void 0&&t.push({version:n[1],index:n.index});return t}function s(e,t,n){let r=o(e);if(r.length===0)return``;let i=r[0].index,s=new Set(t.map(a).filter(e=>e!==void 0)),c=n?a(n)??n:void 0,l=r.find(e=>e.version!==c&&s.has(e.version)),u=l?l.index:r[1]?.index??e.length;return u<=i?``:e.slice(i,u).trimEnd()}function c(a,o=t()){let c=e(o,`CHANGELOG.md`),l=``;if(n(c))try{l=r(c,`utf8`).replace(/^\uFEFF/,``)}catch{l=``}let u=(i(`git`,[`tag`,`--merged`,`HEAD`,`--sort=-v:refname`],{cwd:o,encoding:`utf8`}).stdout??``).split(/\r?\n/).filter(Boolean);return s(l,u,a)||`Release ${a}`}export{s as buildReleaseNotes,a as normalizeReleaseVersion,c as releaseNotesFromGit};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deltabox/toolchain",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
4
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>",
|
|
@@ -84,17 +84,17 @@
|
|
|
84
84
|
"@commitlint/cli": "^21.2.2",
|
|
85
85
|
"@commitlint/config-conventional": "^21.2.2",
|
|
86
86
|
"@deltabox/toolchain": "portal:.",
|
|
87
|
-
"@deltabox/toolchain-biome": "2.1.
|
|
88
|
-
"@deltabox/toolchain-changelog": "2.1.
|
|
89
|
-
"@deltabox/toolchain-config": "2.1.
|
|
90
|
-
"@deltabox/toolchain-core": "2.1.
|
|
91
|
-
"@deltabox/toolchain-migrate": "2.1.
|
|
92
|
-
"@deltabox/toolchain-project": "2.1.
|
|
93
|
-
"@deltabox/toolchain-shared": "2.1.
|
|
94
|
-
"@deltabox/toolchain-template": "2.1.
|
|
95
|
-
"@deltabox/toolchain-tsconfig": "2.1.
|
|
96
|
-
"@deltabox/toolchain-tsdown": "2.1.
|
|
97
|
-
"@deltabox/toolchain-vite": "2.1.
|
|
87
|
+
"@deltabox/toolchain-biome": "2.1.1",
|
|
88
|
+
"@deltabox/toolchain-changelog": "2.1.1",
|
|
89
|
+
"@deltabox/toolchain-config": "2.1.1",
|
|
90
|
+
"@deltabox/toolchain-core": "2.1.1",
|
|
91
|
+
"@deltabox/toolchain-migrate": "2.1.1",
|
|
92
|
+
"@deltabox/toolchain-project": "2.1.1",
|
|
93
|
+
"@deltabox/toolchain-shared": "2.1.1",
|
|
94
|
+
"@deltabox/toolchain-template": "2.1.1",
|
|
95
|
+
"@deltabox/toolchain-tsconfig": "2.1.1",
|
|
96
|
+
"@deltabox/toolchain-tsdown": "2.1.1",
|
|
97
|
+
"@deltabox/toolchain-vite": "2.1.1",
|
|
98
98
|
"@types/node": "^22.10.2",
|
|
99
99
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
100
100
|
"cross-env": "^10.1.0",
|