@empline/preflight 1.1.35 → 1.1.37

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.
File without changes
package/dist/bin/audit.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/bin/watch.js CHANGED
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"client-only-protected-pages.d.ts","sourceRoot":"","sources":["../../../src/checks/auth/client-only-protected-pages.ts"],"names":[],"mappings":";AA2BA,eAAO,MAAM,EAAE,qCAAqC,CAAC;AACrD,eAAO,MAAM,IAAI,gCAAgC,CAAC;AAClD,eAAO,MAAM,WAAW,sEAAsE,CAAC;AAC/F,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,IAAI,UAA8D,CAAC;AAChF,eAAO,MAAM,QAAQ,UAA0B,CAAC;AAgDhD,wBAAsB,GAAG,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmH3F"}
1
+ {"version":3,"file":"client-only-protected-pages.d.ts","sourceRoot":"","sources":["../../../src/checks/auth/client-only-protected-pages.ts"],"names":[],"mappings":";AA2BA,eAAO,MAAM,EAAE,qCAAqC,CAAC;AACrD,eAAO,MAAM,IAAI,gCAAgC,CAAC;AAClD,eAAO,MAAM,WAAW,sEAAsE,CAAC;AAC/F,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,IAAI,UAA8D,CAAC;AAChF,eAAO,MAAM,QAAQ,UAA0B,CAAC;AAiDhD,wBAAsB,GAAG,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmH3F"}
@@ -67,8 +67,10 @@ function hasUseClientDirective(content) {
67
67
  }
68
68
  function hasServerAuthCheck(content) {
69
69
  // Check for server-side auth patterns
70
- return (/getServerSession|auth\s*\(\s*\)|requireAuth/.test(content) &&
71
- /redirect|notFound|throw/.test(content));
70
+ // Must match auth function calls AND have redirect/error handling
71
+ const authPatterns = /getServerSession|auth\s*\(\s*\)|requireAuth|requireAdmin|requireSeller|requireRole/;
72
+ const redirectPatterns = /redirect|notFound|throw/;
73
+ return authPatterns.test(content) && redirectPatterns.test(content);
72
74
  }
