@deltabox/toolchain 1.1.22 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +49 -4
  2. package/README.md +59 -30
  3. package/dist/config.d.ts +2 -2
  4. package/dist/config.js +1 -1
  5. package/dist/index.d.ts +3 -2
  6. package/dist/index.js +1 -1
  7. package/dist/package.js +1 -1
  8. package/dist/packages/changelog/src/workflows.d.ts +1 -1
  9. package/dist/packages/config/src/generators/types.js +1 -1
  10. package/dist/packages/config/src/index.d.ts +3 -3
  11. package/dist/packages/config/src/index.js +1 -1
  12. package/dist/packages/config/src/schema.d.ts +30 -1
  13. package/dist/packages/config/src/schema.js +1 -1
  14. package/dist/packages/core/src/loader.d.ts +1 -1
  15. package/dist/packages/core/src/project-type.d.ts +1 -1
  16. package/dist/packages/core/src/sync.d.ts +1 -1
  17. package/dist/packages/core/src/vscode.d.ts +1 -1
  18. package/dist/packages/project/src/config.d.ts +1 -1
  19. package/dist/packages/project/src/typescript.d.ts +1 -1
  20. package/dist/packages/shared/src/config-schema.d.ts +1624 -20
  21. package/dist/packages/shared/src/config-schema.js +1 -1
  22. package/dist/packages/shared/src/config-types.d.ts +342 -0
  23. package/dist/packages/shared/src/index.d.ts +4 -3
  24. package/dist/packages/shared/src/index.js +1 -1
  25. package/dist/packages/shared/src/toolchain.d.ts +3 -2
  26. package/dist/packages/shared/src/toolchain.js +1 -1
  27. package/dist/packages/shared/src/types.d.ts +1 -1
  28. package/dist/packages/template/src/online.d.ts +1 -1
  29. package/dist/packages/template/src/registry.d.ts +1 -1
  30. package/dist/packages/template/src/types.d.ts +1 -1
  31. package/dist/packages/vite/src/sync.d.ts +1 -1
  32. package/dist/shared.d.ts +3 -2
  33. package/dist/shared.js +1 -1
  34. package/package.json +22 -13
package/CHANGELOG.md CHANGED
@@ -1,9 +1,57 @@
1
1
  # Changelog
2
2
 
3
- ## 1.1.22 (October 2026)
3
+ ## 1.2.1 (October 2026)
4
4
 
5
5
  <!-- release:start -->
6
6
 
