@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.
- package/README.md +100 -166
- package/dist/index.d.ts +17 -35
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -37
- package/dist/loader.d.ts +6 -46
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +30 -133
- package/dist/schema.d.ts +168 -160
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +41 -51
- package/package.json +9 -10
- package/vibe-validate.schema.json +23 -61
- package/LICENSE +0 -21
- package/dist/define-config.d.ts +0 -49
- package/dist/define-config.d.ts.map +0 -1
- package/dist/define-config.js +0 -72
- package/dist/presets/index.d.ts +0 -27
- package/dist/presets/index.d.ts.map +0 -1
- package/dist/presets/index.js +0 -36
- package/dist/presets/typescript-library.d.ts +0 -9
- package/dist/presets/typescript-library.d.ts.map +0 -1
- package/dist/presets/typescript-library.js +0 -67
- package/dist/presets/typescript-nodejs.d.ts +0 -9
- package/dist/presets/typescript-nodejs.d.ts.map +0 -1
- package/dist/presets/typescript-nodejs.js +0 -64
- package/dist/presets/typescript-react.d.ts +0 -9
- package/dist/presets/typescript-react.d.ts.map +0 -1
- package/dist/presets/typescript-react.js +0 -73
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;IAC/B,kEAAkE;;IAGlE,qDAAqD;;IAGrD,+EAA+E;;IAG/E,qDAAqD;;IAGrD,oDAAoD;;IAGpD,wEAAwE
|
|
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
|
-
/**
|
|
63
|
-
|
|
64
|
-
|
|
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
|
-
|
|
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
|
-
/**
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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.
|
|
4
|
-
"description": "Configuration system for vibe-validate with TypeScript-first design and
|
|
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
|
-
"
|
|
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
|
-
"
|
|
86
|
-
"type": "
|
|
87
|
-
"
|
|
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
|
-
"
|
|
225
|
-
"type": "
|
|
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.
|
package/dist/define-config.d.ts
DELETED
|
@@ -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"}
|
package/dist/define-config.js
DELETED
|
@@ -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
|
-
}
|
package/dist/presets/index.d.ts
DELETED
|
@@ -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"}
|
package/dist/presets/index.js
DELETED
|
@@ -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"}
|