@vibe-validate/config 0.14.2 → 0.15.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -37,7 +37,7 @@ All templates: https://github.com/jdutton/vibe-validate/tree/main/packages/cli/c
37
37
 
38
38
  <!-- config:example -->
39
39
  ```yaml
40
- $schema: https://raw.githubusercontent.com/jdutton/vibe-validate/main/packages/config/vibe-validate.schema.json
40
+ $schema: https://unpkg.com/@vibe-validate/config/config.schema.json
41
41
 
42
42
  # Git settings
43
43
  git:
@@ -74,15 +74,26 @@ The `$schema` property enables IDE autocomplete and validation:
74
74
 
75
75
  <!-- config:partial -->
76
76
  ```yaml
77
- $schema: https://raw.githubusercontent.com/jdutton/vibe-validate/main/packages/config/vibe-validate.schema.json
77
+ # Version-pinned (recommended for production)
78
+ $schema: https://unpkg.com/@vibe-validate/config@0.15.0/config.schema.json
79
+
80
+ # Latest version (auto-updates to newest)
81
+ $schema: https://unpkg.com/@vibe-validate/config/config.schema.json
78
82
  ```
79
83
 
84
+ **Versioning Strategy:**
85
+ - **Version-pinned URLs** - Match your installed package version, stable API
86
+ - **Latest URLs** - Auto-update to newest schema, good for docs/prototyping
87
+ - **`vibe-validate init`** - Automatically generates version-pinned URLs
88
+
80
89
  This gives you:
81
90
  - ✅ Autocomplete for all configuration properties
82
91
  - ✅ Inline validation errors
83
92
  - ✅ Hover documentation for each field
84
93
  - ✅ Type checking for YAML configs
85
94
 
95
+ See [Schema Documentation](../../docs/schemas.md) for complete details on versioning and all published schemas.
96
+
86
97
  ## API (Programmatic Usage)
87
98
 
88
99
  ### `loadConfig(cwd?)`
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  * @example Basic YAML configuration
8
8
  * ```yaml
9
9
  * # vibe-validate.config.yaml
10
- * $schema: https://raw.githubusercontent.com/jdutton/vibe-validate/main/packages/config/vibe-validate.schema.json
10
+ * $schema: https://raw.githubusercontent.com/jdutton/vibe-validate/main/packages/config/config.schema.json
11
11
  *
12
12
  * git:
13
13
  * mainBranch: main
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * @example Basic YAML configuration
8
8
  * ```yaml
9
9
  * # vibe-validate.config.yaml
10
- * $schema: https://raw.githubusercontent.com/jdutton/vibe-validate/main/packages/config/vibe-validate.schema.json
10
+ * $schema: https://raw.githubusercontent.com/jdutton/vibe-validate/main/packages/config/config.schema.json
11
11
  *
12
12
  * git:
13
13
  * mainBranch: main
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;AAE5D;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAqB7B;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAQzC"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,8BAA8B,CAAC;AAE5D;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAqB7B;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CASzC"}
package/dist/loader.js CHANGED
@@ -3,8 +3,8 @@
3
3
  *
4
4
  * Loads and resolves vibe-validate configuration from YAML files.
5
5
  */
6
- import { resolve, dirname } from 'path';
7
- import { readFileSync } from 'fs';
6
+ import { resolve, dirname } from 'node:path';
7
+ import { readFileSync } from 'node:fs';
8
8
  import { parse as parseYaml } from 'yaml';
9
9
  import { validateConfig } from './schema.js';
10
10
  /**
@@ -49,7 +49,8 @@ export async function findAndLoadConfig(cwd = process.cwd()) {
49
49
  try {
50
50
  return await loadConfigFromFile(configPath);
51
51
  }
52
- catch (_err) {
52
+ catch {
53
+ // Config file doesn't exist or failed to load - return undefined
53
54
  return undefined;
54
55
  }
55
56
  }
@@ -9,7 +9,7 @@
9
9
  *
10
10
  * This schema can be referenced in YAML files using the $schema property:
11
11
  * ```yaml
12
- * $schema: ./node_modules/@vibe-validate/config/vibe-validate.schema.json
12
+ * $schema: ./node_modules/@vibe-validate/config/config.schema.json
13
13
  * validation:
14
14
  * phases: []
15
15
  * ```
@@ -11,7 +11,7 @@ import { VibeValidateConfigSchema } from './schema.js';
11
11
  *
12
12
  * This schema can be referenced in YAML files using the $schema property:
13
13
  * ```yaml
14
- * $schema: ./node_modules/@vibe-validate/config/vibe-validate.schema.json
14
+ * $schema: ./node_modules/@vibe-validate/config/config.schema.json
15
15
  * validation:
16
16
  * phases: []
