@empline/preflight 1.1.31 → 1.1.32

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 (29) hide show
  1. package/dist/checks/framework/prisma-version-bugs.d.ts +47 -0
  2. package/dist/checks/framework/prisma-version-bugs.d.ts.map +1 -0
  3. package/dist/checks/framework/prisma-version-bugs.js +232 -0
  4. package/dist/checks/framework/prisma-version-bugs.js.map +1 -0
  5. package/dist/checks/framework/turbopack-prisma-external.d.ts +37 -0
  6. package/dist/checks/framework/turbopack-prisma-external.d.ts.map +1 -0
  7. package/dist/checks/framework/turbopack-prisma-external.js +144 -0
  8. package/dist/checks/framework/turbopack-prisma-external.js.map +1 -0
  9. package/dist/checks/listing-approval/image-processing-validation.d.ts +14 -0
  10. package/dist/checks/listing-approval/image-processing-validation.d.ts.map +1 -0
  11. package/dist/checks/listing-approval/image-processing-validation.js +198 -0
  12. package/dist/checks/listing-approval/image-processing-validation.js.map +1 -0
  13. package/dist/checks/listing-approval/r2-metadata-application.d.ts +14 -0
  14. package/dist/checks/listing-approval/r2-metadata-application.d.ts.map +1 -0
  15. package/dist/checks/listing-approval/r2-metadata-application.js +261 -0
  16. package/dist/checks/listing-approval/r2-metadata-application.js.map +1 -0
  17. package/dist/checks/listing-approval/seo-metadata-consistency.d.ts +14 -0
  18. package/dist/checks/listing-approval/seo-metadata-consistency.d.ts.map +1 -0
  19. package/dist/checks/listing-approval/seo-metadata-consistency.js +408 -0
  20. package/dist/checks/listing-approval/seo-metadata-consistency.js.map +1 -0
  21. package/dist/checks/ui/batch-progress-consistency.d.ts +13 -0
  22. package/dist/checks/ui/batch-progress-consistency.d.ts.map +1 -0
  23. package/dist/checks/ui/batch-progress-consistency.js +200 -0
  24. package/dist/checks/ui/batch-progress-consistency.js.map +1 -0
  25. package/dist/checks/ui/bulk-action-progress-feedback.d.ts +13 -0
  26. package/dist/checks/ui/bulk-action-progress-feedback.d.ts.map +1 -0
  27. package/dist/checks/ui/bulk-action-progress-feedback.js +273 -0
  28. package/dist/checks/ui/bulk-action-progress-feedback.js.map +1 -0
  29. package/package.json +1 -1
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ export declare const id = "ui/bulk-action-progress-feedback";
3
+ export declare const name = "Bulk Action Progress Feedback";
4
+ export declare const description = "Validates bulk operations show proper progress feedback during processing";
5
+ export declare const category = "ui";
6
+ export declare const blocking = false;
7
+ export declare const tags: string[];
8
+ export declare function run(): Promise<{
9
+ success: boolean;
10
+ errors: number;
11
+ warnings: number;
12
+ }>;
13
+ //# sourceMappingURL=bulk-action-progress-feedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk-action-progress-feedback.d.ts","sourceRoot":"","sources":["../../../src/checks/ui/bulk-action-progress-feedback.ts"],"names":[],"mappings":";AAuBA,eAAO,MAAM,EAAE,qCAAqC,CAAC;AACrD,eAAO,MAAM,IAAI,kCAAkC,CAAC;AACpD,eAAO,MAAM,WAAW,8EAA8E,CAAC;AACvG,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,QAAQ,QAAQ,CAAC;AAC9B,eAAO,MAAM,IAAI,UAAoD,CAAC;AAkKtE,wBAAsB,GAAG,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAmH3F"}
@@ -0,0 +1,273 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.tags = exports.blocking = exports.category = exports.description = exports.name = exports.id = void 0;
8
+ exports.run = run;
9
+ /**
10
+ * Bulk Action Progress Feedback Preflight
11
+ *
12
+ * Validates that bulk operations (approve selected, delete selected, etc.)
13
+ * show proper progress feedback to users during long-running operations.
14
+ *
15
+ * Requirements for bulk operations:
16
+ * 1. Must have a progress state with processed/total counts
17
+ * 2. Must update progress during iteration (not just at start/end)
18
+ * 3. Must show visual progress indicator (LinearProgress, StatusChip, etc.)
19
+ * 4. Should show which item is currently being processed
20
+ *
21
+ * This prevents the poor UX of showing a static loading spinner while
22
+ * potentially dozens of items are being processed one by one.
23
+ */
24
+ const fs_1 = __importDefault(require("fs"));
25
+ const path_1 = __importDefault(require("path"));
26
+ const glob_1 = require("glob");
27
+ const console_chars_1 = require("../../utils/console-chars");
28
+ // METADATA - Required for plugin loader discovery
29
+ exports.id = "ui/bulk-action-progress-feedback";
30
+ exports.name = "Bulk Action Progress Feedback";
31
+ exports.description = "Validates bulk operations show proper progress feedback during processing";
32
+ exports.category = "ui";
33
+ exports.blocking = false; // Warning level - doesn't block build
34
+ exports.tags = ["ui", "ux", "bulk-actions", "progress", "admin"];
35
+ /**
36
+ * File patterns to check for bulk operations
37
+ */
38
+ const FILE_PATTERNS = [
39
+ "app/admin/**/hooks/*.ts",
40
+ "app/admin/**/hooks/*.tsx",
41
+ "app/admin/**/*Client.tsx",
42
+ "hooks/useBulk*.ts",
43
+ "hooks/useBulk*.tsx",
44
+ "components/**/Bulk*.tsx",
45
+ "app/store/**/hooks/*.ts",
46
+ ];
47
+ /**
48
+ * Patterns that indicate a bulk operation exists
49
+ */
50
+ const BULK_OPERATION_INDICATORS = [
51
+ // Function names
52
+ /handleBulk(?:Approve|Delete|Update|Action|Process)/i,
53
+ /bulkApprove|bulkDelete|bulkUpdate|bulkAction/i,
54
+ // Loop patterns over selected items
55
+ /for\s*\(\s*(?:const|let)\s+\w+\s+of\s+selected(?:Ids|Items|Listings)/,
56
+ /selected(?:Ids|Items|Listings)\.(?:forEach|map)\s*\(/,
57
+ // Array iteration with async operations
58
+ /Promise\.all\s*\(\s*selected/,
59
+ ];
60
+ /**
61
+ * Patterns indicating proper progress feedback implementation
62
+ */
63
+ const GOOD_PROGRESS_PATTERNS = {
64
+ // Progress state with counts
65
+ progressState: {
66
+ pattern: /(?:processed|completed|current)(?:Count|Index|Item).*(?:total|remaining|length)/is,
67
+ description: "Progress state tracking processed vs total counts",
68
+ },
69
+ // State updates during loop
70
+ progressUpdates: {
71
+ pattern: /set(?:Progress|BulkState|Processing)\s*\(\s*(?:\(prev\)|prev)\s*=>/,
72
+ description: "Progress state updates using setState updater pattern",
73
+ },
74
+ // Counter increments in loop
75
+ counterInLoop: {
76
+ pattern: /(?:successCount|processedCount|completedCount)\s*\+\+|(?:successCount|processedCount|completedCount)\s*\+=\s*1/,
77
+ description: "Counter increments during bulk processing",
78
+ },
79
+ // Visual progress component
80
+ visualProgress: {
81
+ pattern: /<(?:LinearProgress|CircularProgress)[^>]*variant\s*=\s*["']determinate["']/,
82
+ description: "Determinate progress indicator for visual feedback",
83
+ },
84
+ // Progress callback/emit pattern
85
+ progressCallback: {
86
+ pattern: /onProgress\s*\?\.\s*\(|emit(?:Progress|Update)\s*\(/,
87
+ description: "Progress callback for parent component updates",
88
+ },
89
+ };
90
+ /**
91
+ * Anti-patterns that suggest poor bulk action UX
92
+ */
93
+ const ANTI_PATTERNS = {
94
+ // Static loading toast without progress
95
+ staticLoadingToast: {
96
+ pattern: /toast\.loading\s*\([^)]+\)(?![\s\S]*?toast\.(?:update|loading))/,
97
+ description: "Loading toast without progress updates (shows static message)",
98
+ severity: "warning",
99
+ },
100
+ // Loop without progress updates
101
+ loopWithoutProgress: {
102
+ pattern: /for\s*\([^)]+of\s+selected[^)]+\)\s*\{[^}]*await\s+[^}]*\}(?![^}]*set(?:Progress|State))/,
103
+ description: "Async loop over selected items without progress state updates",
104
+ severity: "warning",
105
+ },
106
+ // Bulk operation without any progress tracking
107
+ bulkWithoutTracking: {
108
+ pattern: /handleBulk\w+\s*=\s*async[^{]*\{(?:(?!processedCount|currentItem|progress).)*\}/s,
109
+ description: "Bulk handler without progress tracking variables",
110
+ severity: "info",
111
+ },
112
+ };
113
+ function findBulkOperations(content, filePath) {
114
+ const operations = [];
115
+ // Find bulk operation functions
116
+ const functionMatches = content.matchAll(/(?:const|function)\s+(handle(?:Bulk|Selected)\w+|bulk\w+)\s*=?\s*(?:async\s*)?\([^)]*\)\s*(?:=>|:|\{)/gi);
117
+ for (const match of functionMatches) {
118
+ const functionName = match[1] || "unknown";
119
+ const startIndex = match.index || 0;
120
+ // Extract function body (simplified - looks for matching braces)
121
+ let braceCount = 0;
122
+ let functionEnd = startIndex;
123
+ let inFunction = false;
124
+ for (let i = startIndex; i < content.length && i < startIndex + 5000; i++) {
125
+ if (content[i] === "{") {
126
+ braceCount++;
127
+ inFunction = true;
128
+ }
129
+ else if (content[i] === "}") {
130
+ braceCount--;
131
+ if (inFunction && braceCount === 0) {
132
+ functionEnd = i + 1;
133
+ break;
134
+ }
135
+ }
136
+ }
137
+ const functionBody = content.slice(startIndex, functionEnd);
138
+ // Check for good patterns
139
+ const hasProgressState = GOOD_PROGRESS_PATTERNS.progressState.pattern.test(functionBody) ||
140
+ GOOD_PROGRESS_PATTERNS.counterInLoop.pattern.test(functionBody);
141
+ const hasProgressUpdates = GOOD_PROGRESS_PATTERNS.progressUpdates.pattern.test(functionBody) ||
142
+ GOOD_PROGRESS_PATTERNS.progressCallback.pattern.test(functionBody);
143
+ const hasVisualProgress = GOOD_PROGRESS_PATTERNS.visualProgress.pattern.test(functionBody);
144
+ // Check for anti-patterns
145
+ const antiPatterns = [];
146
+ for (const [name, check] of Object.entries(ANTI_PATTERNS)) {
147
+ if (check.pattern.test(functionBody)) {
148
+ antiPatterns.push(name);
149
+ }
150
+ }
151
+ operations.push({
152
+ file: filePath,
153
+ functionName,
154
+ hasProgressState,
155
+ hasProgressUpdates,
156
+ hasVisualProgress,
157
+ antiPatterns,
158
+ });
159
+ }
160
+ return operations;
161
+ }
162
+ async function run() {
163
+ console.log(`\n${console_chars_1.emoji.ruler} BULK ACTION PROGRESS FEEDBACK VALIDATION`);
164
+ console.log((0, console_chars_1.createDivider)(65, "heavy"));
165
+ const issues = [];
166
+ const bulkOperations = [];
167
+ // Find all relevant files
168
+ const allFiles = [];
169
+ for (const pattern of FILE_PATTERNS) {
170
+ const matches = await (0, glob_1.glob)(pattern, { cwd: process.cwd() });
171
+ allFiles.push(...matches);
172
+ }
173
+ const uniqueFiles = [...new Set(allFiles)];
174
+ console.log(`\n${console_chars_1.emoji.search} Scanning ${uniqueFiles.length} files for bulk operations...`);
175
+ // Check each file
176
+ for (const relativePath of uniqueFiles) {
177
+ const filePath = path_1.default.join(process.cwd(), relativePath);
178
+ if (!fs_1.default.existsSync(filePath))
179
+ continue;
180
+ const content = fs_1.default.readFileSync(filePath, "utf-8");
181
+ // Check if file has bulk operations
182
+ const hasBulkOps = BULK_OPERATION_INDICATORS.some((pattern) => pattern.test(content));
183
+ if (!hasBulkOps)
184
+ continue;
185
+ console.log(` ${console_chars_1.emoji.file} ${relativePath} (has bulk operations)`);
186
+ // Find and analyze bulk operations
187
+ const fileOperations = findBulkOperations(content, relativePath);
188
+ bulkOperations.push(...fileOperations);
189
+ // Generate issues for operations lacking progress feedback
190
+ for (const op of fileOperations) {
191
+ if (!op.hasProgressState && !op.hasProgressUpdates) {
192
+ issues.push({
193
+ file: relativePath,
194
+ type: "missing-progress",
195
+ pattern: op.functionName,
196
+ description: `Function "${op.functionName}" performs bulk operations without progress tracking`,
197
+ severity: "warning",
198
+ });
199
+ }
200
+ for (const antiPattern of op.antiPatterns) {
201
+ const check = ANTI_PATTERNS[antiPattern];
202
+ if (check) {
203
+ issues.push({
204
+ file: relativePath,
205
+ type: "anti-pattern",
206
+ pattern: antiPattern,
207
+ description: `${op.functionName}: ${check.description}`,
208
+ severity: check.severity,
209
+ });
210
+ }
211
+ }
212
+ }
213
+ }
214
+ // Summary
215
+ console.log(`\n${console_chars_1.emoji.chart} Summary:`);
216
+ console.log(` Files with bulk operations: ${new Set(bulkOperations.map(o => o.file)).size}`);
217
+ console.log(` Bulk operation functions found: ${bulkOperations.length}`);
218
+ console.log(` Functions with progress tracking: ${bulkOperations.filter(o => o.hasProgressState || o.hasProgressUpdates).length}`);
219
+ console.log(` Issues found: ${issues.length}`);
220
+ if (issues.length === 0) {
221
+ console.log(`\n${console_chars_1.emoji.success} BULK ACTION PROGRESS FEEDBACK VALIDATION PASSED`);
222
+ console.log(`\nAll bulk operations have proper progress feedback.`);
223
+ return { success: true, errors: 0, warnings: 0 };
224
+ }
225
+ // Group issues by file
226
+ const issuesByFile = new Map();
227
+ for (const issue of issues) {
228
+ const fileIssues = issuesByFile.get(issue.file) || [];
229
+ fileIssues.push(issue);
230
+ issuesByFile.set(issue.file, fileIssues);
231
+ }
232
+ console.log(`\n${console_chars_1.emoji.warning} Issues found:`);
233
+ for (const [file, fileIssues] of issuesByFile) {
234
+ console.log(`\n ${file}:`);
235
+ for (const issue of fileIssues) {
236
+ const icon = issue.severity === "error"
237
+ ? console_chars_1.emoji.error
238
+ : issue.severity === "warning"
239
+ ? console_chars_1.emoji.warning
240
+ : console_chars_1.emoji.info;
241
+ console.log(` ${icon} ${issue.description}`);
242
+ }
243
+ }
244
+ console.log(`\n${console_chars_1.emoji.info} To fix bulk action progress issues:`);
245
+ console.log(` 1. Add progress state to track processed/total counts:`);
246
+ console.log(` interface BulkProgressState {`);
247
+ console.log(` isProcessing: boolean;`);
248
+ console.log(` processedCount: number;`);
249
+ console.log(` totalCount: number;`);
250
+ console.log(` currentItem: string;`);
251
+ console.log(` errors: string[];`);
252
+ console.log(` }`);
253
+ console.log(` 2. Update progress during the loop, not just at start/end`);
254
+ console.log(` 3. Show visual feedback with LinearProgress (determinate)`);
255
+ console.log(` 4. Display StatusChip or similar for processed/remaining counts`);
256
+ console.log(` 5. Show which item is currently being processed`);
257
+ console.log(`\n See components/woocommerce/steps/ProductSelectionStep.tsx for example pattern.`);
258
+ // Exit with warning (non-blocking)
259
+ console.log(`\n${console_chars_1.emoji.warning} BULK ACTION PROGRESS FEEDBACK VALIDATION COMPLETED WITH WARNINGS`);
260
+ return { success: true, errors: 0, warnings: issues.length }; // Non-blocking - just warnings
261
+ }
262
+ // Allow direct execution
263
+ if (require.main === module) {
264
+ run()
265
+ .then((result) => {
266
+ process.exit(result.success ? 0 : 1);
267
+ })
268
+ .catch((err) => {
269
+ console.error(`${console_chars_1.emoji.error} Preflight failed:`, err);
270
+ process.exit(1);
271
+ });
272
+ }
273
+ //# sourceMappingURL=bulk-action-progress-feedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk-action-progress-feedback.js","sourceRoot":"","sources":["../../../src/checks/ui/bulk-action-progress-feedback.ts"],"names":[],"mappings":";;;;;;;AA8LA,kBAmHC;AAhTD;;;;;;;;;;;;;;GAcG;AACH,4CAAoB;AACpB,gDAAwB;AACxB,+BAA4B;AAE5B,6DAAiE;AAEjE,kDAAkD;AACrC,QAAA,EAAE,GAAG,kCAAkC,CAAC;AACxC,QAAA,IAAI,GAAG,+BAA+B,CAAC;AACvC,QAAA,WAAW,GAAG,2EAA2E,CAAC;AAC1F,QAAA,QAAQ,GAAG,IAAI,CAAC;AAChB,QAAA,QAAQ,GAAG,KAAK,CAAC,CAAC,sCAAsC;AACxD,QAAA,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAEtE;;GAEG;AACH,MAAM,aAAa,GAAG;IACpB,yBAAyB;IACzB,0BAA0B;IAC1B,0BAA0B;IAC1B,mBAAmB;IACnB,oBAAoB;IACpB,yBAAyB;IACzB,yBAAyB;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,yBAAyB,GAAG;IAChC,iBAAiB;IACjB,qDAAqD;IACrD,+CAA+C;IAC/C,oCAAoC;IACpC,sEAAsE;IACtE,sDAAsD;IACtD,wCAAwC;IACxC,8BAA8B;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,sBAAsB,GAAG;IAC7B,6BAA6B;IAC7B,aAAa,EAAE;QACb,OAAO,EAAE,mFAAmF;QAC5F,WAAW,EAAE,mDAAmD;KACjE;IACD,4BAA4B;IAC5B,eAAe,EAAE;QACf,OAAO,EAAE,oEAAoE;QAC7E,WAAW,EAAE,uDAAuD;KACrE;IACD,6BAA6B;IAC7B,aAAa,EAAE;QACb,OAAO,EAAE,gHAAgH;QACzH,WAAW,EAAE,2CAA2C;KACzD;IACD,4BAA4B;IAC5B,cAAc,EAAE;QACd,OAAO,EAAE,4EAA4E;QACrF,WAAW,EAAE,oDAAoD;KAClE;IACD,iCAAiC;IACjC,gBAAgB,EAAE;QAChB,OAAO,EAAE,qDAAqD;QAC9D,WAAW,EAAE,gDAAgD;KAC9D;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,aAAa,GAAG;IACpB,wCAAwC;IACxC,kBAAkB,EAAE;QAClB,OAAO,EAAE,iEAAiE;QAC1E,WAAW,EAAE,+DAA+D;QAC5E,QAAQ,EAAE,SAAS;KACpB;IACD,gCAAgC;IAChC,mBAAmB,EAAE;QACnB,OAAO,EAAE,0FAA0F;QACnG,WAAW,EAAE,+DAA+D;QAC5E,QAAQ,EAAE,SAAS;KACpB;IACD,+CAA+C;IAC/C,mBAAmB,EAAE;QACnB,OAAO,EAAE,kFAAkF;QAC3F,WAAW,EAAE,kDAAkD;QAC/D,QAAQ,EAAE,MAAM;KACjB;CACF,CAAC;AAoBF,SAAS,kBAAkB,CAAC,OAAe,EAAE,QAAgB;IAC3D,MAAM,UAAU,GAAoB,EAAE,CAAC;IAEvC,gCAAgC;IAChC,MAAM,eAAe,GAAG,OAAO,CAAC,QAAQ,CACtC,yGAAyG,CAC1G,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;QAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAEpC,iEAAiE;QACjE,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,WAAW,GAAG,UAAU,CAAC;QAC7B,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,UAAU,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1E,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACvB,UAAU,EAAE,CAAC;gBACb,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC9B,UAAU,EAAE,CAAC;gBACb,IAAI,UAAU,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;oBACnC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;oBACpB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAE5D,0BAA0B;QAC1B,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;YACtF,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;YAC1F,sBAAsB,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrE,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE3F,0BAA0B;QAC1B,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;gBACrC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,QAAQ;YACd,YAAY;YACZ,gBAAgB;YAChB,kBAAkB;YAClB,iBAAiB;YACjB,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,GAAG;IACvB,OAAO,CAAC,GAAG,CAAC,KAAK,qBAAK,CAAC,KAAK,2CAA2C,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,IAAA,6BAAa,EAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAExC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,cAAc,GAAoB,EAAE,CAAC;IAE3C,0BAA0B;IAC1B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,IAAA,WAAI,EAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5D,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,qBAAK,CAAC,MAAM,aAAa,WAAW,CAAC,MAAM,+BAA+B,CAAC,CAAC;IAE7F,kBAAkB;IAClB,KAAK,MAAM,YAAY,IAAI,WAAW,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;QAExD,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEvC,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEnD,oCAAoC;QACpC,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAEtF,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,OAAO,CAAC,GAAG,CAAC,MAAM,qBAAK,CAAC,IAAI,IAAI,YAAY,wBAAwB,CAAC,CAAC;QAEtE,mCAAmC;QACnC,MAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACjE,cAAc,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;QAEvC,2DAA2D;QAC3D,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;YAChC,IAAI,CAAC,EAAE,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,EAAE,CAAC,YAAY;oBACxB,WAAW,EAAE,aAAa,EAAE,CAAC,YAAY,sDAAsD;oBAC/F,QAAQ,EAAE,SAAS;iBACpB,CAAC,CAAC;YACL,CAAC;YAED,KAAK,MAAM,WAAW,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;gBAC1C,MAAM,KAAK,GAAG,aAAa,CAAC,WAAyC,CAAC,CAAC;gBACvE,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,cAAc;wBACpB,OAAO,EAAE,WAAW;wBACpB,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,KAAK,KAAK,CAAC,WAAW,EAAE;wBACvD,QAAQ,EAAE,KAAK,CAAC,QAA8B;qBAC/C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,UAAU;IACV,OAAO,CAAC,GAAG,CAAC,KAAK,qBAAK,CAAC,KAAK,WAAW,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,kCAAkC,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,sCAAsC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,wCAAwC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACrI,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,qBAAK,CAAC,OAAO,kDAAkD,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACnD,CAAC;IAED,uBAAuB;IACvB,MAAM,YAAY,GAAG,IAAI,GAAG,EAAmB,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,qBAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,YAAY,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,KAAK,OAAO;gBACrC,CAAC,CAAC,qBAAK,CAAC,KAAK;gBACb,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS;oBAC5B,CAAC,CAAC,qBAAK,CAAC,OAAO;oBACf,CAAC,CAAC,qBAAK,CAAC,IAAI,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,qBAAK,CAAC,IAAI,sCAAsC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,qFAAqF,CAAC,CAAC;IAEnG,mCAAmC;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,qBAAK,CAAC,OAAO,mEAAmE,CAAC,CAAC;IACnG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,+BAA+B;AAC/F,CAAC;AAED,yBAAyB;AACzB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,GAAG,EAAE;SACF,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAU,EAAE,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,GAAG,qBAAK,CAAC,KAAK,oBAAoB,EAAE,GAAG,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@empline/preflight",
3
- "version": "1.1.31",
3
+ "version": "1.1.32",
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",