@deltabox/toolchain 2.3.4 → 2.6.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 (130) hide show
  1. package/CHANGELOG.md +141 -8
  2. package/dist/biome.d.ts +2 -2
  3. package/dist/biome.js +1 -1
  4. package/dist/cli/commands/sync.js +1 -1
  5. package/dist/cli/commands/watch.js +1 -1
  6. package/dist/cli/index.js +1 -1
  7. package/dist/cli/register.js +1 -1
  8. package/dist/cli/tooling-commands.js +1 -0
  9. package/dist/config.d.ts +2 -1
  10. package/dist/config.js +1 -1
  11. package/dist/core.d.ts +4 -3
  12. package/dist/core.js +1 -1
  13. package/dist/index.d.ts +14 -10
  14. package/dist/index.js +1 -1
  15. package/dist/migrate.d.ts +3 -3
  16. package/dist/migrate.js +1 -1
  17. package/dist/package.js +1 -1
  18. package/dist/packages/biome/src/index.d.ts +142 -7
  19. package/dist/packages/biome/src/index.js +1 -1
  20. package/dist/packages/changelog/src/workflows.d.ts +19 -5
  21. package/dist/packages/changelog/src/workflows.js +5 -4
  22. package/dist/packages/config/src/generators/commands.d.ts +22 -0
  23. package/dist/packages/config/src/generators/commands.js +2 -0
  24. package/dist/packages/config/src/generators/index.d.ts +2 -1
  25. package/dist/packages/config/src/generators/index.js +1 -1
  26. package/dist/packages/config/src/generators/types.js +1 -1
  27. package/dist/packages/config/src/index.d.ts +3 -2
  28. package/dist/packages/config/src/index.js +1 -1
  29. package/dist/packages/config/src/schema.js +1 -1
  30. package/dist/packages/core/src/editor-config.js +1 -1
  31. package/dist/packages/core/src/fmt-groups.d.ts +32 -0
  32. package/dist/packages/core/src/fmt-groups.js +1 -0
  33. package/dist/packages/core/src/index.d.ts +5 -4
  34. package/dist/packages/core/src/index.js +1 -1
  35. package/dist/packages/core/src/loader.js +1 -1
  36. package/dist/packages/core/src/select.d.ts +3 -0
  37. package/dist/packages/core/src/select.js +1 -1
  38. package/dist/packages/core/src/sync.d.ts +6 -0
  39. package/dist/packages/core/src/sync.js +1 -1
  40. package/dist/packages/core/src/watch.d.ts +41 -0
  41. package/dist/packages/core/src/watch.js +1 -1
  42. package/dist/packages/migrate/src/cli/index.js +1 -1
  43. package/dist/packages/migrate/src/index.d.ts +3 -3
  44. package/dist/packages/migrate/src/index.js +1 -1
  45. package/dist/packages/migrate/src/oxc.js +1 -1
  46. package/dist/packages/migrate/src/oxlint-map.d.ts +34 -1
  47. package/dist/packages/migrate/src/oxlint-map.js +1 -1
  48. package/dist/packages/migrate/src/types.d.ts +3 -2
  49. package/dist/packages/migrate/src/vite-target.d.ts +7 -0
  50. package/dist/packages/migrate/src/vite-target.js +2 -2
  51. package/dist/packages/migrate/src/vite.d.ts +30 -1
  52. package/dist/packages/migrate/src/vite.js +10 -8
  53. package/dist/packages/project/src/cli/index.js +1 -1
  54. package/dist/packages/project/src/config.d.ts +20 -5
  55. package/dist/packages/project/src/config.js +1 -1
  56. package/dist/packages/project/src/index.d.ts +3 -3
  57. package/dist/packages/project/src/index.js +1 -1
  58. package/dist/packages/project/src/sync.js +1 -1
  59. package/dist/packages/project/src/typescript.d.ts +34 -0
  60. package/dist/packages/project/src/typescript.js +18 -10
  61. package/dist/packages/shared/src/config-schema/alias-rewrite.d.ts +32 -0
  62. package/dist/packages/shared/src/config-schema/biome.js +1 -1
  63. package/dist/packages/shared/src/config-schema/changelog.d.ts +623 -56
  64. package/dist/packages/shared/src/config-schema/ci.d.ts +1873 -163
  65. package/dist/packages/shared/src/config-schema/format.d.ts +4 -6
  66. package/dist/packages/shared/src/config-schema/format.js +1 -1
  67. package/dist/packages/shared/src/config-schema/generated/gitlab-ci.d.ts +1 -1
  68. package/dist/packages/shared/src/config-schema/generated/oxfmt-config.d.ts +1 -1
  69. package/dist/packages/shared/src/config-schema/index.d.ts +6057 -862
  70. package/dist/packages/shared/src/config-schema/index.js +1 -1
  71. package/dist/packages/shared/src/config-schema/json.d.ts +1 -1
  72. package/dist/packages/shared/src/config-schema/tsconfig.d.ts +21 -0
  73. package/dist/packages/shared/src/config-schema/tsconfig.js +1 -1
  74. package/dist/packages/shared/src/config-schema/vendor-types.d.ts +156 -0
  75. package/dist/packages/shared/src/config-schema/workflow.d.ts +3678 -297
  76. package/dist/packages/shared/src/config-schema/workflow.js +1 -1
  77. package/dist/packages/shared/src/config-types.d.ts +219 -37
  78. package/dist/packages/shared/src/ignore.d.ts +9 -1
  79. package/dist/packages/shared/src/ignore.js +1 -1
  80. package/dist/packages/shared/src/index.d.ts +11 -8
  81. package/dist/packages/shared/src/index.js +1 -1
  82. package/dist/packages/shared/src/string-utils.d.ts +9 -2
  83. package/dist/packages/shared/src/string-utils.js +2 -2
  84. package/dist/packages/shared/src/template.d.ts +1 -1
  85. package/dist/packages/shared/src/toolchain.d.ts +13 -4
  86. package/dist/packages/shared/src/toolchain.js +1 -1
  87. package/dist/packages/shared/src/tsconfig-files.d.ts +14 -0
  88. package/dist/packages/shared/src/tsconfig-files.js +1 -0
  89. package/dist/packages/shared/src/types.d.ts +4 -2
  90. package/dist/packages/shared/src/vite-defaults.d.ts +102 -10
  91. package/dist/packages/shared/src/vite-defaults.js +1 -1
  92. package/dist/packages/shared/src/yaml.d.ts +1 -1
  93. package/dist/packages/tsconfig/src/auto.d.ts +11 -0
  94. package/dist/packages/tsconfig/src/auto.js +1 -0
  95. package/dist/packages/tsconfig/src/cli/generate/index.d.ts +58 -0
  96. package/dist/packages/tsconfig/src/cli/generate/index.js +1 -1
  97. package/dist/packages/tsconfig/src/cli/generate/utils.d.ts +12 -0
  98. package/dist/packages/tsconfig/src/cli/generate/utils.js +1 -1
  99. package/dist/packages/tsconfig/src/cli/index.js +1 -1
  100. package/dist/packages/tsconfig/src/files.d.ts +5 -0
  101. package/dist/packages/tsconfig/src/files.js +1 -0
  102. package/dist/packages/tsconfig/src/index.d.ts +6 -5
  103. package/dist/packages/tsconfig/src/index.js +1 -1
  104. package/dist/packages/tsconfig/src/overrides.d.ts +3 -3
  105. package/dist/packages/tsconfig/src/resolve.d.ts +15 -3
  106. package/dist/packages/tsconfig/src/resolve.js +1 -1
  107. package/dist/packages/tsconfig/src/sync.d.ts +5 -11
  108. package/dist/packages/tsconfig/src/sync.js +1 -1
  109. package/dist/packages/tsconfig/src/templates.d.ts +38 -4
  110. package/dist/packages/tsconfig/src/workspaces.d.ts +36 -0
  111. package/dist/packages/tsconfig/src/workspaces.js +1 -0
  112. package/dist/packages/tsdown/src/config/node.js +1 -1
  113. package/dist/packages/vite/src/commands.js +1 -1
  114. package/dist/packages/vite/src/index.d.ts +3 -1
  115. package/dist/packages/vite/src/index.js +1 -1
  116. package/dist/packages/vite/src/resolve.js +1 -1
  117. package/dist/packages/vite/src/sync.js +3 -3
  118. package/dist/project.d.ts +2 -2
  119. package/dist/project.js +1 -1
  120. package/dist/shared.d.ts +10 -7
  121. package/dist/shared.js +1 -1
  122. package/dist/sync.d.ts +2 -0
  123. package/dist/sync.js +1 -1
  124. package/dist/tooling.d.ts +18 -1
  125. package/dist/tooling.js +1 -1
  126. package/dist/tsconfig.d.ts +5 -4
  127. package/dist/tsconfig.js +1 -1
  128. package/dist/vite.d.ts +2 -1
  129. package/dist/vite.js +1 -1
  130. package/package.json +15 -14
@@ -1 +1 @@
1
- import{default as e}from"node:path";import"node:url";import.meta.url;import{logger as t}from"../../../../shared/src/logger.js";import"../../../../shared/src/index.js";import{mergeOverride as n}from"../../overrides.js";import{readTsconfig as r,resolveTsconfig as i}from"../../resolve.js";import a from"node:fs";function o(o){let{cwd:c,dirname:l,tsconfigPath:u,monorepoTsconfigPath:d,tsconfigBuildPath:f,targetTsconfigPath:p,targetTsconfigBuildPath:m,indent:h=4,disableComposite:g,ignoreAliases:_,ignoreReferences:v,write:y=!0,log:b=e=>t.info(e),overrides:x}=o,S=e.relative(c,l).replace(/\\/g,`/`)||`.`;try{if(!a.existsSync(u))throw Error(`Source tsconfig not found: ${u}`);if(!d)throw Error(`options.monorepoTsconfigPath not set for ${u}`);b(` - ${S}`);let t=e.basename(u),m=a.existsSync(f),C=a.existsSync(d),w=C?r(d):{},T=n(w,x?.root),E=C?i({tsconfig:d,root:c,cwd:c,...x?.root?{overrides:x.root}:{}}):{alias:[],paths:{},references:[]},D=r(u),O=n(D,x?.default),k=m?r(f):void 0,A=k?n(k,x?.build):void 0,j=g?[]:[.../* @__PURE__ */ new Set([...O.compilerOptions?.types??[],...g?[]:T.compilerOptions?.types??[]])],M={};if(!_)for(let[e,t]of Object.entries(E.paths)){let n=t.map(e=>s(e,l,S)).filter(e=>e!==void 0);n.length>0&&(M[e]=n)}let N=[];if(!v){let t=/* @__PURE__ */ new Set,n=(e,n)=>{let r=s(e,l,S);r===void 0||t.has(r)||(t.add(r),N.push({...n,path:r}))};for(let t of O.references??[])n(e.resolve(c,t.path),t);for(let e of E.references)n(e.path,e)}let P={...g?{}:T,extends:`./${t}`,compilerOptions:{...g?{composite:!1}:T.compilerOptions,...j.length?{types:j}:{},..._?{}:{paths:{...O.compilerOptions?.paths,...M}}},...v?{}:{references:N}},F=m?{...A,extends:`./${t}`}:void 0;return y&&a.writeFileSync(p,`${JSON.stringify(P,null,h)}\n`),{...o,dirnameRelative:S,tsconfigFilename:t,config:P,newTsconfig:P,newTsconfigBuild:F,originalConfig:D,tsconfigMonorepo:T,tsconfigBuild:A}}catch(e){throw Error(`Failed to extend tsconfig for ${S}: ${e instanceof Error?e.message:String(e)}`)}}function s(t,n,r){let i=e.resolve(t),a=e.resolve(n),o=e.dirname(i);if((o===a||o.startsWith(`${a}${e.sep}`))&&r!==`.`)return;let s=e.relative(a,i).replace(/\\/g,`/`);return s.startsWith(`.`)||(s=`./${s}`),s}export{o as generateTsconfig};
1
+ import{default as e}from"node:path";import"node:url";import.meta.url;import{logger as t}from"../../../../shared/src/logger.js";import"../../../../shared/src/index.js";import{mergeOverride as n}from"../../overrides.js";import{readTsconfig as r,resolveTsconfig as i,resolveTsconfigConfig as a}from"../../resolve.js";import o from"node:fs";function s(s){let{cwd:l,dirname:u,tsconfigPath:d,monorepoTsconfigPath:f,tsconfigBuildPath:p,targetTsconfigPath:m,targetTsconfigBuildPath:h,indent:g=4,disableComposite:_,ignoreAliases:v,ignoreReferences:y,aliases:b,refs:x,composite:S,monorepoConfig:C,write:w=!0,log:T=e=>t.info(e),overrides:E}=s,D=b??!v,O=x??!y,k=S??!_,A=e.relative(l,u).replace(/\\/g,`/`)||`.`;try{if(!o.existsSync(d))throw Error(`Source tsconfig not found: ${d}`);if(!f)throw Error(`options.monorepoTsconfigPath not set for ${d}`);T(` - ${A}`);let t=e.basename(d),h=o.existsSync(p),_=C!==void 0||o.existsSync(f),v=C??(_?r(f):{}),y=n(v,E?.root),b=_?C===void 0?i({tsconfig:f,root:l,cwd:l,...E?.root?{overrides:E.root}:{}}):a(C,l,E?.root?{overrides:E.root}:{}):{alias:[],paths:{},references:[]},x=r(d),S=n(x,E?.default),j=h?r(p):void 0,M=j?n(j,E?.build):void 0,N=k?[.../* @__PURE__ */ new Set([...S.compilerOptions?.types??[],...y.compilerOptions?.types??[]])]:[],P={};if(D)for(let[e,t]of Object.entries(b.paths)){let n=t.map(e=>c(e,u,A)).filter(e=>e!==void 0);n.length>0&&(P[e]=n)}let F=[];if(O){let t=/* @__PURE__ */ new Set,n=(e,n)=>{let r=c(e,u,A);r===void 0||t.has(r)||(t.add(r),F.push({...n,path:r}))};for(let t of S.references??[])n(e.resolve(l,t.path),t);for(let e of b.references)n(e.path,e)}let I={...y.compilerOptions};delete I.paths;let L={...y};delete L.references;let R={...k?L:{},extends:`./${t}`,compilerOptions:{...k?I:{},composite:k,...N.length?{types:N}:{},...D&&Object.keys({...S.compilerOptions?.paths,...P}).length>0?{paths:{...S.compilerOptions?.paths,...P}}:{}},...O?{references:F}:{}},z=h?{...M,extends:`./${t}`}:void 0;return w&&o.writeFileSync(m,`${JSON.stringify(R,null,g)}\n`),{...s,dirnameRelative:A,tsconfigFilename:t,config:R,newTsconfig:R,newTsconfigBuild:z,originalConfig:x,tsconfigMonorepo:y,tsconfigBuild:M}}catch(e){throw Error(`Failed to extend tsconfig for ${A}: ${e instanceof Error?e.message:String(e)}`)}}function c(t,n,r){let i=e.resolve(t),a=e.resolve(n),o=e.dirname(i);if((o===a||o.startsWith(`${a}${e.sep}`))&&r!==`.`)return;let s=e.relative(a,i).replace(/\\/g,`/`);return s.startsWith(`.`)||(s=`./${s}`),s}export{s as generateTsconfig};
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{warningMessage as e}from"../../../shared/src/messages.js";import{logger as t}from"../../../shared/src/logger.js";import{sectionConfig as n}from"../../../shared/src/toolchain.js";import"../../../shared/src/index.js";import{TSCONFIG_OVERRIDE_KINDS as r,hasOverrideKeys as i}from"../overrides.js";import{resolveTsconfig as a}from"../resolve.js";import{generateTsconfigs as o}from"./generate/index.js";import{restoreTsconfigOverrides as s}from"../snapshots.js";function c(){return[{name:`tsconfig`,description:`Generate workspace tsconfig.json files from the default tsconfig (aliases + references).`,options:[{flags:`--cwd <dir>`,description:`Repo root to scan (default: cwd).`},{flags:`--no-aliases`,description:`Skip path aliases.`},{flags:`--composite`,description:`Emit composite + references.`},{flags:`--refs`,description:`Wire project references.`},{flags:`-i, --indent <n>`,description:`JSON indentation.`},{flags:`--glob <glob...>`,description:`Glob(s) for the default tsconfig files.`},{flags:`--exclude <glob...>`,description:`Glob(s) to exclude (on top of the common ignored paths).`},{flags:`--no-gitignore`,description:`Do not respect .gitignore files.`},{flags:`--default-file <file>`,description:`Default tsconfig file name.`},{flags:`--build-file <file>`,description:`Build tsconfig file name.`},{flags:`--root-file <file>`,description:`Workspaces tsconfig file name.`},{flags:`--tsconfig <file>`,description:`Resolve this tsconfig instead of <root>/tsconfig.json.`},{flags:`--root <dir>`,description:`Root used to detect/resolve the tsconfig (default: cwd).`},{flags:`--json`,description:`Print the resolved { alias, paths, references } object.`},{flags:`--alias`,description:`Print only the resolved Vite/Vitest aliases.`},{flags:`--paths`,description:`Print only the resolved compilerOptions.paths.`},{flags:`--references`,description:`Print only the resolved project references.`},{flags:`--no-extends`,description:`Do not follow the tsconfig extends chain.`},{flags:`--restore [kind]`,description:`Remove the applied tsconfig overrides (all, or base|root|default|build) using the manifest snapshots.`}],run:(c,l)=>{let u=c.cwd??l.cwd,d=c.root??u,f=n(l.config.tsconfig)??{},p=c.defaultFile??f.defaultFile??`tsconfig.default.json`,m=c.buildFile??f.buildFile??`tsconfig.build.json`,h=c.rootFile??f.rootFile??`tsconfig.workspaces.json`,g=[`alias`,`paths`,`references`].filter(e=>c[e]===!0),_=c.restore;if(_!==void 0&&_!==!1){let n=typeof _==`string`?_:void 0;if(n!==void 0&&!r.includes(n))throw Error(`invalid --restore kind "${n}" (expected ${r.join(`|`)}).`);let a=s({cwd:u,...n?{kind:n}:{},warn:(e,n)=>t.warn(e,n)});t.info(a.restored.length>0?`Restored ${a.restored.length} tsconfig file(s): ${a.restored.join(`, `)}.`:`No tsconfig overrides to restore.`);let o=f.overrides??{},c=a.kinds.filter(e=>i(o[e]));c.length>0&&t.warn(e(`tsconfig.restore-reapply`,{kinds:c.join(`, `)}),`tsconfig.restore-reapply`);return}if(c.json===!0||g.length>0){let e=a({cwd:u,root:d,...c.tsconfig?{tsconfig:c.tsconfig}:{},...c.extends===!1?{extends:!1}:{}}),n=g.length===0?e:g.length===1?e[g[0]]:Object.fromEntries(g.map(t=>[t,e[t]]));t.raw(JSON.stringify(n,(e,t)=>t instanceof RegExp?String(t):t,4));return}let v=c.glob;o({cwd:l.cwd,aliases:c.aliases??f.aliases??!0,composite:c.composite??f.composite??!1,refs:c.refs??f.refs??!1,indent:c.indent===void 0?f.indent:Number.parseInt(String(c.indent),10),glob:v??f.glob??`**/${p}`,exclude:c.exclude??f.exclude,gitignore:c.gitignore??f.gitignore,defaultFile:p,buildFile:m,monorepoTsconfigFilename:h,...f.overrides?{overrides:f.overrides}:{}})}}]}export{c as tsconfigCommands};
1
+ import"node:path";import"node:url";import.meta.url;import{warningMessage as e}from"../../../shared/src/messages.js";import{logger as t}from"../../../shared/src/logger.js";import{sectionConfig as n}from"../../../shared/src/toolchain.js";import"../../../shared/src/index.js";import{TSCONFIG_OVERRIDE_KINDS as r,hasOverrideKeys as i}from"../overrides.js";import{resolveTsconfig as a}from"../resolve.js";import{generateWorkspaceTsconfigs as o}from"./generate/index.js";import{restoreTsconfigOverrides as s}from"../snapshots.js";function c(){return[{name:`tsconfig`,description:`Generate workspace tsconfig.json files from the default tsconfig (aliases + references).`,options:[{flags:`--cwd <dir>`,description:`Repo root to scan (default: cwd).`},{flags:`--no-aliases`,description:`Skip path aliases.`},{flags:`--composite`,description:`Emit composite + references.`},{flags:`--refs`,description:`Wire project references.`},{flags:`--auto`,description:`Auto-wire the root workspaces tsconfig paths/references from the project graph (default false).`},{flags:`--no-auto`,description:`Only use the paths/references already in the root workspaces tsconfig.`},{flags:`--auto-aliases`,description:`Auto-wire path aliases (defaults to --auto).`},{flags:`--no-auto-aliases`,description:`Do not auto-wire path aliases.`},{flags:`--auto-refs`,description:`Auto-wire project references (defaults to --auto).`},{flags:`--no-auto-refs`,description:`Do not auto-wire project references.`},{flags:`--auto-src-dir <dir>`,description:`Source directory for auto entry points (default: the workspace tsconfig rootDir/baseUrl, then src).`},{flags:`-i, --indent <n>`,description:`JSON indentation.`},{flags:`--glob <glob...>`,description:`Glob(s) for the default tsconfig files.`},{flags:`--exclude <glob...>`,description:`Glob(s) to exclude (on top of the common ignored paths).`},{flags:`--no-gitignore`,description:`Do not respect .gitignore files.`},{flags:`--default-file <file>`,description:`Default tsconfig file name.`},{flags:`--build-file <file>`,description:`Build tsconfig file name.`},{flags:`--root-file <file>`,description:`Workspaces tsconfig file name.`},{flags:`--tsconfig <file>`,description:`Resolve this tsconfig instead of <root>/tsconfig.json.`},{flags:`--root <dir>`,description:`Root used to detect/resolve the tsconfig (default: cwd).`},{flags:`--json`,description:`Print the resolved { alias, paths, references } object.`},{flags:`--alias`,description:`Print only the resolved Vite/Vitest aliases.`},{flags:`--paths`,description:`Print only the resolved compilerOptions.paths.`},{flags:`--references`,description:`Print only the resolved project references.`},{flags:`--no-extends`,description:`Do not follow the tsconfig extends chain.`},{flags:`--restore [kind]`,description:`Remove the applied tsconfig overrides (all, or base|root|default|build) using the manifest snapshots.`}],run:async(c,l)=>{let u=c.cwd??l.cwd,d=c.root??u,f=n(l.config.tsconfig)??{},p=c.defaultFile??f.defaultFile??`tsconfig.default.json`,m=c.buildFile??f.buildFile??`tsconfig.build.json`,h=c.rootFile??f.rootFile??`tsconfig.workspaces.json`,g=[`alias`,`paths`,`references`].filter(e=>c[e]===!0),_=c.restore;if(_!==void 0&&_!==!1){let n=typeof _==`string`?_:void 0;if(n!==void 0&&!r.includes(n))throw Error(`invalid --restore kind "${n}" (expected ${r.join(`|`)}).`);let a=s({cwd:u,...n?{kind:n}:{},warn:(e,n)=>t.warn(e,n)});t.info(a.restored.length>0?`Restored ${a.restored.length} tsconfig file(s): ${a.restored.join(`, `)}.`:`No tsconfig overrides to restore.`);let o=f.overrides??{},c=a.kinds.filter(e=>i(o[e]));c.length>0&&t.warn(e(`tsconfig.restore-reapply`,{kinds:c.join(`, `)}),`tsconfig.restore-reapply`);return}if(c.json===!0||g.length>0){let e=a({cwd:u,root:d,...c.tsconfig?{tsconfig:c.tsconfig}:{},...c.extends===!1?{extends:!1}:{}}),n=g.length===0?e:g.length===1?e[g[0]]:Object.fromEntries(g.map(t=>[t,e[t]]));t.raw(JSON.stringify(n,(e,t)=>t instanceof RegExp?String(t):t,4));return}let v={};c.aliases!==void 0&&(v.aliases=!!c.aliases),c.composite!==void 0&&(v.composite=!!c.composite),c.refs!==void 0&&(v.refs=!!c.refs),c.auto!==void 0&&(v.auto=!!c.auto),c.autoAliases!==void 0&&(v.aliasAuto=!!c.autoAliases),c.autoRefs!==void 0&&(v.refsAuto=!!c.autoRefs),c.autoSrcDir!==void 0&&(v.autoSrcDir=String(c.autoSrcDir)),c.indent!==void 0&&(v.indent=Number.parseInt(String(c.indent),10)),c.glob!==void 0&&(v.glob=c.glob),c.exclude!==void 0&&(v.exclude=c.exclude),c.gitignore!==void 0&&(v.gitignore=!!c.gitignore),v.defaultFile=p,v.buildFile=m,v.rootFile=h,(await o({cwd:u,config:l.config,overrides:v})).skipped&&t.warn(`toolchain.tsconfig is not enabled in dbx.config; skipping the tsconfig task.`)}}]}export{c as tsconfigCommands};
@@ -0,0 +1,5 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ import { TsconfigFileNameSet, tsconfigFileNames } from "../../shared/src/tsconfig-files.js";
4
+ import "../../shared/src/index.js";
5
+ export { type TsconfigFileNameSet as TsconfigFileNames, tsconfigFileNames };
@@ -0,0 +1 @@
1
+ import"node:path";import"node:url";import.meta.url;export{tsconfigFileNames}from"../../shared/src/tsconfig-files.js";import"../../shared/src/index.js";
@@ -1,13 +1,14 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
3
  import { AppliedOverride, OverrideLeaf, OverridesState, RevertOverrideResult, TSCONFIG_OVERRIDE_KINDS, TsconfigOverrideKind, TsconfigOverrides, addedOverrideLeaves, applyOverride, getPath, hasOverrideKeys, hasPath, isAppliedOverride, mergeOverride, overrideLeaves, recordOverrideSnapshot, removedOverrideLeaves, revertOverride } from "./overrides.js";
