@vibe-validate/config 0.10.3 → 0.12.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.
@@ -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
@@ -16,6 +16,8 @@ export const ValidationStepSchema = z.object({
16
16
  name: z.string().min(1, 'Step name cannot be empty'),
17
17
  /** Command to execute (e.g., "npm run typecheck") */
18
18
  command: z.string().min(1, 'Command cannot be empty'),
19
+ /** Optional: Description of what this step does (for documentation) */
20
+ description: z.string().optional(),
19
21
  /** Optional: Custom timeout in milliseconds (default: inherited from phase) */
20
22
  timeout: z.number().positive().optional(),
21
23
  /** Optional: Continue on failure (default: false) */
@@ -24,7 +26,7 @@ export const ValidationStepSchema = z.object({
24
26
  env: z.record(z.string(), z.string()).optional(),
25
27
  /** Optional: Working directory for this step (default: project root) */
26
28
  cwd: z.string().optional(),
27
- });
29
+ }).strict();
28
30
  /**
29
31
  * Validation Phase Schema
30
32
  *
@@ -36,43 +38,22 @@ export const ValidationPhaseSchema = z.object({
36
38
  name: z.string().min(1, 'Phase name cannot be empty'),
37
39
  /** Execute steps in parallel (default: false) */
38
40
  parallel: z.boolean().optional().default(false),
39
- /** Optional: Phase names this phase depends on */
40
- dependsOn: z.array(z.string()).optional(),
41
41
  /** Steps to execute in this phase */
42
42
  steps: z.array(ValidationStepSchema).min(1, 'Phase must have at least one step'),
43
43
  /** Optional: Default timeout for all steps (milliseconds, default: 300000 = 5min) */
44
44
  timeout: z.number().positive().optional().default(300000),
45
45
  /** Optional: Fail fast - stop on first error (default: true) */
46
46
  failFast: z.boolean().optional().default(true),
47
- });
48
- /**
49
- * Caching Strategy Schema
50
- */
51
- export const CachingStrategySchema = z.enum([
52
- 'git-tree-hash', // Content-based hashing (default)
53
- 'timestamp', // File modification time
54
- 'disabled', // No caching
55
- ]);
47
+ }).strict();
56
48
  /**
57
49
  * Validation Config Schema
58
50
  */
59
51
  export const ValidationConfigSchema = z.object({
60
52
  /** Validation phases to execute */
61
53
  phases: z.array(ValidationPhaseSchema).min(1, 'At least one phase required'),
62
- /** Caching configuration */
63
- caching: z.object({
64
- /** Caching strategy (default: git-tree-hash) */
65
- strategy: CachingStrategySchema.default('git-tree-hash'),
66
- /** Enable caching (default: true) */
67
- enabled: z.boolean().default(true),
68
- /** State file path (default: .vibe-validate-state.yaml) */
69
- statePath: z.string().default('.vibe-validate-state.yaml'),
70
- }).optional().default({
71
- strategy: 'git-tree-hash',
72
- enabled: true,
73
- statePath: '.vibe-validate-state.yaml',
74
- }),
75
- });
54
+ /** Optional: Fail fast - stop all validation on first phase failure (default: true) */
55
+ failFast: z.boolean().optional().default(true),
56
+ }).strict();
76
57
  /**
77
58
  * Git Config Schema
78
59
  */
@@ -85,18 +66,7 @@ export const GitConfigSchema = z.object({
85
66
  autoSync: z.boolean().default(GIT_DEFAULTS.AUTO_SYNC),
86
67
  /** Warn if branch is behind remote (default: true) */
87
68
  warnIfBehind: z.boolean().default(GIT_DEFAULTS.WARN_IF_BEHIND),
88
- });
89
- /**
90
- * Output Config Schema
91
- */
92
- export const OutputConfigSchema = z.object({
93
- /** Show progress indicators (default: true) */
94
- showProgress: z.boolean().default(true),
95
- /** Verbose logging (default: false) */
96
- verbose: z.boolean().default(false),
97
- /** Suppress ANSI colors (default: false) */
98
- noColor: z.boolean().default(false),
99
- });
69
+ }).strict();
100
70
  /**
101
71
  * CI/CD Configuration Schema
102
72
  */
