@zaowu-labs/config 1.0.2 → 1.0.6

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/README.md CHANGED
@@ -9,4 +9,8 @@ Safety:
9
9
 
10
10
  - Config writes preview by default.
11
11
  - Secret-like keys such as tokens, passwords, and API keys are rejected.
12
+ - YAML scalar edits preserve surrounding keys and comments, including flow
13
+ mappings and multiline values. JSON config roots must be objects.
14
+ - Full rewrites refuse unknown keys, including keys named `constructor` or
15
+ `__proto__`, rather than silently dropping user data.
12
16
  - Future migrations should preserve a preview path before writing files.
package/dist/index.d.ts CHANGED
@@ -77,6 +77,8 @@ export declare const getDefaultConfigContent: (filePath?: string) => string;
77
77
  export declare const parseConfig: (content: string, filePath?: string) => ZaoWuConfig;
78
78
  export declare const findConfigPathOrThrow: (cwd?: string) => Promise<string>;
79
79
  export declare const loadResolvedConfig: (cwd?: string) => Promise<ResolvedConfig>;
80
+ /** Optional preferences for commands that also work outside a configured project. */
81
+ export declare const loadOptionalResolvedConfig: (cwd?: string) => Promise<ResolvedConfig | null>;
80
82
  export declare const validateResolvedConfig: (cwd?: string) => Promise<ConfigValidationResult>;
81
83
  export declare const getResolvedConfigValue: (key: string, cwd?: string) => Promise<ConfigGetResult>;
82
84
  export declare const setResolvedConfigValue: (key: string, value: string, options?: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAE1B,eAAO,MAAM,iBAAiB,iEAAkE,CAAC;AAEjG,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;KAC1B,CAAC;IACF,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,cAAc,GACd,aAAa,GACb,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,CAAC;AAElB,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,SAAS,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,EAAE,gBAyC3B,CAAC;AAyCF,eAAO,MAAM,mBAAmB,QAAO,WAcrC,CAAC;AAWH,eAAO,MAAM,mBAAmB,QAAO,MAUtC,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,WAAW,GAAG,IAAI,CAYnE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAQ,WAAW,EAAE,SAAS,WAAW,KAAG,WAiBxE,CAAC;AAUF,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EACf,KAAK,SAAS,EACd,OAAO,MAAM,GAAG,IAAI,KACnB,MAyCF,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,UAAS,qBAA0B,KAClC,OAAO,CAAC,MAAM,GAAG,IAAI,CAqBvB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,YAAY,CAQvE,CAAC;AA8MF,eAAO,MAAM,eAAe,GAAI,QAAQ,WAAW,EAAE,UAAU,MAAM,KAAG,MAwBvE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,iBAAmB,KAAG,MACZ,CAAC;AAoBnD,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,iBAAmB,KAAG,WA0BlE,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,MAAM,CAaxE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,cAAc,CAa7E,CAAC;AAsBF,eAAO,MAAM,sBAAsB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,sBAAsB,CAWzF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,KAAK,MAAM,EACX,MAAM,MAAM,KACX,OAAO,CAAC,eAAe,CAWzB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,KAAK,MAAM,EACX,OAAO,MAAM,EACb,UAAS;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,KAC9D,OAAO,CAAC,eAAe,CAiDzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,UAAS;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,KAC5C,OAAO,CAAC,qBAAqB,CAmC/B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -59,14 +59,6 @@ const assertNoSecretValues = (value) => {
59
59
  });
60
60
  }
61
61
  };