73
75
  async function run() {
74
76
  console.log(`\n${console_chars_1.emoji.shield} CLIENT ONLY PROTECTED PAGES CHECK`);
@@ -1 +1 @@
1
- {"version":3,"file":"client-only-protected-pages.js","sourceRoot":"","sources":["../../../src/checks/auth/client-only-protected-pages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-only-protected-pages.js","sourceRoot":"","sources":["../../../src/checks/auth/client-only-protected-pages.ts"],"names":[],"mappings":"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"}
@@ -51,9 +51,9 @@ const STORE_PAGE_PATTERNS = [
51
51
  * Required auth patterns for store pages
52
52
  */
53
53
  const REQUIRED_AUTH_PATTERNS = {
54
- // Session/auth check
54
+ // Session/auth check - must include all require* patterns
55
55
  sessionCheck: {
56
- pattern: /getServerSession|auth\s*\(\s*\)|requireAuth|getSession/,
56
+ pattern: /getServerSession|auth\s*\(\s*\)|requireAuth|requireAdmin|requireSeller|requireRole|getSession/,
57
57
  description: "Session/authentication check",
58
58
  critical: true,
59
59
  },
@@ -1 +1 @@
1
- {"version":3,"file":"store-page-auth-guard.js","sourceRoot":"","sources":["../../../src/checks/auth/store-page-auth-guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-page-auth-guard.js","sourceRoot":"","sources":["../../../src/checks/auth/store-page-auth-guard.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Section Header Spacing Preflight
3
+ *
4
+ * Ensures proper spacing around section headers (h2, h3) and their
5
+ * accompanying descriptive text. Without proper spacing, sections
6
+ * look cramped and unprofessional.
7
+ *
8
+ * RULES:
9
+ * 1. Container pattern check: When a div contains only heading (h2/h3) + paragraph,
10
+ * it MUST have flex/gap or mb-* spacing classes
11
+ * 2. Section header margin: Header containers should have bottom margin (mb-*)
12
+ * before grid/content follows
13
+ *
14
+ * Usage:
15
+ * pnpm preflight:ui-spacing:section-headers
16
+ */
17
+ export declare const id = "ui/section-header-spacing";
18
+ export declare const name = "Section Header Spacing";
19
+ export declare const category = "ui";
20
+ export declare const blocking = true;
21
+ export declare const description = "Ensures proper spacing around section headers";
22
+ export declare const tags: string[];
23
+ export declare function run(): Promise<void>;
24
+ //# sourceMappingURL=section-header-spacing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section-header-spacing.d.ts","sourceRoot":"","sources":["../../../src/checks/ui/section-header-spacing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,eAAO,MAAM,EAAE,8BAA8B,CAAC;AAC9C,eAAO,MAAM,IAAI,2BAA2B,CAAC;AAC7C,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,WAAW,kDAAkD,CAAC;AAC3E,eAAO,MAAM,IAAI,UAAoB,CAAC;AA8BtC,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAsLzC"}
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ /**
3
+ * Section Header Spacing Preflight
4
+ *
5
+ * Ensures proper spacing around section headers (h2, h3) and their
6
+ * accompanying descriptive text. Without proper spacing, sections
7
+ * look cramped and unprofessional.
8
+ *
9
+ * RULES:
10
+ * 1. Container pattern check: When a div contains only heading (h2/h3) + paragraph,
11
+ * it MUST have flex/gap or mb-* spacing classes
12
+ * 2. Section header margin: Header containers should have bottom margin (mb-*)
13
+ * before grid/content follows
14
+ *
15
+ * Usage:
16
+ * pnpm preflight:ui-spacing:section-headers
17
+ */
18
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ var desc = Object.getOwnPropertyDescriptor(m, k);
21
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
22
+ desc = { enumerable: true, get: function() { return m[k]; } };
23
+ }
24
+ Object.defineProperty(o, k2, desc);
25
+ }) : (function(o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ o[k2] = m[k];
28
+ }));
29
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
30
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
31
+ }) : function(o, v) {
32
+ o["default"] = v;
33
+ });
34
+ var __importStar = (this && this.__importStar) || (function () {
35
+ var ownKeys = function(o) {
36
+ ownKeys = Object.getOwnPropertyNames || function (o) {
37
+ var ar = [];
38
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
39
+ return ar;
40
+ };
41
+ return ownKeys(o);
42
+ };
43
+ return function (mod) {
44
+ if (mod && mod.__esModule) return mod;
45
+ var result = {};
46
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
47
+ __setModuleDefault(result, mod);
48
+ return result;
49
+ };
50
+ })();
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ exports.tags = exports.description = exports.blocking = exports.category = exports.name = exports.id = void 0;
53
+ exports.run = run;
54
+ const fs = __importStar(require("fs"));
55
+ const file_cache_1 = require("../../shared/file-cache");
56
+ const glob_patterns_1 = require("../../shared/glob-patterns");
57
+ const console_chars_1 = require("../../utils/console-chars");
58
+ // Check metadata
59
+ exports.id = "ui/section-header-spacing";
60
+ exports.name = "Section Header Spacing";
61
+ exports.category = "ui";
62
+ exports.blocking = true;
63
+ exports.description = "Ensures proper spacing around section headers";
64
+ exports.tags = ["ui", "spacing"];
65
+ const EXCLUDED = (0, glob_patterns_1.extendExcludes)(glob_patterns_1.STANDARD_EXCLUDES_WITH_TESTS, [
66
+ "**/scripts/**",
67
+ "**/test-results/**",
68
+ "**/packages/**",
69
+ ]);
70
+ // Pattern 1: Div containing h2/h3 followed by p without gap class
71
+ // This catches: <div className="text-center"><h3>...</h3><p>...</p></div>
72
+ // with no gap-* or flex in the className
73
+ const HEADER_CONTAINER_PATTERN = /<div\s+(?:style=\{[^}]*\}\s+)?className="([^"]*)">\s*\n?\s*<h[23][^>]*>[\s\S]*?<\/h[23]>\s*\n?\s*<p[^>]*>/g;
74
+ // Pattern 2: Header containers that transition directly to grids without margin
75
+ // This catches content like: </div>\n\n<div className="grid"
76
+ const HEADER_TO_GRID_PATTERN = /<\/div>\s*\n?\s*(?:\{\/\*[^*]*\*\/\})?\s*\n?\s*<div\s+className="(?!.*mb-)([^"]*(?:grid|flex)[^"]*)"/g;
77
+ async function run() {
78
+ console.log(`\n${console_chars_1.emoji.search} Section Header Spacing Check\n`);
79
+ console.log("Rules:");
80
+ console.log(` ${console_chars_1.emoji.error} Section header containers (div with h2/h3 + p) must have gap-* or flex gap`);
81
+ console.log(` ${console_chars_1.emoji.error} Section header containers before grids must have mb-* for separation`);
82
+ console.log("");
83
+ const allFiles = await file_cache_1.fileCache.getAllTsTsx();
84
+ // Filter for component files
85
+ const files = allFiles.filter((file) => {
86
+ const normalizedPath = file.replace(/\\/g, "/");
87
+ return (!normalizedPath.includes("/scripts/") &&
88
+ !normalizedPath.includes("/tests/") &&
89
+ !normalizedPath.includes("/packages/") &&
90
+ !normalizedPath.includes("/test-results/") &&
91
+ (normalizedPath.includes("/components/") || normalizedPath.includes("/app/")));
92
+ });
93
+ const issues = [];
94
+ for (const file of files) {
95
+ const content = fs.readFileSync(file, "utf8");
96
+ const lines = content.split("\n");
97
+ // Skip files with preflight-ignore at file level
98
+ if (content.includes("// preflight-file-ignore: section-header-spacing"))
99
+ continue;
100
+ // Check Pattern 1: Header container without gap
101
+ // Look for multi-line patterns with div > h2/h3 > p
102
+ for (let i = 0; i < lines.length - 3; i++) {
103
+ const line = lines[i];
104
+ // Skip if line has preflight-ignore
105
+ if (line.includes("preflight-ignore"))
106
+ continue;
107
+ // Look for opening div with className (but not containing gap- or flex)
108
+ const divMatch = line.match(/<div\s+className="([^"]*)"\s*>/);
109
+ if (divMatch) {
110
+ const className = divMatch[1];
111
+ // Skip if it already has gap-* or flex with gap
112
+ if (className.includes("gap-") || (className.includes("flex") && className.includes("gap")))
113
+ continue;
114
+ // Check next few lines for h2/h3 followed by p (section header pattern)
115
+ const nextLines = lines.slice(i, i + 6).join("\n");
116
+ const isHeaderPattern = /<h[23][^>]*>[\s\S]*?<\/h[23]>\s*\n?\s*<p[^>]*>[\s\S]*?<\/p>/.test(nextLines);
117
+ if (isHeaderPattern) {
118
+ // Check if container has mb-* for spacing below
119
+ const hasBottomMargin = className.match(/\bmb-\d+\b/);
120
+ // Check if it has flex flex-col gap-*
121
+ const hasFlexGap = (className.includes("flex") || className.includes("flex-col")) &&
122
+ className.includes("gap-");
123
+ if (!hasBottomMargin && !hasFlexGap) {
124
+ issues.push({
125
+ file,
126
+ line: i + 1,
127
+ column: line.indexOf("className") + 1,
128
+ type: "error",
129
+ rule: "section-header-container-spacing",
130
+ message: 'Section header container (div with h2/h3 + p) lacks spacing. Add "flex flex-col gap-2" for internal spacing and "mb-6" for separation from following content.',
131
+ snippet: line.trim(),
132
+ suggestion: 'Add className="mb-6 flex flex-col items-center gap-2 text-center" for proper spacing',
133
+ });
134
+ }
135
+ }
136
+ }
137
+ }
138
+ // Check Pattern 2: Header block followed by grid without margin
139
+ // Look for lines where a closing tag is followed by a grid without mb-*
140
+ for (let i = 0; i < lines.length - 2; i++) {
141
+ const line = lines[i];
142
+ const nextLine = lines[i + 1] || "";
143
+ const nextNextLine = lines[i + 2] || "";
144
+ // Skip if commented
145
+ if (line.trim().startsWith("//") || line.trim().startsWith("/*"))
146
+ continue;
147
+ // Check for: </div> on one line, followed by a line with {/* Comment */} or blank,
148
+ // then a grid div without mb-*
149
+ if (line.includes("</div>")) {
150
+ // Check next 2-3 lines for a grid
151
+ const upcoming = [nextLine, nextNextLine].join("\n");
152
+ const gridMatch = upcoming.match(/<div\s+className="([^"]*\bgrid\b[^"]*)"/);
153
+ if (gridMatch) {
154
+ // Check if the previous line's container had mb-* (look back for the header container)
155
+ const prevLines = lines.slice(Math.max(0, i - 10), i).join("\n");
156
+ const isAfterHeader = prevLines.includes("<h2") || prevLines.includes("<h3");
157
+ if (isAfterHeader) {
158
+ // Check if the header container had mb-*
159
+ const headerContainerMatch = prevLines.match(/<div\s+className="([^"]*)"\s*>/);
160
+ if (headerContainerMatch) {
161
+ const containerClass = headerContainerMatch[1];
162
+ if (!containerClass.includes("mb-")) {
163
+ issues.push({
164
+ file,
165
+ line: i + 1,
166
+ column: 1,
167
+ type: "warning",
168
+ rule: "section-header-margin-before-grid",
169
+ message: "Section header container before grid lacks bottom margin. Content may appear cramped.",
170
+ snippet: lines.slice(Math.max(0, i - 2), i + 2).join("\n").trim(),
171
+ suggestion: 'Add "mb-6" to the header container for proper separation',
172
+ });
173
+ }
174
+ }
175
+ }
176
+ }
177
+ }
178
+ }
179
+ }
180
+ // Deduplicate issues by file+line
181
+ const uniqueIssues = issues.filter((issue, index, self) => index === self.findIndex((i) => i.file === issue.file && i.line === issue.line));
182
+ // Report results
183
+ const errors = uniqueIssues.filter((i) => i.type === "error");
184
+ const warnings = uniqueIssues.filter((i) => i.type === "warning");
185
+ if (errors.length > 0) {
186
+ console.log(`\n${console_chars_1.emoji.error} BLOCKING ERRORS (${errors.length}):\n`);
187
+ errors.slice(0, 20).forEach((issue) => {
188
+ console.log(` ${issue.file}:${issue.line}:${issue.column}`);
189
+ console.log(` Rule: ${issue.rule}`);
190
+ console.log(` ${issue.message}`);
191
+ if (issue.suggestion) {
192
+ console.log(` ${console_chars_1.emoji.hint} ${issue.suggestion}`);
193
+ }
194
+ console.log("");
195
+ });
196
+ if (errors.length > 20) {
197
+ console.log(` ... and ${errors.length - 20} more errors\n`);
198
+ }
199
+ }
200
+ if (warnings.length > 0) {
201
+ console.log(`\n${console_chars_1.emoji.warning} WARNINGS (${warnings.length}):\n`);
202
+ warnings.slice(0, 10).forEach((issue) => {
203
+ console.log(` ${issue.file}:${issue.line} - ${issue.message}`);
204
+ });
205
+ if (warnings.length > 10) {
206
+ console.log(` ... and ${warnings.length - 10} more warnings`);
207
+ }
208
+ }
209
+ // Summary
210
+ console.log("\n" + (0, console_chars_1.createDivider)(60, "light"));
211
+ console.log(`${console_chars_1.emoji.chart} Summary: ${errors.length} errors, ${warnings.length} warnings`);
212
+ if (errors.length > 0) {
213
+ console.log(`\n${console_chars_1.emoji.warning} ADVISORY: Found ${errors.length} section header spacing issues`);
214
+ console.log("\nFix guide:");
215
+ console.log(` ${console_chars_1.chars.bullet} Header containers with h2/h3 + p need gap-2 for internal spacing`);
216
+ console.log(` ${console_chars_1.chars.bullet} Header containers before grids need mb-6 for separation`);
217
+ console.log(` ${console_chars_1.chars.bullet} Standard pattern: className="mb-6 flex flex-col items-center gap-2 text-center"`);
218
+ console.log(`\n${console_chars_1.emoji.hint} This check is advisory. Pre-existing issues won't block the build.`);
219
+ }
220
+ else if (warnings.length > 0) {
221
+ console.log(`\n${console_chars_1.emoji.warning} Section header spacing check passed with ${warnings.length} advisory warnings.`);
222
+ }
223
+ else {
224
+ console.log(`\n${console_chars_1.emoji.success} Section header spacing check passed!`);
225
+ }
226
+ }
227
+ // Allow direct execution
228
+ if (require.main === module) {
229
+ run().catch(console.error);
230
+ }
231
+ //# sourceMappingURL=section-header-spacing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"section-header-spacing.js","sourceRoot":"","sources":["../../../src/checks/ui/section-header-spacing.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -28,6 +28,7 @@ export { CORE_EXCLUDES, STANDARD_EXCLUDES, FULL_EXCLUDES, TEST_FILE_EXCLUDES, ST
28
28
  export { SPACING_SCALE, spacingToPx, pxToSpacing, GAPS, GAPS_PX, CSS_VARS, CSS_SPACING_PATTERN, SECTION_SPACING, FONT_SIZES, FONT_SIZES_PX, LINE_HEIGHTS, LINE_CLAMP, TEXT_TO_ICON_SIZE, FONT_WEIGHTS, FONT_WEIGHT_VARS, LETTER_SPACING, TRACKING_CLASSES, COLORS, ALLOWED_HARDCODED_COLORS, SHADOWS, SHADOW_CLASSES, MAX_WIDTHS, ASPECT_RATIOS, GRID_CONFIGS, CARD_STANDARDS, CARD_CSS, COMPONENT_HEIGHTS, HEADER_HEIGHTS, ICON_SIZES, BORDER_RADIUS, BORDER_WIDTHS, AVATAR_SIZES, BADGE_SIZES, CHIP_SIZES, MODAL_SIZES, SKELETON_ANIMATION, SKELETON_HEIGHTS, TABLE_PADDING, TABLE_ROW_HEIGHTS, TOUCH_TARGETS, CONTRAST_RATIOS, DISABLED_STANDARDS, FOCUS_RING, OPACITY, MIN_DISABLED_OPACITY, VIEWPORTS, BREAKPOINTS, Z_INDEX, DURATIONS, EASINGS, EASING_CLASSES, } from "./shared/design-tokens";