7
+ ### Documentation
8
+ - Show how to load the generated config ([#0f4d0d1](https://github.com/deltabox-studio/toolchain/commit/0f4d0d1) by [T0chi](https://github.com/T0chi))
9
+ - Add a "Load the config at runtime" section to the config generator guide
10
+ (`parseEnvTree`, the typed accessors, `applyOverrides`, and schema validation via
11
+ `compileZodSchema`) plus a short loading example in the README.
12
+ - Update description and tags ([#64b64aa](https://github.com/deltabox-studio/toolchain/commit/64b64aa) by [T0chi](https://github.com/T0chi))
13
+
14
+ <!-- release:end -->
15
+
16
+
17
+ ## 1.2.0 (October 2026)
18
+
19
+ ### New features
20
+ #### Config
21
+ - Generate the shared config types via the config generator ([#a063a2d](https://github.com/deltabox-studio/toolchain/commit/a063a2d) by [T0chi](https://github.com/T0chi))
22
+ - Teach the config engine's Zod->untyped bridge and types generator to handle
23
+ unions (anyOf/oneOf), `const`, and unknown records, and to render a schema's
24
+ fields on the main interface when it has no `base` group (plus type aliases for
25
+ non-object roots). Named `$ref`s (via `.meta({ id })`) render as the type name,
26
+ so the generated config types reference each other instead of inlining.
27
+ - Generate `packages/shared/src/config-types.ts` from the Zod config model with the
28
+ engine's `renderConfigTypes` (`yarn config:types`); `config-schema.ts` keeps only
29
+ the schemas and the types are exported from `config-types.ts`.
30
+ ### Bug fixes
31
+ #### Vscode
32
+ - Group managed files by project and reorder the views ([#f5b49d9](https://github.com/deltabox-studio/toolchain/commit/f5b49d9) by [T0chi](https://github.com/T0chi))
33
+ - The Managed Files view read a manifest per project, so a monorepo's root-level
34
+ managed files never showed. Read each workspace root's manifest and group its
35
+ files by the deepest project that owns them. Move the Projects view above
36
+ Managed Files (renamed from Files).
37
+ ### Documentation
38
+ - Document the config generator outputs ([#fcfcd69](https://github.com/deltabox-studio/toolchain/commit/fcfcd69) by [T0chi](https://github.com/T0chi))
39
+ - Show a short example of each generated output (config types, markdown, env,
40
+ JSON schema) in the config generator guide and the README.
41
+ - Update vscode extension preview ([#fd90dda](https://github.com/deltabox-studio/toolchain/commit/fd90dda) by [T0chi](https://github.com/T0chi))
42
+
43
+ ## 1.1.24 (October 2026)
44
+
45
+ ### Documentation
46
+ - Update features ([#071006e](https://github.com/deltabox-studio/toolchain/commit/071006e) by [T0chi](https://github.com/T0chi))
47
+
48
+ ## 1.1.23 (October 2026)
49
+
50
+ ### Documentation
51
+ - Using different logo for the hero ([#552172d](https://github.com/deltabox-studio/toolchain/commit/552172d) by [T0chi](https://github.com/T0chi))
52
+
53
+ ## 1.1.22 (October 2026)
54
+
7
55
  ### Bug fixes
8
56
  #### Ci
9
57
  - Skip the Marketplace publish when VSCE_PAT is unset ([#fe4b3ad](https://github.com/deltabox-studio/toolchain/commit/fe4b3ad) by [T0chi](https://github.com/T0chi))
@@ -12,9 +60,6 @@
12
60
  automatically once it is added to the `toolchain / release` environment.
13
61
  - Also remove the temporary OIDC diagnostic step now that the release publishes.
14
62
 
15
- <!-- release:end -->
16
-
17
-
18
63
  ## 1.1.21 (October 2026)
19
64
 
20
65
  ### Bug fixes
package/README.md CHANGED
@@ -1,18 +1,18 @@
1
1
  # deltabox toolchain
2
2
 
3
- All-in-one, config-driven dev toolchain: scaffold projects, generate and manage configs, tsconfigs, changelogs and CI, run Vite+, and migrate other tools onto Ox.
4
-
5
3
  [![license: MPL-2.0](https://img.shields.io/badge/license-MPL--2.0-blue.svg)](./package.json)
6
4
  [![tests](https://img.shields.io/github/actions/workflow/status/deltabox-studio/toolchain/ci.yml?label=tests&logo=github)](https://github.com/deltabox-studio/toolchain/actions/workflows/ci.yml)
7
5
  [![npm version](https://img.shields.io/npm/v/@deltabox/toolchain.svg?color=cb3837&label=npm)](https://www.npmjs.com/package/@deltabox/toolchain)
8
6
 
7
+ All-in-one, config-driven dev toolchain: scaffold projects, generate and manage configs, tsconfigs, syncing, changelogs and CI, run Vite+, and migrate other tools onto Ox.
8
+
9
9
  `@deltabox/toolchain` is driven by a single `dbx.config.ts` at a repo
10
10
  root. Define the sections you want and the toolchain generates and keeps the
11
- matching files in sync — from a CLI, a programmatic API, and a VS Code extension.
11
+ matching files in sync.
12
12
 
13
13
  See [CHANGELOG.md](/CHANGELOG.md) for latest updates.
14
14
 
15
- **Documentation, guides and examples:** [toolchain.deltabox.studio](https://toolchain.deltabox.studio).
15
+ Documentation, guides and examples: [toolchain.deltabox.studio](https://toolchain.deltabox.studio/guide).
16
16
 
17
17
  ## Table of contents
18
18
 
@@ -32,31 +32,19 @@ See [CHANGELOG.md](/CHANGELOG.md) for latest updates.
32
32
 
33
33
  ## Features
34
34
 
35
- - **Config-driven.** Every area is an opt-in section in `dbx.config.ts`
36
- (`project`, `changelog`, `biome`, `tsconfig`, `templates`, `vite`, `watch`,
37
- `hooks`). Define a section to enable it; omit it and nothing is touched.
38
- - **Config generator.** A generic Zod/env engine (`createConfigEngine`) turns
39
- your schemas into a `.env.example`, a JSON Schema, a markdown reference, TS
40
- types and CLI flags, and wires `config:*` commands into your own CLI. See the
41
- [config generator guide](https://toolchain.deltabox.studio/guide/config-generator).
42
- - **Vite / Vite+ plugin.** Drive dbx from `vite.config.ts`: the `dbx()` plugin
43
- runs `dbx sync` before dev/build (or `dbx sync --check` in CI). Works with both
44
- Vite and Vite+.
45
- - **Changelogs & releases.** Conventional-Commits commitlint, a changelog
46
- pipeline that bumps versions and writes `CHANGELOG.md`, plus GitHub workflows
47
- for CI, changelog, release and issues.
48
- - **tsconfig generation.** Workspace `tsconfig.json` files with path aliases and
49
- project references, driven from one config.
50
- - **Providers.** Wire external toolchains behind one CLI. Vite+ ships as a
51
- provider, so every `vp` command is reachable as `dbx vite:*`.
52
- - **Templates.** Offline (builtin + local `template.json` dirs) and online
53
- (npm/git/Vite+) templates, creatable from the CLI or the extension.
54
- - **Migrations.** Move Biome, Prettier, ESLint or Dprint onto Ox
55
- (Oxfmt/Oxlint) with a pluggable migration engine (`--target files` or `vite`).
56
- - **Editor first.** A VS Code extension to sync, scaffold, run workflows, run
57
- Vite+ commands and pick templates.
58
- - **Monorepo aware.** Project graph, workspace tsconfigs, dependency-ordered
59
- tasks via `vp run`, and per-workspace files.
35
+ - **Config-driven**
36
+ - **Config generator**
37
+ - **Vite / Vite+ plugin**
38
+ - **Changelogs & releases**
39
+ - **tsconfig generation**
40
+ - **Providers**
41
+ - **Templates**
42
+ - **Migrations**
43
+ - **Editor first**
44
+ - **Monorepo aware**
45
+ - **Auto sync**
46
+
47
+ See more at [toolchain.deltabox.studio](https://toolchain.deltabox.studio).
60
48
 
61
49
  ## Install
62
50
 
@@ -137,6 +125,42 @@ engine.writeEnvFile({ output: '.env.example' });
137
125
  engine.writeMarkdown({ outDir: 'docs/reference/configuration' });
138
126
  ```
139
127
 
128
+ It also generates the TypeScript types — named interfaces with jsdoc from
129
+ `.describe()`, where unions and nested objects stay named instead of being
130
+ inlined:
131
+
132
+ ```ts
133
+ engine.writeConfigTypes({ outputDir: 'types' });
134
+ ```
135
+
136
+ ```ts
137
+ // types/server.ts
138
+ export interface ServerConfig {
139
+ /** HTTP port. */
140
+ port?: number;
141
+ }
142
+ ```
143
+
144
+ At runtime the same package loads it back — `parseEnvTree` folds the `PREFIX_*`
145
+ variables into a tree and the typed accessors read it (schema validation is just
146
+ a `.parse()` away):
147
+
148
+ ```ts
149
+ import { envInt, envString, parseEnvTree } from '@deltabox/toolchain/config';
150
+
151
+ const tree = parseEnvTree(process.env, 'MYAPP_');
152
+ const port = envInt(tree, 'port', 3000);
153
+ const host = envString(tree, 'host', '0.0.0.0');
154
+ ```
155
+
156
+ See the [config generator
157
+ guide](https://toolchain.deltabox.studio/guide/config-generator) for loading,
158
+ overriding and validating the config.
159
+
160
+ The toolchain generates its own config types this way — see
161
+ `packages/shared/src/config-types.ts` and the [config generator
162
+ guide](https://toolchain.deltabox.studio/guide/config-generator#generated-outputs).
163
+
140
164
  `configCommands({ engine })` also exposes the same generators as `config:*`
141
165
  commands on your own CLI. See the [config generator
142
166
  guide](https://toolchain.deltabox.studio/guide/config-generator).
@@ -193,6 +217,11 @@ await runSync({ tasks: defaultSyncTasks(), cwd: process.cwd(), config, tokens, p
193
217
 
194
218
  A VS Code extension is available for `deltabox toolchain`.
195
219
 
220
+ <div align="center">
221
+ <img src="./apps/docs/public/vscode-img-1.png" width="250" />
222
+ <img src="./apps/docs/public/vscode-img-2.png" width="250" />
223
+ </div>
224
+
196
225
  Follow the steps below to use it. Will be published to the marketplace in the future.
197
226
 
198
227
  1. Download `deltabox-toolchain.vsix` from [releases](https://github.com/deltabox-studio/toolchain/releases).
@@ -227,7 +256,7 @@ Docs live in `apps/docs` (VitePress): `yarn workspace @deltabox/toolchain-docs b
227
256
 
228
257
  ## Docs
229
258
 
230
- Full documentation, guides and examples live at [toolchain.deltabox.studio](https://toolchain.deltabox.studio).
259
+ Full documentation, guides and examples live at [toolchain.deltabox.studio](https://toolchain.deltabox.studio/guide).
231
260
 
232
261
  The source pages live in `apps/docs`.
233
262
 
package/dist/config.d.ts CHANGED
@@ -12,7 +12,7 @@ import { GenerateTypesOptions, generateConfigTypes, renderAllConfigTypes, render
12
12
  import { ConfigEngine, createConfigEngine } from "./packages/config/src/engine.js";
13
13
  import { EnvSource, EnvTree, applyOverrides, envBool, envInt, envList, envMap, envString, parseEnvTree, readEnvPath, trimTrailingSlashes } from "./packages/config/src/env.js";
14
14
  import { findProjectRoot, monorepoRoot } from "./packages/config/src/root.js";
15
- import { SplitSchema, compileZodSchema, envMetaOf, flattenBaseSchema, resolveUntypedSchema, splitBaseSchema, zodToJsonSchema, zodToUntypedDefinition } from "./packages/config/src/schema.js";
15
+ import { SplitSchema, compileZodSchema, envMetaOf, flattenBaseSchema, renderTsType, resolveUntypedSchema, splitBaseSchema, zodToJsonSchema, zodToUntypedDefinition } from "./packages/config/src/schema.js";
16
16
  import "./packages/config/src/index.js";
17
17
  import { ConfigCommandContext, ConfigCommandDefaults, configCommands } from "./packages/config/src/cli/index.js";
18
- export { BuildConfigJsonOptions, CliArgsOptionConfig, CliArgsParser, CliArgsResult, CliArgsValues, CliFlagOptions, CliOptionDef, CollectEnvVarsOptions, ConfigCommandContext, ConfigCommandDefaults, ConfigEngine, ConfigEngineOptions, ConfigFileSection, ConfigJsonDoc, ConfigJsonEntry, ConfigScopeDef, ConfigScopes, DEFAULT_ENV_PREFIX, EnvFileOptions, EnvSource, EnvTree, EnvValueType, EnvVarDef, EnvVarMeta, GenerateCliOptionsOptions, GenerateEnvTypesOptions, GenerateJsonSchemaOptions, GenerateMarkdownOptions, GenerateTypesOptions, RenderConfigFileOptions, RenderMarkdownOptions, SplitSchema, applyOverrides, buildConfigJson, cliFlagLabel, cliFlagOf, cliShortOf, collectEnvVars, collectRequiredEnvVars, compileZodSchema, configCommands, createCliArgsParser, createConfigEngine, envBool, envInt, envList, envMap, envMetaOf, envPathOf, envString, findProjectRoot, flagOf, flattenBaseSchema, generateCliArgsOptions, generateCliOptions, generateConfigJsonSchema, generateConfigMarkdown, generateConfigTypes, generateEnv, generateEnvDts, generateEnvFile, generateEnvTypes, generateJsonSchemaFile, monorepoRoot, parseEnvTree, readEnvPath, renderAllConfigTypes, renderConfigFileMarkdown, renderConfigIndex, renderConfigTypes, renderScopeMarkdown, resolveScopeSchema, resolveUntypedSchema, splitBaseSchema, trimTrailingSlashes, zodToJsonSchema, zodToUntypedDefinition };
18
+ export { BuildConfigJsonOptions, CliArgsOptionConfig, CliArgsParser, CliArgsResult, CliArgsValues, CliFlagOptions, CliOptionDef, CollectEnvVarsOptions, ConfigCommandContext, ConfigCommandDefaults, ConfigEngine, ConfigEngineOptions, ConfigFileSection, ConfigJsonDoc, ConfigJsonEntry, ConfigScopeDef, ConfigScopes, DEFAULT_ENV_PREFIX, EnvFileOptions, EnvSource, EnvTree, EnvValueType, EnvVarDef, EnvVarMeta, GenerateCliOptionsOptions, GenerateEnvTypesOptions, GenerateJsonSchemaOptions, GenerateMarkdownOptions, GenerateTypesOptions, RenderConfigFileOptions, RenderMarkdownOptions, SplitSchema, applyOverrides, buildConfigJson, cliFlagLabel, cliFlagOf, cliShortOf, collectEnvVars, collectRequiredEnvVars, compileZodSchema, configCommands, createCliArgsParser, createConfigEngine, envBool, envInt, envList, envMap, envMetaOf, envPathOf, envString, findProjectRoot, flagOf, flattenBaseSchema, generateCliArgsOptions, generateCliOptions, generateConfigJsonSchema, generateConfigMarkdown, generateConfigTypes, generateEnv, generateEnvDts, generateEnvFile, generateEnvTypes, generateJsonSchemaFile, monorepoRoot, parseEnvTree, readEnvPath, renderAllConfigTypes, renderConfigFileMarkdown, renderConfigIndex, renderConfigTypes, renderScopeMarkdown, renderTsType, resolveScopeSchema, resolveUntypedSchema, splitBaseSchema, trimTrailingSlashes, zodToJsonSchema, zodToUntypedDefinition };
package/dist/config.js CHANGED
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{compileZodSchema as e,envMetaOf as t,flattenBaseSchema as n,resolveUntypedSchema as r,splitBaseSchema as i,zodToJsonSchema as a,zodToUntypedDefinition as o}from"./packages/config/src/schema.js";import{envPathOf as s}from"./packages/config/src/types.js";import{DEFAULT_ENV_PREFIX as c,collectEnvVars as l,collectRequiredEnvVars as u}from"./packages/config/src/collect.js";import{buildConfigJson as d}from"./packages/config/src/config-json.js";import{generateEnvFile as f}from"./packages/config/src/env-file.js";import{cliFlagLabel as p,cliFlagOf as m,cliShortOf as h,createCliArgsParser as g,flagOf as _,generateCliArgsOptions as v,generateCliOptions as y}from"./packages/config/src/generators/cli.js";import{generateEnv as b,generateEnvDts as x,generateEnvTypes as S}from"./packages/config/src/generators/env.js";import{generateConfigJsonSchema as C,generateJsonSchemaFile as w}from"./packages/config/src/generators/json.js";import{generateConfigMarkdown as T,renderConfigFileMarkdown as E,renderConfigIndex as D,renderScopeMarkdown as O}from"./packages/config/src/generators/markdown.js";import{generateConfigTypes as k,renderAllConfigTypes as A,renderConfigTypes as j,resolveScopeSchema as M}from"./packages/config/src/generators/types.js";import{findProjectRoot as N,monorepoRoot as P}from"./packages/config/src/root.js";import{createConfigEngine as F}from"./packages/config/src/engine.js";import{applyOverrides as I,envBool as L,envInt as R,envList as z,envMap as B,envString as V,parseEnvTree as H,readEnvPath as U,trimTrailingSlashes as W}from"./packages/config/src/env.js";import"./packages/config/src/index.js";import{configCommands as G}from"./packages/config/src/cli/index.js";export{c as DEFAULT_ENV_PREFIX,I as applyOverrides,d as buildConfigJson,p as cliFlagLabel,m as cliFlagOf,h as cliShortOf,l as collectEnvVars,u as collectRequiredEnvVars,e as compileZodSchema,G as configCommands,g as createCliArgsParser,F as createConfigEngine,L as envBool,R as envInt,z as envList,B as envMap,t as envMetaOf,s as envPathOf,V as envString,N as findProjectRoot,_ as flagOf,n as flattenBaseSchema,v as generateCliArgsOptions,y as generateCliOptions,C as generateConfigJsonSchema,T as generateConfigMarkdown,k as generateConfigTypes,b as generateEnv,x as generateEnvDts,f as generateEnvFile,S as generateEnvTypes,w as generateJsonSchemaFile,P as monorepoRoot,H as parseEnvTree,U as readEnvPath,A as renderAllConfigTypes,E as renderConfigFileMarkdown,D as renderConfigIndex,j as renderConfigTypes,O as renderScopeMarkdown,M as resolveScopeSchema,r as resolveUntypedSchema,i as splitBaseSchema,W as trimTrailingSlashes,a as zodToJsonSchema,o as zodToUntypedDefinition};
1
+ import"node:path";import"node:url";import.meta.url;import{compileZodSchema as e,envMetaOf as t,flattenBaseSchema as n,renderTsType as r,resolveUntypedSchema as i,splitBaseSchema as a,zodToJsonSchema as o,zodToUntypedDefinition as s}from"./packages/config/src/schema.js";import{envPathOf as c}from"./packages/config/src/types.js";import{DEFAULT_ENV_PREFIX as l,collectEnvVars as u,collectRequiredEnvVars as d}from"./packages/config/src/collect.js";import{buildConfigJson as f}from"./packages/config/src/config-json.js";import{generateEnvFile as p}from"./packages/config/src/env-file.js";import{cliFlagLabel as m,cliFlagOf as h,cliShortOf as g,createCliArgsParser as _,flagOf as v,generateCliArgsOptions as y,generateCliOptions as b}from"./packages/config/src/generators/cli.js";import{generateEnv as x,generateEnvDts as S,generateEnvTypes as C}from"./packages/config/src/generators/env.js";import{generateConfigJsonSchema as w,generateJsonSchemaFile as T}from"./packages/config/src/generators/json.js";import{generateConfigMarkdown as E,renderConfigFileMarkdown as D,renderConfigIndex as O,renderScopeMarkdown as k}from"./packages/config/src/generators/markdown.js";import{generateConfigTypes as A,renderAllConfigTypes as j,renderConfigTypes as M,resolveScopeSchema as N}from"./packages/config/src/generators/types.js";import{findProjectRoot as P,monorepoRoot as F}from"./packages/config/src/root.js";import{createConfigEngine as I}from"./packages/config/src/engine.js";import{applyOverrides as L,envBool as R,envInt as z,envList as B,envMap as V,envString as H,parseEnvTree as U,readEnvPath as W,trimTrailingSlashes as G}from"./packages/config/src/env.js";import"./packages/config/src/index.js";import{configCommands as K}from"./packages/config/src/cli/index.js";export{l as DEFAULT_ENV_PREFIX,L as applyOverrides,f as buildConfigJson,m as cliFlagLabel,h as cliFlagOf,g as cliShortOf,u as collectEnvVars,d as collectRequiredEnvVars,e as compileZodSchema,K as configCommands,_ as createCliArgsParser,I as createConfigEngine,R as envBool,z as envInt,B as envList,V as envMap,t as envMetaOf,c as envPathOf,H as envString,P as findProjectRoot,v as flagOf,n as flattenBaseSchema,y as generateCliArgsOptions,b as generateCliOptions,w as generateConfigJsonSchema,E as generateConfigMarkdown,A as generateConfigTypes,x as generateEnv,S as generateEnvDts,p as generateEnvFile,C as generateEnvTypes,T as generateJsonSchemaFile,F as monorepoRoot,U as parseEnvTree,W as readEnvPath,j as renderAllConfigTypes,D as renderConfigFileMarkdown,O as renderConfigIndex,M as renderConfigTypes,k as renderScopeMarkdown,r as renderTsType,N as resolveScopeSchema,i as resolveUntypedSchema,a as splitBaseSchema,G as trimTrailingSlashes,o as zodToJsonSchema,s as zodToUntypedDefinition};
package/dist/index.d.ts CHANGED
@@ -6,8 +6,9 @@ import { ToolingProvider, ToolingProviderAction, ToolingProviderCommand, provide
6
6
  import { RunOptions, run, spawnCross } from "./packages/shared/src/run.js";
7
7
  import { asString, camelCase, camelCaseId, capitalize, constantCase, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, formatCliFlag, hasText, indent, isLocalhost, kebabCase, pascalCase, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, sanitizeSlashes, snakeCase, str, titleCase } from "./packages/shared/src/string-utils.js";
8
8
  import { ReplacementOptions, ReplacementValue, Replacements, Replacer, applyReplacements, applyReplacementsDeep, createReplacer, defineReplacements, extractTokens, hasUnresolvedTokens, tokenPattern } from "./packages/shared/src/template.js";
9
- import { CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, ChangelogWorkflowsConfig, DbxConfigSections, ProjectType, ToolingBiomeConfig, ToolingChangelogConfig, ToolingConfigSections, ToolingProjectConfig, ToolingTemplateKind, ToolingTemplateSource, ToolingTemplateSourceType, ToolingTemplatesConfig, ToolingTsconfigConfig, ToolingViteConfig, ToolingWatchConfig, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, biomeConfigSchema, changelogConfigSchema, changelogWorkflowsConfigSchema, dbxConfigSchema, projectConfigSchema, projectTypeSchema, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, toolingConfigSchema, tsconfigConfigSchema, viteConfigSchema, watchConfigSchema, workflowConfigSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema } from "./packages/shared/src/config-schema.js";
9
+ import { ChangelogWorkflowsConfig, DbxConfigSections, ProjectType, ToolingBiomeConfig, ToolingChangelogConfig, ToolingConfigSections, ToolingProjectConfig, ToolingTemplateKind, ToolingTemplateSource, ToolingTemplateSourceType, ToolingTemplatesConfig, ToolingTsconfigConfig, ToolingViteConfig, ToolingWatchConfig, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig } from "./packages/shared/src/config-types.js";
10
10
  import { Awaitable, GeneratedFile, JsonValue, PackageJson, ToolingArgument, ToolingCommand, ToolingCommandContext, ToolingOption } from "./packages/shared/src/types.js";
11
+ import { CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, CONFIG_TYPE_SCHEMAS, biomeConfigSchema, changelogConfigSchema, changelogWorkflowsConfigSchema, dbxConfigSchema, projectConfigSchema, projectTypeSchema, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, toolingConfigSchema, tsconfigConfigSchema, viteConfigSchema, watchConfigSchema, workflowConfigSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema } from "./packages/shared/src/config-schema.js";
11
12
  import { CONFIG_FILE_NAMES, DbxConfig, ManagedFile, SyncContext, SyncSummary, SyncTask, ToolingConfig, ToolingHooks, ToolingSection, defineConfig, repoSlugFromUrl, resolveTokens, sectionConfig, sectionEnabled } from "./packages/shared/src/toolchain.js";
12
13
  import { YamlValue, toYaml } from "./packages/shared/src/yaml.js";
13
14
  import { index_d_exports as index_d_exports$5 } from "./packages/shared/src/index.js";
@@ -28,4 +29,4 @@ import { index_d_exports as index_d_exports$6 } from "./packages/tsconfig/src/in
28
29
  import { index_d_exports as index_d_exports$4 } from "./packages/project/src/index.js";
29
30
  import { index_d_exports as index_d_exports$7 } from "./packages/tsdown/src/index.js";
30
31
  import { defaultSyncTasks } from "./sync.js";
31
- export { Awaitable, BuildProjectGraphOptions, CONFIG_FILE_NAMES, CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, ChangelogWorkflowsConfig, DbxConfig, DbxConfigSections, GeneratedFile, IGNORED_DIRS, JsonValue, LoadedConfig, MANIFEST_DIR, MANIFEST_FILE, ManagedFile, Manifest, PackageJson, PackageManager, ProjectGraph, ProjectNode, ProjectType, ReplacementOptions, ReplacementValue, Replacements, Replacer, ResetProjectsOptions, ResetProjectsResult, ResetSelectors, ResetToolingOptions, ResetToolingResult, RunOptions, RunSyncOptions, RunWatchOptions, SelectProjectsOptions, SelectedProject, Sortable, SyncContext, SyncResult, SyncSummary, SyncTask, ToolingArgument, ToolingBiomeConfig, ToolingChangelogConfig, ToolingCommand, ToolingCommandContext, ToolingConfig, ToolingConfigSections, ToolingHooks, ToolingOption, ToolingProjectConfig, ToolingProvider, ToolingProviderAction, ToolingProviderCommand, ToolingSection, ToolingTemplateKind, ToolingTemplateSource, ToolingTemplateSourceType, ToolingTemplatesConfig, ToolingTsconfigConfig, ToolingViteConfig, ToolingWatchConfig, VscodeSyncOptions, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, type YamlValue, applyReplacements, applyReplacementsDeep, asString, index_d_exports as biome, biomeConfigSchema, buildProjectGraph, camelCase, camelCaseId, capitalize, index_d_exports$1 as changelog, changelogConfigSchema, changelogWorkflowsConfigSchema, index_d_exports$2 as config, constantCase, index_d_exports$3 as core, createReplacer, dbxConfigSchema, deepMerge, defaultSyncTasks, defineConfig, defineReplacements, detectPackageManager, detectProjectType, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, extractTokens, findConfigFile, formatCliFlag, hasText, hasUnresolvedTokens, indent, isLocalhost, isPlainObject, kebabCase, loadToolingConfig, mapValues, mergeJsonAt, orderProjects, pascalCase, index_d_exports$4 as project, projectConfigSchema, projectGraphPath, projectTypeSchema, providerActions, readJsonAt, readJsonFile, readManifest, readProjectGraph, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repoSlugFromUrl, resetProjects, resetTooling, resolveProjectType, resolveSort, resolveTokens, run, runSync, runWatch, sanitizeSlashes, sectionConfig, sectionEnabled, selectProjects, index_d_exports$5 as shared, snakeCase, sort, spawnCross, str, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, titleCase, toJson, toYaml, tokenPattern, toolingConfigSchema, index_d_exports$6 as tsconfig, tsconfigConfigSchema, index_d_exports$7 as tsdown, viteConfigSchema, vscodeSyncTask, watchConfigSchema, workflowConfigSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, writeJsonFile, writeManifest, writeProjectGraph };
32
+ export { Awaitable, BuildProjectGraphOptions, CONFIG_FILE_NAMES, CONFIG_SECTION_DESCRIPTIONS, CONFIG_SECTION_SCHEMAS, CONFIG_TYPE_SCHEMAS, ChangelogWorkflowsConfig, DbxConfig, DbxConfigSections, GeneratedFile, IGNORED_DIRS, JsonValue, LoadedConfig, MANIFEST_DIR, MANIFEST_FILE, ManagedFile, Manifest, PackageJson, PackageManager, ProjectGraph, ProjectNode, ProjectType, ReplacementOptions, ReplacementValue, Replacements, Replacer, ResetProjectsOptions, ResetProjectsResult, ResetSelectors, ResetToolingOptions, ResetToolingResult, RunOptions, RunSyncOptions, RunWatchOptions, SelectProjectsOptions, SelectedProject, Sortable, SyncContext, SyncResult, SyncSummary, SyncTask, ToolingArgument, ToolingBiomeConfig, ToolingChangelogConfig, ToolingCommand, ToolingCommandContext, ToolingConfig, ToolingConfigSections, ToolingHooks, ToolingOption, ToolingProjectConfig, ToolingProvider, ToolingProviderAction, ToolingProviderCommand, ToolingSection, ToolingTemplateKind, ToolingTemplateSource, ToolingTemplateSourceType, ToolingTemplatesConfig, ToolingTsconfigConfig, ToolingViteConfig, ToolingWatchConfig, VscodeSyncOptions, WorkflowConfig, WorkflowSetting, WorkflowStep, WorkflowStepsConfig, type YamlValue, applyReplacements, applyReplacementsDeep, asString, index_d_exports as biome, biomeConfigSchema, buildProjectGraph, camelCase, camelCaseId, capitalize, index_d_exports$1 as changelog, changelogConfigSchema, changelogWorkflowsConfigSchema, index_d_exports$2 as config, constantCase, index_d_exports$3 as core, createReplacer, dbxConfigSchema, deepMerge, defaultSyncTasks, defineConfig, defineReplacements, detectPackageManager, detectProjectType, ensureLeadingSlash, ensureSlashes, ensureTrailingSlash, extractTokens, findConfigFile, formatCliFlag, hasText, hasUnresolvedTokens, indent, isLocalhost, isPlainObject, kebabCase, loadToolingConfig, mapValues, mergeJsonAt, orderProjects, pascalCase, index_d_exports$4 as project, projectConfigSchema, projectGraphPath, projectTypeSchema, providerActions, readJsonAt, readJsonFile, readManifest, readProjectGraph, removeDoubleSlashes, removeLeadingSlash, removeTrailingSlash, repoSlugFromUrl, resetProjects, resetTooling, resolveProjectType, resolveSort, resolveTokens, run, runSync, runWatch, sanitizeSlashes, sectionConfig, sectionEnabled, selectProjects, index_d_exports$5 as shared, snakeCase, sort, spawnCross, str, templateKindSchema, templateSourceSchema, templateSourceTypeSchema, templatesConfigSchema, titleCase, toJson, toYaml, tokenPattern, toolingConfigSchema, index_d_exports$6 as tsconfig, tsconfigConfigSchema, index_d_exports$7 as tsdown, viteConfigSchema, vscodeSyncTask, watchConfigSchema, workflowConfigSchema, workflowSettingSchema, workflowStepSchema, workflowStepsConfigSchema, writeJsonFile, writeManifest, writeProjectGraph };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{deepMerge as e,isPlainObject as t,mapValues as n,resolveSort as r,sort as i}from"./packages/shared/src/object-utils.js";import{mergeJsonAt as a,readJsonAt as o,readJsonFile as s,toJson as c,writeJsonFile as l}from"./packages/shared/src/fs-utils.js";import{providerActions as u}from"./packages/shared/src/provider.js";import{run as d,spawnCross as f}from"./packages/shared/src/run.js";import{asString as p,camelCase as m,camelCaseId as h,capitalize as g,constantCase as _,ensureLeadingSlash as v,ensureSlashes as y,ensureTrailingSlash as b,formatCliFlag as x,hasText as S,indent as C,isLocalhost as w,kebabCase as T,pascalCase as E,removeDoubleSlashes as D,removeLeadingSlash as O,removeTrailingSlash as k,sanitizeSlashes as A,snakeCase as j,str as M,titleCase as N}from"./packages/shared/src/string-utils.js";import{applyReplacements as P,applyReplacementsDeep as F,createReplacer as I,defineReplacements as L,extractTokens as R,hasUnresolvedTokens as z,tokenPattern as B}from"./packages/shared/src/template.js";import{CONFIG_SECTION_DESCRIPTIONS as V,CONFIG_SECTION_SCHEMAS as H,biomeConfigSchema as U,changelogConfigSchema as W,changelogWorkflowsConfigSchema as G,dbxConfigSchema as K,projectConfigSchema as q,projectTypeSchema as J,templateKindSchema as Y,templateSourceSchema as X,templateSourceTypeSchema as Z,templatesConfigSchema as Q,toolingConfigSchema as $,tsconfigConfigSchema as ee,viteConfigSchema as te,watchConfigSchema as ne,workflowConfigSchema as re,workflowSettingSchema as ie,workflowStepSchema as ae,workflowStepsConfigSchema as oe}from"./packages/shared/src/config-schema.js";import{CONFIG_FILE_NAMES as se,defineConfig as ce,repoSlugFromUrl as le,resolveTokens as ue,sectionConfig as de,sectionEnabled as fe}from"./packages/shared/src/toolchain.js";import{toYaml as pe}from"./packages/shared/src/yaml.js";import{src_exports as me}from"./packages/shared/src/index.js";import{src_exports as he}from"./packages/biome/src/index.js";import{src_exports as ge}from"./packages/changelog/src/index.js";import{src_exports as _e}from"./packages/config/src/index.js";import{detectProjectType as ve,resolveProjectType as ye}from"./packages/core/src/project-type.js";import{findConfigFile as be,loadToolingConfig as xe}from"./packages/core/src/loader.js";import{IGNORED_DIRS as Se,buildProjectGraph as Ce,detectPackageManager as we,orderProjects as Te,projectGraphPath as Ee,readProjectGraph as De,writeProjectGraph as Oe}from"./packages/core/src/graph.js";import{MANIFEST_DIR as ke,MANIFEST_FILE as Ae,readManifest as je,writeManifest as Me}from"./packages/core/src/manifest.js";import{selectProjects as Ne}from"./packages/core/src/select.js";import{resetProjects as Pe,resetTooling as Fe}from"./packages/core/src/reset.js";import{runSync as Ie}from"./packages/core/src/sync.js";import{vscodeSyncTask as Le}from"./packages/core/src/vscode.js";import{runWatch as Re}from"./packages/core/src/watch.js";import{src_exports as ze}from"./packages/core/src/index.js";import{src_exports as Be}from"./packages/tsconfig/src/index.js";import{src_exports as Ve}from"./packages/project/src/index.js";import{src_exports as He}from"./packages/tsdown/src/index.js";import{defaultSyncTasks as Ue}from"./sync.js";export{se as CONFIG_FILE_NAMES,V as CONFIG_SECTION_DESCRIPTIONS,H as CONFIG_SECTION_SCHEMAS,Se as IGNORED_DIRS,ke as MANIFEST_DIR,Ae as MANIFEST_FILE,P as applyReplacements,F as applyReplacementsDeep,p as asString,he as biome,U as biomeConfigSchema,Ce as buildProjectGraph,m as camelCase,h as camelCaseId,g as capitalize,ge as changelog,W as changelogConfigSchema,G as changelogWorkflowsConfigSchema,_e as config,_ as constantCase,ze as core,I as createReplacer,K as dbxConfigSchema,e as deepMerge,Ue as defaultSyncTasks,ce as defineConfig,L as defineReplacements,we as detectPackageManager,ve as detectProjectType,v as ensureLeadingSlash,y as ensureSlashes,b as ensureTrailingSlash,R as extractTokens,be as findConfigFile,x as formatCliFlag,S as hasText,z as hasUnresolvedTokens,C as indent,w as isLocalhost,t as isPlainObject,T as kebabCase,xe as loadToolingConfig,n as mapValues,a as mergeJsonAt,Te as orderProjects,E as pascalCase,Ve as project,q as projectConfigSchema,Ee as projectGraphPath,J as projectTypeSchema,u as providerActions,o as readJsonAt,s as readJsonFile,je as readManifest,De as readProjectGraph,D as removeDoubleSlashes,O as removeLeadingSlash,k as removeTrailingSlash,le as repoSlugFromUrl,Pe as resetProjects,Fe as resetTooling,ye as resolveProjectType,r as resolveSort,ue as resolveTokens,d as run,Ie as runSync,Re as runWatch,A as sanitizeSlashes,de as sectionConfig,fe as sectionEnabled,Ne as selectProjects,me as shared,j as snakeCase,i as sort,f as spawnCross,M as str,Y as templateKindSchema,X as templateSourceSchema,Z as templateSourceTypeSchema,Q as templatesConfigSchema,N as titleCase,c as toJson,pe as toYaml,B as tokenPattern,$ as toolingConfigSchema,Be as tsconfig,ee as tsconfigConfigSchema,He as tsdown,te as viteConfigSchema,Le as vscodeSyncTask,ne as watchConfigSchema,re as workflowConfigSchema,ie as workflowSettingSchema,ae as workflowStepSchema,oe as workflowStepsConfigSchema,l as writeJsonFile,Me as writeManifest,Oe as writeProjectGraph};
1
+ import"node:path";import"node:url";import.meta.url;import{deepMerge as e,isPlainObject as t,mapValues as n,resolveSort as r,sort as i}from"./packages/shared/src/object-utils.js";import{mergeJsonAt as a,readJsonAt as o,readJsonFile as s,toJson as c,writeJsonFile as l}from"./packages/shared/src/fs-utils.js";import{providerActions as u}from"./packages/shared/src/provider.js";import{run as d,spawnCross as f}from"./packages/shared/src/run.js";import{asString as p,camelCase as m,camelCaseId as h,capitalize as g,constantCase as _,ensureLeadingSlash as v,ensureSlashes as y,ensureTrailingSlash as b,formatCliFlag as x,hasText as S,indent as C,isLocalhost as w,kebabCase as T,pascalCase as E,removeDoubleSlashes as D,removeLeadingSlash as O,removeTrailingSlash as k,sanitizeSlashes as A,snakeCase as j,str as M,titleCase as N}from"./packages/shared/src/string-utils.js";import{applyReplacements as P,applyReplacementsDeep as F,createReplacer as I,defineReplacements as L,extractTokens as R,hasUnresolvedTokens as z,tokenPattern as B}from"./packages/shared/src/template.js";import{CONFIG_SECTION_DESCRIPTIONS as V,CONFIG_SECTION_SCHEMAS as H,CONFIG_TYPE_SCHEMAS as U,biomeConfigSchema as W,changelogConfigSchema as G,changelogWorkflowsConfigSchema as K,dbxConfigSchema as q,projectConfigSchema as J,projectTypeSchema as Y,templateKindSchema as X,templateSourceSchema as Z,templateSourceTypeSchema as Q,templatesConfigSchema as $,toolingConfigSchema as ee,tsconfigConfigSchema as te,viteConfigSchema as ne,watchConfigSchema as re,workflowConfigSchema as ie,workflowSettingSchema as ae,workflowStepSchema as oe,workflowStepsConfigSchema as se}from"./packages/shared/src/config-schema.js";import{CONFIG_FILE_NAMES as ce,defineConfig as le,repoSlugFromUrl as ue,resolveTokens as de,sectionConfig as fe,sectionEnabled as pe}from"./packages/shared/src/toolchain.js";import{toYaml as me}from"./packages/shared/src/yaml.js";import{src_exports as he}from"./packages/shared/src/index.js";import{src_exports as ge}from"./packages/biome/src/index.js";import{src_exports as _e}from"./packages/changelog/src/index.js";import{src_exports as ve}from"./packages/config/src/index.js";import{detectProjectType as ye,resolveProjectType as be}from"./packages/core/src/project-type.js";import{findConfigFile as xe,loadToolingConfig as Se}from"./packages/core/src/loader.js";import{IGNORED_DIRS as Ce,buildProjectGraph as we,detectPackageManager as Te,orderProjects as Ee,projectGraphPath as De,readProjectGraph as Oe,writeProjectGraph as ke}from"./packages/core/src/graph.js";import{MANIFEST_DIR as Ae,MANIFEST_FILE as je,readManifest as Me,writeManifest as Ne}from"./packages/core/src/manifest.js";import{selectProjects as Pe}from"./packages/core/src/select.js";import{resetProjects as Fe,resetTooling as Ie}from"./packages/core/src/reset.js";import{runSync as Le}from"./packages/core/src/sync.js";import{vscodeSyncTask as Re}from"./packages/core/src/vscode.js";import{runWatch as ze}from"./packages/core/src/watch.js";import{src_exports as Be}from"./packages/core/src/index.js";import{src_exports as Ve}from"./packages/tsconfig/src/index.js";import{src_exports as He}from"./packages/project/src/index.js";import{src_exports as Ue}from"./packages/tsdown/src/index.js";import{defaultSyncTasks as We}from"./sync.js";export{ce as CONFIG_FILE_NAMES,V as CONFIG_SECTION_DESCRIPTIONS,H as CONFIG_SECTION_SCHEMAS,U as CONFIG_TYPE_SCHEMAS,Ce as IGNORED_DIRS,Ae as MANIFEST_DIR,je as MANIFEST_FILE,P as applyReplacements,F as applyReplacementsDeep,p as asString,ge as biome,W as biomeConfigSchema,we as buildProjectGraph,m as camelCase,h as camelCaseId,g as capitalize,_e as changelog,G as changelogConfigSchema,K as changelogWorkflowsConfigSchema,ve as config,_ as constantCase,Be as core,I as createReplacer,q as dbxConfigSchema,e as deepMerge,We as defaultSyncTasks,le as defineConfig,L as defineReplacements,Te as detectPackageManager,ye as detectProjectType,v as ensureLeadingSlash,y as ensureSlashes,b as ensureTrailingSlash,R as extractTokens,xe as findConfigFile,x as formatCliFlag,S as hasText,z as hasUnresolvedTokens,C as indent,w as isLocalhost,t as isPlainObject,T as kebabCase,Se as loadToolingConfig,n as mapValues,a as mergeJsonAt,Ee as orderProjects,E as pascalCase,He as project,J as projectConfigSchema,De as projectGraphPath,Y as projectTypeSchema,u as providerActions,o as readJsonAt,s as readJsonFile,Me as readManifest,Oe as readProjectGraph,D as removeDoubleSlashes,O as removeLeadingSlash,k as removeTrailingSlash,ue as repoSlugFromUrl,Fe as resetProjects,Ie as resetTooling,be as resolveProjectType,r as resolveSort,de as resolveTokens,d as run,Le as runSync,ze as runWatch,A as sanitizeSlashes,fe as sectionConfig,pe as sectionEnabled,Pe as selectProjects,he as shared,j as snakeCase,i as sort,f as spawnCross,M as str,X as templateKindSchema,Z as templateSourceSchema,Q as templateSourceTypeSchema,$ as templatesConfigSchema,N as titleCase,c as toJson,me as toYaml,B as tokenPattern,ee as toolingConfigSchema,Ve as tsconfig,te as tsconfigConfigSchema,Ue as tsdown,ne as viteConfigSchema,Re as vscodeSyncTask,re as watchConfigSchema,ie as workflowConfigSchema,ae as workflowSettingSchema,oe as workflowStepSchema,se as workflowStepsConfigSchema,l as writeJsonFile,Ne as writeManifest,ke as writeProjectGraph};
package/dist/package.js CHANGED
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;var e=`1.1.22`;export{e as version};
1
+ import"node:path";import"node:url";import.meta.url;var e=`1.2.1`;export{e as version};
@@ -1,7 +1,7 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
3
  import { Replacements } from "../../shared/src/template.js";
4
- import { WorkflowConfig, WorkflowSetting, WorkflowStep } from "../../shared/src/config-schema.js";
4
+ import { WorkflowConfig, WorkflowSetting, WorkflowStep } from "../../shared/src/config-types.js";
5
5
  import "../../shared/src/index.js";
6
6
  //#region packages/changelog/src/workflows.d.ts
7
7
  export interface WorkflowJob {
@@ -1 +1 @@
1
- import{default as e}from"node:path";import"node:url";import.meta.url;import{pascalCase as t}from"../../../shared/src/string-utils.js";import"../../../shared/src/index.js";import{splitBaseSchema as n,zodToJsonSchema as r}from"../schema.js";import i from"node:fs";import{generateTypes as a}from"untyped";const o={addExport:!0,partial:!0};function s(e,t){return e??r(t)}function c(e,r,i={}){let s=i.baseGroup??`base`,c=i.interfaceNames?.[e]??`${t(e)}Config`,l=i.aliases?.[e]??``,{base:u,groups:d,hasBase:f}=n(r,s),p=Object.keys(d.properties??{}),m=a(u,{...o,interfaceName:`${c}Base`}),h;h=f&&p.length>0?a(d,{...o,interfaceName:c}).replace(`export interface ${c} {`,`export interface ${c} extends ${c}Base {`):f?`export interface ${c} extends ${c}Base {}\n`:a(d,{...o,interfaceName:c});let g=`${m}\n${h}\n${l}`;return i.header?`${i.header}\n\n${g}`:g}function l(e,t={}){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,c(e,s(n.jsonSchema,n.zodSchema),t)]))}function u(t,n){let r=n.extension??`ts`,a=[];for(let[o,s]of Object.entries(l(t,n))){let t=e.join(n.outputDir,`${o}.${r}`);i.mkdirSync(e.dirname(t),{recursive:!0}),i.writeFileSync(t,s,`utf-8`),a.push(t)}return a}export{u as generateConfigTypes,l as renderAllConfigTypes,c as renderConfigTypes,s as resolveScopeSchema};
1
+ import{default as e}from"node:path";import"node:url";import.meta.url;import{pascalCase as t}from"../../../shared/src/string-utils.js";import"../../../shared/src/index.js";import{splitBaseSchema as n,zodToJsonSchema as r}from"../schema.js";import i from"node:fs";import{generateTypes as a}from"untyped";const o={addExport:!0,partial:!0};function s(e,t){return e??r(t)}function c(e,r,i={}){let s=i.baseGroup??`base`,c=i.interfaceNames?.[e]??`${t(e)}Config`,l=i.aliases?.[e]??``,u=e=>i.header?`${i.header}\n\n${e}`:e;if(!r.properties)return u(`export type ${c} = ${r.tsType??`unknown`};\n${l}`);let{base:d,groups:f,hasBase:p}=n(r,s),m=Object.keys(f.properties??{});if(!p)return u(`${a(r,{...o,interfaceName:c})}\n${l}`);let h=a(d,{...o,interfaceName:`${c}Base`}),g;return g=m.length>0?a(f,{...o,interfaceName:c}).replace(`export interface ${c} {`,`export interface ${c} extends ${c}Base {`):`export interface ${c} extends ${c}Base {}\n`,u(`${h}\n${g}\n${l}`)}function l(e,t={}){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,c(e,s(n.jsonSchema,n.zodSchema),t)]))}function u(t,n){let r=n.extension??`ts`,a=[];for(let[o,s]of Object.entries(l(t,n))){let t=e.join(n.outputDir,`${o}.${r}`);i.mkdirSync(e.dirname(t),{recursive:!0}),i.writeFileSync(t,s,`utf-8`),a.push(t)}return a}export{u as generateConfigTypes,l as renderAllConfigTypes,c as renderConfigTypes,s as resolveScopeSchema};
@@ -13,9 +13,9 @@ import { ConfigEngine, createConfigEngine } from "./engine.js";
13
13
  import { EnvSource, EnvTree, applyOverrides, envBool, envInt, envList, envMap, envString, parseEnvTree, readEnvPath, trimTrailingSlashes } from "./env.js";
14
14
  import "./generators/index.js";
15
15
  import { findProjectRoot, monorepoRoot } from "./root.js";
16
- import { SplitSchema, compileZodSchema, envMetaOf, flattenBaseSchema, resolveUntypedSchema, splitBaseSchema, zodToJsonSchema, zodToUntypedDefinition } from "./schema.js";
16
+ import { SplitSchema, compileZodSchema, envMetaOf, flattenBaseSchema, renderTsType, resolveUntypedSchema, splitBaseSchema, zodToJsonSchema, zodToUntypedDefinition } from "./schema.js";
17
17
  declare namespace index_d_exports {
18
- export { BuildConfigJsonOptions, CliArgsOptionConfig, CliArgsParser, CliArgsResult, CliArgsValues, CliFlagOptions, CliOptionDef, CollectEnvVarsOptions, ConfigEngine, ConfigEngineOptions, ConfigFileSection, ConfigJsonDoc, ConfigJsonEntry, ConfigScopeDef, ConfigScopes, DEFAULT_ENV_PREFIX, EnvFileOptions, EnvSource, EnvTree, EnvValueType, EnvVarDef, EnvVarMeta, GenerateCliOptionsOptions, GenerateEnvTypesOptions, GenerateJsonSchemaOptions, GenerateMarkdownOptions, GenerateTypesOptions, RenderConfigFileOptions, RenderMarkdownOptions, SplitSchema, applyOverrides, buildConfigJson, cliFlagLabel, cliFlagOf, cliShortOf, collectEnvVars, collectRequiredEnvVars, compileZodSchema, createCliArgsParser, createConfigEngine, envBool, envInt, envList, envMap, envMetaOf, envPathOf, envString, findProjectRoot, flagOf, flattenBaseSchema, generateCliArgsOptions, generateCliOptions, generateConfigJsonSchema, generateConfigMarkdown, generateConfigTypes, generateEnv, generateEnvDts, generateEnvFile, generateEnvTypes, generateJsonSchemaFile, monorepoRoot, parseEnvTree, readEnvPath, renderAllConfigTypes, renderConfigFileMarkdown, renderConfigIndex, renderConfigTypes, renderScopeMarkdown, resolveScopeSchema, resolveUntypedSchema, splitBaseSchema, trimTrailingSlashes, zodToJsonSchema, zodToUntypedDefinition };
18
+ export { BuildConfigJsonOptions, CliArgsOptionConfig, CliArgsParser, CliArgsResult, CliArgsValues, CliFlagOptions, CliOptionDef, CollectEnvVarsOptions, ConfigEngine, ConfigEngineOptions, ConfigFileSection, ConfigJsonDoc, ConfigJsonEntry, ConfigScopeDef, ConfigScopes, DEFAULT_ENV_PREFIX, EnvFileOptions, EnvSource, EnvTree, EnvValueType, EnvVarDef, EnvVarMeta, GenerateCliOptionsOptions, GenerateEnvTypesOptions, GenerateJsonSchemaOptions, GenerateMarkdownOptions, GenerateTypesOptions, RenderConfigFileOptions, RenderMarkdownOptions, SplitSchema, applyOverrides, buildConfigJson, cliFlagLabel, cliFlagOf, cliShortOf, collectEnvVars, collectRequiredEnvVars, compileZodSchema, createCliArgsParser, createConfigEngine, envBool, envInt, envList, envMap, envMetaOf, envPathOf, envString, findProjectRoot, flagOf, flattenBaseSchema, generateCliArgsOptions, generateCliOptions, generateConfigJsonSchema, generateConfigMarkdown, generateConfigTypes, generateEnv, generateEnvDts, generateEnvFile, generateEnvTypes, generateJsonSchemaFile, monorepoRoot, parseEnvTree, readEnvPath, renderAllConfigTypes, renderConfigFileMarkdown, renderConfigIndex, renderConfigTypes, renderScopeMarkdown, renderTsType, resolveScopeSchema, resolveUntypedSchema, splitBaseSchema, trimTrailingSlashes, zodToJsonSchema, zodToUntypedDefinition };
19
19
  }
20
20
  //#endregion
21
- export { BuildConfigJsonOptions, CliArgsOptionConfig, CliArgsParser, CliArgsResult, CliArgsValues, CliFlagOptions, CliOptionDef, CollectEnvVarsOptions, ConfigEngine, ConfigEngineOptions, ConfigFileSection, ConfigJsonDoc, ConfigJsonEntry, ConfigScopeDef, ConfigScopes, DEFAULT_ENV_PREFIX, EnvFileOptions, EnvSource, EnvTree, EnvValueType, EnvVarDef, EnvVarMeta, GenerateCliOptionsOptions, GenerateEnvTypesOptions, GenerateJsonSchemaOptions, GenerateMarkdownOptions, GenerateTypesOptions, RenderConfigFileOptions, RenderMarkdownOptions, SplitSchema, applyOverrides, buildConfigJson, cliFlagLabel, cliFlagOf, cliShortOf, collectEnvVars, collectRequiredEnvVars, compileZodSchema, createCliArgsParser, createConfigEngine, envBool, envInt, envList, envMap, envMetaOf, envPathOf, envString, findProjectRoot, flagOf, flattenBaseSchema, generateCliArgsOptions, generateCliOptions, generateConfigJsonSchema, generateConfigMarkdown, generateConfigTypes, generateEnv, generateEnvDts, generateEnvFile, generateEnvTypes, generateJsonSchemaFile, index_d_exports, monorepoRoot, parseEnvTree, readEnvPath, renderAllConfigTypes, renderConfigFileMarkdown, renderConfigIndex, renderConfigTypes, renderScopeMarkdown, resolveScopeSchema, resolveUntypedSchema, splitBaseSchema, trimTrailingSlashes, zodToJsonSchema, zodToUntypedDefinition };
21
+ export { BuildConfigJsonOptions, CliArgsOptionConfig, CliArgsParser, CliArgsResult, CliArgsValues, CliFlagOptions, CliOptionDef, CollectEnvVarsOptions, ConfigEngine, ConfigEngineOptions, ConfigFileSection, ConfigJsonDoc, ConfigJsonEntry, ConfigScopeDef, ConfigScopes, DEFAULT_ENV_PREFIX, EnvFileOptions, EnvSource, EnvTree, EnvValueType, EnvVarDef, EnvVarMeta, GenerateCliOptionsOptions, GenerateEnvTypesOptions, GenerateJsonSchemaOptions, GenerateMarkdownOptions, GenerateTypesOptions, RenderConfigFileOptions, RenderMarkdownOptions, SplitSchema, applyOverrides, buildConfigJson, cliFlagLabel, cliFlagOf, cliShortOf, collectEnvVars, collectRequiredEnvVars, compileZodSchema, createCliArgsParser, createConfigEngine, envBool, envInt, envList, envMap, envMetaOf, envPathOf, envString, findProjectRoot, flagOf, flattenBaseSchema, generateCliArgsOptions, generateCliOptions, generateConfigJsonSchema, generateConfigMarkdown, generateConfigTypes, generateEnv, generateEnvDts, generateEnvFile, generateEnvTypes, generateJsonSchemaFile, index_d_exports, monorepoRoot, parseEnvTree, readEnvPath, renderAllConfigTypes, renderConfigFileMarkdown, renderConfigIndex, renderConfigTypes, renderScopeMarkdown, renderTsType, resolveScopeSchema, resolveUntypedSchema, splitBaseSchema, trimTrailingSlashes, zodToJsonSchema, zodToUntypedDefinition };
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{__exportAll as e}from"../../../_virtual/_rolldown/runtime.js";import{compileZodSchema as t,envMetaOf as n,flattenBaseSchema as r,resolveUntypedSchema as i,splitBaseSchema as a,zodToJsonSchema as o,zodToUntypedDefinition as s}from"./schema.js";import{envPathOf as c}from"./types.js";import{DEFAULT_ENV_PREFIX as l,collectEnvVars as u,collectRequiredEnvVars as d}from"./collect.js";import{buildConfigJson as f}from"./config-json.js";import{generateEnvFile as p}from"./env-file.js";import{cliFlagLabel as m,cliFlagOf as h,cliShortOf as g,createCliArgsParser as _,flagOf as v,generateCliArgsOptions as y,generateCliOptions as b}from"./generators/cli.js";import{generateEnv as x,generateEnvDts as S,generateEnvTypes as C}from"./generators/env.js";import{generateConfigJsonSchema as w,generateJsonSchemaFile as T}from"./generators/json.js";import{generateConfigMarkdown as E,renderConfigFileMarkdown as D,renderConfigIndex as O,renderScopeMarkdown as k}from"./generators/markdown.js";import{generateConfigTypes as A,renderAllConfigTypes as j,renderConfigTypes as M,resolveScopeSchema as N}from"./generators/types.js";import{findProjectRoot as P,monorepoRoot as F}from"./root.js";import{createConfigEngine as I}from"./engine.js";import{applyOverrides as L,envBool as R,envInt as z,envList as B,envMap as V,envString as H,parseEnvTree as U,readEnvPath as W,trimTrailingSlashes as G}from"./env.js";import"./generators/index.js";var K=/* @__PURE__ */ e({DEFAULT_ENV_PREFIX:()=>l,applyOverrides:()=>L,buildConfigJson:()=>f,cliFlagLabel:()=>m,cliFlagOf:()=>h,cliShortOf:()=>g,collectEnvVars:()=>u,collectRequiredEnvVars:()=>d,compileZodSchema:()=>t,createCliArgsParser:()=>_,createConfigEngine:()=>I,envBool:()=>R,envInt:()=>z,envList:()=>B,envMap:()=>V,envMetaOf:()=>n,envPathOf:()=>c,envString:()=>H,findProjectRoot:()=>P,flagOf:()=>v,flattenBaseSchema:()=>r,generateCliArgsOptions:()=>y,generateCliOptions:()=>b,generateConfigJsonSchema:()=>w,generateConfigMarkdown:()=>E,generateConfigTypes:()=>A,generateEnv:()=>x,generateEnvDts:()=>S,generateEnvFile:()=>p,generateEnvTypes:()=>C,generateJsonSchemaFile:()=>T,monorepoRoot:()=>F,parseEnvTree:()=>U,readEnvPath:()=>W,renderAllConfigTypes:()=>j,renderConfigFileMarkdown:()=>D,renderConfigIndex:()=>O,renderConfigTypes:()=>M,renderScopeMarkdown:()=>k,resolveScopeSchema:()=>N,resolveUntypedSchema:()=>i,splitBaseSchema:()=>a,trimTrailingSlashes:()=>G,zodToJsonSchema:()=>o,zodToUntypedDefinition:()=>s});export{l as DEFAULT_ENV_PREFIX,L as applyOverrides,f as buildConfigJson,m as cliFlagLabel,h as cliFlagOf,g as cliShortOf,u as collectEnvVars,d as collectRequiredEnvVars,t as compileZodSchema,_ as createCliArgsParser,I as createConfigEngine,R as envBool,z as envInt,B as envList,V as envMap,n as envMetaOf,c as envPathOf,H as envString,P as findProjectRoot,v as flagOf,r as flattenBaseSchema,y as generateCliArgsOptions,b as generateCliOptions,w as generateConfigJsonSchema,E as generateConfigMarkdown,A as generateConfigTypes,x as generateEnv,S as generateEnvDts,p as generateEnvFile,C as generateEnvTypes,T as generateJsonSchemaFile,F as monorepoRoot,U as parseEnvTree,W as readEnvPath,j as renderAllConfigTypes,D as renderConfigFileMarkdown,O as renderConfigIndex,M as renderConfigTypes,k as renderScopeMarkdown,N as resolveScopeSchema,i as resolveUntypedSchema,a as splitBaseSchema,K as src_exports,G as trimTrailingSlashes,o as zodToJsonSchema,s as zodToUntypedDefinition};
1
+ import"node:path";import"node:url";import.meta.url;import{__exportAll as e}from"../../../_virtual/_rolldown/runtime.js";import{compileZodSchema as t,envMetaOf as n,flattenBaseSchema as r,renderTsType as i,resolveUntypedSchema as a,splitBaseSchema as o,zodToJsonSchema as s,zodToUntypedDefinition as c}from"./schema.js";import{envPathOf as l}from"./types.js";import{DEFAULT_ENV_PREFIX as u,collectEnvVars as d,collectRequiredEnvVars as f}from"./collect.js";import{buildConfigJson as p}from"./config-json.js";import{generateEnvFile as m}from"./env-file.js";import{cliFlagLabel as h,cliFlagOf as g,cliShortOf as _,createCliArgsParser as v,flagOf as y,generateCliArgsOptions as b,generateCliOptions as x}from"./generators/cli.js";import{generateEnv as S,generateEnvDts as C,generateEnvTypes as w}from"./generators/env.js";import{generateConfigJsonSchema as T,generateJsonSchemaFile as E}from"./generators/json.js";import{generateConfigMarkdown as D,renderConfigFileMarkdown as O,renderConfigIndex as k,renderScopeMarkdown as A}from"./generators/markdown.js";import{generateConfigTypes as j,renderAllConfigTypes as M,renderConfigTypes as N,resolveScopeSchema as P}from"./generators/types.js";import{findProjectRoot as F,monorepoRoot as I}from"./root.js";import{createConfigEngine as L}from"./engine.js";import{applyOverrides as R,envBool as z,envInt as B,envList as V,envMap as H,envString as U,parseEnvTree as W,readEnvPath as G,trimTrailingSlashes as K}from"./env.js";import"./generators/index.js";var q=/* @__PURE__ */ e({DEFAULT_ENV_PREFIX:()=>u,applyOverrides:()=>R,buildConfigJson:()=>p,cliFlagLabel:()=>h,cliFlagOf:()=>g,cliShortOf:()=>_,collectEnvVars:()=>d,collectRequiredEnvVars:()=>f,compileZodSchema:()=>t,createCliArgsParser:()=>v,createConfigEngine:()=>L,envBool:()=>z,envInt:()=>B,envList:()=>V,envMap:()=>H,envMetaOf:()=>n,envPathOf:()=>l,envString:()=>U,findProjectRoot:()=>F,flagOf:()=>y,flattenBaseSchema:()=>r,generateCliArgsOptions:()=>b,generateCliOptions:()=>x,generateConfigJsonSchema:()=>T,generateConfigMarkdown:()=>D,generateConfigTypes:()=>j,generateEnv:()=>S,generateEnvDts:()=>C,generateEnvFile:()=>m,generateEnvTypes:()=>w,generateJsonSchemaFile:()=>E,monorepoRoot:()=>I,parseEnvTree:()=>W,readEnvPath:()=>G,renderAllConfigTypes:()=>M,renderConfigFileMarkdown:()=>O,renderConfigIndex:()=>k,renderConfigTypes:()=>N,renderScopeMarkdown:()=>A,renderTsType:()=>i,resolveScopeSchema:()=>P,resolveUntypedSchema:()=>a,splitBaseSchema:()=>o,trimTrailingSlashes:()=>K,zodToJsonSchema:()=>s,zodToUntypedDefinition:()=>c});export{u as DEFAULT_ENV_PREFIX,R as applyOverrides,p as buildConfigJson,h as cliFlagLabel,g as cliFlagOf,_ as cliShortOf,d as collectEnvVars,f as collectRequiredEnvVars,t as compileZodSchema,v as createCliArgsParser,L as createConfigEngine,z as envBool,B as envInt,V as envList,H as envMap,n as envMetaOf,l as envPathOf,U as envString,F as findProjectRoot,y as flagOf,r as flattenBaseSchema,b as generateCliArgsOptions,x as generateCliOptions,T as generateConfigJsonSchema,D as generateConfigMarkdown,j as generateConfigTypes,S as generateEnv,C as generateEnvDts,m as generateEnvFile,w as generateEnvTypes,E as generateJsonSchemaFile,I as monorepoRoot,W as parseEnvTree,G as readEnvPath,M as renderAllConfigTypes,O as renderConfigFileMarkdown,k as renderConfigIndex,N as renderConfigTypes,A as renderScopeMarkdown,i as renderTsType,P as resolveScopeSchema,a as resolveUntypedSchema,o as splitBaseSchema,q as src_exports,K as trimTrailingSlashes,s as zodToJsonSchema,c as zodToUntypedDefinition};
@@ -4,8 +4,36 @@ import { EnvVarMeta } from "./types.js";
4
4
  import { ZodType } from "zod";
5
5
  import { Schema } from "untyped";
6
6
  //#region packages/config/src/schema.d.ts
7
+ /** A JSON Schema node produced by `z.toJSONSchema`. */
8
+ interface JsonSchemaNode {
9
+ type?: string | string[];
10
+ properties?: Record<string, JsonSchemaNode>;
11
+ required?: string[] | boolean;
12
+ default?: unknown;
13
+ defaultValue?: unknown;
14
+ description?: string;
15
+ enum?: string[];
16
+ const?: unknown;
17
+ anyOf?: JsonSchemaNode[];
18
+ oneOf?: JsonSchemaNode[];
19
+ $ref?: string;
20
+ $defs?: Record<string, JsonSchemaNode>;
21
+ items?: JsonSchemaNode;
22
+ additionalProperties?: JsonSchemaNode;
23
+ propertyNames?: JsonSchemaNode;
24
+ env?: string;
25
+ scope?: string;
26
+ secret?: boolean;
27
+ public?: boolean;
28
+ }
7
29
  /** Read the env metadata attached to a Zod leaf via `.meta()`. */
8
30
  export declare function envMetaOf(schema: ZodType): EnvVarMeta | undefined;
31
+ /**
32
+ * Render a JSON Schema node as a TypeScript type string. Nested `$defs` are
33
+ * referenced by name, unions become `A | B`, records become `Record<...>` and
34
+ * object nodes without properties are inlined. Never throws.
35
+ */
36
+ export declare function renderTsType(node: JsonSchemaNode | undefined, defs?: Record<string, JsonSchemaNode>): string;
9
37
  /** Lower a Zod config schema into an untyped definition object. */
10
38
  export declare function zodToUntypedDefinition(zodSchema: ZodType): Record<string, unknown>;
11
39
  /** Compile a Zod schema to a fast native parse function, falling back on error. */
@@ -31,4 +59,5 @@ export interface SplitSchema {
31
59
  export declare function splitBaseSchema(schema: Schema, baseGroup?: string): SplitSchema;
32
60
  /** Flatten the base group of a resolved schema into the top level. */
33
61
  export declare function flattenBaseSchema(schema: Schema, baseGroup?: string): Schema;
34
- //#endregion
62
+ //#endregion
63
+ export {};
@@ -1 +1 @@
1
- import"node:path";import"node:url";import.meta.url;import{z as e}from"zod";const t={string:`string`,number:`number`,integer:`number`,boolean:`boolean`,null:`null`};function n(e){let t=e.meta?.();return t&&typeof t==`object`&&`env`in t?t:void 0}function r(e){return e.enum?`string`:Array.isArray(e.type)?e.type.find(e=>e!==`null`)??`string`:e.type??`string`}function i(e){let n=typeof e?.type==`string`?e.type:`string`;return t[n]??`string`}function a(e){if(e.enum&&Array.isArray(e.enum))return`'${e.enum.join(`' | '`)}'`;let n=Array.isArray(e.type)?e.type:[e.type??`string`];return n.includes(`array`)?`Array<${i(e.items)}>`:n.includes(`object`)?`Record<string, ${i(e.additionalProperties)}>`:n.map(e=>t[e]??e).join(` | `)}function o(e,t=!1){if(e.properties){let n=t?{$schema:{tags:[`@required`]}}:{};for(let[t,r]of Object.entries(e.properties))n[t]=o(r,e.required?.includes(t)??!1);return n}let n={};return e.defaultValue===void 0?e.default!==void 0&&(n.$default=e.default):n.$default=e.defaultValue,n.$schema={type:r(e),tsType:a(e),...r(e)===`array`?{items:{type:i(e.items)}}:{},...t?{tags:[`@required`]}:{},...e.description?{description:e.description}:{},...e.env?{env:e.env}:{},...e.scope?{scope:e.scope}:{},...e.secret?{secret:!0}:{},...e.public?{public:!0}:{},...e.required===!0?{required:!0}:{},...e.defaultValue!==void 0&&e.default!==void 0?{envDefault:e.default}:{}},n}function s(e){return o(e.toJSONSchema())}function c(t){try{return e.compile(t)}catch{return t}}function l(e){return e!==null&&!Array.isArray(e)&&typeof e==`object`}function u(e){let t=typeof e;if(t!==`undefined`&&e!==null)return Array.isArray(e)?`array`:t}function d(e,t,n=`.`){return e?`${e}${n}${t}`:t}function f(e){return[...new Set(e.filter(e=>!!e))]}function p(e){if(e.type===`array`&&!(`items`in e)){let t=f((e.default??[]).map(e=>u(e)));e.items={type:t.length===0?`any`:t.length===1?t[0]:t}}if(e.default===void 0&&(`properties`in e||e.type===`object`||e.type===`any`)){let t=e.properties??{};e.default=Object.fromEntries(Object.entries(t).filter(([,e])=>`default`in e).map(([e,t])=>[e,t.default]))}}function m(e,t,n){if(n.cache.has(t))return n.cache.get(t);let r=`#${t.replace(/\./g,`/`)}`;if(!l(e)){let i=Array.isArray(e)?[...e]:e,a={type:u(e),id:r,default:i};return p(a),n.cache.set(t,a),a}let i={...e.$schema??{},id:r};n.cache.set(t,i);let a=Object.keys(e).filter(e=>e!==`$resolve`&&e!==`$schema`&&e!==`$default`);if(a.length>0){let r={};i.properties=r;for(let o of a)if(!r[o]){let a=r[o]=m(e[o],d(t,o),n);Array.isArray(a.tags)&&a.tags.includes(`@required`)&&(i.required=i.required||[],i.required.includes(o)||i.required.push(o))}}return i.default===void 0&&`$default`in e&&(i.default=e.$default),i.type||=u(i.default)||(i.properties?`object`:`any`),p(i),i}function h(e){return m(e,``,{root:e,cache:/* @__PURE__ */ new Map})}function g(e){return h(s(e))}function _(e,t=`base`){let n=e.properties??{},r=n[t];if(r&&r.type===`object`&&r.properties){let{[t]:i,...a}=n,o=(e.required??[]).filter(e=>e!==t);return{base:r,groups:{...e,properties:a,...o.length>0?{required:o}:{}},hasBase:!0}}return{base:e,groups:{...e,properties:{}},hasBase:!1}}function v(e,t=`base`){let n=e.properties??{},r=n[t];if(r?.type!==`object`)return e;let i=r.properties;if(!i)return e;let{[t]:a,...o}=n;return{...e,properties:{...i,...o},required:[...(e.required??[]).filter(e=>e!==t),...r.required??[]]}}export{c as compileZodSchema,n as envMetaOf,v as flattenBaseSchema,h as resolveUntypedSchema,_ as splitBaseSchema,g as zodToJsonSchema,s as zodToUntypedDefinition};
1
+ import"node:path";import"node:url";import.meta.url;import{z as e}from"zod";const t={string:`string`,number:`number`,integer:`number`,boolean:`boolean`,null:`null`};function n(e){let t=e.meta?.();return t&&typeof t==`object`&&`env`in t?t:void 0}function r(e){return!e||Object.keys(e).length===0}function i(e){return`'${String(e).replace(/\\/g,`\\\\`).replace(/'/g,`\\'`)}'`}function a(e,n={}){if(!e||r(e))return`unknown`;if(e.$ref){let t=e.$ref.split(`/`).pop()??`unknown`;return n[t]?t:`unknown`}if(e.const!==void 0)return typeof e.const==`string`?i(e.const):String(e.const);if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum.map(i).join(` | `);let o=e.anyOf??e.oneOf;if(Array.isArray(o)&&o.length>0)return o.map(e=>a(e,n)).join(` | `);if(e.properties){let t=Array.isArray(e.required)?e.required:[];return`{ ${Object.entries(e.properties).map(([e,r])=>`${e}${t.includes(e)?``:`?`}: ${a(r,n)}`).join(`; `)} }`}let s=Array.isArray(e.type)?e.type:e.type?[e.type]:[];return s.includes(`array`)?`Array<${a(e.items,n)}>`:s.includes(`object`)?e.additionalProperties===void 0?`Record<string, unknown>`:`Record<string, ${r(e.additionalProperties)?`unknown`:a(e.additionalProperties,n)}>`:s.length===0?`unknown`:s.map(e=>t[e]??`unknown`).join(` | `)}function o(e){return e.$ref?`any`:e.const===void 0?e.anyOf||e.oneOf?`any`:e.enum?`string`:Array.isArray(e.type)?e.type.find(e=>e!==`null`)??`string`:e.type??`string`:typeof e.const==`string`?`string`:typeof e.const}function s(e,t=!1,n={}){if(e.$ref)return{$schema:{type:`any`,tsType:e.$ref.split(`/`).pop()??`unknown`,...t?{tags:[`@required`]}:{}}};if(e.properties){let r=t?{$schema:{tags:[`@required`]}}:{};for(let[t,i]of Object.entries(e.properties))r[t]=s(i,e.required?.includes(t)??!1,n);return r}let r=o(e),i={};return e.defaultValue===void 0?e.default!==void 0&&(i.$default=e.default):i.$default=e.defaultValue,i.$schema={type:r,tsType:a(e,n),...r===`array`?{items:{type:o(e.items??{})}}:{},...t?{tags:[`@required`]}:{},...e.description?{description:e.description}:{},...e.env?{env:e.env}:{},...e.scope?{scope:e.scope}:{},...e.secret?{secret:!0}:{},...e.public?{public:!0}:{},...e.required===!0?{required:!0}:{},...e.defaultValue!==void 0&&e.default!==void 0?{envDefault:e.default}:{}},i}function c(e){let t=e.toJSONSchema();if(!t)return{};let n=t.$defs??{},r=t.$ref?.split(`/`).pop();return s(r&&n[r]?n[r]:t,!1,n)}function l(t){try{return e.compile(t)}catch{return t}}function u(e){return e!==null&&!Array.isArray(e)&&typeof e==`object`}function d(e){let t=typeof e;if(t!==`undefined`&&e!==null)return Array.isArray(e)?`array`:t}function f(e,t,n=`.`){return e?`${e}${n}${t}`:t}function p(e){return[...new Set(e.filter(e=>!!e))]}function m(e){if(e.type===`array`&&!(`items`in e)){let t=p((e.default??[]).map(e=>d(e)));e.items={type:t.length===0?`any`:t.length===1?t[0]:t}}if(e.default===void 0&&(`properties`in e||e.type===`object`||e.type===`any`)){let t=e.properties??{};e.default=Object.fromEntries(Object.entries(t).filter(([,e])=>`default`in e).map(([e,t])=>[e,t.default]))}}function h(e,t,n){if(n.cache.has(t))return n.cache.get(t);let r=`#${t.replace(/\./g,`/`)}`;if(!u(e)){let i=Array.isArray(e)?[...e]:e,a={type:d(e),id:r,default:i};return m(a),n.cache.set(t,a),a}let i={...e.$schema??{},id:r};n.cache.set(t,i);let a=Object.keys(e).filter(e=>e!==`$resolve`&&e!==`$schema`&&e!==`$default`);if(a.length>0){let r={};i.properties=r;for(let o of a)if(!r[o]){let a=r[o]=h(e[o],f(t,o),n);Array.isArray(a.tags)&&a.tags.includes(`@required`)&&(i.required=i.required||[],i.required.includes(o)||i.required.push(o))}}return i.default===void 0&&`$default`in e&&(i.default=e.$default),i.type||=d(i.default)||(i.properties?`object`:`any`),m(i),i}function g(e){return h(e,``,{root:e,cache:/* @__PURE__ */ new Map})}function _(e){return g(c(e))}function v(e,t=`base`){let n=e.properties??{},r=n[t];if(r&&r.type===`object`&&r.properties){let{[t]:i,...a}=n,o=(e.required??[]).filter(e=>e!==t);return{base:r,groups:{...e,properties:a,...o.length>0?{required:o}:{}},hasBase:!0}}return{base:e,groups:{...e,properties:{}},hasBase:!1}}function y(e,t=`base`){let n=e.properties??{},r=n[t];if(r?.type!==`object`)return e;let i=r.properties;if(!i)return e;let{[t]:a,...o}=n;return{...e,properties:{...i,...o},required:[...(e.required??[]).filter(e=>e!==t),...r.required??[]]}}export{l as compileZodSchema,n as envMetaOf,y as flattenBaseSchema,a as renderTsType,g as resolveUntypedSchema,v as splitBaseSchema,_ as zodToJsonSchema,c as zodToUntypedDefinition};
@@ -1,7 +1,7 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
3
  import { Replacements } from "../../shared/src/template.js";
4
- import { ProjectType } from "../../shared/src/config-schema.js";
4
+ import { ProjectType } from "../../shared/src/config-types.js";
5
5
  import { ToolingConfig } from "../../shared/src/toolchain.js";
6
6
  import "../../shared/src/index.js";
7
7
  //#region packages/core/src/loader.d.ts
@@ -1,6 +1,6 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- import { ProjectType } from "../../shared/src/config-schema.js";
3
+ import { ProjectType } from "../../shared/src/config-types.js";
4
4
  import { ToolingConfig } from "../../shared/src/toolchain.js";
5
5
  import "../../shared/src/index.js";
6
6
  //#region packages/core/src/project-type.d.ts
@@ -1,7 +1,7 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
3
  import { Replacements } from "../../shared/src/template.js";
4
- import { ProjectType } from "../../shared/src/config-schema.js";
4
+ import { ProjectType } from "../../shared/src/config-types.js";
5
5
  import { SyncTask, ToolingConfig } from "../../shared/src/toolchain.js";
6
6
  import "../../shared/src/index.js";
7
7
  //#region packages/core/src/sync.d.ts
@@ -1,6 +1,6 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- import { ProjectType } from "../../shared/src/config-schema.js";
3
+ import { ProjectType } from "../../shared/src/config-types.js";
4
4
  import { SyncTask, ToolingConfig } from "../../shared/src/toolchain.js";
5
5
  import "../../shared/src/index.js";
6
6
  //#region packages/core/src/vscode.d.ts
@@ -1,6 +1,6 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- import { ProjectType } from "../../shared/src/config-schema.js";
3
+ import { ProjectType } from "../../shared/src/config-types.js";
4
4
  import "../../shared/src/index.js";
5
5
  //#region packages/project/src/config.d.ts
6
6
  /** The file name a generated dbx config uses. */
@@ -1,6 +1,6 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- import { ProjectType } from "../../shared/src/config-schema.js";
3
+ import { ProjectType } from "../../shared/src/config-types.js";
4
4
  import { GeneratedFile } from "../../shared/src/types.js";
5
5
  import "../../shared/src/index.js";
6
6
  import { MonorepoWorkspace } from "../../tsconfig/src/templates.js";