17
17
  * ```
package/dist/schema.d.ts CHANGED
@@ -234,7 +234,7 @@ export declare const ValidationConfigSchema: z.ZodObject<{
234
234
  }[];
235
235
  failFast?: boolean | undefined;
236
236
  }>;
237
- export type ValidationConfig = z.infer<typeof ValidationConfigSchema>;
237
+ export type ValidationConfig = z.input<typeof ValidationConfigSchema>;
238
238
  /**
239
239
  * Git Config Schema
240
240
  */
@@ -749,7 +749,7 @@ export declare const VibeValidateConfigSchema: z.ZodObject<{
749
749
  } | undefined;
750
750
  developerFeedback?: boolean | undefined;
751
751
  }>;
752
- export type VibeValidateConfig = z.infer<typeof VibeValidateConfigSchema>;
752
+ export type VibeValidateConfig = z.input<typeof VibeValidateConfigSchema>;
753
753
  /**
754
754
  * Validate configuration object
755
755
  *
@@ -759,14 +759,20 @@ export type VibeValidateConfig = z.infer<typeof VibeValidateConfigSchema>;
759
759
  */
760
760
  export declare function validateConfig(config: unknown): VibeValidateConfig;
761
761
  /**
762
- * Safely validate configuration with detailed error messages
762
+ * Safe validation function for VibeValidateConfig
763
763
  *
764
- * @param config - Configuration object to validate
765
- * @returns Result object with success flag and data or errors
764
+ * NOTE: This duplicates the pattern from @vibe-validate/core's createSafeValidator.
765
+ * We can't import from core here due to circular dependency (core → config).
766
+ * This is an acceptable trade-off for a foundational package.
767
+ *
768
+ * @param config - Configuration data to validate
769
+ * @returns Validation result with success/error information
766
770
  */
767
771
  export declare function safeValidateConfig(config: unknown): {
768
- success: boolean;
769
- data?: VibeValidateConfig;
770
- errors?: string[];
772
+ success: true;
773
+ data: VibeValidateConfig;
774
+ } | {
775
+ success: false;
776
+ errors: string[];
771
777
  };
772
778
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/schema.js CHANGED
@@ -90,10 +90,7 @@ export const SecretScanningSchema = z.object({
90
90
  scanCommand: z.string().min(1, 'scanCommand cannot be empty').optional(),
91
91
  }).strict().refine((data) => {
92
92
  // If enabled is true, scanCommand must be provided
93
- if (data.enabled && !data.scanCommand) {
94
- return false;
95
- }
96
- return true;
93
+ return !data.enabled || !!data.scanCommand;
97
94
  }, {
98
95
  message: 'scanCommand is required when secret scanning is enabled',
99
96
  path: ['scanCommand'],
@@ -187,20 +184,24 @@ export function validateConfig(config) {
187
184
  return VibeValidateConfigSchema.parse(config);
188
185
  }
189
186
  /**
190
- * Safely validate configuration with detailed error messages
187
+ * Safe validation function for VibeValidateConfig
191
188
  *
192
- * @param config - Configuration object to validate
193
- * @returns Result object with success flag and data or errors
189
+ * NOTE: This duplicates the pattern from @vibe-validate/core's createSafeValidator.
190
+ * We can't import from core here due to circular dependency (core → config).
191
+ * This is an acceptable trade-off for a foundational package.
192
+ *
193
+ * @param config - Configuration data to validate
194
+ * @returns Validation result with success/error information
194
195
  */
195
196
  export function safeValidateConfig(config) {
196
197
  const result = VibeValidateConfigSchema.safeParse(config);
197
198
  if (result.success) {
198
199
  return { success: true, data: result.data };
199
200
  }
200
- // Format Zod errors into readable messages
201
- const errors = result.error.issues.map(err => {
202
- const path = err.path.map(String).join('.');
203
- return `${path}: ${err.message}`;
201
+ // Extract error messages with full path
202
+ const errors = result.error.errors.map(err => {
203
+ const path = err.path.join('.');
204
+ return path ? `${path}: ${err.message}` : err.message;
204
205
  });
205
206
  return { success: false, errors };
206
207
  }
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Generate JSON Schema File
4
4
  *
5
- * Creates vibe-validate.schema.json in the package root for use in YAML configs.
5
+ * Creates config.schema.json in the package root for use in YAML configs.
6
6
  * This script runs during the build process.
7
7
  */
8
8
  export {};
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Generate JSON Schema File
4
4
  *
5
- * Creates vibe-validate.schema.json in the package root for use in YAML configs.
5
+ * Creates config.schema.json in the package root for use in YAML configs.
6
6
  * This script runs during the build process.
7
7
  */
8
8
  import { writeFileSync } from 'node:fs';
@@ -12,7 +12,7 @@ import { vibeValidateJsonSchema } from '../schema-export.js';
12
12
  const __filename = fileURLToPath(import.meta.url);
13
13
  const __dirname = dirname(__filename);
14
14
  const packageRoot = join(__dirname, '..', '..');
15
- const schemaPath = join(packageRoot, 'vibe-validate.schema.json');
15
+ const schemaPath = join(packageRoot, 'config.schema.json');
16
16
  // Generate and write schema file
17
17
  writeFileSync(schemaPath, JSON.stringify(vibeValidateJsonSchema, null, 2), 'utf-8');
18
- console.log('✓ Generated vibe-validate.schema.json');
18
+ console.log('✓ Generated config.schema.json');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe-validate/config",
3
- "version": "0.14.2",
3
+ "version": "0.15.0-rc.1",
4
4
  "description": "Configuration system for vibe-validate with TypeScript-first design and config templates",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "files": [
15
15
  "dist",
16
- "vibe-validate.schema.json"
16
+ "config.schema.json"
17
17
  ],
18
18
  "keywords": [
19
19
  "validation",
@@ -46,6 +46,6 @@
46
46
  },
47
47
  "scripts": {
48
48
  "build": "tsc && node --import tsx ./src/scripts/generate-schema.ts",
49
- "clean": "rm -rf dist vibe-validate.schema.json"
49
+ "clean": "rm -rf dist config.schema.json"
50
50
  }
51
51
  }