29
29
  export { TokenGroupName, TokenConfig, PreflightConfig as TokenPreflightConfig, loadPreflightConfig, clearConfigCache, definePreflightConfig, isTokenGroupEnabled, getTokenGroup, getAllTokens, TOKEN_GROUPS, isCheckEnabled, isCheckWarningOnly, } from "./shared/design-tokens-config";
30
30
  export { fileCache, FileCache, CacheEntry, FileCacheOptions, PresetName, } from "./shared/file-cache";
31
+ export { FileCache as PerformanceFileCache, FileContentCache, GlobCache, GlobResultCache, parallelProcess, batchProcess, clearAllCaches, getCacheStats, } from "./utils/performance-cache";
31
32
  export { ConcurrencyConfig, CheckDefinition, CheckResult, getConcurrencyConfig, runChecksWithConcurrency, logConcurrencyConfig, parsePreflightArgs, OutputMode, } from "./shared/concurrency-config";
32
33
  export { progress, box, chars, emoji, createProgressBar, createDivider, createHeader, formatTree, supportsUnicode, getTerminalInfo, } from "./utils/console-chars";
33
34
  export { PreflightFindingSeverity, WritableFinding, indexToLineCol, writeFindings, createFinding, } from "./utils/findings-writer";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -24,7 +24,8 @@
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
25
  exports.extendExcludes = exports.DATABASE_CHECK_CONFIG = exports.API_CHECK_CONFIG = exports.E2E_CHECK_CONFIG = exports.SECURITY_CHECK_CONFIG = exports.CODE_QUALITY_CONFIG = exports.UI_CHECK_CONFIG = exports.MIGRATION_FILE_PATTERN = exports.PRISMA_SCHEMA_PATTERN = exports.CSS_FILE_PATTERN = exports.LAYOUT_FILE_PATTERN = exports.PAGE_FILE_PATTERN = exports.API_ROUTE_PATTERN = exports.UNIT_TEST_PATTERN = exports.E2E_TEST_PATTERN = exports.APP_COMPONENT_PATTERN = exports.APP_CODE_PATTERN = exports.COMPONENT_FILE_PATTERN = exports.TS_FILE_PATTERN = exports.CODE_FILE_PATTERN = exports.SHARED_COMPONENT_EXCLUDES = exports.UI_LIBRARY_EXCLUDES = exports.CONFIG_FILE_EXCLUDES = exports.SCRIPT_EXCLUDES = exports.PRODUCTION_CODE_EXCLUDES = exports.STORY_FILE_EXCLUDES = exports.FULL_EXCLUDES_WITH_TESTS = exports.STANDARD_EXCLUDES_WITH_TESTS = exports.TEST_FILE_EXCLUDES = exports.FULL_EXCLUDES = exports.STANDARD_EXCLUDES = exports.CORE_EXCLUDES = exports.printCategoryHelp = exports.isValidCategory = exports.getCategoryNames = exports.buildFilterFromCategories = exports.CATEGORY_CONFIGS = exports.QUICK_CATEGORIES = exports.CATEGORY_FILTERS = exports.clearExclusionsCache = exports.getFilteredFiles = exports.filterExcludedFiles = exports.shouldExcludeFile = exports.getExclusionsSync = exports.getExclusions = exports.shouldRunCheck = exports.loadAppConfig = exports.inferAppName = exports.findConfigFile = exports.getEnvironmentInfo = void 0;
