@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.
@@ -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"}