trigger.dev 3.0.0-beta.24 → 3.0.0-beta.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/Containerfile.prod
CHANGED
package/dist/index.js
CHANGED
|
@@ -799,7 +799,7 @@ import invariant from "tiny-invariant";
|
|
|
799
799
|
import { z as z4 } from "zod";
|
|
800
800
|
|
|
801
801
|
// package.json
|
|
802
|
-
var version = "3.0.0-beta.
|
|
802
|
+
var version = "3.0.0-beta.26";
|
|
803
803
|
var dependencies = {
|
|
804
804
|
"@anatine/esbuild-decorators": "^0.2.19",
|
|
805
805
|
"@clack/prompts": "^0.7.0",
|
|
@@ -816,7 +816,7 @@ var dependencies = {
|
|
|
816
816
|
"@opentelemetry/sdk-trace-base": "^1.22.0",
|
|
817
817
|
"@opentelemetry/sdk-trace-node": "^1.22.0",
|
|
818
818
|
"@opentelemetry/semantic-conventions": "^1.22.0",
|
|
819
|
-
"@trigger.dev/core": "workspace:3.0.0-beta.
|
|
819
|
+
"@trigger.dev/core": "workspace:3.0.0-beta.26",
|
|
820
820
|
"@types/degit": "^2.8.3",
|
|
821
821
|
chalk: "^5.2.0",
|
|
822
822
|
chokidar: "^3.5.3",
|
|
@@ -2864,6 +2864,32 @@ import { Glob } from "glob";
|
|
|
2864
2864
|
import { readFileSync } from "node:fs";
|
|
2865
2865
|
import { extname, isAbsolute } from "node:path";
|
|
2866
2866
|
import tsConfigPaths from "tsconfig-paths";
|
|
2867
|
+
function mockServerOnlyPlugin() {
|
|
2868
|
+
return {
|
|
2869
|
+
name: "trigger-mock-server-only",
|
|
2870
|
+
setup(build3) {
|
|
2871
|
+
build3.onResolve({ filter: /server-only/ }, (args) => {
|
|
2872
|
+
if (args.path !== "server-only") {
|
|
2873
|
+
return void 0;
|
|
2874
|
+
}
|
|
2875
|
+
logger.debug(`[trigger-mock-server-only] Bundling ${args.path}`, {
|
|
2876
|
+
...args
|
|
2877
|
+
});
|
|
2878
|
+
return {
|
|
2879
|
+
path: args.path,
|
|
2880
|
+
external: false,
|
|
2881
|
+
namespace: "server-only-mock"
|
|
2882
|
+
};
|
|
2883
|
+
});
|
|
2884
|
+
build3.onLoad({ filter: /server-only/, namespace: "server-only-mock" }, (args) => {
|
|
2885
|
+
return {
|
|
2886
|
+
contents: `export default true;`,
|
|
2887
|
+
loader: "js"
|
|
2888
|
+
};
|
|
2889
|
+
});
|
|
2890
|
+
}
|
|
2891
|
+
};
|
|
2892
|
+
}
|
|
2867
2893
|
function bundleTriggerDevCore(buildIdentifier, tsconfigPath) {
|
|
2868
2894
|
return {
|
|
2869
2895
|
name: "trigger-bundle-core",
|
|
@@ -3254,47 +3280,7 @@ function assertExhaustive(x) {
|
|
|
3254
3280
|
}
|
|
3255
3281
|
|
|
3256
3282
|
// src/utilities/javascriptProject.ts
|
|
3257
|
-
|
|
3258
|
-
"assert",
|
|
3259
|
-
"async_hooks",
|
|
3260
|
-
"buffer",
|
|
3261
|
-
"child_process",
|
|
3262
|
-
"cluster",
|
|
3263
|
-
"console",
|
|
3264
|
-
"constants",
|
|
3265
|
-
"crypto",
|
|
3266
|
-
"dgram",
|
|
3267
|
-
"dns",
|
|
3268
|
-
"domain",
|
|
3269
|
-
"events",
|
|
3270
|
-
"fs",
|
|
3271
|
-
"http",
|
|
3272
|
-
"http2",
|
|
3273
|
-
"https",
|
|
3274
|
-
"inspector",
|
|
3275
|
-
"module",
|
|
3276
|
-
"net",
|
|
3277
|
-
"os",
|
|
3278
|
-
"path",
|
|
3279
|
-
"perf_hooks",
|
|
3280
|
-
"process",
|
|
3281
|
-
"punycode",
|
|
3282
|
-
"querystring",
|
|
3283
|
-
"readline",
|
|
3284
|
-
"repl",
|
|
3285
|
-
"stream",
|
|
3286
|
-
"string_decoder",
|
|
3287
|
-
"timers",
|
|
3288
|
-
"tls",
|
|
3289
|
-
"trace_events",
|
|
3290
|
-
"tty",
|
|
3291
|
-
"url",
|
|
3292
|
-
"util",
|
|
3293
|
-
"v8",
|
|
3294
|
-
"vm",
|
|
3295
|
-
"worker_threads",
|
|
3296
|
-
"zlib"
|
|
3297
|
-
]);
|
|
3283
|
+
import { builtinModules } from "node:module";
|
|
3298
3284
|
var JavascriptProject = class {
|
|
3299
3285
|
constructor(projectPath) {
|
|
3300
3286
|
this.projectPath = projectPath;
|
|
@@ -3324,29 +3310,76 @@ var JavascriptProject = class {
|
|
|
3324
3310
|
});
|
|
3325
3311
|
}
|
|
3326
3312
|
}
|
|
3313
|
+
async resolveAll(packageNames, options) {
|
|
3314
|
+
const externalPackages = packageNames.filter((packageName) => !isBuiltInModule(packageName));
|
|
3315
|
+
const opts = { allowDev: false, ...options };
|
|
3316
|
+
const command = await this.#getCommand();
|
|
3317
|
+
try {
|
|
3318
|
+
const versions = await command.resolveDependencyVersions(externalPackages, {
|
|
3319
|
+
cwd: this.projectPath
|
|
3320
|
+
});
|
|
3321
|
+
if (versions) {
|
|
3322
|
+
logger.debug(`Resolved [${externalPackages.join(", ")}] version using ${command.name}`, {
|
|
3323
|
+
versions
|
|
3324
|
+
});
|
|
3325
|
+
}
|
|
3326
|
+
const missingPackages = externalPackages.filter((packageName) => !versions[packageName]);
|
|
3327
|
+
const missingPackageVersions = {};
|
|
3328
|
+
for (const packageName of missingPackages) {
|
|
3329
|
+
const packageJsonVersion = this.packageJson.dependencies?.[packageName];
|
|
3330
|
+
if (typeof packageJsonVersion === "string") {
|
|
3331
|
+
logger.debug(`Resolved ${packageName} version using package.json`, {
|
|
3332
|
+
packageJsonVersion
|
|
3333
|
+
});
|
|
3334
|
+
missingPackageVersions[packageName] = packageJsonVersion;
|
|
3335
|
+
}
|
|
3336
|
+
if (opts.allowDev) {
|
|
3337
|
+
const devPackageJsonVersion = this.packageJson.devDependencies?.[packageName];
|
|
3338
|
+
if (typeof devPackageJsonVersion === "string") {
|
|
3339
|
+
logger.debug(`Resolved ${packageName} version using devDependencies`, {
|
|
3340
|
+
devPackageJsonVersion
|
|
3341
|
+
});
|
|
3342
|
+
missingPackageVersions[packageName] = devPackageJsonVersion;
|
|
3343
|
+
}
|
|
3344
|
+
}
|
|
3345
|
+
}
|
|
3346
|
+
return { ...versions, ...missingPackageVersions };
|
|
3347
|
+
} catch (error) {
|
|
3348
|
+
logger.debug(`Failed to resolve dependency versions using ${command.name}`, {
|
|
3349
|
+
packageNames,
|
|
3350
|
+
error
|
|
3351
|
+
});
|
|
3352
|
+
return {};
|
|
3353
|
+
}
|
|
3354
|
+
}
|
|
3327
3355
|
async resolve(packageName, options) {
|
|
3328
|
-
if (
|
|
3356
|
+
if (isBuiltInModule(packageName)) {
|
|
3329
3357
|
return void 0;
|
|
3330
3358
|
}
|
|
3331
3359
|
const opts = { allowDev: false, ...options };
|
|
3332
|
-
const packageJsonVersion = this.packageJson.dependencies?.[packageName];
|
|
3333
|
-
if (typeof packageJsonVersion === "string") {
|
|
3334
|
-
return packageJsonVersion;
|
|
3335
|
-
}
|
|
3336
|
-
if (opts.allowDev) {
|
|
3337
|
-
const devPackageJsonVersion = this.packageJson.devDependencies?.[packageName];
|
|
3338
|
-
if (typeof devPackageJsonVersion === "string") {
|
|
3339
|
-
return devPackageJsonVersion;
|
|
3340
|
-
}
|
|
3341
|
-
}
|
|
3342
3360
|
const command = await this.#getCommand();
|
|
3343
3361
|
try {
|
|
3344
3362
|
const version2 = await command.resolveDependencyVersion(packageName, {
|
|
3345
3363
|
cwd: this.projectPath
|
|
3346
3364
|
});
|
|
3347
3365
|
if (version2) {
|
|
3366
|
+
logger.debug(`Resolved ${packageName} version using ${command.name}`, { version: version2 });
|
|
3348
3367
|
return version2;
|
|
3349
3368
|
}
|
|
3369
|
+
const packageJsonVersion = this.packageJson.dependencies?.[packageName];
|
|
3370
|
+
if (typeof packageJsonVersion === "string") {
|
|
3371
|
+
logger.debug(`Resolved ${packageName} version using package.json`, { packageJsonVersion });
|
|
3372
|
+
return packageJsonVersion;
|
|
3373
|
+
}
|
|
3374
|
+
if (opts.allowDev) {
|
|
3375
|
+
const devPackageJsonVersion = this.packageJson.devDependencies?.[packageName];
|
|
3376
|
+
if (typeof devPackageJsonVersion === "string") {
|
|
3377
|
+
logger.debug(`Resolved ${packageName} version using devDependencies`, {
|
|
3378
|
+
devPackageJsonVersion
|
|
3379
|
+
});
|
|
3380
|
+
return devPackageJsonVersion;
|
|
3381
|
+
}
|
|
3382
|
+
}
|
|
3350
3383
|
} catch (error) {
|
|
3351
3384
|
logger.debug(`Failed to resolve dependency version using ${command.name}`, {
|
|
3352
3385
|
packageName,
|
|
@@ -3388,7 +3421,7 @@ var PNPMCommands = class {
|
|
|
3388
3421
|
async resolveDependencyVersion(packageName, options) {
|
|
3389
3422
|
const { stdout } = await $({ cwd: options.cwd })`${this.cmd} list ${packageName} -r --json`;
|
|
3390
3423
|
const result = JSON.parse(stdout);
|
|
3391
|
-
logger.debug(`Resolving ${packageName} version using ${this.name}
|
|
3424
|
+
logger.debug(`Resolving ${packageName} version using ${this.name}`);
|
|
3392
3425
|
for (const dep of result) {
|
|
3393
3426
|
const dependency = dep.dependencies?.[packageName];
|
|
3394
3427
|
if (dependency) {
|
|
@@ -3396,6 +3429,21 @@ var PNPMCommands = class {
|
|
|
3396
3429
|
}
|
|
3397
3430
|
}
|
|
3398
3431
|
}
|
|
3432
|
+
async resolveDependencyVersions(packageNames, options) {
|
|
3433
|
+
const { stdout } = await $({ cwd: options.cwd })`${this.cmd} list ${packageNames} -r --json`;
|
|
3434
|
+
const result = JSON.parse(stdout);
|
|
3435
|
+
logger.debug(`Resolving ${packageNames.join(" ")} version using ${this.name}`);
|
|
3436
|
+
const results = {};
|
|
3437
|
+
for (const dep of result) {
|
|
3438
|
+
for (const packageName of packageNames) {
|
|
3439
|
+
const dependency = dep.dependencies?.[packageName];
|
|
3440
|
+
if (dependency) {
|
|
3441
|
+
results[packageName] = dependency.version;
|
|
3442
|
+
}
|
|
3443
|
+
}
|
|
3444
|
+
}
|
|
3445
|
+
return results;
|
|
3446
|
+
}
|
|
3399
3447
|
};
|
|
3400
3448
|
var NPMCommands = class {
|
|
3401
3449
|
get name() {
|
|
@@ -3414,6 +3462,19 @@ var NPMCommands = class {
|
|
|
3414
3462
|
logger.debug(`Resolving ${packageName} version using ${this.name}`, { output });
|
|
3415
3463
|
return this.#recursivelySearchDependencies(output.dependencies, packageName);
|
|
3416
3464
|
}
|
|
3465
|
+
async resolveDependencyVersions(packageNames, options) {
|
|
3466
|
+
const { stdout } = await $({ cwd: options.cwd })`${this.cmd} list ${packageNames} --json`;
|
|
3467
|
+
const output = JSON.parse(stdout);
|
|
3468
|
+
logger.debug(`Resolving ${packageNames.join(" ")} version using ${this.name}`, { output });
|
|
3469
|
+
const results = {};
|
|
3470
|
+
for (const packageName of packageNames) {
|
|
3471
|
+
const version2 = this.#recursivelySearchDependencies(output.dependencies, packageName);
|
|
3472
|
+
if (version2) {
|
|
3473
|
+
results[packageName] = version2;
|
|
3474
|
+
}
|
|
3475
|
+
}
|
|
3476
|
+
return results;
|
|
3477
|
+
}
|
|
3417
3478
|
#recursivelySearchDependencies(dependencies2, packageName) {
|
|
3418
3479
|
for (const [name, dependency] of Object.entries(dependencies2)) {
|
|
3419
3480
|
if (name === packageName) {
|
|
@@ -3442,7 +3503,7 @@ var YarnCommands = class {
|
|
|
3442
3503
|
async resolveDependencyVersion(packageName, options) {
|
|
3443
3504
|
const { stdout } = await $({ cwd: options.cwd })`${this.cmd} info ${packageName} --json`;
|
|
3444
3505
|
const lines = stdout.split("\n");
|
|
3445
|
-
logger.debug(`Resolving ${packageName} version using ${this.name}
|
|
3506
|
+
logger.debug(`Resolving ${packageName} version using ${this.name}`);
|
|
3446
3507
|
for (const line of lines) {
|
|
3447
3508
|
const json = JSON.parse(line);
|
|
3448
3509
|
if (json.value === packageName) {
|
|
@@ -3450,7 +3511,38 @@ var YarnCommands = class {
|
|
|
3450
3511
|
}
|
|
3451
3512
|
}
|
|
3452
3513
|
}
|
|
3514
|
+
async resolveDependencyVersions(packageNames, options) {
|
|
3515
|
+
const { stdout } = await $({ cwd: options.cwd })`${this.cmd} info ${packageNames} --json`;
|
|
3516
|
+
const lines = stdout.split("\n");
|
|
3517
|
+
logger.debug(`Resolving ${packageNames.join(" ")} version using ${this.name}`);
|
|
3518
|
+
const results = {};
|
|
3519
|
+
for (const line of lines) {
|
|
3520
|
+
const json = JSON.parse(line);
|
|
3521
|
+
const packageName = this.#parseYarnValueIntoPackageName(json.value);
|
|
3522
|
+
if (packageNames.includes(packageName)) {
|
|
3523
|
+
results[packageName] = json.children.Version;
|
|
3524
|
+
}
|
|
3525
|
+
}
|
|
3526
|
+
return results;
|
|
3527
|
+
}
|
|
3528
|
+
// The "value" when doing yarn info is formatted like this:
|
|
3529
|
+
// "package-name@npm:version" or "package-name@workspace:version"
|
|
3530
|
+
// This function will parse the value into just the package name.
|
|
3531
|
+
// This correctly handles scoped packages as well e.g. @scope/package-name@npm:version
|
|
3532
|
+
#parseYarnValueIntoPackageName(value) {
|
|
3533
|
+
const parts = value.split("@");
|
|
3534
|
+
if (parts.length === 3) {
|
|
3535
|
+
return parts[1];
|
|
3536
|
+
}
|
|
3537
|
+
return parts[0];
|
|
3538
|
+
}
|
|
3453
3539
|
};
|
|
3540
|
+
function isBuiltInModule(module) {
|
|
3541
|
+
if (module.startsWith("node:")) {
|
|
3542
|
+
return true;
|
|
3543
|
+
}
|
|
3544
|
+
return builtinModules.includes(module);
|
|
3545
|
+
}
|
|
3454
3546
|
|
|
3455
3547
|
// src/utilities/resolveInternalFilePath.ts
|
|
3456
3548
|
import path5 from "path";
|
|
@@ -4451,6 +4543,7 @@ async function compileProject(config, options, configPath) {
|
|
|
4451
4543
|
__PROJECT_CONFIG__: JSON.stringify(config)
|
|
4452
4544
|
},
|
|
4453
4545
|
plugins: [
|
|
4546
|
+
mockServerOnlyPlugin(),
|
|
4454
4547
|
bundleDependenciesPlugin(
|
|
4455
4548
|
"workerFacade",
|
|
4456
4549
|
config.dependenciesToBundle,
|
|
@@ -4556,6 +4649,7 @@ async function compileProject(config, options, configPath) {
|
|
|
4556
4649
|
const allImports = [...metaOutput.imports, ...entryPointMetaOutput.imports];
|
|
4557
4650
|
const javascriptProject = new JavascriptProject(config.projectDir);
|
|
4558
4651
|
const dependencies2 = await gatherRequiredDependencies(allImports, config, javascriptProject);
|
|
4652
|
+
logger.debug("gatherRequiredDependencies()", { dependencies: dependencies2 });
|
|
4559
4653
|
const packageJsonContents = {
|
|
4560
4654
|
name: "trigger-worker",
|
|
4561
4655
|
version: "0.0.0",
|
|
@@ -4592,7 +4686,16 @@ If this is unexpected you should check your ${terminalLink2(
|
|
|
4592
4686
|
throw new SkipLoggingError("Failed to resolve dependencies");
|
|
4593
4687
|
}
|
|
4594
4688
|
const containerFilePath = join6(cliRootPath(), "Containerfile.prod");
|
|
4595
|
-
|
|
4689
|
+
let containerFileContents = readFileSync2(containerFilePath, "utf-8");
|
|
4690
|
+
if (config.postInstall) {
|
|
4691
|
+
containerFileContents = containerFileContents.replace(
|
|
4692
|
+
"__POST_INSTALL__",
|
|
4693
|
+
`RUN ${config.postInstall}`
|
|
4694
|
+
);
|
|
4695
|
+
} else {
|
|
4696
|
+
containerFileContents = containerFileContents.replace("__POST_INSTALL__", "");
|
|
4697
|
+
}
|
|
4698
|
+
await writeFile2(join6(tempDir, "Containerfile"), containerFileContents);
|
|
4596
4699
|
const contentHasher = createHash("sha256");
|
|
4597
4700
|
contentHasher.update(Buffer.from(entryPointOutputFile.text));
|
|
4598
4701
|
contentHasher.update(Buffer.from(workerOutputFile.text));
|
|
@@ -4733,24 +4836,30 @@ async function typecheckProject(config, options) {
|
|
|
4733
4836
|
}
|
|
4734
4837
|
async function gatherRequiredDependencies(imports, config, project) {
|
|
4735
4838
|
const dependencies2 = {};
|
|
4839
|
+
const resolvablePackageNames = /* @__PURE__ */ new Set();
|
|
4736
4840
|
for (const file of imports) {
|
|
4737
4841
|
if (file.kind !== "require-call" && file.kind !== "dynamic-import" || !file.external) {
|
|
4738
4842
|
continue;
|
|
4739
4843
|
}
|
|
4740
4844
|
const packageName = detectPackageNameFromImportPath(file.path);
|
|
4741
|
-
if (
|
|
4742
|
-
continue;
|
|
4743
|
-
}
|
|
4744
|
-
const externalDependencyVersion = await project.resolve(packageName);
|
|
4745
|
-
if (externalDependencyVersion) {
|
|
4746
|
-
dependencies2[packageName] = stripWorkspaceFromVersion(externalDependencyVersion);
|
|
4845
|
+
if (!packageName) {
|
|
4747
4846
|
continue;
|
|
4748
4847
|
}
|
|
4749
|
-
|
|
4848
|
+
resolvablePackageNames.add(packageName);
|
|
4849
|
+
}
|
|
4850
|
+
const resolvedPackageVersions = await project.resolveAll(Array.from(resolvablePackageNames));
|
|
4851
|
+
const missingPackages = Array.from(resolvablePackageNames).filter(
|
|
4852
|
+
(packageName) => !resolvedPackageVersions[packageName]
|
|
4853
|
+
);
|
|
4854
|
+
for (const missingPackage of missingPackages) {
|
|
4855
|
+
const internalDependencyVersion = dependencies[missingPackage] ?? detectDependencyVersion(missingPackage);
|
|
4750
4856
|
if (internalDependencyVersion) {
|
|
4751
|
-
dependencies2[
|
|
4857
|
+
dependencies2[missingPackage] = stripWorkspaceFromVersion(internalDependencyVersion);
|
|
4752
4858
|
}
|
|
4753
4859
|
}
|
|
4860
|
+
for (const [packageName, version2] of Object.entries(resolvedPackageVersions)) {
|
|
4861
|
+
dependencies2[packageName] = version2;
|
|
4862
|
+
}
|
|
4754
4863
|
if (config.additionalPackages) {
|
|
4755
4864
|
for (const packageName of config.additionalPackages) {
|
|
4756
4865
|
if (dependencies2[packageName]) {
|
|
@@ -5802,6 +5911,7 @@ function useDev({
|
|
|
5802
5911
|
__PROJECT_CONFIG__: JSON.stringify(config)
|
|
5803
5912
|
},
|
|
5804
5913
|
plugins: [
|
|
5914
|
+
mockServerOnlyPlugin(),
|
|
5805
5915
|
bundleTriggerDevCore("workerFacade", config.tsconfigPath),
|
|
5806
5916
|
bundleDependenciesPlugin(
|
|
5807
5917
|
"workerFacade",
|