4
- import { GenerateTsconfigsOptions, generateTsconfigs, runTsconfigCli } from "./cli/generate/index.js";
5
- import { ResolveTsconfigOptions, ResolvedTsconfig, TsconfigAlias, TsconfigJson, TsconfigReference, parseTsconfig, readTsconfig, resolveTsconfig } from "./resolve.js";
4
+ import { GenerateTsconfigsOptions, GenerateWorkspaceTsconfigsOptions, GenerateWorkspaceTsconfigsResult, generateTsconfigs, generateWorkspaceTsconfigs, runTsconfigCli } from "./cli/generate/index.js";
5
+ import { ResolveTsconfigOptions, ResolvedTsconfig, TsconfigAlias, TsconfigJson, TsconfigReference, parseTsconfig, readTsconfig, resolveTsconfig, resolveTsconfigCompilerOption, resolveTsconfigConfig } from "./resolve.js";
6
6
  import { RestoreTsconfigOverridesOptions, RestoreTsconfigOverridesResult, SnapshotTree, TSCONFIG_MANIFEST_PATH, deleteSnapshot, detectIndent, getSnapshot, restoreTsconfigOverrides, setSnapshot, stringifyTsconfig, toRepoRelative } from "./snapshots.js";
7
- import { TsconfigFileNames, tsconfigFileNames, tsconfigSyncTask } from "./sync.js";
7
+ import { tsconfigSyncTask } from "./sync.js";
8
8
  import { DEFAULT_TSCONFIG_REPLACEMENTS, MonorepoTsconfigOptions, MonorepoWorkspace, TsconfigExtends, TsconfigExtendsOptions, buildMonorepoTsconfig, renderMonorepoTsconfig, renderTsconfigBase, renderTsconfigBuild, renderTsconfigDefault, renderTsconfigTemplates, tsconfigBaseTemplate, tsconfigBuildTemplate, tsconfigDefaultTemplate } from "./templates.js";
9
+ import { TsconfigFileNameSet, tsconfigFileNames } from "../../shared/src/tsconfig-files.js";
9
10
  declare namespace index_d_exports {
10
- export { AppliedOverride, DEFAULT_TSCONFIG_REPLACEMENTS, GenerateTsconfigsOptions, MonorepoTsconfigOptions, MonorepoWorkspace, OverrideLeaf, OverridesState, ResolveTsconfigOptions, ResolvedTsconfig, RestoreTsconfigOverridesOptions, RestoreTsconfigOverridesResult, RevertOverrideResult, SnapshotTree, TSCONFIG_MANIFEST_PATH, TSCONFIG_OVERRIDE_KINDS, TsconfigAlias, TsconfigExtends, TsconfigExtendsOptions, TsconfigFileNames, TsconfigJson, TsconfigOverrideKind, TsconfigOverrides, TsconfigReference, addedOverrideLeaves, applyOverride, buildMonorepoTsconfig, deleteSnapshot, detectIndent, generateTsconfigs, getPath, getSnapshot, hasOverrideKeys, hasPath, isAppliedOverride, mergeOverride, overrideLeaves, parseTsconfig, readTsconfig, recordOverrideSnapshot, removedOverrideLeaves, renderMonorepoTsconfig, renderTsconfigBase, renderTsconfigBuild, renderTsconfigDefault, renderTsconfigTemplates, resolveTsconfig, restoreTsconfigOverrides, revertOverride, runTsconfigCli, setSnapshot, stringifyTsconfig, toRepoRelative, tsconfigBaseTemplate, tsconfigBuildTemplate, tsconfigDefaultTemplate, tsconfigFileNames, tsconfigSyncTask };
11
+ export { AppliedOverride, DEFAULT_TSCONFIG_REPLACEMENTS, GenerateTsconfigsOptions, GenerateWorkspaceTsconfigsOptions, GenerateWorkspaceTsconfigsResult, MonorepoTsconfigOptions, MonorepoWorkspace, OverrideLeaf, OverridesState, ResolveTsconfigOptions, ResolvedTsconfig, RestoreTsconfigOverridesOptions, RestoreTsconfigOverridesResult, RevertOverrideResult, SnapshotTree, TSCONFIG_MANIFEST_PATH, TSCONFIG_OVERRIDE_KINDS, TsconfigAlias, TsconfigExtends, TsconfigExtendsOptions, TsconfigFileNameSet as TsconfigFileNames, TsconfigJson, TsconfigOverrideKind, TsconfigOverrides, TsconfigReference, addedOverrideLeaves, applyOverride, buildMonorepoTsconfig, deleteSnapshot, detectIndent, generateTsconfigs, generateWorkspaceTsconfigs, getPath, getSnapshot, hasOverrideKeys, hasPath, isAppliedOverride, mergeOverride, overrideLeaves, parseTsconfig, readTsconfig, recordOverrideSnapshot, removedOverrideLeaves, renderMonorepoTsconfig, renderTsconfigBase, renderTsconfigBuild, renderTsconfigDefault, renderTsconfigTemplates, resolveTsconfig, resolveTsconfigCompilerOption, resolveTsconfigConfig, restoreTsconfigOverrides, revertOverride, runTsconfigCli, setSnapshot, stringifyTsconfig, toRepoRelative, tsconfigBaseTemplate, tsconfigBuildTemplate, tsconfigDefaultTemplate, tsconfigFileNames, tsconfigSyncTask };
11
12
  }
12
13
  //#endregion
