@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.
- package/CHANGELOG.md +141 -8
- package/dist/biome.d.ts +2 -2
- package/dist/biome.js +1 -1
- package/dist/cli/commands/sync.js +1 -1
- package/dist/cli/commands/watch.js +1 -1
- package/dist/cli/index.js +1 -1
- package/dist/cli/register.js +1 -1
- package/dist/cli/tooling-commands.js +1 -0
- package/dist/config.d.ts +2 -1
- package/dist/config.js +1 -1
- package/dist/core.d.ts +4 -3
- package/dist/core.js +1 -1
- package/dist/index.d.ts +14 -10
- package/dist/index.js +1 -1
- package/dist/migrate.d.ts +3 -3
- package/dist/migrate.js +1 -1
- package/dist/package.js +1 -1
- package/dist/packages/biome/src/index.d.ts +142 -7
- package/dist/packages/biome/src/index.js +1 -1
- package/dist/packages/changelog/src/workflows.d.ts +19 -5
- package/dist/packages/changelog/src/workflows.js +5 -4
- package/dist/packages/config/src/generators/commands.d.ts +22 -0
- package/dist/packages/config/src/generators/commands.js +2 -0
- package/dist/packages/config/src/generators/index.d.ts +2 -1
- package/dist/packages/config/src/generators/index.js +1 -1
- package/dist/packages/config/src/generators/types.js +1 -1
- package/dist/packages/config/src/index.d.ts +3 -2
- package/dist/packages/config/src/index.js +1 -1
- package/dist/packages/config/src/schema.js +1 -1
- package/dist/packages/core/src/editor-config.js +1 -1
- package/dist/packages/core/src/fmt-groups.d.ts +32 -0
- package/dist/packages/core/src/fmt-groups.js +1 -0
- package/dist/packages/core/src/index.d.ts +5 -4
- package/dist/packages/core/src/index.js +1 -1
- package/dist/packages/core/src/loader.js +1 -1
- package/dist/packages/core/src/select.d.ts +3 -0
- package/dist/packages/core/src/select.js +1 -1
- package/dist/packages/core/src/sync.d.ts +6 -0
- package/dist/packages/core/src/sync.js +1 -1
- package/dist/packages/core/src/watch.d.ts +41 -0
- package/dist/packages/core/src/watch.js +1 -1
- package/dist/packages/migrate/src/cli/index.js +1 -1
- package/dist/packages/migrate/src/index.d.ts +3 -3
- package/dist/packages/migrate/src/index.js +1 -1
- package/dist/packages/migrate/src/oxc.js +1 -1
- package/dist/packages/migrate/src/oxlint-map.d.ts +34 -1
- package/dist/packages/migrate/src/oxlint-map.js +1 -1
- package/dist/packages/migrate/src/types.d.ts +3 -2
- package/dist/packages/migrate/src/vite-target.d.ts +7 -0
- package/dist/packages/migrate/src/vite-target.js +2 -2
- package/dist/packages/migrate/src/vite.d.ts +30 -1
- package/dist/packages/migrate/src/vite.js +10 -8
- package/dist/packages/project/src/cli/index.js +1 -1
- package/dist/packages/project/src/config.d.ts +20 -5
- package/dist/packages/project/src/config.js +1 -1
- package/dist/packages/project/src/index.d.ts +3 -3
- package/dist/packages/project/src/index.js +1 -1
- package/dist/packages/project/src/sync.js +1 -1
- package/dist/packages/project/src/typescript.d.ts +34 -0
- package/dist/packages/project/src/typescript.js +18 -10
- package/dist/packages/shared/src/config-schema/alias-rewrite.d.ts +32 -0
- package/dist/packages/shared/src/config-schema/biome.js +1 -1
- package/dist/packages/shared/src/config-schema/changelog.d.ts +623 -56
- package/dist/packages/shared/src/config-schema/ci.d.ts +1873 -163
- package/dist/packages/shared/src/config-schema/format.d.ts +4 -6
- package/dist/packages/shared/src/config-schema/format.js +1 -1
- package/dist/packages/shared/src/config-schema/generated/gitlab-ci.d.ts +1 -1
- package/dist/packages/shared/src/config-schema/generated/oxfmt-config.d.ts +1 -1
- package/dist/packages/shared/src/config-schema/index.d.ts +6057 -862
- package/dist/packages/shared/src/config-schema/index.js +1 -1
- package/dist/packages/shared/src/config-schema/json.d.ts +1 -1
- package/dist/packages/shared/src/config-schema/tsconfig.d.ts +21 -0
- package/dist/packages/shared/src/config-schema/tsconfig.js +1 -1
- package/dist/packages/shared/src/config-schema/vendor-types.d.ts +156 -0
- package/dist/packages/shared/src/config-schema/workflow.d.ts +3678 -297
- package/dist/packages/shared/src/config-schema/workflow.js +1 -1
- package/dist/packages/shared/src/config-types.d.ts +219 -37
- package/dist/packages/shared/src/ignore.d.ts +9 -1
- package/dist/packages/shared/src/ignore.js +1 -1
- package/dist/packages/shared/src/index.d.ts +11 -8
- package/dist/packages/shared/src/index.js +1 -1
- package/dist/packages/shared/src/string-utils.d.ts +9 -2
- package/dist/packages/shared/src/string-utils.js +2 -2
- package/dist/packages/shared/src/template.d.ts +1 -1
- package/dist/packages/shared/src/toolchain.d.ts +13 -4
- package/dist/packages/shared/src/toolchain.js +1 -1
- package/dist/packages/shared/src/tsconfig-files.d.ts +14 -0
- package/dist/packages/shared/src/tsconfig-files.js +1 -0
- package/dist/packages/shared/src/types.d.ts +4 -2
- package/dist/packages/shared/src/vite-defaults.d.ts +102 -10
- package/dist/packages/shared/src/vite-defaults.js +1 -1
- package/dist/packages/shared/src/yaml.d.ts +1 -1
- package/dist/packages/tsconfig/src/auto.d.ts +11 -0
- package/dist/packages/tsconfig/src/auto.js +1 -0
- package/dist/packages/tsconfig/src/cli/generate/index.d.ts +58 -0
- package/dist/packages/tsconfig/src/cli/generate/index.js +1 -1
- package/dist/packages/tsconfig/src/cli/generate/utils.d.ts +12 -0
- package/dist/packages/tsconfig/src/cli/generate/utils.js +1 -1
- package/dist/packages/tsconfig/src/cli/index.js +1 -1
- package/dist/packages/tsconfig/src/files.d.ts +5 -0
- package/dist/packages/tsconfig/src/files.js +1 -0
- package/dist/packages/tsconfig/src/index.d.ts +6 -5
- package/dist/packages/tsconfig/src/index.js +1 -1
- package/dist/packages/tsconfig/src/overrides.d.ts +3 -3
- package/dist/packages/tsconfig/src/resolve.d.ts +15 -3
- package/dist/packages/tsconfig/src/resolve.js +1 -1
- package/dist/packages/tsconfig/src/sync.d.ts +5 -11
- package/dist/packages/tsconfig/src/sync.js +1 -1
- package/dist/packages/tsconfig/src/templates.d.ts +38 -4
- package/dist/packages/tsconfig/src/workspaces.d.ts +36 -0
- package/dist/packages/tsconfig/src/workspaces.js +1 -0
- package/dist/packages/tsdown/src/config/node.js +1 -1
- package/dist/packages/vite/src/commands.js +1 -1
- package/dist/packages/vite/src/index.d.ts +3 -1
- package/dist/packages/vite/src/index.js +1 -1
- package/dist/packages/vite/src/resolve.js +1 -1
- package/dist/packages/vite/src/sync.js +3 -3
- package/dist/project.d.ts +2 -2
- package/dist/project.js +1 -1
- package/dist/shared.d.ts +10 -7
- package/dist/shared.js +1 -1
- package/dist/sync.d.ts +2 -0
- package/dist/sync.js +1 -1
- package/dist/tooling.d.ts +18 -1
- package/dist/tooling.js +1 -1
- package/dist/tsconfig.d.ts +5 -4
- package/dist/tsconfig.js +1 -1
- package/dist/vite.d.ts +2 -1
- package/dist/vite.js +1 -1
- package/package.json +15 -14
package/dist/migrate.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ import { DEFAULT_IGNORE, OxfmtMapping, mapBiomeFormatter, mapBiomeIncludes, mapB
|
|
|
11
11
|
import { OxlintMapping, RULE_MAP, mapBiomeToOxlint } from "./packages/migrate/src/oxlint-map.js";
|
|
12
12
|
import { findPrettierConfig, hasPrettierConfig, mapPrettierToOxfmt, prettierToOx, readPrettierIgnore } from "./packages/migrate/src/prettier.js";
|
|
13
13
|
import { MigrationInfo, detectMigrations, findMigration, listMigrations, migrations, runDetectedMigrations, runMigration } from "./packages/migrate/src/registry.js";
|
|
14
|
-
import { VITE_CONFIG_FILES, ensureViteFmtIgnore, extractViteObject, findDbxConfig, findViteConfig, foldToolchainSection, foldViteIntoConfig, mergeViteObjects, renderFreshSectionsConfig, scanLiteralObject, viteToToolchain } from "./packages/migrate/src/vite.js";
|
|
15
|
-
import { findTopLevelValue, matchBracket, mergeViteConfig, renderViteTarget, serializeTs, writeViteTarget } from "./packages/migrate/src/vite-target.js";
|
|
14
|
+
import { VITE_CONFIG_FILES, ensureViteFmtIgnore, extractViteObject, findDbxConfig, findViteConfig, foldToolchainSection, foldViteIntoConfig, mergeViteObjects, objectHasSections, renderFreshSectionsConfig, renderFreshViteConfig, scanLiteralObject, viteConfigHasFmtLint, viteToToolchain } from "./packages/migrate/src/vite.js";
|
|
15
|
+
import { findTopLevelValue, findViteMergeObject, matchBracket, mergeViteConfig, renderViteTarget, serializeTs, writeViteTarget } from "./packages/migrate/src/vite-target.js";
|
|
16
16
|
import "./packages/migrate/src/index.js";
|
|
17
|
-
export { BIOME_CONFIG_FILES, DEFAULT_IGNORE, FileDiff, FileStatus, MigrateTarget, MigrateTool, MigrationContext, MigrationFile, MigrationInfo, MigrationResult, OXC_FMT_FILE, OXC_LINT_FILE, OxfmtMapping, OxlintMapping, RULE_MAP, ToolchainMigration, UnmappedItem, VITE_CONFIG_FILES, biomeToOx, detectMigrations, diffFiles, dprintToOx, ensureViteFmtIgnore, eslintToOx, extractViteObject, findBiomeConfig, findDbxConfig, findDprintConfig, findEslintConfig, findMigration, findOxcConfigs, findPrettierConfig, findTopLevelValue, findViteConfig, foldToolchainSection, foldViteIntoConfig, hasPending, hasPrettierConfig, listMigrations, mapBiomeFormatter, mapBiomeIncludes, mapBiomeToOxfmt, mapBiomeToOxlint, mapDprintToOxfmt, mapOrganizeImports, mapPrettierToOxfmt, mapRuleName, matchBracket, mergeViteConfig, mergeViteObjects, migrateCommands, migrations, oxcToToolchain, prettierToOx, readJsonc, readPrettierIgnore, renderFreshSectionsConfig, renderViteTarget, runDetectedMigrations, runMigration, runOxlintMigrate, scanLiteralObject, serializeTs, stripJsonc, viteToToolchain, writeViteTarget };
|
|
17
|
+
export { BIOME_CONFIG_FILES, DEFAULT_IGNORE, FileDiff, FileStatus, MigrateTarget, MigrateTool, MigrationContext, MigrationFile, MigrationInfo, MigrationResult, OXC_FMT_FILE, OXC_LINT_FILE, OxfmtMapping, OxlintMapping, RULE_MAP, ToolchainMigration, UnmappedItem, VITE_CONFIG_FILES, biomeToOx, detectMigrations, diffFiles, dprintToOx, ensureViteFmtIgnore, eslintToOx, extractViteObject, findBiomeConfig, findDbxConfig, findDprintConfig, findEslintConfig, findMigration, findOxcConfigs, findPrettierConfig, findTopLevelValue, findViteConfig, findViteMergeObject, foldToolchainSection, foldViteIntoConfig, hasPending, hasPrettierConfig, listMigrations, mapBiomeFormatter, mapBiomeIncludes, mapBiomeToOxfmt, mapBiomeToOxlint, mapDprintToOxfmt, mapOrganizeImports, mapPrettierToOxfmt, mapRuleName, matchBracket, mergeViteConfig, mergeViteObjects, migrateCommands, migrations, objectHasSections, oxcToToolchain, prettierToOx, readJsonc, readPrettierIgnore, renderFreshSectionsConfig, renderFreshViteConfig, renderViteTarget, runDetectedMigrations, runMigration, runOxlintMigrate, scanLiteralObject, serializeTs, stripJsonc, viteConfigHasFmtLint, viteToToolchain, writeViteTarget };
|
package/dist/migrate.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"node:path";import"node:url";import.meta.url;import{DEFAULT_IGNORE as e,mapBiomeFormatter as t,mapBiomeIncludes as n,mapBiomeToOxfmt as r,mapOrganizeImports as i}from"./packages/migrate/src/oxfmt-map.js";import{RULE_MAP as a,mapBiomeToOxlint as o}from"./packages/migrate/src/oxlint-map.js";import{findTopLevelValue as s,
|
|
1
|
+
import"node:path";import"node:url";import.meta.url;import{DEFAULT_IGNORE as e,mapBiomeFormatter as t,mapBiomeIncludes as n,mapBiomeToOxfmt as r,mapOrganizeImports as i}from"./packages/migrate/src/oxfmt-map.js";import{RULE_MAP as a,mapBiomeToOxlint as o}from"./packages/migrate/src/oxlint-map.js";import{findTopLevelValue as s,findViteMergeObject as c,matchBracket as l,mergeViteConfig as u,renderViteTarget as d,serializeTs as f,writeViteTarget as p}from"./packages/migrate/src/vite-target.js";import{BIOME_CONFIG_FILES as m,biomeToOx as h,findBiomeConfig as g,readJsonc as _,stripJsonc as v}from"./packages/migrate/src/biome.js";import{diffFiles as y,hasPending as b}from"./packages/migrate/src/check.js";import{dprintToOx as x,findDprintConfig as S,mapDprintToOxfmt as C}from"./packages/migrate/src/dprint.js";import{eslintToOx as w,findEslintConfig as T,mapRuleName as E,runOxlintMigrate as D}from"./packages/migrate/src/eslint.js";import{VITE_CONFIG_FILES as O,ensureViteFmtIgnore as k,extractViteObject as A,findDbxConfig as j,findViteConfig as M,foldToolchainSection as N,foldViteIntoConfig as P,mergeViteObjects as F,objectHasSections as I,renderFreshSectionsConfig as L,renderFreshViteConfig as R,scanLiteralObject as z,viteConfigHasFmtLint as B,viteToToolchain as V}from"./packages/migrate/src/vite.js";import{OXC_FMT_FILE as H,OXC_LINT_FILE as U,findOxcConfigs as W,oxcToToolchain as G}from"./packages/migrate/src/oxc.js";import{findPrettierConfig as K,hasPrettierConfig as q,mapPrettierToOxfmt as J,prettierToOx as Y,readPrettierIgnore as X}from"./packages/migrate/src/prettier.js";import{detectMigrations as Z,findMigration as Q,listMigrations as $,migrations as ee,runDetectedMigrations as te,runMigration as ne}from"./packages/migrate/src/registry.js";import{migrateCommands as re}from"./packages/migrate/src/cli/index.js";import"./packages/migrate/src/index.js";export{m as BIOME_CONFIG_FILES,e as DEFAULT_IGNORE,H as OXC_FMT_FILE,U as OXC_LINT_FILE,a as RULE_MAP,O as VITE_CONFIG_FILES,h as biomeToOx,Z as detectMigrations,y as diffFiles,x as dprintToOx,k as ensureViteFmtIgnore,w as eslintToOx,A as extractViteObject,g as findBiomeConfig,j as findDbxConfig,S as findDprintConfig,T as findEslintConfig,Q as findMigration,W as findOxcConfigs,K as findPrettierConfig,s as findTopLevelValue,M as findViteConfig,c as findViteMergeObject,N as foldToolchainSection,P as foldViteIntoConfig,b as hasPending,q as hasPrettierConfig,$ as listMigrations,t as mapBiomeFormatter,n as mapBiomeIncludes,r as mapBiomeToOxfmt,o as mapBiomeToOxlint,C as mapDprintToOxfmt,i as mapOrganizeImports,J as mapPrettierToOxfmt,E as mapRuleName,l as matchBracket,u as mergeViteConfig,F as mergeViteObjects,re as migrateCommands,ee as migrations,I as objectHasSections,G as oxcToToolchain,Y as prettierToOx,_ as readJsonc,X as readPrettierIgnore,L as renderFreshSectionsConfig,R as renderFreshViteConfig,d as renderViteTarget,te as runDetectedMigrations,ne as runMigration,D as runOxlintMigrate,z as scanLiteralObject,f as serializeTs,v as stripJsonc,B as viteConfigHasFmtLint,V as viteToToolchain,p as writeViteTarget};
|
package/dist/package.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import"node:path";import"node:url";import.meta.url;var e=`2.
|
|
1
|
+
import"node:path";import"node:url";import.meta.url;var e=`2.6.0`;export{e as version};
|
|
@@ -4,25 +4,160 @@ import { Replacements } from "../../shared/src/template.js";
|
|
|
4
4
|
import { SyncTask } from "../../shared/src/toolchain.js";
|
|
5
5
|
import "../../shared/src/index.js";
|
|
6
6
|
declare namespace index_d_exports {
|
|
7
|
-
export { biomeConfig, biomeSyncTask, biomeVscodeSettings, mergeBiomeConfig, renderBiomeConfig, renderBiomeJson, renderVscodeSettings };
|
|
7
|
+
export { BIOME_REMOVE_PREFIX, BIOME_RESET, biomeConfig, biomeSyncTask, biomeVscodeSettings, mergeBiomeConfig, removeBiomeEntry, renderBiomeConfig, renderBiomeJson, renderVscodeSettings, resolveBiomeArray };
|
|
8
8
|
}
|
|
9
9
|
/** The generic Biome configuration (with `{{name}}` / `{{scope}}` tokens). */
|
|
10
|
-
export declare const biomeConfig:
|
|
10
|
+
export declare const biomeConfig: {
|
|
11
|
+
$schema: string;
|
|
12
|
+
vcs: {
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
clientKind: string;
|
|
15
|
+
useIgnoreFile: boolean;
|
|
16
|
+
};
|
|
17
|
+
files: {
|
|
18
|
+
includes: string[];
|
|
19
|
+
};
|
|
20
|
+
formatter: {
|
|
21
|
+
enabled: boolean;
|
|
22
|
+
formatWithErrors: boolean;
|
|
23
|
+
indentStyle: string;
|
|
24
|
+
indentWidth: number;
|
|
25
|
+
lineEnding: string;
|
|
26
|
+
lineWidth: number;
|
|
27
|
+
attributePosition: string;
|
|
28
|
+
bracketSameLine: boolean;
|
|
29
|
+
bracketSpacing: boolean;
|
|
30
|
+
expand: string;
|
|
31
|
+
useEditorconfig: boolean;
|
|
32
|
+
includes: string[];
|
|
33
|
+
};
|
|
34
|
+
linter: {
|
|
35
|
+
enabled: boolean;
|
|
36
|
+
rules: {
|
|
37
|
+
a11y: {
|
|
38
|
+
useAltText: string;
|
|
39
|
+
useAriaPropsForRole: string;
|
|
40
|
+
useButtonType: string;
|
|
41
|
+
useFocusableInteractive: string;
|
|
42
|
+
useKeyWithClickEvents: string;
|
|
43
|
+
useSemanticElements: string;
|
|
44
|
+
noStaticElementInteractions: string;
|
|
45
|
+
noSvgWithoutTitle: string;
|
|
46
|
+
noLabelWithoutControl: string;
|
|
47
|
+
};
|
|
48
|
+
complexity: {
|
|
49
|
+
noBannedTypes: string;
|
|
50
|
+
noImportantStyles: string;
|
|
51
|
+
noUselessEscapeInRegex: string;
|
|
52
|
+
noUselessEmptyExport: string;
|
|
53
|
+
noStaticOnlyClass: string;
|
|
54
|
+
};
|
|
55
|
+
correctness: {
|
|
56
|
+
noConstantCondition: string;
|
|
57
|
+
noInnerDeclarations: string;
|
|
58
|
+
noUnusedFunctionParameters: string;
|
|
59
|
+
noUnusedImports: string;
|
|
60
|
+
noUnusedVariables: string;
|
|
61
|
+
noSwitchDeclarations: string;
|
|
62
|
+
useExhaustiveDependencies: string;
|
|
63
|
+
};
|
|
64
|
+
performance: {
|
|
65
|
+
noAccumulatingSpread: string;
|
|
66
|
+
};
|
|
67
|
+
style: {
|
|
68
|
+
useExponentiationOperator: string;
|
|
69
|
+
noNonNullAssertion: string;
|
|
70
|
+
useNodejsImportProtocol: string;
|
|
71
|
+
useTemplate: string;
|
|
72
|
+
};
|
|
73
|
+
suspicious: {
|
|
74
|
+
noAssignInExpressions: string;
|
|
75
|
+
noDoubleEquals: string;
|
|
76
|
+
noExplicitAny: string;
|
|
77
|
+
noImplicitAnyLet: string;
|
|
78
|
+
noUnknownAtRules: {
|
|
79
|
+
level: string;
|
|
80
|
+
options: {
|
|
81
|
+
ignore: string[];
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
noUselessEscapeInString: string;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
javascript: {
|
|
89
|
+
formatter: {
|
|
90
|
+
jsxQuoteStyle: string;
|
|
91
|
+
quoteProperties: string;
|
|
92
|
+
trailingCommas: string;
|
|
93
|
+
semicolons: string;
|
|
94
|
+
arrowParentheses: string;
|
|
95
|
+
bracketSameLine: boolean;
|
|
96
|
+
quoteStyle: string;
|
|
97
|
+
attributePosition: string;
|
|
98
|
+
bracketSpacing: boolean;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
css: {
|
|
102
|
+
parser: {
|
|
103
|
+
tailwindDirectives: boolean;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
html: {
|
|
107
|
+
formatter: {
|
|
108
|
+
indentScriptAndStyle: boolean;
|
|
109
|
+
selfCloseVoidElements: string;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
assist: {
|
|
113
|
+
enabled: boolean;
|
|
114
|
+
actions: {
|
|
115
|
+
source: {
|
|
116
|
+
organizeImports: {
|
|
117
|
+
level: string;
|
|
118
|
+
options: {
|
|
119
|
+
groups: (string | string[])[];
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
};
|
|
11
126
|
/** The recommended Biome VS Code settings. */
|
|
12
|
-
export declare const biomeVscodeSettings:
|
|
127
|
+
export declare const biomeVscodeSettings: {
|
|
128
|
+
"biome.lsp.watcher.kind": string;
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* Array directive that removes an entry from the base array during the merge.
|
|
132
|
+
* The value after the prefix is JSON (or a raw string when it is not valid
|
|
133
|
+
* JSON), so nested groups can be targeted with `$remove:["a","b"]`.
|
|
134
|
+
*/
|
|
135
|
+
export declare const BIOME_REMOVE_PREFIX = "$remove:";
|
|
136
|
+
/** Array directive that drops the base array before the patch entries are added. */
|
|
137
|
+
export declare const BIOME_RESET = "$reset";
|
|
138
|
+
/** Build the directive that removes `entry` from the default array. */
|
|
139
|
+
export declare function removeBiomeEntry(entry: unknown): string;
|
|
140
|
+
/**
|
|
141
|
+
* Resolve the array directives in `patch` against `base`: `$remove:` entries
|
|
142
|
+
* prune matching base entries, `$reset` drops the base array, and the remaining
|
|
143
|
+
* entries are unioned on top. Directives never appear in the result.
|
|
144
|
+
*/
|
|
145
|
+
export declare function resolveBiomeArray(base: readonly unknown[], patch: readonly unknown[]): unknown[];
|
|
13
146
|
/**
|
|
14
147
|
* Merge an override over a base config: object keys merge recursively and
|
|
15
|
-
* arrays are unioned
|
|
148
|
+
* arrays are unioned, with `$remove:` / `$reset` directives resolved first so
|
|
149
|
+
* defaults can be pruned or replaced (see {@link resolveBiomeArray}).
|
|
16
150
|
*/
|
|
17
151
|
export declare function mergeBiomeConfig(base: unknown, patch: unknown): unknown;
|
|
18
152
|
/**
|
|
19
153
|
* Render the Biome config for a project by resolving its replacement tokens
|
|
20
154
|
* (`{{name}}` = unscoped project name, `{{scope}}` = npm scope, eg. `@acme`)
|
|
21
|
-
* and merging the consumer's `overrides` over the defaults.
|
|
155
|
+
* and merging the consumer's `overrides` over the defaults. Pass several
|
|
156
|
+
* patches to apply them in order (later patches see earlier results).
|
|
22
157
|
*/
|
|
23
|
-
export declare function renderBiomeConfig(replacements?: Replacements, overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
158
|
+
export declare function renderBiomeConfig(replacements?: Replacements, overrides?: Record<string, unknown> | Record<string, unknown>[]): Record<string, unknown>;
|
|
24
159
|
/** Serialize the rendered Biome config to JSON text. */
|
|
25
|
-
export declare function renderBiomeJson(replacements?: Replacements, overrides?: Record<string, unknown
|
|
160
|
+
export declare function renderBiomeJson(replacements?: Replacements, overrides?: Record<string, unknown> | Record<string, unknown>[], indent?: number): string;
|
|
26
161
|
/** Serialize the recommended VS Code settings to JSON text. */
|
|
27
162
|
export declare function renderVscodeSettings(indent?: number): string;
|
|
28
163
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"node:path";import"node:url";import.meta.url;import{__exportAll as e}from"../../../_virtual/_rolldown/runtime.js";import{isPlainObject as t}from"../../shared/src/object-utils.js";import{applyReplacementsDeep as n}from"../../shared/src/template.js";import{sectionConfig as r,sectionEnabled as i}from"../../shared/src/toolchain.js";import"../../shared/src/index.js";import a from"./config.js";import o from"./vscode-settings.js";var s=/* @__PURE__ */ e({biomeConfig:()=>c,biomeSyncTask:()=>
|
|
1
|
+
import"node:path";import"node:url";import.meta.url;import{__exportAll as e}from"../../../_virtual/_rolldown/runtime.js";import{isPlainObject as t}from"../../shared/src/object-utils.js";import{applyReplacementsDeep as n}from"../../shared/src/template.js";import{sectionConfig as r,sectionEnabled as i}from"../../shared/src/toolchain.js";import"../../shared/src/index.js";import a from"./config.js";import o from"./vscode-settings.js";var s=/* @__PURE__ */ e({BIOME_REMOVE_PREFIX:()=>u,BIOME_RESET:()=>d,biomeConfig:()=>c,biomeSyncTask:()=>S,biomeVscodeSettings:()=>l,mergeBiomeConfig:()=>g,removeBiomeEntry:()=>f,renderBiomeConfig:()=>v,renderBiomeJson:()=>y,renderVscodeSettings:()=>b,resolveBiomeArray:()=>h});const c=a,l=o,u=`$remove:`,d=`$reset`;function f(e){return`${u}${JSON.stringify(e)}`}function p(e){try{return JSON.parse(e)}catch{return e}}function m(e,n){if(Object.is(e,n))return!0;if(Array.isArray(e)&&Array.isArray(n))return e.length===n.length&&e.every((e,t)=>m(e,n[t]));if(t(e)&&t(n)){let t=Object.keys(e),r=Object.keys(n);return t.length===r.length&&t.every(t=>t in n&&m(e[t],n[t]))}return!1}function h(e,t){let n=[],r=[],i=!1;for(let e of t)e===`$reset`?i=!0:typeof e==`string`&&e.startsWith(`$remove:`)?n.push(p(e.slice(8))):r.push(e);let a=(i?[]:e).filter(e=>!n.some(t=>m(e,t)));return[.../* @__PURE__ */ new Set([...a,...r])]}function g(e,n){if(Array.isArray(n))return h(Array.isArray(e)?e:[],n);if(t(n)){let r=t(e)?{...e}:{};for(let[e,t]of Object.entries(n))r[e]=g(r[e],t);return r}return n}function _(e,n){return n.scope?e:Array.isArray(e)?e.filter(e=>e!==`{{scope}}`&&e!==`{{scope}}/**`&&e!==`!{{scope}}/**`).map(e=>_(e,n)):t(e)?Object.fromEntries(Object.entries(e).map(([e,t])=>[e,_(t,n)])):e}function v(e={},t={}){let r=n(_(c,e),e),i=Array.isArray(t)?t:[t];for(let t of i){let i=n(_(t,e),e);r=g(r,i)}return r}function y(e={},t={},n=4){return`${JSON.stringify(v(e,t),null,n)}\n`}function b(e=4){return`${JSON.stringify(l,null,e)}\n`}function x(e){let n=[],a=i(e.biome)?r(e.biome):void 0,o=i(e.fmt)?r(e.fmt)?.biome:void 0,s=i(e.lint)?r(e.lint)?.biome:void 0;return t(a?.overrides)&&n.push(a.overrides),t(o)&&n.push(o),t(s)&&n.push(s),n}function S(){return{name:`biome`,projectTypes:[`monorepo-root`,`monorepo-workspace`,`project`],enabled:e=>{let t=i(e.fmt)?r(e.fmt):void 0,n=i(e.lint)?r(e.lint):void 0;return i(e.biome)||t?.biome!==void 0&&t.biome!==!1||n?.biome!==void 0&&n.biome!==!1},run:e=>{let t=i(e.config.fmt)?r(e.config.fmt):void 0,n=i(e.config.lint)?r(e.config.lint):void 0;return!i(e.config.biome)&&(t?.biome===void 0||t.biome===!1)&&(n?.biome===void 0||n.biome===!1)?[]:[{path:`biome.json`,content:y(e.tokens,x(e.config))}]}}}export{u as BIOME_REMOVE_PREFIX,d as BIOME_RESET,c as biomeConfig,S as biomeSyncTask,l as biomeVscodeSettings,g as mergeBiomeConfig,f as removeBiomeEntry,v as renderBiomeConfig,y as renderBiomeJson,b as renderVscodeSettings,h as resolveBiomeArray,s as src_exports};
|
|
@@ -24,14 +24,28 @@ export interface Workflow {
|
|
|
24
24
|
concurrency?: unknown;
|
|
25
25
|
env?: Record<string, string>;
|
|
26
26
|
jobs: Record<string, WorkflowJob>;
|
|
27
|
-
[key: string]: unknown;
|
|
27
|
+
[key: string & {}]: unknown;
|
|
28
28
|
}
|
|
29
29
|
/** The default replacement values for the workflow templates. */
|
|
30
|
-
export declare const DEFAULT_WORKFLOW_TOKENS:
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
export declare const DEFAULT_WORKFLOW_TOKENS: {
|
|
31
|
+
readonly nodeVersion: '22';
|
|
32
|
+
readonly yarnVersion: '4.17.1';
|
|
33
|
+
readonly packageManager: 'yarn';
|
|
34
|
+
readonly mainBranch: 'main';
|
|
35
|
+
readonly devBranch: 'main';
|
|
36
|
+
readonly tooling: 'dbx';
|
|
37
|
+
readonly commitlintConfig: 'commitlint.config.mjs';
|
|
38
|
+
};
|
|
33
39
|
/** Default file name per workflow id. */
|
|
34
|
-
export declare const WORKFLOW_FILENAMES:
|
|
40
|
+
export declare const WORKFLOW_FILENAMES: {
|
|
41
|
+
readonly ci: 'ci.yml';
|
|
42
|
+
readonly changelog: 'changelog.yml';
|
|
43
|
+
readonly release: 'release.yml';
|
|
44
|
+
readonly sync: 'sync.yml';
|
|
45
|
+
readonly issues: 'issues.yml';
|
|
46
|
+
};
|
|
47
|
+
/** The workflow ids the builder knows about. */
|
|
48
|
+
export type WorkflowId = keyof typeof WORKFLOW_FILENAMES;
|
|
35
49
|
/** The default directory for generated workflows. */
|
|
36
50
|
export declare const DEFAULT_WORKFLOW_DIR = ".github/workflows";
|
|
37
51
|
/** A complete vendor workflow (GitHub, GitLab or Azure), written as-is. */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import"node:path";import"node:url";import.meta.url;import{
|
|
1
|
+
import"node:path";import"node:url";import.meta.url;import{isPlainObject as e}from"../../shared/src/object-utils.js";import{applyReplacementsDeep as t}from"../../shared/src/template.js";import{isVendorWorkflowConfig as n}from"../../shared/src/config-schema/workflow.js";import{defaultPackageManagerVersion as r}from"../../shared/src/toolchain.js";import{toYaml as i}from"../../shared/src/yaml.js";import"../../shared/src/index.js";const a={nodeVersion:`22`,yarnVersion:`4.17.1`,packageManager:`yarn`,mainBranch:`main`,devBranch:`main`,tooling:`dbx`,commitlintConfig:`commitlint.config.mjs`},o={ci:`ci.yml`,changelog:`changelog.yml`,release:`release.yml`,sync:`sync.yml`,issues:`issues.yml`},s=`.github/workflows`,c=n;function l(e,t=s){let n=(e??t).replace(/\\/g,`/`).replace(/^\.?\//,``).replace(/\/+$/,``);if(/^[a-zA-Z]:/.test(n)||n.split(`/`).includes(`..`))throw Error(`invalid workflow directory "${e}" (must stay inside the project).`);return n}function u(e,t){let n=(e??t).trim();if(!n||/[\\/]/.test(n)||n===`.`||n===`..`)throw Error(`invalid workflow filename "${e}" (expected a file name).`);return n}function d(e,t,n){switch(e){case`gitlab`:return{dir:``,filename:`.gitlab-ci.yml`};case`azure`:return{dir:``,filename:`azure-pipelines.yml`};default:return{dir:s,filename:n??`${t}.yml`}}}function f(e,t,n=`${e}.yml`){let r=t&&typeof t==`object`?t:void 0,i=d(c(r)?r.provider:`github`,e,n),a=l(r?.dir,i.dir),o=u(r?.filename,i.filename);return a?`${a}/${o}`:o}function p(e){return e===void 0?!1:typeof e==`boolean`?e:typeof e==`string`?e.trim().length>0:e.enabled!==!1}function m(e){let t=String(e.packageManager??`yarn`);return String(e.packageManagerVersion??e.yarnVersion??r(t)??`4.17.1`)}function h(e){let t=e.config?.tokens??{},n={...a,...e.tokens,...t},r=t.packageManager;return r!==void 0&&r!==e.tokens.packageManager&&t.packageManagerVersion===void 0&&t.yarnVersion===void 0&&(delete n.packageManagerVersion,delete n.yarnVersion),t.packageManagerVersion===void 0&&t.yarnVersion!==void 0&&(n.packageManagerVersion=t.yarnVersion),n}function g(e,t){let n=t??String(e.tooling??`dbx`);switch(String(e.packageManager??`yarn`)){case`pnpm`:return`pnpm exec ${n}`;case`npm`:return`npx ${n}`;case`bun`:return`bunx ${n}`;default:return`${e.packageManager??`yarn`} ${n}`}}function _(e){let t=String(e.packageManager??`yarn`),n=m(e),r=[{name:`Checkout`,uses:`actions/checkout@v5`,with:{"fetch-depth":0,token:"${{ secrets.GITHUB_TOKEN }}"}},{name:`Setup Node`,uses:`actions/setup-node@v5`,with:{"node-version":String(e.nodeVersion),"package-manager-cache":!1}}];return t===`bun`?[...r,{name:`Setup Bun`,uses:`oven-sh/setup-bun@v2`,with:{"bun-version":n}},{name:`Install dependencies`,run:`bun install --frozen-lockfile`}]:t===`npm`?[...r,{name:`Install dependencies`,run:`npm install -g npm@${n}\nnpm ci`}]:[...r,{name:`Enable Corepack`,run:`corepack enable\ncorepack prepare ${t}@${n} --activate`},{name:`Install dependencies`,run:t===`pnpm`?`pnpm install --frozen-lockfile`:`yarn install --immutable`}]}function v(t,n){return e(t)&&typeof t.uses==`string`&&t.uses.startsWith(n)}function y(t,n){return e(t)&&typeof t.run==`string`&&n.test(t.run)}function b(e,t){let n=e.some(e=>v(e,`actions/checkout`)),r=e.some(e=>v(e,`actions/setup-node`)),i=e.some(e=>v(e,`oven-sh/setup-bun`)),a=e.some(e=>v(e,`pnpm/action-setup`)),o=e.some(e=>y(e,/\b(?:corepack|npm\s+(?:ci|install)|yarn\s+install|pnpm\s+install|bun\s+install)\b/));return _(t).filter(e=>v(e,`actions/checkout`)?!n:v(e,`actions/setup-node`)?!r:v(e,`oven-sh/setup-bun`)?!i:e.name===`Enable Corepack`?!o&&!a:e.name!==`Install dependencies`||!o)}function x(t,n){let r=t.jobs;if(e(r))for(let t of Object.values(r)){if(!e(t)||!Array.isArray(t.steps))continue;let r=b(t.steps,n);r.length>0&&(t.steps=[...r,...t.steps])}}function S(e){let t=String(e.packageManager??`yarn`),n=m(e);return t===`bun`?[`npm install -g bun@${n}`,`bun install --frozen-lockfile`]:t===`npm`?[`npm install -g npm@${n}`,`npm ci`]:[`corepack enable`,`corepack prepare ${t}@${n} --activate`,t===`pnpm`?`pnpm install --frozen-lockfile`:`yarn install --immutable`]}function C(t,n){let r=e(t.default)?t.default:void 0;Array.isArray(t.before_script)||r!==void 0&&Array.isArray(r.before_script)||(t.before_script=S(n)),t.image===void 0&&r?.image===void 0&&(t.image=`node:${String(n.nodeVersion)}`)}function w(e){return[{task:`UseNode@1`,inputs:{version:String(e.nodeVersion)}},{script:S(e).join(`
|
|
2
|
+
`)}]}function T(t,n){let r=w(n),i=t.jobs;if(e(i))for(let t of Object.values(i))e(t)&&Array.isArray(t.steps)&&(t.steps=[...r,...t.steps]);else Array.isArray(t.steps)&&(t.steps=[...r,...t.steps])}function E(e,t,n){e===`github`?x(t,n):e===`gitlab`?C(t,n):T(t,n)}function D(e,t={}){let n=g(e),r=String(e.mainBranch),i=String(e.devBranch),a=t.commitlint!==!1;return{ci:{name:`CI`,on:{push:{branches:[r]},pull_request:{branches:[`release/**`,`feat/**`,`feature/**`,`fix/**`,`chore/**`]}},jobs:{ci:{"runs-on":`ubuntu-latest`,steps:[..._(e),...a?[{name:`Commitlint (Conventional Commits)`,if:"${{ github.event_name == 'pull_request' || github.event.before != '0000000000000000000000000000000000000000' }}",run:`set -euo pipefail\nbase="\${{ github.event.pull_request.base.sha || github.event.before }}"\nhead="\${{ github.event.pull_request.head.sha || github.event.after }}"\n${g(e,`commitlint`)} --from "$base" --to "$head" --config "${e.commitlintConfig}"`}]:[],{name:`Verify generated files are in sync`,run:`${n} sync --check --recursive`},{name:`Build`,run:`${e.packageManager} build`}]}}},changelog:{name:`Changelog (dev)`,on:{push:{branches:[i]}},permissions:{contents:`write`},concurrency:{group:`changelog-dev`,"cancel-in-progress":!1},jobs:{"generate-changelog":{"runs-on":`ubuntu-latest`,if:`!startsWith(github.event.head_commit.message, 'chore: version packages ') && !startsWith(github.event.head_commit.message, 'release: ')`,env:{GITHUB_TOKEN:"${{ secrets.GITHUB_TOKEN }}"},steps:[..._(e),{name:`Generate changelog + bump versions`,env:{GITHUB_TOKEN:"${{ secrets.GITHUB_TOKEN }}"},run:[`set -euo pipefail`,'after="${{ github.event.after }}"; [ -n "$after" ] || after="HEAD"',`boundary="$(git log --format=%H --grep='^chore: version packages ' -1 || true)"`,`if [ -n "$boundary" ]; then range="$boundary..$after"; else range="$after"; fi`,`${n} changelog --range "$range"`].join(`
|
|
2
3
|
`)},{name:`Commit + push changelog updates`,env:{GITHUB_TOKEN:"${{ secrets.GITHUB_TOKEN }}"},run:[`set -euo pipefail`,`git diff --quiet && { echo "No changelog changes."; exit 0; }`,`git config user.name "github-actions[bot]"`,`git config user.email "41898282+github-actions[bot]@users.noreply.github.com"`,`git add -- "*package.json" "*CHANGELOG.md"`,`git commit -m "chore: version packages ($(node -p "require('./package.json').version"))"`,`git push origin ${i}`].join(`
|
|
3
|
-
`)}]}}},release:{name:`Release`,on:{push:{branches:[r]},workflow_dispatch:null},permissions:{contents:`write`,"pull-requests":`write`},concurrency:{group:`release`,"cancel-in-progress":!1},jobs:{"create-release-pr":{"runs-on":`ubuntu-latest`,if:`(github.event_name == 'push' || github.event_name == 'workflow_dispatch') && !startsWith(github.event.head_commit.message, 'chore: version packages ') && !startsWith(github.event.head_commit.message, 'release: ')`,env:{GITHUB_TOKEN:"${{ secrets.GITHUB_TOKEN }}"},steps:[...
|
|
4
|
-
`)}]}}},sync:{name:`Toolchain sync`,on:{push:{branches:[.../* @__PURE__ */ new Set([r,i])]},pull_request:null},jobs:{sync:{"runs-on":`ubuntu-latest`,steps:[...
|
|
5
|
-
`)}]}}}}}function
|
|
4
|
+
`)}]}}},release:{name:`Release`,on:{push:{branches:[r]},workflow_dispatch:null},permissions:{contents:`write`,"pull-requests":`write`},concurrency:{group:`release`,"cancel-in-progress":!1},jobs:{"create-release-pr":{"runs-on":`ubuntu-latest`,if:`(github.event_name == 'push' || github.event_name == 'workflow_dispatch') && !startsWith(github.event.head_commit.message, 'chore: version packages ') && !startsWith(github.event.head_commit.message, 'release: ')`,env:{GITHUB_TOKEN:"${{ secrets.GITHUB_TOKEN }}"},steps:[..._(e),{name:`Open release PR`,env:{GITHUB_TOKEN:"${{ secrets.GITHUB_TOKEN }}"},run:[`set -euo pipefail`,`version="$(node -p "require('./package.json').version")"`,`branch="release/$version"`,`if git ls-remote --exit-code --heads origin "$branch" >/dev/null 2>&1; then`,` echo "Release PR already open for $version."; exit 0`,`fi`,`git config user.name "github-actions[bot]"`,`git config user.email "41898282+github-actions[bot]@users.noreply.github.com"`,`git checkout -b "$branch"`,`git add -A`,`git commit -m "chore: version packages ($version)" || true`,`git push origin "$branch"`,`notes="$(${n} changelog --release-notes "$version")"`,`[ -n "$notes" ] || notes="Release $version"`,`gh pr create --base ${r} --head "$branch" --title "release: $version" --body "$notes"`].join(`
|
|
5
|
+
`)}]}}},sync:{name:`Toolchain sync`,on:{push:{branches:[.../* @__PURE__ */ new Set([r,i])]},pull_request:null},jobs:{sync:{"runs-on":`ubuntu-latest`,steps:[..._(e),{name:`Verify generated files are in sync`,run:`${n} sync --check --recursive`}]}}},issues:{name:`Issues`,on:{issues:{types:[`opened`]}},permissions:{issues:`write`},jobs:{"enforce-title":{"runs-on":`ubuntu-latest`,steps:[{name:`Check and rename issue title`,env:{GH_TOKEN:"${{ github.token }}",ISSUE_NUMBER:"${{ github.event.issue.number }}"},run:[`set -euo pipefail`,`labels=$(gh issue view "$ISSUE_NUMBER" --json labels -q '.labels[].name' || true)`,`title=$(gh issue view "$ISSUE_NUMBER" --json title -q '.title')`,`type=""`,`for label in $labels; do case "$label" in *bug*) type="bug" ;; esac; done`,`if [ -z "$type" ]; then for label in $labels; do case "$label" in *enhancement*|*feature*|*feat*) type="feat" ;; esac; done; fi`,`if [ -z "$type" ]; then echo "No bug/enhancement label on issue #$ISSUE_NUMBER; skipping."; exit 0; fi`,`prefix="[bug]"; [ "$type" = "feat" ] && prefix="[feat]"`,`stripped=$(printf '%s' "$title" | sed -E 's/^\\[(bug|feat)\\] *//i')`,`new_title="$prefix $stripped"`,`if [ "$new_title" = "$title" ]; then echo "Issue #$ISSUE_NUMBER title already conforms."; exit 0; fi`,`gh issue edit "$ISSUE_NUMBER" --title "$new_title"`].join(`
|
|
6
|
+
`)}]}}}}}function O(e){return e.steps?Array.isArray(e.steps)?e.steps:[e.steps]:[]}function k(e,t={}){let n=structuredClone(e);if(t.pushBranches){let e=n.on.push??{};n.on.push={...e,branches:t.pushBranches}}if(t.pullRequestBranches){let e=n.on.pull_request??{};n.on.pull_request={...e,branches:t.pullRequestBranches}}t.triggers&&(n.on={...n.on,...t.triggers}),t.extra&&Object.assign(n,t.extra),t.jobs&&(n.jobs={...n.jobs,...t.jobs});let r=Object.keys(n.jobs)[0];for(let e of O(t)){let t=e.job??r;if(!t)continue;let i=n.jobs[t];i&&(i.steps=[...e.before??[],...i.steps,...e.after??[]])}return n}function A(e,n){let r=n.config??{};if(r.enabled===!1)return;let a=h(n),o=D(a,{commitlint:n.commitlint!==!1})[e],s=t(k(o,r),a);return i(s)}function j(e,n){let r=n.config??{};if(r.enabled===!1)return;let a=h(n),o=k({name:e,on:{},jobs:{}},r);r.setup===!0&&x(o,a);let s=t(o,a),c=s.on&&typeof s.on==`object`&&Object.keys(s.on).length>0,l=s.jobs&&typeof s.jobs==`object`&&Object.keys(s.jobs).length>0;if(!c||!l)throw Error(`custom workflow "${e}" must define at least one trigger and one job (use \`triggers\` and \`jobs\`, or \`extra\`).`);return i(s)}function M(e,n){let r=h({tokens:n}),a=t(e.workflow,r);return e.setup===!0&&E(e.provider,a,r),i(a)}function N(e,t={},n={}){let r={};for(let i of Object.keys(o)){let a=t[i];if(!p(a))continue;let s=f(i,a,o[i]),l=s.split(`/`).pop()??s;if(typeof a==`string`){r[l]=a;continue}if(c(a)){r[l]=M(a,e);continue}let u=A(i,{tokens:e,config:typeof a==`object`?a:{},...n});u&&(r[l]=u)}for(let[t,i]of Object.entries(n.custom??{})){if(!p(i))continue;let a=f(t,i),o=a.split(`/`).pop()??a;if(typeof i==`string`){r[o]=i;continue}if(c(i)){r[o]=M(i,e);continue}let s=j(t,{tokens:e,config:i,...n});s&&(r[o]=s)}return r}export{s as DEFAULT_WORKFLOW_DIR,a as DEFAULT_WORKFLOW_TOKENS,o as WORKFLOW_FILENAMES,k as applyWorkflowConfig,D as defaultWorkflows,p as isEnabled,c as isVendorWorkflowSetting,j as renderCustomWorkflow,M as renderVendorWorkflow,A as renderWorkflow,N as renderWorkflows,f as workflowFilePath};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import __tsdown_shims_path from 'node:path';
|
|
2
|
+
import __tsdown_shims_url from 'node:url';
|
|
3
|
+
import { ToolchainCommand } from "../../../shared/src/types.js";
|
|
4
|
+
import "../../../shared/src/index.js";
|
|
5
|
+
//#region packages/config/src/generators/commands.d.ts
|
|
6
|
+
/** Options for {@link generateCliDocs}. */
|
|
7
|
+
export interface GenerateCliDocsOptions {
|
|
8
|
+
/** Page title (default `CLI reference`). */
|
|
9
|
+
title?: string;
|
|
10
|
+
/** Frontmatter outline levels (default `[2, 3]`). */
|
|
11
|
+
outline?: number[];
|
|
12
|
+
/** Intro markdown rendered before the command table. */
|
|
13
|
+
intro?: string;
|
|
14
|
+
/** Command prefix used in headings and links (default `dbx`). */
|
|
15
|
+
prefix?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Render a CLI reference from command descriptors. Hidden commands are omitted
|
|
19
|
+
* and duplicate names keep the first descriptor.
|
|
20
|
+
*/
|
|
21
|
+
export declare function generateCliDocs(commands: readonly ToolchainCommand[], options?: GenerateCliDocsOptions): string;
|
|
22
|
+
//#endregion
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"node:path";import"node:url";import.meta.url;function e(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/\|/g,`\\|`)}function t(e){return e.replace(/</g,`‹`).replace(/>/g,`›`)}function n(e){return e.replace(/[^a-z0-9]+/gi,`-`).toLowerCase()}function r(r,i={}){let a=i.title??`CLI reference`,o=i.outline??[2,3],s=i.prefix??`dbx`,c=i.intro??"Generated from the `ToolchainCommand` descriptors the CLI registers.",l=/* @__PURE__ */ new Set,u=r.filter(e=>e.hidden||l.has(e.name)?!1:(l.add(e.name),!0)),d=[`---`,`title: ${a}`,`outline: [${o.join(`, `)}]`,`---`,``,`# ${a}`,``,c,``,`| Command | Description |`,`| ------- | ----------- |`];for(let t of u)d.push(`| [\`${s} ${t.name}\`](#${n(t.name)}) | ${e(t.description)} |`);for(let n of u){d.push(``,`## \`${s} ${n.name}\``,``,e(n.description));for(let r of n.args??[]){let n=r.required===!1?`[${r.name}]`:`<${r.name}>`;d.push(`- \`${t(n)}\` — ${e(r.description)}`)}for(let r of n.options??[]){let n=r.default===void 0?``:` (default: \`${String(r.default)}\`)`;d.push(`- \`${t(r.flags)}\` — ${e(r.description)}${n}`)}}return`${d.join(`
|
|
2
|
+
`).trimEnd()}\n`}export{r as generateCliDocs};
|
|
@@ -5,4 +5,5 @@ import { GenerateEnvTypesOptions, generateConfigEnv, generateEnv, generateEnvDts
|
|
|
5
5
|
import { GenerateJsonSchemaOptions, generateConfigJsonSchema, generateJsonSchemaFile } from "./json.js";
|
|
6
6
|
import { GenerateMarkdownOptions, RenderConfigFileOptions, RenderMarkdownFrontmatter, RenderMarkdownOptions, generateConfigMarkdown } from "./markdown.js";
|
|
7
7
|
import { GenerateTypesOptions, generateConfigTypes } from "./types.js";
|
|
8
|
-
|
|
8
|
+
import { GenerateCliDocsOptions, generateCliDocs } from "./commands.js";
|
|
9
|
+
export { CliArgsOptionConfig, CliArgsParser, CliArgsResult, CliArgsValues, CliFlagOptions, CliOptionDef, GenerateCliDocsOptions, GenerateCliOptionsOptions, GenerateEnvTypesOptions, GenerateJsonSchemaOptions, GenerateMarkdownOptions, GenerateTypesOptions, RenderConfigFileOptions, RenderMarkdownFrontmatter, RenderMarkdownOptions, cliFlagLabel, cliFlagOf, cliShortOf, createCliArgsParser, flagOf, generateCliArgsOptions, generateCliDocs, generateCliOptions, generateConfigEnv, generateConfigJsonSchema, generateConfigMarkdown, generateConfigTypes, generateEnv, generateEnvDts, generateEnvTypes, generateJsonSchemaFile };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"node:path";import"node:url";import.meta.url;import{cliFlagLabel as e,cliFlagOf as t,cliShortOf as n,createCliArgsParser as r,flagOf as i,generateCliArgsOptions as a,generateCliOptions as o}from"./cli.js";import{generateConfigEnv as s,generateEnv as c,generateEnvDts as l,generateEnvTypes as u}from"./env.js";import{generateConfigJsonSchema as d,generateJsonSchemaFile as f}from"./json.js";import{generateConfigMarkdown as p}from"./markdown.js";import{generateConfigTypes as m}from"./types.js";export{e as cliFlagLabel,t as cliFlagOf,n as cliShortOf,r as createCliArgsParser,i as flagOf,a as generateCliArgsOptions,o as generateCliOptions,s as generateConfigEnv,d as generateConfigJsonSchema,p as generateConfigMarkdown,m as generateConfigTypes,c as generateEnv,l as generateEnvDts,u as generateEnvTypes,f as generateJsonSchemaFile};
|
|
1
|
+
import"node:path";import"node:url";import.meta.url;import{cliFlagLabel as e,cliFlagOf as t,cliShortOf as n,createCliArgsParser as r,flagOf as i,generateCliArgsOptions as a,generateCliOptions as o}from"./cli.js";import{generateConfigEnv as s,generateEnv as c,generateEnvDts as l,generateEnvTypes as u}from"./env.js";import{generateConfigJsonSchema as d,generateJsonSchemaFile as f}from"./json.js";import{generateConfigMarkdown as p}from"./markdown.js";import{generateConfigTypes as m}from"./types.js";import{generateCliDocs as h}from"./commands.js";export{e as cliFlagLabel,t as cliFlagOf,n as cliShortOf,r as createCliArgsParser,i as flagOf,a as generateCliArgsOptions,h as generateCliDocs,o as generateCliOptions,s as generateConfigEnv,d as generateConfigJsonSchema,p as generateConfigMarkdown,m as generateConfigTypes,c as generateEnv,l as generateEnvDts,u as generateEnvTypes,f as generateJsonSchemaFile};
|
|
@@ -1,4 +1,4 @@
|
|
|
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{isZodSchema as n,metaOf as r,normalizeConfigSchema as i,splitBaseSchema as a,zodToSchemaMap as o}from"../schema.js";import{resolveGeneratedFile as s}from"./output.js";import c from"node:fs";import{generateTypes as l}from"untyped";const u={addExport:!0,partial:!0};function d(e){let t=[],n=0,r=!1;for(let i of e.split(`
|
|
2
2
|
`)){let e=i.trim();if(r)t.push(i),e.endsWith(`*/`)&&(r=!1);else if(e.startsWith(`/*`))t.push(i),e.endsWith(`*/`)||(r=!0);else if(!(e===``&&n>0)){t.push(i);for(let e of i)e===`{`||e===`(`||e===`[`?n++:(e===`}`||e===`)`||e===`]`)&&n>0&&n--}}return t.join(`
|
|
3
|
-
`)}function f(e,t){return d(l(e,{...u,interfaceName:t}))}function p(e){let t=e.lastIndexOf(`}`);return t===-1?e:`${e.slice(0,t)} [key: string]: unknown;\n${e.slice(t)}`}function m(e){return e==null?[]:(Array.isArray(e)?e:[e]).map(e=>String(e)).filter(Boolean)}function h(e,t){let n=[];if(t.includeRequired!==!1&&e.required===!0&&n.push(`@required`),t.includeDeprecated!==!1&&e.deprecated!==void 0&&e.deprecated!==!1){let t=typeof e.deprecationMessage==`string`?e.deprecationMessage.trim():``;n.push(t?`@deprecated ${t}`:`@deprecated`)}if(t.includeExamples!==!1)for(let t of m(e.example))n.push(`@example ${t}`);if(t.includeSince!==!1&&typeof e.since==`string`&&e.since.trim()&&n.push(`@since ${e.since.trim()}`),t.includeSee!==!1)for(let t of m(e.see))n.push(`@see ${t}`);return t.includeRemarks!==!1&&typeof e.remarks==`string`&&e.remarks.trim()&&n.push(`@remarks ${e.remarks.trim()}`),t.includeExperimental!==!1&&e.experimental===!0&&n.push(`@experimental`),t.includeAlpha!==!1&&e.alpha===!0&&n.push(`@alpha`),t.includeBeta!==!1&&e.beta===!0&&n.push(`@beta`),n}function g(e,t){let n=e,{deprecated:r,deprecationMessage:i,example:a,since:o,see:s,remarks:c,experimental:l,alpha:u,beta:d,tags:f,...p}=n,m=n.required===!0,_=(Array.isArray(f)?f:[]).filter(e=>!(t.includeRequired===!1&&e===`@required`||t.includeDeprecated===!1&&e.startsWith(`@deprecated`)||t.includeExamples===!1&&e.startsWith(`@example`)||t.includeSince===!1&&e.startsWith(`@since`)||t.includeSee===!1&&e.startsWith(`@see`)||t.includeRemarks===!1&&e.startsWith(`@remarks`)||t.includeExperimental===!1&&e.startsWith(`@experimental`)||t.includeAlpha===!1&&e.startsWith(`@alpha`)||t.includeBeta===!1&&e.startsWith(`@beta`))),v=[.../* @__PURE__ */ new Set([..._,...h({required:m,deprecated:r,deprecationMessage:i,example:a,since:o,see:s,remarks:c,experimental:l,alpha:u,beta:d},t)])],y=typeof n.envName==`string`?n.envName:typeof n.env==`string`?n.env:``;t.includeEnv!==!1&&y&&v.push(`@env ${y}`),t.includeCli!==!1&&typeof n.cliFlag==`string`&&v.push(`@cli ${n.cliFlag}`);let b={...p};return m&&delete b.required,v.length>0&&(b.tags=v),b.properties&&typeof b.properties==`object`&&(b.properties=Object.fromEntries(Object.entries(b.properties).map(([e,n])=>[e,g(n,t)]))),b.items&&typeof b.items==`object`&&(b.items=g(b.items,t)),b}function _(e,t,n){let r=t,i=h({required:r.required,deprecated:r.deprecated,deprecationMessage:r.deprecationMessage,example:r.example,since:r.since,see:r.see,remarks:r.remarks,experimental:r.experimental,alpha:r.alpha,beta:r.beta},n);return i.length===0?e:`${[`/**`,...i.map(e=>` * ${e}`),` */`].join(`
|
|
3
|
+
`)}function f(e,t){return d(l(e,{...u,interfaceName:t}))}function p(e){let t=e.lastIndexOf(`}`);return t===-1?e:`${e.slice(0,t)} [key: string & {}]: unknown;\n${e.slice(t)}`}function m(e){return e==null?[]:(Array.isArray(e)?e:[e]).map(e=>String(e)).filter(Boolean)}function h(e,t){let n=[];if(t.includeRequired!==!1&&e.required===!0&&n.push(`@required`),t.includeDeprecated!==!1&&e.deprecated!==void 0&&e.deprecated!==!1){let t=typeof e.deprecationMessage==`string`?e.deprecationMessage.trim():``;n.push(t?`@deprecated ${t}`:`@deprecated`)}if(t.includeExamples!==!1)for(let t of m(e.example))n.push(`@example ${t}`);if(t.includeSince!==!1&&typeof e.since==`string`&&e.since.trim()&&n.push(`@since ${e.since.trim()}`),t.includeSee!==!1)for(let t of m(e.see))n.push(`@see ${t}`);return t.includeRemarks!==!1&&typeof e.remarks==`string`&&e.remarks.trim()&&n.push(`@remarks ${e.remarks.trim()}`),t.includeExperimental!==!1&&e.experimental===!0&&n.push(`@experimental`),t.includeAlpha!==!1&&e.alpha===!0&&n.push(`@alpha`),t.includeBeta!==!1&&e.beta===!0&&n.push(`@beta`),n}function g(e,t){let n=e,{deprecated:r,deprecationMessage:i,example:a,since:o,see:s,remarks:c,experimental:l,alpha:u,beta:d,tags:f,...p}=n,m=n.required===!0,_=(Array.isArray(f)?f:[]).filter(e=>!(t.includeRequired===!1&&e===`@required`||t.includeDeprecated===!1&&e.startsWith(`@deprecated`)||t.includeExamples===!1&&e.startsWith(`@example`)||t.includeSince===!1&&e.startsWith(`@since`)||t.includeSee===!1&&e.startsWith(`@see`)||t.includeRemarks===!1&&e.startsWith(`@remarks`)||t.includeExperimental===!1&&e.startsWith(`@experimental`)||t.includeAlpha===!1&&e.startsWith(`@alpha`)||t.includeBeta===!1&&e.startsWith(`@beta`))),v=[.../* @__PURE__ */ new Set([..._,...h({required:m,deprecated:r,deprecationMessage:i,example:a,since:o,see:s,remarks:c,experimental:l,alpha:u,beta:d},t)])],y=typeof n.envName==`string`?n.envName:typeof n.env==`string`?n.env:``;t.includeEnv!==!1&&y&&v.push(`@env ${y}`),t.includeCli!==!1&&typeof n.cliFlag==`string`&&v.push(`@cli ${n.cliFlag}`);let b={...p};return m&&delete b.required,v.length>0&&(b.tags=v),b.properties&&typeof b.properties==`object`&&(b.properties=Object.fromEntries(Object.entries(b.properties).map(([e,n])=>[e,g(n,t)]))),b.items&&typeof b.items==`object`&&(b.items=g(b.items,t)),b}function _(e,t,n){let r=t,i=h({required:r.required,deprecated:r.deprecated,deprecationMessage:r.deprecationMessage,example:r.example,since:r.since,see:r.see,remarks:r.remarks,experimental:r.experimental,alpha:r.alpha,beta:r.beta},n);return i.length===0?e:`${[`/**`,...i.map(e=>` * ${e}`),` */`].join(`
|
|
4
4
|
`)}\n${e}`}function v(e,n,i={}){let o=Array.isArray(i.baseGroup)?String(i.baseGroup[0]??`base`):String(i.baseGroup??`base`),s=r(n),c=i.interfaceNames?.[e]??s?.typeName??s?.id??`${t(e)}Config`,l=i.aliases?.[e]??``,u=e=>i.header?`${i.header}\n\n${e}`:e,d=i.overrides?.[e];if(d!==void 0)return u(`${d.trimEnd()}\n${l}`.trimEnd());let m=n.allowExtraKeys===!0;if(!n.properties)return u(`${_(`export type ${c} = ${n.tsType??`unknown`};`,n,i)}\n${l}`);let h=g(n,i),{base:v,groups:y,hasBase:b}=a(h,o),x=Object.keys(y.properties??{});if(!b){let e=_(f(h,c),n,i);return m&&(e=p(e)),u(`${e}\n${l}`)}let S=f(v,`${c}Base`),C;return C=x.length>0?f(y,c).replace(`export interface ${c} {`,`export interface ${c} extends ${c}Base {`):`export interface ${c} extends ${c}Base {}\n`,C=_(C,n,i),m&&(C=p(C)),u(`${S}\n${C}\n${l}`)}function y(e,t={}){return n(e)?Object.fromEntries(Object.entries(o(e)).map(([e,n])=>[e,v(e,n,{...t,interfaceNames:{[e]:e,...t.interfaceNames}})])):Object.fromEntries(Object.entries(i(e)).map(([e,n])=>[e,v(e,n,t)]))}function b(t,n={}){let r=n.extension??`ts`,i=y(t,n);if(typeof n.outputDir==`string`)for(let[t,a]of Object.entries(i)){let i=s(n.outputDir,`${t}.${r}`);c.mkdirSync(e.dirname(i),{recursive:!0}),c.writeFileSync(i,a,`utf-8`)}return i}export{b as generateConfigTypes};
|
|
@@ -12,11 +12,12 @@ import { GenerateTypesOptions, generateConfigTypes } from "./generators/types.js
|
|
|
12
12
|
import { ConfigEngine, createConfigEngine } from "./engine.js";
|
|
13
13
|
import { EnvSource, EnvTree, envBool, envInt, envList, envMap, envPathOf, envString, parseEnvTree, readEnvPath } from "./env.js";
|
|
14
14
|
import { FormatGeneratedOptions, GENERATED_FORMAT_OPTIONS, formatGenerated } from "./generated-format.js";
|
|
15
|
+
import { GenerateCliDocsOptions, generateCliDocs } from "./generators/commands.js";
|
|
15
16
|
import "./generators/index.js";
|
|
16
17
|
import { findProjectRoot, monorepoRoot } from "./root.js";
|
|
17
18
|
import { SplitSchema, ToJsonSchemaSafeOptions, compileZodSchema, flattenBaseSchema, isSchemaType, isZodFunctionSchema, isZodSchema, metaOf, normalizeConfigSchema, normalizeJsonSchemaMetadata, renderTsType, resolveUntypedSchema, splitBaseSchema, toJsonSchemaSafe, toSchemaType, zodToJsonSchema, zodToSchemaMap, zodToUntypedDefinition } from "./schema.js";
|
|
18
19
|
declare namespace index_d_exports {
|
|
19
|
-
export { BuildConfigJsonOptions, CliArgsOptionConfig, CliArgsParser, CliArgsResult, CliArgsValues, CliFlagOptions, CliOptionDef, CollectVarsOptions, ConfigBaseMeta, ConfigCliMeta, ConfigDef, ConfigEngine, ConfigEngineFlatten, ConfigEngineOptions, ConfigEnvMeta, ConfigGroup, ConfigJsonDoc, ConfigJsonEntry, ConfigMeta, ConfigSchema, ConfigSchemaInput, ConfigSchemaMap, ConfigSchemaType, ConfigScope, ConfigScopes, ConfigTypeMeta, ConfigValueType, DEFAULT_ENV_PREFIX, EnvFileOptions, EnvSource, EnvTree, FormatGeneratedOptions, GENERATED_FORMAT_OPTIONS, GenerateCliOptionsOptions, GenerateEnvTypesOptions, GenerateJsonSchemaOptions, GenerateMarkdownOptions, GenerateTypesOptions, RenderConfigFileOptions, RenderMarkdownFrontmatter, RenderMarkdownOptions, SplitSchema, ToJsonSchemaSafeOptions, buildConfigJson, cliFlagLabel, cliFlagOf, cliShortOf, collectRequired, collectVars, compileZodSchema, createCliArgsParser, createConfigEngine, envBool, envInt, envList, envMap, envPathOf, envString, findProjectRoot, flagOf, flattenBaseSchema, formatGenerated, generateCliArgsOptions, generateCliOptions, generateConfigEnv, generateConfigJsonSchema, generateConfigMarkdown, generateConfigTypes, generateEnv, generateEnvDts, generateEnvFile, generateEnvTypes, generateJsonSchemaFile, isSchemaType, isZodFunctionSchema, isZodSchema, metaOf, monorepoRoot, normalizeConfigSchema, normalizeJsonSchemaMetadata, parseEnvTree, pathOf, readEnvPath, renderTsType, resolveUntypedSchema, splitBaseSchema, toJsonSchemaSafe, toSchemaType, zodToJsonSchema, zodToSchemaMap, zodToUntypedDefinition };
|
|
20
|
+
export { BuildConfigJsonOptions, CliArgsOptionConfig, CliArgsParser, CliArgsResult, CliArgsValues, CliFlagOptions, CliOptionDef, CollectVarsOptions, ConfigBaseMeta, ConfigCliMeta, ConfigDef, ConfigEngine, ConfigEngineFlatten, ConfigEngineOptions, ConfigEnvMeta, ConfigGroup, ConfigJsonDoc, ConfigJsonEntry, ConfigMeta, ConfigSchema, ConfigSchemaInput, ConfigSchemaMap, ConfigSchemaType, ConfigScope, ConfigScopes, ConfigTypeMeta, ConfigValueType, DEFAULT_ENV_PREFIX, EnvFileOptions, EnvSource, EnvTree, FormatGeneratedOptions, GENERATED_FORMAT_OPTIONS, GenerateCliDocsOptions, GenerateCliOptionsOptions, GenerateEnvTypesOptions, GenerateJsonSchemaOptions, GenerateMarkdownOptions, GenerateTypesOptions, RenderConfigFileOptions, RenderMarkdownFrontmatter, RenderMarkdownOptions, SplitSchema, ToJsonSchemaSafeOptions, buildConfigJson, cliFlagLabel, cliFlagOf, cliShortOf, collectRequired, collectVars, compileZodSchema, createCliArgsParser, createConfigEngine, envBool, envInt, envList, envMap, envPathOf, envString, findProjectRoot, flagOf, flattenBaseSchema, formatGenerated, generateCliArgsOptions, generateCliDocs, generateCliOptions, generateConfigEnv, generateConfigJsonSchema, generateConfigMarkdown, generateConfigTypes, generateEnv, generateEnvDts, generateEnvFile, generateEnvTypes, generateJsonSchemaFile, isSchemaType, isZodFunctionSchema, isZodSchema, metaOf, monorepoRoot, normalizeConfigSchema, normalizeJsonSchemaMetadata, parseEnvTree, pathOf, readEnvPath, renderTsType, resolveUntypedSchema, splitBaseSchema, toJsonSchemaSafe, toSchemaType, zodToJsonSchema, zodToSchemaMap, zodToUntypedDefinition };
|
|
20
21
|
}
|
|
21
22
|
//#endregion
|
|
22
|
-
export { BuildConfigJsonOptions, CliArgsOptionConfig, CliArgsParser, CliArgsResult, CliArgsValues, CliFlagOptions, CliOptionDef, CollectVarsOptions, ConfigBaseMeta, ConfigCliMeta, ConfigDef, ConfigEngine, ConfigEngineFlatten, ConfigEngineOptions, ConfigEnvMeta, ConfigGroup, ConfigJsonDoc, ConfigJsonEntry, ConfigMeta, ConfigSchema, ConfigSchemaInput, ConfigSchemaMap, ConfigSchemaType, ConfigScope, ConfigScopes, ConfigTypeMeta, ConfigValueType, DEFAULT_ENV_PREFIX, EnvFileOptions, EnvSource, EnvTree, FormatGeneratedOptions, GENERATED_FORMAT_OPTIONS, GenerateCliOptionsOptions, GenerateEnvTypesOptions, GenerateJsonSchemaOptions, GenerateMarkdownOptions, GenerateTypesOptions, RenderConfigFileOptions, RenderMarkdownFrontmatter, RenderMarkdownOptions, SplitSchema, ToJsonSchemaSafeOptions, buildConfigJson, cliFlagLabel, cliFlagOf, cliShortOf, collectRequired, collectVars, compileZodSchema, createCliArgsParser, createConfigEngine, envBool, envInt, envList, envMap, envPathOf, envString, findProjectRoot, flagOf, flattenBaseSchema, formatGenerated, generateCliArgsOptions, generateCliOptions, generateConfigEnv, generateConfigJsonSchema, generateConfigMarkdown, generateConfigTypes, generateEnv, generateEnvDts, generateEnvFile, generateEnvTypes, generateJsonSchemaFile, index_d_exports, isSchemaType, isZodFunctionSchema, isZodSchema, metaOf, monorepoRoot, normalizeConfigSchema, normalizeJsonSchemaMetadata, parseEnvTree, pathOf, readEnvPath, renderTsType, resolveUntypedSchema, splitBaseSchema, toJsonSchemaSafe, toSchemaType, zodToJsonSchema, zodToSchemaMap, zodToUntypedDefinition };
|
|
23
|
+
export { BuildConfigJsonOptions, CliArgsOptionConfig, CliArgsParser, CliArgsResult, CliArgsValues, CliFlagOptions, CliOptionDef, CollectVarsOptions, ConfigBaseMeta, ConfigCliMeta, ConfigDef, ConfigEngine, ConfigEngineFlatten, ConfigEngineOptions, ConfigEnvMeta, ConfigGroup, ConfigJsonDoc, ConfigJsonEntry, ConfigMeta, ConfigSchema, ConfigSchemaInput, ConfigSchemaMap, ConfigSchemaType, ConfigScope, ConfigScopes, ConfigTypeMeta, ConfigValueType, DEFAULT_ENV_PREFIX, EnvFileOptions, EnvSource, EnvTree, FormatGeneratedOptions, GENERATED_FORMAT_OPTIONS, GenerateCliDocsOptions, GenerateCliOptionsOptions, GenerateEnvTypesOptions, GenerateJsonSchemaOptions, GenerateMarkdownOptions, GenerateTypesOptions, RenderConfigFileOptions, RenderMarkdownFrontmatter, RenderMarkdownOptions, SplitSchema, ToJsonSchemaSafeOptions, buildConfigJson, cliFlagLabel, cliFlagOf, cliShortOf, collectRequired, collectVars, compileZodSchema, createCliArgsParser, createConfigEngine, envBool, envInt, envList, envMap, envPathOf, envString, findProjectRoot, flagOf, flattenBaseSchema, formatGenerated, generateCliArgsOptions, generateCliDocs, generateCliOptions, generateConfigEnv, generateConfigJsonSchema, generateConfigMarkdown, generateConfigTypes, generateEnv, generateEnvDts, generateEnvFile, generateEnvTypes, generateJsonSchemaFile, index_d_exports, isSchemaType, isZodFunctionSchema, isZodSchema, metaOf, monorepoRoot, normalizeConfigSchema, normalizeJsonSchemaMetadata, parseEnvTree, pathOf, readEnvPath, renderTsType, resolveUntypedSchema, splitBaseSchema, toJsonSchemaSafe, toSchemaType, zodToJsonSchema, zodToSchemaMap, 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,flattenBaseSchema as n,isSchemaType as r,isZodFunctionSchema as i,isZodSchema as a,metaOf as o,normalizeConfigSchema as s,normalizeJsonSchemaMetadata as c,renderTsType as l,resolveUntypedSchema as u,splitBaseSchema as d,toJsonSchemaSafe as f,toSchemaType as p,zodToJsonSchema as m,zodToSchemaMap as h,zodToUntypedDefinition as g}from"./schema.js";import{DEFAULT_ENV_PREFIX as _,collectRequired as v,collectVars as y,pathOf as b}from"./collect.js";import{buildConfigJson as x}from"./config-json.js";import{generateEnvFile as S}from"./env-file.js";import{cliFlagLabel as C,cliFlagOf as w,cliShortOf as T,createCliArgsParser as E,flagOf as D,generateCliArgsOptions as O,generateCliOptions as k}from"./generators/cli.js";import{generateConfigEnv as A,generateEnv as j,generateEnvDts as M,generateEnvTypes as N}from"./generators/env.js";import{generateConfigJsonSchema as P,generateJsonSchemaFile as F}from"./generators/json.js";import{generateConfigMarkdown as I}from"./generators/markdown.js";import{generateConfigTypes as L}from"./generators/types.js";import{findProjectRoot as R,monorepoRoot as z}from"./root.js";import{createConfigEngine as B}from"./engine.js";import{envBool as V,envInt as H,envList as U,envMap as W,envPathOf as G,envString as K,parseEnvTree as q,readEnvPath as J}from"./env.js";import{GENERATED_FORMAT_OPTIONS as Y,formatGenerated as X}from"./generated-format.js";import"./generators/index.js";var
|
|
1
|
+
import"node:path";import"node:url";import.meta.url;import{__exportAll as e}from"../../../_virtual/_rolldown/runtime.js";import{compileZodSchema as t,flattenBaseSchema as n,isSchemaType as r,isZodFunctionSchema as i,isZodSchema as a,metaOf as o,normalizeConfigSchema as s,normalizeJsonSchemaMetadata as c,renderTsType as l,resolveUntypedSchema as u,splitBaseSchema as d,toJsonSchemaSafe as f,toSchemaType as p,zodToJsonSchema as m,zodToSchemaMap as h,zodToUntypedDefinition as g}from"./schema.js";import{DEFAULT_ENV_PREFIX as _,collectRequired as v,collectVars as y,pathOf as b}from"./collect.js";import{buildConfigJson as x}from"./config-json.js";import{generateEnvFile as S}from"./env-file.js";import{cliFlagLabel as C,cliFlagOf as w,cliShortOf as T,createCliArgsParser as E,flagOf as D,generateCliArgsOptions as O,generateCliOptions as k}from"./generators/cli.js";import{generateConfigEnv as A,generateEnv as j,generateEnvDts as M,generateEnvTypes as N}from"./generators/env.js";import{generateConfigJsonSchema as P,generateJsonSchemaFile as F}from"./generators/json.js";import{generateConfigMarkdown as I}from"./generators/markdown.js";import{generateConfigTypes as L}from"./generators/types.js";import{findProjectRoot as R,monorepoRoot as z}from"./root.js";import{createConfigEngine as B}from"./engine.js";import{envBool as V,envInt as H,envList as U,envMap as W,envPathOf as G,envString as K,parseEnvTree as q,readEnvPath as J}from"./env.js";import{GENERATED_FORMAT_OPTIONS as Y,formatGenerated as X}from"./generated-format.js";import{generateCliDocs as Z}from"./generators/commands.js";import"./generators/index.js";var Q=/* @__PURE__ */ e({DEFAULT_ENV_PREFIX:()=>_,GENERATED_FORMAT_OPTIONS:()=>Y,buildConfigJson:()=>x,cliFlagLabel:()=>C,cliFlagOf:()=>w,cliShortOf:()=>T,collectRequired:()=>v,collectVars:()=>y,compileZodSchema:()=>t,createCliArgsParser:()=>E,createConfigEngine:()=>B,envBool:()=>V,envInt:()=>H,envList:()=>U,envMap:()=>W,envPathOf:()=>G,envString:()=>K,findProjectRoot:()=>R,flagOf:()=>D,flattenBaseSchema:()=>n,formatGenerated:()=>X,generateCliArgsOptions:()=>O,generateCliDocs:()=>Z,generateCliOptions:()=>k,generateConfigEnv:()=>A,generateConfigJsonSchema:()=>P,generateConfigMarkdown:()=>I,generateConfigTypes:()=>L,generateEnv:()=>j,generateEnvDts:()=>M,generateEnvFile:()=>S,generateEnvTypes:()=>N,generateJsonSchemaFile:()=>F,isSchemaType:()=>r,isZodFunctionSchema:()=>i,isZodSchema:()=>a,metaOf:()=>o,monorepoRoot:()=>z,normalizeConfigSchema:()=>s,normalizeJsonSchemaMetadata:()=>c,parseEnvTree:()=>q,pathOf:()=>b,readEnvPath:()=>J,renderTsType:()=>l,resolveUntypedSchema:()=>u,splitBaseSchema:()=>d,toJsonSchemaSafe:()=>f,toSchemaType:()=>p,zodToJsonSchema:()=>m,zodToSchemaMap:()=>h,zodToUntypedDefinition:()=>g});export{_ as DEFAULT_ENV_PREFIX,Y as GENERATED_FORMAT_OPTIONS,x as buildConfigJson,C as cliFlagLabel,w as cliFlagOf,T as cliShortOf,v as collectRequired,y as collectVars,t as compileZodSchema,E as createCliArgsParser,B as createConfigEngine,V as envBool,H as envInt,U as envList,W as envMap,G as envPathOf,K as envString,R as findProjectRoot,D as flagOf,n as flattenBaseSchema,X as formatGenerated,O as generateCliArgsOptions,Z as generateCliDocs,k as generateCliOptions,A as generateConfigEnv,P as generateConfigJsonSchema,I as generateConfigMarkdown,L as generateConfigTypes,j as generateEnv,M as generateEnvDts,S as generateEnvFile,N as generateEnvTypes,F as generateJsonSchemaFile,r as isSchemaType,i as isZodFunctionSchema,a as isZodSchema,o as metaOf,z as monorepoRoot,s as normalizeConfigSchema,c as normalizeJsonSchemaMetadata,q as parseEnvTree,b as pathOf,J as readEnvPath,l as renderTsType,u as resolveUntypedSchema,d as splitBaseSchema,Q as src_exports,f as toJsonSchemaSafe,p as toSchemaType,m as zodToJsonSchema,h as zodToSchemaMap,g as zodToUntypedDefinition};
|
|
@@ -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){return typeof e==`object`&&!!e&&`safeParse`in e}function r(e){return typeof e!=`object`||!e||Array.isArray(e)||n(e)?!1:`type`in e||`properties`in e||`tsType`in e||`id`in e}const i=[`id`,`description`,`required`,`deprecated`,`deprecationMessage`,`example`,`since`,`see`,`remarks`,`experimental`,`alpha`,`beta`,`secret`,`scope`,`public`,`defaultValue`,`envName`,`env`,`envPath`,`path`,`typeName`,`cliFlag`,`cliFlagShort`,`tsType`];function a(e){return n(e)&&e._zod?.def?.type===`function`}function o(e){if(a(e.zodSchema)){let t=c(e.zodSchema);if(typeof t?.tsType==`string`&&t.tsType.trim())return{tsType:t.tsType,...typeof t.description==`string`?{description:t.description}:{}}}return`any`}function s(t,n={}){let r={target:`draft-2020-12`,...n,...n.unrepresentable?{unrepresentable:n.unrepresentable}:{unrepresentable:o}};return e.toJSONSchema(t,r)}function c(e){if(n(e)){let t=e.meta?.();return t&&typeof t==`object`?t:void 0}let t=e,r={};for(let e of i)e===`id`&&typeof t.id==`string`&&t.id.startsWith(`#`)||t[e]!==void 0&&(r[e]=t[e]);return Object.keys(r).length>0?r:void 0}function l(e){return n(e)?k(e):e}function u(e){let t={},n=/* @__PURE__ */ new Set,r={type:`object`,properties:t};for(let i of e){let a=i;if(a.properties&&Object.assign(t,a.properties),Array.isArray(a.required))for(let e of a.required)n.add(e);e.length===1&&(r=i)}return{...r,type:`object`,properties:t,...n.size>0?{required:[...n]}:{}}}function d(e){if(Array.isArray(e)){let t=u(e.map(l));return{[c(t)?.id??`config`]:t}}if(n(e)||r(e)){let t=l(e);return{[c(t)?.id??`config`]:t}}let t={};for(let[n,r]of Object.entries(e))t[n]=Array.isArray(r)?u(r.map(l)):l(r);return t}function f(e){return!e||Object.keys(e).length===0}function p(e){return`'${String(e).replace(/\\/g,`\\\\`).replace(/'/g,`\\'`)}'`}function m(e,n={}){if(!e||f(e))return`unknown`;if(typeof e.tsType==`string`&&e.tsType.trim())return e.tsType;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`?p(e.const):String(e.const);if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum.map(p).join(` | `);let r=e.anyOf??e.oneOf;if(Array.isArray(r)&&r.length>0)return r.map(e=>m(e,n)).join(` | `);if(e.properties){let t=Array.isArray(e.required)?e.required:[];return`{ ${Object.entries(e.properties).map(([e,r])=>`${/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)?e:JSON.stringify(e)}${t.includes(e)?``:`?`}: ${m(r,n)}`).join(`; `)} }`}let i=Array.isArray(e.type)?e.type:e.type?[e.type]:[];if(i.includes(`array`))return`Array<${m(e.items,n)}>`;if(i.includes(`object`)){let t=e.additionalProperties;return t===void 0||t===!1?`Record<string, unknown>`:`Record<string, ${t===!0||f(t)?`unknown`:m(t,n)}>`}return i.length===0?`unknown`:i.map(e=>t[e]??`unknown`).join(` | `)}function h(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 g(e,t={}){if(!e)return{};let n=e.$ref?.split(`/`).pop(),r=n?t[n]:void 0,i=e.required===!0||r?.required===!0||void 0,a=e.env??r?.env,o=e.envName??r?.envName,s=e.envPath??r?.envPath,c=e.path??r?.path,l=e.cliFlag??r?.cliFlag,u=e.cliFlagShort??r?.cliFlagShort,d=e.typeName??r?.typeName,f=e.id??r?.id,p=e.deprecated??r?.deprecated,m=e.deprecationMessage??r?.deprecationMessage,h=e.example??r?.example,g=e.since??r?.since,_=e.see??r?.see,v=e.remarks??r?.remarks,y=e.experimental??r?.experimental,b=e.alpha??r?.alpha,x=e.beta??r?.beta;for(let n of[...e.anyOf??[],...e.oneOf??[]]){let e=n.$ref?.split(`/`).pop(),r=e?t[e]:void 0;i??=n.required===!0||r?.required===!0||void 0,a??=n.env??r?.env,o??=n.envName??r?.envName,s??=n.envPath??r?.envPath,c??=n.path??r?.path,l??=n.cliFlag??r?.cliFlag,u??=n.cliFlagShort??r?.cliFlagShort,d??=n.typeName??r?.typeName,f??=n.id??r?.id,p??=n.deprecated??r?.deprecated,m??=n.deprecationMessage??r?.deprecationMessage,h??=n.example??r?.example,g??=n.since??r?.since,_??=n.see??r?.see,v??=n.remarks??r?.remarks,y??=n.experimental??r?.experimental,b??=n.alpha??r?.alpha,x??=n.beta??r?.beta}return{...a===void 0?{}:{env:a},...o===void 0?{}:{envName:o},...s===void 0?{}:{envPath:s},...c===void 0?{}:{path:c},...l===void 0?{}:{cliFlag:l},...u===void 0?{}:{cliFlagShort:u},...d===void 0?{}:{typeName:d},...f===void 0?{}:{id:f},...i===void 0?{}:{required:i},...p===void 0?{}:{deprecated:p},...m===void 0?{}:{deprecationMessage:m},...h===void 0?{}:{example:h},...g===void 0?{}:{since:g},..._===void 0?{}:{see:_},...v===void 0?{}:{remarks:v},...y===void 0?{}:{experimental:y},...b===void 0?{}:{alpha:b},...x===void 0?{}:{beta:x}}}function _(e,t=!1,n={}){if(e.$ref){let r=e.$ref.split(`/`).pop()??`unknown`,i=n[r],a=e.description??i?.description;if(i?.properties){let o=_(i,t,n);return o.$schema={...o.$schema,type:`object`,tsType:typeof i.tsType==`string`&&i.tsType.trim()?i.tsType:r,...t?{tags:[`@required`]}:{},...a?{description:a}:{},...g(e,n)},o}return{$schema:{type:`any`,tsType:typeof i?.tsType==`string`&&i.tsType.trim()?i.tsType:r,...t?{tags:[`@required`]}:{},...a?{description:a}:{},...g(e,n)}}}if(typeof e.tsType==`string`&&e.tsType.trim()&&(!e.properties||Object.keys(e.properties).length===0))return{$schema:{type:`any`,tsType:e.tsType,...t?{tags:[`@required`]}:{},...e.description?{description:e.description}:{},...g(e,n)}};if(e.properties){let r=t?{$schema:{tags:[`@required`]}}:{};e.description&&(r.$schema={...r.$schema,description:e.description});let i=g(e,n);(i.deprecated!==void 0||i.example!==void 0)&&(r.$schema={...r.$schema,...i});for(let[t,i]of Object.entries(e.properties))r[t]=_(i,e.required?.includes(t)??!1,n);return e.additionalProperties!==void 0&&e.additionalProperties!==!1&&(r.$schema={...r.$schema,allowExtraKeys:!0}),r}let r=h(e),i={};return e.defaultValue===void 0?e.default!==void 0&&(i.$default=e.default):i.$default=e.defaultValue,i.$schema={type:r,tsType:m(e,n),...r===`array`?{items:{type:h(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}:{},...g(e,n),...e.defaultValue!==void 0&&e.default!==void 0?{envDefault:e.default}:{}},i}function v(e){let t=s(e);if(!t)return{};let n=t.$defs??{},r=t.$ref?.split(`/`).pop();return _(r&&n[r]?n[r]:t,!1,n)}function y(t){try{return e.compile(t)}catch{return t}}function b(e){return e!==null&&!Array.isArray(e)&&typeof e==`object`}function x(e){let t=typeof e;if(t!==`undefined`&&e!==null)return Array.isArray(e)?`array`:t}function S(e,t,n=`.`){return e?`${e}${n}${t}`:t}function C(e){return[...new Set(e.filter(e=>!!e))]}function w(e){if(e.type===`array`&&!(`items`in e)){let t=C((e.default??[]).map(e=>x(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 T(e,t,n){if(n.cache.has(t))return n.cache.get(t);let r=`#${t.replace(/\./g,`/`)}`;if(!b(e)){let i=Array.isArray(e)?[...e]:e,a={type:x(e),id:r,default:i};return w(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]=T(e[o],S(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||=x(i.default)||(i.properties?`object`:`any`),w(i),i}function E(e){return T(e,``,{root:e,cache:/* @__PURE__ */ new Map})}function D(e){if(!e||typeof e!=`object`||Array.isArray(e))return;let t=e;if(delete t.tsType,typeof t.deprecated==`string`&&(t.deprecationMessage=t.deprecated,t.deprecated=!0),`example`in t){let e=t.example;delete t.example,t.examples=Array.isArray(e)?e:[e]}for(let e of[`properties`,`$defs`]){let n=t[e];if(n&&typeof n==`object`&&!Array.isArray(n))for(let e of Object.values(n))D(e)}for(let e of[`items`,`additionalProperties`])D(t[e]);for(let e of[`anyOf`,`oneOf`,`allOf`]){let n=t[e];if(Array.isArray(n))for(let e of n)D(e)}}function O(e){let t=s(e);if(!t)return{};let n=t.$defs??{},r={};for(let[e,t]of Object.entries(n))r[e]=E(_(t,!1,n));let i=t.$ref?.split(`/`).pop()??t.id??c(e)?.id??`config`;return r[i]||(r[i]=E(_(t,!1,n))),r}function k(e){return E(v(e))}function A(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 j(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{y as compileZodSchema,j as flattenBaseSchema,r as isSchemaType,a as isZodFunctionSchema,n as isZodSchema,c as metaOf,d as normalizeConfigSchema,D as normalizeJsonSchemaMetadata,m as renderTsType,E as resolveUntypedSchema,A as splitBaseSchema,s as toJsonSchemaSafe,l as toSchemaType,k as zodToJsonSchema,O as zodToSchemaMap,v 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){return typeof e==`object`&&!!e&&`safeParse`in e}function r(e){return typeof e!=`object`||!e||Array.isArray(e)||n(e)?!1:`type`in e||`properties`in e||`tsType`in e||`id`in e}const i=[`id`,`description`,`required`,`deprecated`,`deprecationMessage`,`example`,`since`,`see`,`remarks`,`experimental`,`alpha`,`beta`,`secret`,`scope`,`public`,`defaultValue`,`envName`,`env`,`envPath`,`path`,`typeName`,`cliFlag`,`cliFlagShort`,`tsType`];function a(e){return n(e)&&e._zod?.def?.type===`function`}function o(e){if(a(e.zodSchema)){let t=c(e.zodSchema);if(typeof t?.tsType==`string`&&t.tsType.trim())return{tsType:t.tsType,...typeof t.description==`string`?{description:t.description}:{}}}return`any`}function s(t,n={}){let r={target:`draft-2020-12`,...n,...n.unrepresentable?{unrepresentable:n.unrepresentable}:{unrepresentable:o}};return e.toJSONSchema(t,r)}function c(e){if(n(e)){let t=e.meta?.();return t&&typeof t==`object`?t:void 0}let t=e,r={};for(let e of i)e===`id`&&typeof t.id==`string`&&t.id.startsWith(`#`)||t[e]!==void 0&&(r[e]=t[e]);return Object.keys(r).length>0?r:void 0}function l(e){return n(e)?k(e):e}function u(e){let t={},n=/* @__PURE__ */ new Set,r={type:`object`,properties:t};for(let i of e){let a=i;if(a.properties&&Object.assign(t,a.properties),Array.isArray(a.required))for(let e of a.required)n.add(e);e.length===1&&(r=i)}return{...r,type:`object`,properties:t,...n.size>0?{required:[...n]}:{}}}function d(e){if(Array.isArray(e)){let t=u(e.map(l));return{[c(t)?.id??`config`]:t}}if(n(e)||r(e)){let t=l(e);return{[c(t)?.id??`config`]:t}}let t={};for(let[n,r]of Object.entries(e))t[n]=Array.isArray(r)?u(r.map(l)):l(r);return t}function f(e){return!e||Object.keys(e).length===0}function p(e){return`'${String(e).replace(/\\/g,`\\\\`).replace(/'/g,`\\'`)}'`}function m(e,n={}){if(!e||f(e))return`unknown`;if(typeof e.tsType==`string`&&e.tsType.trim())return e.tsType;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`?p(e.const):String(e.const);if(Array.isArray(e.enum)&&e.enum.length>0)return e.enum.map(p).join(` | `);let r=e.anyOf??e.oneOf;if(Array.isArray(r)&&r.length>0)return r.map(e=>m(e,n)).join(` | `);if(e.properties){let t=Array.isArray(e.required)?e.required:[];return`{ ${Object.entries(e.properties).map(([e,r])=>`${/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(e)?e:JSON.stringify(e)}${t.includes(e)?``:`?`}: ${m(r,n)}`).join(`; `)} }`}let i=Array.isArray(e.type)?e.type:e.type?[e.type]:[];if(i.includes(`array`))return`Array<${m(e.items,n)}>`;if(i.includes(`object`)){let t=e.additionalProperties;return t===void 0||t===!1?`Record<string & {}, unknown>`:`Record<string & {}, ${t===!0||f(t)?`unknown`:m(t,n)}>`}return i.length===0?`unknown`:i.map(e=>t[e]??`unknown`).join(` | `)}function h(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 g(e,t={}){if(!e)return{};let n=e.$ref?.split(`/`).pop(),r=n?t[n]:void 0,i=e.required===!0||r?.required===!0||void 0,a=e.env??r?.env,o=e.envName??r?.envName,s=e.envPath??r?.envPath,c=e.path??r?.path,l=e.cliFlag??r?.cliFlag,u=e.cliFlagShort??r?.cliFlagShort,d=e.typeName??r?.typeName,f=e.id??r?.id,p=e.deprecated??r?.deprecated,m=e.deprecationMessage??r?.deprecationMessage,h=e.example??r?.example,g=e.since??r?.since,_=e.see??r?.see,v=e.remarks??r?.remarks,y=e.experimental??r?.experimental,b=e.alpha??r?.alpha,x=e.beta??r?.beta;for(let n of[...e.anyOf??[],...e.oneOf??[]]){let e=n.$ref?.split(`/`).pop(),r=e?t[e]:void 0;i??=n.required===!0||r?.required===!0||void 0,a??=n.env??r?.env,o??=n.envName??r?.envName,s??=n.envPath??r?.envPath,c??=n.path??r?.path,l??=n.cliFlag??r?.cliFlag,u??=n.cliFlagShort??r?.cliFlagShort,d??=n.typeName??r?.typeName,f??=n.id??r?.id,p??=n.deprecated??r?.deprecated,m??=n.deprecationMessage??r?.deprecationMessage,h??=n.example??r?.example,g??=n.since??r?.since,_??=n.see??r?.see,v??=n.remarks??r?.remarks,y??=n.experimental??r?.experimental,b??=n.alpha??r?.alpha,x??=n.beta??r?.beta}return{...a===void 0?{}:{env:a},...o===void 0?{}:{envName:o},...s===void 0?{}:{envPath:s},...c===void 0?{}:{path:c},...l===void 0?{}:{cliFlag:l},...u===void 0?{}:{cliFlagShort:u},...d===void 0?{}:{typeName:d},...f===void 0?{}:{id:f},...i===void 0?{}:{required:i},...p===void 0?{}:{deprecated:p},...m===void 0?{}:{deprecationMessage:m},...h===void 0?{}:{example:h},...g===void 0?{}:{since:g},..._===void 0?{}:{see:_},...v===void 0?{}:{remarks:v},...y===void 0?{}:{experimental:y},...b===void 0?{}:{alpha:b},...x===void 0?{}:{beta:x}}}function _(e,t=!1,n={}){if(e.$ref){let r=e.$ref.split(`/`).pop()??`unknown`,i=n[r],a=e.description??i?.description;if(i?.properties){let o=_(i,t,n);return o.$schema={...o.$schema,type:`object`,tsType:typeof i.tsType==`string`&&i.tsType.trim()?i.tsType:r,...t?{tags:[`@required`]}:{},...a?{description:a}:{},...g(e,n)},o}return{$schema:{type:`any`,tsType:typeof i?.tsType==`string`&&i.tsType.trim()?i.tsType:r,...t?{tags:[`@required`]}:{},...a?{description:a}:{},...g(e,n)}}}if(typeof e.tsType==`string`&&e.tsType.trim()&&(!e.properties||Object.keys(e.properties).length===0))return{$schema:{type:`any`,tsType:e.tsType,...t?{tags:[`@required`]}:{},...e.description?{description:e.description}:{},...g(e,n)}};if(e.properties){let r=t?{$schema:{tags:[`@required`]}}:{};e.description&&(r.$schema={...r.$schema,description:e.description});let i=g(e,n);(i.deprecated!==void 0||i.example!==void 0)&&(r.$schema={...r.$schema,...i});for(let[t,i]of Object.entries(e.properties))r[t]=_(i,e.required?.includes(t)??!1,n);return e.additionalProperties!==void 0&&e.additionalProperties!==!1&&(r.$schema={...r.$schema,allowExtraKeys:!0}),r}let r=h(e),i={};return e.defaultValue===void 0?e.default!==void 0&&(i.$default=e.default):i.$default=e.defaultValue,i.$schema={type:r,tsType:m(e,n),...r===`array`?{items:{type:h(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}:{},...g(e,n),...e.defaultValue!==void 0&&e.default!==void 0?{envDefault:e.default}:{}},i}function v(e){let t=s(e);if(!t)return{};let n=t.$defs??{},r=t.$ref?.split(`/`).pop();return _(r&&n[r]?n[r]:t,!1,n)}function y(t){try{return e.compile(t)}catch{return t}}function b(e){return e!==null&&!Array.isArray(e)&&typeof e==`object`}function x(e){let t=typeof e;if(t!==`undefined`&&e!==null)return Array.isArray(e)?`array`:t}function S(e,t,n=`.`){return e?`${e}${n}${t}`:t}function C(e){return[...new Set(e.filter(e=>!!e))]}function w(e){if(e.type===`array`&&!(`items`in e)){let t=C((e.default??[]).map(e=>x(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 T(e,t,n){if(n.cache.has(t))return n.cache.get(t);let r=`#${t.replace(/\./g,`/`)}`;if(!b(e)){let i=Array.isArray(e)?[...e]:e,a={type:x(e),id:r,default:i};return w(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]=T(e[o],S(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||=x(i.default)||(i.properties?`object`:`any`),w(i),i}function E(e){return T(e,``,{root:e,cache:/* @__PURE__ */ new Map})}function D(e){if(!e||typeof e!=`object`||Array.isArray(e))return;let t=e;if(delete t.tsType,typeof t.deprecated==`string`&&(t.deprecationMessage=t.deprecated,t.deprecated=!0),`example`in t){let e=t.example;delete t.example,t.examples=Array.isArray(e)?e:[e]}for(let e of[`properties`,`$defs`]){let n=t[e];if(n&&typeof n==`object`&&!Array.isArray(n))for(let e of Object.values(n))D(e)}for(let e of[`items`,`additionalProperties`])D(t[e]);for(let e of[`anyOf`,`oneOf`,`allOf`]){let n=t[e];if(Array.isArray(n))for(let e of n)D(e)}}function O(e){let t=s(e);if(!t)return{};let n=t.$defs??{},r={};for(let[e,t]of Object.entries(n))r[e]=E(_(t,!1,n));let i=t.$ref?.split(`/`).pop()??t.id??c(e)?.id??`config`;return r[i]||(r[i]=E(_(t,!1,n))),r}function k(e){return E(v(e))}function A(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 j(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{y as compileZodSchema,j as flattenBaseSchema,r as isSchemaType,a as isZodFunctionSchema,n as isZodSchema,c as metaOf,d as normalizeConfigSchema,D as normalizeJsonSchemaMetadata,m as renderTsType,E as resolveUntypedSchema,A as splitBaseSchema,s as toJsonSchemaSafe,l as toSchemaType,k as zodToJsonSchema,O as zodToSchemaMap,v as zodToUntypedDefinition};
|
|
@@ -1 +1 @@
|
|
|
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{insertMissingJsonc as r,readJsoncFile as i}from"../../shared/src/fs-utils.js";import{errorMessage as a,warningMessage as o}from"../../shared/src/messages.js";import{FORMATTER_PRECEDENCE as s,LINTER_PRECEDENCE as c,resolveFmtTool as l,resolveFmtTools as u,resolveLintTool as d,resolveLintTools as f,sectionConfig as p,sectionEnabled as m}from"../../shared/src/toolchain.js";import"../../shared/src/index.js";import h from"node:fs";const g={oxc:`oxc.oxc-vscode`,biome:`biomejs.biome`,prettier:`esbenp.prettier-vscode`,dprint:`dprint.dprint`},_={oxc:{"source.fixAll.oxc":`explicit`},biome:{"
|
|
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{insertMissingJsonc as r,readJsoncFile as i}from"../../shared/src/fs-utils.js";import{errorMessage as a,warningMessage as o}from"../../shared/src/messages.js";import{FORMATTER_PRECEDENCE as s,LINTER_PRECEDENCE as c,resolveFmtTool as l,resolveFmtTools as u,resolveLintTool as d,resolveLintTools as f,sectionConfig as p,sectionEnabled as m}from"../../shared/src/toolchain.js";import"../../shared/src/index.js";import h from"node:fs";const g={oxc:`oxc.oxc-vscode`,biome:`biomejs.biome`,prettier:`esbenp.prettier-vscode`,dprint:`dprint.dprint`},_={oxc:{"source.fixAll.oxc":`explicit`},biome:{"source.fixAll.biome":`explicit`,"source.organizeImports.biome":`explicit`},eslint:{"source.fixAll.eslint":`explicit`}},v={oxc:[`javascript`,`javascriptreact`,`typescript`,`typescriptreact`,`json`,`jsonc`,`json5`,`css`,`scss`,`less`,`vue`,`svelte`,`markdown`,`mdx`,`yaml`,`graphql`,`handlebars`,`html`],biome:[`javascript`,`javascriptreact`,`typescript`,`typescriptreact`,`json`,`jsonc`,`css`,`graphql`],prettier:[`javascript`,`javascriptreact`,`typescript`,`typescriptreact`,`json`,`jsonc`,`json5`,`css`,`scss`,`less`,`vue`,`svelte`,`markdown`,`mdx`,`yaml`,`graphql`,`handlebars`,`html`],dprint:[`javascript`,`javascriptreact`,`typescript`,`typescriptreact`,`json`,`jsonc`,`markdown`,`toml`]};function y(e){let t=g[e];if(!t)return{};let n=v[e]??v.prettier??[];return{"editor.defaultFormatter":t,"editor.formatOnSave":!0,...e===`oxc`?{"editor.formatOnSaveMode":`file`}:{},...Object.fromEntries(n.map(e=>[`[${e}]`,{"editor.defaultFormatter":t,"editor.formatOnSave":!0}]))}}function b(e,t){for(let[r,i]of Object.entries(t)){let t=e[r];t===void 0?e[r]=i:n(t)&&n(i)&&b(t,i)}}function x(e){return e===!0||n(e)}function S(e,r){if(!n(r))return e;let i=r,a=i.overrides?t(e,i.overrides):e;for(let e of i.exclude??[]){let{[e]:t,...n}=a;a=n}return a}function C(){return{name:`tooling`,enabled:e=>m(e.fmt)||m(e.lint)||m(e.biome),run:e=>{let t=m(e.config.biome),n=u(e.config),r=f(e.config),i=t?s.filter(e=>e===`biome`||n.includes(e)):n,l=t?c.filter(e=>e===`biome`||r.includes(e)):r;return i.length>1&&e.warn(o(`fmt.conflict`,{tools:i.join(`, `),winner:i[0]}),`fmt.conflict`),l.length>1&&e.warn(o(`lint.conflict`,{tools:l.join(`, `),winner:l[0]}),`lint.conflict`),t&&e.warn(a(`deprecated.section.biome`),`deprecated.section.biome`),[]}}}function w(){return{name:`editor-config`,projectTypes:[`monorepo-root`,`project`],enabled:e=>x(m(e.fmt)?p(e.fmt)?.vscode:void 0)||x(m(e.lint)?p(e.lint)?.vscode:void 0),run:t=>{let a=l(t.config),o=d(t.config),s=m(t.config.fmt)?p(t.config.fmt)?.vscode:void 0,c=m(t.config.lint)?p(t.config.lint)?.vscode:void 0,u={};if(x(s)&&a&&Object.assign(u,S(y(a),s)),x(c)&&o&&Object.assign(u,S({"editor.codeActionsOnSave":_[o]??{}},c)),Object.keys(u).length===0)return[];let f=e.join(t.cwd,`.vscode`,`settings.json`),g,v={};if(h.existsSync(f)){g=h.readFileSync(f,`utf-8`);let e=i(f);if(!n(e))return t.warn(`cannot add editor defaults: ${f} is not a JSON object.`,`vscode.settings-invalid`),[];v=e}if(t.check)return[];let C=g===void 0?void 0:r(g,v,u,{ignoreExisting:!0});if(C===void 0){let e=JSON.stringify(v);if(b(v,u),JSON.stringify(v)===e)return[];C=`${JSON.stringify(v,null,4)}\n`}return C!==g&&(h.mkdirSync(e.dirname(f),{recursive:!0}),h.writeFileSync(f,C,`utf-8`)),[]}}}export{w as editorConfigSyncTask,C as toolingConfigTask};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import __tsdown_shims_path from 'node:path';
|
|
2
|
+
import __tsdown_shims_url from 'node:url';
|
|
3
|
+
import { ToolchainConfigSections } from "../../shared/src/config-types.js";
|
|
4
|
+
import { DbxConfig } from "../../shared/src/toolchain.js";
|
|
5
|
+
import { FmtCustomGroup } from "../../shared/src/vite-defaults.js";
|
|
6
|
+
import "../../shared/src/index.js";
|
|
7
|
+
//#region packages/core/src/fmt-groups.d.ts
|
|
8
|
+
/**
|
|
9
|
+
* The environment variable the VS Code extension sets from
|
|
10
|
+
* {@link FORMAT_IMPORT_GROUP_DEFAULTS_SETTING}. `0`/`false` disables the
|
|
11
|
+
* resolved import groups (the default is enabled).
|
|
12
|
+
*/
|
|
13
|
+
export declare const FORMAT_IMPORT_GROUP_DEFAULTS_ENV = "DBX_ENABLE_FORMAT_IMPORT_GROUP_DEFAULTS";
|
|
14
|
+
/** The VS Code setting that toggles the resolved import groups. */
|
|
15
|
+
export declare const FORMAT_IMPORT_GROUP_DEFAULTS_SETTING = "deltabox.toolchain.enableFormatImportGroupDefaults";
|
|
16
|
+
/** The options {@link resolveFmtCustomGroups} accepts. */
|
|
17
|
+
export interface ResolveFmtCustomGroupsOptions extends Pick<ToolchainConfigSections, 'project'> {
|
|
18
|
+
/** Project root to discover the project graph from (default: `process.cwd()`). */
|
|
19
|
+
cwd?: string;
|
|
20
|
+
/** Load this `dbx.config.*` file when resolving the project identity. */
|
|
21
|
+
config?: string;
|
|
22
|
+
}
|
|
23
|
+
/** A loaded `dbx.config` and/or inline `project`, like `ResolveViteInput`. */
|
|
24
|
+
export type ResolveFmtCustomGroupsInput = DbxConfig & ResolveFmtCustomGroupsOptions;
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the `sortImports.customGroups` definitions for every dbx project in
|
|
27
|
+
* the repository. The default uses the project graph (so it is safe to call
|
|
28
|
+
* from inside a `dbx.config.*`); `config` or an inline `project` adds a project
|
|
29
|
+
* whose identity is not in the graph.
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveFmtCustomGroups(input?: ResolveFmtCustomGroupsInput | null): Promise<FmtCustomGroup[]>;
|
|
32
|
+
//#endregion
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{default as e}from"node:path";import"node:url";import.meta.url;import{readJsonAt as t,readJsoncAt as n}from"../../shared/src/fs-utils.js";import{projectFromPackageJson as r,splitPackageName as i}from"../../shared/src/project.js";import{fmtCustomGroupsForProjects as a}from"../../shared/src/vite-defaults.js";import"../../shared/src/index.js";import{loadToolchainConfig as o}from"./loader.js";import{buildProjectGraph as s}from"./graph.js";import c from"node:fs";const l=`DBX_ENABLE_FORMAT_IMPORT_GROUP_DEFAULTS`,u=`deltabox.toolchain.enableFormatImportGroupDefaults`;function d(e){try{let t=n(e,`.vscode/settings.json`)?.[u];return typeof t==`boolean`?t:void 0}catch{return}}function f(t,n){let r=process.env[l]?.trim().toLowerCase();if(r)return![`0`,`false`,`off`,`no`,`disabled`].includes(r);for(let r of/* @__PURE__ */ new Set([e.resolve(t),e.resolve(n)])){let e=d(r);if(e!==void 0)return e}return!0}function p(t){let n=e.resolve(t);for(;;){if(c.existsSync(e.join(n,`.git`)))return n;let r=e.dirname(n);if(r===n)return e.resolve(t);n=r}}function m(e){let n=t(e,`package.json`);return n?r(n):{}}const h=/(^|\/)(?:test-)?fixtures?(?:\/|$)/i;async function g(t){let n=t??{},r=n.cwd?e.resolve(n.cwd):process.cwd(),c=p(r);if(!f(r,c))return[];let l=s(c).dbxProjects.filter(e=>!h.test(e.dir)).map(e=>i(e.name)),u;if(n.config){let t=e.isAbsolute(n.config)?n.config:e.resolve(r,n.config),i=await o(c,{config:t,skipHooks:!0,tolerant:!0});u={...m(e.dirname(t)),...i.config.project}}else{let e={...n.toolchain?.project,...n.project};Object.keys(e).length>0&&(u=e)}return u&&l.push(u),a(l)}export{l as FORMAT_IMPORT_GROUP_DEFAULTS_ENV,u as FORMAT_IMPORT_GROUP_DEFAULTS_SETTING,g as resolveFmtCustomGroups};
|