62
- const CONFIG_KEYS = [
63
- 'version',
64
- 'project.name',
65
- 'ai.provider',
66
- 'defaults.output',
67
- 'paths.workspace',
68
- 'paths.cache',
69
- ];
70
62
  const DEFAULT_CONFIG = {
71
63
  version: 1,
72
64
  project: {
@@ -83,21 +75,78 @@ const DEFAULT_CONFIG = {
83
75
  cache: '.zaowu/cache',
84
76
  },
85
77
  };
86
- export const createDefaultConfig = () => ({
87
- version: DEFAULT_CONFIG.version,
88
- project: {
89
- ...DEFAULT_CONFIG.project,
78
+ const cloneConfig = (config) => ({
79
+ version: config.version,
80
+ project: { ...config.project },
81
+ ai: { ...config.ai },
82
+ defaults: { ...config.defaults },
83
+ paths: { ...config.paths },
84
+ });
85
+ export const createDefaultConfig = () => cloneConfig(DEFAULT_CONFIG);
86
+ /**
87
+ * Single source of truth for the managed config schema. Adding a key means
88
+ * adding one descriptor here (plus the `ConfigKey` union member and, for a new
89
+ * section or YAML line, one `YAML_CONFIG_LAYOUT` entry) — `CONFIG_KEYS`,
90
+ * `getConfigValue`, `withConfigValue`, `serializeConfig`, and
91
+ * `KNOWN_CONFIG_KEYS` all derive from these tables. The `Record<ConfigKey, …>`
92
+ * type keeps the table compile-time exhaustive.
93
+ */
94
+ const CONFIG_KEY_DESCRIPTORS = {
95
+ version: {
96
+ get: (config) => String(config.version),
97
+ set: (config) => {
98
+ config.version = 1;
99
+ },
90
100
  },
91
- ai: {
92
- ...DEFAULT_CONFIG.ai,
101
+ 'project.name': {
102
+ get: (config) => config.project.name,
103
+ set: (config, value) => {
104
+ config.project.name = value ?? DEFAULT_CONFIG.project.name;
105
+ },
93
106
  },
94
- defaults: {
95
- ...DEFAULT_CONFIG.defaults,
107
+ 'ai.provider': {
108
+ get: (config) => config.ai.provider,
109
+ set: (config, value) => {
110
+ config.ai.provider = value;
111
+ },
96
112
  },
97
- paths: {
98
- ...DEFAULT_CONFIG.paths,
113
+ 'defaults.output': {
114
+ get: (config) => config.defaults.output,
115
+ set: (config, value) => {
116
+ config.defaults.output = value === 'json' ? 'json' : 'human';
117
+ },
99
118
  },
100
- });
119
+ 'paths.workspace': {
120
+ get: (config) => config.paths.workspace,
121
+ set: (config, value) => {
122
+ config.paths.workspace = value ?? DEFAULT_CONFIG.paths.workspace;
123
+ },
124
+ },
125
+ 'paths.cache': {
126
+ get: (config) => config.paths.cache,
127
+ set: (config, value) => {
128
+ config.paths.cache = value ?? DEFAULT_CONFIG.paths.cache;
129
+ },
130
+ },
131
+ };
132
+ const CONFIG_KEYS = Object.keys(CONFIG_KEY_DESCRIPTORS);
133
+ /**
134
+ * Section-by-section YAML layout. `serializeConfig` emits exactly these lines
135
+ * (the byte layout is contract: `migrateResolvedConfig` compares it against
136
+ * file content), and `KNOWN_CONFIG_KEYS` derives its section map from it.
137
+ */
138
+ const YAML_CONFIG_LAYOUT = [
139
+ { section: 'project', entries: [{ key: 'project.name', yamlKey: 'name' }] },
140
+ { section: 'ai', entries: [{ key: 'ai.provider', yamlKey: 'provider' }] },
141
+ { section: 'defaults', entries: [{ key: 'defaults.output', yamlKey: 'output' }] },
142
+ {
143
+ section: 'paths',
144
+ entries: [
145
+ { key: 'paths.workspace', yamlKey: 'workspace' },
146
+ { key: 'paths.cache', yamlKey: 'cache' },
147
+ ],
148
+ },
149
+ ];
101
150
  const isReadableFile = async (filePath) => {
102
151
  try {
103
152
  await access(filePath, constants.R_OK);
@@ -117,14 +166,8 @@ export const getGlobalConfigPath = () => {
117
166
  export const loadGlobalConfig = async () => {
118
167
  const globalPath = getGlobalConfigPath();
119
168
  if (await isReadableFile(globalPath)) {
120
- try {
121
- const content = await readFile(globalPath, 'utf8');
122
- return parseConfig(content, globalPath);
123
- }
124
- catch {
125
- // Global config is optional — silently ignore parse errors and fall back to defaults.
126
- return null;
127
- }
169
+ const loaded = await loadConfig(globalPath);
170
+ return parseConfig(loaded.content, globalPath);
128
171
  }
129
172
  return null;
130
173
  };
@@ -153,41 +196,27 @@ const formatYamlConfigValue = (key, value) => {
153
196
  return value === null ? 'null' : JSON.stringify(value);
154
197
  };
155
198
  export const modifyYamlContent = (content, key, value) => {
156
- const lines = content.split(/\r?\n/);
157
- const parts = key.split('.');
158
- if (parts.length === 1) {
159
- const searchKey = parts[0];
160
- const index = lines.findIndex((l) => new RegExp(`^${searchKey}:\\s*`).test(l.trim()));
161
- const formattedValue = formatYamlConfigValue(key, value);
162
- if (index !== -1) {
163
- lines[index] = `${searchKey}: ${formattedValue}`;
164
- return lines.join('\n');
165
- }
166
- }
167
- else if (parts.length === 2) {
168
- const section = parts[0];
169
- const subKey = parts[1];
170
- let inSection = false;
171
- for (let i = 0; i < lines.length; i++) {
172
- const line = lines[i];
173
- const trimmed = line.trim();
174
- const indent = line.length - line.trimStart().length;
175
- if (indent === 0 && trimmed.startsWith(`${section}:`)) {
176
- inSection = true;
177
- continue;
178
- }
179
- if (inSection && indent === 0 && trimmed && !trimmed.startsWith('#')) {
180
- break;
181
- }
182
- if (inSection && indent > 0 && trimmed.startsWith(`${subKey}:`)) {
183
- const formattedValue = formatYamlConfigValue(key, value);
184
- const leadingIndent = ' '.repeat(indent);
185
- lines[i] = `${leadingIndent}${subKey}: ${formattedValue}`;
186
- return lines.join('\n');
187
- }
188
- }
189
- }
190
- return '';
199
+ const normalized = stripUtf8Bom(content);
200
+ const document = YAML.parseDocument(normalized);
201
+ const node = document.getIn(key.split('.'), true);
202
+ // Replace only the scalar's source range. Line matching can hit nested keys
203
+ // or leave the continuation lines of a block scalar behind.
204
+ if (document.errors.length > 0 || !YAML.isScalar(node) || !node.range) {
205
+ return '';
206
+ }
207
+ const [start, end] = node.range;
208
+ const originalValue = normalized.slice(start, end);
209
+ const trailingNewline = /\r?\n$/.exec(originalValue)?.[0] ?? '';
210
+ const bom = content.startsWith('\uFEFF') ? '\uFEFF' : '';
211
+ const prefix = normalized.slice(0, start);
212
+ const suffix = normalized.slice(end);
213
+ return (bom +
214
+ prefix +
215
+ (prefix.endsWith(':') ? ' ' : '') +
216
+ formatYamlConfigValue(key, value) +
217
+ trailingNewline +
218
+ (suffix.startsWith('#') ? ' ' : '') +
219
+ suffix);
191
220
  };
192
221
  export const findConfigFile = async (options = {}) => {
193
222
  const names = options.names ?? CONFIG_FILE_NAMES;
@@ -214,20 +243,25 @@ export const loadConfig = async (filePath) => {
214
243
  content,
215
244
  };
216
245
  };
246
+ const configParseError = (error, fallbackWhy, fix) => new ZaoWuError({
247
+ code: 'CONFIG_PARSE_FAILED',
248
+ message: 'Could not parse ZaoWu config.',
249
+ why: error instanceof Error ? error.message : fallbackWhy,
250
+ fix,
251
+ });
217
252
  const parseConfigObject = (content, filePath) => {
218
253
  const normalizedContent = stripUtf8Bom(content);
219
254
  const extension = path.extname(filePath).toLowerCase();
220
255
  if (extension === '.json' || path.basename(filePath) === '.zaowurc') {
221
256
  try {
222
- return JSON.parse(normalizedContent);
257
+ const parsed = JSON.parse(normalizedContent);
258
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
259
+ throw new Error('Config must be a JSON object.');
260
+ }
261
+ return parsed;
223
262
  }
224
263
  catch (error) {
225
- throw new ZaoWuError({
226
- code: 'CONFIG_PARSE_FAILED',
227
- message: 'Could not parse ZaoWu config.',
228
- why: error instanceof Error ? error.message : 'The JSON parser rejected the file.',
229
- fix: 'Fix the JSON syntax and run `zw config show` again.',
230
- });
264
+ throw configParseError(error, 'The JSON parser rejected the file.', 'Fix the JSON syntax and run `zw config show` again.');
231
265
  }
232
266
  }
233
267
  if (['.yml', '.yaml', ''].includes(extension)) {
@@ -242,12 +276,7 @@ const parseConfigObject = (content, filePath) => {
242
276
  return parsed;
243
277
  }
244
278
  catch (error) {
245
- throw new ZaoWuError({
246
- code: 'CONFIG_PARSE_FAILED',
247
- message: 'Could not parse ZaoWu config.',
248
- why: error instanceof Error ? error.message : 'The YAML parser rejected the file.',
249
- fix: 'Use the supported simple subset (top-level keys + one level of 2-space indented sections) or switch to JSON (zaowu.config.json).',
250
- });
279
+ throw configParseError(error, 'The YAML parser rejected the file.', 'Use the supported simple subset (top-level keys + one level of 2-space indented sections) or switch to JSON (zaowu.config.json).');
251
280
  }
252
281
  }
253
282
  throw new ZaoWuError({
@@ -257,10 +286,11 @@ const parseConfigObject = (content, filePath) => {
257
286
  fix: 'Use `zw.yml`, `zw.yaml`, `zaowu.config.json`, or `.zaowurc` for now.',
258
287
  });
259
288
  };
260
- const assertNoSecretKeys = (value, pathParts = []) => {
261
- if (!value || typeof value !== 'object') {
289
+ const assertNoSecretKeys = (value, pathParts = [], visited = new WeakSet()) => {
290
+ if (!value || typeof value !== 'object' || visited.has(value)) {
262
291
  return;
263
292
  }
293
+ visited.add(value);
264
294
  for (const [key, child] of Object.entries(value)) {
265
295
  if (SECRET_KEY_PATTERN.test(key)) {
266
296
  throw new ZaoWuError({
@@ -270,7 +300,7 @@ const assertNoSecretKeys = (value, pathParts = []) => {
270
300
  fix: 'Move secrets to environment variables or a future explicit secret provider.',
271
301
  });
272
302
  }
273
- assertNoSecretKeys(child, [...pathParts, key]);
303
+ assertNoSecretKeys(child, [...pathParts, key], visited);
274
304
  }
275
305
  };
276
306
  const getObject = (value) => value && typeof value === 'object' && !Array.isArray(value)
@@ -278,8 +308,15 @@ const getObject = (value) => value && typeof value === 'object' && !Array.isArra
278
308
  : {};
279
309
  const getString = (value, fallback) => typeof value === 'string' && value.trim() ? value.trim() : fallback;
280
310
  const getOutput = (value) => (value === 'json' ? 'json' : 'human');
281
- const getVersion = (value) => {
282
- if (value === undefined || value === null || value === '' || value === 1 || value === '1') {
311
+ /**
312
+ * Returns 1 for a supported declared version, null when no version is
313
+ * declared, and throws for anything else.
314
+ */
315
+ const parseSupportedConfigVersion = (value) => {
316
+ if (value === undefined || value === null || value === '') {
317
+ return null;
318
+ }
319
+ if (value === 1 || value === '1') {
283
320
  return 1;
284
321
  }
285
322
  throw new ZaoWuError({
@@ -289,6 +326,7 @@ const getVersion = (value) => {
289
326
  fix: 'Run a newer ZaoWu version that supports this config, or migrate the file manually.',
290
327
  });
291
328
  };
329
+ const getVersion = (value) => parseSupportedConfigVersion(value) ?? 1;
292
330
  const assertConfigKey = (key) => {
293
331
  if (SECRET_KEY_PATTERN.test(key)) {
294
332
  throw new ZaoWuError({
@@ -308,84 +346,35 @@ const assertConfigKey = (key) => {
308
346
  }
309
347
  return key;
310
348
  };
349
+ const configValueInvalidError = (why, fix) => new ZaoWuError({
350
+ code: 'CONFIG_VALUE_INVALID',
351
+ message: 'Config value is invalid.',
352
+ why,
353
+ fix,
354
+ });
311
355
  const normalizeConfigValue = (key, value) => {
312
356
  const trimmed = value.trim();
313
357
  if (key === 'ai.provider' && ['none', 'null'].includes(trimmed.toLowerCase())) {
314
358
  return null;
315
359
  }
316
360
  if (key === 'defaults.output' && !['human', 'json'].includes(trimmed)) {
317
- throw new ZaoWuError({
318
- code: 'CONFIG_VALUE_INVALID',
319
- message: 'Config value is invalid.',
320
- why: '`defaults.output` must be either `human` or `json`.',
321
- fix: 'Run `zw config set defaults.output json --yes` or `zw config set defaults.output human --yes`.',
322
- });
361
+ throw configValueInvalidError('`defaults.output` must be either `human` or `json`.', 'Run `zw config set defaults.output json --yes` or `zw config set defaults.output human --yes`.');
323
362
  }
324
363
  if (key === 'version' && trimmed !== '1') {
325
- throw new ZaoWuError({
326
- code: 'CONFIG_VALUE_INVALID',
327
- message: 'Config value is invalid.',
328
- why: '`version` must be `1` in this ZaoWu release.',
329
- fix: 'Run `zw config migrate` to preview the supported config version.',
330
- });
364
+ throw configValueInvalidError('`version` must be `1` in this ZaoWu release.', 'Run `zw config migrate` to preview the supported config version.');
331
365
  }
332
366
  if (!trimmed) {
333
- throw new ZaoWuError({
334
- code: 'CONFIG_VALUE_INVALID',
335
- message: 'Config value is invalid.',
336
- why: `\`${key}\` cannot be empty.`,
337
- fix: 'Provide a non-empty value.',
338
- });
367
+ throw configValueInvalidError(`\`${key}\` cannot be empty.`, 'Provide a non-empty value.');
339
368
  }
340
369
  if (['paths.workspace', 'paths.cache'].includes(key)) {
341
370
  return trimmed.replace(/\\/g, '/');
342
371
  }
343
372
  return trimmed;
344
373
  };
345
- const getConfigValue = (config, key) => {
346
- switch (key) {
347
- case 'version':
348
- return String(config.version);
349
- case 'project.name':
350
- return config.project.name;
351
- case 'ai.provider':
352
- return config.ai.provider;
353
- case 'defaults.output':
354
- return config.defaults.output;
355
- case 'paths.workspace':
356
- return config.paths.workspace;
357
- case 'paths.cache':
358
- return config.paths.cache;
359
- }
360
- };
374
+ const getConfigValue = (config, key) => CONFIG_KEY_DESCRIPTORS[key].get(config);
361
375
  const withConfigValue = (config, key, value) => {
362
- const next = {
363
- version: config.version,
364
- project: { ...config.project },
365
- ai: { ...config.ai },
366
- defaults: { ...config.defaults },
367
- paths: { ...config.paths },
368
- };
369
- switch (key) {
370
- case 'version':
371
- next.version = 1;
372
- break;
373
- case 'project.name':
374
- next.project.name = value ?? DEFAULT_CONFIG.project.name;
375
- break;
376
- case 'ai.provider':
377
- next.ai.provider = value;
378
- break;
379
- case 'defaults.output':
380
- next.defaults.output = value === 'json' ? 'json' : 'human';
381
- break;
382
- case 'paths.workspace':
383
- next.paths.workspace = value ?? DEFAULT_CONFIG.paths.workspace;
384
- break;
385
- case 'paths.cache':
386
- next.paths.cache = value ?? DEFAULT_CONFIG.paths.cache;
387
- break;
388
- }
376
+ const next = cloneConfig(config);
377
+ CONFIG_KEY_DESCRIPTORS[key].set(next, value);
389
378
  return next;
390
379
  };
391
380
  export const serializeConfig = (config, filePath) => {
@@ -395,19 +384,11 @@ export const serializeConfig = (config, filePath) => {
395
384
  }
396
385
  return [
397
386
  'version: 1',
398
- '',
399
- 'project:',
400
- ` name: ${formatYamlConfigValue('project.name', config.project.name)}`,
401
- '',
402
- 'ai:',
403
- ` provider: ${formatYamlConfigValue('ai.provider', config.ai.provider)}`,
404
- '',
405
- 'defaults:',
406
- ` output: ${formatYamlConfigValue('defaults.output', config.defaults.output)}`,
407
- '',
408
- 'paths:',
409
- ` workspace: ${formatYamlConfigValue('paths.workspace', config.paths.workspace)}`,
410
- ` cache: ${formatYamlConfigValue('paths.cache', config.paths.cache)}`,
387
+ ...YAML_CONFIG_LAYOUT.flatMap(({ section, entries }) => [
388
+ '',
389
+ `${section}:`,
390
+ ...entries.map(({ key, yamlKey }) => ` ${yamlKey}: ${formatYamlConfigValue(key, CONFIG_KEY_DESCRIPTORS[key].get(config))}`),
391
+ ]),
411
392
  '',
412
393
  ].join('\n');
413
394
  };
@@ -450,6 +431,53 @@ export const parseConfig = (content, filePath = 'zw.yml') => {
450
431
  },
451
432
  };
452
433
  };
434
+ const KNOWN_CONFIG_KEYS = {
435
+ version: null,
436
+ ...Object.fromEntries(YAML_CONFIG_LAYOUT.map(({ section, entries }) => [
437
+ section,
438
+ entries.map((entry) => entry.yamlKey),
439
+ ])),
440
+ };
441
+ const collectUnknownConfigKeys = (parsed) => {
442
+ const unknownKeys = [];
443
+ for (const [key, value] of Object.entries(parsed)) {
444
+ if (!Object.hasOwn(KNOWN_CONFIG_KEYS, key)) {
445
+ unknownKeys.push(key);
446
+ continue;
447
+ }
448
+ const allowedSubKeys = KNOWN_CONFIG_KEYS[key];
449
+ if (allowedSubKeys && value && typeof value === 'object' && !Array.isArray(value)) {
450
+ for (const subKey of Object.keys(value)) {
451
+ if (!allowedSubKeys.includes(subKey)) {
452
+ unknownKeys.push(`${key}.${subKey}`);
453
+ }
454
+ }
455
+ }
456
+ }
457
+ return unknownKeys;
458
+ };
459
+ /**
460
+ * Guards against silent data loss. A full canonical re-serialization only emits
461
+ * the documented schema fields, so any unrecognized key the user placed in the
462
+ * file would be dropped. When such a rewrite is unavoidable (JSON files, or YAML
463
+ * whose target section is missing so the surgical edit fails), refuse instead of
464
+ * discarding the user's keys.
465
+ */
466
+ const assertNoUnknownConfigKeysOnRewrite = (content, filePath) => {
467
+ const parsed = parseConfigObject(content, filePath);
468
+ const unknownKeys = collectUnknownConfigKeys(parsed);
469
+ if (unknownKeys.length === 0) {
470
+ return;
471
+ }
472
+ const keyLabel = unknownKeys.length === 1 ? 'key' : 'keys';
473
+ throw new ZaoWuError({
474
+ code: 'CONFIG_KEY_UNSUPPORTED',
475
+ message: `Config file contains ${keyLabel} ZaoWu does not recognize.`,
476
+ why: `Writing \`${filePath}\` would drop the unrecognized ${keyLabel}: ${unknownKeys.join(', ')}. ` +
477
+ 'ZaoWu only serializes documented configuration fields.',
478
+ fix: 'Remove the unrecognized keys from the config file (or keep only documented ZaoWu keys), then run the command again.',
479
+ });
480
+ };
453
481
  export const findConfigPathOrThrow = async (cwd) => {
454
482
  const filePath = await findConfigFile({ cwd });
455
483
  if (!filePath) {
@@ -474,22 +502,14 @@ export const loadResolvedConfig = async (cwd) => {
474
502
  config: mergedConfig,
475
503
  };
476
504
  };
477
- const getRawConfigVersion = (content, filePath) => {
478
- const parsed = parseConfigObject(content, filePath);
479
- const rawVersion = parsed.version;
480
- if (rawVersion === undefined || rawVersion === null || rawVersion === '') {
481
- return null;
482
- }
483
- if (rawVersion === 1 || rawVersion === '1') {
484
- return 1;
485
- }
486
- throw new ZaoWuError({
487
- code: 'CONFIG_VERSION_UNSUPPORTED',
488
- message: 'Config version is not supported.',
489
- why: `ZaoWu supports config version 1, but this file declares \`${String(rawVersion)}\`.`,
490
- fix: 'Run a newer ZaoWu version that supports this config, or migrate the file manually.',
491
- });
505
+ /** Optional preferences for commands that also work outside a configured project. */
506
+ export const loadOptionalResolvedConfig = async (cwd) => {
507
+ if (await findConfigFile({ cwd }))
508
+ return await loadResolvedConfig(cwd);
509
+ const global = await loadGlobalConfig();
510
+ return global ? { schemaVersion: 1, filePath: getGlobalConfigPath(), config: global } : null;
492
511
  };
512
+ const getRawConfigVersion = (content, filePath) => parseSupportedConfigVersion(parseConfigObject(content, filePath).version);
493
513
  export const validateResolvedConfig = async (cwd) => {
494
514
  const resolved = await loadResolvedConfig(cwd);
495
515
  const warnings = getValidationWarnings(resolved.config);
@@ -536,6 +556,9 @@ export const setResolvedConfigValue = async (key, value, options = {}) => {
536
556
  }
537
557
  }
538
558
  if (!content) {
559
+ if (loadedContent) {
560
+ assertNoUnknownConfigKeysOnRewrite(loadedContent, filePath);
561
+ }
539
562
  content = serializeConfig(nextConfig, filePath);
540
563
  }
541
564
  if (options.yes) {
@@ -558,6 +581,7 @@ export const migrateResolvedConfig = async (options = {}) => {
558
581
  const loaded = await loadConfig(filePath);
559
582
  const fromVersion = getRawConfigVersion(loaded.content, loaded.filePath);
560
583
  const config = parseConfig(loaded.content, loaded.filePath);
584
+ assertNoUnknownConfigKeysOnRewrite(loaded.content, filePath);
561
585
  const content = serializeConfig(config, filePath);
562
586
  const changed = fromVersion !== 1 || stripUtf8Bom(loaded.content) !== content;
563
587
  if (!changed) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaowu-labs/config",
3
- "version": "1.0.2",
3
+ "version": "1.0.6",
4
4
  "description": "ZaoWu configuration management",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "yaml": "^2.9.0",
24
- "@zaowu-labs/core": "1.0.2"
24
+ "@zaowu-labs/core": "1.0.6"
25
25
  },
26
26
  "keywords": [
27
27
  "zaowu",