26
26
  exports.Z_INDEX = exports.BREAKPOINTS = exports.VIEWPORTS = exports.MIN_DISABLED_OPACITY = exports.OPACITY = exports.FOCUS_RING = exports.DISABLED_STANDARDS = exports.CONTRAST_RATIOS = exports.TOUCH_TARGETS = exports.TABLE_ROW_HEIGHTS = exports.TABLE_PADDING = exports.SKELETON_HEIGHTS = exports.SKELETON_ANIMATION = exports.MODAL_SIZES = exports.CHIP_SIZES = exports.BADGE_SIZES = exports.AVATAR_SIZES = exports.BORDER_WIDTHS = exports.BORDER_RADIUS = exports.ICON_SIZES = exports.HEADER_HEIGHTS = exports.COMPONENT_HEIGHTS = exports.CARD_CSS = exports.CARD_STANDARDS = exports.GRID_CONFIGS = exports.ASPECT_RATIOS = exports.MAX_WIDTHS = exports.SHADOW_CLASSES = exports.SHADOWS = exports.ALLOWED_HARDCODED_COLORS = exports.COLORS = exports.TRACKING_CLASSES = exports.LETTER_SPACING = exports.FONT_WEIGHT_VARS = exports.FONT_WEIGHTS = exports.TEXT_TO_ICON_SIZE = exports.LINE_CLAMP = exports.LINE_HEIGHTS = exports.FONT_SIZES_PX = exports.FONT_SIZES = exports.SECTION_SPACING = exports.CSS_SPACING_PATTERN = exports.CSS_VARS = exports.GAPS_PX = exports.GAPS = exports.pxToSpacing = exports.spacingToPx = exports.SPACING_SCALE = exports.isExcluded = exports.reduceExcludes = void 0;