13
- export { AppliedOverride, DEFAULT_TSCONFIG_REPLACEMENTS, GenerateTsconfigsOptions, MonorepoTsconfigOptions, MonorepoWorkspace, OverrideLeaf, OverridesState, ResolveTsconfigOptions, ResolvedTsconfig, RestoreTsconfigOverridesOptions, RestoreTsconfigOverridesResult, RevertOverrideResult, SnapshotTree, TSCONFIG_MANIFEST_PATH, TSCONFIG_OVERRIDE_KINDS, TsconfigAlias, TsconfigExtends, TsconfigExtendsOptions, TsconfigFileNames, TsconfigJson, TsconfigOverrideKind, TsconfigOverrides, TsconfigReference, addedOverrideLeaves, applyOverride, buildMonorepoTsconfig, deleteSnapshot, detectIndent, generateTsconfigs, getPath, getSnapshot, hasOverrideKeys, hasPath, index_d_exports, isAppliedOverride, mergeOverride, overrideLeaves, parseTsconfig, readTsconfig, recordOverrideSnapshot, removedOverrideLeaves, renderMonorepoTsconfig, renderTsconfigBase, renderTsconfigBuild, renderTsconfigDefault, renderTsconfigTemplates, resolveTsconfig, restoreTsconfigOverrides, revertOverride, runTsconfigCli, setSnapshot, stringifyTsconfig, toRepoRelative, tsconfigBaseTemplate, tsconfigBuildTemplate, tsconfigDefaultTemplate, tsconfigFileNames, tsconfigSyncTask };
14
+ export { AppliedOverride, DEFAULT_TSCONFIG_REPLACEMENTS, GenerateTsconfigsOptions, GenerateWorkspaceTsconfigsOptions, GenerateWorkspaceTsconfigsResult, MonorepoTsconfigOptions, MonorepoWorkspace, OverrideLeaf, OverridesState, ResolveTsconfigOptions, ResolvedTsconfig, RestoreTsconfigOverridesOptions, RestoreTsconfigOverridesResult, RevertOverrideResult, SnapshotTree, TSCONFIG_MANIFEST_PATH, TSCONFIG_OVERRIDE_KINDS, TsconfigAlias, TsconfigExtends, TsconfigExtendsOptions, type TsconfigFileNameSet as TsconfigFileNames, TsconfigJson, TsconfigOverrideKind, TsconfigOverrides, TsconfigReference, addedOverrideLeaves, applyOverride, buildMonorepoTsconfig, deleteSnapshot, detectIndent, generateTsconfigs, generateWorkspaceTsconfigs, getPath, getSnapshot, hasOverrideKeys, hasPath, index_d_exports, isAppliedOverride, mergeOverride, overrideLeaves, parseTsconfig, readTsconfig, recordOverrideSnapshot, removedOverrideLeaves, renderMonorepoTsconfig, renderTsconfigBase, renderTsconfigBuild, renderTsconfigDefault, renderTsconfigTemplates, resolveTsconfig, resolveTsconfigCompilerOption, resolveTsconfigConfig, restoreTsconfigOverrides, revertOverride, runTsconfigCli, setSnapshot, stringifyTsconfig, toRepoRelative, tsconfigBaseTemplate, tsconfigBuildTemplate, tsconfigDefaultTemplate, tsconfigFileNames, tsconfigSyncTask };
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{__exportAll as e}from"../../../_virtual/_rolldown/runtime.js";import{TSCONFIG_OVERRIDE_KINDS as t,addedOverrideLeaves as n,applyOverride as r,getPath as i,hasOverrideKeys as a,hasPath as o,isAppliedOverride as s,mergeOverride as c,overrideLeaves as l,recordOverrideSnapshot as u,removedOverrideLeaves as d,revertOverride as f}from"./overrides.js";import{parseTsconfig as p,readTsconfig as m,resolveTsconfig as h}from"./resolve.js";import{generateTsconfigs as g,runTsconfigCli as _}from"./cli/generate/index.js";import{TSCONFIG_MANIFEST_PATH as v,deleteSnapshot as y,detectIndent as b,getSnapshot as x,restoreTsconfigOverrides as S,setSnapshot as C,stringifyTsconfig as w,toRepoRelative as T}from"./snapshots.js";import{tsconfigFileNames as E,tsconfigSyncTask as D}from"./sync.js";import{DEFAULT_TSCONFIG_REPLACEMENTS as O,buildMonorepoTsconfig as k,renderMonorepoTsconfig as A,renderTsconfigBase as j,renderTsconfigBuild as M,renderTsconfigDefault as N,renderTsconfigTemplates as P,tsconfigBaseTemplate as F,tsconfigBuildTemplate as I,tsconfigDefaultTemplate as L}from"./templates.js";var R=/* @__PURE__ */ e({DEFAULT_TSCONFIG_REPLACEMENTS:()=>O,TSCONFIG_MANIFEST_PATH:()=>v,TSCONFIG_OVERRIDE_KINDS:()=>t,addedOverrideLeaves:()=>n,applyOverride:()=>r,buildMonorepoTsconfig:()=>k,deleteSnapshot:()=>y,detectIndent:()=>b,generateTsconfigs:()=>g,getPath:()=>i,getSnapshot:()=>x,hasOverrideKeys:()=>a,hasPath:()=>o,isAppliedOverride:()=>s,mergeOverride:()=>c,overrideLeaves:()=>l,parseTsconfig:()=>p,readTsconfig:()=>m,recordOverrideSnapshot:()=>u,removedOverrideLeaves:()=>d,renderMonorepoTsconfig:()=>A,renderTsconfigBase:()=>j,renderTsconfigBuild:()=>M,renderTsconfigDefault:()=>N,renderTsconfigTemplates:()=>P,resolveTsconfig:()=>h,restoreTsconfigOverrides:()=>S,revertOverride:()=>f,runTsconfigCli:()=>_,setSnapshot:()=>C,stringifyTsconfig:()=>w,toRepoRelative:()=>T,tsconfigBaseTemplate:()=>F,tsconfigBuildTemplate:()=>I,tsconfigDefaultTemplate:()=>L,tsconfigFileNames:()=>E,tsconfigSyncTask:()=>D});export{O as DEFAULT_TSCONFIG_REPLACEMENTS,v as TSCONFIG_MANIFEST_PATH,t as TSCONFIG_OVERRIDE_KINDS,n as addedOverrideLeaves,r as applyOverride,k as buildMonorepoTsconfig,y as deleteSnapshot,b as detectIndent,g as generateTsconfigs,i as getPath,x as getSnapshot,a as hasOverrideKeys,o as hasPath,s as isAppliedOverride,c as mergeOverride,l as overrideLeaves,p as parseTsconfig,m as readTsconfig,u as recordOverrideSnapshot,d as removedOverrideLeaves,A as renderMonorepoTsconfig,j as renderTsconfigBase,M as renderTsconfigBuild,N as renderTsconfigDefault,P as renderTsconfigTemplates,h as resolveTsconfig,S as restoreTsconfigOverrides,f as revertOverride,_ as runTsconfigCli,C as setSnapshot,R as src_exports,w as stringifyTsconfig,T as toRepoRelative,F as tsconfigBaseTemplate,I as tsconfigBuildTemplate,L as tsconfigDefaultTemplate,E as tsconfigFileNames,D as tsconfigSyncTask};
1
+ import"node:path";import"node:url";import.meta.url;import{__exportAll as e}from"../../../_virtual/_rolldown/runtime.js";import{tsconfigFileNames as t}from"../../shared/src/tsconfig-files.js";import{TSCONFIG_OVERRIDE_KINDS as n,addedOverrideLeaves as r,applyOverride as i,getPath as a,hasOverrideKeys as o,hasPath as s,isAppliedOverride as c,mergeOverride as l,overrideLeaves as u,recordOverrideSnapshot as d,removedOverrideLeaves as f,revertOverride as p}from"./overrides.js";import{parseTsconfig as m,readTsconfig as h,resolveTsconfig as g,resolveTsconfigCompilerOption as _,resolveTsconfigConfig as v}from"./resolve.js";import{generateTsconfigs as y,generateWorkspaceTsconfigs as b,runTsconfigCli as x}from"./cli/generate/index.js";import{TSCONFIG_MANIFEST_PATH as S,deleteSnapshot as C,detectIndent as w,getSnapshot as T,restoreTsconfigOverrides as E,setSnapshot as D,stringifyTsconfig as O,toRepoRelative as k}from"./snapshots.js";import{tsconfigSyncTask as A}from"./sync.js";import{DEFAULT_TSCONFIG_REPLACEMENTS as j,buildMonorepoTsconfig as M,renderMonorepoTsconfig as N,renderTsconfigBase as P,renderTsconfigBuild as F,renderTsconfigDefault as I,renderTsconfigTemplates as L,tsconfigBaseTemplate as R,tsconfigBuildTemplate as z,tsconfigDefaultTemplate as B}from"./templates.js";var V=/* @__PURE__ */ e({DEFAULT_TSCONFIG_REPLACEMENTS:()=>j,TSCONFIG_MANIFEST_PATH:()=>S,TSCONFIG_OVERRIDE_KINDS:()=>n,addedOverrideLeaves:()=>r,applyOverride:()=>i,buildMonorepoTsconfig:()=>M,deleteSnapshot:()=>C,detectIndent:()=>w,generateTsconfigs:()=>y,generateWorkspaceTsconfigs:()=>b,getPath:()=>a,getSnapshot:()=>T,hasOverrideKeys:()=>o,hasPath:()=>s,isAppliedOverride:()=>c,mergeOverride:()=>l,overrideLeaves:()=>u,parseTsconfig:()=>m,readTsconfig:()=>h,recordOverrideSnapshot:()=>d,removedOverrideLeaves:()=>f,renderMonorepoTsconfig:()=>N,renderTsconfigBase:()=>P,renderTsconfigBuild:()=>F,renderTsconfigDefault:()=>I,renderTsconfigTemplates:()=>L,resolveTsconfig:()=>g,resolveTsconfigCompilerOption:()=>_,resolveTsconfigConfig:()=>v,restoreTsconfigOverrides:()=>E,revertOverride:()=>p,runTsconfigCli:()=>x,setSnapshot:()=>D,stringifyTsconfig:()=>O,toRepoRelative:()=>k,tsconfigBaseTemplate:()=>R,tsconfigBuildTemplate:()=>z,tsconfigDefaultTemplate:()=>B,tsconfigFileNames:()=>t,tsconfigSyncTask:()=>A});export{j as DEFAULT_TSCONFIG_REPLACEMENTS,S as TSCONFIG_MANIFEST_PATH,n as TSCONFIG_OVERRIDE_KINDS,r as addedOverrideLeaves,i as applyOverride,M as buildMonorepoTsconfig,C as deleteSnapshot,w as detectIndent,y as generateTsconfigs,b as generateWorkspaceTsconfigs,a as getPath,T as getSnapshot,o as hasOverrideKeys,s as hasPath,c as isAppliedOverride,l as mergeOverride,u as overrideLeaves,m as parseTsconfig,h as readTsconfig,d as recordOverrideSnapshot,f as removedOverrideLeaves,N as renderMonorepoTsconfig,P as renderTsconfigBase,F as renderTsconfigBuild,I as renderTsconfigDefault,L as renderTsconfigTemplates,g as resolveTsconfig,_ as resolveTsconfigCompilerOption,v as resolveTsconfigConfig,E as restoreTsconfigOverrides,p as revertOverride,x as runTsconfigCli,D as setSnapshot,V as src_exports,O as stringifyTsconfig,k as toRepoRelative,R as tsconfigBaseTemplate,z as tsconfigBuildTemplate,B as tsconfigDefaultTemplate,t as tsconfigFileNames,A as tsconfigSyncTask};
@@ -4,10 +4,10 @@ import { ToolchainTsconfigOverrides } from "../../shared/src/config-types.js";
4
4
  import "../../shared/src/index.js";
5
5
  import { TsConfigJson } from "type-fest";
6
6
  //#region packages/tsconfig/src/overrides.d.ts
7
- /** The file an override targets. */
8
- export type TsconfigOverrideKind = 'base' | 'root' | 'default' | 'build';
9
7
  /** Every override kind, in the order the sync task applies them. */
10
- export declare const TSCONFIG_OVERRIDE_KINDS: readonly TsconfigOverrideKind[];
8
+ export declare const TSCONFIG_OVERRIDE_KINDS: readonly ['base', 'root', 'default', 'build'];
9
+ /** The file an override targets. */
10
+ export type TsconfigOverrideKind = (typeof TSCONFIG_OVERRIDE_KINDS)[number];
11
11
  /** The `tsconfig.overrides` config section. */
12
12
  export type TsconfigOverrides = ToolchainTsconfigOverrides;
13
13
  /** One applied override, as recorded in the manifest. */
