guardrail-cli 1.0.6 → 2.0.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.
Files changed (144) hide show
  1. package/README.md +483 -10
  2. package/dist/commands/baseline.d.ts +7 -0
  3. package/dist/commands/baseline.d.ts.map +1 -0
  4. package/dist/commands/baseline.js +79 -0
  5. package/dist/commands/baseline.js.map +1 -0
  6. package/dist/commands/cache.d.ts +13 -0
  7. package/dist/commands/cache.d.ts.map +1 -0
  8. package/dist/commands/cache.js +165 -0
  9. package/dist/commands/cache.js.map +1 -0
  10. package/dist/commands/evidence.d.ts +45 -0
  11. package/dist/commands/evidence.d.ts.map +1 -0
  12. package/dist/commands/evidence.js +197 -0
  13. package/dist/commands/evidence.js.map +1 -0
  14. package/dist/commands/index.d.ts +8 -0
  15. package/dist/commands/index.d.ts.map +1 -0
  16. package/dist/commands/index.js +15 -0
  17. package/dist/commands/index.js.map +1 -0
  18. package/dist/commands/scan-secrets.d.ts +47 -0
  19. package/dist/commands/scan-secrets.d.ts.map +1 -0
  20. package/dist/commands/scan-secrets.js +225 -0
  21. package/dist/commands/scan-secrets.js.map +1 -0
  22. package/dist/commands/scan-vulnerabilities-enhanced.d.ts +41 -0
  23. package/dist/commands/scan-vulnerabilities-enhanced.d.ts.map +1 -0
  24. package/dist/commands/scan-vulnerabilities-enhanced.js +368 -0
  25. package/dist/commands/scan-vulnerabilities-enhanced.js.map +1 -0
  26. package/dist/commands/scan-vulnerabilities-osv.d.ts +58 -0
  27. package/dist/commands/scan-vulnerabilities-osv.d.ts.map +1 -0
  28. package/dist/commands/scan-vulnerabilities-osv.js +716 -0
  29. package/dist/commands/scan-vulnerabilities-osv.js.map +1 -0
  30. package/dist/commands/scan-vulnerabilities.d.ts +32 -0
  31. package/dist/commands/scan-vulnerabilities.d.ts.map +1 -0
  32. package/dist/commands/scan-vulnerabilities.js +283 -0
  33. package/dist/commands/scan-vulnerabilities.js.map +1 -0
  34. package/dist/commands/secrets-allowlist.d.ts +7 -0
  35. package/dist/commands/secrets-allowlist.d.ts.map +1 -0
  36. package/dist/commands/secrets-allowlist.js +85 -0
  37. package/dist/commands/secrets-allowlist.js.map +1 -0
  38. package/dist/fix/applicator.d.ts +44 -0
  39. package/dist/fix/applicator.d.ts.map +1 -0
  40. package/dist/fix/applicator.js +144 -0
  41. package/dist/fix/applicator.js.map +1 -0
  42. package/dist/fix/backup.d.ts +38 -0
  43. package/dist/fix/backup.d.ts.map +1 -0
  44. package/dist/fix/backup.js +154 -0
  45. package/dist/fix/backup.js.map +1 -0
  46. package/dist/fix/engine.d.ts +55 -0
  47. package/dist/fix/engine.d.ts.map +1 -0
  48. package/dist/fix/engine.js +285 -0
  49. package/dist/fix/engine.js.map +1 -0
  50. package/dist/fix/index.d.ts +5 -0
  51. package/dist/fix/index.d.ts.map +1 -0
  52. package/dist/fix/index.js +12 -0
  53. package/dist/fix/index.js.map +1 -0
  54. package/dist/fix/interactive.d.ts +22 -0
  55. package/dist/fix/interactive.d.ts.map +1 -0
  56. package/dist/fix/interactive.js +172 -0
  57. package/dist/fix/interactive.js.map +1 -0
  58. package/dist/formatters/index.d.ts +6 -0
  59. package/dist/formatters/index.d.ts.map +1 -0
  60. package/dist/formatters/index.js +11 -0
  61. package/dist/formatters/index.js.map +1 -0
  62. package/dist/formatters/sarif-enhanced.d.ts +78 -0
  63. package/dist/formatters/sarif-enhanced.d.ts.map +1 -0
  64. package/dist/formatters/sarif-enhanced.js +144 -0
  65. package/dist/formatters/sarif-enhanced.js.map +1 -0
  66. package/dist/formatters/sarif-v2.d.ts +121 -0
  67. package/dist/formatters/sarif-v2.d.ts.map +1 -0
  68. package/dist/formatters/sarif-v2.js +356 -0
  69. package/dist/formatters/sarif-v2.js.map +1 -0
  70. package/dist/formatters/sarif.d.ts +72 -0
  71. package/dist/formatters/sarif.d.ts.map +1 -0
  72. package/dist/formatters/sarif.js +146 -0
  73. package/dist/formatters/sarif.js.map +1 -0
  74. package/dist/index.js +3362 -1397
  75. package/dist/index.js.map +1 -1
  76. package/dist/init/ci-generator.d.ts +18 -0
  77. package/dist/init/ci-generator.d.ts.map +1 -0
  78. package/dist/init/ci-generator.js +251 -0
  79. package/dist/init/ci-generator.js.map +1 -0
  80. package/dist/init/detect-framework.d.ts +15 -0
  81. package/dist/init/detect-framework.d.ts.map +1 -0
  82. package/dist/init/detect-framework.js +299 -0
  83. package/dist/init/detect-framework.js.map +1 -0
  84. package/dist/init/hooks-installer.d.ts +22 -0
  85. package/dist/init/hooks-installer.d.ts.map +1 -0
  86. package/dist/init/hooks-installer.js +302 -0
  87. package/dist/init/hooks-installer.js.map +1 -0
  88. package/dist/init/index.d.ts +8 -0
  89. package/dist/init/index.d.ts.map +1 -0
  90. package/dist/init/index.js +22 -0
  91. package/dist/init/index.js.map +1 -0
  92. package/dist/init/templates.d.ts +401 -0
  93. package/dist/init/templates.d.ts.map +1 -0
  94. package/dist/init/templates.js +240 -0
  95. package/dist/init/templates.js.map +1 -0
  96. package/dist/reality/reality-runner.d.ts +76 -0
  97. package/dist/reality/reality-runner.d.ts.map +1 -0
  98. package/dist/reality/reality-runner.js +454 -0
  99. package/dist/reality/reality-runner.js.map +1 -0
  100. package/dist/runtime/auth-utils.d.ts +43 -0
  101. package/dist/runtime/auth-utils.d.ts.map +1 -0
  102. package/dist/runtime/auth-utils.js +126 -0
  103. package/dist/runtime/auth-utils.js.map +1 -0
  104. package/dist/runtime/client.d.ts +74 -0
  105. package/dist/runtime/client.d.ts.map +1 -0
  106. package/dist/runtime/client.js +222 -0
  107. package/dist/runtime/client.js.map +1 -0
  108. package/dist/runtime/creds.d.ts +48 -0
  109. package/dist/runtime/creds.d.ts.map +1 -0
  110. package/dist/runtime/creds.js +245 -0
  111. package/dist/runtime/creds.js.map +1 -0
  112. package/dist/runtime/exit-codes.d.ts +47 -0
  113. package/dist/runtime/exit-codes.d.ts.map +1 -0
  114. package/dist/runtime/exit-codes.js +91 -0
  115. package/dist/runtime/exit-codes.js.map +1 -0
  116. package/dist/runtime/index.d.ts +9 -0
  117. package/dist/runtime/index.d.ts.map +1 -0
  118. package/dist/runtime/index.js +25 -0
  119. package/dist/runtime/index.js.map +1 -0
  120. package/dist/runtime/semver.d.ts +37 -0
  121. package/dist/runtime/semver.d.ts.map +1 -0
  122. package/dist/runtime/semver.js +110 -0
  123. package/dist/runtime/semver.js.map +1 -0
  124. package/dist/scanner/baseline.d.ts +52 -0
  125. package/dist/scanner/baseline.d.ts.map +1 -0
  126. package/dist/scanner/baseline.js +85 -0
  127. package/dist/scanner/baseline.js.map +1 -0
  128. package/dist/scanner/incremental.d.ts +30 -0
  129. package/dist/scanner/incremental.d.ts.map +1 -0
  130. package/dist/scanner/incremental.js +82 -0
  131. package/dist/scanner/incremental.js.map +1 -0
  132. package/dist/scanner/parallel.d.ts +43 -0
  133. package/dist/scanner/parallel.d.ts.map +1 -0
  134. package/dist/scanner/parallel.js +99 -0
  135. package/dist/scanner/parallel.js.map +1 -0
  136. package/dist/ui/frame.d.ts +68 -0
  137. package/dist/ui/frame.d.ts.map +1 -0
  138. package/dist/ui/frame.js +165 -0
  139. package/dist/ui/frame.js.map +1 -0
  140. package/dist/ui/index.d.ts +5 -0
  141. package/dist/ui/index.d.ts.map +1 -0
  142. package/dist/ui/index.js +16 -0
  143. package/dist/ui/index.js.map +1 -0
  144. package/package.json +42 -9
