@vibecheckai/cli 2.5.7 → 2.7.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 (159) hide show
  1. package/LICENSE +1 -1
  2. package/dist/bundles/vibecheck-core.js +20 -20
  3. package/dist/commands/secrets-allowlist.js +4 -4
  4. package/dist/commands/secrets-allowlist.js.map +1 -1
  5. package/dist/commands/ship-consolidated.js +193 -193
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/init/ci-generator.d.ts +2 -2
  10. package/dist/init/hooks-installer.d.ts +2 -2
  11. package/dist/init/index.d.ts +1 -1
  12. package/dist/init/index.d.ts.map +1 -1
  13. package/dist/init/index.js +2 -2
  14. package/dist/init/index.js.map +1 -1
  15. package/dist/init/templates.d.ts +6 -285
  16. package/dist/init/templates.d.ts.map +1 -1
  17. package/dist/init/templates.js +2 -3
  18. package/dist/init/templates.js.map +1 -1
  19. package/dist/runtime/json-output.d.ts +2 -2
  20. package/package.json +11 -3
  21. package/dist/bundles/guardrail-core.js +0 -25799
  22. package/dist/bundles/guardrail-security.js +0 -208687
  23. package/dist/bundles/guardrail-ship.js +0 -2318
  24. package/dist/commands/autopilot-decision.d.ts +0 -24
  25. package/dist/commands/autopilot-decision.d.ts.map +0 -1
  26. package/dist/commands/autopilot-decision.js +0 -304
  27. package/dist/commands/autopilot-decision.js.map +0 -1
  28. package/dist/commands/autopilot.d.ts +0 -33
  29. package/dist/commands/autopilot.d.ts.map +0 -1
  30. package/dist/commands/autopilot.js +0 -1539
  31. package/dist/commands/autopilot.js.map +0 -1
  32. package/dist/commands/context.d.ts +0 -8
  33. package/dist/commands/context.d.ts.map +0 -1
  34. package/dist/commands/context.js +0 -340
  35. package/dist/commands/context.js.map +0 -1
  36. package/dist/commands/debug.d.ts +0 -78
  37. package/dist/commands/debug.d.ts.map +0 -1
  38. package/dist/commands/debug.js +0 -381
  39. package/dist/commands/debug.js.map +0 -1
  40. package/dist/commands/preview.d.ts +0 -54
  41. package/dist/commands/preview.d.ts.map +0 -1
  42. package/dist/commands/preview.js +0 -352
  43. package/dist/commands/preview.js.map +0 -1
  44. package/dist/commands/quality/check.d.ts +0 -31
  45. package/dist/commands/quality/check.d.ts.map +0 -1
  46. package/dist/commands/quality/check.js +0 -242
  47. package/dist/commands/quality/check.js.map +0 -1
  48. package/dist/commands/quality/index.d.ts +0 -8
  49. package/dist/commands/quality/index.d.ts.map +0 -1
  50. package/dist/commands/quality/index.js +0 -14
  51. package/dist/commands/quality/index.js.map +0 -1
  52. package/dist/commands/quality/setup-quality.d.ts +0 -23
  53. package/dist/commands/quality/setup-quality.d.ts.map +0 -1
  54. package/dist/commands/quality/setup-quality.js +0 -452
  55. package/dist/commands/quality/setup-quality.js.map +0 -1
  56. package/dist/commands/quality/tidy.d.ts +0 -41
  57. package/dist/commands/quality/tidy.d.ts.map +0 -1
  58. package/dist/commands/quality/tidy.js +0 -466
  59. package/dist/commands/quality/tidy.js.map +0 -1
  60. package/dist/commands/quality/utils.d.ts +0 -73
  61. package/dist/commands/quality/utils.d.ts.map +0 -1
  62. package/dist/commands/quality/utils.js +0 -158
  63. package/dist/commands/quality/utils.js.map +0 -1
  64. package/dist/fix/analytics.d.ts +0 -121
  65. package/dist/fix/analytics.d.ts.map +0 -1
  66. package/dist/fix/analytics.js +0 -289
  67. package/dist/fix/analytics.js.map +0 -1
  68. package/dist/fix/audit.d.ts +0 -61
  69. package/dist/fix/audit.d.ts.map +0 -1
  70. package/dist/fix/audit.js +0 -149
  71. package/dist/fix/audit.js.map +0 -1
  72. package/dist/fix/config.d.ts +0 -78
  73. package/dist/fix/config.d.ts.map +0 -1
  74. package/dist/fix/config.js +0 -200
  75. package/dist/fix/config.js.map +0 -1
  76. package/dist/fix/impact.d.ts +0 -74
  77. package/dist/fix/impact.d.ts.map +0 -1
  78. package/dist/fix/impact.js +0 -281
  79. package/dist/fix/impact.js.map +0 -1
  80. package/dist/fix/learning.d.ts +0 -109
  81. package/dist/fix/learning.d.ts.map +0 -1
  82. package/dist/fix/learning.js +0 -296
  83. package/dist/fix/learning.js.map +0 -1
  84. package/dist/fix/metrics.d.ts +0 -106
  85. package/dist/fix/metrics.d.ts.map +0 -1
  86. package/dist/fix/metrics.js +0 -138
  87. package/dist/fix/metrics.js.map +0 -1
  88. package/dist/fix/parallel.d.ts +0 -69
  89. package/dist/fix/parallel.d.ts.map +0 -1
  90. package/dist/fix/parallel.js +0 -203
  91. package/dist/fix/parallel.js.map +0 -1
  92. package/dist/fix/report.d.ts +0 -40
  93. package/dist/fix/report.d.ts.map +0 -1
  94. package/dist/fix/report.js +0 -212
  95. package/dist/fix/report.js.map +0 -1
  96. package/dist/fix/strategy.d.ts +0 -53
  97. package/dist/fix/strategy.d.ts.map +0 -1
  98. package/dist/fix/strategy.js +0 -143
  99. package/dist/fix/strategy.js.map +0 -1
  100. package/dist/fix/templates.d.ts +0 -58
  101. package/dist/fix/templates.d.ts.map +0 -1
  102. package/dist/fix/templates.js +0 -259
  103. package/dist/fix/templates.js.map +0 -1
  104. package/dist/fix/testing.d.ts +0 -68
  105. package/dist/fix/testing.d.ts.map +0 -1
  106. package/dist/fix/testing.js +0 -245
  107. package/dist/fix/testing.js.map +0 -1
  108. package/dist/fix/validation.d.ts +0 -71
  109. package/dist/fix/validation.d.ts.map +0 -1
  110. package/dist/fix/validation.js +0 -267
  111. package/dist/fix/validation.js.map +0 -1
  112. package/dist/fix/visualization.d.ts +0 -73
  113. package/dist/fix/visualization.d.ts.map +0 -1
  114. package/dist/fix/visualization.js +0 -243
  115. package/dist/fix/visualization.js.map +0 -1
  116. package/dist/runtime/cli-errors.d.ts +0 -38
  117. package/dist/runtime/cli-errors.d.ts.map +0 -1
  118. package/dist/runtime/cli-errors.js +0 -354
  119. package/dist/runtime/cli-errors.js.map +0 -1
  120. package/dist/runtime/owner-mode.d.ts +0 -48
  121. package/dist/runtime/owner-mode.d.ts.map +0 -1
  122. package/dist/runtime/owner-mode.js +0 -284
  123. package/dist/runtime/owner-mode.js.map +0 -1
  124. package/dist/scanner/index.d.ts +0 -8
  125. package/dist/scanner/index.d.ts.map +0 -1
  126. package/dist/scanner/index.js +0 -15
  127. package/dist/scanner/index.js.map +0 -1
  128. package/dist/scanner/placeholder-detector.d.ts +0 -56
  129. package/dist/scanner/placeholder-detector.d.ts.map +0 -1
  130. package/dist/scanner/placeholder-detector.js +0 -220
  131. package/dist/scanner/placeholder-detector.js.map +0 -1
  132. package/dist/scanner/route-detector.d.ts +0 -100
  133. package/dist/scanner/route-detector.d.ts.map +0 -1
  134. package/dist/scanner/route-detector.js +0 -455
  135. package/dist/scanner/route-detector.js.map +0 -1
  136. package/dist/scanner/scoring.d.ts +0 -67
  137. package/dist/scanner/scoring.d.ts.map +0 -1
  138. package/dist/scanner/scoring.js +0 -284
  139. package/dist/scanner/scoring.js.map +0 -1
  140. package/dist/ship-baseline.d.ts +0 -56
  141. package/dist/ship-baseline.d.ts.map +0 -1
  142. package/dist/ship-baseline.js +0 -194
  143. package/dist/ship-baseline.js.map +0 -1
  144. package/dist/ship-config.d.ts +0 -91
  145. package/dist/ship-config.d.ts.map +0 -1
  146. package/dist/ship-config.js +0 -133
  147. package/dist/ship-config.js.map +0 -1
  148. package/dist/ship-data-loader.d.ts +0 -70
  149. package/dist/ship-data-loader.d.ts.map +0 -1
  150. package/dist/ship-data-loader.js +0 -301
  151. package/dist/ship-data-loader.js.map +0 -1
  152. package/dist/utils/ai-helpers.d.ts +0 -72
  153. package/dist/utils/ai-helpers.d.ts.map +0 -1
  154. package/dist/utils/ai-helpers.js +0 -339
  155. package/dist/utils/ai-helpers.js.map +0 -1
  156. package/dist/utils/validation.d.ts +0 -34
  157. package/dist/utils/validation.d.ts.map +0 -1
  158. package/dist/utils/validation.js +0 -160
  159. package/dist/utils/validation.js.map +0 -1