@@ -17,7 +17,7 @@ export interface TsconfigAlias {
17
17
  export interface TsconfigReference {
18
18
  /** Absolute path to the referenced tsconfig file. */
19
19
  path: string;
20
- [key: string]: unknown;
20
+ [key: string & {}]: unknown;
21
21
  }
22
22
  /** The result of {@link resolveTsconfig}. */
23
23
  export interface ResolvedTsconfig {
@@ -44,17 +44,29 @@ export interface TsconfigJson {
44
44
  extends?: string | string[];
45
45
  compilerOptions?: {
46
46
  baseUrl?: string;
47
- paths?: Record<string, string[] | string>;
47
+ rootDir?: string;
48
+ paths?: Record<string, string[]>;
48
49
  };
49
50
  references?: {
50
51
  path: string;
51
- [key: string]: unknown;
52
+ [key: string & {}]: unknown;
52
53
  }[];
53
54
  }
54
55
  /** Read a tsconfig file (JSONC: comments + trailing commas are allowed). */
55
56
  export declare function readTsconfig(file: string): TsconfigJson;
56
57
  /** Parse JSONC tsconfig text (comments, trailing commas and a BOM are allowed). */
57
58
  export declare function parseTsconfig(text: string): TsconfigJson;
59
+ /**
60
+ * Resolve an in-memory tsconfig object (eg. the auto-generated workspaces config)
61
+ * exactly like {@link resolveTsconfig}, but without requiring it to be on disk.
62
+ */
63
+ export declare function resolveTsconfigConfig(config: TsconfigJson, dir: string, options?: Pick<ResolveTsconfigOptions, 'extends' | 'overrides'>): ResolvedTsconfig;
64
+ /**
65
+ * The nearest `compilerOptions.rootDir`/`baseUrl` in a tsconfig's `extends`
66
+ * chain, resolved to an absolute path. Used by auto alias wiring to infer the
67
+ * workspace source directory.
68
+ */
69
+ export declare function resolveTsconfigCompilerOption(file: string, key: 'rootDir' | 'baseUrl'): string | undefined;
58
70
  /**
59
71
  * Resolve a tsconfig's `paths` and `references`, following `extends` per field.
60
72
  */
@@ -1,3 +1,3 @@
1
1
  import{default as e}from"node:path";import"node:url";import.meta.url;import{mergeOverride as t}from"./overrides.js";import{createRequire as n}from"node:module";import r from"node:fs";function i(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;i++){let a=e[i],o=e[i+1];if(n)t+=a,r?r=!1:a===`\\`?r=!0:a===`"`&&(n=!1);else if(a===`"`)n=!0,t+=a;else if(a===`/`&&o===`/`){for(;i<e.length&&e[i]!==`
2
2
  `;)i++;t+=`
3
- `}else if(a===`/`&&o===`*`){for(i+=2;i<e.length&&(e[i]!==`*`||e[i+1]!==`/`);)i++;i++}else t+=a}return t}function a(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;i++){let a=e[i];if(n)t+=a,r?r=!1:a===`\\`?r=!0:a===`"`&&(n=!1);else if(a===`"`)n=!0,t+=a;else{if(a===`,`){let t=i+1;for(;t<e.length&&/\s/.test(e[t]);)t++;if(e[t]===`}`||e[t]===`]`)continue}t+=a}}return t}function o(e){return s(r.readFileSync(e,`utf-8`))}function s(e){return JSON.parse(a(i(e.replace(/^\uFEFF/,``))))}function c(e){try{return r.statSync(e).isFile()}catch{return!1}}function l(t,r){let i=n(e.join(r,`__dbx_tsconfig__.js`)),a=[];if(t.startsWith(`.`)||e.isAbsolute(t)){let n=e.resolve(r,t);a.push(n,`${n}.json`,e.join(n,`tsconfig.json`))}else{try{let e=i.resolve(t);e.endsWith(`.json`)&&a.push(e)}catch{}for(let e of[`tsconfig.json`,`tsconfig.base.json`])try{a.push(i.resolve(`${t}/${e}`))}catch{}if(!t.endsWith(`.json`))try{a.push(i.resolve(`${t}.json`))}catch{}}return a.find(c)}function u(e){return Array.isArray(e.extends)?e.extends:e.extends?[e.extends]:[]}function d(t,n){let r=e.resolve(t);if(n.has(r))return[];n.add(r);let i=o(r),a=e.dirname(r),s=[{file:r,dir:a,config:i}];for(let e of[...u(i)].reverse()){let t=l(e,a);if(!t)throw Error(`Cannot resolve tsconfig "extends": "${e}" from ${r}`);s.push(...d(t,n))}return s}function f(t,n){let r=e.join(n,`tsconfig.json`);if(c(r))return r;let i=e.resolve(t);for(;;){let t=e.join(i,`tsconfig.json`);if(c(t))return t;let n=e.dirname(i);if(n===i)break;i=n}throw Error(`No tsconfig.json found from ${t} (root: ${n})`)}function p(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function m(e,t){let n=e.indexOf(`*`);if(n===-1)return{find:e,replacement:t,score:1/0};let r=e.slice(0,n),i=e.slice(n+1),a=`^${p(r)}(.*)${p(i)}$`;return{find:new RegExp(a),replacement:t.replace(/\*/g,`$1`),score:r.length+1}}function h(n={}){let r=e.resolve(n.cwd??process.cwd()),i=e.resolve(n.root??r),a=n.tsconfig?e.resolve(i,n.tsconfig):f(r,i),s=n.extends===!1?[{file:a,dir:e.dirname(a),config:o(a)}]:d(a,/* @__PURE__ */ new Set);n.overrides&&s[0]&&(s[0]={...s[0],config:t(s[0].config,n.overrides)});let c=s.find(e=>e.config.compilerOptions?.paths!==void 0),l=s.find(e=>e.config.references!==void 0),u=s.find(e=>e.config.compilerOptions?.baseUrl!==void 0),p=u?e.resolve(u.dir,u.config.compilerOptions?.baseUrl??`.`):c?.dir??e.dirname(a),h={};for(let[t,n]of Object.entries(c?.config.compilerOptions?.paths??{}))h[t]=(Array.isArray(n)?n:[n]).map(t=>e.resolve(p,t));let g=(l?.config.references??[]).map(t=>({...t,path:e.resolve(l?.dir??e.dirname(a),t.path)}));return{alias:Object.entries(h).filter(([,e])=>e.length>0).map(([e,t])=>m(e,t[0])).sort((e,t)=>t.score-e.score).map(({find:e,replacement:t})=>({find:e,replacement:t})),paths:h,references:g}}export{s as parseTsconfig,o as readTsconfig,h as resolveTsconfig};
3
+ `}else if(a===`/`&&o===`*`){for(i+=2;i<e.length&&(e[i]!==`*`||e[i+1]!==`/`);)i++;i++}else t+=a}return t}function a(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;i++){let a=e[i];if(n)t+=a,r?r=!1:a===`\\`?r=!0:a===`"`&&(n=!1);else if(a===`"`)n=!0,t+=a;else{if(a===`,`){let t=i+1;for(;t<e.length&&/\s/.test(e[t]);)t++;if(e[t]===`}`||e[t]===`]`)continue}t+=a}}return t}function o(e){return s(r.readFileSync(e,`utf-8`))}function s(e){return JSON.parse(a(i(e.replace(/^\uFEFF/,``))))}function c(e){try{return r.statSync(e).isFile()}catch{return!1}}function l(t,r){let i=n(e.join(r,`__dbx_tsconfig__.js`)),a=[];if(t.startsWith(`.`)||e.isAbsolute(t)){let n=e.resolve(r,t);a.push(n,`${n}.json`,e.join(n,`tsconfig.json`))}else{try{let e=i.resolve(t);e.endsWith(`.json`)&&a.push(e)}catch{}for(let e of[`tsconfig.json`,`tsconfig.base.json`])try{a.push(i.resolve(`${t}/${e}`))}catch{}if(!t.endsWith(`.json`))try{a.push(i.resolve(`${t}.json`))}catch{}}return a.find(c)}function u(e){return Array.isArray(e.extends)?e.extends:e.extends?[e.extends]:[]}function d(t,n){let r=e.resolve(t);if(n.has(r))return[];n.add(r);let i=o(r),a=e.dirname(r),s=[{file:r,dir:a,config:i}];for(let e of[...u(i)].reverse()){let t=l(e,a);if(!t)throw Error(`Cannot resolve tsconfig "extends": "${e}" from ${r}`);s.push(...d(t,n))}return s}function f(t,n){let r=e.join(n,`tsconfig.json`);if(c(r))return r;let i=e.resolve(t);for(;;){let t=e.join(i,`tsconfig.json`);if(c(t))return t;let n=e.dirname(i);if(n===i)break;i=n}throw Error(`No tsconfig.json found from ${t} (root: ${n})`)}function p(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function m(e,t){let n=e.indexOf(`*`);if(n===-1)return{find:e,replacement:t,score:1/0};let r=e.slice(0,n),i=e.slice(n+1),a=`^${p(r)}(.*)${p(i)}$`;return{find:new RegExp(a),replacement:t.replace(/\*/g,`$1`),score:r.length+1}}function h(t,n,r,i){let a=e.resolve(n),o=e.dirname(a),s=[{file:a,dir:o,config:t}];if(!r)return s;i.add(a);for(let e of[...u(t)].reverse()){let t=l(e,o);if(!t)throw Error(`Cannot resolve tsconfig "extends": "${e}" from ${a}`);s.push(...d(t,i))}return s}function g(t,n){let r=t.find(e=>e.config.compilerOptions?.paths!==void 0),i=t.find(e=>e.config.references!==void 0),a=t.find(e=>e.config.compilerOptions?.baseUrl!==void 0),o=a?e.resolve(a.dir,a.config.compilerOptions?.baseUrl??`.`):r?.dir??e.dirname(n),s={};for(let[t,n]of Object.entries(r?.config.compilerOptions?.paths??{}))s[t]=(Array.isArray(n)?n:[n]).map(t=>e.resolve(o,t));let c=(i?.config.references??[]).map(t=>({...t,path:e.resolve(i?.dir??e.dirname(n),t.path)}));return{alias:Object.entries(s).filter(([,e])=>e.length>0).map(([e,t])=>m(e,t[0])).sort((e,t)=>t.score-e.score).map(({find:e,replacement:t})=>({find:e,replacement:t})),paths:s,references:c}}function _(n,r,i={}){let a=e.join(e.resolve(r),`tsconfig.json`),o=h(n,a,i.extends!==!1,/* @__PURE__ */ new Set);return i.overrides&&o[0]&&(o[0]={...o[0],config:t(o[0].config,i.overrides)}),g(o,a)}function v(t,n){if(!c(t))return;let r=d(e.resolve(t),/* @__PURE__ */ new Set).find(e=>{let t=e.config.compilerOptions?.[n];return typeof t==`string`&&t.length>0});if(r)return e.resolve(r.dir,r.config.compilerOptions?.[n])}function y(n={}){let r=e.resolve(n.cwd??process.cwd()),i=e.resolve(n.root??r),a=n.tsconfig?e.resolve(i,n.tsconfig):f(r,i),s=n.extends===!1?[{file:a,dir:e.dirname(a),config:o(a)}]:d(a,/* @__PURE__ */ new Set);return n.overrides&&s[0]&&(s[0]={...s[0],config:t(s[0].config,n.overrides)}),g(s,a)}export{s as parseTsconfig,o as readTsconfig,y as resolveTsconfig,v as resolveTsconfigCompilerOption,_ as resolveTsconfigConfig};
@@ -1,17 +1,10 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- import { SyncTask, ToolchainConfig } from "../../shared/src/toolchain.js";
3
+ import "./files.js";
4
+ import { SyncTask } from "../../shared/src/toolchain.js";
5
+ import { TsconfigFileNameSet, tsconfigFileNames } from "../../shared/src/tsconfig-files.js";
4
6
  import "../../shared/src/index.js";
5
7
  //#region packages/tsconfig/src/sync.d.ts
6
- /** The tsconfig file names the task reads and patches (custom names honoured). */
7
- export interface TsconfigFileNames {
8
- baseFile: string;
9
- rootFile: string;
10
- defaultFile: string;
11
- buildFile: string;
12
- }
13
- /** Resolve the configured tsconfig file names (defaults for the unset ones). */
14
- export declare function tsconfigFileNames(config: ToolchainConfig): TsconfigFileNames;
15
8
  /**
16
9
  * The tsconfig sync task: regenerates every workspace `tsconfig.json` from the
17
10
  * workspace default tsconfig files, applying the monorepo aliases + references,
@@ -20,4 +13,5 @@ export declare function tsconfigFileNames(config: ToolchainConfig): TsconfigFile
20
13
  * are honoured everywhere, including the watched inputs.
21
14
  */
22
15
  export declare function tsconfigSyncTask(): SyncTask;
23
- //#endregion
16
+ //#endregion
17
+ export { type TsconfigFileNameSet as TsconfigFileNames, tsconfigFileNames };
@@ -1 +1 @@
1
- import{default as e}from"node:path";import"node:url";import.meta.url;import{warningMessage as t}from"../../shared/src/messages.js";import{sectionConfig as n,sectionEnabled as r}from"../../shared/src/toolchain.js";import"../../shared/src/index.js";import{addedOverrideLeaves as i,applyOverride as a,hasOverrideKeys as o,isAppliedOverride as s,mergeOverride as c,recordOverrideSnapshot as l,removedOverrideLeaves as u,revertOverride as d}from"./overrides.js";import{parseTsconfig as f}from"./resolve.js";import{generateTsconfigs as p}from"./cli/generate/index.js";import{deleteSnapshot as m,detectIndent as h,getSnapshot as g,setSnapshot as _,stringifyTsconfig as v,toRepoRelative as y}from"./snapshots.js";import b from"node:fs";import{isDeepStrictEqual as x}from"node:util";function S(e){let t=n(e.tsconfig)??{};return{baseFile:t.baseFile??`tsconfig.base.json`,rootFile:t.rootFile??`tsconfig.workspaces.json`,defaultFile:t.defaultFile??`tsconfig.default.json`,buildFile:t.buildFile??`tsconfig.build.json`}}function C(t,n){return e.relative(t,n).replace(/\\/g,`/`)}function w(n,r,p){let S=n.manifest?.tsconfigOverrides??{},C=structuredClone(n.manifest?.snapshots??{}),w={},T=[],E=/* @__PURE__ */ new Map;for(let e of r){let r=y(n.cwd,e.file);if(!r){o(e.override)&&n.warn(t(`tsconfig.outside-root`,{file:e.file}),`tsconfig.outside-root`);continue}let i=E.get(r);E.set(r,i?{...i,override:c(i.override??{},e.override)}:e)}let D=/* @__PURE__ */ new Set;for(let[t,r]of Object.entries(S))!E.has(t)&&s(r)&&y(n.cwd,t)&&(D.add(t),E.set(t,{file:e.resolve(n.cwd,t),kind:r.kind,override:void 0}));for(let[e,r]of E){let c=s(S[e])?S[e]:void 0,y=o(r.override)?r.override:void 0;if(!c&&!y)continue;if(!b.existsSync(r.file)){n.warn(t(`tsconfig.missing-file`,{file:e,kind:r.kind}),`tsconfig.missing-file`),c&&!D.has(e)&&(w[e]=c),D.has(e)&&m(C,e);continue}let E=b.readFileSync(r.file,`utf-8`),O=f(E),k=structuredClone(O),A=g(C,e),j=A===void 0?structuredClone(O):A,{kept:M}=d(k,u(c?.override,y),j);for(let r of M)n.warn(t(`tsconfig.override-edited`,{file:e,key:r}),`tsconfig.override-edited`);y?(l(j,k,i(c?.override,y)),_(C,e,j),w[e]={kind:r.kind,override:structuredClone(y)},a(k,y)):m(C,e),x(O,k)||T.push({path:e,content:v(k,h(E,p)),track:!1})}return n.manifest&&(Object.keys(w).length>0?n.manifest.tsconfigOverrides=w:delete n.manifest.tsconfigOverrides,Object.keys(C).length>0?n.manifest.snapshots=C:delete n.manifest.snapshots),T}function T(){return{name:`tsconfig`,projectTypes:[`monorepo-root`],enabled:e=>r(e.tsconfig),watch:e=>{let t=S(e);return[t.rootFile,`**/${t.defaultFile}`]},keep:e=>[.../* @__PURE__ */ new Set([S(e).buildFile,`tsconfig.build.json`])],run:t=>{let r=n(t.config.tsconfig)??{},{baseFile:i,rootFile:a,defaultFile:o,buildFile:s}=S(t.config),c=e.resolve(t.cwd,a),l=b.existsSync(c),u=r.indent??4,d=r.glob??`**/${o}`,f=r.overrides??{},m=p({cwd:t.cwd,aliases:r.aliases??!0,composite:r.composite??!1,refs:r.refs??!1,indent:u,glob:d,...r.exclude===void 0?{}:{exclude:r.exclude},...r.gitignore===void 0?{}:{gitignore:r.gitignore},defaultFile:o,buildFile:s,monorepoTsconfigFilename:a,log:!1,write:!1,overrides:f});if(m.length===0){if(r.refs||r.composite||l){let e=Array.isArray(d)?d.join(`, `):d,n=[r.refs?`project references`:``,r.composite?`composite`:``,l?`${a}`:``].filter(Boolean);t.warn(`no workspace tsconfig files found (looked for ${e}), but ${n.join(` + `)} have nothing to wire.`)}else t.log(`tsconfig: no workspace tsconfig files found; skipping.`)}let h=m.map(e=>({path:C(t.cwd,e.targetTsconfigPath),content:`${JSON.stringify(e.newTsconfig,null,u)}\n`})),g=[{file:e.resolve(t.cwd,i),kind:`base`,override:f.base},{file:c,kind:`root`,override:f.root}];for(let e of m)g.push({file:e.tsconfigPath,kind:`default`,override:f.default}),g.push({file:e.targetTsconfigBuildPath,kind:`build`,override:f.build});return h.push(...w(t,g,u)),m.length>0&&t.log(`tsconfig: regenerated ${m.length} workspace tsconfig(s).`),h}}}export{S as tsconfigFileNames,T as tsconfigSyncTask};
1
+ import{default as e}from"node:path";import"node:url";import.meta.url;import{warningMessage as t}from"../../shared/src/messages.js";import{sectionConfig as n,sectionEnabled as r}from"../../shared/src/toolchain.js";import{tsconfigFileNames as i}from"../../shared/src/tsconfig-files.js";import"../../shared/src/index.js";import{addedOverrideLeaves as a,applyOverride as o,hasOverrideKeys as s,isAppliedOverride as c,mergeOverride as l,recordOverrideSnapshot as u,removedOverrideLeaves as d,revertOverride as f}from"./overrides.js";import{parseTsconfig as p}from"./resolve.js";import"./files.js";import{generateWorkspaceTsconfigs as m}from"./cli/generate/index.js";import{deleteSnapshot as h,detectIndent as g,getSnapshot as _,setSnapshot as v,stringifyTsconfig as y,toRepoRelative as b}from"./snapshots.js";import x from"node:fs";import{isDeepStrictEqual as S}from"node:util";function C(t,n){return e.relative(t,n).replace(/\\/g,`/`)}function w(n,r,i){let m=n.manifest?.tsconfigOverrides??{},C=structuredClone(n.manifest?.snapshots??{}),w={},T=[],E=/* @__PURE__ */ new Map;for(let e of r){let r=b(n.cwd,e.file);if(!r){s(e.override)&&n.warn(t(`tsconfig.outside-root`,{file:e.file}),`tsconfig.outside-root`);continue}let i=E.get(r);E.set(r,i?{...i,override:l(i.override??{},e.override)}:e)}let D=/* @__PURE__ */ new Set;for(let[t,r]of Object.entries(m))!E.has(t)&&c(r)&&b(n.cwd,t)&&(D.add(t),E.set(t,{file:e.resolve(n.cwd,t),kind:r.kind,override:void 0}));for(let[e,r]of E){let l=c(m[e])?m[e]:void 0,b=s(r.override)?r.override:void 0;if(!l&&!b)continue;if(!x.existsSync(r.file)&&r.content===void 0){n.warn(t(`tsconfig.missing-file`,{file:e,kind:r.kind}),`tsconfig.missing-file`),l&&!D.has(e)&&(w[e]=l),D.has(e)&&h(C,e);continue}let E=r.content??x.readFileSync(r.file,`utf-8`),O=p(E),k=structuredClone(O),A=_(C,e),j=A===void 0?structuredClone(O):A,{kept:M}=f(k,d(l?.override,b),j);for(let r of M)n.warn(t(`tsconfig.override-edited`,{file:e,key:r}),`tsconfig.override-edited`);b?(u(j,k,a(l?.override,b)),v(C,e,j),w[e]={kind:r.kind,override:structuredClone(b)},o(k,b)):h(C,e),S(O,k)||T.push({path:e,content:y(k,g(E,i)),track:!1})}return n.manifest&&(Object.keys(w).length>0?n.manifest.tsconfigOverrides=w:delete n.manifest.tsconfigOverrides,Object.keys(C).length>0?n.manifest.snapshots=C:delete n.manifest.snapshots),T}function T(){return{name:`tsconfig`,projectTypes:[`monorepo-root`,`monorepo-workspace`],enabled:e=>r(e.tsconfig),watch:e=>{let t=i(e);return[t.rootFile,`**/${t.defaultFile}`]},keep:e=>[.../* @__PURE__ */ new Set([i(e).buildFile,`tsconfig.build.json`])],run:async t=>{let r=n(t.config.tsconfig)??{},{baseFile:a,rootFile:o,defaultFile:c}=i(t.config),l=e.resolve(t.cwd,o),u=x.existsSync(l),d=r.indent??4,f=r.glob??`**/${c}`,p=r.overrides??{},h=await m({cwd:t.cwd,config:t.config,write:!1,writeSidecar:!1,previousAuto:t.manifest?.tsconfigAuto}),g=h.results;if(g.length===0){if(r.refs||r.composite||u){let e=Array.isArray(f)?f.join(`, `):f,n=[r.refs?`project references`:``,r.composite?`composite`:``,u?`${o}`:``].filter(Boolean);t.warn(`no workspace tsconfig files found (looked for ${e}), but ${n.join(` + `)} have nothing to wire.`)}else t.log(`tsconfig: no workspace tsconfig files found; skipping.`)}let _=g.map(e=>({path:C(t.cwd,e.targetTsconfigPath),content:`${JSON.stringify(e.newTsconfig,null,d)}\n`}));for(let e of h.workspaces)!e.isRoot&&e.ownTsconfig&&e.enabled&&x.existsSync(e.targetTsconfigPath)&&_.push({path:C(t.cwd,e.targetTsconfigPath),content:x.readFileSync(e.targetTsconfigPath,`utf-8`),track:!1});let v=p.root;h.writeRoot&&!s(v)&&_.push({path:C(t.cwd,h.rootTsconfigPath),content:h.rootContent,track:!1}),t.manifest&&(h.autoState.paths.length>0||h.autoState.references.length>0?t.manifest.tsconfigAuto=h.autoState:delete t.manifest.tsconfigAuto);let y=[{file:e.resolve(t.cwd,a),kind:`base`,override:p.base},{file:l,kind:`root`,override:p.root,content:h.baseRootContent}];for(let e of g)y.push({file:e.tsconfigPath,kind:`default`,override:p.default}),y.push({file:e.targetTsconfigBuildPath,kind:`build`,override:p.build});return _.push(...w(t,y,d)),g.length>0&&t.log(`tsconfig: regenerated ${g.length} workspace tsconfig(s).`),_}}}export{i as tsconfigFileNames,T as tsconfigSyncTask};
@@ -4,11 +4,45 @@ import { Replacements } from "../../shared/src/template.js";
4
4
  import "../../shared/src/index.js";
5
5
  //#region packages/tsconfig/src/templates.d.ts
6
6
  /** The static tsconfig templates (with `{{envTypesFile}}` tokens). */
7
- export declare const tsconfigBaseTemplate: Record<string, unknown>;
8
- export declare const tsconfigDefaultTemplate: Record<string, unknown>;
9
- export declare const tsconfigBuildTemplate: Record<string, unknown>;
7
+ export declare const tsconfigBaseTemplate: {
8
+ compilerOptions: {
9
+ target: string;
10
+ module: string;
11
+ moduleResolution: string;
12
+ lib: string[];
13
+ strict: boolean;
14
+ skipLibCheck: boolean;
15
+ noEmit: boolean;
16
+ allowJs: boolean;
17
+ esModuleInterop: boolean;
18
+ forceConsistentCasingInFileNames: boolean;
19
+ resolveJsonModule: boolean;
20
+ isolatedModules: boolean;
21
+ noUncheckedIndexedAccess: boolean;
22
+ noFallthroughCasesInSwitch: boolean;
23
+ };
24
+ };
25
+ export declare const tsconfigDefaultTemplate: {
26
+ extends: string;
27
+ compilerOptions: {
28
+ module: string;
29
+ moduleResolution: string;
30
+ jsx: string;
31
+ lib: string[];
32
+ types: string[];
33
+ };
34
+ exclude: string[];
35
+ include: string[];
36
+ };
37
+ export declare const tsconfigBuildTemplate: {
38
+ extends: string;
39
+ include: string[];
40
+ exclude: string[];
41
+ };
10
42
  /** The default replacement values for the tsconfig templates. */
11
- export declare const DEFAULT_TSCONFIG_REPLACEMENTS: Replacements;
43
+ export declare const DEFAULT_TSCONFIG_REPLACEMENTS: {
44
+ readonly envTypesFile: 'src/env.d.ts';
45
+ };
12
46
  /** The `extends` value to write into one generated template. */
13
47
  export type TsconfigExtends = string | string[] | false;
14
48
  /** Per-template `extends` overrides for {@link renderTsconfigTemplates}. */
@@ -0,0 +1,36 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ import { ToolchainTsconfigConfig } from "../../shared/src/config-types.js";
4
+ import "./files.js";
5
+ import { PackageJson } from "../../shared/src/types.js";
6
+ import { TsconfigFileNameSet } from "../../shared/src/tsconfig-files.js";
7
+ import "../../shared/src/index.js";
8
+ //#region packages/tsconfig/src/workspaces.d.ts
9
+ /** A workspace (or the root) with its effective tsconfig settings. */
10
+ export interface TsconfigWorkspace {
11
+ /** Absolute workspace directory. */
12
+ dir: string;
13
+ /** Repo-relative posix path (`.` for the root). */
14
+ relativeDir: string;
15
+ /** `package.json` name, when present. */
16
+ packageName?: string;
17
+ /** `package.json`, when present (used to resolve entry points). */
18
+ packageJson?: PackageJson;
19
+ /** Whether this workspace's effective `tsconfig` section is enabled. */
20
+ enabled: boolean;
21
+ /** Whether this workspace's own config defines a `tsconfig` section. */
22
+ ownTsconfig: boolean;
23
+ /** Whether this is the repository root. */
24
+ isRoot: boolean;
25
+ /** Effective file names (custom `defaultFile`/`buildFile` included). */
26
+ names: TsconfigFileNameSet;
27
+ /** Absolute source default tsconfig path. */
28
+ defaultTsconfigPath: string;
29
+ /** Absolute generated tsconfig path. */
30
+ targetTsconfigPath: string;
31
+ /** Absolute build tsconfig path. */
32
+ buildTsconfigPath: string;
33
+ /** Effective merged `tsconfig` options (root defaults + nested overrides). */
34
+ options: ToolchainTsconfigConfig;
35
+ }
36
+ //#endregion
@@ -0,0 +1 @@
1
+ import{default as e}from"node:path";import"node:url";import.meta.url;import{deepMerge as t}from"../../shared/src/object-utils.js";import{readJsonAt as n}from"../../shared/src/fs-utils.js";import{isIgnoredPath as r,resolveIgnorePatterns as i}from"../../shared/src/ignore.js";import{splitPackageName as a}from"../../shared/src/project.js";import{sectionConfig as o,sectionEnabled as s}from"../../shared/src/toolchain.js";import{tsconfigFileNames as c}from"../../shared/src/tsconfig-files.js";import"../../shared/src/index.js";import{findConfigFile as l,loadToolchainConfig as u}from"../../core/src/loader.js";import{buildProjectGraph as d}from"../../core/src/graph.js";import"../../core/src/index.js";import"./files.js";import f from"node:fs";import{globSync as p}from"glob";function m(e){return e.replace(/\\/g,`/`)}function h(t,n){return m(e.relative(t,n))||`.`}async function g(a){let u=e.resolve(a.cwd),g=d(u),y=a.rootConfig.tsconfig,b=s(y),x=o(y)??{},S=[...g.projects];S.some(e=>e.dir===`.`)||S.unshift({dir:`.`,hasConfig:!!a.rootConfig,dependencies:[]});let C=x.defaultFile??`tsconfig.default.json`,w=a.glob??`**/${C}`,T=i(u,{...a.exclude===void 0?{}:{exclude:a.exclude},...a.gitignore===void 0?{}:{gitignore:a.gitignore}});for(let t of p(w,{cwd:u,nodir:!0,ignore:T})){let n=e.dirname(e.resolve(u,t)),r=h(u,n);S.some(e=>e.dir===r)||S.push({dir:r,hasConfig:!!l(n),dependencies:[]})}let E=i(u,{...a.exclude===void 0?{}:{exclude:a.exclude},...a.gitignore===void 0?{}:{gitignore:a.gitignore}}),D=a.glob?new Set(p(a.glob,{cwd:u,nodir:!0,ignore:E}).map(e=>m(e))):void 0,O=[];for(let i of S){let l=e.resolve(u,i.dir),d=i.dir===`.`,p=h(u,l),g=n(l,`package.json`),y=await _(l,d,i.hasConfig),S=d?a.rootConfig.project:y?.project,C=v(g?.name,S),w=y?.tsconfig,T=w===void 0||s(w),k=b&&T,A=w!==void 0&&typeof w==`object`?o(w)??{}:{},j=t(x,A),M=c({...a.rootConfig,tsconfig:j}),N=e.resolve(l,M.defaultFile),P=f.existsSync(N),F=m(e.relative(u,N));r(F,E)||(!D||D.has(F))&&(!a.requireDefaultFile||P)&&O.push({dir:l,relativeDir:p,...C?{packageName:C}:{},...g?{packageJson:g}:{},enabled:k,ownTsconfig:w!==void 0,isRoot:d,names:M,defaultTsconfigPath:N,targetTsconfigPath:e.resolve(l,`tsconfig.json`),buildTsconfigPath:e.resolve(l,M.buildFile),options:j})}return O}async function _(e,t,n){if(!t&&n)try{return(await u(e,{tolerant:!0,skipHooks:!0})).ownConfig}catch{return}}function v(e,t){if(!t?.name)return e;if(t.name.startsWith(`@`))return t.name;let n=a(e),r=t.scope??n.scope;return r?`${r}/${t.name}`:t.name}function y(e,t){if(e===void 0)return{enabled:t,include:[],exclude:[]};if(typeof e==`boolean`)return{enabled:e,include:[],exclude:[]};if(e&&typeof e==`object`){let t=e;return{enabled:!0,include:Array.isArray(t.include)?t.include.filter(e=>typeof e==`string`):[],exclude:Array.isArray(t.exclude)?t.exclude.filter(e=>typeof e==`string`):[],...t.rewriteAlias===void 0?{}:{rewriteAlias:t.rewriteAlias}}}return{enabled:t,include:[],exclude:[]}}function b(e){let t=y(e.auto,!1);return{auto:t,aliasAuto:y(e.aliasAuto,t.enabled),refsAuto:y(e.refsAuto,t.enabled)}}function x(e,t){let n=e===`.`?``:e;return t.include.length>0&&!t.include.some(e=>S(e,n))?!1:!t.exclude.some(e=>S(e,n))}function S(e,t){let n=e.replace(/\\/g,`/`).replace(/^\.\//,``),r=t.replace(/\\/g,`/`).replace(/^\.\//,``),i=n.split(``).map(e=>e===`*`?`.*`:e===`?`?`.`:e.replace(/[.+^${}()|[\]\\]/g,`\\$&`)).join(``).replace(/\.\*\.\*\//g,`(?:.*/)?`).replace(/\\\*\\\*/g,`.*`);try{return RegExp(`^${i}$`).test(r)}catch{return n===r}}export{S as matchGlob,x as matchesAutoFilter,b as resolveAutoSwitches,g as resolveTsconfigWorkspaces};
@@ -1,3 +1,3 @@
1
- import"node:path";import"node:url";import.meta.url;import{sort as e}from"../../../shared/src/object-utils.js";import"../../../shared/src/index.js";import t from"node:fs";import{globalLogger as n}from"tsdown";function r(n){let r=JSON.parse(t.readFileSync(n,`utf-8`));if(!r.exports||typeof r.exports!=`object`)return!1;let{".":i,"./":a=i,"./types":o,"./package.json":s,...c}=e(r.exports);return r.exports={...a?{".":a}:{},...o?{"./types":o}:{},...c,...s?{"./package.json":s}:{}},t.writeFileSync(n,`${JSON.stringify(r,null,4)}\n`,`utf-8`),!0}const i={format:[`esm`],platform:`node`,fixedExtension:!1,deps:{neverBundle:[/(^node:)|\/tests\/|node_modules/]},dts:{generator:`tsgo`},minify:!0,tsconfig:`tsconfig.build.json`,publint:!0,sourcemap:!1,clean:!0,shims:!0,exports:!0,outputOptions:{assetFileNames:`_assets/[name][extname]`,chunkFileNames:`_chunks/[name]-[hash].js`},hooks:{"build:done":e=>{try{if(process.env.NODE_ENV===`development`)return;let t=e.options.pkg?.packageJsonPath;if(!t)return;r(t)&&n.success(`package.json exports keys sorted!`)}catch(e){n.error(`Failed to sort package.json exports keys:`,e)}}}};function a(e={}){let{name:t,version:n,license:r,homepage:i,banner:a,copyright:o}=e;return e=>{let s=[];return a&&s.push(...a.split(`
1
+ import"node:path";import"node:url";import.meta.url;import e from"node:fs";import{globalLogger as t}from"tsdown";function n(e){return Object.fromEntries(Object.entries(e).sort(([e],[t])=>e.localeCompare(t)))}function r(t){let r=JSON.parse(e.readFileSync(t,`utf-8`));if(!r.exports||typeof r.exports!=`object`)return!1;let{".":i,"./":a=i,"./types":o,"./package.json":s,...c}=n(r.exports);return r.exports={...a?{".":a}:{},...o?{"./types":o}:{},...c,...s?{"./package.json":s}:{}},e.writeFileSync(t,`${JSON.stringify(r,null,4)}\n`,`utf-8`),!0}const i={format:[`esm`],platform:`node`,fixedExtension:!1,deps:{neverBundle:[/(^node:)|\/tests\/|node_modules/]},dts:{generator:`tsgo`},minify:!0,tsconfig:`tsconfig.build.json`,publint:!0,sourcemap:!1,clean:!0,shims:!0,exports:!0,outputOptions:{assetFileNames:`_assets/[name][extname]`,chunkFileNames:`_chunks/[name]-[hash].js`},hooks:{"build:done":e=>{try{if(process.env.NODE_ENV===`development`)return;let n=e.options.pkg?.packageJsonPath;if(!n)return;r(n)&&t.success(`package.json exports keys sorted!`)}catch(e){t.error(`Failed to sort package.json exports keys:`,e)}}}};function a(e={}){let{name:t,version:n,license:r,homepage:i,banner:a,copyright:o}=e;return e=>{let s=[];return a&&s.push(...a.split(`
2
2
  `)),s.push(e.fileName),t&&s.push(`Source code for ${t}${n?` v${n}`:``}.`),r&&s.push(`Released under the ${r} License.`),i&&s.push(i),s.push(``,`© ${o??`deltabox`}. All rights reserved.`,``),`/*\n${s.map(e=>` * ${e}`).join(`
3
3
  `)} */\n`}}function o(e={},t){let n={...i,...e};return t&&(n.outputOptions={...i.outputOptions,...e.outputOptions,postBanner:a(t)}),n}export{i as baseTsdownConfig,a as createPostBanner,o as createTsdownConfig,r as sortPackageExports};
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;const e=[{name:`create`,group:`start`,description:`Create a new project from a template.`},{name:`migrate`,group:`start`,description:`Migrate an existing project to Vite+.`},{name:`config`,group:`start`,description:`Configure hooks and agent integration.`},{name:`hooks`,group:`start`,description:`Manage the Git hook dispatcher.`},{name:`staged`,group:`start`,description:`Run linters on staged files.`},{name:`install`,group:`start`,aliases:[`i`],description:`Install dependencies with the detected package manager.`},{name:`env`,group:`start`,description:`Manage Node.js and package managers.`},{name:`dev`,group:`develop`,description:`Run the Vite development server.`},{name:`check`,group:`develop`,description:`Run format, lint and type checks.`},{name:`lint`,group:`develop`,description:`Lint code with Oxlint.`},{name:`fmt`,group:`develop`,description:`Format code with Oxfmt.`},{name:`test`,group:`develop`,description:`Run tests through bundled Vitest.`},{name:`run`,group:`execute`,description:`Run package scripts and monorepo tasks.`},{name:`exec`,group:`execute`,description:`Execute a binary from local node_modules.`},{name:`node`,group:`execute`,description:`Run a Node.js script in the Vite+ env.`},{name:`dlx`,group:`execute`,description:`Run a package binary without installing it.`},{name:`cache`,group:`execute`,description:`Manage the task cache.`},{name:`build`,group:`build`,description:`Build for production.`},{name:`pack`,group:`build`,description:`Build libraries for npm or standalone binaries.`},{name:`preview`,group:`build`,description:`Preview the production build.`},{name:`add`,group:`deps`,description:`Add packages to dependencies.`},{name:`remove`,group:`deps`,aliases:[`rm`,`un`,`uninstall`],description:`Remove packages from dependencies.`},{name:`update`,group:`deps`,aliases:[`up`],description:`Update packages.`},{name:`dedupe`,group:`deps`,description:`Deduplicate dependencies.`},{name:`outdated`,group:`deps`,description:`Check for outdated packages.`},{name:`list`,group:`deps`,aliases:[`ls`],description:`List installed packages.`},{name:`why`,group:`deps`,aliases:[`explain`],description:`Explain why a package is installed.`},{name:`info`,group:`deps`,aliases:[`view`,`show`],description:`View package metadata.`},{name:`link`,group:`deps`,aliases:[`ln`],description:`Link local packages.`},{name:`unlink`,group:`deps`,description:`Unlink local packages.`},{name:`rebuild`,group:`deps`,description:`Rebuild native modules.`},{name:`pm`,group:`deps`,description:`Forward a command to the package manager.`},{name:`toolchain`,group:`maintain`,description:`Show Vite+ tool versions.`},{name:`upgrade`,group:`maintain`,description:"Update `vp` itself."},{name:`implode`,group:`maintain`,description:"Remove `vp` and all related data."}];function t(e){return`vite:${e}`}function n(t){return e.find(e=>e.name===t||e.aliases?.includes(t)===!0)?.name}export{e as VP_COMMANDS,n as resolveVpCommand,t as viteCommandName};
1
+ import"node:path";import"node:url";import.meta.url;const e=[{name:`create`,group:`start`,description:`Create a new project from a template.`},{name:`migrate`,group:`start`,description:`Migrate an existing project to Vite+.`},{name:`config`,group:`start`,description:`Configure hooks and agent integration.`},{name:`hooks`,group:`start`,description:`Manage the Git hook dispatcher.`},{name:`staged`,group:`start`,description:`Run linters on staged files.`},{name:`install`,group:`start`,aliases:[`i`],description:`Install dependencies with the detected package manager.`},{name:`env`,group:`start`,description:`Manage Node.js and package managers.`},{name:`dev`,group:`develop`,description:`Run the Vite development server.`},{name:`check`,group:`develop`,description:`Run format, lint and type checks.`},{name:`lint`,group:`develop`,description:`Lint code with the active linter (Oxlint via Vite+).`},{name:`fmt`,group:`develop`,description:`Format code with the active formatter (Oxfmt via Vite+).`},{name:`test`,group:`develop`,description:`Run tests through bundled Vitest.`},{name:`run`,group:`execute`,description:`Run package scripts and monorepo tasks.`},{name:`exec`,group:`execute`,description:`Execute a binary from local node_modules.`},{name:`node`,group:`execute`,description:`Run a Node.js script in the Vite+ env.`},{name:`dlx`,group:`execute`,description:`Run a package binary without installing it.`},{name:`cache`,group:`execute`,description:`Manage the task cache.`},{name:`build`,group:`build`,description:`Build for production.`},{name:`pack`,group:`build`,description:`Build libraries for npm or standalone binaries.`},{name:`preview`,group:`build`,description:`Preview the production build.`},{name:`add`,group:`deps`,description:`Add packages to dependencies.`},{name:`remove`,group:`deps`,aliases:[`rm`,`un`,`uninstall`],description:`Remove packages from dependencies.`},{name:`update`,group:`deps`,aliases:[`up`],description:`Update packages.`},{name:`dedupe`,group:`deps`,description:`Deduplicate dependencies.`},{name:`outdated`,group:`deps`,description:`Check for outdated packages.`},{name:`list`,group:`deps`,aliases:[`ls`],description:`List installed packages.`},{name:`why`,group:`deps`,aliases:[`explain`],description:`Explain why a package is installed.`},{name:`info`,group:`deps`,aliases:[`view`,`show`],description:`View package metadata.`},{name:`link`,group:`deps`,aliases:[`ln`],description:`Link local packages.`},{name:`unlink`,group:`deps`,description:`Unlink local packages.`},{name:`rebuild`,group:`deps`,description:`Rebuild native modules.`},{name:`pm`,group:`deps`,description:`Forward a command to the package manager.`},{name:`toolchain`,group:`maintain`,description:`Show Vite+ tool versions.`},{name:`upgrade`,group:`maintain`,description:"Update `vp` itself."},{name:`implode`,group:`maintain`,description:"Remove `vp` and all related data."}];function t(e){return`vite:${e}`}function n(t){return e.find(e=>e.name===t||e.aliases?.includes(t)===!0)?.name}export{e as VP_COMMANDS,n as resolveVpCommand,t as viteCommandName};
@@ -1,5 +1,7 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
+ import { ResolveFmtCustomGroupsInput, ResolveFmtCustomGroupsOptions, resolveFmtCustomGroups } from "../../core/src/fmt-groups.js";
4
+ import "../../core/src/index.js";
3
5
  import { VP_COMMANDS, VpCommandInfo, VpGroup, resolveVpCommand, viteCommandName } from "./commands.js";