@@ -0,0 +1,401 @@
1
+ /**
2
+ * Template Configuration Module
3
+ * Defines startup/enterprise/oss templates with Zod schema validation
4
+ */
5
+ import { z } from 'zod';
6
+ export declare const TemplateType: z.ZodEnum<["startup", "enterprise", "oss"]>;
7
+ export type TemplateType = z.infer<typeof TemplateType>;
8
+ export declare const ScanConfigSchema: z.ZodObject<{
9
+ enabled: z.ZodBoolean;
10
+ threshold: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low"]>>;
11
+ excludePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ enabled?: boolean;
14
+ threshold?: "critical" | "high" | "medium" | "low";
15
+ excludePatterns?: string[];
16
+ }, {
17
+ enabled?: boolean;
18
+ threshold?: "critical" | "high" | "medium" | "low";
19
+ excludePatterns?: string[];
20
+ }>;
21
+ export declare const ComplianceConfigSchema: z.ZodObject<{
22
+ enabled: z.ZodBoolean;
23
+ frameworks: z.ZodOptional<z.ZodArray<z.ZodEnum<["soc2", "gdpr", "hipaa", "pci", "iso27001", "nist"]>, "many">>;
24
+ autoEvidence: z.ZodOptional<z.ZodBoolean>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ enabled?: boolean;
27
+ frameworks?: ("soc2" | "gdpr" | "hipaa" | "pci" | "iso27001" | "nist")[];
28
+ autoEvidence?: boolean;
29
+ }, {
30
+ enabled?: boolean;
31
+ frameworks?: ("soc2" | "gdpr" | "hipaa" | "pci" | "iso27001" | "nist")[];
32
+ autoEvidence?: boolean;
33
+ }>;
34
+ export declare const GatingConfigSchema: z.ZodObject<{
35
+ enabled: z.ZodBoolean;
36
+ blockOnCritical: z.ZodOptional<z.ZodBoolean>;
37
+ blockOnHigh: z.ZodOptional<z.ZodBoolean>;
38
+ baselineEnabled: z.ZodOptional<z.ZodBoolean>;
39
+ allowlistEnabled: z.ZodOptional<z.ZodBoolean>;
40
+ }, "strip", z.ZodTypeAny, {
41
+ enabled?: boolean;
42
+ blockOnCritical?: boolean;
43
+ blockOnHigh?: boolean;
44
+ baselineEnabled?: boolean;
45
+ allowlistEnabled?: boolean;
46
+ }, {
47
+ enabled?: boolean;
48
+ blockOnCritical?: boolean;
49
+ blockOnHigh?: boolean;
50
+ baselineEnabled?: boolean;
51
+ allowlistEnabled?: boolean;
52
+ }>;
53
+ export declare const OutputConfigSchema: z.ZodObject<{
54
+ format: z.ZodEnum<["table", "json", "sarif", "markdown"]>;
55
+ sarifUpload: z.ZodOptional<z.ZodBoolean>;
56
+ badgeGeneration: z.ZodOptional<z.ZodBoolean>;
57
+ }, "strip", z.ZodTypeAny, {
58
+ format?: "json" | "sarif" | "table" | "markdown";
59
+ sarifUpload?: boolean;
60
+ badgeGeneration?: boolean;
61
+ }, {
62
+ format?: "json" | "sarif" | "table" | "markdown";
63
+ sarifUpload?: boolean;
64
+ badgeGeneration?: boolean;
65
+ }>;
66
+ export declare const CIConfigSchema: z.ZodObject<{
67
+ enabled: z.ZodBoolean;
68
+ provider: z.ZodOptional<z.ZodEnum<["github", "gitlab", "azure", "bitbucket"]>>;
69
+ runOnPush: z.ZodOptional<z.ZodBoolean>;
70
+ runOnPR: z.ZodOptional<z.ZodBoolean>;
71
+ sarifUpload: z.ZodOptional<z.ZodBoolean>;
72
+ }, "strip", z.ZodTypeAny, {
73
+ enabled?: boolean;
74
+ sarifUpload?: boolean;
75
+ provider?: "github" | "gitlab" | "azure" | "bitbucket";
76
+ runOnPush?: boolean;
77
+ runOnPR?: boolean;
78
+ }, {
79
+ enabled?: boolean;
80
+ sarifUpload?: boolean;
81
+ provider?: "github" | "gitlab" | "azure" | "bitbucket";
82
+ runOnPush?: boolean;
83
+ runOnPR?: boolean;
84
+ }>;
85
+ export declare const HooksConfigSchema: z.ZodObject<{
86
+ enabled: z.ZodBoolean;
87
+ runner: z.ZodOptional<z.ZodEnum<["husky", "lefthook"]>>;
88
+ preCommit: z.ZodOptional<z.ZodBoolean>;
89
+ prePush: z.ZodOptional<z.ZodBoolean>;
90
+ }, "strip", z.ZodTypeAny, {
91
+ enabled?: boolean;
92
+ runner?: "husky" | "lefthook";
93
+ preCommit?: boolean;
94
+ prePush?: boolean;
95
+ }, {
96
+ enabled?: boolean;
97
+ runner?: "husky" | "lefthook";
98
+ preCommit?: boolean;
99
+ prePush?: boolean;
100
+ }>;
101
+ export declare const GuardrailConfigSchema: z.ZodObject<{
102
+ version: z.ZodString;
103
+ template: z.ZodOptional<z.ZodEnum<["startup", "enterprise", "oss"]>>;
104
+ framework: z.ZodOptional<z.ZodString>;
105
+ scans: z.ZodObject<{
106
+ secrets: z.ZodObject<{
107
+ enabled: z.ZodBoolean;
108
+ threshold: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low"]>>;
109
+ excludePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
110
+ }, "strip", z.ZodTypeAny, {
111
+ enabled?: boolean;
112
+ threshold?: "critical" | "high" | "medium" | "low";
113
+ excludePatterns?: string[];
114
+ }, {
115
+ enabled?: boolean;
116
+ threshold?: "critical" | "high" | "medium" | "low";
117
+ excludePatterns?: string[];
118
+ }>;
119
+ vulnerabilities: z.ZodObject<{
120
+ enabled: z.ZodBoolean;
121
+ threshold: z.ZodOptional<z.ZodEnum<["critical", "high", "medium", "low"]>>;
122
+ excludePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
123
+ }, "strip", z.ZodTypeAny, {
124
+ enabled?: boolean;
125
+ threshold?: "critical" | "high" | "medium" | "low";
126
+ excludePatterns?: string[];
127
+ }, {
128
+ enabled?: boolean;
129
+ threshold?: "critical" | "high" | "medium" | "low";
130
+ excludePatterns?: string[];
131
+ }>;
132
+ compliance: z.ZodObject<{
133
+ enabled: z.ZodBoolean;
134
+ frameworks: z.ZodOptional<z.ZodArray<z.ZodEnum<["soc2", "gdpr", "hipaa", "pci", "iso27001", "nist"]>, "many">>;
135
+ autoEvidence: z.ZodOptional<z.ZodBoolean>;
136
+ }, "strip", z.ZodTypeAny, {
137
+ enabled?: boolean;
138
+ frameworks?: ("soc2" | "gdpr" | "hipaa" | "pci" | "iso27001" | "nist")[];
139
+ autoEvidence?: boolean;
140
+ }, {
141
+ enabled?: boolean;
142
+ frameworks?: ("soc2" | "gdpr" | "hipaa" | "pci" | "iso27001" | "nist")[];
143
+ autoEvidence?: boolean;
144
+ }>;
145
+ sbom: z.ZodOptional<z.ZodObject<{
146
+ enabled: z.ZodBoolean;
147
+ }, "strip", z.ZodTypeAny, {
148
+ enabled?: boolean;
149
+ }, {
150
+ enabled?: boolean;
151
+ }>>;
152
+ }, "strip", z.ZodTypeAny, {
153
+ vulnerabilities?: {
154
+ enabled?: boolean;
155
+ threshold?: "critical" | "high" | "medium" | "low";
156
+ excludePatterns?: string[];
157
+ };
158
+ secrets?: {
159
+ enabled?: boolean;
160
+ threshold?: "critical" | "high" | "medium" | "low";
161
+ excludePatterns?: string[];
162
+ };
163
+ compliance?: {
164
+ enabled?: boolean;
165
+ frameworks?: ("soc2" | "gdpr" | "hipaa" | "pci" | "iso27001" | "nist")[];
166
+ autoEvidence?: boolean;
167
+ };
168
+ sbom?: {
169
+ enabled?: boolean;
170
+ };
171
+ }, {
172
+ vulnerabilities?: {
173
+ enabled?: boolean;
174
+ threshold?: "critical" | "high" | "medium" | "low";
175
+ excludePatterns?: string[];
176
+ };
177
+ secrets?: {
178
+ enabled?: boolean;
179
+ threshold?: "critical" | "high" | "medium" | "low";
180
+ excludePatterns?: string[];
181
+ };
182
+ compliance?: {
183
+ enabled?: boolean;
184
+ frameworks?: ("soc2" | "gdpr" | "hipaa" | "pci" | "iso27001" | "nist")[];
185
+ autoEvidence?: boolean;
186
+ };
187
+ sbom?: {
188
+ enabled?: boolean;
189
+ };
190
+ }>;
191
+ gating: z.ZodObject<{
192
+ enabled: z.ZodBoolean;
193
+ blockOnCritical: z.ZodOptional<z.ZodBoolean>;
194
+ blockOnHigh: z.ZodOptional<z.ZodBoolean>;
195
+ baselineEnabled: z.ZodOptional<z.ZodBoolean>;
196
+ allowlistEnabled: z.ZodOptional<z.ZodBoolean>;
197
+ }, "strip", z.ZodTypeAny, {
198
+ enabled?: boolean;
199
+ blockOnCritical?: boolean;
200
+ blockOnHigh?: boolean;
201
+ baselineEnabled?: boolean;
202
+ allowlistEnabled?: boolean;
203
+ }, {
204
+ enabled?: boolean;
205
+ blockOnCritical?: boolean;
206
+ blockOnHigh?: boolean;
207
+ baselineEnabled?: boolean;
208
+ allowlistEnabled?: boolean;
209
+ }>;
210
+ output: z.ZodObject<{
211
+ format: z.ZodEnum<["table", "json", "sarif", "markdown"]>;
212
+ sarifUpload: z.ZodOptional<z.ZodBoolean>;
213
+ badgeGeneration: z.ZodOptional<z.ZodBoolean>;
214
+ }, "strip", z.ZodTypeAny, {
215
+ format?: "json" | "sarif" | "table" | "markdown";
216
+ sarifUpload?: boolean;
217
+ badgeGeneration?: boolean;
218
+ }, {
219
+ format?: "json" | "sarif" | "table" | "markdown";
220
+ sarifUpload?: boolean;
221
+ badgeGeneration?: boolean;
222
+ }>;
223
+ ci: z.ZodOptional<z.ZodObject<{
224
+ enabled: z.ZodBoolean;
225
+ provider: z.ZodOptional<z.ZodEnum<["github", "gitlab", "azure", "bitbucket"]>>;
226
+ runOnPush: z.ZodOptional<z.ZodBoolean>;
227
+ runOnPR: z.ZodOptional<z.ZodBoolean>;
228
+ sarifUpload: z.ZodOptional<z.ZodBoolean>;
229
+ }, "strip", z.ZodTypeAny, {
230
+ enabled?: boolean;
231
+ sarifUpload?: boolean;
232
+ provider?: "github" | "gitlab" | "azure" | "bitbucket";
233
+ runOnPush?: boolean;
234
+ runOnPR?: boolean;
235
+ }, {
236
+ enabled?: boolean;
237
+ sarifUpload?: boolean;
238
+ provider?: "github" | "gitlab" | "azure" | "bitbucket";
239
+ runOnPush?: boolean;
240
+ runOnPR?: boolean;
241
+ }>>;
242
+ hooks: z.ZodOptional<z.ZodObject<{
243
+ enabled: z.ZodBoolean;
244
+ runner: z.ZodOptional<z.ZodEnum<["husky", "lefthook"]>>;
245
+ preCommit: z.ZodOptional<z.ZodBoolean>;
246
+ prePush: z.ZodOptional<z.ZodBoolean>;
247
+ }, "strip", z.ZodTypeAny, {
248
+ enabled?: boolean;
249
+ runner?: "husky" | "lefthook";
250
+ preCommit?: boolean;
251
+ prePush?: boolean;
252
+ }, {
253
+ enabled?: boolean;
254
+ runner?: "husky" | "lefthook";
255
+ preCommit?: boolean;
256
+ prePush?: boolean;
257
+ }>>;
258
+ noise: z.ZodOptional<z.ZodObject<{
259
+ suppressTestFiles: z.ZodOptional<z.ZodBoolean>;
260
+ suppressLowConfidence: z.ZodOptional<z.ZodBoolean>;
261
+ minEntropy: z.ZodOptional<z.ZodNumber>;
262
+ }, "strip", z.ZodTypeAny, {
263
+ suppressTestFiles?: boolean;
264
+ suppressLowConfidence?: boolean;
265
+ minEntropy?: number;
266
+ }, {
267
+ suppressTestFiles?: boolean;
268
+ suppressLowConfidence?: boolean;
269
+ minEntropy?: number;
270
+ }>>;
271
+ }, "strip", z.ZodTypeAny, {
272
+ version?: string;
273
+ template?: "enterprise" | "startup" | "oss";
274
+ framework?: string;
275
+ scans?: {
276
+ vulnerabilities?: {
277
+ enabled?: boolean;
278
+ threshold?: "critical" | "high" | "medium" | "low";
279
+ excludePatterns?: string[];
280
+ };
281
+ secrets?: {
282
+ enabled?: boolean;
283
+ threshold?: "critical" | "high" | "medium" | "low";
284
+ excludePatterns?: string[];
285
+ };
286
+ compliance?: {
287
+ enabled?: boolean;
288
+ frameworks?: ("soc2" | "gdpr" | "hipaa" | "pci" | "iso27001" | "nist")[];
289
+ autoEvidence?: boolean;
290
+ };
291
+ sbom?: {
292
+ enabled?: boolean;
293
+ };
294
+ };
295
+ gating?: {
296
+ enabled?: boolean;
297
+ blockOnCritical?: boolean;
298
+ blockOnHigh?: boolean;
299
+ baselineEnabled?: boolean;
300
+ allowlistEnabled?: boolean;
301
+ };
302
+ output?: {
303
+ format?: "json" | "sarif" | "table" | "markdown";
304
+ sarifUpload?: boolean;
305
+ badgeGeneration?: boolean;
306
+ };
307
+ ci?: {
308
+ enabled?: boolean;
309
+ sarifUpload?: boolean;
310
+ provider?: "github" | "gitlab" | "azure" | "bitbucket";
311
+ runOnPush?: boolean;
312
+ runOnPR?: boolean;
313
+ };
314
+ hooks?: {
315
+ enabled?: boolean;
316
+ runner?: "husky" | "lefthook";
317
+ preCommit?: boolean;
318
+ prePush?: boolean;
319
+ };
320
+ noise?: {
321
+ suppressTestFiles?: boolean;
322
+ suppressLowConfidence?: boolean;
323
+ minEntropy?: number;
324
+ };
325
+ }, {
326
+ version?: string;
327
+ template?: "enterprise" | "startup" | "oss";
328
+ framework?: string;
329
+ scans?: {
330
+ vulnerabilities?: {
331
+ enabled?: boolean;
332
+ threshold?: "critical" | "high" | "medium" | "low";
333
+ excludePatterns?: string[];
334
+ };
335
+ secrets?: {
336
+ enabled?: boolean;
337
+ threshold?: "critical" | "high" | "medium" | "low";
338
+ excludePatterns?: string[];
339
+ };
340
+ compliance?: {
341
+ enabled?: boolean;
342
+ frameworks?: ("soc2" | "gdpr" | "hipaa" | "pci" | "iso27001" | "nist")[];
343
+ autoEvidence?: boolean;
344
+ };
345
+ sbom?: {
346
+ enabled?: boolean;
347
+ };
348
+ };
349
+ gating?: {
350
+ enabled?: boolean;
351
+ blockOnCritical?: boolean;
352
+ blockOnHigh?: boolean;
353
+ baselineEnabled?: boolean;
354
+ allowlistEnabled?: boolean;
355
+ };
356
+ output?: {
357
+ format?: "json" | "sarif" | "table" | "markdown";
358
+ sarifUpload?: boolean;
359
+ badgeGeneration?: boolean;
360
+ };
361
+ ci?: {
362
+ enabled?: boolean;
363
+ sarifUpload?: boolean;
364
+ provider?: "github" | "gitlab" | "azure" | "bitbucket";
365
+ runOnPush?: boolean;
366
+ runOnPR?: boolean;
367
+ };
368
+ hooks?: {
369
+ enabled?: boolean;
370
+ runner?: "husky" | "lefthook";
371
+ preCommit?: boolean;
372
+ prePush?: boolean;
373
+ };
374
+ noise?: {
375
+ suppressTestFiles?: boolean;
376
+ suppressLowConfidence?: boolean;
377
+ minEntropy?: number;
378
+ };
379
+ }>;
380
+ export type GuardrailConfig = z.infer<typeof GuardrailConfigSchema>;
381
+ export interface TemplateDefinition {
382
+ name: string;
383
+ description: string;
384
+ config: GuardrailConfig;
385
+ }
386
+ export declare const TEMPLATES: Record<TemplateType, TemplateDefinition>;
387
+ export declare function getTemplate(templateType: TemplateType): TemplateDefinition;
388
+ export declare function validateConfig(config: unknown): {
389
+ success: true;
390
+ data: GuardrailConfig;
391
+ } | {
392
+ success: false;
393
+ error: z.ZodError;
394
+ };
395
+ export declare function mergeWithFrameworkDefaults(config: GuardrailConfig, framework: string, recommendedScans: string[]): GuardrailConfig;
396
+ export declare function getTemplateChoices(): Array<{
397
+ name: string;
398
+ value: TemplateType;
399
+ description: string;
400
+ }>;
401
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/init/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY,6CAA2C,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAI3B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAM7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAI7B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;EAMzB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;EAK5B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmBhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;CACzB;AA8HD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAI9D,CAAC;AAEF,wBAAgB,WAAW,CAAC,YAAY,EAAE,YAAY,GAAG,kBAAkB,CAE1E;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAA;CAAE,CAMhI;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EAAE,GACzB,eAAe,CAkBjB;AAED,wBAAgB,kBAAkB,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAkBtG"}
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ /**
3
+ * Template Configuration Module
4
+ * Defines startup/enterprise/oss templates with Zod schema validation
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.TEMPLATES = exports.GuardrailConfigSchema = exports.HooksConfigSchema = exports.CIConfigSchema = exports.OutputConfigSchema = exports.GatingConfigSchema = exports.ComplianceConfigSchema = exports.ScanConfigSchema = exports.TemplateType = void 0;
8
+ exports.getTemplate = getTemplate;
9
+ exports.validateConfig = validateConfig;
10
+ exports.mergeWithFrameworkDefaults = mergeWithFrameworkDefaults;
11
+ exports.getTemplateChoices = getTemplateChoices;
12
+ const zod_1 = require("zod");
13
+ exports.TemplateType = zod_1.z.enum(['startup', 'enterprise', 'oss']);
14
+ exports.ScanConfigSchema = zod_1.z.object({
15
+ enabled: zod_1.z.boolean(),
16
+ threshold: zod_1.z.enum(['critical', 'high', 'medium', 'low']).optional(),
17
+ excludePatterns: zod_1.z.array(zod_1.z.string()).optional(),
18
+ });
19
+ exports.ComplianceConfigSchema = zod_1.z.object({
20
+ enabled: zod_1.z.boolean(),
21
+ frameworks: zod_1.z.array(zod_1.z.enum(['soc2', 'gdpr', 'hipaa', 'pci', 'iso27001', 'nist'])).optional(),
22
+ autoEvidence: zod_1.z.boolean().optional(),
23
+ });
24
+ exports.GatingConfigSchema = zod_1.z.object({
25
+ enabled: zod_1.z.boolean(),
26
+ blockOnCritical: zod_1.z.boolean().optional(),
27
+ blockOnHigh: zod_1.z.boolean().optional(),
28
+ baselineEnabled: zod_1.z.boolean().optional(),
29
+ allowlistEnabled: zod_1.z.boolean().optional(),
30
+ });
31
+ exports.OutputConfigSchema = zod_1.z.object({
32
+ format: zod_1.z.enum(['table', 'json', 'sarif', 'markdown']),
33
+ sarifUpload: zod_1.z.boolean().optional(),
34
+ badgeGeneration: zod_1.z.boolean().optional(),
35
+ });
36
+ exports.CIConfigSchema = zod_1.z.object({
37
+ enabled: zod_1.z.boolean(),
38
+ provider: zod_1.z.enum(['github', 'gitlab', 'azure', 'bitbucket']).optional(),
39
+ runOnPush: zod_1.z.boolean().optional(),
40
+ runOnPR: zod_1.z.boolean().optional(),
41
+ sarifUpload: zod_1.z.boolean().optional(),
42
+ });
43
+ exports.HooksConfigSchema = zod_1.z.object({
44
+ enabled: zod_1.z.boolean(),
45
+ runner: zod_1.z.enum(['husky', 'lefthook']).optional(),
46
+ preCommit: zod_1.z.boolean().optional(),
47
+ prePush: zod_1.z.boolean().optional(),
48
+ });
49
+ exports.GuardrailConfigSchema = zod_1.z.object({
50
+ version: zod_1.z.string(),
51
+ template: exports.TemplateType.optional(),
52
+ framework: zod_1.z.string().optional(),
53
+ scans: zod_1.z.object({
54
+ secrets: exports.ScanConfigSchema,
55
+ vulnerabilities: exports.ScanConfigSchema,
56
+ compliance: exports.ComplianceConfigSchema,
57
+ sbom: zod_1.z.object({ enabled: zod_1.z.boolean() }).optional(),
58
+ }),
59
+ gating: exports.GatingConfigSchema,
60
+ output: exports.OutputConfigSchema,
61
+ ci: exports.CIConfigSchema.optional(),
62
+ hooks: exports.HooksConfigSchema.optional(),
63
+ noise: zod_1.z.object({
64
+ suppressTestFiles: zod_1.z.boolean().optional(),
65
+ suppressLowConfidence: zod_1.z.boolean().optional(),
66
+ minEntropy: zod_1.z.number().optional(),
67
+ }).optional(),
68
+ });
69
+ const STARTUP_TEMPLATE = {
70
+ name: 'Startup',
71
+ description: 'Fast scans, minimal compliance, friendly noise thresholds - ideal for early-stage teams',
72
+ config: {
73
+ version: '1.0.0',
74
+ template: 'startup',
75
+ scans: {
76
+ secrets: {
77
+ enabled: true,
78
+ threshold: 'high',
79
+ excludePatterns: ['**/*.test.*', '**/*.spec.*', '**/fixtures/**'],
80
+ },
81
+ vulnerabilities: {
82
+ enabled: true,
83
+ threshold: 'high',
84
+ },
85
+ compliance: {
86
+ enabled: false,
87
+ },
88
+ },
89
+ gating: {
90
+ enabled: true,
91
+ blockOnCritical: true,
92
+ blockOnHigh: false,
93
+ baselineEnabled: false,
94
+ allowlistEnabled: false,
95
+ },
96
+ output: {
97
+ format: 'table',
98
+ badgeGeneration: true,
99
+ },
100
+ noise: {
101
+ suppressTestFiles: true,
102
+ suppressLowConfidence: true,
103
+ minEntropy: 3.5,
104
+ },
105
+ },
106
+ };
107
+ const ENTERPRISE_TEMPLATE = {
108
+ name: 'Enterprise',
109
+ description: 'Strict gating, baseline/allowlist enabled, compliance on by default, SARIF output for CI',
110
+ config: {
111
+ version: '1.0.0',
112
+ template: 'enterprise',
113
+ scans: {
114
+ secrets: {
115
+ enabled: true,
116
+ threshold: 'low',
117
+ },
118
+ vulnerabilities: {
119
+ enabled: true,
120
+ threshold: 'medium',
121
+ },
122
+ compliance: {
123
+ enabled: true,
124
+ frameworks: ['soc2'],
125
+ autoEvidence: true,
126
+ },
127
+ sbom: {
128
+ enabled: true,
129
+ },
130
+ },
131
+ gating: {
132
+ enabled: true,
133
+ blockOnCritical: true,
134
+ blockOnHigh: true,
135
+ baselineEnabled: true,
136
+ allowlistEnabled: true,
137
+ },
138
+ output: {
139
+ format: 'sarif',
140
+ sarifUpload: true,
141
+ badgeGeneration: true,
142
+ },
143
+ noise: {
144
+ suppressTestFiles: false,
145
+ suppressLowConfidence: false,
146
+ },
147
+ },
148
+ };
149
+ const OSS_TEMPLATE = {
150
+ name: 'OSS',
151
+ description: 'Focus on supply chain (SBOM, vulns), permissive gating, contributor-friendly output',
152
+ config: {
153
+ version: '1.0.0',
154
+ template: 'oss',
155
+ scans: {
156
+ secrets: {
157
+ enabled: true,
158
+ threshold: 'high',
159
+ excludePatterns: ['**/*.example.*', '**/examples/**', '**/docs/**'],
160
+ },
161
+ vulnerabilities: {
162
+ enabled: true,
163
+ threshold: 'medium',
164
+ },
165
+ compliance: {
166
+ enabled: false,
167
+ },
168
+ sbom: {
169
+ enabled: true,
170
+ },
171
+ },
172
+ gating: {
173
+ enabled: true,
174
+ blockOnCritical: true,
175
+ blockOnHigh: false,
176
+ baselineEnabled: true,
177
+ allowlistEnabled: true,
178
+ },
179
+ output: {
180
+ format: 'markdown',
181
+ badgeGeneration: true,
182
+ },
183
+ noise: {
184
+ suppressTestFiles: true,
185
+ suppressLowConfidence: true,
186
+ minEntropy: 3.0,
187
+ },
188
+ },
189
+ };
190
+ exports.TEMPLATES = {
191
+ startup: STARTUP_TEMPLATE,
192
+ enterprise: ENTERPRISE_TEMPLATE,
193
+ oss: OSS_TEMPLATE,
194
+ };
195
+ function getTemplate(templateType) {
196
+ return exports.TEMPLATES[templateType];
197
+ }
198
+ function validateConfig(config) {
199
+ const result = exports.GuardrailConfigSchema.safeParse(config);
200
+ if (result.success) {
201
+ return { success: true, data: result.data };
202
+ }
203
+ return { success: false, error: result.error };
204
+ }
205
+ function mergeWithFrameworkDefaults(config, framework, recommendedScans) {
206
+ const merged = { ...config, framework };
207
+ if (recommendedScans.includes('reality')) {
208
+ merged.scans = {
209
+ ...merged.scans,
210
+ };
211
+ }
212
+ if (recommendedScans.includes('compliance') && !merged.scans.compliance.enabled) {
213
+ merged.scans.compliance = {
214
+ ...merged.scans.compliance,
215
+ enabled: true,
216
+ frameworks: ['soc2'],
217
+ };
218
+ }
219
+ return merged;
220
+ }
221
+ function getTemplateChoices() {
222
+ return [
223
+ {
224
+ name: 'Startup',
225
+ value: 'startup',
226
+ description: STARTUP_TEMPLATE.description,
227
+ },
228
+ {
229
+ name: 'Enterprise',
230
+ value: 'enterprise',
231
+ description: ENTERPRISE_TEMPLATE.description,
232
+ },
233
+ {
234
+ name: 'OSS',
235
+ value: 'oss',
236
+ description: OSS_TEMPLATE.description,
237
+ },
238
+ ];
239
+ }
240
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/init/templates.ts"],"names":[],"mappings":"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"}