@@ -1,284 +0,0 @@
1
- "use strict";
2
- /**
3
- * Improved Scoring System
4
- *
5
- * Separates score components for better transparency:
6
- * - Integrity score (routes, links, 404s)
7
- * - Production readiness (placeholders, mocks, TODOs)
8
- * - Security score (secrets, vulnerabilities)
9
- *
10
- * Provides weighted final score that's less punitive
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.calculateScore = calculateScore;
14
- exports.formatScoreAsText = formatScoreAsText;
15
- /**
16
- * Calculate integrity score
17
- */
18
- function calculateIntegrityScore(inputs = {}) {
19
- const { routes = 0, deadLinks = 0, orphanRoutes = 0, runtime404s = 0, unresolvedDynamic = 0, } = inputs;
20
- // Base score starts at 100
21
- let score = 100;
22
- const details = [];
23
- // Routes found is good (not penalized)
24
- if (routes > 0) {
25
- details.push({
26
- label: 'Routes Detected',
27
- value: routes,
28
- impact: 0, // Positive, no penalty
29
- });
30
- }
31
- // Penalties (less punitive than before)
32
- const deadLinkPenalty = Math.min(deadLinks * 2, 30); // Max -30 points
33
- if (deadLinks > 0) {
34
- score -= deadLinkPenalty;
35
- details.push({
36
- label: 'Dead Links',
37
- value: deadLinks,
38
- impact: -deadLinkPenalty,
39
- });
40
- }
41
- const orphanRoutePenalty = Math.min(orphanRoutes * 3, 25); // Max -25 points
42
- if (orphanRoutes > 0) {
43
- score -= orphanRoutePenalty;
44
- details.push({
45
- label: 'Orphan Routes',
46
- value: orphanRoutes,
47
- impact: -orphanRoutePenalty,
48
- });
49
- }
50
- const runtime404Penalty = Math.min(runtime404s * 5, 30); // Max -30 points
51
- if (runtime404s > 0) {
52
- score -= runtime404Penalty;
53
- details.push({
54
- label: 'Runtime 404s',
55
- value: runtime404s,
56
- impact: -runtime404Penalty,
57
- });
58
- }
59
- const unresolvedPenalty = Math.min(unresolvedDynamic * 2, 15); // Max -15 points
60
- if (unresolvedDynamic > 0) {
61
- score -= unresolvedPenalty;
62
- details.push({
63
- label: 'Unresolved Dynamic Routes',
64
- value: unresolvedDynamic,
65
- impact: -unresolvedPenalty,
66
- });
67
- }
68
- return {
69
- name: 'Integrity',
70
- score: Math.max(0, score), // Don't go below 0
71
- maxScore: 100,
72
- weight: 0.3, // 30% weight
73
- details,
74
- };
75
- }
76
- /**
77
- * Calculate production readiness score
78
- */
79
- function calculateProductionReadinessScore(inputs = {}) {
80
- const { placeholders = 0, mocks = 0, todos = 0, testData = 0, } = inputs;
81
- // Base score starts at 100
82
- let score = 100;
83
- const details = [];
84
- // Much less punitive scoring
85
- // Placeholders: -1 point per placeholder, max -40
86
- const placeholderPenalty = Math.min(placeholders * 1, 40);
87
- if (placeholders > 0) {
88
- score -= placeholderPenalty;
89
- details.push({
90
- label: 'Placeholders',
91
- value: placeholders,
92
- impact: -placeholderPenalty,
93
- });
94
- }
95
- // Mocks: -3 points per mock, max -30
96
- const mockPenalty = Math.min(mocks * 3, 30);
97
- if (mocks > 0) {
98
- score -= mockPenalty;
99
- details.push({
100
- label: 'Mock Data',
101
- value: mocks,
102
- impact: -mockPenalty,
103
- });
104
- }
105
- // TODOs: -1 point per TODO, max -20
106
- const todoPenalty = Math.min(todos * 1, 20);
107
- if (todos > 0) {
108
- score -= todoPenalty;
109
- details.push({
110
- label: 'TODOs/FIXMEs',
111
- value: todos,
112
- impact: -todoPenalty,
113
- });
114
- }
115
- // Test data: -2 points per instance, max -10
116
- const testDataPenalty = Math.min(testData * 2, 10);
117
- if (testData > 0) {
118
- score -= testDataPenalty;
119
- details.push({
120
- label: 'Test Data in Production',
121
- value: testData,
122
- impact: -testDataPenalty,
123
- });
124
- }
125
- return {
126
- name: 'Production Readiness',
127
- score: Math.max(0, score),
128
- maxScore: 100,
129
- weight: 0.35, // 35% weight
130
- details,
131
- };
132
- }
133
- /**
134
- * Calculate security score
135
- */
136
- function calculateSecurityScore(inputs = {}) {
137
- const { secrets = 0, vulnerabilities = 0, complianceIssues = 0, } = inputs;
138
- // Base score starts at 100
139
- let score = 100;
140
- const details = [];
141
- // Secrets: -10 points per secret, max -50
142
- const secretPenalty = Math.min(secrets * 10, 50);
143
- if (secrets > 0) {
144
- score -= secretPenalty;
145
- details.push({
146
- label: 'Secrets Detected',
147
- value: secrets,
148
- impact: -secretPenalty,
149
- });
150
- }
151
- // Vulnerabilities: -5 points per vulnerability, max -40
152
- const vulnPenalty = Math.min(vulnerabilities * 5, 40);
153
- if (vulnerabilities > 0) {
154
- score -= vulnPenalty;
155
- details.push({
156
- label: 'Vulnerabilities',
157
- value: vulnerabilities,
158
- impact: -vulnPenalty,
159
- });
160
- }
161
- // Compliance: -3 points per issue, max -10
162
- const compliancePenalty = Math.min(complianceIssues * 3, 10);
163
- if (complianceIssues > 0) {
164
- score -= compliancePenalty;
165
- details.push({
166
- label: 'Compliance Issues',
167
- value: complianceIssues,
168
- impact: -compliancePenalty,
169
- });
170
- }
171
- return {
172
- name: 'Security',
173
- score: Math.max(0, score),
174
- maxScore: 100,
175
- weight: 0.35, // 35% weight
176
- details,
177
- };
178
- }
179
- /**
180
- * Get letter grade from percentage
181
- */
182
- function getGrade(percentage) {
183
- if (percentage >= 90)
184
- return 'A';
185
- if (percentage >= 80)
186
- return 'B';
187
- if (percentage >= 70)
188
- return 'C';
189
- if (percentage >= 60)
190
- return 'D';
191
- return 'F';
192
- }
193
- /**
194
- * Calculate comprehensive score
195
- */
196
- function calculateScore(inputs) {
197
- const integrity = calculateIntegrityScore(inputs.integrity);
198
- const productionReadiness = calculateProductionReadinessScore(inputs.productionReadiness);
199
- const security = calculateSecurityScore(inputs.security);
200
- // Calculate weighted score
201
- const breakdown = [
202
- {
203
- category: integrity.name,
204
- score: integrity.score,
205
- weight: integrity.weight,
206
- weightedScore: integrity.score * integrity.weight,
207
- },
208
- {
209
- category: productionReadiness.name,
210
- score: productionReadiness.score,
211
- weight: productionReadiness.weight,
212
- weightedScore: productionReadiness.score * productionReadiness.weight,
213
- },
214
- {
215
- category: security.name,
216
- score: security.score,
217
- weight: security.weight,
218
- weightedScore: security.score * security.weight,
219
- },
220
- ];
221
- const weightedScore = breakdown.reduce((sum, item) => sum + item.weightedScore, 0);
222
- const percentage = Math.round(weightedScore);
223
- return {
224
- integrity,
225
- productionReadiness,
226
- security,
227
- overall: {
228
- score: weightedScore,
229
- maxScore: 100,
230
- percentage,
231
- grade: getGrade(percentage),
232
- },
233
- breakdown,
234
- };
235
- }
236
- /**
237
- * Format score as text
238
- */
239
- function formatScoreAsText(result) {
240
- const lines = [];
241
- lines.push('═══════════════════════════════════════════════════════════════');
242
- lines.push('SCORE BREAKDOWN');
243
- lines.push('═══════════════════════════════════════════════════════════════');
244
- lines.push('');
245
- // Overall score
246
- lines.push(`OVERALL SCORE: ${result.overall.percentage}/100 (Grade: ${result.overall.grade})`);
247
- lines.push('');
248
- // Integrity score
249
- lines.push(`${result.integrity.name}: ${result.integrity.score}/100`);
250
- if (result.integrity.details.length > 0) {
251
- for (const detail of result.integrity.details) {
252
- const sign = detail.impact >= 0 ? '+' : '';
253
- lines.push(` ${detail.label}: ${detail.value} (${sign}${detail.impact} pts)`);
254
- }
255
- }
256
- lines.push('');
257
- // Production readiness score
258
- lines.push(`${result.productionReadiness.name}: ${result.productionReadiness.score}/100`);
259
- if (result.productionReadiness.details.length > 0) {
260
- for (const detail of result.productionReadiness.details) {
261
- const sign = detail.impact >= 0 ? '+' : '';
262
- lines.push(` ${detail.label}: ${detail.value} (${sign}${detail.impact} pts)`);
263
- }
264
- }
265
- lines.push('');
266
- // Security score
267
- lines.push(`${result.security.name}: ${result.security.score}/100`);
268
- if (result.security.details.length > 0) {
269
- for (const detail of result.security.details) {
270
- const sign = detail.impact >= 0 ? '+' : '';
271
- lines.push(` ${detail.label}: ${detail.value} (${sign}${detail.impact} pts)`);
272
- }
273
- }
274
- lines.push('');
275
- // Breakdown
276
- lines.push('WEIGHTED BREAKDOWN:');
277
- for (const item of result.breakdown) {
278
- lines.push(` ${item.category}: ${item.score}/100 × ${(item.weight * 100).toFixed(0)}% = ${item.weightedScore.toFixed(1)}`);
279
- }
280
- lines.push('');
281
- lines.push('═══════════════════════════════════════════════════════════════');
282
- return lines.join('\n');
283
- }
284
- //# sourceMappingURL=scoring.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/scanner/scoring.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAiRH,wCA+CC;AAKD,8CA0DC;AA1UD;;GAEG;AACH,SAAS,uBAAuB,CAC9B,SAAqC,EAAE;IAEvC,MAAM,EACJ,MAAM,GAAG,CAAC,EACV,SAAS,GAAG,CAAC,EACb,YAAY,GAAG,CAAC,EAChB,WAAW,GAAG,CAAC,EACf,iBAAiB,GAAG,CAAC,GACtB,GAAG,MAAM,CAAC;IAEX,2BAA2B;IAC3B,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,MAAM,OAAO,GAA8B,EAAE,CAAC;IAE9C,uCAAuC;IACvC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,CAAC,EAAE,uBAAuB;SACnC,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB;IACtE,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,KAAK,IAAI,eAAe,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,CAAC,eAAe;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB;IAC5E,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,IAAI,kBAAkB,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,CAAC,kBAAkB;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB;IAC1E,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,IAAI,iBAAiB,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,CAAC,iBAAiB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB;IAChF,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,IAAI,iBAAiB,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,2BAA2B;YAClC,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,CAAC,iBAAiB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,mBAAmB;QAC9C,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,GAAG,EAAE,aAAa;QAC1B,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iCAAiC,CACxC,SAA+C,EAAE;IAEjD,MAAM,EACJ,YAAY,GAAG,CAAC,EAChB,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,CAAC,EACT,QAAQ,GAAG,CAAC,GACb,GAAG,MAAM,CAAC;IAEX,2BAA2B;IAC3B,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,MAAM,OAAO,GAA8B,EAAE,CAAC;IAE9C,6BAA6B;IAC7B,kDAAkD;IAClD,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1D,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,IAAI,kBAAkB,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,CAAC,kBAAkB;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,qCAAqC;IACrC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,KAAK,IAAI,WAAW,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,CAAC,WAAW;SACrB,CAAC,CAAC;IACL,CAAC;IAED,oCAAoC;IACpC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,KAAK,IAAI,WAAW,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,CAAC,WAAW;SACrB,CAAC,CAAC;IACL,CAAC;IAED,6CAA6C;IAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACnD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,KAAK,IAAI,eAAe,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,yBAAyB;YAChC,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,CAAC,eAAe;SACzB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;QACzB,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,IAAI,EAAE,aAAa;QAC3B,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,SAAoC,EAAE;IAEtC,MAAM,EACJ,OAAO,GAAG,CAAC,EACX,eAAe,GAAG,CAAC,EACnB,gBAAgB,GAAG,CAAC,GACrB,GAAG,MAAM,CAAC;IAEX,2BAA2B;IAC3B,IAAI,KAAK,GAAG,GAAG,CAAC;IAChB,MAAM,OAAO,GAA8B,EAAE,CAAC;IAE9C,0CAA0C;IAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,KAAK,IAAI,aAAa,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,kBAAkB;YACzB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,CAAC,aAAa;SACvB,CAAC,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,IAAI,WAAW,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,CAAC,WAAW;SACrB,CAAC,CAAC;IACL,CAAC;IAED,2CAA2C;IAC3C,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7D,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,IAAI,iBAAiB,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,CAAC,iBAAiB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;QACzB,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,IAAI,EAAE,aAAa;QAC3B,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,UAAkB;IAClC,IAAI,UAAU,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IACjC,IAAI,UAAU,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IACjC,IAAI,UAAU,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IACjC,IAAI,UAAU,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IACjC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,MAAqB;IAClD,MAAM,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,mBAAmB,GAAG,iCAAiC,CAC3D,MAAM,CAAC,mBAAmB,CAC3B,CAAC;IACF,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEzD,2BAA2B;IAC3B,MAAM,SAAS,GAAG;QAChB;YACE,QAAQ,EAAE,SAAS,CAAC,IAAI;YACxB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,aAAa,EAAE,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM;SAClD;QACD;YACE,QAAQ,EAAE,mBAAmB,CAAC,IAAI;YAClC,KAAK,EAAE,mBAAmB,CAAC,KAAK;YAChC,MAAM,EAAE,mBAAmB,CAAC,MAAM;YAClC,aAAa,EAAE,mBAAmB,CAAC,KAAK,GAAG,mBAAmB,CAAC,MAAM;SACtE;QACD;YACE,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,aAAa,EAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM;SAChD;KACF,CAAC;IAEF,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CACpC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,EACvC,CAAC,CACF,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAE7C,OAAO;QACL,SAAS;QACT,mBAAmB;QACnB,QAAQ;QACR,OAAO,EAAE;YACP,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,GAAG;YACb,UAAU;YACV,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC;SAC5B;QACD,SAAS;KACV,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,MAAqB;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAC9E,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAC9E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,gBAAgB;IAChB,KAAK,CAAC,IAAI,CACR,kBAAkB,MAAM,CAAC,OAAO,CAAC,UAAU,gBAAgB,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,CACnF,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,kBAAkB;IAClB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,CAAC;IACtE,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,OAAO,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,6BAA6B;IAC7B,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,mBAAmB,CAAC,IAAI,KAAK,MAAM,CAAC,mBAAmB,CAAC,KAAK,MAAM,CAC9E,CAAC;IACF,IAAI,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,OAAO,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,iBAAiB;IACjB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,OAAO,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,YAAY;IACZ,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CACR,KAAK,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAChH,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;IAE9E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,56 +0,0 @@
1
- /**
2
- * Ship Baseline Management
3
- * Enterprise-grade baseline tracking for ship checks
4
- */
5
- export interface ShipCheckBaseline {
6
- id: string;
7
- status: 'pass' | 'fail' | 'warning';
8
- score: number;
9
- lastSeen: string;
10
- firstSeen: string;
11
- occurrences: number;
12
- }
13
- export interface ShipBaseline {
14
- version: string;
15
- createdAt: string;
16
- updatedAt: string;
17
- projectName: string;
18
- projectPath: string;
19
- checks: ShipCheckBaseline[];
20
- metadata: {
21
- totalScore: number;
22
- verdict: 'ship' | 'no-ship' | 'review';
23
- checkCount: number;
24
- };
25
- }
26
- export declare class ShipBaselineManager {
27
- /**
28
- * Load baseline from file
29
- */
30
- static loadBaseline(baselinePath: string): ShipBaseline | null;
31
- /**
32
- * Save baseline to file
33
- */
34
- static saveBaseline(baselinePath: string, shipResult: any, projectName: string, projectPath: string): ShipBaseline;
35
- /**
36
- * Update baseline with new results
37
- */
38
- static updateBaseline(baselinePath: string, shipResult: any, projectName: string, projectPath: string): ShipBaseline;
39
- /**
40
- * Compare current results with baseline
41
- */
42
- static compareWithBaseline(current: any, baseline: ShipBaseline | null): {
43
- scoreDelta: number;
44
- newIssues: number;
45
- resolvedIssues: number;
46
- regressions: number;
47
- improvements: number;
48
- checks: Array<{
49
- id: string;
50
- status: 'new' | 'resolved' | 'regression' | 'improvement' | 'unchanged';
51
- previousStatus?: string;
52
- currentStatus: string;
53
- }>;
54
- };
55
- }
56
- //# sourceMappingURL=ship-baseline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ship-baseline.d.ts","sourceRoot":"","sources":["../src/ship-baseline.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;QACvC,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,qBAAa,mBAAmB;IAC9B;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAa9D;;OAEG;IACH,MAAM,CAAC,YAAY,CACjB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,GAAG,EACf,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,YAAY;IAkCf;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,GAAG,EACf,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,YAAY;IAoDf;;OAEG;IACH,MAAM,CAAC,mBAAmB,CACxB,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,YAAY,GAAG,IAAI,GAC5B;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,KAAK,CAAC;YACZ,EAAE,EAAE,MAAM,CAAC;YACX,MAAM,EAAE,KAAK,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,WAAW,CAAC;YACxE,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC,CAAC;KACJ;CAgGF"}
@@ -1,194 +0,0 @@
1
- "use strict";
2
- /**
3
- * Ship Baseline Management
4
- * Enterprise-grade baseline tracking for ship checks
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ShipBaselineManager = void 0;
8
- const fs_1 = require("fs");
9
- const path_1 = require("path");
10
- class ShipBaselineManager {
11
- /**
12
- * Load baseline from file
13
- */
14
- static loadBaseline(baselinePath) {
15
- if (!(0, fs_1.existsSync)(baselinePath)) {
16
- return null;
17
- }
18
- try {
19
- const content = (0, fs_1.readFileSync)(baselinePath, 'utf-8');
20
- return JSON.parse(content);
21
- }
22
- catch (error) {
23
- return null;
24
- }
25
- }
26
- /**
27
- * Save baseline to file
28
- */
29
- static saveBaseline(baselinePath, shipResult, projectName, projectPath) {
30
- const now = new Date().toISOString();
31
- const checks = (shipResult.checks || []).map((check) => ({
32
- id: check.id,
33
- status: check.status,
34
- score: shipResult.score,
35
- lastSeen: now,
36
- firstSeen: now,
37
- occurrences: 1,
38
- }));
39
- const baseline = {
40
- version: '1.0.0',
41
- createdAt: now,
42
- updatedAt: now,
43
- projectName,
44
- projectPath,
45
- checks,
46
- metadata: {
47
- totalScore: shipResult.score,
48
- verdict: shipResult.verdict,
49
- checkCount: checks.length,
50
- },
51
- };
52
- (0, fs_1.mkdirSync)((0, path_1.join)(baselinePath, '..'), { recursive: true });
53
- (0, fs_1.writeFileSync)(baselinePath, JSON.stringify(baseline, null, 2), 'utf-8');
54
- return baseline;
55
- }
56
- /**
57
- * Update baseline with new results
58
- */
59
- static updateBaseline(baselinePath, shipResult, projectName, projectPath) {
60
- const existing = this.loadBaseline(baselinePath);
61
- const now = new Date().toISOString();
62
- const checkMap = new Map();
63
- // Load existing checks
64
- if (existing) {
65
- existing.checks.forEach((check) => {
66
- checkMap.set(check.id, check);
67
- });
68
- }
69
- // Update with new results
70
- (shipResult.checks || []).forEach((check) => {
71
- const existingCheck = checkMap.get(check.id);
72
- if (existingCheck) {
73
- existingCheck.status = check.status;
74
- existingCheck.lastSeen = now;
75
- existingCheck.occurrences += 1;
76
- }
77
- else {
78
- checkMap.set(check.id, {
79
- id: check.id,
80
- status: check.status,
81
- score: shipResult.score,
82
- lastSeen: now,
83
- firstSeen: now,
84
- occurrences: 1,
85
- });
86
- }
87
- });
88
- const baseline = {
89
- version: '1.0.0',
90
- createdAt: existing?.createdAt || now,
91
- updatedAt: now,
92
- projectName,
93
- projectPath,
94
- checks: Array.from(checkMap.values()),
95
- metadata: {
96
- totalScore: shipResult.score,
97
- verdict: shipResult.verdict,
98
- checkCount: checkMap.size,
99
- },
100
- };
101
- (0, fs_1.mkdirSync)((0, path_1.join)(baselinePath, '..'), { recursive: true });
102
- (0, fs_1.writeFileSync)(baselinePath, JSON.stringify(baseline, null, 2), 'utf-8');
103
- return baseline;
104
- }
105
- /**
106
- * Compare current results with baseline
107
- */
108
- static compareWithBaseline(current, baseline) {
109
- if (!baseline) {
110
- return {
111
- scoreDelta: 0,
112
- newIssues: (current.checks || []).filter((c) => c.status !== 'pass').length,
113
- resolvedIssues: 0,
114
- regressions: 0,
115
- improvements: 0,
116
- checks: (current.checks || []).map((c) => ({
117
- id: c.id,
118
- status: 'new',
119
- currentStatus: c.status,
120
- })),
121
- };
122
- }
123
- const scoreDelta = current.score - baseline.metadata.totalScore;
124
- const baselineMap = new Map(baseline.checks.map((c) => [c.id, c]));
125
- const checks = [];
126
- let newIssues = 0;
127
- let resolvedIssues = 0;
128
- let regressions = 0;
129
- let improvements = 0;
130
- (current.checks || []).forEach((check) => {
131
- const baselineCheck = baselineMap.get(check.id);
132
- if (!baselineCheck) {
133
- if (check.status !== 'pass') {
134
- newIssues++;
135
- checks.push({
136
- id: check.id,
137
- status: 'new',
138
- currentStatus: check.status,
139
- });
140
- }
141
- }
142
- else {
143
- const previousStatus = baselineCheck.status;
144
- const currentStatus = check.status;
145
- if (previousStatus === 'pass' && currentStatus !== 'pass') {
146
- regressions++;
147
- checks.push({
148
- id: check.id,
149
- status: 'regression',
150
- previousStatus,
151
- currentStatus,
152
- });
153
- }
154
- else if (previousStatus !== 'pass' && currentStatus === 'pass') {
155
- resolvedIssues++;
156
- checks.push({
157
- id: check.id,
158
- status: 'resolved',
159
- previousStatus,
160
- currentStatus,
161
- });
162
- }
163
- else if ((previousStatus === 'fail' && currentStatus === 'warning') ||
164
- (previousStatus === 'warning' && currentStatus === 'pass')) {
165
- improvements++;
166
- checks.push({
167
- id: check.id,
168
- status: 'improvement',
169
- previousStatus,
170
- currentStatus,
171
- });
172
- }
173
- else {
174
- checks.push({
175
- id: check.id,
176
- status: 'unchanged',
177
- previousStatus,
178
- currentStatus,
179
- });
180
- }
181
- }
182
- });
183
- return {
184
- scoreDelta,
185
- newIssues,
186
- resolvedIssues,
187
- regressions,
188
- improvements,
189
- checks,
190
- };
191
- }
192
- }
193
- exports.ShipBaselineManager = ShipBaselineManager;
194
- //# sourceMappingURL=ship-baseline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ship-baseline.js","sourceRoot":"","sources":["../src/ship-baseline.ts"],"names":[],"mappings":"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"}
@@ -1,91 +0,0 @@
1
- /**
2
- * Ship Configuration Management
3
- * Enterprise-grade configuration system for ship checks
4
- */
5
- export interface ShipCheckConfig {
6
- id: string;
7
- enabled: boolean;
8
- severity?: 'critical' | 'high' | 'medium' | 'low';
9
- customRules?: string[];
10
- }
11
- export interface ShipThresholds {
12
- passScore: number;
13
- warnScore: number;
14
- failScore: number;
15
- }
16
- export interface ShipBaselineConfig {
17
- enabled: boolean;
18
- path?: string;
19
- autoUpdate?: boolean;
20
- }
21
- export interface ShipNotificationConfig {
22
- enabled: boolean;
23
- webhooks?: string[];
24
- email?: string[];
25
- slack?: {
26
- webhookUrl: string;
27
- channel?: string;
28
- };
29
- }
30
- export interface ShipConfig {
31
- version: string;
32
- thresholds: ShipThresholds;
33
- checks: ShipCheckConfig[];
34
- baseline?: ShipBaselineConfig;
35
- notifications?: ShipNotificationConfig;
36
- customRules?: {
37
- patterns?: Array<{
38
- name: string;
39
- pattern: string;
40
- severity: 'critical' | 'high' | 'medium' | 'low';
41
- message: string;
42
- }>;
43
- };
44
- excludes?: {
45
- files?: string[];
46
- directories?: string[];
47
- patterns?: string[];
48
- };
49
- integrations?: {
50
- ci?: {
51
- enabled: boolean;
52
- junit?: boolean;
53
- sarif?: boolean;
54
- };
55
- dashboards?: {
56
- enabled: boolean;
57
- endpoint?: string;
58
- apiKey?: string;
59
- };
60
- };
61
- }
62
- export declare class ShipConfigManager {
63
- /**
64
- * Load ship configuration from file
65
- */
66
- static loadConfig(projectPath: string): ShipConfig;
67
- /**
68
- * Save ship configuration to file
69
- */
70
- static saveConfig(projectPath: string, config: ShipConfig): void;
71
- /**
72
- * Initialize default configuration
73
- */
74
- static initConfig(projectPath: string): ShipConfig;
75
- /**
76
- * Validate configuration
77
- */
78
- static validateConfig(config: ShipConfig): {
79
- valid: boolean;
80
- errors: string[];
81
- };
82
- /**
83
- * Export configuration (for sharing between projects)
84
- */
85
- static exportConfig(config: ShipConfig): string;
86
- /**
87
- * Import configuration
88
- */
89
- static importConfig(configJson: string): ShipConfig;
90
- }
91
- //# sourceMappingURL=ship-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ship-config.d.ts","sourceRoot":"","sources":["../src/ship-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,WAAW,CAAC,EAAE;QACZ,QAAQ,CAAC,EAAE,KAAK,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;YAChB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;YACjD,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;KACJ,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,YAAY,CAAC,EAAE;QACb,EAAE,CAAC,EAAE;YACH,OAAO,EAAE,OAAO,CAAC;YACjB,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,KAAK,CAAC,EAAE,OAAO,CAAC;SACjB,CAAC;QACF,UAAU,CAAC,EAAE;YACX,OAAO,EAAE,OAAO,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;CACH;AAgBD,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU;IA0BlD;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAQhE;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU;IAMlD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG;QACzC,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB;IAyBD;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAwB/C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;CAWpD"}