4
6
  import { runGuard, viteCommands } from "./cli/index.js";
5
7
  import { DBX_TASKS, DBX_TIMEOUT_MS, DbxPluginOptions, DbxSource, DbxTask, ResolvedDbx, dbx, dbxTaskCommand, resolveDbx, runDbx } from "./plugin.js";
@@ -7,4 +9,4 @@ import { viteProvider } from "./provider.js";
7
9
  import { ResolveViteInput, ResolveViteOptions, resolveVite } from "./resolve.js";
8
10
  import { DEFAULT_RESOLVE_IMPORT, OXC_FMT_CONFIG_FILE, OXC_LINT_CONFIG_FILE, VITE_CONFIG_SHIM, ViteSpecifier, detectViteSpecifier, renderStaticViteConfig, renderViteConfig, resolveShimImport, viteConfigObject, viteSyncTask } from "./sync.js";
9
11
  import { ResolvedVp, RunVpOptions, VpResult, VpSource, describeVp, hasVp, resolveVp, runVp, vpVersion, which } from "./vp.js";
10
- export { DBX_TASKS, DBX_TIMEOUT_MS, DEFAULT_RESOLVE_IMPORT, DbxPluginOptions, DbxSource, DbxTask, OXC_FMT_CONFIG_FILE, OXC_LINT_CONFIG_FILE, ResolveViteInput, ResolveViteOptions, ResolvedDbx, ResolvedVp, RunVpOptions, VITE_CONFIG_SHIM, VP_COMMANDS, ViteSpecifier, VpCommandInfo, VpGroup, VpResult, VpSource, dbx, dbxTaskCommand, describeVp, detectViteSpecifier, hasVp, renderStaticViteConfig, renderViteConfig, resolveDbx, resolveShimImport, resolveVite, resolveVp, resolveVpCommand, runDbx, runGuard, runVp, viteCommandName, viteCommands, viteConfigObject, viteProvider, viteSyncTask, vpVersion, which };
12
+ export { DBX_TASKS, DBX_TIMEOUT_MS, DEFAULT_RESOLVE_IMPORT, DbxPluginOptions, DbxSource, DbxTask, OXC_FMT_CONFIG_FILE, OXC_LINT_CONFIG_FILE, type ResolveFmtCustomGroupsInput, type ResolveFmtCustomGroupsOptions, ResolveViteInput, ResolveViteOptions, ResolvedDbx, ResolvedVp, RunVpOptions, VITE_CONFIG_SHIM, VP_COMMANDS, ViteSpecifier, VpCommandInfo, VpGroup, VpResult, VpSource, dbx, dbxTaskCommand, describeVp, detectViteSpecifier, hasVp, renderStaticViteConfig, renderViteConfig, resolveDbx, resolveFmtCustomGroups, resolveShimImport, resolveVite, resolveVp, resolveVpCommand, runDbx, runGuard, runVp, viteCommandName, viteCommands, viteConfigObject, viteProvider, viteSyncTask, vpVersion, which };
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{VP_COMMANDS as e,resolveVpCommand as t,viteCommandName as n}from"./commands.js";import{describeVp as r,hasVp as i,resolveVp as a,runVp as o,vpVersion as s,which as c}from"./vp.js";import{runGuard as l,viteCommands as u}from"./cli/index.js";import{DBX_TASKS as d,DBX_TIMEOUT_MS as f,dbx as p,dbxTaskCommand as m,resolveDbx as h,runDbx as g}from"./plugin.js";import{viteProvider as _}from"./provider.js";import{DEFAULT_RESOLVE_IMPORT as v,OXC_FMT_CONFIG_FILE as y,OXC_LINT_CONFIG_FILE as b,VITE_CONFIG_SHIM as x,detectViteSpecifier as S,renderStaticViteConfig as C,renderViteConfig as w,resolveShimImport as T,viteConfigObject as E,viteSyncTask as D}from"./sync.js";import{resolveVite as O}from"./resolve.js";export{d as DBX_TASKS,f as DBX_TIMEOUT_MS,v as DEFAULT_RESOLVE_IMPORT,y as OXC_FMT_CONFIG_FILE,b as OXC_LINT_CONFIG_FILE,x as VITE_CONFIG_SHIM,e as VP_COMMANDS,p as dbx,m as dbxTaskCommand,r as describeVp,S as detectViteSpecifier,i as hasVp,C as renderStaticViteConfig,w as renderViteConfig,h as resolveDbx,T as resolveShimImport,O as resolveVite,a as resolveVp,t as resolveVpCommand,g as runDbx,l as runGuard,o as runVp,n as viteCommandName,u as viteCommands,E as viteConfigObject,_ as viteProvider,D as viteSyncTask,s as vpVersion,c as which};
1
+ import"node:path";import"node:url";import.meta.url;import{resolveFmtCustomGroups as e}from"../../core/src/fmt-groups.js";import"../../core/src/index.js";import{VP_COMMANDS as t,resolveVpCommand as n,viteCommandName as r}from"./commands.js";import{describeVp as i,hasVp as a,resolveVp as o,runVp as s,vpVersion as c,which as l}from"./vp.js";import{runGuard as u,viteCommands as d}from"./cli/index.js";import{DBX_TASKS as f,DBX_TIMEOUT_MS as p,dbx as m,dbxTaskCommand as h,resolveDbx as g,runDbx as _}from"./plugin.js";import{viteProvider as v}from"./provider.js";import{DEFAULT_RESOLVE_IMPORT as y,OXC_FMT_CONFIG_FILE as b,OXC_LINT_CONFIG_FILE as x,VITE_CONFIG_SHIM as S,detectViteSpecifier as C,renderStaticViteConfig as w,renderViteConfig as T,resolveShimImport as E,viteConfigObject as D,viteSyncTask as O}from"./sync.js";import{resolveVite as k}from"./resolve.js";export{f as DBX_TASKS,p as DBX_TIMEOUT_MS,y as DEFAULT_RESOLVE_IMPORT,b as OXC_FMT_CONFIG_FILE,x as OXC_LINT_CONFIG_FILE,S as VITE_CONFIG_SHIM,t as VP_COMMANDS,m as dbx,h as dbxTaskCommand,i as describeVp,C as detectViteSpecifier,a as hasVp,w as renderStaticViteConfig,T as renderViteConfig,g as resolveDbx,e as resolveFmtCustomGroups,E as resolveShimImport,k as resolveVite,o as resolveVp,n as resolveVpCommand,_ as runDbx,u as runGuard,s as runVp,r as viteCommandName,d as viteCommands,D as viteConfigObject,v as viteProvider,O as viteSyncTask,c as vpVersion,l as which};
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{deepMerge as e}from"../../shared/src/object-utils.js";import{applyReplacementsDeep as t}from"../../shared/src/template.js";import{resolveTokens as n,sectionConfig as r}from"../../shared/src/toolchain.js";import"../../shared/src/index.js";import{loadToolchainConfig as i}from"../../core/src/loader.js";import"../../core/src/index.js";import{viteConfigObject as a}from"./sync.js";async function o(o={}){let{cwd:s,vite:c,...l}=o,u;if(Object.keys(l).length>0)u=l.toolchain??{};else{let e=await i(s??process.cwd());if(!e.path)throw Error(`resolveVite: no dbx.config.* found — create one, or pass a config to resolveVite().`);u=e.config}let d=r(u.vite)??{},f=c===void 0?d:e(d,r(c)??{});return t(a(f),n(u))}export{o as resolveVite};
1
+ import"node:path";import"node:url";import.meta.url;import{deepMerge as e,isPlainObject as t}from"../../shared/src/object-utils.js";import{applyReplacementsDeep as n}from"../../shared/src/template.js";import{resolveTokens as r,sectionConfig as i}from"../../shared/src/toolchain.js";import{applyFmtCustomGroups as a}from"../../shared/src/vite-defaults.js";import"../../shared/src/index.js";import{loadToolchainConfig as o}from"../../core/src/loader.js";import{resolveFmtCustomGroups as s}from"../../core/src/fmt-groups.js";import"../../core/src/index.js";import{viteConfigObject as c}from"./sync.js";async function l(l={}){let{cwd:u,vite:d,...f}=l,p;if(Object.keys(f).length>0)p=f.toolchain??{};else{let e=await o(u??process.cwd());if(!e.path)throw Error(`resolveVite: no dbx.config.* found — create one, or pass a config to resolveVite().`);p=e.config}let m=i(p.vite)??{},h=d===void 0?m:e(m,i(d)??{}),g=n(c(h),r(p));if(t(g.fmt)){let e=await s({cwd:u??process.cwd()});g.fmt=a(g.fmt,e)}return g}export{l as resolveVite};
@@ -1,5 +1,5 @@
1
- import{default as e}from"node:path";import"node:url";import.meta.url;import{deepMerge as t,isPlainObject as n}from"../../shared/src/object-utils.js";import{readJsonAt as r}from"../../shared/src/fs-utils.js";import{applyReplacementsDeep as i}from"../../shared/src/template.js";import{resolveOxcFmtConfig as a,resolveOxcLintConfig as o,sectionConfig as s,sectionEnabled as c}from"../../shared/src/toolchain.js";import{DEFAULT_FMT_RULES as l,DEFAULT_LINT_RULES as u}from"../../shared/src/vite-defaults.js";import"../../shared/src/index.js";import d from"node:fs";function f(e={}){let{config:r,shim:i,shimImport:a,enabled:o,fmt:s,lint:c,...d}=e,f={...d};return s===!0?f.fmt=l:n(s)?f.fmt=t(l,s):s!==void 0&&(f.fmt=s),c===!0?f.lint=u:n(c)?f.lint=t(u,c):c!==void 0&&(f.lint=c),f}const p=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`];function m(e,t){return e?p.some(n=>e[n]?.[t]!==void 0):!1}function h(t){let n=e.resolve(t),i=!1;for(;;){let t=r(n,`package.json`);if(m(t,`vite-plus`))return`vite-plus`;if(m(t,`vite`)&&(i=!0),d.existsSync(e.join(n,`.git`)))break;let a=e.dirname(n);if(a===n)break;n=a}return i?`vite`:`vite-plus`}function g(e){return e===`vite`?`UserConfig`:`ViteUserConfig`}function _(t){let n=e.resolve(t);for(;;){if(d.existsSync(e.join(n,`.git`)))return n;let r=e.dirname(n);if(r===n)return e.resolve(t);n=r}}function v(t,n){if(!t)return w;if(!t.startsWith(`.`)&&!e.isAbsolute(t))return t;let r=e.resolve(_(n),t),i=e.relative(e.resolve(n),r).replace(/\\/g,`/`);return i.startsWith(`.`)||(i=`./${i}`),i}function y(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let a=e[i];a===`{`||a===`[`||a===`(`?n++:a===`}`||a===`]`||a===`)`?n--:a===`,`&&n===0&&(t.push(e.slice(r,i).trim()),r=i+1)}let i=e.slice(r).trim();return i&&t.push(i),t.filter(Boolean)}function b(e){let t={named:[]};for(let n of y(e))if(n.startsWith(`{`)&&n.endsWith(`}`))t.named=y(n.slice(1,-1));else if(n.startsWith(`*`)){let e=n.match(/^\*\s*as\s+([\w$]+)$/);e?.[1]&&(t.namespace=e[1])}else/^[\w$]+$/.test(n)&&(t.default=n);return t}function x(e){let t=[];return e.default&&t.push(e.default),e.namespace&&t.push(`* as ${e.namespace}`),e.named.length>0&&t.push(`{ ${e.named.join(`, `)} }`),t.join(`, `)}function S(e){let t=e.trim();return t===``||t.startsWith(`//`)||t.startsWith(`/*`)||t.startsWith(`*`)||t.startsWith(`*/`)}function C(e){let t=e.replace(/^\uFEFF/,``).split(/\r?\n/),n=[],r=0;for(;r<t.length;){let e=t[r];if(S(e)){n.push({kind:`text`,text:e}),r++;continue}if(!e.trimStart().startsWith(`import `))break;let i=e;for(;!/\bfrom\s*['"][^'"]+['"]\s*;?\s*$/.test(i.trim())&&!/^import\s*['"][^'"]+['"]\s*;?\s*$/.test(i.trim())&&r+1<t.length;)r++,i+=`\n${t[r]}`;let a=i.match(/\bfrom\s*['"]([^'"]+)['"]/)?.[1]??i.match(/^import\s*['"]([^'"]+)['"]/)?.[1];if(!a)break;let o=i.match(/^import\s+([\s\S]*?)\s+from\s*['"]/)?.[1]??``;n.push({kind:`import`,parsed:{raw:i,from:a,clause:o}}),r++}return n}const w=`@deltabox/toolchain/vite`;function T(e,t,n,r=w){let i=[],a=!1;for(let o of e){if(o.kind===`text`){i.push(o.text);continue}let{from:e,clause:s}=o.parsed;if(e===`@deltabox/toolchain/vite`||e===r)continue;let c=b(s),l=c.named.filter(e=>e.replace(/^type\s+/,``)!==`resolveVite`);if(e===t&&!a){let e=l.filter(e=>e.replace(/^type\s+/,``)!==`defineConfig`&&e.replace(/^type\s+/,``)!==n);e.unshift(`defineConfig`),e.push(`type ${n}`),i.push(`import ${x({...c,named:e})} from '${t}';`),a=!0}else if(l.length!==c.named.length){let t={...c,named:l};(t.default||t.namespace||t.named.length>0)&&i.push(`import ${x(t)} from '${e}';`)}else i.push(o.parsed.raw)}if(!a){let e=0;for(;e<i.length&&S(i[e]);)e++;i.splice(e,0,`import { defineConfig, type ${n} } from '${t}';`)}return i}function E(e=`vite-plus`,t,n=w){let r=g(e),i=t?T(C(t),e,r,n):[];if(i.length>0){for(;i.length>0&&i[i.length-1].trim()===``;)i.pop();return[...i,`import { resolveVite } from '${n}';`,``,`export default defineConfig(resolveVite<${r}>({ cwd: import.meta.dirname }));`,``].join(`
1
+ import{default as e}from"node:path";import"node:url";import.meta.url;import{deepMerge as t,isPlainObject as n}from"../../shared/src/object-utils.js";import{readJsonAt as r}from"../../shared/src/fs-utils.js";import{applyReplacementsDeep as i}from"../../shared/src/template.js";import{resolveOxcFmtConfig as a,resolveOxcLintConfig as o,sectionConfig as s,sectionEnabled as c}from"../../shared/src/toolchain.js";import{DEFAULT_FMT_RULES as l,DEFAULT_LINT_RULES as u,applyFmtCustomGroups as d}from"../../shared/src/vite-defaults.js";import"../../shared/src/index.js";import{resolveFmtCustomGroups as f}from"../../core/src/fmt-groups.js";import"../../core/src/index.js";import p from"node:fs";function m(e={}){let{config:r,shim:i,shimImport:a,enabled:o,fmt:s,lint:c,...d}=e,f={...d};return s===!0?f.fmt=l:n(s)?f.fmt=t(l,s):s!==void 0&&(f.fmt=s),c===!0?f.lint=u:n(c)?f.lint=t(u,c):c!==void 0&&(f.lint=c),f}const h=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`];function g(e,t){return e?h.some(n=>e[n]?.[t]!==void 0):!1}function _(t){let n=e.resolve(t),i=!1;for(;;){let t=r(n,`package.json`);if(g(t,`vite-plus`))return`vite-plus`;if(g(t,`vite`)&&(i=!0),p.existsSync(e.join(n,`.git`)))break;let a=e.dirname(n);if(a===n)break;n=a}return i?`vite`:`vite-plus`}function v(e){return e===`vite`?`UserConfig`:`ViteUserConfig`}function y(t){let n=e.resolve(t);for(;;){if(p.existsSync(e.join(n,`.git`)))return n;let r=e.dirname(n);if(r===n)return e.resolve(t);n=r}}function b(t,n){if(!t)return E;if(!t.startsWith(`.`)&&!e.isAbsolute(t))return t;let r=e.resolve(y(n),t),i=e.relative(e.resolve(n),r).replace(/\\/g,`/`);return i.startsWith(`.`)||(i=`./${i}`),i}function x(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++){let a=e[i];a===`{`||a===`[`||a===`(`?n++:a===`}`||a===`]`||a===`)`?n--:a===`,`&&n===0&&(t.push(e.slice(r,i).trim()),r=i+1)}let i=e.slice(r).trim();return i&&t.push(i),t.filter(Boolean)}function S(e){let t={named:[]};for(let n of x(e))if(n.startsWith(`{`)&&n.endsWith(`}`))t.named=x(n.slice(1,-1));else if(n.startsWith(`*`)){let e=n.match(/^\*\s*as\s+([\w$]+)$/);e?.[1]&&(t.namespace=e[1])}else/^[\w$]+$/.test(n)&&(t.default=n);return t}function C(e){let t=[];return e.default&&t.push(e.default),e.namespace&&t.push(`* as ${e.namespace}`),e.named.length>0&&t.push(`{ ${e.named.join(`, `)} }`),t.join(`, `)}function w(e){let t=e.trim();return t===``||t.startsWith(`//`)||t.startsWith(`/*`)||t.startsWith(`*`)||t.startsWith(`*/`)}function T(e){let t=e.replace(/^\uFEFF/,``).split(/\r?\n/),n=[],r=0;for(;r<t.length;){let e=t[r];if(w(e)){n.push({kind:`text`,text:e}),r++;continue}if(!e.trimStart().startsWith(`import `))break;let i=e;for(;!/\bfrom\s*['"][^'"]+['"]\s*;?\s*$/.test(i.trim())&&!/^import\s*['"][^'"]+['"]\s*;?\s*$/.test(i.trim())&&r+1<t.length;)r++,i+=`\n${t[r]}`;let a=i.match(/\bfrom\s*['"]([^'"]+)['"]/)?.[1]??i.match(/^import\s*['"]([^'"]+)['"]/)?.[1];if(!a)break;let o=i.match(/^import\s+([\s\S]*?)\s+from\s*['"]/)?.[1]??``;n.push({kind:`import`,parsed:{raw:i,from:a,clause:o}}),r++}return n}const E=`@deltabox/toolchain/vite`;function D(e,t,n,r=E){let i=[],a=!1;for(let o of e){if(o.kind===`text`){i.push(o.text);continue}let{from:e,clause:s}=o.parsed;if(e===`@deltabox/toolchain/vite`||e===r)continue;let c=S(s),l=c.named.filter(e=>e.replace(/^type\s+/,``)!==`resolveVite`);if(e===t&&!a){let e=l.filter(e=>e.replace(/^type\s+/,``)!==`defineConfig`&&e.replace(/^type\s+/,``)!==n);e.unshift(`defineConfig`),e.push(`type ${n}`),i.push(`import ${C({...c,named:e})} from '${t}';`),a=!0}else if(l.length!==c.named.length){let t={...c,named:l};(t.default||t.namespace||t.named.length>0)&&i.push(`import ${C(t)} from '${e}';`)}else i.push(o.parsed.raw)}if(!a){let e=0;for(;e<i.length&&w(i[e]);)e++;i.splice(e,0,`import { defineConfig, type ${n} } from '${t}';`)}return i}function O(e=`vite-plus`,t,n=E){let r=v(e),i=t?D(T(t),e,r,n):[];if(i.length>0){for(;i.length>0&&i[i.length-1].trim()===``;)i.pop();return[...i,`import { resolveVite } from '${n}';`,``,`export default defineConfig(resolveVite<${r}>({ cwd: import.meta.dirname }));`,``].join(`
2
2
  `)}return["// Generated by @deltabox/toolchain - edit the vite section in dbx.config and run `dbx sync`.",`import { defineConfig, type ${r} } from '${e}';`,`import { resolveVite } from '${n}';`,``,`export default defineConfig(resolveVite<${r}>({ cwd: import.meta.dirname }));`,``].join(`
