@deltabox/toolchain 1.11.4 → 2.0.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.
Files changed (222) hide show
  1. package/CHANGELOG.md +308 -4
  2. package/README.md +21 -14
  3. package/dist/_virtual/_rolldown/runtime.js +1 -1
  4. package/dist/changelog.d.ts +7 -6
  5. package/dist/changelog.js +1 -1
  6. package/dist/cli/commands/index.js +1 -1
  7. package/dist/cli/commands/providers.js +1 -1
  8. package/dist/cli/commands/reset.js +1 -1
  9. package/dist/cli/commands/shared.js +1 -1
  10. package/dist/cli/commands/sync.js +1 -1
  11. package/dist/cli/commands/watch.js +1 -1
  12. package/dist/cli/config-selection.d.ts +23 -0
  13. package/dist/cli/config-selection.js +1 -0
  14. package/dist/cli/context.js +1 -1
  15. package/dist/cli/index.d.ts +5 -3
  16. package/dist/cli/index.js +1 -1
  17. package/dist/cli/register.js +1 -1
  18. package/dist/config.d.ts +8 -8
  19. package/dist/config.js +1 -1
  20. package/dist/core.d.ts +7 -6
  21. package/dist/core.js +1 -1
  22. package/dist/globals.d.ts +31 -0
  23. package/dist/globals.js +1 -0
  24. package/dist/index.d.ts +32 -11
  25. package/dist/index.js +1 -1
  26. package/dist/migrate.d.ts +3 -2
  27. package/dist/migrate.js +1 -1
  28. package/dist/package.js +1 -1
  29. package/dist/packages/biome/src/index.d.ts +2 -1
  30. package/dist/packages/biome/src/index.js +1 -1
  31. package/dist/packages/changelog/src/cli/index.js +1 -1
  32. package/dist/packages/changelog/src/index.d.ts +8 -7
  33. package/dist/packages/changelog/src/index.js +1 -1
  34. package/dist/packages/changelog/src/run-workflows.d.ts +19 -4
  35. package/dist/packages/changelog/src/run-workflows.js +1 -1
  36. package/dist/packages/changelog/src/run.d.ts +3 -3
  37. package/dist/packages/changelog/src/run.js +1 -1
  38. package/dist/packages/changelog/src/sync.d.ts +7 -4
  39. package/dist/packages/changelog/src/sync.js +1 -1
  40. package/dist/packages/changelog/src/utils/format.d.ts +2 -1
  41. package/dist/packages/changelog/src/utils/format.js +5 -5
  42. package/dist/packages/changelog/src/utils/git.js +1 -1
  43. package/dist/packages/changelog/src/utils/reformat.d.ts +2 -1
  44. package/dist/packages/changelog/src/utils/reformat.js +3 -3
  45. package/dist/packages/changelog/src/utils/summary.d.ts +25 -2
  46. package/dist/packages/changelog/src/utils/summary.js +3 -1
  47. package/dist/packages/changelog/src/utils/types.d.ts +34 -2
  48. package/dist/packages/changelog/src/utils/version.d.ts +1 -0
  49. package/dist/packages/changelog/src/utils/versioning.d.ts +25 -4
  50. package/dist/packages/changelog/src/utils/versioning.js +1 -1
  51. package/dist/packages/changelog/src/utils/write.js +1 -1
  52. package/dist/packages/changelog/src/workflows.d.ts +27 -7
  53. package/dist/packages/changelog/src/workflows.js +5 -5
  54. package/dist/packages/config/src/cli/index.js +1 -1
  55. package/dist/packages/config/src/collect.d.ts +10 -8
  56. package/dist/packages/config/src/collect.js +1 -1
  57. package/dist/packages/config/src/config-json.d.ts +4 -4
  58. package/dist/packages/config/src/config-json.js +1 -1
  59. package/dist/packages/config/src/engine.d.ts +14 -25
  60. package/dist/packages/config/src/engine.js +1 -1
  61. package/dist/packages/config/src/env-file.d.ts +4 -4
  62. package/dist/packages/config/src/env-file.js +2 -2
  63. package/dist/packages/config/src/env.d.ts +4 -6
  64. package/dist/packages/config/src/env.js +1 -1
  65. package/dist/packages/config/src/generators/cli.d.ts +6 -6
  66. package/dist/packages/config/src/generators/cli.js +1 -1
  67. package/dist/packages/config/src/generators/env.d.ts +9 -9
  68. package/dist/packages/config/src/generators/env.js +2 -2
  69. package/dist/packages/config/src/generators/index.d.ts +4 -4
  70. package/dist/packages/config/src/generators/index.js +1 -1
  71. package/dist/packages/config/src/generators/json.d.ts +5 -7
  72. package/dist/packages/config/src/generators/json.js +1 -1
  73. package/dist/packages/config/src/generators/markdown.d.ts +57 -35
  74. package/dist/packages/config/src/generators/markdown.js +18 -19
  75. package/dist/packages/config/src/generators/types.d.ts +28 -23
  76. package/dist/packages/config/src/generators/types.js +3 -3
  77. package/dist/packages/config/src/index.d.ts +9 -9
  78. package/dist/packages/config/src/index.js +1 -1
  79. package/dist/packages/config/src/schema.d.ts +31 -3
  80. package/dist/packages/config/src/schema.js +1 -1
  81. package/dist/packages/config/src/types.d.ts +134 -28
  82. package/dist/packages/core/src/editor-config.d.ts +14 -0
  83. package/dist/packages/core/src/editor-config.js +1 -0
  84. package/dist/packages/core/src/graph.js +1 -1
  85. package/dist/packages/core/src/index.d.ts +8 -7
  86. package/dist/packages/core/src/index.js +1 -1
  87. package/dist/packages/core/src/loader.d.ts +20 -2
  88. package/dist/packages/core/src/loader.js +1 -1
  89. package/dist/packages/core/src/manifest.d.ts +20 -1
  90. package/dist/packages/core/src/manifest.js +1 -1
  91. package/dist/packages/core/src/provider-registry.d.ts +48 -3
  92. package/dist/packages/core/src/provider-registry.js +1 -1
  93. package/dist/packages/core/src/reset.d.ts +15 -0
  94. package/dist/packages/core/src/reset.js +1 -1
  95. package/dist/packages/core/src/sync.d.ts +10 -0
  96. package/dist/packages/core/src/sync.js +1 -1
  97. package/dist/packages/core/src/watch.d.ts +9 -0
  98. package/dist/packages/core/src/watch.js +1 -1
  99. package/dist/packages/migrate/src/cli/index.js +1 -1
  100. package/dist/packages/migrate/src/index.d.ts +3 -2
  101. package/dist/packages/migrate/src/index.js +1 -1
  102. package/dist/packages/migrate/src/oxc.d.ts +13 -0
  103. package/dist/packages/migrate/src/oxc.js +1 -0
  104. package/dist/packages/migrate/src/registry.js +1 -1
  105. package/dist/packages/migrate/src/vite-target.js +1 -1
  106. package/dist/packages/migrate/src/vite.d.ts +25 -3
  107. package/dist/packages/migrate/src/vite.js +7 -2
  108. package/dist/packages/project/src/catalogs.d.ts +7 -0
  109. package/dist/packages/project/src/catalogs.js +1 -1
  110. package/dist/packages/project/src/cli/index.js +1 -1
  111. package/dist/packages/project/src/config.d.ts +6 -0
  112. package/dist/packages/project/src/config.js +1 -1
  113. package/dist/packages/project/src/index.d.ts +5 -4
  114. package/dist/packages/project/src/index.js +1 -1
  115. package/dist/packages/project/src/sync.js +1 -1
  116. package/dist/packages/project/src/typescript.d.ts +64 -12
  117. package/dist/packages/project/src/typescript.js +12 -7
  118. package/dist/packages/shared/src/changelog-groups.d.ts +59 -0
  119. package/dist/packages/shared/src/config-schema/biome.d.ts +10 -0
  120. package/dist/packages/shared/src/config-schema/biome.js +1 -0
  121. package/dist/packages/shared/src/config-schema/catalogs.d.ts +14 -0
  122. package/dist/packages/shared/src/config-schema/catalogs.js +1 -0
  123. package/dist/packages/shared/src/config-schema/changelog.d.ts +245 -0
  124. package/dist/packages/shared/src/config-schema/changelog.js +1 -0
  125. package/dist/packages/shared/src/config-schema/ci.d.ts +389 -0
  126. package/dist/packages/shared/src/config-schema/ci.js +1 -0
  127. package/dist/packages/shared/src/config-schema/format.d.ts +38 -0
  128. package/dist/packages/shared/src/config-schema/format.js +1 -0
  129. package/dist/packages/shared/src/config-schema/index.d.ts +1648 -0
  130. package/dist/packages/shared/src/config-schema/index.js +1 -0
  131. package/dist/packages/shared/src/config-schema/logger.d.ts +19 -0
  132. package/dist/packages/shared/src/config-schema/logger.js +1 -0
  133. package/dist/packages/shared/src/config-schema/meta.d.ts +16 -0
  134. package/dist/packages/shared/src/config-schema/meta.js +1 -0
  135. package/dist/packages/shared/src/config-schema/project.d.ts +35 -0
  136. package/dist/packages/shared/src/config-schema/project.js +1 -0
  137. package/dist/packages/shared/src/config-schema/providers.d.ts +9 -0
  138. package/dist/packages/shared/src/config-schema/providers.js +1 -0
  139. package/dist/packages/shared/src/config-schema/registry.d.ts +21 -0
  140. package/dist/packages/shared/src/config-schema/registry.js +1 -0
  141. package/dist/packages/shared/src/config-schema/templates.d.ts +81 -0
  142. package/dist/packages/shared/src/config-schema/templates.js +1 -0
  143. package/dist/packages/shared/src/config-schema/tsconfig.d.ts +30 -0
  144. package/dist/packages/shared/src/config-schema/tsconfig.js +1 -0
  145. package/dist/packages/shared/src/config-schema/vite.d.ts +26 -0
  146. package/dist/packages/shared/src/config-schema/vite.js +1 -0
  147. package/dist/packages/shared/src/config-schema/watch.d.ts +11 -0
  148. package/dist/packages/shared/src/config-schema/watch.js +1 -0
  149. package/dist/packages/shared/src/config-schema/workflow.d.ts +590 -0
  150. package/dist/packages/shared/src/config-schema/workflow.js +1 -0
  151. package/dist/packages/shared/src/config-types.d.ts +290 -90
  152. package/dist/packages/shared/src/fs-utils.js +1 -1
  153. package/dist/packages/shared/src/index.d.ts +26 -7
  154. package/dist/packages/shared/src/index.js +1 -1
  155. package/dist/packages/shared/src/logger.d.ts +26 -3
  156. package/dist/packages/shared/src/logger.js +1 -1
  157. package/dist/packages/shared/src/messages.d.ts +36 -0
  158. package/dist/packages/shared/src/messages.js +1 -0
  159. package/dist/packages/shared/src/object-utils.d.ts +5 -0
  160. package/dist/packages/shared/src/object-utils.js +1 -1
  161. package/dist/packages/shared/src/registry-policy.d.ts +17 -0
  162. package/dist/packages/shared/src/registry-policy.js +1 -0
  163. package/dist/packages/shared/src/toolchain.d.ts +90 -11
  164. package/dist/packages/shared/src/toolchain.js +1 -1
  165. package/dist/packages/shared/src/types.d.ts +6 -0
  166. package/dist/packages/shared/src/vite-defaults.d.ts +29 -0
  167. package/dist/packages/shared/src/vite-defaults.js +1 -0
  168. package/dist/packages/template/src/builtin.js +1 -1
  169. package/dist/packages/template/src/cli/index.js +1 -1
  170. package/dist/packages/template/src/global.d.ts +130 -0
  171. package/dist/packages/template/src/global.js +3 -0
  172. package/dist/packages/template/src/index.d.ts +3 -2
  173. package/dist/packages/template/src/index.js +1 -1
  174. package/dist/packages/template/src/online.d.ts +13 -4
  175. package/dist/packages/template/src/online.js +1 -1
  176. package/dist/packages/template/src/registry.d.ts +2 -1
  177. package/dist/packages/template/src/registry.js +1 -1
  178. package/dist/packages/template/src/scaffold.d.ts +5 -1
  179. package/dist/packages/template/src/scaffold.js +1 -1
  180. package/dist/packages/tsconfig/src/cli/generate/index.d.ts +3 -0
  181. package/dist/packages/tsconfig/src/cli/generate/index.js +1 -1
  182. package/dist/packages/tsconfig/src/cli/generate/utils.d.ts +10 -1
  183. package/dist/packages/tsconfig/src/cli/generate/utils.js +1 -1
  184. package/dist/packages/tsconfig/src/cli/index.js +1 -1
  185. package/dist/packages/tsconfig/src/index.d.ts +7 -4
  186. package/dist/packages/tsconfig/src/index.js +1 -1
  187. package/dist/packages/tsconfig/src/overrides.d.ts +74 -0
  188. package/dist/packages/tsconfig/src/overrides.js +1 -0
  189. package/dist/packages/tsconfig/src/resolve.d.ts +62 -0
  190. package/dist/packages/tsconfig/src/resolve.js +3 -0
  191. package/dist/packages/tsconfig/src/snapshots.d.ts +50 -0
  192. package/dist/packages/tsconfig/src/snapshots.js +1 -0
  193. package/dist/packages/tsconfig/src/sync.d.ts +14 -5
  194. package/dist/packages/tsconfig/src/sync.js +1 -1
  195. package/dist/packages/tsconfig/src/templates/tsconfig.default.js +1 -1
  196. package/dist/packages/tsconfig/src/templates.d.ts +12 -4
  197. package/dist/packages/tsconfig/src/templates.js +1 -1
  198. package/dist/packages/vite/src/index.d.ts +2 -2
  199. package/dist/packages/vite/src/index.js +1 -1
  200. package/dist/packages/vite/src/resolve.d.ts +13 -3
  201. package/dist/packages/vite/src/resolve.js +1 -1
  202. package/dist/packages/vite/src/sync.d.ts +46 -5
  203. package/dist/packages/vite/src/sync.js +5 -2
  204. package/dist/project.d.ts +4 -3
  205. package/dist/project.js +1 -1
  206. package/dist/providers.d.ts +11 -4
  207. package/dist/providers.js +1 -1
  208. package/dist/shared.d.ts +25 -6
  209. package/dist/shared.js +1 -1
  210. package/dist/sync.js +1 -1
  211. package/dist/template.d.ts +3 -2
  212. package/dist/template.js +1 -1
  213. package/dist/tooling.d.ts +21 -0
  214. package/dist/tooling.js +1 -0
  215. package/dist/tsconfig.d.ts +6 -3
  216. package/dist/tsconfig.js +1 -1
  217. package/dist/vite.d.ts +2 -2
  218. package/dist/vite.js +1 -1
  219. package/package.json +28 -23
  220. package/dist/packages/config/src/types.js +0 -1
  221. package/dist/packages/shared/src/config-schema.d.ts +0 -3928
  222. package/dist/packages/shared/src/config-schema.js +0 -1
