@trigger.dev/build 4.1.0 → 4.1.2
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/commonjs/extensions/prisma.d.ts +167 -26
- package/dist/commonjs/extensions/prisma.js +425 -26
- package/dist/commonjs/extensions/prisma.js.map +1 -1
- package/dist/commonjs/imports/mlly-cjs.cjs.map +1 -0
- package/dist/commonjs/imports/mlly.d.ts +1 -0
- package/dist/commonjs/imports/mlly.js +7 -0
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/extensions/prisma.d.ts +167 -26
- package/dist/esm/extensions/prisma.js +423 -26
- package/dist/esm/extensions/prisma.js.map +1 -1
- package/dist/esm/imports/mlly.d.ts +2 -0
- package/dist/esm/imports/mlly.js +5 -0
- package/dist/esm/imports/mlly.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/package.json +9 -5
|
@@ -1,17 +1,211 @@
|
|
|
1
1
|
import { binaryForRuntime } from "@trigger.dev/core/v3/build";
|
|
2
2
|
import assert from "node:assert";
|
|
3
|
-
import { existsSync } from "node:fs";
|
|
4
|
-
import { cp, readdir } from "node:fs/promises";
|
|
3
|
+
import { existsSync, statSync } from "node:fs";
|
|
4
|
+
import { cp, readdir, readFile } from "node:fs/promises";
|
|
5
5
|
import { dirname, join, resolve } from "node:path";
|
|
6
|
+
import { resolvePathSync as esmResolveSync } from "../imports/mlly.js";
|
|
7
|
+
import { resolvePackageJSON } from "pkg-types";
|
|
6
8
|
const BINARY_TARGET = "linux-arm64-openssl-3.0.x";
|
|
9
|
+
/**
|
|
10
|
+
* Attempts to resolve the Prisma client version from the project.
|
|
11
|
+
* Tries @prisma/client first, then falls back to the prisma package.
|
|
12
|
+
*/
|
|
13
|
+
async function resolvePrismaClientVersion(workingDir, logger) {
|
|
14
|
+
// Try @prisma/client first
|
|
15
|
+
const clientVersion = await tryResolvePrismaPackageVersion("@prisma/client", workingDir, logger);
|
|
16
|
+
if (clientVersion) {
|
|
17
|
+
return clientVersion;
|
|
18
|
+
}
|
|
19
|
+
// Fall back to prisma package
|
|
20
|
+
const prismaVersion = await tryResolvePrismaPackageVersion("prisma", workingDir, logger);
|
|
21
|
+
if (prismaVersion) {
|
|
22
|
+
return prismaVersion;
|
|
23
|
+
}
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Attempts to resolve a specific Prisma package and extract its version
|
|
28
|
+
*/
|
|
29
|
+
async function tryResolvePrismaPackageVersion(packageName, workingDir, logger) {
|
|
30
|
+
try {
|
|
31
|
+
// Try to resolve the package using esmResolveSync
|
|
32
|
+
const resolvedPath = esmResolveSync(packageName, {
|
|
33
|
+
url: workingDir,
|
|
34
|
+
});
|
|
35
|
+
logger.debug(`Resolved ${packageName} module path`, {
|
|
36
|
+
resolvedPath,
|
|
37
|
+
workingDir,
|
|
38
|
+
packageName,
|
|
39
|
+
});
|
|
40
|
+
// Find the package.json for this resolved module
|
|
41
|
+
const packageJsonPath = await resolvePackageJSON(dirname(resolvedPath), {
|
|
42
|
+
test: async (filePath) => {
|
|
43
|
+
try {
|
|
44
|
+
const content = await readFile(filePath, "utf-8");
|
|
45
|
+
const candidate = JSON.parse(content);
|
|
46
|
+
// Exclude esm type markers
|
|
47
|
+
return Object.keys(candidate).length > 1 || !candidate.type;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
logger.debug("Error during package.json test", {
|
|
51
|
+
error: error instanceof Error ? error.message : error,
|
|
52
|
+
filePath,
|
|
53
|
+
});
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
if (!packageJsonPath) {
|
|
59
|
+
logger.debug(`No package.json found for ${packageName}`, {
|
|
60
|
+
resolvedPath,
|
|
61
|
+
});
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
logger.debug(`Found package.json for ${packageName}`, {
|
|
65
|
+
packageJsonPath,
|
|
66
|
+
});
|
|
67
|
+
// Read and parse the package.json
|
|
68
|
+
const packageJsonContent = await readFile(packageJsonPath, "utf-8");
|
|
69
|
+
const packageJson = JSON.parse(packageJsonContent);
|
|
70
|
+
if (packageJson.name === packageName && packageJson.version) {
|
|
71
|
+
logger.debug(`Detected ${packageName} version`, {
|
|
72
|
+
version: packageJson.version,
|
|
73
|
+
});
|
|
74
|
+
return packageJson.version;
|
|
75
|
+
}
|
|
76
|
+
logger.debug(`Package name mismatch or no version in package.json for ${packageName}`, {
|
|
77
|
+
expectedName: packageName,
|
|
78
|
+
actualName: packageJson.name,
|
|
79
|
+
version: packageJson.version,
|
|
80
|
+
});
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
logger.debug(`Failed to resolve ${packageName}`, {
|
|
85
|
+
error: error instanceof Error ? error.message : error,
|
|
86
|
+
workingDir,
|
|
87
|
+
});
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Loads a Prisma config file using @prisma/config and extracts the schema path and other configuration
|
|
93
|
+
*/
|
|
94
|
+
async function loadPrismaConfig(configFilePath, workingDir, logger) {
|
|
95
|
+
try {
|
|
96
|
+
// Resolve the config file path relative to the working directory
|
|
97
|
+
const resolvedConfigPath = resolve(workingDir, configFilePath);
|
|
98
|
+
logger.debug(`[PrismaExtension] loadPrismaConfig called`, {
|
|
99
|
+
configFilePath,
|
|
100
|
+
resolvedConfigPath,
|
|
101
|
+
workingDir,
|
|
102
|
+
});
|
|
103
|
+
// Check that the config file exists
|
|
104
|
+
if (!existsSync(resolvedConfigPath)) {
|
|
105
|
+
throw new Error(`Prisma config file not found at ${resolvedConfigPath}. Make sure the path is correct: ${configFilePath}, relative to the working dir ${workingDir}`);
|
|
106
|
+
}
|
|
107
|
+
logger.debug(`[PrismaExtension] Config file exists, loading with @prisma/config`);
|
|
108
|
+
// Dynamically import @prisma/config
|
|
109
|
+
const { loadConfigFromFile } = await import("@prisma/config");
|
|
110
|
+
// Load the config using @prisma/config
|
|
111
|
+
const configResult = await loadConfigFromFile({
|
|
112
|
+
configFile: resolvedConfigPath,
|
|
113
|
+
configRoot: workingDir,
|
|
114
|
+
});
|
|
115
|
+
logger.debug(`[PrismaExtension] loadConfigFromFile completed`, {
|
|
116
|
+
hasError: !!configResult.error,
|
|
117
|
+
errorTag: configResult.error?._tag,
|
|
118
|
+
});
|
|
119
|
+
function prettyConfigError(error) {
|
|
120
|
+
switch (error._tag) {
|
|
121
|
+
case "ConfigFileNotFound":
|
|
122
|
+
return `Config file not found at ${resolvedConfigPath}`;
|
|
123
|
+
case "ConfigLoadError":
|
|
124
|
+
return `Config file parse error: ${error.error.message}`;
|
|
125
|
+
case "ConfigFileSyntaxError":
|
|
126
|
+
return `Config file syntax error: ${error.error.message}`;
|
|
127
|
+
default:
|
|
128
|
+
return `Unknown config error: ${String(error.error.message)}`;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (configResult.error) {
|
|
132
|
+
throw new Error(`Failed to load Prisma config from ${resolvedConfigPath}: ${prettyConfigError(configResult.error)}`);
|
|
133
|
+
}
|
|
134
|
+
logger.debug(`[PrismaExtension] Config parsed successfully`, {
|
|
135
|
+
schema: configResult.config.schema,
|
|
136
|
+
migrationsPath: configResult.config.migrations?.path,
|
|
137
|
+
fullMigrations: configResult.config.migrations,
|
|
138
|
+
});
|
|
139
|
+
// Extract the schema path
|
|
140
|
+
if (!configResult.config.schema) {
|
|
141
|
+
throw new Error(`Prisma config file at ${resolvedConfigPath} does not specify a schema path`);
|
|
142
|
+
}
|
|
143
|
+
const result = {
|
|
144
|
+
schema: configResult.config.schema,
|
|
145
|
+
migrationsPath: configResult.config.migrations?.path,
|
|
146
|
+
};
|
|
147
|
+
logger.debug(`[PrismaExtension] Returning config result`, result);
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
logger.debug(`[PrismaExtension] Error loading config`, {
|
|
152
|
+
error: error instanceof Error ? error.message : error,
|
|
153
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
154
|
+
});
|
|
155
|
+
throw new Error(`Failed to load Prisma config from ${configFilePath}: ${error instanceof Error ? error.message : error}`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Prisma build extension for Trigger.dev deployments.
|
|
160
|
+
*
|
|
161
|
+
* **Three modes available:**
|
|
162
|
+
* - `"legacy"` - Prisma 5.x/6.x with `prisma-client-js`, automatic generation
|
|
163
|
+
* - `"engine-only"` - Custom output paths, manual generation control
|
|
164
|
+
* - `"modern"` - Prisma 6.16+/7.x with `prisma-client` provider
|
|
165
|
+
*
|
|
166
|
+
* @example Legacy mode (most common)
|
|
167
|
+
* ```ts
|
|
168
|
+
* prismaExtension({
|
|
169
|
+
* mode: "legacy",
|
|
170
|
+
* schema: "prisma/schema.prisma",
|
|
171
|
+
* migrate: true,
|
|
172
|
+
* typedSql: true,
|
|
173
|
+
* });
|
|
174
|
+
* ```
|
|
175
|
+
*
|
|
176
|
+
* @example Engine-only mode (custom output)
|
|
177
|
+
* ```ts
|
|
178
|
+
* prismaExtension({
|
|
179
|
+
* mode: "engine-only",
|
|
180
|
+
* version: "6.19.0",
|
|
181
|
+
* });
|
|
182
|
+
* ```
|
|
183
|
+
*
|
|
184
|
+
* @example Modern mode (Prisma 7)
|
|
185
|
+
* ```ts
|
|
186
|
+
* prismaExtension({
|
|
187
|
+
* mode: "modern",
|
|
188
|
+
* });
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
7
191
|
export function prismaExtension(options) {
|
|
8
|
-
|
|
192
|
+
switch (options.mode) {
|
|
193
|
+
case "legacy":
|
|
194
|
+
return new PrismaLegacyModeExtension(options);
|
|
195
|
+
case "engine-only":
|
|
196
|
+
return new PrismaEngineOnlyModeExtension(options);
|
|
197
|
+
case "modern":
|
|
198
|
+
return new PrismaEngineModernModeExtension(options);
|
|
199
|
+
default:
|
|
200
|
+
return new PrismaLegacyModeExtension(options);
|
|
201
|
+
}
|
|
9
202
|
}
|
|
10
|
-
export class
|
|
203
|
+
export class PrismaLegacyModeExtension {
|
|
11
204
|
options;
|
|
12
205
|
moduleExternals;
|
|
13
206
|
name = "PrismaExtension";
|
|
14
207
|
_resolvedSchemaPath;
|
|
208
|
+
_loadedConfig;
|
|
15
209
|
constructor(options) {
|
|
16
210
|
this.options = options;
|
|
17
211
|
this.moduleExternals = ["@prisma/client", "@prisma/engines"];
|
|
@@ -26,30 +220,87 @@ export class PrismaExtension {
|
|
|
26
220
|
if (context.target === "dev") {
|
|
27
221
|
return;
|
|
28
222
|
}
|
|
223
|
+
context.logger.debug(`[PrismaExtension] onBuildStart called`, {
|
|
224
|
+
workingDir: context.workingDir,
|
|
225
|
+
options: {
|
|
226
|
+
schema: this.options.schema,
|
|
227
|
+
configFile: this.options.configFile,
|
|
228
|
+
migrate: this.options.migrate,
|
|
229
|
+
version: this.options.version,
|
|
230
|
+
typedSql: this.options.typedSql,
|
|
231
|
+
clientGenerator: this.options.clientGenerator,
|
|
232
|
+
directUrlEnvVarName: this.options.directUrlEnvVarName,
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
// Validate that either schema or configFile is provided, but not both
|
|
236
|
+
if (!this.options.schema && !this.options.configFile) {
|
|
237
|
+
throw new Error(`PrismaExtension requires either 'schema' or 'configFile' to be specified in the options`);
|
|
238
|
+
}
|
|
239
|
+
if (this.options.schema && this.options.configFile) {
|
|
240
|
+
throw new Error(`PrismaExtension cannot have both 'schema' and 'configFile' specified. Please use only one.`);
|
|
241
|
+
}
|
|
242
|
+
let schemaPath;
|
|
243
|
+
// If configFile is specified, load it and extract the schema path
|
|
244
|
+
if (this.options.configFile) {
|
|
245
|
+
context.logger.debug(`[PrismaExtension] Loading Prisma config from ${this.options.configFile}`);
|
|
246
|
+
this._loadedConfig = await loadPrismaConfig(this.options.configFile, context.workingDir, context.logger);
|
|
247
|
+
schemaPath = this._loadedConfig.schema;
|
|
248
|
+
context.logger.debug(`[PrismaExtension] Config loaded successfully`, {
|
|
249
|
+
schema: this._loadedConfig.schema,
|
|
250
|
+
migrationsPath: this._loadedConfig.migrationsPath,
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
schemaPath = this.options.schema;
|
|
255
|
+
context.logger.debug(`[PrismaExtension] Using schema from options: ${schemaPath}`);
|
|
256
|
+
}
|
|
29
257
|
// Resolve the path to the prisma schema, relative to the config.directory
|
|
30
|
-
this._resolvedSchemaPath = resolve(context.workingDir,
|
|
31
|
-
context.logger.debug(`Resolved
|
|
258
|
+
this._resolvedSchemaPath = resolve(context.workingDir, schemaPath);
|
|
259
|
+
context.logger.debug(`[PrismaExtension] Resolved schema path`, {
|
|
260
|
+
schemaPath,
|
|
261
|
+
resolvedSchemaPath: this._resolvedSchemaPath,
|
|
262
|
+
workingDir: context.workingDir,
|
|
263
|
+
});
|
|
32
264
|
// Check that the prisma schema exists
|
|
33
265
|
if (!existsSync(this._resolvedSchemaPath)) {
|
|
34
|
-
throw new Error(`PrismaExtension could not find the prisma schema at ${this._resolvedSchemaPath}. Make sure the path is correct: ${
|
|
266
|
+
throw new Error(`PrismaExtension could not find the prisma schema at ${this._resolvedSchemaPath}. Make sure the path is correct: ${schemaPath}, relative to the working dir ${context.workingDir}`);
|
|
35
267
|
}
|
|
268
|
+
context.logger.debug(`[PrismaExtension] Schema file exists at ${this._resolvedSchemaPath}`);
|
|
36
269
|
}
|
|
37
270
|
async onBuildComplete(context, manifest) {
|
|
38
271
|
if (context.target === "dev") {
|
|
39
272
|
return;
|
|
40
273
|
}
|
|
274
|
+
context.logger.debug(`[PrismaExtension] onBuildComplete called`);
|
|
41
275
|
assert(this._resolvedSchemaPath, "Resolved schema path is not set");
|
|
42
|
-
context.logger.debug(
|
|
276
|
+
context.logger.debug(`[PrismaExtension] Looking for @prisma/client in the externals`, {
|
|
43
277
|
externals: manifest.externals,
|
|
44
278
|
});
|
|
45
279
|
const prismaExternal = manifest.externals?.find((external) => external.name === "@prisma/client");
|
|
46
|
-
|
|
280
|
+
let version = prismaExternal?.version ?? this.options.version;
|
|
281
|
+
// If we couldn't find the version in externals or options, try to resolve it from the filesystem
|
|
282
|
+
if (!version) {
|
|
283
|
+
context.logger.debug(`[PrismaExtension] Version not found in externals, attempting to detect from filesystem`);
|
|
284
|
+
version = await resolvePrismaClientVersion(context.workingDir, context.logger);
|
|
285
|
+
if (version) {
|
|
286
|
+
context.logger.debug(`[PrismaExtension] Detected version from filesystem: ${version}`);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
47
289
|
if (!version) {
|
|
48
290
|
throw new Error(`PrismaExtension could not determine the version of @prisma/client. It's possible that the @prisma/client was not used in the project. If this isn't the case, please provide a version in the PrismaExtension options.`);
|
|
49
291
|
}
|
|
50
|
-
context.logger.debug(`PrismaExtension
|
|
51
|
-
|
|
52
|
-
|
|
292
|
+
context.logger.debug(`[PrismaExtension] Using Prisma version ${version}`, {
|
|
293
|
+
source: prismaExternal ? "externals" : this.options.version ? "options" : "filesystem",
|
|
294
|
+
});
|
|
295
|
+
// Detect if this is a multi-file schema (directory) or single file schema
|
|
296
|
+
const isMultiFileSchema = statSync(this._resolvedSchemaPath).isDirectory();
|
|
297
|
+
const usingSchemaFolder = !isMultiFileSchema && dirname(this._resolvedSchemaPath).endsWith("schema");
|
|
298
|
+
context.logger.debug(`Schema detection`, {
|
|
299
|
+
isMultiFileSchema,
|
|
300
|
+
usingSchemaFolder,
|
|
301
|
+
resolvedSchemaPath: this._resolvedSchemaPath,
|
|
302
|
+
});
|
|
303
|
+
let commands = [];
|
|
53
304
|
let prismaDir;
|
|
54
305
|
const generatorFlags = [];
|
|
55
306
|
if (this.options.clientGenerator) {
|
|
@@ -57,24 +308,57 @@ export class PrismaExtension {
|
|
|
57
308
|
}
|
|
58
309
|
if (this.options.typedSql) {
|
|
59
310
|
generatorFlags.push(`--sql`);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
311
|
+
// Determine the prisma directory based on the schema structure
|
|
312
|
+
let prismaDirForSql;
|
|
313
|
+
if (isMultiFileSchema) {
|
|
314
|
+
// For multi-file schemas, the resolved path IS the prisma directory
|
|
315
|
+
prismaDirForSql = this._resolvedSchemaPath;
|
|
316
|
+
}
|
|
317
|
+
else if (usingSchemaFolder) {
|
|
318
|
+
// For schema folders (e.g., prisma/schema/*.prisma), go up two levels
|
|
319
|
+
prismaDirForSql = dirname(dirname(this._resolvedSchemaPath));
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
// For single file schemas (e.g., prisma/schema.prisma), go up one level
|
|
323
|
+
prismaDirForSql = dirname(this._resolvedSchemaPath);
|
|
324
|
+
}
|
|
325
|
+
context.logger.debug(`Using typedSql`, {
|
|
326
|
+
prismaDirForSql,
|
|
327
|
+
});
|
|
64
328
|
// Find all the files prisma/sql/*.sql
|
|
65
|
-
const sqlFiles = await readdir(join(
|
|
329
|
+
const sqlFiles = await readdir(join(prismaDirForSql, "sql")).then((files) => files.filter((file) => file.endsWith(".sql")));
|
|
66
330
|
context.logger.debug(`Found sql files`, {
|
|
67
331
|
sqlFiles,
|
|
68
332
|
});
|
|
69
333
|
const sqlDestinationPath = join(manifest.outputPath, "prisma", "sql");
|
|
70
334
|
for (const file of sqlFiles) {
|
|
71
335
|
const destination = join(sqlDestinationPath, file);
|
|
72
|
-
const source = join(
|
|
336
|
+
const source = join(prismaDirForSql, "sql", file);
|
|
73
337
|
context.logger.debug(`Copying the sql from ${source} to ${destination}`);
|
|
74
338
|
await cp(source, destination);
|
|
75
339
|
}
|
|
76
340
|
}
|
|
77
|
-
if (
|
|
341
|
+
if (isMultiFileSchema) {
|
|
342
|
+
// For multi-file schemas, the resolved path IS the prisma directory
|
|
343
|
+
prismaDir = this._resolvedSchemaPath;
|
|
344
|
+
context.logger.debug(`Using multi-file schema directory: ${prismaDir}`);
|
|
345
|
+
// Copy the entire prisma directory to the build output path
|
|
346
|
+
const prismaDestinationPath = join(manifest.outputPath, "prisma");
|
|
347
|
+
context.logger.debug(`Copying the prisma directory from ${prismaDir} to ${prismaDestinationPath}`);
|
|
348
|
+
const prismaDirForFilter = prismaDir;
|
|
349
|
+
await cp(prismaDir, prismaDestinationPath, {
|
|
350
|
+
recursive: true,
|
|
351
|
+
// Filter out migrations and sql directories as they're handled separately if needed
|
|
352
|
+
filter: (source) => {
|
|
353
|
+
const relativePath = source.replace(prismaDirForFilter, "");
|
|
354
|
+
// Skip migrations and sql directories during initial copy
|
|
355
|
+
return !relativePath.startsWith("/migrations") && !relativePath.startsWith("/sql");
|
|
356
|
+
},
|
|
357
|
+
});
|
|
358
|
+
commands.push(`${binaryForRuntime(manifest.runtime)} node_modules/prisma/build/index.js generate ${generatorFlags.join(" ")}` // Don't add the --schema flag when using directory
|
|
359
|
+
);
|
|
360
|
+
}
|
|
361
|
+
else if (usingSchemaFolder) {
|
|
78
362
|
const schemaDir = dirname(this._resolvedSchemaPath);
|
|
79
363
|
prismaDir = dirname(schemaDir);
|
|
80
364
|
context.logger.debug(`Using the schema folder: ${schemaDir}`);
|
|
@@ -107,15 +391,56 @@ export class PrismaExtension {
|
|
|
107
391
|
commands.push(`${binaryForRuntime(manifest.runtime)} node_modules/prisma/build/index.js generate --schema=./prisma/schema.prisma ${generatorFlags.join(" ")}`);
|
|
108
392
|
}
|
|
109
393
|
const env = {};
|
|
394
|
+
context.logger.debug(`[PrismaExtension] Checking if migrations are enabled`, {
|
|
395
|
+
migrate: this.options.migrate,
|
|
396
|
+
loadedConfigMigrationsPath: this._loadedConfig?.migrationsPath,
|
|
397
|
+
prismaDir,
|
|
398
|
+
});
|
|
110
399
|
if (this.options.migrate) {
|
|
111
|
-
|
|
112
|
-
|
|
400
|
+
context.logger.debug(`[PrismaExtension] Migrations enabled, determining migrations directory`);
|
|
401
|
+
// Determine the migrations directory path
|
|
402
|
+
let migrationsDir;
|
|
403
|
+
if (this._loadedConfig?.migrationsPath) {
|
|
404
|
+
// Use the migrations path from the config file
|
|
405
|
+
migrationsDir = resolve(context.workingDir, this._loadedConfig.migrationsPath);
|
|
406
|
+
context.logger.debug(`[PrismaExtension] Using migrations path from config`, {
|
|
407
|
+
configMigrationsPath: this._loadedConfig.migrationsPath,
|
|
408
|
+
resolvedMigrationsDir: migrationsDir,
|
|
409
|
+
workingDir: context.workingDir,
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
else {
|
|
413
|
+
// Fall back to the default migrations directory
|
|
414
|
+
migrationsDir = join(prismaDir, "migrations");
|
|
415
|
+
context.logger.debug(`[PrismaExtension] Using default migrations path`, {
|
|
416
|
+
prismaDir,
|
|
417
|
+
migrationsDir,
|
|
418
|
+
});
|
|
419
|
+
}
|
|
113
420
|
const migrationsDestinationPath = join(manifest.outputPath, "prisma", "migrations");
|
|
114
|
-
context.logger.debug(`
|
|
115
|
-
|
|
116
|
-
|
|
421
|
+
context.logger.debug(`[PrismaExtension] Checking if migrations directory exists`, {
|
|
422
|
+
migrationsDir,
|
|
423
|
+
exists: existsSync(migrationsDir),
|
|
424
|
+
});
|
|
425
|
+
if (!existsSync(migrationsDir)) {
|
|
426
|
+
context.logger.warn(`[PrismaExtension] Migrations directory not found at ${migrationsDir}. Skipping migrations copy.`);
|
|
427
|
+
}
|
|
428
|
+
else {
|
|
429
|
+
context.logger.debug(`[PrismaExtension] Copying prisma migrations from ${migrationsDir} to ${migrationsDestinationPath}`);
|
|
430
|
+
await cp(migrationsDir, migrationsDestinationPath, { recursive: true });
|
|
431
|
+
context.logger.debug(`[PrismaExtension] Migrations copied successfully`);
|
|
432
|
+
commands = [
|
|
433
|
+
`${binaryForRuntime(manifest.runtime)} node_modules/prisma/build/index.js migrate deploy`,
|
|
434
|
+
...commands,
|
|
435
|
+
];
|
|
436
|
+
context.logger.debug(`[PrismaExtension] Added migrate deploy command to commands array`);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
else {
|
|
440
|
+
context.logger.debug(`[PrismaExtension] Migrations not enabled (migrate: ${this.options.migrate})`);
|
|
117
441
|
}
|
|
118
442
|
env.DATABASE_URL = manifest.deploy.env?.DATABASE_URL;
|
|
443
|
+
// Handle directUrl environment variable configuration
|
|
119
444
|
if (this.options.directUrlEnvVarName) {
|
|
120
445
|
env[this.options.directUrlEnvVarName] =
|
|
121
446
|
manifest.deploy.env?.[this.options.directUrlEnvVarName] ??
|
|
@@ -131,13 +456,17 @@ export class PrismaExtension {
|
|
|
131
456
|
if (!env.DATABASE_URL) {
|
|
132
457
|
context.logger.warn(`prismaExtension could not resolve the DATABASE_URL environment variable. Make sure you add it to your environment variables. See our docs for more info: https://trigger.dev/docs/deploy-environment-variables`);
|
|
133
458
|
}
|
|
134
|
-
context.logger.debug(`
|
|
459
|
+
context.logger.debug(`[PrismaExtension] Final layer configuration`, {
|
|
135
460
|
commands,
|
|
136
|
-
|
|
461
|
+
commandsCount: commands.length,
|
|
462
|
+
env: Object.keys(env),
|
|
137
463
|
dependencies: {
|
|
138
464
|
prisma: version,
|
|
139
465
|
},
|
|
140
466
|
});
|
|
467
|
+
context.logger.debug(`[PrismaExtension] Commands to be executed:`, {
|
|
468
|
+
commands: commands.map((cmd, idx) => `${idx + 1}. ${cmd}`),
|
|
469
|
+
});
|
|
141
470
|
context.addLayer({
|
|
142
471
|
id: "prisma",
|
|
143
472
|
commands,
|
|
@@ -148,6 +477,74 @@ export class PrismaExtension {
|
|
|
148
477
|
env,
|
|
149
478
|
},
|
|
150
479
|
});
|
|
480
|
+
context.logger.debug(`[PrismaExtension] Layer added successfully`);
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
export class PrismaEngineOnlyModeExtension {
|
|
484
|
+
options;
|
|
485
|
+
name = "PrismaEngineOnlyModeExtension";
|
|
486
|
+
_binaryTarget;
|
|
487
|
+
constructor(options) {
|
|
488
|
+
this.options = options;
|
|
489
|
+
this._binaryTarget = options.binaryTarget ?? "debian-openssl-3.0.x";
|
|
490
|
+
}
|
|
491
|
+
async onBuildComplete(context, manifest) {
|
|
492
|
+
if (context.target === "dev") {
|
|
493
|
+
return;
|
|
494
|
+
}
|
|
495
|
+
// Try to detect the version if not provided
|
|
496
|
+
let version = this.options.version;
|
|
497
|
+
if (!version) {
|
|
498
|
+
context.logger.debug("Attempting to detect @prisma/client version from the project");
|
|
499
|
+
version = await resolvePrismaClientVersion(context.workingDir, context.logger);
|
|
500
|
+
if (version) {
|
|
501
|
+
// Log a nice message to the user which version was detected, and give them instructions on how to override it
|
|
502
|
+
context.logger.progress(`prismaExtension: detected prisma ${version}. Override via prismaExtension({ mode: "engine-only", version: "6.19.0" })`);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
if (!version) {
|
|
506
|
+
throw new Error(`PrismaEngineOnlyModeExtension could not determine the version of @prisma/client. Please provide a version in the PrismaExtension options: prismaExtension({ mode: "engine-only", version: "6.19.0" })`);
|
|
507
|
+
}
|
|
508
|
+
context.logger.debug(`PrismaEngineOnlyModeExtension is installing engines for version ${version}`);
|
|
509
|
+
const commands = [
|
|
510
|
+
// Install the engines package
|
|
511
|
+
`npm install @prisma/engines@${version}`,
|
|
512
|
+
...generateCpCommandsForLocation("/app/prisma-engines", this._binaryTarget),
|
|
513
|
+
];
|
|
514
|
+
context.addLayer({
|
|
515
|
+
id: "prisma-engines",
|
|
516
|
+
commands,
|
|
517
|
+
deploy: {
|
|
518
|
+
env: {
|
|
519
|
+
PRISMA_QUERY_ENGINE_LIBRARY: `/app/prisma-engines/libquery_engine-${this._binaryTarget}.so.node`,
|
|
520
|
+
PRISMA_QUERY_ENGINE_SCHEMA_ENGINE: `/app/prisma-engines/schema-engine-${this._binaryTarget}`,
|
|
521
|
+
},
|
|
522
|
+
},
|
|
523
|
+
});
|
|
524
|
+
if (!this.options.silent) {
|
|
525
|
+
context.logger.progress("prismaExtension: setting PRISMA_QUERY_ENGINE_LIBRARY and PRISMA_QUERY_ENGINE_SCHEMA_ENGINE env variables");
|
|
526
|
+
// Now logs output a pretty message to the user that they need to make sure they have already run `prisma generate` and they also have added
|
|
527
|
+
// the binary target to the prisma schema file like so: binaryTargets = ["native", "debian-openssl-3.0.x"]
|
|
528
|
+
context.logger.progress(`prismaExtension: in engine-only mode you are required to run \`prisma generate\` and ensure your schema.prisma file has binaryTargets = ["native", "${this._binaryTarget}"]`);
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
function generateCpCommandsForLocation(location, binaryTarget) {
|
|
533
|
+
return [
|
|
534
|
+
`mkdir -p ${location} && cp node_modules/@prisma/engines/libquery_engine-${binaryTarget}.so.node ${location}/`,
|
|
535
|
+
`mkdir -p ${location} && cp node_modules/@prisma/engines/schema-engine-${binaryTarget} ${location}/`,
|
|
536
|
+
];
|
|
537
|
+
}
|
|
538
|
+
export class PrismaEngineModernModeExtension {
|
|
539
|
+
options;
|
|
540
|
+
moduleExternals;
|
|
541
|
+
name = "PrismaEngineModernModeExtension";
|
|
542
|
+
constructor(options) {
|
|
543
|
+
this.options = options;
|
|
544
|
+
this.moduleExternals = ["@prisma/client"];
|
|
545
|
+
}
|
|
546
|
+
externalsForTarget(target) {
|
|
547
|
+
return this.moduleExternals;
|
|
151
548
|
}
|
|
152
549
|
}
|
|
153
550
|
//# sourceMappingURL=prisma.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../../src/extensions/prisma.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prisma.js","sourceRoot":"","sources":["../../../src/extensions/prisma.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mlly.js","sourceRoot":"","sources":["../../../src/imports/mlly.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEvC,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/esm/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "4.1.
|
|
1
|
+
export const VERSION = "4.1.2";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trigger.dev/build",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.2",
|
|
4
4
|
"description": "trigger.dev build extensions",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -69,17 +69,21 @@
|
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@
|
|
72
|
+
"@prisma/config": "^6.10.0",
|
|
73
|
+
"@trigger.dev/core": "4.1.2",
|
|
74
|
+
"mlly": "^1.7.1",
|
|
73
75
|
"pkg-types": "^1.1.3",
|
|
76
|
+
"resolve": "^1.22.8",
|
|
74
77
|
"tinyglobby": "^0.2.2",
|
|
75
78
|
"tsconfck": "3.1.3"
|
|
76
79
|
},
|
|
77
80
|
"devDependencies": {
|
|
81
|
+
"@arethetypeswrong/cli": "^0.15.4",
|
|
82
|
+
"@types/resolve": "^1.20.6",
|
|
83
|
+
"esbuild": "^0.23.0",
|
|
78
84
|
"rimraf": "6.0.1",
|
|
79
85
|
"tshy": "^3.0.2",
|
|
80
|
-
"tsx": "4.17.0"
|
|
81
|
-
"esbuild": "^0.23.0",
|
|
82
|
-
"@arethetypeswrong/cli": "^0.15.4"
|
|
86
|
+
"tsx": "4.17.0"
|
|
83
87
|
},
|
|
84
88
|
"engines": {
|
|
85
89
|
"node": ">=18.20.0"
|