@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.
- package/dist/checks/framework/prisma-version-bugs.d.ts +47 -0
- package/dist/checks/framework/prisma-version-bugs.d.ts.map +1 -0
- package/dist/checks/framework/prisma-version-bugs.js +232 -0
- package/dist/checks/framework/prisma-version-bugs.js.map +1 -0
- package/dist/checks/framework/turbopack-prisma-external.d.ts +37 -0
- package/dist/checks/framework/turbopack-prisma-external.d.ts.map +1 -0
- package/dist/checks/framework/turbopack-prisma-external.js +144 -0
- package/dist/checks/framework/turbopack-prisma-external.js.map +1 -0
- package/dist/checks/listing-approval/image-processing-validation.d.ts +14 -0
- package/dist/checks/listing-approval/image-processing-validation.d.ts.map +1 -0
- package/dist/checks/listing-approval/image-processing-validation.js +198 -0
- package/dist/checks/listing-approval/image-processing-validation.js.map +1 -0
- package/dist/checks/listing-approval/r2-metadata-application.d.ts +14 -0
- package/dist/checks/listing-approval/r2-metadata-application.d.ts.map +1 -0
- package/dist/checks/listing-approval/r2-metadata-application.js +261 -0
- package/dist/checks/listing-approval/r2-metadata-application.js.map +1 -0
- package/dist/checks/listing-approval/seo-metadata-consistency.d.ts +14 -0
- package/dist/checks/listing-approval/seo-metadata-consistency.d.ts.map +1 -0
- package/dist/checks/listing-approval/seo-metadata-consistency.js +408 -0
- package/dist/checks/listing-approval/seo-metadata-consistency.js.map +1 -0
- package/dist/checks/ui/batch-progress-consistency.d.ts +13 -0
- package/dist/checks/ui/batch-progress-consistency.d.ts.map +1 -0
- package/dist/checks/ui/batch-progress-consistency.js +200 -0
- package/dist/checks/ui/batch-progress-consistency.js.map +1 -0
- package/dist/checks/ui/bulk-action-progress-feedback.d.ts +13 -0
- package/dist/checks/ui/bulk-action-progress-feedback.d.ts.map +1 -0
- package/dist/checks/ui/bulk-action-progress-feedback.js +273 -0
- package/dist/checks/ui/bulk-action-progress-feedback.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Preflight Check: Prisma Version Known Bugs
|
|
4
|
+
*
|
|
5
|
+
* Category: framework
|
|
6
|
+
* Severity: blocking
|
|
7
|
+
*
|
|
8
|
+
* Checks for known problematic Prisma versions that have critical bugs.
|
|
9
|
+
* This preflight catches version-specific issues that wouldn't be flagged
|
|
10
|
+
* by simple "outdated package" checks.
|
|
11
|
+
*
|
|
12
|
+
* KNOWN ISSUES:
|
|
13
|
+
* - Prisma 7.0.0-7.2.x: @map() decorator bug with driver adapters (GitHub #27357)
|
|
14
|
+
* Causes "The column `(not available)` does not exist" errors at runtime
|
|
15
|
+
* when using @prisma/adapter-pg with models that have @map() annotations.
|
|
16
|
+
* Fixed in 7.3.0+
|
|
17
|
+
*
|
|
18
|
+
* @see https://github.com/prisma/prisma/issues/27357
|
|
19
|
+
*/
|
|
20
|
+
export declare const id = "framework/prisma-version-bugs";
|
|
21
|
+
export declare const name = "Prisma Version Known Bugs";
|
|
22
|
+
export declare const category = "framework";
|
|
23
|
+
export declare const blocking = true;
|
|
24
|
+
export declare const description = "Checks for Prisma versions with known critical bugs";
|
|
25
|
+
export declare const tags: string[];
|
|
26
|
+
/**
|
|
27
|
+
* Dev version overrides - when a dev version is intentionally used to fix a bug,
|
|
28
|
+
* document it here so the package update checker doesn't flag it for downgrade.
|
|
29
|
+
*
|
|
30
|
+
* Format: { package: "prisma", minDevVersion: "7.3.0-dev.7", reason: "GH-27357 fix" }
|
|
31
|
+
*/
|
|
32
|
+
interface DevOverride {
|
|
33
|
+
package: string;
|
|
34
|
+
minDevVersion: string;
|
|
35
|
+
reason: string;
|
|
36
|
+
bugId: string;
|
|
37
|
+
}
|
|
38
|
+
declare const APPROVED_DEV_OVERRIDES: DevOverride[];
|
|
39
|
+
declare function isDevVersion(version: string): boolean;
|
|
40
|
+
declare function getApprovedDevOverride(version: string): DevOverride | null;
|
|
41
|
+
export { APPROVED_DEV_OVERRIDES, getApprovedDevOverride, isDevVersion };
|
|
42
|
+
export declare function run(): Promise<{
|
|
43
|
+
success: boolean;
|
|
44
|
+
errors: number;
|
|
45
|
+
warnings: number;
|
|
46
|
+
}>;
|
|
47
|
+
//# sourceMappingURL=prisma-version-bugs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prisma-version-bugs.d.ts","sourceRoot":"","sources":["../../../src/checks/framework/prisma-version-bugs.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG;AAQH,eAAO,MAAM,EAAE,kCAAkC,CAAC;AAClD,eAAO,MAAM,IAAI,8BAA8B,CAAC;AAChD,eAAO,MAAM,QAAQ,cAAc,CAAC;AACpC,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,WAAW,wDAAwD,CAAC;AACjF,eAAO,MAAM,IAAI,UAAmD,CAAC;AAErE;;;;;GAKG;AACH,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,QAAA,MAAM,sBAAsB,EAAE,WAAW,EAOxC,CAAC;AA+GF,iBAAS,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9C;AAED,iBAAS,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA4BnE;AAGD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC;AAqCxE,wBAAsB,GAAG,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA8C3F"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Preflight Check: Prisma Version Known Bugs
|
|
5
|
+
*
|
|
6
|
+
* Category: framework
|
|
7
|
+
* Severity: blocking
|
|
8
|
+
*
|
|
9
|
+
* Checks for known problematic Prisma versions that have critical bugs.
|
|
10
|
+
* This preflight catches version-specific issues that wouldn't be flagged
|
|
11
|
+
* by simple "outdated package" checks.
|
|
12
|
+
*
|
|
13
|
+
* KNOWN ISSUES:
|
|
14
|
+
* - Prisma 7.0.0-7.2.x: @map() decorator bug with driver adapters (GitHub #27357)
|
|
15
|
+
* Causes "The column `(not available)` does not exist" errors at runtime
|
|
16
|
+
* when using @prisma/adapter-pg with models that have @map() annotations.
|
|
17
|
+
* Fixed in 7.3.0+
|
|
18
|
+
*
|
|
19
|
+
* @see https://github.com/prisma/prisma/issues/27357
|
|
20
|
+
*/
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
exports.APPROVED_DEV_OVERRIDES = exports.tags = exports.description = exports.blocking = exports.category = exports.name = exports.id = void 0;
|
|
23
|
+
exports.getApprovedDevOverride = getApprovedDevOverride;
|
|
24
|
+
exports.isDevVersion = isDevVersion;
|
|
25
|
+
exports.run = run;
|
|
26
|
+
const fs_1 = require("fs");
|
|
27
|
+
const path_1 = require("path");
|
|
28
|
+
const console_chars_1 = require("../../utils/console-chars");
|
|
29
|
+
// Preflight metadata
|
|
30
|
+
exports.id = "framework/prisma-version-bugs";
|
|
31
|
+
exports.name = "Prisma Version Known Bugs";
|
|
32
|
+
exports.category = "framework";
|
|
33
|
+
exports.blocking = true;
|
|
34
|
+
exports.description = "Checks for Prisma versions with known critical bugs";
|
|
35
|
+
exports.tags = ["prisma", "version", "bugs", "driver-adapters"];
|
|
36
|
+
const APPROVED_DEV_OVERRIDES = [
|
|
37
|
+
{
|
|
38
|
+
package: "prisma",
|
|
39
|
+
minDevVersion: "7.3.0-dev.7",
|
|
40
|
+
reason: "@map() decorator fix with driver adapters",
|
|
41
|
+
bugId: "GH-27357",
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
exports.APPROVED_DEV_OVERRIDES = APPROVED_DEV_OVERRIDES;
|
|
45
|
+
// Known Prisma bugs with version ranges
|
|
46
|
+
const KNOWN_BUGS = [
|
|
47
|
+
{
|
|
48
|
+
id: "GH-27357",
|
|
49
|
+
affectedVersions: (version) => {
|
|
50
|
+
// Affected: 7.0.0 to 7.2.x (stable versions)
|
|
51
|
+
// Fixed in: 7.3.0+ (or 7.3.0-dev.7+)
|
|
52
|
+
const match = version.match(/^(\d+)\.(\d+)\.(\d+)(?:-dev\.(\d+))?/);
|
|
53
|
+
if (!match)
|
|
54
|
+
return false;
|
|
55
|
+
const major = parseInt(match[1], 10);
|
|
56
|
+
const minor = parseInt(match[2], 10);
|
|
57
|
+
const devNum = match[4] ? parseInt(match[4], 10) : null;
|
|
58
|
+
// v7.0.0 - v7.2.x are affected
|
|
59
|
+
if (major === 7 && minor >= 0 && minor <= 2) {
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
// v7.3.0-dev.0 through v7.3.0-dev.6 are still affected
|
|
63
|
+
if (major === 7 && minor === 3 && devNum !== null && devNum < 7) {
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
},
|
|
68
|
+
condition: () => {
|
|
69
|
+
// Only applies when using driver adapters
|
|
70
|
+
return usesDriverAdapter();
|
|
71
|
+
},
|
|
72
|
+
title: "@map() decorator bug with driver adapters",
|
|
73
|
+
description: 'Causes "The column `(not available)` does not exist" runtime errors ' +
|
|
74
|
+
"when using @prisma/adapter-pg with models that have @map() annotations.",
|
|
75
|
+
fixedIn: "7.3.0 (or 7.3.0-dev.7+)",
|
|
76
|
+
reference: "https://github.com/prisma/prisma/issues/27357",
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
function getPackageJsonPath() {
|
|
80
|
+
return (0, path_1.join)(process.cwd(), "package.json");
|
|
81
|
+
}
|
|
82
|
+
function getPrismaVersion() {
|
|
83
|
+
const pkgPath = getPackageJsonPath();
|
|
84
|
+
if (!(0, fs_1.existsSync)(pkgPath))
|
|
85
|
+
return null;
|
|
86
|
+
try {
|
|
87
|
+
const pkg = JSON.parse((0, fs_1.readFileSync)(pkgPath, "utf-8"));
|
|
88
|
+
const version = pkg.dependencies?.prisma ||
|
|
89
|
+
pkg.devDependencies?.prisma ||
|
|
90
|
+
pkg.dependencies?.["@prisma/client"] ||
|
|
91
|
+
pkg.devDependencies?.["@prisma/client"];
|
|
92
|
+
if (!version)
|
|
93
|
+
return null;
|
|
94
|
+
// Remove version prefixes like ^ or ~
|
|
95
|
+
return version.replace(/^[\^~]/, "");
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function usesDriverAdapter() {
|
|
102
|
+
// Check if @prisma/adapter-pg (or other adapters) is in dependencies
|
|
103
|
+
const pkgPath = getPackageJsonPath();
|
|
104
|
+
if (!(0, fs_1.existsSync)(pkgPath))
|
|
105
|
+
return false;
|
|
106
|
+
try {
|
|
107
|
+
const pkg = JSON.parse((0, fs_1.readFileSync)(pkgPath, "utf-8"));
|
|
108
|
+
const allDeps = {
|
|
109
|
+
...pkg.dependencies,
|
|
110
|
+
...pkg.devDependencies,
|
|
111
|
+
};
|
|
112
|
+
// Check for known driver adapter packages
|
|
113
|
+
const adapterPackages = [
|
|
114
|
+
"@prisma/adapter-pg",
|
|
115
|
+
"@prisma/adapter-neon",
|
|
116
|
+
"@prisma/adapter-planetscale",
|
|
117
|
+
"@prisma/adapter-libsql",
|
|
118
|
+
"@prisma/adapter-d1",
|
|
119
|
+
];
|
|
120
|
+
return adapterPackages.some((adapter) => adapter in allDeps);
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function isDevVersion(version) {
|
|
127
|
+
return version.includes("-dev.") || version.includes("-alpha") || version.includes("-beta");
|
|
128
|
+
}
|
|
129
|
+
function getApprovedDevOverride(version) {
|
|
130
|
+
if (!isDevVersion(version))
|
|
131
|
+
return null;
|
|
132
|
+
// Find matching approved override
|
|
133
|
+
for (const override of APPROVED_DEV_OVERRIDES) {
|
|
134
|
+
if (override.package !== "prisma")
|
|
135
|
+
continue;
|
|
136
|
+
// Parse version to compare
|
|
137
|
+
const minMatch = override.minDevVersion.match(/^(\d+)\.(\d+)\.(\d+)-dev\.(\d+)/);
|
|
138
|
+
const curMatch = version.match(/^(\d+)\.(\d+)\.(\d+)-dev\.(\d+)/);
|
|
139
|
+
if (!minMatch || !curMatch)
|
|
140
|
+
continue;
|
|
141
|
+
const [, minMaj, minMin, minPatch, minDev] = minMatch.map(Number);
|
|
142
|
+
const [, curMaj, curMin, curPatch, curDev] = curMatch.map(Number);
|
|
143
|
+
// Check if current version is >= minimum approved version
|
|
144
|
+
if (curMaj > minMaj ||
|
|
145
|
+
(curMaj === minMaj && curMin > minMin) ||
|
|
146
|
+
(curMaj === minMaj && curMin === minMin && curPatch > minPatch) ||
|
|
147
|
+
(curMaj === minMaj && curMin === minMin && curPatch === minPatch && curDev >= minDev)) {
|
|
148
|
+
return override;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
function checkPrismaVersion() {
|
|
154
|
+
const version = getPrismaVersion();
|
|
155
|
+
const usesAdapter = usesDriverAdapter();
|
|
156
|
+
if (!version) {
|
|
157
|
+
return {
|
|
158
|
+
passed: true,
|
|
159
|
+
version: null,
|
|
160
|
+
triggeredBugs: [],
|
|
161
|
+
usesAdapter,
|
|
162
|
+
approvedDevOverride: null,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
const triggeredBugs = KNOWN_BUGS.filter((bug) => {
|
|
166
|
+
// Check if version is affected
|
|
167
|
+
if (!bug.affectedVersions(version))
|
|
168
|
+
return false;
|
|
169
|
+
// Check additional conditions if present
|
|
170
|
+
if (bug.condition && !bug.condition())
|
|
171
|
+
return false;
|
|
172
|
+
return true;
|
|
173
|
+
});
|
|
174
|
+
const approvedDevOverride = getApprovedDevOverride(version);
|
|
175
|
+
return {
|
|
176
|
+
passed: triggeredBugs.length === 0,
|
|
177
|
+
version,
|
|
178
|
+
triggeredBugs,
|
|
179
|
+
usesAdapter,
|
|
180
|
+
approvedDevOverride,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
async function run() {
|
|
184
|
+
console.log(`\n${console_chars_1.emoji.search} PRISMA VERSION KNOWN BUGS CHECK`);
|
|
185
|
+
console.log((0, console_chars_1.createDivider)(65, "heavy"));
|
|
186
|
+
const result = checkPrismaVersion();
|
|
187
|
+
if (!result.version) {
|
|
188
|
+
console.log(`\n ${console_chars_1.emoji.warning} Prisma not found in package.json`);
|
|
189
|
+
console.log(` Skipping version check.`);
|
|
190
|
+
console.log(`\n${console_chars_1.emoji.success} PRISMA VERSION CHECK PASSED (no Prisma found)`);
|
|
191
|
+
return { success: true, errors: 0, warnings: 0 };
|
|
192
|
+
}
|
|
193
|
+
console.log(`\n Prisma version: ${result.version}`);
|
|
194
|
+
console.log(` Uses driver adapter: ${result.usesAdapter ? "Yes" : "No"}`);
|
|
195
|
+
// Show dev override info if applicable
|
|
196
|
+
if (result.approvedDevOverride) {
|
|
197
|
+
console.log(` Approved dev override: Yes`);
|
|
198
|
+
console.log(` Reason: ${result.approvedDevOverride.reason} (${result.approvedDevOverride.bugId})`);
|
|
199
|
+
console.log(` Note: Do not downgrade to stable until ${result.approvedDevOverride.minDevVersion.split("-")[0]} stable is released`);
|
|
200
|
+
}
|
|
201
|
+
if (result.passed) {
|
|
202
|
+
console.log(`\n${console_chars_1.emoji.success} PRISMA VERSION CHECK PASSED`);
|
|
203
|
+
console.log(`\nNo known critical bugs affect this Prisma version.`);
|
|
204
|
+
return { success: true, errors: 0, warnings: 0 };
|
|
205
|
+
}
|
|
206
|
+
console.log(`\n${console_chars_1.emoji.error} Found ${result.triggeredBugs.length} known bug(s) affecting this version:`);
|
|
207
|
+
for (const bug of result.triggeredBugs) {
|
|
208
|
+
console.log(`\n [${bug.id}] ${bug.title}`);
|
|
209
|
+
console.log(` ${bug.description}`);
|
|
210
|
+
console.log(` Fixed in: ${bug.fixedIn}`);
|
|
211
|
+
console.log(` Reference: ${bug.reference}`);
|
|
212
|
+
}
|
|
213
|
+
console.log(`\n${console_chars_1.emoji.info} FIX:`);
|
|
214
|
+
console.log(` Upgrade Prisma to a version with the fix:`);
|
|
215
|
+
console.log(` pnpm add prisma@latest @prisma/client@latest @prisma/adapter-pg@latest`);
|
|
216
|
+
console.log(`\n Or if the fix is only in dev versions:`);
|
|
217
|
+
console.log(` pnpm add prisma@dev @prisma/client@dev @prisma/adapter-pg@dev`);
|
|
218
|
+
console.log(`\n${console_chars_1.emoji.error} PRISMA VERSION CHECK FAILED`);
|
|
219
|
+
return { success: false, errors: result.triggeredBugs.length, warnings: 0 };
|
|
220
|
+
}
|
|
221
|
+
// Allow direct execution
|
|
222
|
+
if (require.main === module) {
|
|
223
|
+
run()
|
|
224
|
+
.then((result) => {
|
|
225
|
+
process.exit(result.success ? 0 : 1);
|
|
226
|
+
})
|
|
227
|
+
.catch((err) => {
|
|
228
|
+
console.error(`${console_chars_1.emoji.error} Preflight failed:`, err);
|
|
229
|
+
process.exit(1);
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
//# sourceMappingURL=prisma-version-bugs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prisma-version-bugs.js","sourceRoot":"","sources":["../../../src/checks/framework/prisma-version-bugs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Preflight Check: Turbopack Prisma External Packages
|
|
4
|
+
*
|
|
5
|
+
* Category: framework
|
|
6
|
+
* Severity: blocking
|
|
7
|
+
*
|
|
8
|
+
* Ensures that Prisma packages are properly excluded from Turbopack bundling
|
|
9
|
+
* in next.config.js via serverExternalPackages.
|
|
10
|
+
*
|
|
11
|
+
* WHY THIS MATTERS:
|
|
12
|
+
* When Turbopack bundles @prisma/client, it can mangle the internal column name
|
|
13
|
+
* resolution, causing runtime errors like:
|
|
14
|
+
* "The column `(not available)` does not exist in the current database"
|
|
15
|
+
*
|
|
16
|
+
* This happens because Prisma's query builder dynamically resolves column names
|
|
17
|
+
* at runtime using the generated client's metadata. Turbopack's bundling breaks
|
|
18
|
+
* this resolution, especially for columns using @map() in the schema.
|
|
19
|
+
*
|
|
20
|
+
* SOLUTION:
|
|
21
|
+
* Add "@prisma/client" and "prisma" to serverExternalPackages in next.config.js
|
|
22
|
+
* to prevent Turbopack from bundling them.
|
|
23
|
+
*
|
|
24
|
+
* @see https://nextjs.org/docs/app/api-reference/next-config-js/serverExternalPackages
|
|
25
|
+
*/
|
|
26
|
+
export declare const id = "framework/turbopack-prisma-external";
|
|
27
|
+
export declare const name = "Turbopack Prisma External Packages";
|
|
28
|
+
export declare const category = "framework";
|
|
29
|
+
export declare const blocking = true;
|
|
30
|
+
export declare const description = "Ensures Prisma packages are excluded from Turbopack bundling";
|
|
31
|
+
export declare const tags: string[];
|
|
32
|
+
export declare function run(): Promise<{
|
|
33
|
+
success: boolean;
|
|
34
|
+
errors: number;
|
|
35
|
+
warnings: number;
|
|
36
|
+
}>;
|
|
37
|
+
//# sourceMappingURL=turbopack-prisma-external.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turbopack-prisma-external.d.ts","sourceRoot":"","sources":["../../../src/checks/framework/turbopack-prisma-external.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAQH,eAAO,MAAM,EAAE,wCAAwC,CAAC;AACxD,eAAO,MAAM,IAAI,uCAAuC,CAAC;AACzD,eAAO,MAAM,QAAQ,cAAc,CAAC;AACpC,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,WAAW,iEAAiE,CAAC;AAC1F,eAAO,MAAM,IAAI,UAA+C,CAAC;AAmFjE,wBAAsB,GAAG,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAwC3F"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Preflight Check: Turbopack Prisma External Packages
|
|
5
|
+
*
|
|
6
|
+
* Category: framework
|
|
7
|
+
* Severity: blocking
|
|
8
|
+
*
|
|
9
|
+
* Ensures that Prisma packages are properly excluded from Turbopack bundling
|
|
10
|
+
* in next.config.js via serverExternalPackages.
|
|
11
|
+
*
|
|
12
|
+
* WHY THIS MATTERS:
|
|
13
|
+
* When Turbopack bundles @prisma/client, it can mangle the internal column name
|
|
14
|
+
* resolution, causing runtime errors like:
|
|
15
|
+
* "The column `(not available)` does not exist in the current database"
|
|
16
|
+
*
|
|
17
|
+
* This happens because Prisma's query builder dynamically resolves column names
|
|
18
|
+
* at runtime using the generated client's metadata. Turbopack's bundling breaks
|
|
19
|
+
* this resolution, especially for columns using @map() in the schema.
|
|
20
|
+
*
|
|
21
|
+
* SOLUTION:
|
|
22
|
+
* Add "@prisma/client" and "prisma" to serverExternalPackages in next.config.js
|
|
23
|
+
* to prevent Turbopack from bundling them.
|
|
24
|
+
*
|
|
25
|
+
* @see https://nextjs.org/docs/app/api-reference/next-config-js/serverExternalPackages
|
|
26
|
+
*/
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.tags = exports.description = exports.blocking = exports.category = exports.name = exports.id = void 0;
|
|
29
|
+
exports.run = run;
|
|
30
|
+
const fs_1 = require("fs");
|
|
31
|
+
const path_1 = require("path");
|
|
32
|
+
const console_chars_1 = require("../../utils/console-chars");
|
|
33
|
+
// Preflight metadata
|
|
34
|
+
exports.id = "framework/turbopack-prisma-external";
|
|
35
|
+
exports.name = "Turbopack Prisma External Packages";
|
|
36
|
+
exports.category = "framework";
|
|
37
|
+
exports.blocking = true;
|
|
38
|
+
exports.description = "Ensures Prisma packages are excluded from Turbopack bundling";
|
|
39
|
+
exports.tags = ["turbopack", "prisma", "next.js", "config"];
|
|
40
|
+
const NEXT_CONFIG_PATH = (0, path_1.join)(process.cwd(), "next.config.js");
|
|
41
|
+
const NEXT_CONFIG_TS_PATH = (0, path_1.join)(process.cwd(), "next.config.ts");
|
|
42
|
+
const NEXT_CONFIG_MJS_PATH = (0, path_1.join)(process.cwd(), "next.config.mjs");
|
|
43
|
+
const REQUIRED_EXTERNAL_PACKAGES = ["@prisma/client", "prisma"];
|
|
44
|
+
function findNextConfig() {
|
|
45
|
+
if ((0, fs_1.existsSync)(NEXT_CONFIG_PATH))
|
|
46
|
+
return NEXT_CONFIG_PATH;
|
|
47
|
+
if ((0, fs_1.existsSync)(NEXT_CONFIG_TS_PATH))
|
|
48
|
+
return NEXT_CONFIG_TS_PATH;
|
|
49
|
+
if ((0, fs_1.existsSync)(NEXT_CONFIG_MJS_PATH))
|
|
50
|
+
return NEXT_CONFIG_MJS_PATH;
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
function extractServerExternalPackages(content) {
|
|
54
|
+
// Match serverExternalPackages array in various formats:
|
|
55
|
+
// serverExternalPackages: ["sharp", "@prisma/client"]
|
|
56
|
+
// serverExternalPackages: ['sharp', '@prisma/client']
|
|
57
|
+
const patterns = [
|
|
58
|
+
/serverExternalPackages\s*:\s*\[([\s\S]*?)\]/,
|
|
59
|
+
/serverExternalPackages\s*=\s*\[([\s\S]*?)\]/,
|
|
60
|
+
];
|
|
61
|
+
for (const pattern of patterns) {
|
|
62
|
+
const match = content.match(pattern);
|
|
63
|
+
if (match && match[1]) {
|
|
64
|
+
// Extract quoted strings from the array content
|
|
65
|
+
const arrayContent = match[1];
|
|
66
|
+
const packages = [];
|
|
67
|
+
// Match both single and double quoted strings
|
|
68
|
+
const stringPattern = /["']([^"']+)["']/g;
|
|
69
|
+
let stringMatch;
|
|
70
|
+
while ((stringMatch = stringPattern.exec(arrayContent)) !== null) {
|
|
71
|
+
packages.push(stringMatch[1]);
|
|
72
|
+
}
|
|
73
|
+
return packages;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
78
|
+
function checkConfig() {
|
|
79
|
+
const configPath = findNextConfig();
|
|
80
|
+
if (!configPath) {
|
|
81
|
+
return {
|
|
82
|
+
passed: false,
|
|
83
|
+
configPath: null,
|
|
84
|
+
missingPackages: [...REQUIRED_EXTERNAL_PACKAGES],
|
|
85
|
+
foundPackages: [],
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
const content = (0, fs_1.readFileSync)(configPath, "utf-8");
|
|
89
|
+
const externalPackages = extractServerExternalPackages(content);
|
|
90
|
+
const missingPackages = REQUIRED_EXTERNAL_PACKAGES.filter((pkg) => !externalPackages.includes(pkg));
|
|
91
|
+
const foundPackages = REQUIRED_EXTERNAL_PACKAGES.filter((pkg) => externalPackages.includes(pkg));
|
|
92
|
+
return {
|
|
93
|
+
passed: missingPackages.length === 0,
|
|
94
|
+
configPath,
|
|
95
|
+
missingPackages,
|
|
96
|
+
foundPackages,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
async function run() {
|
|
100
|
+
console.log(`\n${console_chars_1.emoji.search} TURBOPACK PRISMA EXTERNAL PACKAGES CHECK`);
|
|
101
|
+
console.log((0, console_chars_1.createDivider)(65, "heavy"));
|
|
102
|
+
const result = checkConfig();
|
|
103
|
+
if (!result.configPath) {
|
|
104
|
+
console.log(`\n${console_chars_1.emoji.error} No next.config.js/ts/mjs found in project root.`);
|
|
105
|
+
console.log(` This check requires a Next.js configuration file.`);
|
|
106
|
+
console.log(`\n${console_chars_1.emoji.error} TURBOPACK PRISMA CHECK FAILED`);
|
|
107
|
+
return { success: false, errors: 1, warnings: 0 };
|
|
108
|
+
}
|
|
109
|
+
console.log(`\n Config file: ${result.configPath}`);
|
|
110
|
+
if (result.foundPackages.length > 0) {
|
|
111
|
+
console.log(` ${console_chars_1.emoji.success} Found in serverExternalPackages: ${result.foundPackages.join(", ")}`);
|
|
112
|
+
}
|
|
113
|
+
if (result.passed) {
|
|
114
|
+
console.log(`\n${console_chars_1.emoji.success} TURBOPACK PRISMA CHECK PASSED`);
|
|
115
|
+
console.log(`\nPrisma packages are correctly excluded from Turbopack bundling.`);
|
|
116
|
+
return { success: true, errors: 0, warnings: 0 };
|
|
117
|
+
}
|
|
118
|
+
console.log(`\n${console_chars_1.emoji.error} Missing from serverExternalPackages: ${result.missingPackages.join(", ")}`);
|
|
119
|
+
console.log(`\n${console_chars_1.emoji.info} WHY THIS MATTERS:`);
|
|
120
|
+
console.log(` When Turbopack bundles @prisma/client, it mangles internal column`);
|
|
121
|
+
console.log(` name resolution, causing runtime errors like:`);
|
|
122
|
+
console.log(` "The column \`(not available)\` does not exist in the current database"`);
|
|
123
|
+
console.log(`\n${console_chars_1.emoji.info} FIX:`);
|
|
124
|
+
console.log(` Add the following to serverExternalPackages in next.config.js:`);
|
|
125
|
+
console.log(`\n serverExternalPackages: [`);
|
|
126
|
+
console.log(` "sharp",`);
|
|
127
|
+
console.log(` "@prisma/client",`);
|
|
128
|
+
console.log(` "prisma",`);
|
|
129
|
+
console.log(` ],`);
|
|
130
|
+
console.log(`\n${console_chars_1.emoji.error} TURBOPACK PRISMA CHECK FAILED`);
|
|
131
|
+
return { success: false, errors: result.missingPackages.length, warnings: 0 };
|
|
132
|
+
}
|
|
133
|
+
// Allow direct execution
|
|
134
|
+
if (require.main === module) {
|
|
135
|
+
run()
|
|
136
|
+
.then((result) => {
|
|
137
|
+
process.exit(result.success ? 0 : 1);
|
|
138
|
+
})
|
|
139
|
+
.catch((err) => {
|
|
140
|
+
console.error(`${console_chars_1.emoji.error} Preflight failed:`, err);
|
|
141
|
+
process.exit(1);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=turbopack-prisma-external.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turbopack-prisma-external.js","sourceRoot":"","sources":["../../../src/checks/framework/turbopack-prisma-external.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export declare const id = "listing-approval/image-processing-validation";
|
|
3
|
+
export declare const name = "Image Processing Validation";
|
|
4
|
+
export declare const description = "Validates listing approval calls mandatory image processing pipeline";
|
|
5
|
+
export declare const category = "listing-approval";
|
|
6
|
+
export declare const blocking = true;
|
|
7
|
+
export declare const tags: string[];
|
|
8
|
+
export declare const requires: string[];
|
|
9
|
+
export declare function run(): Promise<{
|
|
10
|
+
success: boolean;
|
|
11
|
+
errors: number;
|
|
12
|
+
warnings: number;
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=image-processing-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-processing-validation.d.ts","sourceRoot":"","sources":["../../../src/checks/listing-approval/image-processing-validation.ts"],"names":[],"mappings":";AAuBA,eAAO,MAAM,EAAE,iDAAiD,CAAC;AACjE,eAAO,MAAM,IAAI,gCAAgC,CAAC;AAClD,eAAO,MAAM,WAAW,yEAAyE,CAAC;AAClG,eAAO,MAAM,QAAQ,qBAAqB,CAAC;AAC3C,eAAO,MAAM,QAAQ,OAAO,CAAC;AAC7B,eAAO,MAAM,IAAI,UAA6D,CAAC;AAC/E,eAAO,MAAM,QAAQ,UAA0B,CAAC;AA2EhD,wBAAsB,GAAG,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAqG3F"}
|