@@ -109,6 +79,24 @@ export const CIConfigSchema = z.object({
109
79
  failFast: z.boolean().optional(),
110
80
  /** Enable coverage reporting (default: false) */
111
81
  coverage: z.boolean().optional(),
82
+ }).strict();
83
+ /**
84
+ * Secret Scanning Configuration Schema
85
+ */
86
+ export const SecretScanningSchema = z.object({
87
+ /** Enable secret scanning in pre-commit (default: true) */
88
+ enabled: z.boolean().default(true),
89
+ /** Command to run for secret scanning (required when enabled) */
90
+ scanCommand: z.string().min(1, 'scanCommand cannot be empty').optional(),
91
+ }).strict().refine((data) => {
92
+ // If enabled is true, scanCommand must be provided
93
+ if (data.enabled && !data.scanCommand) {
94
+ return false;
95
+ }
96
+ return true;
97
+ }, {
98
+ message: 'scanCommand is required when secret scanning is enabled',
99
+ path: ['scanCommand'],
112
100
  });
113
101
  /**
114
102
  * Hooks Configuration Schema
@@ -120,11 +108,13 @@ export const HooksConfigSchema = z.object({
120
108
  enabled: z.boolean().default(true),
121
109
  /** Custom pre-commit command (default: 'npx vibe-validate pre-commit') */
122
110
  command: z.string().default('npx vibe-validate pre-commit'),
123
- }).optional().default({
111
+ /** Secret scanning configuration (optional) */
112
+ secretScanning: SecretScanningSchema.optional(),
113
+ }).strict().optional().default({
124
114
  enabled: true,
125
115
  command: 'npx vibe-validate pre-commit',
126
116
  }),
127
- });
117
+ }).strict();
128
118
  /**
129
119
  * Full Configuration Schema
130
120
  *
@@ -140,12 +130,6 @@ export const VibeValidateConfigSchema = z.object({
140
130
  autoSync: GIT_DEFAULTS.AUTO_SYNC,
141
131
  warnIfBehind: GIT_DEFAULTS.WARN_IF_BEHIND,
142
132
  }),
143
- /** Output formatting configuration */
144
- output: OutputConfigSchema.optional().default({
145
- showProgress: true,
146
- verbose: false,
147
- noColor: false,
148
- }),
149
133
  /** CI/CD configuration (for GitHub Actions workflow generation) */
150
134
  ci: CIConfigSchema.optional(),
151
135
  /** Hooks configuration (pre-commit, etc.) */
@@ -155,11 +139,17 @@ export const VibeValidateConfigSchema = z.object({
155
139
  command: 'npx vibe-validate pre-commit',
156
140
  },
157
141
  }),