3
- `)}const D=E(`vite-plus`);function O(e,t){if(e!=null){if(typeof e==`function`)throw Error(`vite.shim "static" cannot serialize a function (${t}). Use \`vite.shim: "runtime"\` for dynamic configs.`);if(typeof e==`symbol`||typeof e==`bigint`||e instanceof RegExp)throw Error(`vite.shim "static" cannot serialize ${typeof e} (${t}). Use \`vite.shim: "runtime"\` for dynamic configs.`);if(Array.isArray(e))e.forEach((e,n)=>O(e,`${t}[${n}]`));else if(typeof e==`object`){if(!n(e))throw Error(`vite.shim "static" cannot serialize a non-plain object (${t}). Use \`vite.shim: "runtime"\` for dynamic configs.`);for(let[n,r]of Object.entries(e))O(r,t?`${t}.${n}`:n)}}}function k(e,t,n,r=w){let i=g(e);O(t,`vite`);let a=`export default defineConfig<${i}>(${JSON.stringify(t,null,4)});`,o=n?T(C(n),e,i,r):[];if(o.length>0){for(;o.length>0&&o[o.length-1].trim()===``;)o.pop();return[...o,``,a,``].join(`
3
+ `)}const k=O(`vite-plus`);function A(e,t){if(e!=null){if(typeof e==`function`)throw Error(`vite.shim "static" cannot serialize a function (${t}). Use \`vite.shim: "runtime"\` for dynamic configs.`);if(typeof e==`symbol`||typeof e==`bigint`||e instanceof RegExp)throw Error(`vite.shim "static" cannot serialize ${typeof e} (${t}). Use \`vite.shim: "runtime"\` for dynamic configs.`);if(Array.isArray(e))e.forEach((e,n)=>A(e,`${t}[${n}]`));else if(typeof e==`object`){if(!n(e))throw Error(`vite.shim "static" cannot serialize a non-plain object (${t}). Use \`vite.shim: "runtime"\` for dynamic configs.`);for(let[n,r]of Object.entries(e))A(r,t?`${t}.${n}`:n)}}}function j(e,t,n,r=E){let i=v(e);A(t,`vite`);let a=`export default defineConfig<${i}>(${JSON.stringify(t,null,4)});`,o=n?D(T(n),e,i,r):[];if(o.length>0){for(;o.length>0&&o[o.length-1].trim()===``;)o.pop();return[...o,``,a,``].join(`
4
4
  `)}return["// Generated by @deltabox/toolchain - edit the vite section in dbx.config and run `dbx sync`.",`import { defineConfig, type ${i} } from '${e}';`,``,a,``].join(`
5
- `)}const A=`.oxfmtrc.json`,j=`.oxlintrc.json`;function M(e,t){let r=n(t)?t:{};return`${JSON.stringify({$schema:e,...r},null,4)}\n`}function N(){return{name:`vite`,projectTypes:[`monorepo-root`,`monorepo-workspace`,`project`],enabled:e=>c(e.vite)||c(e.fmt)||c(e.lint),run:t=>{let n=c(t.config.vite),r=s(t.config.vite)??{},l=t.ownConfig??t.config,u=c(l.vite)?s(l.vite)??{}:{},p=c(l.fmt)?s(l.fmt)?.oxc:void 0,m=c(l.lint)?s(l.lint)?.oxc:void 0,g={...r},_=a(t.config),y=o(t.config);_!==void 0&&(g.fmt=_),y!==void 0&&(g.lint=y);let b=f(g),x=[],S=r.config,C=S===!1?void 0:typeof S==`string`&&S.trim()?S:`vite.config.ts`;if(n&&C){let n;try{let r=e.isAbsolute(C)?C:e.resolve(t.cwd,C);n=d.readFileSync(r,`utf-8`)}catch{n=void 0}let a=h(t.cwd),o=v(r.shimImport,t.cwd);x.push({path:C,content:r.shim===`static`?k(a,i(b,t.tokens),n,o):E(a,n,o)})}let w=(p!==void 0||u.fmt!==void 0)&&b.fmt!==void 0&&b.fmt!==!1,T=(m!==void 0||u.lint!==void 0)&&b.lint!==void 0&&b.lint!==!1;return w&&x.push({path:A,content:M(`./node_modules/oxfmt/configuration_schema.json`,b.fmt)}),T&&x.push({path:j,content:M(`./node_modules/oxlint/configuration_schema.json`,b.lint)}),x}}}export{w as DEFAULT_RESOLVE_IMPORT,A as OXC_FMT_CONFIG_FILE,j as OXC_LINT_CONFIG_FILE,D as VITE_CONFIG_SHIM,h as detectViteSpecifier,k as renderStaticViteConfig,E as renderViteConfig,v as resolveShimImport,f as viteConfigObject,N as viteSyncTask};
5
+ `)}const M=`.oxfmtrc.json`,N=`.oxlintrc.json`;function P(e,t){let r=n(t)?t:{};return`${JSON.stringify({$schema:e,...r},null,4)}\n`}function F(){return{name:`vite`,projectTypes:[`monorepo-root`,`monorepo-workspace`,`project`],enabled:e=>c(e.vite)||c(e.fmt)||c(e.lint),run:async t=>{let r=c(t.config.vite),l=s(t.config.vite)??{},u=t.ownConfig??t.config,h=c(u.vite)?s(u.vite)??{}:{},g=c(u.fmt)?s(u.fmt)?.oxc:void 0,v=c(u.lint)?s(u.lint)?.oxc:void 0,y={...l},x=a(t.config),S=o(t.config);x!==void 0&&(y.fmt=x),S!==void 0&&(y.lint=S);let C=m(y);if(n(C.fmt)){let e=await f({cwd:t.cwd});C.fmt=d(C.fmt,e)}let w=[],T=l.config,E=T===!1?void 0:typeof T==`string`&&T.trim()?T:`vite.config.ts`;if(r&&E){let n;try{let r=e.isAbsolute(E)?E:e.resolve(t.cwd,E);n=p.readFileSync(r,`utf-8`)}catch{n=void 0}let r=_(t.cwd),a=b(l.shimImport,t.cwd);w.push({path:E,content:l.shim===`static`?j(r,i(C,t.tokens),n,a):O(r,n,a)})}let D=(g!==void 0||h.fmt!==void 0)&&C.fmt!==void 0&&C.fmt!==!1,k=(v!==void 0||h.lint!==void 0)&&C.lint!==void 0&&C.lint!==!1;return D&&w.push({path:M,content:P(`./node_modules/oxfmt/configuration_schema.json`,C.fmt)}),k&&w.push({path:N,content:P(`./node_modules/oxlint/configuration_schema.json`,C.lint)}),w}}}export{E as DEFAULT_RESOLVE_IMPORT,M as OXC_FMT_CONFIG_FILE,N as OXC_LINT_CONFIG_FILE,k as VITE_CONFIG_SHIM,_ as detectViteSpecifier,j as renderStaticViteConfig,O as renderViteConfig,b as resolveShimImport,m as viteConfigObject,F as viteSyncTask};
package/dist/project.d.ts CHANGED
@@ -2,9 +2,9 @@ import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
3
  import { CATALOG_MARKER, CATALOG_PACKAGE_MANAGERS, Catalog, catalogFileFor, catalogsSyncTask, hasCatalog, renderPnpmWorkspace, renderYarnrc, supportsCatalogs } from "./packages/project/src/catalogs.js";
4
4
  import { projectCommands } from "./packages/project/src/cli/index.js";
5
+ import { CONFIG_EXTENSIONS, ConfigExtension, ConfigLanguage, DEFAULT_CONFIG_EXTENSION, MonorepoRootContext, ProjectContext, RootOxcFiles, SCAFFOLD_CATALOG, WorkspaceContext, WriteGeneratedFilesOptions, configFileName, configLanguage, configUsesEsm, createMonorepoRootFiles, createRootProjectFiles, createWorkspaceFiles, findRootOxcFiles, isConfigExtension, renderApplicationEntry, renderApplicationHtml, renderGitignore, renderSourceEntry, renderSourceTest, renderToolchainConfig, renderWorkspaceTsconfig, resolveConfigExtension, scaffoldCatalog, upsertWorkspaceTsconfig, workspaceDirForTsconfig, writeGeneratedFiles } from "./packages/project/src/typescript.js";
5
6
  import { GENERATED_CONFIG_FILENAME, GenerateProjectConfigsOptions, GenerateProjectConfigsResult, GeneratedProjectConfig, generateProjectConfigs } from "./packages/project/src/config.js";
6
7
  import { projectSyncTask } from "./packages/project/src/sync.js";
7
- import { MonorepoRootContext, ProjectContext, RootOxcFiles, SCAFFOLD_CATALOG, WorkspaceContext, WriteGeneratedFilesOptions, createMonorepoRootFiles, createRootProjectFiles, createWorkspaceFiles, findRootOxcFiles, renderApplicationEntry, renderApplicationHtml, renderGitignore, renderSourceEntry, renderSourceTest, renderToolchainConfig, renderWorkspaceTsconfig, upsertWorkspaceTsconfig, workspaceDirForTsconfig, writeGeneratedFiles } from "./packages/project/src/typescript.js";
8
8
  import "./packages/project/src/index.js";
9
9
  import { DEFAULT_PACKAGE_MANAGER_VERSIONS } from "./packages/shared/src/toolchain.js";
10
- export { CATALOG_MARKER, CATALOG_PACKAGE_MANAGERS, Catalog, DEFAULT_PACKAGE_MANAGER_VERSIONS, GENERATED_CONFIG_FILENAME, GenerateProjectConfigsOptions, GenerateProjectConfigsResult, GeneratedProjectConfig, MonorepoRootContext, ProjectContext, RootOxcFiles, SCAFFOLD_CATALOG, WorkspaceContext, WriteGeneratedFilesOptions, catalogFileFor, catalogsSyncTask, createMonorepoRootFiles, createRootProjectFiles, createWorkspaceFiles, findRootOxcFiles, generateProjectConfigs, hasCatalog, projectCommands, projectSyncTask, renderApplicationEntry, renderApplicationHtml, renderGitignore, renderPnpmWorkspace, renderSourceEntry, renderSourceTest, renderToolchainConfig, renderWorkspaceTsconfig, renderYarnrc, supportsCatalogs, upsertWorkspaceTsconfig, workspaceDirForTsconfig, writeGeneratedFiles };
10
+ export { CATALOG_MARKER, CATALOG_PACKAGE_MANAGERS, CONFIG_EXTENSIONS, Catalog, ConfigExtension, ConfigLanguage, DEFAULT_CONFIG_EXTENSION, DEFAULT_PACKAGE_MANAGER_VERSIONS, GENERATED_CONFIG_FILENAME, GenerateProjectConfigsOptions, GenerateProjectConfigsResult, GeneratedProjectConfig, MonorepoRootContext, ProjectContext, RootOxcFiles, SCAFFOLD_CATALOG, WorkspaceContext, WriteGeneratedFilesOptions, catalogFileFor, catalogsSyncTask, configFileName, configLanguage, configUsesEsm, createMonorepoRootFiles, createRootProjectFiles, createWorkspaceFiles, findRootOxcFiles, generateProjectConfigs, hasCatalog, isConfigExtension, projectCommands, projectSyncTask, renderApplicationEntry, renderApplicationHtml, renderGitignore, renderPnpmWorkspace, renderSourceEntry, renderSourceTest, renderToolchainConfig, renderWorkspaceTsconfig, renderYarnrc, resolveConfigExtension, scaffoldCatalog, supportsCatalogs, upsertWorkspaceTsconfig, workspaceDirForTsconfig, writeGeneratedFiles };
package/dist/project.js CHANGED
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{DEFAULT_PACKAGE_MANAGER_VERSIONS as e}from"./packages/shared/src/toolchain.js";import{CATALOG_MARKER as t,CATALOG_PACKAGE_MANAGERS as n,catalogFileFor as r,catalogsSyncTask as i,hasCatalog as a,renderPnpmWorkspace as o,renderYarnrc as s,supportsCatalogs as c}from"./packages/project/src/catalogs.js";import{SCAFFOLD_CATALOG as l,createMonorepoRootFiles as u,createRootProjectFiles as d,createWorkspaceFiles as f,findRootOxcFiles as p,renderApplicationEntry as m,renderApplicationHtml as h,renderGitignore as g,renderSourceEntry as _,renderSourceTest as v,renderToolchainConfig as y,renderWorkspaceTsconfig as b,upsertWorkspaceTsconfig as x,workspaceDirForTsconfig as S,writeGeneratedFiles as C}from"./packages/project/src/typescript.js";import{GENERATED_CONFIG_FILENAME as w,generateProjectConfigs as T}from"./packages/project/src/config.js";import{projectCommands as E}from"./packages/project/src/cli/index.js";import{projectSyncTask as D}from"./packages/project/src/sync.js";import"./packages/project/src/index.js";export{t as CATALOG_MARKER,n as CATALOG_PACKAGE_MANAGERS,e as DEFAULT_PACKAGE_MANAGER_VERSIONS,w as GENERATED_CONFIG_FILENAME,l as SCAFFOLD_CATALOG,r as catalogFileFor,i as catalogsSyncTask,u as createMonorepoRootFiles,d as createRootProjectFiles,f as createWorkspaceFiles,p as findRootOxcFiles,T as generateProjectConfigs,a as hasCatalog,E as projectCommands,D as projectSyncTask,m as renderApplicationEntry,h as renderApplicationHtml,g as renderGitignore,o as renderPnpmWorkspace,_ as renderSourceEntry,v as renderSourceTest,y as renderToolchainConfig,b as renderWorkspaceTsconfig,s as renderYarnrc,c as supportsCatalogs,x as upsertWorkspaceTsconfig,S as workspaceDirForTsconfig,C as writeGeneratedFiles};
1
+ import"node:path";import"node:url";import.meta.url;import{DEFAULT_PACKAGE_MANAGER_VERSIONS as e}from"./packages/shared/src/toolchain.js";import{CATALOG_MARKER as t,CATALOG_PACKAGE_MANAGERS as n,catalogFileFor as r,catalogsSyncTask as i,hasCatalog as a,renderPnpmWorkspace as o,renderYarnrc as s,supportsCatalogs as c}from"./packages/project/src/catalogs.js";import{CONFIG_EXTENSIONS as l,DEFAULT_CONFIG_EXTENSION as u,SCAFFOLD_CATALOG as d,configFileName as f,configLanguage as p,configUsesEsm as m,createMonorepoRootFiles as h,createRootProjectFiles as g,createWorkspaceFiles as _,findRootOxcFiles as v,isConfigExtension as y,renderApplicationEntry as b,renderApplicationHtml as x,renderGitignore as S,renderSourceEntry as C,renderSourceTest as w,renderToolchainConfig as T,renderWorkspaceTsconfig as E,resolveConfigExtension as D,scaffoldCatalog as O,upsertWorkspaceTsconfig as k,workspaceDirForTsconfig as A,writeGeneratedFiles as j}from"./packages/project/src/typescript.js";import{GENERATED_CONFIG_FILENAME as M,generateProjectConfigs as N}from"./packages/project/src/config.js";import{projectCommands as P}from"./packages/project/src/cli/index.js";import{projectSyncTask as F}from"./packages/project/src/sync.js";import"./packages/project/src/index.js";export{t as CATALOG_MARKER,n as CATALOG_PACKAGE_MANAGERS,l as CONFIG_EXTENSIONS,u as DEFAULT_CONFIG_EXTENSION,e as DEFAULT_PACKAGE_MANAGER_VERSIONS,M as GENERATED_CONFIG_FILENAME,d as SCAFFOLD_CATALOG,r as catalogFileFor,i as catalogsSyncTask,f as configFileName,p as configLanguage,m as configUsesEsm,h as createMonorepoRootFiles,g as createRootProjectFiles,_ as createWorkspaceFiles,v as findRootOxcFiles,N as generateProjectConfigs,a as hasCatalog,y as isConfigExtension,P as projectCommands,F as projectSyncTask,b as renderApplicationEntry,x as renderApplicationHtml,S as renderGitignore,o as renderPnpmWorkspace,C as renderSourceEntry,w as renderSourceTest,T as renderToolchainConfig,E as renderWorkspaceTsconfig,s as renderYarnrc,D as resolveConfigExtension,O as scaffoldCatalog,c as supportsCatalogs,k as upsertWorkspaceTsconfig,A as workspaceDirForTsconfig,j as writeGeneratedFiles};
package/dist/shared.d.ts CHANGED
@@ -6,16 +6,18 @@ import { Colors, LOG_LEVELS, LogChannel, LogLevel, LogSuppression, Logger, Logge
6
6
  import { ChangelogAuthorInfo, ChangelogBumpRuleCallbackContext, ChangelogBumpRuleContext, ChangelogCommitFormatContext, ChangelogCommitFormatOptions, ChangelogCommitRecord, ChangelogIssueInfo, ChangelogProvider, ChangelogProviderContext, ChangelogProviderSetting } from "./packages/shared/src/changelog-callbacks.js";
7
7
  import { ChangelogGroupConfig, ChangelogGroupContext, ChangelogGroupEntry, ChangelogGroupHidden, ChangelogGroupItem, ChangelogGroupOrder, ChangelogGroupTitle, ChangelogGroupsContext, ChangelogGroupsSetting } from "./packages/shared/src/changelog-groups.js";
8
8
  import { insertMissingJsonc, mergeJsonAt, readJsonAt, readJsonFile, readJsoncAt, readJsoncFile, toJson, writeJsonFile } from "./packages/shared/src/fs-utils.js";
9
- import { DEFAULT_IGNORE_PATTERNS, IgnoreOptions, collectGitignorePatterns, isIgnoredPath, resolveIgnorePatterns } from "./packages/shared/src/ignore.js";
9
+ import { DEFAULT_FMT_IGNORE_PATTERNS, DEFAULT_IGNORE_PATTERNS, DEFAULT_LINT_IGNORE_PATTERNS, IgnoreOptions, collectGitignorePatterns, isIgnoredPath, resolveIgnorePatterns } from "./packages/shared/src/ignore.js";
10
10
  import { ERROR_MAP, ErrorId, MessageId, WARNING_MAP, WarningId, errorMessage, formatMessage, formatMessageId, warningMessage } from "./packages/shared/src/messages.js";
11
11
  import { Sortable, applyOverrides, deepMerge, isPlainObject, isUnsafeKey, mapValues, resolveSort, sort } from "./packages/shared/src/object-utils.js";
12
+ import { ToolchainTsconfigAliasRewrite, ToolchainTsconfigAliasRewriteKey, ToolchainTsconfigAliasRewriteRule } from "./packages/shared/src/config-schema/alias-rewrite.js";
12
13
  import { AzurePipelines } from "./packages/shared/src/config-schema/generated/azure-pipelines.js";
13
14
  import { BiomeConfig } from "./packages/shared/src/config-schema/generated/biome-config.js";
14
15
  import { GitHubWorkflow } from "./packages/shared/src/config-schema/generated/github-workflow.js";
15
16
  import { GitLabCi } from "./packages/shared/src/config-schema/generated/gitlab-ci.js";
16
17
  import { OxfmtConfig } from "./packages/shared/src/config-schema/generated/oxfmt-config.js";
17
18
  import { OxlintConfig } from "./packages/shared/src/config-schema/generated/oxlint-config.js";
18
- import { AzureWorkflowSetting, ChangelogBranchesConfig, ChangelogBumpRule, ChangelogBumpRuleMatch, ChangelogCommitFormatConfig, ChangelogCommitlintConfig, ChangelogConfig, ChangelogProviderConfig, ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowSetting, CiChangelogConfig, ConfigJsonValue, CustomWorkflowSettings, DbxConfigSections, GitHubWorkflowSetting, GitLabWorkflowSetting, ProjectType, ToolchainBiomeConfig, ToolchainCatalogsConfig, ToolchainCiConfig, ToolchainConfigSections, ToolchainFmtConfig, ToolchainLintConfig, ToolchainLoggerConfig, ToolchainProjectConfig, ToolchainProvidersConfig, ToolchainRegistryConfig, ToolchainRegistryPolicy, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainTsconfigOverrides, ToolchainViteConfig, ToolchainVscodeSettings, ToolchainWatchConfig, WorkflowJob, WorkflowOptions, WorkflowSetting, WorkflowStep, WorkflowStepsConfig } from "./packages/shared/src/config-types.js";
19
+ import { DprintConfig, EslintConfig, EslintLanguageOptions, EslintLinterOptions, PrettierConfig } from "./packages/shared/src/config-schema/vendor-types.js";
20
+ import { AzureWorkflowSetting, ChangelogBranchesConfig, ChangelogBumpRule, ChangelogBumpRuleMatch, ChangelogCommitFormatConfig, ChangelogCommitlintConfig, ChangelogConfig, ChangelogProviderConfig, ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowSetting, CiChangelogConfig, ConfigJsonValue, CustomWorkflowSettings, DbxConfigSections, GitHubWorkflowSetting, GitLabWorkflowSetting, ProjectType, ToolchainBiomeConfig, ToolchainCatalogsConfig, ToolchainCiConfig, ToolchainConfigSections, ToolchainFmtConfig, ToolchainLintConfig, ToolchainLoggerConfig, ToolchainProjectConfig, ToolchainProvidersConfig, ToolchainRegistryConfig, ToolchainRegistryPolicy, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigAliasAutoSetting, ToolchainTsconfigAutoSetting, ToolchainTsconfigConfig, ToolchainTsconfigOverrides, ToolchainViteConfig, ToolchainVscodeSettings, ToolchainWatchConfig, WorkflowExtra, WorkflowJob, WorkflowOptions, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, WorkflowTokens, WorkflowTriggers } from "./packages/shared/src/config-types.js";
19
21
  import { ReplacementOptions, ReplacementValue, Replacements, Replacer, applyReplacements, applyReplacementsDeep, createReplacer, defineReplacements, extractTokens, hasUnresolvedTokens, tokenPattern } from "./packages/shared/src/template.js";
20
22
  import { biomeConfigOptionsSchema, biomeConfigSchema } from "./packages/shared/src/config-schema/biome.js";
21
23
  import { catalogsConfigSchema } from "./packages/shared/src/config-schema/catalogs.js";
@@ -32,16 +34,17 @@ import { templateKindSchema, templateSourceSchema, templateSourceTypeSchema, tem
32
34
  import { tsconfigConfigSchema } from "./packages/shared/src/config-schema/tsconfig.js";
33
35
  import { viteConfigSchema } from "./packages/shared/src/config-schema/vite.js";
34
36
  import { watchConfigSchema } from "./packages/shared/src/config-schema/watch.js";
35
- import { VendorWorkflowConfig, azureWorkflowSettingSchema, customWorkflowSettingsSchema, githubWorkflowSettingSchema, gitlabWorkflowSettingSchema, isVendorWorkflowConfig, workflowConfigSchema, workflowJobSchema, workflowOptionsSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema } from "./packages/shared/src/config-schema/workflow.js";
37
+ import { VendorWorkflowConfig, azureWorkflowSettingSchema, customWorkflowSettingsSchema, githubWorkflowSettingSchema, gitlabWorkflowSettingSchema, isVendorWorkflowConfig, workflowConfigSchema, workflowExtraSchema, workflowJobSchema, workflowOptionsSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, workflowTokensSchema, workflowTriggersSchema } from "./packages/shared/src/config-schema/workflow.js";
36
38
  import { configSchema, dbxConfigSchema, toolchainConfigSchema } from "./packages/shared/src/config-schema/index.js";
37
- import { CONFIG_FILE_NAMES, DEFAULT_PACKAGE_MANAGER_VERSIONS, DbxConfig, DbxConfigFunction, DbxConfigInput, FORMATTER_PRECEDENCE, FormatterTool, LINTER_PRECEDENCE, LinterTool, ManagedFile, SyncContext, SyncSummary, SyncTask, ToolchainConfig, ToolchainHooks, ToolchainSection, changelogSectionEnabled, defineConfig, repoSlugFromUrl, resolveChangelogBranches, resolveChangelogConfig, resolveCiConfig, resolveCommitlintEnabled, resolveFmtTool, resolveFmtTools, resolveLintTool, resolveLintTools, resolveOxcFmtConfig, resolveOxcLintConfig, resolveTokens, sectionConfig, sectionEnabled } from "./packages/shared/src/toolchain.js";
39
+ import { CONFIG_FILE_NAMES, DEFAULT_PACKAGE_MANAGER_VERSIONS, DbxConfig, DbxConfigFunction, DbxConfigInput, FORMATTER_PRECEDENCE, FormatterTool, LINTER_PRECEDENCE, LinterTool, ManagedFile, SyncContext, SyncSummary, SyncTask, ToolchainConfig, ToolchainHooks, ToolchainSection, changelogSectionEnabled, defaultPackageManagerVersion, defineConfig, repoSlugFromUrl, resolveChangelogBranches, resolveChangelogConfig, resolveCiConfig, resolveCommitlintEnabled, resolveFmtTool, resolveFmtTools, resolveLintTool, resolveLintTools, resolveOxcFmtConfig, resolveOxcLintConfig, resolveTokens, sectionConfig, sectionEnabled } from "./packages/shared/src/toolchain.js";
38
40
  import { Awaitable, GeneratedFile, JsonValue, PackageJson, ToolchainArgument, ToolchainCommand, ToolchainCommandContext, ToolchainOption } from "./packages/shared/src/types.js";
39
41
  import { projectFromPackageJson, projectToPackageJson, splitPackageName } from "./packages/shared/src/project.js";
40
42
  import { ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, providerActions } from "./packages/shared/src/provider.js";
41
43
  import { RegistryPolicy, registrySourceAllowed } from "./packages/shared/src/registry-policy.js";
42
44
  import { RunOptions, SpawnCrossOptions, isCmdShim, killProcessTree, run, spawnCross } from "./packages/shared/src/run.js";
43
- import { asString, camelCase, camelCaseId, capitalize, constantCase, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, formatCliFlag, hasEscapeArtifacts, hasText, indent, isLocalhost, kebabCase, pascalCase, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, sanitizeSlashes, sanitizeText, snakeCase, str, stripControlChars, stripEscapeArtifacts, titleCase } from "./packages/shared/src/string-utils.js";
44
- import { DEFAULT_FMT_IGNORE_PATTERNS, DEFAULT_FMT_RULES, DEFAULT_LINT_IGNORE_PATTERNS, DEFAULT_LINT_RULES, ToolchainOxfmtConfig, ToolchainOxlintConfig } from "./packages/shared/src/vite-defaults.js";
45
+ import { asString, camelCase, camelCaseId, capitalize, constantCase, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, formatCliFlag, hasEscapeArtifacts, hasText, indent, isLocalhost, kebabCase, pascalCase, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repairBacktickArtifacts, sanitizeSlashes, sanitizeText, snakeCase, str, stripControlChars, stripEscapeArtifacts, titleCase } from "./packages/shared/src/string-utils.js";
46
+ import { TsconfigFileNameSet, tsconfigFileNames } from "./packages/shared/src/tsconfig-files.js";
47
+ import { DEFAULT_FMT_RULES, DEFAULT_FMT_SORT_GROUP, DEFAULT_FMT_SORT_GROUPS, DEFAULT_FMT_SORT_IMPORTS, DEFAULT_LINT_RULES, DeepReadonly, FmtCustomGroup, FmtProjectIdentity, FmtSortGroup, FmtSortImports, ToolchainOxfmtConfig, ToolchainOxlintConfig, applyFmtCustomGroups, fmtCustomGroupsForProjects } from "./packages/shared/src/vite-defaults.js";
45
48
  import { YamlValue, toYaml } from "./packages/shared/src/yaml.js";
46
49
  import "./packages/shared/src/index.js";
47
- export { Awaitable, type AzurePipelines, AzureWorkflowSetting, type BiomeConfig, CONFIG_FILE_NAMES, ChangelogAuthorInfo, ChangelogBranchesConfig, ChangelogBreakingCommit, ChangelogBreakingSetting, ChangelogBumpRule, ChangelogBumpRuleCallbackContext, ChangelogBumpRuleContext, ChangelogBumpRuleMatch, ChangelogCommitFormatConfig, ChangelogCommitFormatContext, ChangelogCommitFormatOptions, ChangelogCommitRecord, ChangelogCommitlintConfig, ChangelogConfig, ChangelogGroupConfig, ChangelogGroupContext, ChangelogGroupEntry, ChangelogGroupHidden, ChangelogGroupItem, ChangelogGroupOrder, ChangelogGroupTitle, ChangelogGroupsContext, ChangelogGroupsSetting, ChangelogIssueInfo, ChangelogProvider, ChangelogProviderConfig, ChangelogProviderContext, ChangelogProviderSetting, ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowSetting, CiChangelogConfig, Colors, ConfigJsonValue, CustomWorkflowSettings, DEFAULT_FMT_IGNORE_PATTERNS, DEFAULT_FMT_RULES, DEFAULT_IGNORE_PATTERNS, DEFAULT_LINT_IGNORE_PATTERNS, DEFAULT_LINT_RULES, DEFAULT_PACKAGE_MANAGER_VERSIONS, DbxConfig, DbxConfigFunction, DbxConfigInput, DbxConfigSections, ENABLED_DESCRIPTION, ERROR_MAP, ErrorId, FORMATTER_PRECEDENCE, FormatterTool, GeneratedFile, type GitHubWorkflow, GitHubWorkflowSetting, type GitLabCi, GitLabWorkflowSetting, IgnoreOptions, JsonValue, LINTER_PRECEDENCE, LOG_LEVELS, LinterTool, LogChannel, LogLevel, LogSuppression, Logger, LoggerConfig, LoggerOptions, ManagedFile, MessageId, type OxfmtConfig, type OxlintConfig, PackageJson, ProjectType, RegistryPolicy, ReplacementOptions, ReplacementValue, Replacements, Replacer, RunOptions, Sortable, SpawnCrossOptions, SyncContext, SyncSummary, SyncTask, TOOLCHAIN_PACKAGE, ToolchainArgument, ToolchainBiomeConfig, ToolchainCatalogsConfig, ToolchainCiConfig, ToolchainCommand, ToolchainCommandContext, ToolchainConfig, ToolchainConfigSections, ToolchainFmtConfig, ToolchainHooks, ToolchainLintConfig, ToolchainLogger, ToolchainLoggerConfig, ToolchainOption, ToolchainOxfmtConfig, ToolchainOxlintConfig, ToolchainProjectConfig, ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, ToolchainProvidersConfig, ToolchainRegistryConfig, ToolchainRegistryPolicy, ToolchainSection, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigConfig, ToolchainTsconfigOverrides, ToolchainViteConfig, ToolchainVscodeSettings, ToolchainWatchConfig, VendorWorkflowConfig, WARNING_MAP, WarningId, WorkflowJob, WorkflowOptions, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, type YamlValue, applyOverrides, applyReplacements, applyReplacementsDeep, asString, azureWorkflowSettingSchema, biomeConfigOptionsSchema, biomeConfigSchema, camelCase, camelCaseId, capitalize, catalogsConfigSchema, changelogBranchesConfigSchema, changelogBreakingCallbackSchema, changelogBreakingSettingSchema, changelogBumpRuleMatchSchema, changelogBumpRuleSchema, changelogCommitFormatConfigSchema, changelogCommitlintConfigSchema, changelogConfigSchema, changelogGroupConfigSchema, changelogGroupsSettingSchema, changelogProviderConfigSchema, changelogProviderSettingSchema, changelogSectionEnabled, changelogVersioningConfigSchema, changelogVersioningSchema, changelogVersioningTargetSchema, changelogWorkflowSettingSchema, ciChangelogConfigSchema, ciConfigSchema, collectGitignorePatterns, configJsonValueSchema, configSchema, configureLogger, constantCase, createLogger, createReplacer, customWorkflowSettingsSchema, dbxConfigSchema, deepMerge, defineConfig, defineReplacements, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, errorMessage, extractTokens, findOwnCliEntry, fmtConfigSchema, formatCliFlag, formatMessage, formatMessageId, getLogOverrides, getLogger, githubWorkflowSettingSchema, gitlabWorkflowSettingSchema, hasEscapeArtifacts, hasText, hasUnresolvedTokens, indent, insertMissingJsonc, isCmdShim, isIgnoredPath, isLocalhost, isLogLevel, isPlainObject, isUnsafeKey, isVendorWorkflowConfig, kebabCase, killProcessTree, lintConfigSchema, localToolchainVersion, logger, loggerConfigSchema, mapValues, mergeJsonAt, normalizeLogLevel, pascalCase, projectConfigSchema, projectFromPackageJson, projectToPackageJson, projectTypeSchema, providerActions, providersConfigSchema, readJsonAt, readJsonFile, readJsoncAt, readJsoncFile, registryConfigSchema, registryPolicySchema, registrySourceAllowed, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repoSlugFromUrl, resolveChangelogBranches, resolveChangelogConfig, resolveCiConfig, resolveCommitlintEnabled, resolveFmtTool, resolveFmtTools, resolveIgnorePatterns, resolveLintTool, resolveLintTools, resolveOxcFmtConfig, resolveOxcLintConfig, resolveSort, resolveTokens, run, sanitizeSlashes, sanitizeText, section, sectionConfig, sectionEnabled, setLogConfig, setLogOverrides, snakeCase, sort, spawnCross, splitPackageName, str, stripAnsi, stripControlChars, stripEscapeArtifacts, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, titleCase, toJson, toYaml, tokenPattern, toolchainConfigSchema, tsconfigConfigSchema, viteConfigSchema, vscodeSettingsSchema, warningMessage, watchConfigSchema, withEnabled, workflowConfigSchema, workflowJobSchema, workflowOptionsSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, writeJsonFile };
50
+ export { Awaitable, type AzurePipelines, AzureWorkflowSetting, type BiomeConfig, CONFIG_FILE_NAMES, ChangelogAuthorInfo, ChangelogBranchesConfig, ChangelogBreakingCommit, ChangelogBreakingSetting, ChangelogBumpRule, ChangelogBumpRuleCallbackContext, ChangelogBumpRuleContext, ChangelogBumpRuleMatch, ChangelogCommitFormatConfig, ChangelogCommitFormatContext, ChangelogCommitFormatOptions, ChangelogCommitRecord, ChangelogCommitlintConfig, ChangelogConfig, ChangelogGroupConfig, ChangelogGroupContext, ChangelogGroupEntry, ChangelogGroupHidden, ChangelogGroupItem, ChangelogGroupOrder, ChangelogGroupTitle, ChangelogGroupsContext, ChangelogGroupsSetting, ChangelogIssueInfo, ChangelogProvider, ChangelogProviderConfig, ChangelogProviderContext, ChangelogProviderSetting, ChangelogVersioning, ChangelogVersioningConfig, ChangelogVersioningTarget, ChangelogWorkflowSetting, CiChangelogConfig, Colors, ConfigJsonValue, CustomWorkflowSettings, DEFAULT_FMT_IGNORE_PATTERNS, DEFAULT_FMT_RULES, DEFAULT_FMT_SORT_GROUP, DEFAULT_FMT_SORT_GROUPS, DEFAULT_FMT_SORT_IMPORTS, DEFAULT_IGNORE_PATTERNS, DEFAULT_LINT_IGNORE_PATTERNS, DEFAULT_LINT_RULES, DEFAULT_PACKAGE_MANAGER_VERSIONS, DbxConfig, DbxConfigFunction, DbxConfigInput, DbxConfigSections, DeepReadonly, DprintConfig, ENABLED_DESCRIPTION, ERROR_MAP, ErrorId, EslintConfig, EslintLanguageOptions, EslintLinterOptions, FORMATTER_PRECEDENCE, FmtCustomGroup, FmtProjectIdentity, FmtSortGroup, FmtSortImports, FormatterTool, GeneratedFile, type GitHubWorkflow, GitHubWorkflowSetting, type GitLabCi, GitLabWorkflowSetting, IgnoreOptions, JsonValue, LINTER_PRECEDENCE, LOG_LEVELS, LinterTool, LogChannel, LogLevel, LogSuppression, Logger, LoggerConfig, LoggerOptions, ManagedFile, MessageId, type OxfmtConfig, type OxlintConfig, PackageJson, PrettierConfig, ProjectType, RegistryPolicy, ReplacementOptions, ReplacementValue, Replacements, Replacer, RunOptions, Sortable, SpawnCrossOptions, SyncContext, SyncSummary, SyncTask, TOOLCHAIN_PACKAGE, ToolchainArgument, ToolchainBiomeConfig, ToolchainCatalogsConfig, ToolchainCiConfig, ToolchainCommand, ToolchainCommandContext, ToolchainConfig, ToolchainConfigSections, ToolchainFmtConfig, ToolchainHooks, ToolchainLintConfig, ToolchainLogger, ToolchainLoggerConfig, ToolchainOption, ToolchainOxfmtConfig, ToolchainOxlintConfig, ToolchainProjectConfig, ToolchainProvider, ToolchainProviderAction, ToolchainProviderCommand, ToolchainProvidersConfig, ToolchainRegistryConfig, ToolchainRegistryPolicy, ToolchainSection, ToolchainTemplateKind, ToolchainTemplateSource, ToolchainTemplateSourceType, ToolchainTemplatesConfig, ToolchainTsconfigAliasAutoSetting, ToolchainTsconfigAliasRewrite, ToolchainTsconfigAliasRewriteKey, ToolchainTsconfigAliasRewriteRule, ToolchainTsconfigAutoSetting, ToolchainTsconfigConfig, ToolchainTsconfigOverrides, ToolchainViteConfig, ToolchainVscodeSettings, ToolchainWatchConfig, TsconfigFileNameSet, VendorWorkflowConfig, WARNING_MAP, WarningId, WorkflowExtra, WorkflowJob, WorkflowOptions, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, WorkflowTokens, WorkflowTriggers, type YamlValue, applyFmtCustomGroups, applyOverrides, applyReplacements, applyReplacementsDeep, asString, azureWorkflowSettingSchema, biomeConfigOptionsSchema, biomeConfigSchema, camelCase, camelCaseId, capitalize, catalogsConfigSchema, changelogBranchesConfigSchema, changelogBreakingCallbackSchema, changelogBreakingSettingSchema, changelogBumpRuleMatchSchema, changelogBumpRuleSchema, changelogCommitFormatConfigSchema, changelogCommitlintConfigSchema, changelogConfigSchema, changelogGroupConfigSchema, changelogGroupsSettingSchema, changelogProviderConfigSchema, changelogProviderSettingSchema, changelogSectionEnabled, changelogVersioningConfigSchema, changelogVersioningSchema, changelogVersioningTargetSchema, changelogWorkflowSettingSchema, ciChangelogConfigSchema, ciConfigSchema, collectGitignorePatterns, configJsonValueSchema, configSchema, configureLogger, constantCase, createLogger, createReplacer, customWorkflowSettingsSchema, dbxConfigSchema, deepMerge, defaultPackageManagerVersion, defineConfig, defineReplacements, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, errorMessage, extractTokens, findOwnCliEntry, fmtConfigSchema, fmtCustomGroupsForProjects, formatCliFlag, formatMessage, formatMessageId, getLogOverrides, getLogger, githubWorkflowSettingSchema, gitlabWorkflowSettingSchema, hasEscapeArtifacts, hasText, hasUnresolvedTokens, indent, insertMissingJsonc, isCmdShim, isIgnoredPath, isLocalhost, isLogLevel, isPlainObject, isUnsafeKey, isVendorWorkflowConfig, kebabCase, killProcessTree, lintConfigSchema, localToolchainVersion, logger, loggerConfigSchema, mapValues, mergeJsonAt, normalizeLogLevel, pascalCase, projectConfigSchema, projectFromPackageJson, projectToPackageJson, projectTypeSchema, providerActions, providersConfigSchema, readJsonAt, readJsonFile, readJsoncAt, readJsoncFile, registryConfigSchema, registryPolicySchema, registrySourceAllowed, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repairBacktickArtifacts, repoSlugFromUrl, resolveChangelogBranches, resolveChangelogConfig, resolveCiConfig, resolveCommitlintEnabled, resolveFmtTool, resolveFmtTools, resolveIgnorePatterns, resolveLintTool, resolveLintTools, resolveOxcFmtConfig, resolveOxcLintConfig, resolveSort, resolveTokens, run, sanitizeSlashes, sanitizeText, section, sectionConfig, sectionEnabled, setLogConfig, setLogOverrides, snakeCase, sort, spawnCross, splitPackageName, str, stripAnsi, stripControlChars, stripEscapeArtifacts, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, titleCase, toJson, toYaml, tokenPattern, toolchainConfigSchema, tsconfigConfigSchema, tsconfigFileNames, viteConfigSchema, vscodeSettingsSchema, warningMessage, watchConfigSchema, withEnabled, workflowConfigSchema, workflowExtraSchema, workflowJobSchema, workflowOptionsSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, workflowTokensSchema, workflowTriggersSchema, writeJsonFile };