27
- exports.main = exports.runPreflights = exports.hasConfigFile = exports.getCoreRepo = exports.loadConfig = exports.getPluginSummary = exports.filterPluginsByCategory = exports.groupPluginsByCategory = exports.loadAppPlugins = exports.loadPlugin = exports.discoverPlugins = exports.withUniversalProgress = exports.createUniversalProgressReporter = exports.UniversalProgressReporter = exports.createFinding = exports.writeFindings = exports.indexToLineCol = exports.getTerminalInfo = exports.supportsUnicode = exports.formatTree = exports.createHeader = exports.createDivider = exports.createProgressBar = exports.emoji = exports.chars = exports.box = exports.progress = exports.parsePreflightArgs = exports.logConcurrencyConfig = exports.runChecksWithConcurrency = exports.getConcurrencyConfig = exports.FileCache = exports.fileCache = exports.isCheckWarningOnly = exports.isCheckEnabled = exports.TOKEN_GROUPS = exports.getAllTokens = exports.getTokenGroup = exports.isTokenGroupEnabled = exports.definePreflightConfig = exports.clearConfigCache = exports.loadPreflightConfig = exports.EASING_CLASSES = exports.EASINGS = exports.DURATIONS = void 0;
27
+ exports.getCoreRepo = exports.loadConfig = exports.getPluginSummary = exports.filterPluginsByCategory = exports.groupPluginsByCategory = exports.loadAppPlugins = exports.loadPlugin = exports.discoverPlugins = exports.withUniversalProgress = exports.createUniversalProgressReporter = exports.UniversalProgressReporter = exports.createFinding = exports.writeFindings = exports.indexToLineCol = exports.getTerminalInfo = exports.supportsUnicode = exports.formatTree = exports.createHeader = exports.createDivider = exports.createProgressBar = exports.emoji = exports.chars = exports.box = exports.progress = exports.parsePreflightArgs = exports.logConcurrencyConfig = exports.runChecksWithConcurrency = exports.getConcurrencyConfig = exports.getCacheStats = exports.clearAllCaches = exports.batchProcess = exports.parallelProcess = exports.GlobResultCache = exports.GlobCache = exports.FileContentCache = exports.PerformanceFileCache = exports.FileCache = exports.fileCache = exports.isCheckWarningOnly = exports.isCheckEnabled = exports.TOKEN_GROUPS = exports.getAllTokens = exports.getTokenGroup = exports.isTokenGroupEnabled = exports.definePreflightConfig = exports.clearConfigCache = exports.loadPreflightConfig = exports.EASING_CLASSES = exports.EASINGS = exports.DURATIONS = void 0;
28
+ exports.main = exports.runPreflights = exports.hasConfigFile = void 0;
28
29
  // Core types
29
30
  var types_1 = require("./core/types");
30
31
  Object.defineProperty(exports, "getEnvironmentInfo", { enumerable: true, get: function () { return types_1.getEnvironmentInfo; } });