158
- /** Optional: Preset name (typescript-library, typescript-nodejs, etc.) */
159
- preset: z.string().optional(),
160
- /** Optional: Extend another config file */
161
- extends: z.string().optional(),
162
- });
142
+ /**
143
+ * Developer feedback for continuous quality improvement (optional, default: false)
144
+ *
145
+ * When enabled, provides additional alerts about extraction quality failures
146
+ * to help improve extractors through dogfooding. Useful for:
147
+ * - vibe-validate contributors
148
+ * - Projects building custom extractors
149
+ * - Teams wanting to improve validation feedback
150
+ */
151
+ developerFeedback: z.boolean().optional().default(false),
152
+ }).strict();
163
153
  /**
164
154
  * Validate configuration object
165
155
  *
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vibe-validate/config",
3
- "version": "0.10.3",
4
- "description": "Configuration system for vibe-validate with TypeScript-first design and framework presets",
3
+ "version": "0.12.0",
4
+ "description": "Configuration system for vibe-validate with TypeScript-first design and config templates",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -15,11 +15,15 @@
15
15
  "dist",
16
16
  "vibe-validate.schema.json"
17
17
  ],
18
+ "scripts": {
19
+ "build": "tsc && node --import tsx ./src/scripts/generate-schema.ts",
20
+ "clean": "rm -rf dist vibe-validate.schema.json"
21
+ },
18
22
  "keywords": [
19
23
  "validation",
20
24
  "config",
21
25
  "typescript",
22
- "presets",
26
+ "config-templates",
23
27
  "framework"
24
28
  ],
25
29
  "author": "Jeff Dutton",
@@ -30,12 +34,11 @@
30
34
  "directory": "packages/config"
31
35
  },
32
36
  "devDependencies": {
33
- "@types/js-yaml": "^4.0.9",
34
37
  "typescript": "^5.7.2"
35
38
  },
36
39
  "dependencies": {
37
- "js-yaml": "^4.1.0",
38
40
  "tsx": "^4.20.6",
41
+ "yaml": "^2.6.1",
39
42
  "zod": "^3.24.1",
40
43
  "zod-to-json-schema": "^3.24.6"
41
44
  },
@@ -44,9 +47,5 @@
44
47
  },
45
48
  "publishConfig": {
46
49
  "access": "public"
47
- },
48
- "scripts": {
49
- "build": "tsc && node --import tsx ./src/scripts/generate-schema.ts",
50
- "clean": "rm -rf dist vibe-validate.schema.json"
51
50
  }
52
- }
51
+ }
@@ -20,12 +20,6 @@
20
20
  "type": "boolean",
21
21
  "default": false
22
22
  },
23
- "dependsOn": {
24
- "type": "array",
25
- "items": {
26
- "type": "string"
27
- }
28
- },
29
23
  "steps": {
30
24
  "type": "array",
31
25
  "items": {
@@ -39,6 +33,9 @@
39
33
  "type": "string",
40
34
  "minLength": 1
41
35
  },
36
+ "description": {
37
+ "type": "string"
38
+ },
42
39
  "timeout": {
43
40
  "type": "number",
44
41
  "exclusiveMinimum": 0
@@ -82,33 +79,9 @@
82
79
  },
83
80
  "minItems": 1
84
81
  },
85
- "caching": {
86
- "type": "object",
87
- "properties": {
88
- "strategy": {
89
- "type": "string",
90
- "enum": [
91
- "git-tree-hash",
92
- "timestamp",
93
- "disabled"
94
- ],
95
- "default": "git-tree-hash"
96
- },
97
- "enabled": {
98
- "type": "boolean",
99
- "default": true
100
- },
101
- "statePath": {
102
- "type": "string",
103
- "default": ".vibe-validate-state.yaml"
104
- }
105
- },
106
- "additionalProperties": false,
107
- "default": {
108
- "strategy": "git-tree-hash",
109
- "enabled": true,
110
- "statePath": ".vibe-validate-state.yaml"
111
- }
82
+ "failFast": {
83
+ "type": "boolean",
84
+ "default": true
112
85
  }
113
86
  },
114
87
  "required": [
@@ -144,29 +117,6 @@
144
117
  "warnIfBehind": true
145
118
  }
146
119
  },
147
- "output": {
148
- "type": "object",
149
- "properties": {
150
- "showProgress": {
151
- "type": "boolean",
152
- "default": true
153
- },
154
- "verbose": {
155
- "type": "boolean",
156
- "default": false
157
- },
158
- "noColor": {
159
- "type": "boolean",
160
- "default": false
161
- }
162
- },
163
- "additionalProperties": false,
164
- "default": {
165
- "showProgress": true,
166
- "verbose": false,
167
- "noColor": false
168
- }
169
- },
170
120
  "ci": {
171
121
  "type": "object",
172
122
  "properties": {
@@ -204,6 +154,20 @@
204
154
  "command": {
205
155
  "type": "string",
206
156
  "default": "npx vibe-validate pre-commit"
157
+ },
158
+ "secretScanning": {
159
+ "type": "object",
160
+ "properties": {
161
+ "enabled": {
162
+ "type": "boolean",
163
+ "default": true
164
+ },
165
+ "scanCommand": {
166
+ "type": "string",
167
+ "minLength": 1
168
+ }
169
+ },
170
+ "additionalProperties": false
207
171
  }
208
172
  },
209
173
  "additionalProperties": false,
@@ -221,11 +185,9 @@
221
185
  }
222
186
  }
223
187
  },
224
- "preset": {
225
- "type": "string"
226
- },
227
- "extends": {
228
- "type": "string"
188
+ "developerFeedback": {
189
+ "type": "boolean",
190
+ "default": false
229
191
  }
230
192
  },
231
193
  "required": [
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Jeff Dutton
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,49 +0,0 @@
1
- /**
2
- * TypeScript-First Config Helper
3
- *
4
- * Provides a type-safe way to define vibe-validate configuration
5
- * with full IDE autocomplete and validation.
6
- */
7
- import type { VibeValidateConfig } from './schema.js';
8
- /**
9
- * Define a vibe-validate configuration
10
- *
11
- * This is a type-safe helper that provides IDE autocomplete and validation.
12
- * It performs no runtime operations - just returns the config object.
13
- *
14
- * @param config - Configuration object
15
- * @returns The same configuration object (type-checked)
16
- *
17
- * @example
18
- * ```typescript
19
- * // vibe-validate.config.ts
20
- * import { defineConfig } from '@vibe-validate/config';
21
- *
22
- * export default defineConfig({
23
- * validation: {
24
- * phases: [
25
- * {
26
- * name: 'Type Checking',
27
- * parallel: false,
28
- * steps: [
29
- * { name: 'TypeScript', command: 'tsc --noEmit' }
30
- * ]
31
- * }
32
- * ]
33
- * }
34
- * });
35
- * ```
36
- */
37
- export declare function defineConfig(config: VibeValidateConfig): VibeValidateConfig;
38
- /**
39
- * Deep merge two configuration objects
40
- *
41
- * Used for preset overrides - allows users to extend a preset
42
- * while overriding specific values.
43
- *
44
- * @param base - Base configuration (preset)
45
- * @param override - Override configuration (user customizations)
46
- * @returns Merged configuration
47
- */
48
- export declare function mergeConfig(base: VibeValidateConfig, override: Partial<VibeValidateConfig>): VibeValidateConfig;
49
- //# sourceMappingURL=define-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"define-config.d.ts","sourceRoot":"","sources":["../src/define-config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAE3E;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACpC,kBAAkB,CAuBpB"}
@@ -1,72 +0,0 @@
1
- /**
2
- * TypeScript-First Config Helper
3
- *
4
- * Provides a type-safe way to define vibe-validate configuration
5
- * with full IDE autocomplete and validation.
6
- */
7
- /**
8
- * Define a vibe-validate configuration
9
- *
10
- * This is a type-safe helper that provides IDE autocomplete and validation.
11
- * It performs no runtime operations - just returns the config object.
12
- *
13
- * @param config - Configuration object
14
- * @returns The same configuration object (type-checked)
15
- *
16
- * @example
17
- * ```typescript
18
- * // vibe-validate.config.ts
19
- * import { defineConfig } from '@vibe-validate/config';
20
- *
21
- * export default defineConfig({
22
- * validation: {
23
- * phases: [
24
- * {
25
- * name: 'Type Checking',
26
- * parallel: false,
27
- * steps: [
28
- * { name: 'TypeScript', command: 'tsc --noEmit' }
29
- * ]
30
- * }
31
- * ]
32
- * }
33
- * });
34
- * ```
35
- */
36
- export function defineConfig(config) {
37
- return config;
38
- }
39
- /**
40
- * Deep merge two configuration objects
41
- *
42
- * Used for preset overrides - allows users to extend a preset
43
- * while overriding specific values.
44
- *
45
- * @param base - Base configuration (preset)
46
- * @param override - Override configuration (user customizations)
47
- * @returns Merged configuration
48
- */
49
- export function mergeConfig(base, override) {
50
- return {
51
- ...base,
52
- validation: {
53
- ...base.validation,
54
- ...(override.validation || {}),
55
- phases: override.validation?.phases || base.validation.phases,
56
- caching: {
57
- ...base.validation.caching,
58
- ...(override.validation?.caching || {}),
59
- },
60
- },
61
- git: {
62
- ...base.git,
63
- ...(override.git || {}),
64
- },
65
- output: {
66
- ...base.output,
67
- ...(override.output || {}),
68
- },
69
- preset: override.preset || base.preset,
70
- extends: override.extends || base.extends,
71
- };
72
- }
@@ -1,27 +0,0 @@
1
- /**
2
- * Built-in Framework Presets
3
- *
4
- * Pre-configured validation setups for common TypeScript project types.
5
- */
6
- export { typescriptLibraryPreset } from './typescript-library.js';
7
- export { typescriptNodejsPreset } from './typescript-nodejs.js';
8
- export { typescriptReactPreset } from './typescript-react.js';
9
- import type { VibeValidateConfig } from '../schema.js';
10
- /**
11
- * Map of preset name to configuration
12
- */
13
- export declare const PRESETS: Record<string, VibeValidateConfig>;
14
- /**
15
- * Get a preset by name
16
- *
17
- * @param name - Preset name
18
- * @returns Preset configuration or undefined if not found
19
- */
20
- export declare function getPreset(name: string): VibeValidateConfig | undefined;
21
- /**
22
- * List all available preset names
23
- *
24
- * @returns Array of preset names
25
- */
26
- export declare function listPresets(): string[];
27
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presets/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKvD;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAItD,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC"}
@@ -1,36 +0,0 @@
1
- /**
2
- * Built-in Framework Presets
3
- *
4
- * Pre-configured validation setups for common TypeScript project types.
5
- */
6
- export { typescriptLibraryPreset } from './typescript-library.js';
7
- export { typescriptNodejsPreset } from './typescript-nodejs.js';
8
- export { typescriptReactPreset } from './typescript-react.js';
9
- import { typescriptLibraryPreset } from './typescript-library.js';
10
- import { typescriptNodejsPreset } from './typescript-nodejs.js';
11
- import { typescriptReactPreset } from './typescript-react.js';
12
- /**
13
- * Map of preset name to configuration
14
- */
15
- export const PRESETS = {
16
- 'typescript-library': typescriptLibraryPreset,
17
- 'typescript-nodejs': typescriptNodejsPreset,
18
- 'typescript-react': typescriptReactPreset,
19
- };
20
- /**
21
- * Get a preset by name
22
- *
23
- * @param name - Preset name
24
- * @returns Preset configuration or undefined if not found
25
- */
26
- export function getPreset(name) {
27
- return PRESETS[name];
28
- }
29
- /**
30
- * List all available preset names
31
- *
32
- * @returns Array of preset names
33
- */
34
- export function listPresets() {
35
- return Object.keys(PRESETS);
36
- }
@@ -1,9 +0,0 @@
1
- /**
2
- * Preset: TypeScript Library
3
- *
4
- * Default preset for TypeScript libraries (npm packages).
5
- * Includes type checking, linting, testing, and build validation.
6
- */
7
- import type { VibeValidateConfig } from '../schema.js';
8
- export declare const typescriptLibraryPreset: VibeValidateConfig;
9
- //# sourceMappingURL=typescript-library.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript-library.d.ts","sourceRoot":"","sources":["../../src/presets/typescript-library.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,eAAO,MAAM,uBAAuB,EA8D/B,kBAAkB,CAAC"}
@@ -1,67 +0,0 @@
1
- /**
2
- * Preset: TypeScript Library
3
- *
4
- * Default preset for TypeScript libraries (npm packages).
5
- * Includes type checking, linting, testing, and build validation.
6
- */
7
- import { GIT_DEFAULTS } from '../constants.js';
8
- export const typescriptLibraryPreset = {
9
- preset: 'typescript-library',
10
- validation: {
11
- phases: [
12
- {
13
- name: 'Phase 1: Pre-Qualification',
14
- parallel: true,
15
- failFast: true,
16
- steps: [
17
- {
18
- name: 'TypeScript type checking',
19
- command: 'tsc --noEmit',
20
- },
21
- {
22
- name: 'ESLint code checking',
23
- command: 'eslint .',
24
- },
25
- ],
26
- },
27
- {
28
- name: 'Phase 2: Testing',
29
- parallel: true,
30
- dependsOn: ['Phase 1: Pre-Qualification'],
31
- steps: [
32
- {
33
- name: 'Unit tests',
34
- command: 'npm test',
35
- },
36
- ],
37
- },
38
- {
39
- name: 'Phase 3: Build',
40
- parallel: false,
41
- dependsOn: ['Phase 2: Testing'],
42
- steps: [
43
- {
44
- name: 'Build package',
45
- command: 'npm run build',
46
- },
47
- ],
48
- },
49
- ],
50
- caching: {
51
- strategy: 'git-tree-hash',
52
- enabled: true,
53
- statePath: '.vibe-validate-state.yaml',
54
- },
55
- },
56
- git: {
57
- mainBranch: GIT_DEFAULTS.MAIN_BRANCH,
58
- remoteOrigin: GIT_DEFAULTS.REMOTE_ORIGIN,
59
- autoSync: GIT_DEFAULTS.AUTO_SYNC,
60
- warnIfBehind: GIT_DEFAULTS.WARN_IF_BEHIND,
61
- },
62
- output: {
63
- showProgress: true,
64
- verbose: false,
65
- noColor: false,
66
- },
67
- };
@@ -1,9 +0,0 @@
1
- /**
2
- * Preset: TypeScript Node.js Application
3
- *
4
- * Preset for Node.js applications with TypeScript.
5
- * Includes type checking, linting, unit/integration tests, and build validation.
6
- */
7
- import type { VibeValidateConfig } from '../schema.js';
8
- export declare const typescriptNodejsPreset: VibeValidateConfig;
9
- //# sourceMappingURL=typescript-nodejs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typescript-nodejs.d.ts","sourceRoot":"","sources":["../../src/presets/typescript-nodejs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,eAAO,MAAM,sBAAsB,EA2D9B,kBAAkB,CAAC"}