trigger.dev 0.0.0-v3-prerelease-20240501131706 → 0.0.0-v3-prerelease-20240502144136

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/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 = "0.0.0-v3-prerelease-20240501131706";
802
+ var version = "0.0.0-v3-prerelease-20240502144136";
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:0.0.0-v3-prerelease-20240501131706",
819
+ "@trigger.dev/core": "workspace:0.0.0-v3-prerelease-20240502144136",
820
820
  "@types/degit": "^2.8.3",
821
821
  chalk: "^5.2.0",
822
822
  chokidar: "^3.5.3",
@@ -3254,47 +3254,7 @@ function assertExhaustive(x) {
3254
3254
  }
3255
3255
 
3256
3256
  // src/utilities/javascriptProject.ts
3257
- var BuiltInModules = /* @__PURE__ */ new Set([
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
- ]);
3257
+ import { builtinModules } from "node:module";
3298
3258
  var JavascriptProject = class {
3299
3259
  constructor(projectPath) {
3300
3260
  this.projectPath = projectPath;
@@ -3324,29 +3284,76 @@ var JavascriptProject = class {
3324
3284
  });
3325
3285
  }
3326
3286
  }
3287
+ async resolveAll(packageNames, options) {
3288
+ const externalPackages = packageNames.filter((packageName) => !isBuiltInModule(packageName));
3289
+ const opts = { allowDev: false, ...options };
3290
+ const command = await this.#getCommand();
3291
+ try {
3292
+ const versions = await command.resolveDependencyVersions(externalPackages, {
3293
+ cwd: this.projectPath
3294
+ });
3295
+ if (versions) {
3296
+ logger.debug(`Resolved [${externalPackages.join(", ")}] version using ${command.name}`, {
3297
+ versions
3298
+ });
3299
+ }
3300
+ const missingPackages = externalPackages.filter((packageName) => !versions[packageName]);
3301
+ const missingPackageVersions = {};
3302
+ for (const packageName of missingPackages) {
3303
+ const packageJsonVersion = this.packageJson.dependencies?.[packageName];
3304
+ if (typeof packageJsonVersion === "string") {
3305
+ logger.debug(`Resolved ${packageName} version using package.json`, {
3306
+ packageJsonVersion
3307
+ });
3308
+ missingPackageVersions[packageName] = packageJsonVersion;
3309
+ }
3310
+ if (opts.allowDev) {
3311
+ const devPackageJsonVersion = this.packageJson.devDependencies?.[packageName];
3312
+ if (typeof devPackageJsonVersion === "string") {
3313
+ logger.debug(`Resolved ${packageName} version using devDependencies`, {
3314
+ devPackageJsonVersion
3315
+ });
3316
+ missingPackageVersions[packageName] = devPackageJsonVersion;
3317
+ }
3318
+ }
3319
+ }
3320
+ return { ...versions, ...missingPackageVersions };
3321
+ } catch (error) {
3322
+ logger.debug(`Failed to resolve dependency versions using ${command.name}`, {
3323
+ packageNames,
3324
+ error
3325
+ });
3326
+ return {};
3327
+ }
3328
+ }
3327
3329
  async resolve(packageName, options) {
3328
- if (BuiltInModules.has(packageName)) {
3330
+ if (isBuiltInModule(packageName)) {
3329
3331
  return void 0;
3330
3332
  }
3331
3333
  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
3334
  const command = await this.#getCommand();
3343
3335
  try {
3344
3336
  const version2 = await command.resolveDependencyVersion(packageName, {
3345
3337
  cwd: this.projectPath
3346
3338
  });
3347
3339
  if (version2) {
3340
+ logger.debug(`Resolved ${packageName} version using ${command.name}`, { version: version2 });
3348
3341
  return version2;
3349
3342
  }
3343
+ const packageJsonVersion = this.packageJson.dependencies?.[packageName];
3344
+ if (typeof packageJsonVersion === "string") {
3345
+ logger.debug(`Resolved ${packageName} version using package.json`, { packageJsonVersion });
3346
+ return packageJsonVersion;
3347
+ }
3348
+ if (opts.allowDev) {
3349
+ const devPackageJsonVersion = this.packageJson.devDependencies?.[packageName];
3350
+ if (typeof devPackageJsonVersion === "string") {
3351
+ logger.debug(`Resolved ${packageName} version using devDependencies`, {
3352
+ devPackageJsonVersion
3353
+ });
3354
+ return devPackageJsonVersion;
3355
+ }
3356
+ }
3350
3357
  } catch (error) {
3351
3358
  logger.debug(`Failed to resolve dependency version using ${command.name}`, {
3352
3359
  packageName,
@@ -3388,7 +3395,7 @@ var PNPMCommands = class {
3388
3395
  async resolveDependencyVersion(packageName, options) {
3389
3396
  const { stdout } = await $({ cwd: options.cwd })`${this.cmd} list ${packageName} -r --json`;
3390
3397
  const result = JSON.parse(stdout);
3391
- logger.debug(`Resolving ${packageName} version using ${this.name}`, { result });
3398
+ logger.debug(`Resolving ${packageName} version using ${this.name}`);
3392
3399
  for (const dep of result) {
3393
3400
  const dependency = dep.dependencies?.[packageName];
3394
3401
  if (dependency) {
@@ -3396,6 +3403,21 @@ var PNPMCommands = class {
3396
3403
  }
3397
3404
  }
3398
3405
  }
3406
+ async resolveDependencyVersions(packageNames, options) {
3407
+ const { stdout } = await $({ cwd: options.cwd })`${this.cmd} list ${packageNames} -r --json`;
3408
+ const result = JSON.parse(stdout);
3409
+ logger.debug(`Resolving ${packageNames.join(" ")} version using ${this.name}`);
3410
+ const results = {};
3411
+ for (const dep of result) {
3412
+ for (const packageName of packageNames) {
3413
+ const dependency = dep.dependencies?.[packageName];
3414
+ if (dependency) {
3415
+ results[packageName] = dependency.version;
3416
+ }
3417
+ }
3418
+ }
3419
+ return results;
3420
+ }
3399
3421
  };
3400
3422
  var NPMCommands = class {
3401
3423
  get name() {
@@ -3414,6 +3436,19 @@ var NPMCommands = class {
3414
3436
  logger.debug(`Resolving ${packageName} version using ${this.name}`, { output });
3415
3437
  return this.#recursivelySearchDependencies(output.dependencies, packageName);
3416
3438
  }
3439
+ async resolveDependencyVersions(packageNames, options) {
3440
+ const { stdout } = await $({ cwd: options.cwd })`${this.cmd} list ${packageNames} --json`;
3441
+ const output = JSON.parse(stdout);
3442
+ logger.debug(`Resolving ${packageNames.join(" ")} version using ${this.name}`, { output });
3443
+ const results = {};
3444
+ for (const packageName of packageNames) {
3445
+ const version2 = this.#recursivelySearchDependencies(output.dependencies, packageName);
3446
+ if (version2) {
3447
+ results[packageName] = version2;
3448
+ }
3449
+ }
3450
+ return results;
3451
+ }
3417
3452
  #recursivelySearchDependencies(dependencies2, packageName) {
3418
3453
  for (const [name, dependency] of Object.entries(dependencies2)) {
3419
3454
  if (name === packageName) {
@@ -3442,7 +3477,7 @@ var YarnCommands = class {
3442
3477
  async resolveDependencyVersion(packageName, options) {
3443
3478
  const { stdout } = await $({ cwd: options.cwd })`${this.cmd} info ${packageName} --json`;
3444
3479
  const lines = stdout.split("\n");
3445
- logger.debug(`Resolving ${packageName} version using ${this.name}`, { lines });
3480
+ logger.debug(`Resolving ${packageName} version using ${this.name}`);
3446
3481
  for (const line of lines) {
3447
3482
  const json = JSON.parse(line);
3448
3483
  if (json.value === packageName) {
@@ -3450,7 +3485,38 @@ var YarnCommands = class {
3450
3485
  }
3451
3486
  }
3452
3487
  }
3488
+ async resolveDependencyVersions(packageNames, options) {
3489
+ const { stdout } = await $({ cwd: options.cwd })`${this.cmd} info ${packageNames} --json`;
3490
+ const lines = stdout.split("\n");
3491
+ logger.debug(`Resolving ${packageNames.join(" ")} version using ${this.name}`);
3492
+ const results = {};
3493
+ for (const line of lines) {
3494
+ const json = JSON.parse(line);
3495
+ const packageName = this.#parseYarnValueIntoPackageName(json.value);
3496
+ if (packageNames.includes(packageName)) {
3497
+ results[packageName] = json.children.Version;
3498
+ }
3499
+ }
3500
+ return results;
3501
+ }
3502
+ // The "value" when doing yarn info is formatted like this:
3503
+ // "package-name@npm:version" or "package-name@workspace:version"
3504
+ // This function will parse the value into just the package name.
3505
+ // This correctly handles scoped packages as well e.g. @scope/package-name@npm:version
3506
+ #parseYarnValueIntoPackageName(value) {
3507
+ const parts = value.split("@");
3508
+ if (parts.length === 3) {
3509
+ return parts[1];
3510
+ }
3511
+ return parts[0];
3512
+ }
3453
3513
  };
3514
+ function isBuiltInModule(module) {
3515
+ if (module.startsWith("node:")) {
3516
+ return true;
3517
+ }
3518
+ return builtinModules.includes(module);
3519
+ }
3454
3520
 
3455
3521
  // src/utilities/resolveInternalFilePath.ts
3456
3522
  import path5 from "path";
@@ -4556,6 +4622,7 @@ async function compileProject(config, options, configPath) {
4556
4622
  const allImports = [...metaOutput.imports, ...entryPointMetaOutput.imports];
4557
4623
  const javascriptProject = new JavascriptProject(config.projectDir);
4558
4624
  const dependencies2 = await gatherRequiredDependencies(allImports, config, javascriptProject);
4625
+ logger.debug("gatherRequiredDependencies()", { dependencies: dependencies2 });
4559
4626
  const packageJsonContents = {
4560
4627
  name: "trigger-worker",
4561
4628
  version: "0.0.0",
@@ -4742,24 +4809,30 @@ async function typecheckProject(config, options) {
4742
4809
  }
4743
4810
  async function gatherRequiredDependencies(imports, config, project) {
4744
4811
  const dependencies2 = {};
4812
+ const resolvablePackageNames = /* @__PURE__ */ new Set();
4745
4813
  for (const file of imports) {
4746
4814
  if (file.kind !== "require-call" && file.kind !== "dynamic-import" || !file.external) {
4747
4815
  continue;
4748
4816
  }
4749
4817
  const packageName = detectPackageNameFromImportPath(file.path);
4750
- if (dependencies2[packageName]) {
4818
+ if (!packageName) {
4751
4819
  continue;
4752
4820
  }
4753
- const externalDependencyVersion = await project.resolve(packageName);
4754
- if (externalDependencyVersion) {
4755
- dependencies2[packageName] = stripWorkspaceFromVersion(externalDependencyVersion);
4756
- continue;
4757
- }
4758
- const internalDependencyVersion = dependencies[packageName] ?? detectDependencyVersion(packageName);
4821
+ resolvablePackageNames.add(packageName);
4822
+ }
4823
+ const resolvedPackageVersions = await project.resolveAll(Array.from(resolvablePackageNames));
4824
+ const missingPackages = Array.from(resolvablePackageNames).filter(
4825
+ (packageName) => !resolvedPackageVersions[packageName]
4826
+ );
4827
+ for (const missingPackage of missingPackages) {
4828
+ const internalDependencyVersion = dependencies[missingPackage] ?? detectDependencyVersion(missingPackage);
4759
4829
  if (internalDependencyVersion) {
4760
- dependencies2[packageName] = stripWorkspaceFromVersion(internalDependencyVersion);
4830
+ dependencies2[missingPackage] = stripWorkspaceFromVersion(internalDependencyVersion);
4761
4831
  }
4762
4832
  }
4833
+ for (const [packageName, version2] of Object.entries(resolvedPackageVersions)) {
4834
+ dependencies2[packageName] = version2;
4835
+ }
4763
4836
  if (config.additionalPackages) {
4764
4837
  for (const packageName of config.additionalPackages) {
4765
4838
  if (dependencies2[packageName]) {