@@ -167,6 +168,16 @@ Object.defineProperty(exports, "isCheckWarningOnly", { enumerable: true, get: fu
167
168
  var file_cache_1 = require("./shared/file-cache");
168
169
  Object.defineProperty(exports, "fileCache", { enumerable: true, get: function () { return file_cache_1.fileCache; } });
169
170
  Object.defineProperty(exports, "FileCache", { enumerable: true, get: function () { return file_cache_1.FileCache; } });
171
+ // Performance cache utilities
172
+ var performance_cache_1 = require("./utils/performance-cache");
173
+ Object.defineProperty(exports, "PerformanceFileCache", { enumerable: true, get: function () { return performance_cache_1.FileCache; } });
174
+ Object.defineProperty(exports, "FileContentCache", { enumerable: true, get: function () { return performance_cache_1.FileContentCache; } });
175
+ Object.defineProperty(exports, "GlobCache", { enumerable: true, get: function () { return performance_cache_1.GlobCache; } });
176
+ Object.defineProperty(exports, "GlobResultCache", { enumerable: true, get: function () { return performance_cache_1.GlobResultCache; } });
177
+ Object.defineProperty(exports, "parallelProcess", { enumerable: true, get: function () { return performance_cache_1.parallelProcess; } });
178
+ Object.defineProperty(exports, "batchProcess", { enumerable: true, get: function () { return performance_cache_1.batchProcess; } });
179
+ Object.defineProperty(exports, "clearAllCaches", { enumerable: true, get: function () { return performance_cache_1.clearAllCaches; } });
180
+ Object.defineProperty(exports, "getCacheStats", { enumerable: true, get: function () { return performance_cache_1.getCacheStats; } });
170
181
  // Concurrency
171
182
  var concurrency_config_1 = require("./shared/concurrency-config");
172
183
  Object.defineProperty(exports, "getConcurrencyConfig", { enumerable: true, get: function () { return concurrency_config_1.getConcurrencyConfig; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * LRU cache for file contents to avoid redundant reads
3
+ */
4
+ declare class FileContentCache {
5
+ private cache;
6
+ private maxSize;
7
+ private maxAge;
8
+ private totalSize;
9
+ private maxTotalSize;
10
+ constructor(options?: {
11
+ maxSize?: number;
12
+ maxAge?: number;
13
+ maxTotalSize?: number;
14
+ });
15
+ /**
16
+ * Read file with caching
17
+ */
18
+ read(filePath: string): Promise<string | null>;
19
+ /**
20
+ * Check if file exists (uses cache if available)
21
+ */
22
+ exists(filePath: string): boolean;
23
+ /**
24
+ * Evict old entries to make room
25
+ */
26
+ private evictIfNeeded;
27
+ /**
28
+ * Clear all cached content
29
+ */
30
+ clear(): void;
31
+ /**
32
+ * Get cache statistics
33
+ */
34
+ stats(): {
35
+ entries: number;
36
+ totalSize: number;
37
+ };
38
+ }
39
+ /**
40
+ * Cache for glob results to avoid redundant directory scans
41
+ */
42
+ declare class GlobResultCache {
43
+ private cache;
44
+ private maxAge;
45
+ constructor(options?: {
46
+ maxAge?: number;
47
+ });
48
+ /**
49
+ * Run glob with caching
50
+ */
51
+ glob(pattern: string | string[], options?: {
52
+ cwd?: string;
53
+ ignore?: string[];
54
+ }): Promise<string[]>;
55
+ /**
56
+ * Clear all cached results
57
+ */
58
+ clear(): void;
59
+ }
60
+ interface ParallelOptions {
61
+ concurrency?: number;
62
+ onProgress?: (completed: number, total: number) => void;
63
+ }
64
+ /**
65
+ * Process items in parallel with concurrency limit
66
+ */
67
+ declare function parallelProcess<T, R>(items: T[], processor: (item: T, index: number) => Promise<R>, options?: ParallelOptions): Promise<R[]>;
68
+ /**
69
+ * Process items in batches
70
+ */
71
+ declare function batchProcess<T, R>(items: T[], processor: (batch: T[]) => Promise<R[]>, batchSize?: number): Promise<R[]>;
72
+ export declare const FileCache: FileContentCache;
73
+ export declare const GlobCache: GlobResultCache;
74
+ export { FileContentCache, GlobResultCache, parallelProcess, batchProcess, };
75
+ /**
76
+ * Clear all caches - call at start of preflight run
77
+ */
78
+ export declare function clearAllCaches(): void;
79
+ /**
80
+ * Get combined cache statistics
81
+ */
82
+ export declare function getCacheStats(): {
83
+ fileCache: {
84
+ entries: number;
85
+ totalSize: number;
86
+ };
87
+ globCache: {
88
+ entries: number;
89
+ };
90
+ };
91
+ //# sourceMappingURL=performance-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-cache.d.ts","sourceRoot":"","sources":["../../src/utils/performance-cache.ts"],"names":[],"mappings":"AAiCA;;GAEG;AACH,cAAM,gBAAgB;IACpB,OAAO,CAAC,KAAK,CAAyC;IACtD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO;IAMtF;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkCpD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQjC;;OAEG;IACH,OAAO,CAAC,aAAa;IAsBrB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,KAAK,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAMhD;AAMD;;GAEG;AACH,cAAM,eAAe;IACnB,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO;IAI7C;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,OAAO,GAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;KAAO,GAChD,OAAO,CAAC,MAAM,EAAE,CAAC;IAyBpB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAMD,UAAU,eAAe;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAED;;GAEG;AACH,iBAAe,eAAe,CAAC,CAAC,EAAE,CAAC,EACjC,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,CAAC,EAAE,CAAC,CAuBd;AAED;;GAEG;AACH,iBAAe,YAAY,CAAC,CAAC,EAAE,CAAC,EAC9B,KAAK,EAAE,CAAC,EAAE,EACV,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EACvC,SAAS,SAAK,GACb,OAAO,CAAC,CAAC,EAAE,CAAC,CAUd;AAOD,eAAO,MAAM,SAAS,kBAAyB,CAAC;AAChD,eAAO,MAAM,SAAS,iBAAwB,CAAC;AAM/C,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,GACb,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAC/B,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAChC,CAKA"}
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GlobResultCache = exports.FileContentCache = exports.GlobCache = exports.FileCache = void 0;
7
+ exports.parallelProcess = parallelProcess;
8
+ exports.batchProcess = batchProcess;
9
+ exports.clearAllCaches = clearAllCaches;
10
+ exports.getCacheStats = getCacheStats;
11
+ /**
12
+ * Performance Cache Utilities
13
+ *
14
+ * Shared caching and parallel processing utilities for preflight checks.
15
+ * These reduce redundant file reads and glob operations when running
16
+ * multiple preflights in a single session.
17
+ *
18
+ * Usage:
19
+ * import { FileCache, GlobCache, parallelProcess } from './performance-cache';
20
+ *
21
+ * // Use cached file reads
22
+ * const content = await FileCache.read(filePath);
23
+ *
24
+ * // Use cached glob results
25
+ * const files = await GlobCache.glob('app/** /page.tsx');
26
+ *
27
+ * // Process files in parallel with concurrency limit
28
+ * await parallelProcess(files, async (file) => { ... }, { concurrency: 10 });
29
+ */
30
+ const fs_1 = __importDefault(require("fs"));
31
+ const path_1 = __importDefault(require("path"));
32
+ const glob_1 = require("glob");
33
+ /**
34
+ * LRU cache for file contents to avoid redundant reads
35
+ */
36
+ class FileContentCache {
37
+ cache = new Map();
38
+ maxSize;
39
+ maxAge;
40
+ totalSize = 0;
41
+ maxTotalSize;
42
+ constructor(options = {}) {
43
+ this.maxSize = options.maxSize ?? 1000; // Max number of files
44
+ this.maxAge = options.maxAge ?? 30000; // 30 seconds
45
+ this.maxTotalSize = options.maxTotalSize ?? 50 * 1024 * 1024; // 50MB
46
+ }
47
+ /**
48
+ * Read file with caching
49
+ */
50
+ async read(filePath) {
51
+ const absolutePath = path_1.default.resolve(filePath);
52
+ const cached = this.cache.get(absolutePath);
53
+ // Check if cached and still valid
54
+ if (cached && Date.now() - cached.timestamp < this.maxAge) {
55
+ // Move to end (LRU)
56
+ this.cache.delete(absolutePath);
57
+ this.cache.set(absolutePath, cached);
58
+ return cached.value;
59
+ }
60
+ // Read from disk
61
+ try {
62
+ const content = fs_1.default.readFileSync(absolutePath, "utf-8");
63
+ const size = Buffer.byteLength(content, "utf-8");
64
+ // Evict if needed
65
+ this.evictIfNeeded(size);
66
+ // Store in cache
67
+ this.cache.set(absolutePath, {
68
+ value: content,
69
+ timestamp: Date.now(),
70
+ size,
71
+ });
72
+ this.totalSize += size;
73
+ return content;
74
+ }
75
+ catch {
76
+ return null;
77
+ }
78
+ }
79
+ /**
80
+ * Check if file exists (uses cache if available)
81
+ */
82
+ exists(filePath) {
83
+ const absolutePath = path_1.default.resolve(filePath);
84
+ if (this.cache.has(absolutePath)) {
85
+ return true;
86
+ }
87
+ return fs_1.default.existsSync(absolutePath);
88
+ }
89
+ /**
90
+ * Evict old entries to make room
91
+ */
92
+ evictIfNeeded(newSize) {
93
+ // Evict by count
94
+ while (this.cache.size >= this.maxSize) {
95
+ const firstKey = this.cache.keys().next().value;
96
+ if (firstKey) {
97
+ const entry = this.cache.get(firstKey);
98
+ if (entry?.size)
99
+ this.totalSize -= entry.size;
100
+ this.cache.delete(firstKey);
101
+ }
102
+ }
103
+ // Evict by total size
104
+ while (this.totalSize + newSize > this.maxTotalSize && this.cache.size > 0) {
105
+ const firstKey = this.cache.keys().next().value;
106
+ if (firstKey) {
107
+ const entry = this.cache.get(firstKey);
108
+ if (entry?.size)
109
+ this.totalSize -= entry.size;
110
+ this.cache.delete(firstKey);
111
+ }
112
+ }
113
+ }
114
+ /**
115
+ * Clear all cached content
116
+ */
117
+ clear() {
118
+ this.cache.clear();
119
+ this.totalSize = 0;
120
+ }
121
+ /**
122
+ * Get cache statistics
123
+ */
124
+ stats() {
125
+ return {
126
+ entries: this.cache.size,
127
+ totalSize: this.totalSize,
128
+ };
129
+ }
130
+ }
131
+ exports.FileContentCache = FileContentCache;
132
+ // =============================================================================
133
+ // GLOB RESULT CACHE
134
+ // =============================================================================
135
+ /**
136
+ * Cache for glob results to avoid redundant directory scans
137
+ */
138
+ class GlobResultCache {
139
+ cache = new Map();
140
+ maxAge;
141
+ constructor(options = {}) {
142
+ this.maxAge = options.maxAge ?? 60000; // 1 minute
143
+ }
144
+ /**
145
+ * Run glob with caching
146
+ */
147
+ async glob(pattern, options = {}) {
148
+ const cwd = options.cwd ?? process.cwd();
149
+ const cacheKey = JSON.stringify({ pattern, cwd, ignore: options.ignore });
150
+ const cached = this.cache.get(cacheKey);
151
+ if (cached && Date.now() - cached.timestamp < this.maxAge) {
152
+ return cached.value;
153
+ }
154
+ // Run glob
155
+ const results = await (0, glob_1.glob)(pattern, {
156
+ cwd,
157
+ ignore: options.ignore,
158
+ nodir: true,
159
+ });
160
+ // Cache results
161
+ this.cache.set(cacheKey, {
162
+ value: results,
163
+ timestamp: Date.now(),
164
+ });
165
+ return results;
166
+ }
167
+ /**
168
+ * Clear all cached results
169
+ */
170
+ clear() {
171
+ this.cache.clear();
172
+ }
173
+ }
174
+ exports.GlobResultCache = GlobResultCache;
175
+ /**
176
+ * Process items in parallel with concurrency limit
177
+ */
178
+ async function parallelProcess(items, processor, options = {}) {
179
+ const { concurrency = 10, onProgress } = options;
180
+ const results = new Array(items.length);
181
+ let completed = 0;
182
+ let current = 0;
183
+ async function processNext() {
184
+ while (current < items.length) {
185
+ const index = current++;
186
+ const item = items[index];
187
+ results[index] = await processor(item, index);
188
+ completed++;
189
+ onProgress?.(completed, items.length);
190
+ }
191
+ }
192
+ // Start workers up to concurrency limit
193
+ const workers = Array(Math.min(concurrency, items.length))
194
+ .fill(null)
195
+ .map(() => processNext());
196
+ await Promise.all(workers);
197
+ return results;
198
+ }
199
+ /**
200
+ * Process items in batches
201
+ */
202
+ async function batchProcess(items, processor, batchSize = 50) {
203
+ const results = [];
204
+ for (let i = 0; i < items.length; i += batchSize) {
205
+ const batch = items.slice(i, i + batchSize);
206
+ const batchResults = await processor(batch);
207
+ results.push(...batchResults);
208
+ }
209
+ return results;
210
+ }
211
+ // =============================================================================
212
+ // SINGLETON INSTANCES
213
+ // =============================================================================
214
+ // Global cache instances for shared use across preflights
215
+ exports.FileCache = new FileContentCache();
216
+ exports.GlobCache = new GlobResultCache();
217
+ /**
218
+ * Clear all caches - call at start of preflight run
219
+ */
220
+ function clearAllCaches() {
221
+ exports.FileCache.clear();
222
+ exports.GlobCache.clear();
223
+ }
224
+ /**
225
+ * Get combined cache statistics
226
+ */
227
+ function getCacheStats() {
228
+ return {
229
+ fileCache: exports.FileCache.stats(),
230
+ globCache: { entries: 0 }, // GlobCache doesn't expose this
231
+ };
232
+ }
233
+ //# sourceMappingURL=performance-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-cache.js","sourceRoot":"","sources":["../../src/utils/performance-cache.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@empline/preflight",
3
- "version": "1.1.35",
3
+ "version": "1.1.37",
4
4
  "description": "Distributable preflight validation system with app-specific plugin support",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -17,23 +17,6 @@
17
17
  "preflight-review-drift": "dist/bin/review-drift.js",
18
18
  "preflight-sync-check": "dist/bin/sync-check.js"
19
19
  },
20
- "scripts": {
21
- "build": "tsc",
22
- "prebuild": "npx ai-manager cleanup -q -r . && npm run check:hygiene && npm run check:metadata && npm run check:broken",
23
- "dev": "tsc --watch",
24
- "preflight": "tsx src/bin/preflight.ts",
25
- "check:system": "tsx src/bin/preflight.ts --category system",
26
- "check:security": "tsx src/bin/preflight.ts --category security",
27
- "check:business": "tsx src/bin/preflight.ts --category business",
28
- "check:hygiene": "tsx scripts/maintenance/module-boundary-validator.ts",
29
- "check:metadata": "tsx src/checks/system/preflight-metadata-validator.ts",
30
- "check:broken": "tsx src/checks/system/broken-preflight-detection.ts",
31
- "check:hygiene:all": "tsx scripts/maintenance/module-boundary-validator.ts && tsx scripts/maintenance/workflow-composition-validator.ts && tsx scripts/maintenance/canonical-import-enforcer.ts",
32
- "lint": "eslint src/",
33
- "test": "vitest",
34
- "preinstall": "node dist/bin/preinstall.js",
35
- "prepublishOnly": "node -e \"const pkg = require('./package.json'); if (pkg.publishConfig?.access !== 'restricted') { console.error('ERROR: publishConfig.access must be restricted'); process.exit(1); }\" && npm run build"
36
- },
37
20
  "exports": {
38
21
  ".": {
39
22
  "types": "./dist/index.d.ts",
@@ -86,5 +69,21 @@
86
69
  },
87
70
  "engines": {
88
71
  "node": ">=18.0.0"
72
+ },
73
+ "scripts": {
74
+ "build": "tsc",
75
+ "prebuild": "npx ai-manager cleanup -q -r . && npm run check:hygiene && npm run check:metadata && npm run check:broken",
76
+ "dev": "tsc --watch",
77
+ "preflight": "tsx src/bin/preflight.ts",
78
+ "check:system": "tsx src/bin/preflight.ts --category system",
79
+ "check:security": "tsx src/bin/preflight.ts --category security",
80
+ "check:business": "tsx src/bin/preflight.ts --category business",
81
+ "check:hygiene": "tsx scripts/maintenance/module-boundary-validator.ts",
82
+ "check:metadata": "tsx src/checks/system/preflight-metadata-validator.ts",
83
+ "check:broken": "tsx src/checks/system/broken-preflight-detection.ts",
84
+ "check:hygiene:all": "tsx scripts/maintenance/module-boundary-validator.ts && tsx scripts/maintenance/workflow-composition-validator.ts && tsx scripts/maintenance/canonical-import-enforcer.ts",
85
+ "lint": "eslint src/",
86
+ "test": "vitest",
87
+ "preinstall": "node dist/bin/preinstall.js"
89
88
  }
90
- }
89
+ }