@empline/preflight 1.1.24 → 1.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/checks/integrations/critical-fields-registry.d.ts +28 -0
- package/dist/checks/integrations/critical-fields-registry.d.ts.map +1 -0
- package/dist/checks/integrations/critical-fields-registry.js +221 -0
- package/dist/checks/integrations/critical-fields-registry.js.map +1 -0
- package/dist/checks/integrations/integration-field-coverage.d.ts +13 -0
- package/dist/checks/integrations/integration-field-coverage.d.ts.map +1 -0
- package/dist/checks/integrations/integration-field-coverage.js +601 -0
- package/dist/checks/integrations/integration-field-coverage.js.map +1 -0
- package/dist/checks/ui/ui-uniformity-polish.d.ts +97 -0
- package/dist/checks/ui/ui-uniformity-polish.d.ts.map +1 -0
- package/dist/checks/ui/ui-uniformity-polish.js +759 -0
- package/dist/checks/ui/ui-uniformity-polish.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export declare const id = "integrations/critical-fields-registry";
|
|
3
|
+
export declare const name = "Critical Fields Registry Sync";
|
|
4
|
+
export declare const description = "Ensures all card identity fields are tracked in integration coverage";
|
|
5
|
+
export declare const category = "integrations";
|
|
6
|
+
export declare const blocking = true;
|
|
7
|
+
export declare const tags: string[];
|
|
8
|
+
export declare const requires: string[];
|
|
9
|
+
/**
|
|
10
|
+
* MASTER FIELD REGISTRY
|
|
11
|
+
*
|
|
12
|
+
* This is the single source of truth for critical fields that MUST be
|
|
13
|
+
* validated in integration imports. If a field is added here, it MUST
|
|
14
|
+
* also be added to integration-field-coverage.ts.
|
|
15
|
+
*
|
|
16
|
+
* Fields are categorized by their importance to card identification:
|
|
17
|
+
* - identity: Core fields that uniquely identify a card (MUST have coverage)
|
|
18
|
+
* - cataloging: Fields important for search/organization (SHOULD have coverage)
|
|
19
|
+
* - inventory: Fields for seller organization (optional coverage)
|
|
20
|
+
*/
|
|
21
|
+
export declare const FIELD_REGISTRY: Record<string, {
|
|
22
|
+
category: "identity" | "cataloging" | "inventory";
|
|
23
|
+
description: string;
|
|
24
|
+
sources: string[];
|
|
25
|
+
requiredInIntegrationCoverage: boolean;
|
|
26
|
+
}>;
|
|
27
|
+
export declare function run(): Promise<void>;
|
|
28
|
+
//# sourceMappingURL=critical-fields-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"critical-fields-registry.d.ts","sourceRoot":"","sources":["../../../src/checks/integrations/critical-fields-registry.ts"],"names":[],"mappings":";AA8BA,eAAO,MAAM,EAAE,0CAA0C,CAAC;AAC1D,eAAO,MAAM,IAAI,kCAAkC,CAAC;AACpD,eAAO,MAAM,WAAW,yEAAyE,CAAC;AAClG,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AACvC,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,IAAI,UAA+D,CAAC;AACjF,eAAO,MAAM,QAAQ,UAA0B,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;IAC1C,QAAQ,EAAE,UAAU,GAAG,YAAY,GAAG,WAAW,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6BAA6B,EAAE,OAAO,CAAC;CACxC,CAoFA,CAAC;AAwBF,wBAAsB,GAAG,kBAyExB"}
|
|
@@ -0,0 +1,221 @@
|
|
|
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.FIELD_REGISTRY = exports.requires = exports.tags = exports.blocking = exports.category = exports.description = exports.name = exports.id = void 0;
|
|
8
|
+
exports.run = run;
|
|
9
|
+
/**
|
|
10
|
+
* Critical Fields Registry & Sync Preflight (BLOCKING)
|
|
11
|
+
*
|
|
12
|
+
* This preflight ensures that ALL critical fields for card/listing data
|
|
13
|
+
* are registered and tracked for integration coverage.
|
|
14
|
+
*
|
|
15
|
+
* PURPOSE:
|
|
16
|
+
* When new fields are added to the codebase (e.g., in Prisma schema,
|
|
17
|
+
* CardData types, or listing forms), this preflight ensures they get
|
|
18
|
+
* added to the integration field coverage checks.
|
|
19
|
+
*
|
|
20
|
+
* HOW IT WORKS:
|
|
21
|
+
* 1. Maintains a FIELD_REGISTRY of all critical fields
|
|
22
|
+
* 2. Scans the codebase for field definitions in key locations:
|
|
23
|
+
* - lib/types/card-types.ts (CardData interfaces)
|
|
24
|
+
* - prisma/schema.prisma (card_catalog, core_listings tables)
|
|
25
|
+
* - components/forms/CardDetailsForm.tsx (form field definitions)
|
|
26
|
+
* 3. Cross-references against integration-field-coverage.ts
|
|
27
|
+
* 4. Flags any fields that exist in source but not in integration coverage
|
|
28
|
+
*
|
|
29
|
+
* WHEN TO UPDATE:
|
|
30
|
+
* - Adding a new field to CardData or card catalog
|
|
31
|
+
* - Adding a new required field to listing creation
|
|
32
|
+
* - When this preflight fails with "untracked field" errors
|
|
33
|
+
*/
|
|
34
|
+
const fs_1 = __importDefault(require("fs"));
|
|
35
|
+
const console_chars_1 = require("../../utils/console-chars");
|
|
36
|
+
// METADATA - Required for plugin loader discovery
|
|
37
|
+
exports.id = "integrations/critical-fields-registry";
|
|
38
|
+
exports.name = "Critical Fields Registry Sync";
|
|
39
|
+
exports.description = "Ensures all card identity fields are tracked in integration coverage";
|
|
40
|
+
exports.category = "integrations";
|
|
41
|
+
exports.blocking = true;
|
|
42
|
+
exports.tags = ["integrations", "field-registry", "sync", "data-integrity"];
|
|
43
|
+
exports.requires = ["trading-card-system"];
|
|
44
|
+
/**
|
|
45
|
+
* MASTER FIELD REGISTRY
|
|
46
|
+
*
|
|
47
|
+
* This is the single source of truth for critical fields that MUST be
|
|
48
|
+
* validated in integration imports. If a field is added here, it MUST
|
|
49
|
+
* also be added to integration-field-coverage.ts.
|
|
50
|
+
*
|
|
51
|
+
* Fields are categorized by their importance to card identification:
|
|
52
|
+
* - identity: Core fields that uniquely identify a card (MUST have coverage)
|
|
53
|
+
* - cataloging: Fields important for search/organization (SHOULD have coverage)
|
|
54
|
+
* - inventory: Fields for seller organization (optional coverage)
|
|
55
|
+
*/
|
|
56
|
+
exports.FIELD_REGISTRY = {
|
|
57
|
+
// IDENTITY FIELDS - Must have full integration coverage
|
|
58
|
+
cardNumber: {
|
|
59
|
+
category: "identity",
|
|
60
|
+
description: "Card number within the set (e.g., #123)",
|
|
61
|
+
sources: ["card-types.ts", "schema.prisma", "CardDetailsForm.tsx"],
|
|
62
|
+
requiredInIntegrationCoverage: true,
|
|
63
|
+
},
|
|
64
|
+
year: {
|
|
65
|
+
category: "identity",
|
|
66
|
+
description: "Release year of the card (e.g., 2024)",
|
|
67
|
+
sources: ["card-types.ts", "schema.prisma", "CardDetailsForm.tsx"],
|
|
68
|
+
requiredInIntegrationCoverage: true,
|
|
69
|
+
},
|
|
70
|
+
brand: {
|
|
71
|
+
category: "identity",
|
|
72
|
+
description: "Card manufacturer (Topps, Panini, etc.)",
|
|
73
|
+
sources: ["card-types.ts", "schema.prisma", "CardDetailsForm.tsx"],
|
|
74
|
+
requiredInIntegrationCoverage: true,
|
|
75
|
+
},
|
|
76
|
+
featured: {
|
|
77
|
+
category: "identity",
|
|
78
|
+
description: "Featured person or character on the card",
|
|
79
|
+
sources: ["card-types.ts", "schema.prisma", "CardDetailsForm.tsx"],
|
|
80
|
+
requiredInIntegrationCoverage: true,
|
|
81
|
+
},
|
|
82
|
+
series: {
|
|
83
|
+
category: "identity",
|
|
84
|
+
description: "Card set or series name",
|
|
85
|
+
sources: ["card-types.ts", "schema.prisma", "CardDetailsForm.tsx"],
|
|
86
|
+
requiredInIntegrationCoverage: true,
|
|
87
|
+
},
|
|
88
|
+
// CATALOGING FIELDS - Should have integration coverage
|
|
89
|
+
team: {
|
|
90
|
+
category: "cataloging",
|
|
91
|
+
description: "Sports team (for sports cards)",
|
|
92
|
+
sources: ["card-types.ts", "schema.prisma"],
|
|
93
|
+
requiredInIntegrationCoverage: true,
|
|
94
|
+
},
|
|
95
|
+
subset: {
|
|
96
|
+
category: "cataloging",
|
|
97
|
+
description: "Card subset or insert set",
|
|
98
|
+
sources: ["card-types.ts", "schema.prisma"],
|
|
99
|
+
requiredInIntegrationCoverage: false,
|
|
100
|
+
},
|
|
101
|
+
variation: {
|
|
102
|
+
category: "cataloging",
|
|
103
|
+
description: "Card variation (refractor, parallel, etc.)",
|
|
104
|
+
sources: ["card-types.ts", "schema.prisma"],
|
|
105
|
+
requiredInIntegrationCoverage: false,
|
|
106
|
+
},
|
|
107
|
+
condition: {
|
|
108
|
+
category: "cataloging",
|
|
109
|
+
description: "Card condition (mint, near mint, etc.)",
|
|
110
|
+
sources: ["card-types.ts", "schema.prisma", "CardDetailsForm.tsx"],
|
|
111
|
+
requiredInIntegrationCoverage: false,
|
|
112
|
+
},
|
|
113
|
+
graded: {
|
|
114
|
+
category: "cataloging",
|
|
115
|
+
description: "Whether card is graded",
|
|
116
|
+
sources: ["card-types.ts", "schema.prisma", "CardDetailsForm.tsx"],
|
|
117
|
+
requiredInIntegrationCoverage: false,
|
|
118
|
+
},
|
|
119
|
+
// INVENTORY FIELDS - Optional coverage
|
|
120
|
+
sellerBox: {
|
|
121
|
+
category: "inventory",
|
|
122
|
+
description: "Seller's storage box identifier",
|
|
123
|
+
sources: ["schema.prisma"],
|
|
124
|
+
requiredInIntegrationCoverage: false,
|
|
125
|
+
},
|
|
126
|
+
sellerRow: {
|
|
127
|
+
category: "inventory",
|
|
128
|
+
description: "Seller's storage row identifier",
|
|
129
|
+
sources: ["schema.prisma"],
|
|
130
|
+
requiredInIntegrationCoverage: false,
|
|
131
|
+
},
|
|
132
|
+
sellerSku: {
|
|
133
|
+
category: "inventory",
|
|
134
|
+
description: "Seller's SKU for the item",
|
|
135
|
+
sources: ["schema.prisma"],
|
|
136
|
+
requiredInIntegrationCoverage: false,
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Fields that are tracked in integration-field-coverage.ts
|
|
141
|
+
* This should match CRITICAL_FIELD_PATTERNS in that file
|
|
142
|
+
*/
|
|
143
|
+
const INTEGRATION_COVERAGE_FILE = "scripts/preflights/business-logic/integrations/integration-field-coverage.ts";
|
|
144
|
+
/**
|
|
145
|
+
* Check if a field is tracked in integration-field-coverage.ts
|
|
146
|
+
*/
|
|
147
|
+
function isFieldTrackedInCoverage(content, fieldName) {
|
|
148
|
+
// Look for the field in CRITICAL_FIELD_PATTERNS
|
|
149
|
+
const fieldPattern = new RegExp(`["']?${fieldName}["']?\\s*:\\s*\\{`, "i");
|
|
150
|
+
return fieldPattern.test(content);
|
|
151
|
+
}
|
|
152
|
+
async function run() {
|
|
153
|
+
console.log((0, console_chars_1.createDivider)());
|
|
154
|
+
console.log(`${console_chars_1.emoji.search} Checking critical fields registry sync...`);
|
|
155
|
+
console.log();
|
|
156
|
+
const issues = [];
|
|
157
|
+
// Check if integration coverage file exists
|
|
158
|
+
if (!fs_1.default.existsSync(INTEGRATION_COVERAGE_FILE)) {
|
|
159
|
+
console.log(`${console_chars_1.emoji.error} Integration coverage file not found: ${INTEGRATION_COVERAGE_FILE}`);
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
const coverageContent = fs_1.default.readFileSync(INTEGRATION_COVERAGE_FILE, "utf-8");
|
|
163
|
+
// Check each required field in registry is tracked in coverage
|
|
164
|
+
console.log(" Checking field registry against integration coverage...");
|
|
165
|
+
console.log();
|
|
166
|
+
const requiredFields = Object.entries(exports.FIELD_REGISTRY)
|
|
167
|
+
.filter(([_, config]) => config.requiredInIntegrationCoverage);
|
|
168
|
+
for (const [fieldName, config] of requiredFields) {
|
|
169
|
+
const isTracked = isFieldTrackedInCoverage(coverageContent, fieldName);
|
|
170
|
+
if (!isTracked) {
|
|
171
|
+
issues.push({
|
|
172
|
+
field: fieldName,
|
|
173
|
+
type: "error",
|
|
174
|
+
message: `Field "${fieldName}" is required but not tracked in integration coverage`,
|
|
175
|
+
fix: `Add "${fieldName}" to CRITICAL_FIELD_PATTERNS in ${INTEGRATION_COVERAGE_FILE}`,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// Report results
|
|
180
|
+
const errors = issues.filter((i) => i.type === "error");
|
|
181
|
+
const warnings = issues.filter((i) => i.type === "warning");
|
|
182
|
+
if (issues.length === 0) {
|
|
183
|
+
console.log(`${console_chars_1.emoji.success} All required fields are tracked in integration coverage!`);
|
|
184
|
+
console.log();
|
|
185
|
+
console.log(" Registry summary:");
|
|
186
|
+
console.log(` ${console_chars_1.emoji.success} Identity fields: ${Object.entries(exports.FIELD_REGISTRY).filter(([_, c]) => c.category === "identity").length}`);
|
|
187
|
+
console.log(` ${console_chars_1.emoji.success} Cataloging fields: ${Object.entries(exports.FIELD_REGISTRY).filter(([_, c]) => c.category === "cataloging").length}`);
|
|
188
|
+
console.log(` ${console_chars_1.emoji.success} Inventory fields: ${Object.entries(exports.FIELD_REGISTRY).filter(([_, c]) => c.category === "inventory").length}`);
|
|
189
|
+
console.log();
|
|
190
|
+
console.log(" Required fields with coverage:");
|
|
191
|
+
for (const [fieldName, config] of requiredFields) {
|
|
192
|
+
console.log(` ${console_chars_1.emoji.success} ${fieldName} (${config.category})`);
|
|
193
|
+
}
|
|
194
|
+
process.exit(0);
|
|
195
|
+
}
|
|
196
|
+
// Show errors
|
|
197
|
+
if (errors.length > 0) {
|
|
198
|
+
console.log(`${console_chars_1.emoji.error} CRITICAL: ${errors.length} required field(s) missing from integration coverage!`);
|
|
199
|
+
console.log();
|
|
200
|
+
for (const issue of errors) {
|
|
201
|
+
console.log(` ${console_chars_1.emoji.error} ${issue.field}: ${issue.message}`);
|
|
202
|
+
console.log(` → Fix: ${issue.fix}`);
|
|
203
|
+
console.log();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
console.log((0, console_chars_1.createDivider)());
|
|
207
|
+
console.log(`${console_chars_1.emoji.info} HOW TO FIX:`);
|
|
208
|
+
console.log(`${console_chars_1.emoji.info} 1. Add missing fields to CRITICAL_FIELD_PATTERNS in integration-field-coverage.ts`);
|
|
209
|
+
console.log(`${console_chars_1.emoji.info} 2. Define requiredPatterns, advisoryPatterns, and forbiddenDefaults for each field`);
|
|
210
|
+
console.log(`${console_chars_1.emoji.info} 3. Add the field to relevant integration file checks in INTEGRATION_FILES`);
|
|
211
|
+
console.log();
|
|
212
|
+
process.exit(errors.length > 0 ? 1 : 0);
|
|
213
|
+
}
|
|
214
|
+
// Allow direct execution
|
|
215
|
+
if (require.main === module) {
|
|
216
|
+
run().catch((error) => {
|
|
217
|
+
console.error("Preflight failed:", error);
|
|
218
|
+
process.exit(1);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=critical-fields-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"critical-fields-registry.js","sourceRoot":"","sources":["../../../src/checks/integrations/critical-fields-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export declare const id = "integrations/field-coverage";
|
|
3
|
+
export declare const name = "Integration Field Coverage";
|
|
4
|
+
export declare const description = "Validates ALL integrations extract ALL critical fields without hardcoded defaults";
|
|
5
|
+
export declare const category = "integrations";
|
|
6
|
+
export declare const blocking = true;
|
|
7
|
+
export declare const tags: string[];
|
|
8
|
+
export declare const requires: string[];
|
|
9
|
+
/**
|
|
10
|
+
* Main run function
|
|
11
|
+
*/
|
|
12
|
+
export declare function run(): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=integration-field-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"integration-field-coverage.d.ts","sourceRoot":"","sources":["../../../src/checks/integrations/integration-field-coverage.ts"],"names":[],"mappings":";AAqCA,eAAO,MAAM,EAAE,gCAAgC,CAAC;AAChD,eAAO,MAAM,IAAI,+BAA+B,CAAC;AACjD,eAAO,MAAM,WAAW,sFAAsF,CAAC;AAC/G,eAAO,MAAM,QAAQ,iBAAiB,CAAC;AACvC,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,IAAI,UAAmG,CAAC;AACrH,eAAO,MAAM,QAAQ,UAA0B,CAAC;AAufhD;;GAEG;AACH,wBAAsB,GAAG,kBA6GxB"}
|