package/CHANGELOG.md CHANGED
@@ -1,18 +1,322 @@
1
1
  # Changelog
2
2
 
3
- ## 1.11.4 (October 2026)
3
+ ## 2.0.0 (October 2026)
4
4
 
5
5
  <!-- release:start -->
6
6
 
7
+ ### New features
8
+ #### Changelog
9
+ - Customize CC group order and titles ([#856842b](https://github.com/deltabox-studio/toolchain/commit/856842b) by [T0chi](https://github.com/T0chi))
10
+ - Support ordered arrays, title records, hidden groups and callbacks for the whole group config and per-group title/order/hidden values, including --format-only.
11
+ - Add custom workflow paths, listing and non-Yarn support ([#2e96e6e](https://github.com/deltabox-studio/toolchain/commit/2e96e6e) by [T0chi](https://github.com/T0chi))
12
+ - Add a New contributors footer ([#1e49596](https://github.com/deltabox-studio/toolchain/commit/1e49596) by [T0chi](https://github.com/T0chi))
13
+ - scanned range (explicit range start, or the oldest commit's parent).
14
+ login is known) and a nested list of their commit messages, reusing
15
+ the normal commit bullet formatting without the author/body.
16
+ only the CC rule/scope grouping is replaced by major/minor/patch.
17
+ #### Config
18
+ - Type changelog group callbacks ([#a5c6186](https://github.com/deltabox-studio/toolchain/commit/a5c6186) by [T0chi](https://github.com/T0chi))
19
+ - Add the shared ChangelogGroupsSetting types, expose groups on both changelog sections, and regenerate the config schema/types/reference.
20
+ - Revamp config generators and extend tooling customization ([#b924255](https://github.com/deltabox-studio/toolchain/commit/b924255) by [T0chi](https://github.com/T0chi))
21
+ - and generateConfig* functions (optional disk writes, schema metadata)
22
+ - **BREAKING CHANGE:** ConfigScopes, ConfigScopeDef, CONFIG_SECTION_SCHEMAS,
23
+ - CONFIG_TYPE_SCHEMAS and CONFIG_SECTION_DESCRIPTIONS are removed. Consumers
24
+ should use ConfigSchema with generateConfigTypes/Env/Markdown/Cli/All and read
25
+ section descriptions from schema metadata.
26
+ - Support metadata annotations in generated output ([#1417bb2](https://github.com/deltabox-studio/toolchain/commit/1417bb2) by [T0chi](https://github.com/T0chi))
27
+ - Add fmt/lint sections and manual changelog config ([#16000e5](https://github.com/deltabox-studio/toolchain/commit/16000e5) by [T0chi](https://github.com/T0chi))
28
+ - Inherit shared sections and add fmt/lint defaults ([#94add6f](https://github.com/deltabox-studio/toolchain/commit/94add6f) by [T0chi](https://github.com/T0chi))
29
+ - Registry source policies and duplicate template-id prompts ([#e030af7](https://github.com/deltabox-studio/toolchain/commit/e030af7) by [T0chi](https://github.com/T0chi))
30
+ - host and path globs, enforced for local paths, npm registries and
31
+ remote URLs (also when loading global/remote registries and the
32
+ provider/registry listings).
33
+ builtin or project source; non-interactive runs fail with a clear
34
+ `--id` hint instead of prompting.
35
+ plus Templates/Providers docs.
36
+ - Ambient Zod meta types and project-tsconfig typechecks ([#e73661b](https://github.com/deltabox-studio/toolchain/commit/e73661b) by [T0chi](https://github.com/T0chi))
37
+ - `/// <reference types="@deltabox/toolchain/globals" />` and get typed
38
+ `.meta({ env, path, required, example, ... })` fields.
39
+ `ConfigBaseMeta.deprecated` the JSON-Schema boolean.
40
+ instead of `tsconfig.build.json`.
41
+ - Move CI workflows and changelog config under toolchain.ci ([#af1b536](https://github.com/deltabox-studio/toolchain/commit/af1b536) by [T0chi](https://github.com/T0chi))
42
+ - workflows and move the changelog pipeline to `ci.changelog`.
43
+ `ci.changelog.commitlint: false` and fall back to coarse
44
+ major/minor/patch changelog groups.
45
+ `ChangelogBranchesConfig` as a named schema.
46
+ consumers, but reject it in the loader with a migration error.
47
+ into the `config-schema/` folder.
48
+ per-workflow overrides are `WorkflowOptions`, and the new section type
49
+ is `ToolchainCiConfig`.
50
+ generated types.
51
+ - Let defineConfig accept a promise or a callback ([#111776c](https://github.com/deltabox-studio/toolchain/commit/111776c) by [T0chi](https://github.com/T0chi))
52
+ - `defineConfig` now mirrors Vite's helper: the argument may be a plain object,
53
+ a `Promise<DbxConfig>`, or a `() => DbxConfig | Promise<DbxConfig>` callback.
54
+ The loader resolves the module export (awaits a promise, calls a callback and
55
+ awaits its result), so a config can do async work before returning
56
+ `{ toolchain }`.
57
+ #### Vscode
58
+ - Surface workflow conflicts in managed files ([#e692511](https://github.com/deltabox-studio/toolchain/commit/e692511) by [T0chi](https://github.com/T0chi))
59
+ - Read workflowConflicts from the manifest and render them as a warning group with the owning config key.
60
+ - Watch the inputs resolved from the dbx config ([#953f071](https://github.com/deltabox-studio/toolchain/commit/953f071) by [T0chi](https://github.com/T0chi))
61
+ - watch globs: auto-sync now asks the CLI (`dbx watch --list --json`) per
62
+ workspace root and watches the returned globs relative to that root, so
63
+ custom `tsconfig.rootFile`/`defaultFile` names are respected
64
+ ignore stale results from an older resolve
65
+ older pinned `dbx`)
66
+ set value, in any scope, still replaces the resolved inputs
67
+ `tsconfig.default.json`
68
+ the behaviour
69
+ - Add extension settings link to Home ([#f39cb35](https://github.com/deltabox-studio/toolchain/commit/f39cb35) by [T0chi](https://github.com/T0chi))
70
+ - Add Select dbx version to the Home More actions ([#13ef688](https://github.com/deltabox-studio/toolchain/commit/13ef688) by [T0chi](https://github.com/T0chi))
71
+ - Add the Registries view ([#e3e808e](https://github.com/deltabox-studio/toolchain/commit/e3e808e) by [T0chi](https://github.com/T0chi))
72
+ - A new collapsible **Registries** view (below Templates) shows **Providers** and
73
+ (explorer folder or browser for remote URLs), **Add new registry** (the category's
74
+ add flow) and **Remove registry** (removes the path, keeps the files). The title
75
+ bar has **New registry…** / **Remove registry…** (global or project scope), also
76
+ available in the Home "More actions". Removing a template now offers the stored
77
+ global templates too (`template:remove --global`).
78
+ - Rename registry paths, add a version picker and UI polish ([#9c8b51c](https://github.com/deltabox-studio/toolchain/commit/9c8b51c) by [T0chi](https://github.com/T0chi))
79
+ - config and code).
80
+ "which dbx?" notification, only ask when they differ, and add a **Select dbx
81
+ version…** command that pins one in the workspace settings (npx fallback).
82
+ More actions), prefix More-actions buttons with a play glyph, start Managed
83
+ Files collapsed, expand the Vite+ provider by default, and drop unused icon
84
+ resources.
85
+ - Sync the global registry with the VS Code settings ([#86a0671](https://github.com/deltabox-studio/toolchain/commit/86a0671) by [T0chi](https://github.com/T0chi))
86
+ - Add the `deltabox.templatesSearchPaths` setting, record the VS Code user dir in
87
+ the CLI config on activation, and mirror setting changes into it (so the CLI and
88
+ editor agree). Adding a template now asks whether to register it globally (yes
89
+ by default), and adding a provider asks for a project or global scope; the
90
+ Providers view reads the merged registry.
91
+ #### Project
92
+ - Inherit root Oxc config and harden scaffolds ([#56a1895](https://github.com/deltabox-studio/toolchain/commit/56a1895) by [T0chi](https://github.com/T0chi))
93
+ - Nested projects omit local Oxc files/opt-ins when the root owns them, template create gains --force, and scaffold writes now reject duplicates, BOM catalogs and root scope fallbacks are handled.
94
+ - Make scaffolds runnable and safer ([#eab297b](https://github.com/deltabox-studio/toolchain/commit/eab297b) by [T0chi](https://github.com/T0chi))
95
+ - Fold an existing vite config when generating a config ([#5891154](https://github.com/deltabox-studio/toolchain/issues/5891154) by [T0chi](https://github.com/T0chi))
96
+ - `project:config` now checks for a hand-written `vite.config.*` and folds its
97
+ literal props into the generated `dbx.config.ts`'s `toolchain.vite` (using the
98
+ vite migration's extract/scan/fold helpers), adding the `/vite.config.ts` fmt
99
+ ignore. A non-foldable config is reported and left alone. The VS Code "Generate
100
+ config" actions run `dbx sync` afterwards so the managed shim is written.
101
+ #### Core
102
+ - Resolve watched inputs from the config and add `dbx watch --list` ([#0ab08a9](https://github.com/deltabox-studio/toolchain/commit/0ab08a9) by [T0chi](https://github.com/T0chi))
103
+ - `watch` globs with function forms resolved (eg. custom
104
+ `tsconfig.rootFile`/`defaultFile` names); `runWatch` now uses it, so only the
105
+ inputs of tasks that actually run are watched
106
+ resolved tsconfig file names (`{ globs, tsconfig }`) without watching
107
+ a `tsconfig` section
108
+ - Untracked managed files, config-derived task globs and a reset restore hook ([#5da6691](https://github.com/deltabox-studio/toolchain/commit/5da6691) by [T0chi](https://github.com/T0chi))
109
+ - it in the manifest, so a user-owned file a task patches is never pruned by a
110
+ later sync or removed by `dbx reset`
111
+ follow configured file names
112
+ (written before `files`/`origins`, which it can never clobber), and
113
+ `SyncContext.check` flags `dbx sync --check`
114
+ the manifest is removed and report the `restored` files
115
+ - Provider registry search paths and safer managed-file sync ([#4033009](https://github.com/deltabox-studio/toolchain/issues/4033009) by [T0chi](https://github.com/T0chi))
116
+ - http(s) URLs), keeping the legacy provider files for compatibility.
117
+ providers`, `--set`, `--clear`), the CLI config and the VS Code
118
+ `deltabox.providerRegistrySearchPaths` setting; the Registries view
119
+ now manages both kinds and the Providers view can fetch remote
120
+ registries through `loadToolchainProviders()`.
121
+ pre-existing file. Adopted files are unmanaged, never deleted.
122
+ their previous content); the extension shows a notification listing
123
+ removed files with Restore/Close.
124
+ - Merge global providers with the project registry ([#81c510b](https://github.com/deltabox-studio/toolchain/commit/81c510b) by [T0chi](https://github.com/T0chi))
125
+ - Providers can live in `~/.dbx/toolchain/.registry/providers.json` too.
126
+ `readAllProviders` merges them with the project's `.dbx/toolchain/providers.json`
127
+ (project wins on an id clash), and the CLI's provider list and passthrough
128
+ commands use it so a global provider works in every project.
129
+ #### Tsconfig
130
+ - Resolver, `extends`/`baseFile` options and snapshot-backed overrides ([#2b38963](https://github.com/deltabox-studio/toolchain/commit/2b38963) by [T0chi](https://github.com/T0chi))
131
+ - JSONC) and `dbx tsconfig --json/--alias/--paths/--references/--tsconfig/--root/--no-extends`;
132
+ the generator now resolves the workspaces tsconfig through it
133
+ templates, and `tsconfig.baseFile` for the root base tsconfig
134
+ into the user-owned tsconfigs on sync, honouring custom
135
+ `baseFile`/`rootFile`/`defaultFile`/`buildFile` names (also in the task's
136
+ watched/kept globs and in `dbx tsconfig`)
137
+ (repo-relative paths only) and record the applied override per file in
138
+ `tsconfigOverrides`; removing a key restores the snapshot value when the
139
+ original defined it, otherwise removes it (pruning emptied parents), and keeps
140
+ a value edited after the override applied it
141
+ `tsconfig.override-edited`) and skip instead of creating missing targets;
142
+ patched files are untracked, so sync/reset never delete them
143
+ (`restoreTsconfigOverrides`), warning with `tsconfig.restore-reapply` while
144
+ the overrides are still configured; `dbx reset` restores before removing the
145
+ manifest
146
+ #### Vite
147
+ - Add static shims and a configurable shim import ([#bddcb62](https://github.com/deltabox-studio/toolchain/commit/bddcb62) by [T0chi](https://github.com/T0chi))
148
+ - the generated `vite.config.ts`, so Vite+ can load it without a built
149
+ `@deltabox/toolchain` (rejects functions, regexps and class instances)
150
+ shims; relative values resolve from the repo root and are rewritten per
151
+ generated config
152
+ - Preserve existing imports/comments when regenerating the shim ([#194461c](https://github.com/deltabox-studio/toolchain/commit/194461c) by [T0chi](https://github.com/T0chi))
153
+ - `renderViteConfig` now accepts the existing `vite.config.ts` source: it keeps
154
+ the file's leading comments and import statements and merges `defineConfig` (and
155
+ the config type) into the existing `vite`/`vite-plus` import, preserving default,
156
+ namespace, other named and type-only specifiers. Regeneration is idempotent, and
157
+ the sync task feeds the current file in so a custom import block/comment is not
158
+ dropped.
159
+ - Detect the project's vite package and allow resolveVite overrides ([#dfaedee](https://github.com/deltabox-studio/toolchain/commit/dfaedee) by [T0chi](https://github.com/T0chi))
160
+ - The generated `vite.config.ts` shim now imports `defineConfig` (and its config
161
+ type) from whichever package the project installs — `vite` or `vite-plus` —
162
+ detected from `package.json` and walking up so a hoisted workspace dependency
163
+ resolves. `resolveVite` is generic so the shim type-checks against both, and
164
+ `ResolveViteOptions` now carries inline `vite` overrides that are deep-merged
165
+ over the loaded section.
166
+ #### Migrate
167
+ - Add Oxc migration and repeatable --from ([#0f6930d](https://github.com/deltabox-studio/toolchain/commit/0f6930d) by [T0chi](https://github.com/T0chi))
168
+ #### Cli
169
+ - Add config selection and logger suppression ([#9b69e3f](https://github.com/deltabox-studio/toolchain/commit/9b69e3f) by [T0chi](https://github.com/T0chi))
170
+ #### Template
171
+ - Re-prompt on duplicate ids in init and the editor ([#a4d7cde](https://github.com/deltabox-studio/toolchain/commit/a4d7cde) by [T0chi](https://github.com/T0chi))
172
+ - one (or fails with an `--id` hint when non-interactive), and accepts
173
+ `--id`.
174
+ the provider already exists, updating its command names too.
175
+ - Unscoped npm packages, custom registries and remote sources ([#08cb68c](https://github.com/deltabox-studio/toolchain/commit/08cb68c) by [T0chi](https://github.com/T0chi))
176
+ - npm create packages. The registry defaults to the project package
177
+ manager's (`npmRegistryServer` / `.npmrc`) and can be overridden per
178
+ source with `--registry` or the new `ToolchainTemplateSource.registry`.
179
+ whose `{ sources }` / `{ templates }` / array is merged recursively.
180
+ docs.
181
+ - Add project registries, registry listing and global removal ([#ff3cd16](https://github.com/deltabox-studio/toolchain/commit/ff3cd16) by [T0chi](https://github.com/T0chi))
182
+ - to `<project>/.dbx/toolchain/.registry/templates`; the project paths are
183
+ resolved before the global ones (remote `http(s)` entries are kept as URLs).
184
+ `dbx registry` command lists them (`--json`) and adds/removes template paths
185
+ (`--add`/`--remove`, `--scope global|project`).
186
+ remove stored global templates; remote registries accept `{ sources }`,
187
+ `{ templates }` or an array of sources.
188
+ - Add a global template registry ([#638dd3b](https://github.com/deltabox-studio/toolchain/commit/638dd3b) by [T0chi](https://github.com/T0chi))
189
+ - Templates registered with `template:init --add`/`template:add` are also stored
190
+ under `~/.dbx/toolchain/.registry/templates` (unless `--no-global`), so they are
191
+ available in every project and the VS Code extension. Global templates merge
192
+ with the project's own (project wins on an id clash).
193
+ - Search paths default to that directory and can be configured as a string/array
194
+ of directories or `http(s)` remote registries. They live in
195
+ `~/.dbx/toolchain/cli/config.json` (`templatesSearchPaths`, plus a `vscodeDir`
196
+ pointing at the VS Code user dir) and are managed with the new
197
+ `dbx template:registry` command (`--add`/`--set`/`--remove`/`--clear`), which
198
+ also writes the VS Code `deltabox.templatesSearchPaths` setting.
199
+ ### Bug fixes
200
+ #### Cli
201
+ - Filter denied providers at registration ([#74c49bb](https://github.com/deltabox-studio/toolchain/commit/74c49bb) by [T0chi](https://github.com/T0chi))
202
+ - Load the registry policy before registering provider commands, and make config-flag extraction work for argv without a node/script prefix.
203
+ - Preserve provider flags and emit clean machine output ([#8f6c404](https://github.com/deltabox-studio/toolchain/commit/8f6c404) by [T0chi](https://github.com/T0chi))
204
+ #### Config
205
+ - Support boolean formatter and linter opt-ins ([#d99384b](https://github.com/deltabox-studio/toolchain/commit/d99384b) by [T0chi](https://github.com/T0chi))
206
+ - Allow true/false for every fmt/lint tool, honour explicit biome opt-outs, and ignore disabled biome overrides.
207
+ - Honour disabled sections and regenerate config types ([#dddd9a7](https://github.com/deltabox-studio/toolchain/commit/dddd9a7) by [T0chi](https://github.com/T0chi))
208
+ - Keep union, enum and nested types in the combined markdown reference ([#2eaa373](https://github.com/deltabox-studio/toolchain/commit/2eaa373) by [T0chi](https://github.com/T0chi))
209
+ - The combined (`combined: true`) markdown renderer received the untyped
210
+ lowering of Zod scopes, which collapses unions/enums to `any` with a `{}`
211
+ default. Render Zod scopes from `toJSONSchema` instead (resolving the root
212
+ `$ref` into `$defs`), so the reference shows real types and nested options
213
+ again.
214
+ - Finish generator ergonomics and changelog customization ([#38f6d5b](https://github.com/deltabox-studio/toolchain/commit/38f6d5b) by [T0chi](https://github.com/T0chi))
215
+ #### Changelog
216
+ - Honour workflow token overrides and disabled ci ([#de266dd](https://github.com/deltabox-studio/toolchain/commit/de266dd) by [T0chi](https://github.com/T0chi))
217
+ - Use the overridden package manager's version, honour legacy yarnVersion, and ignore workflow paths when ci is disabled.
218
+ #### Core
219
+ - Reload edited code configs in watch ([#10ba473](https://github.com/deltabox-studio/toolchain/commit/10ba473) by [T0chi](https://github.com/T0chi))
220
+ - Cache-bust the ESM/CJS config import when watch reloads, and add loader + live watch coverage.
221
+ - Protect adopted files, keep check read-only and reload watch config ([#c6fe500](https://github.com/deltabox-studio/toolchain/commit/c6fe500) by [T0chi](https://github.com/T0chi))
222
+ #### Vscode
223
+ - List custom workflows and read BOM-prefixed manifests ([#2f62b47](https://github.com/deltabox-studio/toolchain/commit/2f62b47) by [T0chi](https://github.com/T0chi))
224
+ - Use the default provider registry path and clarify template docs ([#017cfe6](https://github.com/deltabox-studio/toolchain/commit/017cfe6) by [T0chi](https://github.com/T0chi))
225
+ #### Tsconfig
226
+ - Make sync generation quiet, one-pass and non-fatal ([#f0d7663](https://github.com/deltabox-studio/toolchain/commit/f0d7663) by [T0chi](https://github.com/T0chi))
227
+ #### Ci
228
+ - Keep the build tsconfigs for CI typechecks ([#b1502ad](https://github.com/deltabox-studio/toolchain/commit/b1502ad) by [T0chi](https://github.com/T0chi))
229
+ - the generated CI workflow.
230
+ root + package `tsconfig.json` (including tests).
231
+ #### Migrate
232
+ - Deep-merge the folded vite config ([#f74d2ed](https://github.com/deltabox-studio/toolchain/commit/f74d2ed) by [T0chi](https://github.com/T0chi))
233
+ - Folding a hand-written `vite.config.*` into an existing `toolchain.vite` now
234
+ deep-merges object literals (nested objects combine; arrays/scalars from the
235
+ vite config win) instead of replacing the section, and flips a previous
236
+ `config: false` to `true` since the hand-written file is removed.
237
+ - Also fixes `findTopLevelValue` so a scalar last key no longer swallows the
238
+ object's closing `}`, updates the managed-shim detection for the generic
239
+ `resolveVite<T>(...)` form, and corrects the "nothing to migrate" message when
240
+ the migration is registered but no source is detected.
241
+ ### Refactors
242
+ - Run quality checks through vp tasks ([#2fee264](https://github.com/deltabox-studio/toolchain/commit/2fee264) by [T0chi](https://github.com/T0chi))
243
+ - Run build and test through vp tasks too ([#e890665](https://github.com/deltabox-studio/toolchain/commit/e890665) by [T0chi](https://github.com/T0chi))
244
+ - Run typechecks through vp tasks (dev vs CI tsconfigs) ([#7b3420b](https://github.com/deltabox-studio/toolchain/commit/7b3420b) by [T0chi](https://github.com/T0chi))
245
+ ### Documentation
246
+ - Document changelog group customization ([#5443ea0](https://github.com/deltabox-studio/toolchain/commit/5443ea0) by [T0chi](https://github.com/T0chi))
247
+ - Cover ordered groups, custom titles, hidden groups and callback examples for manual and CI changelog config.
248
+ - Document nested Oxc inheritance and workflow token versions ([#4f43cd9](https://github.com/deltabox-studio/toolchain/commit/4f43cd9) by [T0chi](https://github.com/T0chi))
249
+ - Cover scaffold --force, root Oxc inheritance, boolean tool opt-ins, workflow package-manager version defaults and the managed-file conflict group.
250
+ - Regenerate config artifacts and document the fixes ([#9be4d73](https://github.com/deltabox-studio/toolchain/commit/9be4d73) by [T0chi](https://github.com/T0chi))
251
+ - Document tsconfig overrides, snapshots and `--restore` ([#dad4084](https://github.com/deltabox-studio/toolchain/commit/dad4084) by [T0chi](https://github.com/T0chi))
252
+ - snapshots, removal rules, restoring, warnings) and the new CLI flags/exports
253
+ the sync task API additions and an upgrade step
254
+ the package reference
255
+ `llms-full.txt`
256
+ - Document v2 generators, custom logger and changelog customization ([#f0f7f5d](https://github.com/deltabox-studio/toolchain/commit/f0f7f5d) by [T0chi](https://github.com/T0chi))
257
+ - Update README highlights and regenerate LLM docs ([#6380770](https://github.com/deltabox-studio/toolchain/issues/6380770) by [T0chi](https://github.com/T0chi))
258
+ - Add the CI guide, TypeScript page and interactive CLI sections ([#fc6099a](https://github.com/deltabox-studio/toolchain/commit/fc6099a) by [T0chi](https://github.com/T0chi))
259
+ - `guide/ci/` section (overview + settings + ci/issues/changelog/sync/
260
+ releases) and retitle the overview to "CI".
261
+ metadata, programmatic API, Vite+ generics).
262
+ VS Code sync notification and CLI `sync --json` docs.
263
+ - Split the config, API, config-generator and changelog guides ([#4153d86](https://github.com/deltabox-studio/toolchain/commit/4153d86) by [T0chi](https://github.com/T0chi))
264
+ - `guide/changelog.md` into folders with an index + one sibling page per
265
+ second-level section.
266
+ commitlint, Versioning, CLI, writing messages, Troubleshooting and
267
+ Releases into sibling pages.
268
+ workflows, the commitlint opt-out fallback and the migration from the
269
+ deprecated top-level `changelog` section.
270
+ LLM bundles.
271
+ - Document the Registries view, project registries and dbx version picker ([#752d1cd](https://github.com/deltabox-studio/toolchain/commit/752d1cd) by [T0chi](https://github.com/T0chi))
272
+ - Cover `registrySearchPaths`, project registries, the `registry` command, remote
273
+ registries, the Registries view/actions, and the extension's version selection.
274
+ - Document the global template/provider registry ([#55651e1](https://github.com/deltabox-studio/toolchain/commit/55651e1) by [T0chi](https://github.com/T0chi))
275
+ - Cover the global templates dir, `--no-global`, the `template:registry` command,
276
+ the CLI config and `deltabox.templatesSearchPaths` sync, remote registries, and
277
+ global providers.
278
+ - Document defineConfig callbacks, shim detection and deep-merge migration ([#701de7c](https://github.com/deltabox-studio/toolchain/commit/701de7c) by [T0chi](https://github.com/T0chi))
279
+ - Cover `defineConfig` promises/callbacks, the shim importing from the project's
280
+ vite package, inline `resolveVite` overrides, and the vite migration deep-merging
281
+ into `toolchain.vite`.
282
+ #### Vscode
283
+ - Document extension requirements ([#07fd6fa](https://github.com/deltabox-studio/toolchain/commit/07fd6fa) by [T0chi](https://github.com/T0chi))
284
+ #### Config
285
+ - Generate CLI, env and config-type references ([#ba640a3](https://github.com/deltabox-studio/toolchain/commit/ba640a3) by [T0chi](https://github.com/T0chi))
286
+ - `config:docs`) to generate `apps/docs/config/index.md`, `cli.md` from
287
+ the ToolchainCommand descriptors, and `env.md` from ConfigMeta.
288
+ ### Tests
289
+ - Run the emulate suite in a temp sandbox outside the repo ([#a94fa4c](https://github.com/deltabox-studio/toolchain/commit/a94fa4c) by [T0chi](https://github.com/T0chi))
290
+ - `node_modules` link back to the repo install) instead of `tests/emulate`,
291
+ so a stray sync can never touch the toolchain repo
292
+ every test, and clean up on `SIGHUP`/`SIGBREAK` too
293
+ sandboxes
294
+ - Cover provider search paths, registry policy and remote sources ([#91a5859](https://github.com/deltabox-studio/toolchain/commit/91a5859) by [T0chi](https://github.com/T0chi))
295
+ ### Build system
296
+ - Run typechecks, tests and Vite+ from source without a built `dist` ([#4353a36](https://github.com/deltabox-studio/toolchain/commit/4353a36) by [T0chi](https://github.com/T0chi))
297
+ - `tsconfig.workspaces.json` and regenerate every workspace `tsconfig.json`,
298
+ so typechecks resolve workspace source instead of `dist`
299
+ building the package first
300
+ the source tsconfigs
301
+ ### Chores
302
+ - Fix lint warnings and remove unused helper ([#ac890d8](https://github.com/deltabox-studio/toolchain/commit/ac890d8) by [T0chi](https://github.com/T0chi))
303
+ - Add lint and check vp tasks to every workspace ([#83bb7e5](https://github.com/deltabox-studio/toolchain/commit/83bb7e5) by [T0chi](https://github.com/T0chi))
304
+
305
+ ### Package changes
306
+ #### Added
307
+ - `jsonc-parser` `^3.3.1`
308
+
309
+ <!-- release:end -->
310
+
311
+
312
+ ## 1.11.4 (October 2026)
313
+
7
314
  ### Documentation
8
315
  - Updated misleading docs ([#5a5e44c](https://github.com/deltabox-studio/toolchain/commit/5a5e44c) by [T0chi](https://github.com/T0chi))
9
316
  ### Chores
10
317
  #### Vscode
11
318
  - Rearranged views order ([#0620097](https://github.com/deltabox-studio/toolchain/issues/0620097) by [T0chi](https://github.com/T0chi))
12
319
 
13
- <!-- release:end -->
14
-
15
-
16
320
  ## 1.11.3 (October 2026)
17
321
 
18
322
  ### Bug fixes
package/README.md CHANGED
@@ -10,11 +10,11 @@
10
10
 
11
11
  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.
12
12
 
13
- - Save and use templates (local/remote) so you never have to scaffold the same projects over and over again.
14
- - Generate config types, env variables, cli flags, markdown and JSON schemas, so your codebase stays consistent, validated and well-documented.
15
- - Simply extend or setup CI for your changelogs, releases, issues etc.
16
- - Sync your entire project so workspaces, docs and CI are always up-to-date.
17
- - Plug it into Vite / Vite+ and streamline your DX for your existing Vite setup.
13
+ - **Save and use templates (local/remote)** so you never have to scaffold the same projects over and over again.
14
+ - **Generate** config types, env variables, cli flags, markdown and JSON schemas, so your codebase stays consistent, validated and well-documented.
15
+ - **Extend or setup** CI for your changelogs, releases, issues etc.
16
+ - **Sync** your entire project so workspaces, docs and CI are always up-to-date.
17
+ - **Plug it into Vite / Vite+** and streamline your DX for your existing Vite setup.
18
18
 
19
19
  See the [list of features](#features).
20
20
 
@@ -238,24 +238,31 @@ See [packages/vscode/README.md](./packages/vscode/README.md) to learn more about
238
238
 
239
239
  ## Development
240
240
 
241
- This repo is a Yarn 4 workspace; Vite+ (`vp`) drives format, lint, test and the
242
- task runner from the root `vite.config.ts`.
241
+ This repo is a Yarn 4 workspace. Vite+ (`vp`) drives format, lint, test and the
242
+ task runner from the root `vite.config.ts`. The generated shims are dogfooded
243
+ with `vite.shim: 'static'`, so `vp` loads them without a built package; Vite and
244
+ Vitest resolve workspace imports through `resolve.tsconfigPaths`.
243
245
 
244
246
  ```sh
245
247
  yarn install # fresh checkout
246
- yarn build # packages via `vp run` + root tsdown
247
- yarn test # package + root tests
248
+ yarn dev # run the CLI from src/ via tsx
248
249
  yarn typecheck # packages + root
249
- yarn check # Oxfmt + Oxlint (format + lint)
250
+ yarn check # Oxfmt + Oxlint check (no writes)
251
+ yarn check:fix # same, auto-fixing every workspace + the root
250
252
  yarn format # `vp fmt`
251
253
  yarn lint # `vp lint --fix`
254
+ yarn build # packages via `vp run` + root tsdown
255
+ yarn test # builds, then package + root tests
256
+ yarn test:clean # remove leftover emulation temp workspaces
252
257
  ```
253
258
 
254
- > `vp` resolves only at the repo root, so run these from the root. Package
255
- > typechecks/tests resolve workspace deps from their built `dist`, so run a full
256
- > `yarn build` after changing a package's public exports.
259
+ > `vp` resolves only at the repo root, so run these from the root. A full
260
+ > `yarn build` is only needed for the published `dist`/VSIX: typechecks,
261
+ > `vp run`/`fmt`/`lint`/`test`, `yarn dev` and Vitest run from source. The
262
+ > emulate suite spawns the built `dist/cli/index.js` and therefore needs a
263
+ > build.
257
264
 
258
- Docs live in `apps/docs` (VitePress): `yarn workspace @deltabox/toolchain-docs build`.
265
+ Docs live in `apps/docs` (VitePress): `yarn docs build`.
259
266
 
260
267
  ## Docs
261
268
 
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};export{t as __exportAll};
1
+ import"node:path";import"node:url";import.meta.url;import"node:module";var e=Object.defineProperty,t=(t,n)=>{let r={};for(var i in t)e(r,i,{get:t[i],enumerable:!0});return n||e(r,Symbol.toStringTag,{value:`Module`}),r};export{t as __exportAll};
@@ -1,6 +1,7 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- import { AuthorInfo, BumpType, CliOptions, CommitRecord, ExistingEntry, GroupedItem, GroupedRule, IssueInfo, ParsedCommit, ProcessingMethod } from "./packages/changelog/src/utils/types.js";
3
+ import { ChangelogGroupConfig, ChangelogGroupContext, ChangelogGroupEntry, ChangelogGroupHidden, ChangelogGroupItem, ChangelogGroupOrder, ChangelogGroupTitle, ChangelogGroupsContext, ChangelogGroupsSetting } from "./packages/shared/src/changelog-groups.js";
4
+ import { AuthorInfo, BumpType, ChangelogProvider, ChangelogProviderContext, CliOptions, CommitFormatContext, CommitFormatOptions, CommitRecord, ExistingEntry, GroupedItem, GroupedRule, IssueInfo, ParsedCommit, ProcessingMethod } from "./packages/changelog/src/utils/types.js";
4
5
  import { parseArgsCli } from "./packages/changelog/src/utils/args.js";
5
6
  import { formatBody, groupItems, parseCcSubject, renderGroups, ruleTitle, splitInlineDescription } from "./packages/changelog/src/utils/format.js";
6
7
  import { deriveBump, readCommits } from "./packages/changelog/src/utils/git.js";
@@ -8,12 +9,12 @@ import { parseExistingChangelog, reformatChangelogContent } from "./packages/cha
8
9
  import { buildSummary, renderCommitRef } from "./packages/changelog/src/utils/summary.js";
9
10
  import { renderChangelogEntry } from "./packages/changelog/src/utils/version.js";
10
11
  import { main, runChangelog } from "./packages/changelog/src/run.js";
11
- import { DEFAULT_WORKFLOW_TOKENS, RenderWorkflowOptions, WORKFLOW_FILENAMES, Workflow, WorkflowId, WorkflowJob, applyWorkflowConfig, defaultWorkflows, isEnabled, renderWorkflow, renderWorkflows } from "./packages/changelog/src/workflows.js";
12
- import { RanWorkflow, RunWorkflowsOptions, RunWorkflowsResult, resolveWorkflowId, runWorkflows } from "./packages/changelog/src/run-workflows.js";
13
- import { COMMITLINT_HEADER, COMMIT_MSG_HOOK, HOOK_HEADER, WORKFLOW_HEADER, changelogSyncTask, commitMsgHook, workflowFilenames } from "./packages/changelog/src/sync.js";
12
+ import { DEFAULT_WORKFLOW_DIR, DEFAULT_WORKFLOW_TOKENS, DefaultWorkflowOptions, RenderWorkflowOptions, WORKFLOW_FILENAMES, Workflow, WorkflowId, WorkflowJob, applyWorkflowConfig, defaultWorkflows, isEnabled, renderCustomWorkflow, renderWorkflow, renderWorkflows, workflowFilePath } from "./packages/changelog/src/workflows.js";
13
+ import { RanWorkflow, RunWorkflowsOptions, RunWorkflowsResult, WorkflowTarget, resolveWorkflowId, resolveWorkflowTarget, runWorkflows, workflowTargets } from "./packages/changelog/src/run-workflows.js";
14
+ import { COMMITLINT_HEADER, COMMIT_MSG_HOOK, HOOK_HEADER, WORKFLOW_HEADER, changelogSyncTask, commitMsgHook, workflowFilePaths, workflowFilenames } from "./packages/changelog/src/sync.js";
14
15
  import { CommitlintOptions, conventionalCommitsVscodeExtensions, conventionalCommitsVscodeSettings, renderCommitlintConfig } from "./packages/changelog/src/templates.js";
15
16
  import { ProjectGraphNode, readProjectGraph, relatedWorkspacePaths } from "./packages/changelog/src/utils/graph.js";
16
- import { PlanVersionsOptions, ResolvedVersioning, VersionPackages, VersionPlan, VersioningTarget, discoverVersionPackages, planVersions, readPackageVersion, resolveVersioning, writePackageVersion } from "./packages/changelog/src/utils/versioning.js";
17
+ import { BumpRuleContext, PlanVersionsOptions, ResolvedVersioning, VersionPackages, VersionPlan, VersioningTarget, deriveCustomBump, discoverVersionPackages, planVersions, readPackageVersion, resolveVersioning, writePackageVersion } from "./packages/changelog/src/utils/versioning.js";
17
18
  import "./packages/changelog/src/index.js";
18
19
  import { changelogCommands } from "./packages/changelog/src/cli/index.js";
19
- export { AuthorInfo, BumpType, COMMITLINT_HEADER, COMMIT_MSG_HOOK, CliOptions, CommitRecord, CommitlintOptions, DEFAULT_WORKFLOW_TOKENS, ExistingEntry, GroupedItem, GroupedRule, HOOK_HEADER, IssueInfo, ParsedCommit, PlanVersionsOptions, ProcessingMethod, type ProjectGraphNode, RanWorkflow, RenderWorkflowOptions, ResolvedVersioning, RunWorkflowsOptions, RunWorkflowsResult, VersionPackages, VersionPlan, VersioningTarget, WORKFLOW_FILENAMES, WORKFLOW_HEADER, Workflow, WorkflowId, WorkflowJob, applyWorkflowConfig, buildSummary, changelogCommands, changelogSyncTask, commitMsgHook, conventionalCommitsVscodeExtensions, conventionalCommitsVscodeSettings, defaultWorkflows, deriveBump, discoverVersionPackages, formatBody, groupItems, isEnabled, main, parseArgsCli, parseCcSubject, parseExistingChangelog, planVersions, readCommits, readPackageVersion, readProjectGraph, reformatChangelogContent, relatedWorkspacePaths, renderChangelogEntry, renderCommitRef, renderCommitlintConfig, renderGroups, renderWorkflow, renderWorkflows, resolveVersioning, resolveWorkflowId, ruleTitle, runChangelog, runWorkflows, splitInlineDescription, workflowFilenames, writePackageVersion };
20
+ export { AuthorInfo, BumpRuleContext, BumpType, COMMITLINT_HEADER, COMMIT_MSG_HOOK, type ChangelogGroupConfig, type ChangelogGroupContext, type ChangelogGroupEntry, type ChangelogGroupHidden, type ChangelogGroupItem, type ChangelogGroupOrder, type ChangelogGroupTitle, type ChangelogGroupsContext, type ChangelogGroupsSetting, ChangelogProvider, ChangelogProviderContext, CliOptions, CommitFormatContext, CommitFormatOptions, CommitRecord, CommitlintOptions, DEFAULT_WORKFLOW_DIR, DEFAULT_WORKFLOW_TOKENS, DefaultWorkflowOptions, ExistingEntry, GroupedItem, GroupedRule, HOOK_HEADER, IssueInfo, ParsedCommit, PlanVersionsOptions, ProcessingMethod, type ProjectGraphNode, RanWorkflow, RenderWorkflowOptions, ResolvedVersioning, RunWorkflowsOptions, RunWorkflowsResult, VersionPackages, VersionPlan, VersioningTarget, WORKFLOW_FILENAMES, WORKFLOW_HEADER, Workflow, WorkflowId, WorkflowJob, WorkflowTarget, applyWorkflowConfig, buildSummary, changelogCommands, changelogSyncTask, commitMsgHook, conventionalCommitsVscodeExtensions, conventionalCommitsVscodeSettings, defaultWorkflows, deriveBump, deriveCustomBump, discoverVersionPackages, formatBody, groupItems, isEnabled, main, parseArgsCli, parseCcSubject, parseExistingChangelog, planVersions, readCommits, readPackageVersion, readProjectGraph, reformatChangelogContent, relatedWorkspacePaths, renderChangelogEntry, renderCommitRef, renderCommitlintConfig, renderCustomWorkflow, renderGroups, renderWorkflow, renderWorkflows, resolveVersioning, resolveWorkflowId, resolveWorkflowTarget, ruleTitle, runChangelog, runWorkflows, splitInlineDescription, workflowFilePath, workflowFilePaths, workflowFilenames, workflowTargets, writePackageVersion };
package/dist/changelog.js CHANGED
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{parseArgsCli as e}from"./packages/changelog/src/utils/args.js";import{deriveBump as t,readCommits as n}from"./packages/changelog/src/utils/git.js";import{formatBody as r,groupItems as i,parseCcSubject as a,renderGroups as o,ruleTitle as s,splitInlineDescription as c}from"./packages/changelog/src/utils/format.js";import{renderChangelogEntry as l}from"./packages/changelog/src/utils/version.js";import{parseExistingChangelog as u,reformatChangelogContent as d}from"./packages/changelog/src/utils/reformat.js";import{buildSummary as f,renderCommitRef as p}from"./packages/changelog/src/utils/summary.js";import{readProjectGraph as m,relatedWorkspacePaths as h}from"./packages/changelog/src/utils/graph.js";import{discoverVersionPackages as g,planVersions as _,readPackageVersion as v,resolveVersioning as y,writePackageVersion as b}from"./packages/changelog/src/utils/versioning.js";import{main as x,runChangelog as S}from"./packages/changelog/src/run.js";import{DEFAULT_WORKFLOW_TOKENS as C,WORKFLOW_FILENAMES as w,applyWorkflowConfig as T,defaultWorkflows as E,isEnabled as D,renderWorkflow as O,renderWorkflows as k}from"./packages/changelog/src/workflows.js";import{resolveWorkflowId as A,runWorkflows as j}from"./packages/changelog/src/run-workflows.js";import{conventionalCommitsVscodeExtensions as M,conventionalCommitsVscodeSettings as N,renderCommitlintConfig as P}from"./packages/changelog/src/templates.js";import{COMMITLINT_HEADER as F,COMMIT_MSG_HOOK as I,HOOK_HEADER as L,WORKFLOW_HEADER as R,changelogSyncTask as z,commitMsgHook as B,workflowFilenames as V}from"./packages/changelog/src/sync.js";import"./packages/changelog/src/index.js";import{changelogCommands as H}from"./packages/changelog/src/cli/index.js";export{F as COMMITLINT_HEADER,I as COMMIT_MSG_HOOK,C as DEFAULT_WORKFLOW_TOKENS,L as HOOK_HEADER,w as WORKFLOW_FILENAMES,R as WORKFLOW_HEADER,T as applyWorkflowConfig,f as buildSummary,H as changelogCommands,z as changelogSyncTask,B as commitMsgHook,M as conventionalCommitsVscodeExtensions,N as conventionalCommitsVscodeSettings,E as defaultWorkflows,t as deriveBump,g as discoverVersionPackages,r as formatBody,i as groupItems,D as isEnabled,x as main,e as parseArgsCli,a as parseCcSubject,u as parseExistingChangelog,_ as planVersions,n as readCommits,v as readPackageVersion,m as readProjectGraph,d as reformatChangelogContent,h as relatedWorkspacePaths,l as renderChangelogEntry,p as renderCommitRef,P as renderCommitlintConfig,o as renderGroups,O as renderWorkflow,k as renderWorkflows,y as resolveVersioning,A as resolveWorkflowId,s as ruleTitle,S as runChangelog,j as runWorkflows,c as splitInlineDescription,V as workflowFilenames,b as writePackageVersion};
1
+ import"node:path";import"node:url";import.meta.url;import{parseArgsCli as e}from"./packages/changelog/src/utils/args.js";import{deriveBump as t,readCommits as n}from"./packages/changelog/src/utils/git.js";import{formatBody as r,groupItems as i,parseCcSubject as a,renderGroups as o,ruleTitle as s,splitInlineDescription as c}from"./packages/changelog/src/utils/format.js";import{renderChangelogEntry as l}from"./packages/changelog/src/utils/version.js";import{parseExistingChangelog as u,reformatChangelogContent as d}from"./packages/changelog/src/utils/reformat.js";import{buildSummary as f,renderCommitRef as p}from"./packages/changelog/src/utils/summary.js";import{readProjectGraph as m,relatedWorkspacePaths as h}from"./packages/changelog/src/utils/graph.js";import{deriveCustomBump as g,discoverVersionPackages as _,planVersions as v,readPackageVersion as y,resolveVersioning as b,writePackageVersion as x}from"./packages/changelog/src/utils/versioning.js";import{main as S,runChangelog as C}from"./packages/changelog/src/run.js";import{DEFAULT_WORKFLOW_DIR as w,DEFAULT_WORKFLOW_TOKENS as T,WORKFLOW_FILENAMES as E,applyWorkflowConfig as D,defaultWorkflows as O,isEnabled as k,renderCustomWorkflow as A,renderWorkflow as j,renderWorkflows as M,workflowFilePath as N}from"./packages/changelog/src/workflows.js";import{resolveWorkflowId as P,resolveWorkflowTarget as F,runWorkflows as I,workflowTargets as L}from"./packages/changelog/src/run-workflows.js";import{conventionalCommitsVscodeExtensions as R,conventionalCommitsVscodeSettings as z,renderCommitlintConfig as B}from"./packages/changelog/src/templates.js";import{COMMITLINT_HEADER as V,COMMIT_MSG_HOOK as H,HOOK_HEADER as U,WORKFLOW_HEADER as W,changelogSyncTask as G,commitMsgHook as K,workflowFilePaths as q,workflowFilenames as J}from"./packages/changelog/src/sync.js";import"./packages/changelog/src/index.js";import{changelogCommands as Y}from"./packages/changelog/src/cli/index.js";export{V as COMMITLINT_HEADER,H as COMMIT_MSG_HOOK,w as DEFAULT_WORKFLOW_DIR,T as DEFAULT_WORKFLOW_TOKENS,U as HOOK_HEADER,E as WORKFLOW_FILENAMES,W as WORKFLOW_HEADER,D as applyWorkflowConfig,f as buildSummary,Y as changelogCommands,G as changelogSyncTask,K as commitMsgHook,R as conventionalCommitsVscodeExtensions,z as conventionalCommitsVscodeSettings,O as defaultWorkflows,t as deriveBump,g as deriveCustomBump,_ as discoverVersionPackages,r as formatBody,i as groupItems,k as isEnabled,S as main,e as parseArgsCli,a as parseCcSubject,u as parseExistingChangelog,v as planVersions,n as readCommits,y as readPackageVersion,m as readProjectGraph,d as reformatChangelogContent,h as relatedWorkspacePaths,l as renderChangelogEntry,p as renderCommitRef,B as renderCommitlintConfig,A as renderCustomWorkflow,o as renderGroups,j as renderWorkflow,M as renderWorkflows,b as resolveVersioning,P as resolveWorkflowId,F as resolveWorkflowTarget,s as ruleTitle,C as runChangelog,I as runWorkflows,c as splitInlineDescription,N as workflowFilePath,q as workflowFilePaths,J as workflowFilenames,L as workflowTargets,x as writePackageVersion};
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{projectsCommand as e}from"./projects.js";import{providerCommands as t}from"./providers.js";import{resetCommand as n}from"./reset.js";import{baseOptions as r,watchOptions as i}from"./shared.js";import{syncCommand as a}from"./sync.js";import{watchCommand as o}from"./watch.js";function s(){return[e(),a(),o(),n(),...t()]}export{r as baseOptions,s as syncCommands,i as watchOptions};
1
+ import"node:path";import"node:url";import.meta.url;import{projectsCommand as e}from"./projects.js";import{providerCommands as t}from"./providers.js";import{resetCommand as n}from"./reset.js";import{baseOptions as r,watchOptions as i}from"./shared.js";import{syncCommand as a}from"./sync.js";import{watchCommand as o}from"./watch.js";function s(r){return[e(),a(),o(),n(),...t(r)]}export{r as baseOptions,s as syncCommands,i as watchOptions};
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{logger as e}from"../../packages/shared/src/logger.js";import{spawnCross as t}from"../../packages/shared/src/run.js";import"../../packages/shared/src/index.js";import{readProviderRegistry as n}from"../../packages/core/src/provider-registry.js";import"../../packages/core/src/index.js";import{toolchainProviders as r}from"../../providers.js";const i={flags:`--cwd <dir>`,description:`Project root (default: cwd).`};function a(n,r){return{name:r.name,description:`${n.name}: ${r.description}`,passthrough:!0,options:[i],run:async(i,a)=>{let o=i.args??[],s=i.cwd??a.cwd;if(!n.binary){e.error(`provider "${n.id}" has no binary to run.`),process.exitCode=1;return}let c=await new Promise(e=>{let i=t(n.binary,[r.subcommand,...o],{cwd:s,env:process.env,stdio:`inherit`});i.on(`error`,()=>e(1)),i.on(`exit`,t=>e(t??0))});c!==0&&(process.exitCode=c)}}}function o(e=process.cwd()){return n(e).flatMap(e=>e.commands.map(t=>a(e,t)))}function s(){return[{name:`providers`,description:`List the tooling providers (Vite+, ...) and their commands.`,options:[{flags:`--json`,description:`Print the providers (with actions) as JSON.`}],run:t=>{let n=r();if(t.json)e.raw(JSON.stringify(n,null,4));else for(let t of n){let n=t.binary?` (${t.binary})`:``;e.info(`${t.name}${n} [${t.id}]`),t.description&&e.info(` ${t.description}`);for(let n of t.commands)e.info(` ${n.name.padEnd(20)} ${n.description}`)}}},...o()]}export{s as providerCommands,o as providerPassthroughCommands};
1
+ import"node:path";import"node:url";import.meta.url;import{logger as e}from"../../packages/shared/src/logger.js";import{spawnCross as t}from"../../packages/shared/src/run.js";import"../../packages/shared/src/index.js";import{readAllProvidersSync as n}from"../../packages/core/src/provider-registry.js";import"../../packages/core/src/index.js";import{loadToolchainProviders as r,providerPolicy as i}from"../../providers.js";const a={flags:`--cwd <dir>`,description:`Project root (default: cwd).`};function o(r,o){return{name:o.name,description:`${r.name}: ${o.description}`,passthrough:!0,options:[a],run:async(a,s)=>{let c=a.args??[],l=a.cwd??s.cwd,u=i(s.config);if(u&&!n(l,u).some(e=>e.id===r.id)){e.error(`provider "${r.id}" is not allowed by toolchain.registry.providers.`),process.exitCode=1;return}if(!r.binary){e.error(`provider "${r.id}" has no binary to run.`),process.exitCode=1;return}let d=await new Promise(e=>{let n=t(r.binary,[o.subcommand,...c],{cwd:l,env:process.env,stdio:`inherit`});n.on(`error`,()=>e(1)),n.on(`exit`,t=>e(t??0))});d!==0&&(process.exitCode=d)}}}function s(e=process.cwd(),t){return n(e,i(t)).flatMap(e=>e.commands.map(t=>o(e,t)))}function c(t){return[{name:`providers`,description:`List the tooling providers (Vite+, ...) and their commands.`,options:[{flags:`--json`,description:`Print the providers (with actions) as JSON.`}],run:async(t,n)=>{let i=await r(process.cwd(),n.config);if(t.json)e.raw(JSON.stringify(i,null,4));else for(let t of i){let n=t.binary?` (${t.binary})`:``;e.info(`${t.name}${n} [${t.id}]`),t.description&&e.info(` ${t.description}`);for(let n of t.commands)e.info(` ${n.name.padEnd(20)} ${n.description}`)}}},...s(process.cwd(),t)]}export{c as providerCommands,s as providerPassthroughCommands};
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{logger as e}from"../../packages/shared/src/logger.js";import"../../packages/shared/src/index.js";import{resetProjects as t}from"../../packages/core/src/reset.js";import"../../packages/core/src/index.js";function n(){return{name:`reset`,description:`Remove generated files, the .dbx/toolchain manifest and/or the dbx config from a project.`,options:[{flags:`--cwd <dir>`,description:`Project root (default: cwd).`},{flags:`--recursive`,description:`Reset every discovered project under the root.`},{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:`--generated`,description:`Remove only the generated/managed files.`},{flags:`--manifest`,description:`Remove only the .dbx/toolchain directory.`},{flags:`--config`,description:`Also remove dbx.config.*.`},{flags:`--all`,description:`Remove generated files, the manifest and the config.`},{flags:`--dry-run`,description:`Report what would be removed without deleting.`},{flags:`--json`,description:`Print the result as JSON.`}],run:(n,r)=>{let i=n.cwd??r.cwd,a=n.all?{generated:!0,manifest:!0,config:!0}:{...n.generated?{generated:!0}:{},...n.manifest?{manifest:!0}:{},...n.config?{config:!0}:{}},o=t({root:i,recursive:!!n.recursive,dryRun:!!n.dryRun,...a,...n.include?{include:n.include}:{},...n.exclude?{exclude:n.exclude}:{}});if(n.json){e.raw(JSON.stringify(o,null,4));return}let s=o.dryRun?`would remove`:`removed`,c=0;for(let t of o.results)if(t.removed.length!==0){c+=t.removed.length,e.info(`${t.rel===`.`?i:t.rel}`);for(let n of t.removed)e.info(` - ${n}`)}e.info(`${s} ${c} item(s) across ${o.results.length} project(s).`)}}}export{n as resetCommand};
1
+ import"node:path";import"node:url";import.meta.url;import{logger as e}from"../../packages/shared/src/logger.js";import"../../packages/shared/src/index.js";import{resetProjects as t}from"../../packages/core/src/reset.js";import"../../packages/core/src/index.js";import{restoreTsconfigOverrides as n}from"../../packages/tsconfig/src/snapshots.js";import"../../packages/tsconfig/src/index.js";function r(){return{name:`reset`,description:`Remove generated files, the .dbx/toolchain manifest and/or the dbx config from a project.`,options:[{flags:`--cwd <dir>`,description:`Project root (default: cwd).`},{flags:`--recursive`,description:`Reset every discovered project under the root.`},{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:`--generated`,description:`Remove only the generated/managed files.`},{flags:`--manifest`,description:`Remove only the .dbx/toolchain directory.`},{flags:`--config`,description:`Also remove dbx.config.*.`},{flags:`--all`,description:`Remove generated files, the manifest and the config.`},{flags:`--dry-run`,description:`Report what would be removed without deleting.`},{flags:`--json`,description:`Print the result as JSON.`}],run:(r,i)=>{let a=r.cwd??i.cwd,o=r.all?{generated:!0,manifest:!0,config:!0}:{...r.generated?{generated:!0}:{},...r.manifest?{manifest:!0}:{},...r.config?{config:!0}:{}},s=t({root:a,recursive:!!r.recursive,dryRun:!!r.dryRun,restore:(t,{dryRun:r})=>n({cwd:t,dryRun:r,warn:(t,n)=>e.warn(t,n)}).restored,...o,...r.include?{include:r.include}:{},...r.exclude?{exclude:r.exclude}:{}});if(r.json){e.raw(JSON.stringify(s,null,4));return}let c=s.dryRun?`would remove`:`removed`,l=0;for(let t of s.results)if(t.removed.length!==0||t.restored.length!==0){l+=t.removed.length,e.info(`${t.rel===`.`?a:t.rel}`);for(let n of t.restored)e.info(` ~ ${n} (overrides reverted)`);for(let n of t.removed)e.info(` - ${n}`)}e.info(`${c} ${l} item(s) across ${s.results.length} project(s).`)}}}export{r as resetCommand};
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{sectionConfig as e}from"../../packages/shared/src/toolchain.js";import"../../packages/shared/src/index.js";import{defaultSyncTasks as t}from"../../sync.js";const n=[{flags:`--cwd <dir>`,description:`Project root (default: cwd).`},{flags:`-q, --quiet`,description:`Only log errors.`}];function r(n){let r=e(n.config.watch);return{tasks:t(),cwd:n.cwd,projectType:n.projectType,config:n.config,tokens:n.tokens,...n.configPath?{configPath:n.configPath}:{},...r?.debounce===void 0?{}:{debounce:r.debounce},...r?.exclude===void 0?{}:{exclude:r.exclude},...r?.gitignore===void 0?{}:{gitignore:r.gitignore}}}export{n as baseOptions,r as watchOptions};
1
+ import"node:path";import"node:url";import.meta.url;import{sectionConfig as e}from"../../packages/shared/src/toolchain.js";import"../../packages/shared/src/index.js";import{defaultSyncTasks as t}from"../../sync.js";const n=[{flags:`--cwd <dir>`,description:`Project root (default: cwd).`},{flags:`-q, --quiet`,description:`Only log errors.`}];function r(n){let r=e(n.config.watch);return{tasks:t(),cwd:n.cwd,projectType:n.projectType,config:n.config,...n.ownConfig?{ownConfig:n.ownConfig}:{},tokens:n.tokens,...n.configPath?{configPath:n.configPath}:{},...r?.debounce===void 0?{}:{debounce:r.debounce},...r?.exclude===void 0?{}:{exclude:r.exclude},...r?.gitignore===void 0?{}:{gitignore:r.gitignore}}}export{n as baseOptions,r as watchOptions};
@@ -1 +1 @@
1
- import{default as e}from"node:path";import"node:url";import.meta.url;import{logger as t}from"../../packages/shared/src/logger.js";import"../../packages/shared/src/index.js";import{loadToolchainConfig as n}from"../../packages/core/src/loader.js";import{buildProjectGraph as r,writeProjectGraph as i}from"../../packages/core/src/graph.js";import{runSync as a}from"../../packages/core/src/sync.js";import{runWatch as o}from"../../packages/core/src/watch.js";import"../../packages/core/src/index.js";import{defaultSyncTasks as s}from"../../sync.js";import{baseOptions as c,watchOptions as l}from"./shared.js";function u(){return{name:`sync`,description:`Regenerate every managed file from dbx.config.*.`,options:[...c,{flags:`--check`,description:`Do not write; fail if files are out of date.`},{flags:`--watch`,description:`Keep running and re-sync on change.`},{flags:`--recursive`,description:`Sync every discovered dbx project in dependency order.`},{flags:`--force`,description:`Run even when no dbx.config.* is present.`}],run:async(c,u)=>{let d=!!c.quiet,f=!!c.check;if(u.configError){t.error(u.configError),process.exitCode=1;return}if(c.recursive){let o=r(u.cwd);f||i(u.cwd,o);for(let r of o.order){let i=e.resolve(u.cwd,r),o=await n(i,{tolerant:!0});if(o.error){t.error(o.error),process.exitCode=1;continue}let c=await a({tasks:s(),cwd:i,projectType:o.projectType,config:o.config,tokens:o.tokens,check:f,quiet:d});f&&!c.upToDate&&(process.exitCode=1)}return}if(!u.configPath&&!c.force){t.warn(`no dbx.config.* found here; nothing to sync (use --force to run anyway).`);return}if(c.watch){await o({...l(u),quiet:d});return}let p=await a({...l(u),check:f,quiet:d});if(f&&!p.upToDate&&(process.exitCode=1),!f)try{i(u.cwd,r(u.cwd))}catch{}}}}export{u as syncCommand};
1
+ import{default as e}from"node:path";import"node:url";import.meta.url;import{logger as t}from"../../packages/shared/src/logger.js";import"../../packages/shared/src/index.js";import{loadToolchainConfig as n}from"../../packages/core/src/loader.js";import{buildProjectGraph as r,writeProjectGraph as i}from"../../packages/core/src/graph.js";import{runSync as a}from"../../packages/core/src/sync.js";import{runWatch as o}from"../../packages/core/src/watch.js";import"../../packages/core/src/index.js";import{defaultSyncTasks as s}from"../../sync.js";import{getConfigSelection as c}from"../config-selection.js";import{baseOptions as l,watchOptions as u}from"./shared.js";function d(){return{name:`sync`,description:`Regenerate every managed file from dbx.config.*.`,options:[...l,{flags:`--check`,description:`Do not write; fail if files are out of date.`},{flags:`--watch`,description:`Keep running and re-sync on change.`},{flags:`--recursive`,description:`Sync every discovered dbx project in dependency order.`},{flags:`--force`,description:`Run even when no dbx.config.* is present.`},{flags:`--json`,description:`Print the sync result (including removed files) as JSON.`}],run:async(l,d)=>{let f=!!l.json,p=!!l.quiet||f,m=!!l.check;if(d.configError){t.error(d.configError),process.exitCode=1;return}if(l.recursive){let o=r(d.cwd);m||i(d.cwd,o);let l=[],u=c();for(let r of o.order){let i=e.resolve(d.cwd,r),o=await n(i,{tolerant:!0,...u});if(o.error){t.error(o.error),process.exitCode=1;continue}let c=await a({tasks:s(),cwd:i,projectType:o.projectType,config:o.config,ownConfig:o.ownConfig,tokens:o.tokens,check:m,quiet:p});l.push({dir:r,result:c}),m&&!c.upToDate&&(process.exitCode=1)}f&&t.raw(JSON.stringify({results:l},null,4));return}if(!d.configPath&&!l.force&&!d.noConfig){t.warn(`no dbx.config.* found here; nothing to sync (use --force to run anyway).`);return}if(l.watch){await o({...u(d),quiet:p});return}let h=await a({...u(d),check:m,quiet:p});if(m&&!h.upToDate&&(process.exitCode=1),!m)try{i(d.cwd,r(d.cwd))}catch{}f&&t.raw(JSON.stringify(h,null,4))}}}export{d as syncCommand};
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{logger as e}from"../../packages/shared/src/logger.js";import{sectionConfig as t}from"../../packages/shared/src/toolchain.js";import"../../packages/shared/src/index.js";import{runWatch as n}from"../../packages/core/src/watch.js";import"../../packages/core/src/index.js";import{baseOptions as r,watchOptions as i}from"./shared.js";function a(){return{name:`watch`,description:`Sync once, then watch key files and re-sync on change.`,options:[...r,{flags:`--force`,description:`Run even when no dbx.config.* is present.`}],run:async(r,a)=>{!a.configPath&&!r.force?e.warn(`no dbx.config.* found here; nothing to watch (use --force to run anyway).`):t(a.config.watch)?.enabled===!1?e.warn(`watch is disabled in the config.`):await n({...i(a),quiet:!!r.quiet})}}}export{a as watchCommand};
1
+ import"node:path";import"node:url";import.meta.url;import{logger as e}from"../../packages/shared/src/logger.js";import{sectionConfig as t}from"../../packages/shared/src/toolchain.js";import"../../packages/shared/src/index.js";import{resolveWatchGlobs as n,runWatch as r}from"../../packages/core/src/watch.js";import"../../packages/core/src/index.js";import{tsconfigFileNames as i}from"../../packages/tsconfig/src/sync.js";import"../../packages/tsconfig/src/index.js";import{defaultSyncTasks as a}from"../../sync.js";import{baseOptions as o,watchOptions as s}from"./shared.js";function c(){return{name:`watch`,description:`Sync once, then watch key files and re-sync on change.`,options:[...o,{flags:`--force`,description:`Run even when no dbx.config.* is present.`},{flags:`--list`,description:`Print the resolved input globs (+ tsconfig file names) instead of watching.`},{flags:`--json`,description:`With --list: print the inputs as JSON.`}],run:async(o,c)=>{if(o.list){let t={globs:[`**/dbx.config.*`,...n(a(),c.config,c.projectType)],tsconfig:i(c.config)};if(o.json)e.raw(JSON.stringify(t,null,4));else for(let n of t.globs)e.info(n)}else!c.configPath&&!o.force&&!c.noConfig?e.warn(`no dbx.config.* found here; nothing to watch (use --force to run anyway).`):c.config.watch===!1||t(c.config.watch)?.enabled===!1?e.warn(`watch is disabled in the config.`):await r({...s(c),quiet:!!o.quiet})}}}export{c as watchCommand};
@@ -0,0 +1,23 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ //#region src/cli/config-selection.d.ts
4
+ /** How the CLI selected the config for this run (`--config` / `--no-config`). */
5
+ export interface ConfigSelection {
6
+ /** An explicit config file (CLI-only). */
7
+ config?: string;
8
+ /** Do not load any discovered config; use CLI flags/env only. */
9
+ noConfig?: boolean;
10
+ }
11
+ /**
12
+ * Pull `--no-config` / `--config <file>` out of `argv` so they work before or
13
+ * after a subcommand. Everything after `--` is left untouched.
14
+ *
15
+ * A provider passthrough (`vite`, `vite:*`, or a custom provider command)
16
+ * receives its operands verbatim, so config flags after that command are left
17
+ * alone (`dbx vite build --config vite.custom.ts` must reach `vp`).
18
+ */
19
+ export declare function extractConfigSelection(argv: string[], isPassthrough?: (name: string) => boolean): {
20
+ argv: string[];
21
+ selection: ConfigSelection;
22
+ };
23
+ //#endregion
@@ -0,0 +1 @@
1
+ import"node:path";import"node:url";import.meta.url;let e={};function t(t){e={...t}}function n(){return e}function r(e){return/(?:^|[\\/])(?:node|node\.exe|bun|bun\.exe|deno|deno\.exe)$/i.test(e[0]??``)?2:0}function i(e,t){let n={},i=[],a=r(e),o,s=!1;for(let r=0;r<e.length;r++){let c=e[r];if(c===`--`){i.push(...e.slice(r));break}if(r>=a&&o===void 0&&!c.startsWith(`-`)&&(o=c,s=t?.(c)===!0),o!==void 0&&s)i.push(c);else if(c===`--no-config`)n.noConfig=!0;else if(c===`--config`){let t=e[++r];t!==void 0&&(n.config=t)}else c.startsWith(`--config=`)?n.config=c.slice(9):i.push(c)}return{argv:i,selection:n}}export{i as extractConfigSelection,n as getConfigSelection,t as setConfigSelection};
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{loadToolchainConfig as e}from"../packages/core/src/loader.js";import"../packages/core/src/index.js";const t=/* @__PURE__ */ new Map;function n(n){let r=t.get(n);return r||(r=e(n,{tolerant:!0}),t.set(n,r)),r}export{n as loadContext};
1
+ import"node:path";import"node:url";import.meta.url;import{loadToolchainConfig as e}from"../packages/core/src/loader.js";import"../packages/core/src/index.js";import{getConfigSelection as t}from"./config-selection.js";const n=/* @__PURE__ */ new Map;function r(r){let i=t(),a=`${r}\0${i.config??``}\0${i.noConfig?`1`:`0`}`,o=n.get(a);return o||(o=e(r,{tolerant:!0,...i}),n.set(a,o)),o}export{r as loadContext};
@@ -1,13 +1,15 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
3
  import { LoggerOptions } from "../packages/shared/src/logger.js";
4
+ import { ToolchainConfig } from "../packages/shared/src/toolchain.js";
4
5
  import { ToolchainCommand } from "../packages/shared/src/types.js";
5
6
  import "../packages/shared/src/index.js";
7
+ import { extractConfigSelection } from "./config-selection.js";
6
8
  import { registerToolchainCommands } from "./register.js";
7
9
  import { Command } from "commander";
8
10
  //#region src/cli/index.d.ts
9
11
  /** The commands built into the root CLI (config commands need a consumer engine). */
10
- export declare function builtinCommands(): ToolchainCommand[];
12
+ export declare function builtinCommands(config?: ToolchainConfig): ToolchainCommand[];
11
13
  /**
12
14
  * Default a bare Vite+ command to the `vite` passthrough: when the first
13
15
  * operand is not a built-in `dbx` command but names a Vite+ subcommand (or one
@@ -40,8 +42,8 @@ export declare function extractUpdateCheck(argv: string[]): {
40
42
  * passthrough (`vite:*`) is the exception: it keeps commander's default output
41
43
  * so the spawned `vp` process keeps its own coloured logging.
42
44
  */
43
- export declare function createCli(): Command;
45
+ export declare function createCli(commands?: ToolchainCommand[]): Command;
44
46
  /** Parse and run the CLI. */
45
47
  export declare function runCli(argv?: string[]): Promise<void>;
46
48
  //#endregion
47
- export { registerToolchainCommands };
49
+ export { extractConfigSelection, registerToolchainCommands };