trigger.dev 3.3.17 → 4.0.0-v4-beta.0

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.
Files changed (120) hide show
  1. package/README.md +31 -0
  2. package/dist/esm/apiClient.d.ts +70 -72
  3. package/dist/esm/apiClient.js +195 -31
  4. package/dist/esm/apiClient.js.map +1 -1
  5. package/dist/esm/build/buildWorker.d.ts +7 -6
  6. package/dist/esm/build/buildWorker.js +10 -36
  7. package/dist/esm/build/buildWorker.js.map +1 -1
  8. package/dist/esm/build/bundle.d.ts +12 -1
  9. package/dist/esm/build/bundle.js +61 -19
  10. package/dist/esm/build/bundle.js.map +1 -1
  11. package/dist/esm/build/entryPoints.js +17 -6
  12. package/dist/esm/build/entryPoints.js.map +1 -1
  13. package/dist/esm/build/packageModules.d.ts +14 -5
  14. package/dist/esm/build/packageModules.js +135 -35
  15. package/dist/esm/build/packageModules.js.map +1 -1
  16. package/dist/esm/cli/common.js +5 -3
  17. package/dist/esm/cli/common.js.map +1 -1
  18. package/dist/esm/cli/index.js +4 -0
  19. package/dist/esm/cli/index.js.map +1 -1
  20. package/dist/esm/commands/deploy.js +2 -1
  21. package/dist/esm/commands/deploy.js.map +1 -1
  22. package/dist/esm/commands/dev.d.ts +9 -0
  23. package/dist/esm/commands/dev.js +10 -1
  24. package/dist/esm/commands/dev.js.map +1 -1
  25. package/dist/esm/commands/list-profiles.d.ts +2 -6
  26. package/dist/esm/commands/list-profiles.js +7 -4
  27. package/dist/esm/commands/list-profiles.js.map +1 -1
  28. package/dist/esm/commands/login.js +3 -2
  29. package/dist/esm/commands/login.js.map +1 -1
  30. package/dist/esm/commands/switch.d.ts +19 -0
  31. package/dist/esm/commands/switch.js +68 -0
  32. package/dist/esm/commands/switch.js.map +1 -0
  33. package/dist/esm/commands/trigger.d.ts +33 -0
  34. package/dist/esm/commands/trigger.js +88 -0
  35. package/dist/esm/commands/trigger.js.map +1 -0
  36. package/dist/esm/commands/workers/build.d.ts +4 -0
  37. package/dist/esm/commands/workers/build.js +340 -0
  38. package/dist/esm/commands/workers/build.js.map +1 -0
  39. package/dist/esm/commands/workers/create.d.ts +2 -0
  40. package/dist/esm/commands/workers/create.js +91 -0
  41. package/dist/esm/commands/workers/create.js.map +1 -0
  42. package/dist/esm/commands/workers/index.d.ts +2 -0
  43. package/dist/esm/commands/workers/index.js +13 -0
  44. package/dist/esm/commands/workers/index.js.map +1 -0
  45. package/dist/esm/commands/workers/list.d.ts +2 -0
  46. package/dist/esm/commands/workers/list.js +80 -0
  47. package/dist/esm/commands/workers/list.js.map +1 -0
  48. package/dist/esm/commands/workers/run.d.ts +2 -0
  49. package/dist/esm/commands/workers/run.js +105 -0
  50. package/dist/esm/commands/workers/run.js.map +1 -0
  51. package/dist/esm/config.js +11 -1
  52. package/dist/esm/config.js.map +1 -1
  53. package/dist/esm/deploy/buildImage.d.ts +1 -1
  54. package/dist/esm/deploy/buildImage.js +54 -34
  55. package/dist/esm/deploy/buildImage.js.map +1 -1
  56. package/dist/esm/dev/backgroundWorker.d.ts +2 -240
  57. package/dist/esm/dev/backgroundWorker.js +8 -305
  58. package/dist/esm/dev/backgroundWorker.js.map +1 -1
  59. package/dist/esm/dev/devOutput.js +13 -5
  60. package/dist/esm/dev/devOutput.js.map +1 -1
  61. package/dist/esm/dev/devSession.js +25 -48
  62. package/dist/esm/dev/devSession.js.map +1 -1
  63. package/dist/esm/dev/devSupervisor.d.ts +12 -0
  64. package/dist/esm/dev/devSupervisor.js +515 -0
  65. package/dist/esm/dev/devSupervisor.js.map +1 -0
  66. package/dist/esm/dev/lock.d.ts +1 -0
  67. package/dist/esm/dev/lock.js +80 -0
  68. package/dist/esm/dev/lock.js.map +1 -0
  69. package/dist/esm/dev/mcpServer.d.ts +10 -0
  70. package/dist/esm/dev/mcpServer.js +201 -0
  71. package/dist/esm/dev/mcpServer.js.map +1 -0
  72. package/dist/esm/dev/workerRuntime.d.ts +0 -1
  73. package/dist/esm/dev/workerRuntime.js +1 -335
  74. package/dist/esm/dev/workerRuntime.js.map +1 -1
  75. package/dist/esm/entryPoints/dev-index-worker.js +9 -7
  76. package/dist/esm/entryPoints/dev-index-worker.js.map +1 -1
  77. package/dist/esm/entryPoints/dev-run-controller.d.ts +53 -0
  78. package/dist/esm/entryPoints/dev-run-controller.js +615 -0
  79. package/dist/esm/entryPoints/dev-run-controller.js.map +1 -0
  80. package/dist/esm/entryPoints/dev-run-worker.js +249 -174
  81. package/dist/esm/entryPoints/dev-run-worker.js.map +1 -1
  82. package/dist/esm/entryPoints/{deploy-index-controller.js → managed-index-controller.js} +3 -1
  83. package/dist/esm/entryPoints/managed-index-controller.js.map +1 -0
  84. package/dist/esm/entryPoints/{deploy-index-worker.js → managed-index-worker.js} +12 -24
  85. package/dist/esm/entryPoints/managed-index-worker.js.map +1 -0
  86. package/dist/esm/entryPoints/managed-run-controller.js +1350 -0
  87. package/dist/esm/entryPoints/managed-run-controller.js.map +1 -0
  88. package/dist/esm/entryPoints/{deploy-run-worker.js → managed-run-worker.js} +104 -67
  89. package/dist/esm/entryPoints/managed-run-worker.js.map +1 -0
  90. package/dist/esm/executions/taskRunProcess.d.ts +18 -79
  91. package/dist/esm/executions/taskRunProcess.js +74 -28
  92. package/dist/esm/executions/taskRunProcess.js.map +1 -1
  93. package/dist/esm/indexing/indexWorkerManifest.d.ts +9 -2
  94. package/dist/esm/indexing/registerResources.d.ts +2 -0
  95. package/dist/esm/indexing/registerResources.js +40 -0
  96. package/dist/esm/indexing/registerResources.js.map +1 -0
  97. package/dist/esm/utilities/configFiles.d.ts +36 -15
  98. package/dist/esm/utilities/configFiles.js +73 -26
  99. package/dist/esm/utilities/configFiles.js.map +1 -1
  100. package/dist/esm/utilities/eventBus.d.ts +6 -3
  101. package/dist/esm/utilities/eventBus.js.map +1 -1
  102. package/dist/esm/utilities/initialBanner.js +18 -6
  103. package/dist/esm/utilities/initialBanner.js.map +1 -1
  104. package/dist/esm/utilities/sanitizeEnvVars.d.ts +16 -3
  105. package/dist/esm/utilities/sanitizeEnvVars.js +15 -0
  106. package/dist/esm/utilities/sanitizeEnvVars.js.map +1 -1
  107. package/dist/esm/version.js +1 -1
  108. package/package.json +11 -5
  109. package/dist/esm/entryPoints/deploy-index-controller.js.map +0 -1
  110. package/dist/esm/entryPoints/deploy-index-worker.js.map +0 -1
  111. package/dist/esm/entryPoints/deploy-run-controller.js +0 -1141
  112. package/dist/esm/entryPoints/deploy-run-controller.js.map +0 -1
  113. package/dist/esm/entryPoints/deploy-run-worker.js.map +0 -1
  114. package/dist/esm/indexing/registerTasks.d.ts +0 -2
  115. package/dist/esm/indexing/registerTasks.js +0 -65
  116. package/dist/esm/indexing/registerTasks.js.map +0 -1
  117. /package/dist/esm/entryPoints/{deploy-index-controller.d.ts → managed-index-controller.d.ts} +0 -0
  118. /package/dist/esm/entryPoints/{deploy-index-worker.d.ts → managed-index-worker.d.ts} +0 -0
  119. /package/dist/esm/entryPoints/{deploy-run-controller.d.ts → managed-run-controller.d.ts} +0 -0
  120. /package/dist/esm/entryPoints/{deploy-run-worker.d.ts → managed-run-worker.d.ts} +0 -0
@@ -68,8 +68,10 @@ async function indexDeployment({ cliApiClient, projectRef, deploymentId, buildMa
68
68
  packageVersion: buildManifest.packageVersion,
69
69
  cliPackageVersion: buildManifest.cliPackageVersion,
70
70
  tasks: workerManifest.tasks,
71
+ queues: workerManifest.queues,
71
72
  sourceFiles,
72
73
  },
74
+ engine: "V2",
73
75
  supportsLazyAttempts: true,
74
76
  };
75
77
  await cliApiClient.createDeploymentBackgroundWorker(deploymentId, backgroundWorkerBody);
@@ -83,4 +85,4 @@ async function indexDeployment({ cliApiClient, projectRef, deploymentId, buildMa
83
85
  }
84
86
  const results = await bootstrap();
85
87
  await indexDeployment(results);
86
- //# sourceMappingURL=deploy-index-controller.js.map
88
+ //# sourceMappingURL=managed-index-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-index-controller.js","sourceRoot":"","sources":["../../../src/entryPoints/managed-index-controller.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { BuildManifest, indexerToWorkerMessages, taskCatalog, } from "@trigger.dev/core/v3";
2
- import { StandardTaskCatalog, TracingSDK, } from "@trigger.dev/core/v3/workers";
1
+ import { BuildManifest, indexerToWorkerMessages, resourceCatalog, } from "@trigger.dev/core/v3";
2
+ import { StandardResourceCatalog, TracingSDK, } from "@trigger.dev/core/v3/workers";
3
3
  import { sendMessageInCatalog, ZodSchemaParsedError } from "@trigger.dev/core/v3/zodMessageHandler";
4
4
  import { readFile } from "node:fs/promises";
5
5
  import sourceMapSupport from "source-map-support";
6
- import { registerTasks } from "../indexing/registerTasks.js";
6
+ import { registerResources } from "../indexing/registerResources.js";
7
7
  import { env } from "std-env";
8
8
  import { normalizeImportPath } from "../utilities/normalizeImportPath.js";
9
9
  sourceMapSupport.install({
@@ -38,9 +38,9 @@ process.on("uncaughtException", function (error, origin) {
38
38
  });
39
39
  }
40
40
  });
41
- taskCatalog.setGlobalTaskCatalog(new StandardTaskCatalog());
41
+ resourceCatalog.setGlobalResourceCatalog(new StandardResourceCatalog());
42
42
  async function importConfig(configPath) {
43
- const configModule = await import(configPath);
43
+ const configModule = await import(normalizeImportPath(configPath));
44
44
  const config = configModule?.default ?? configModule?.config;
45
45
  return {
46
46
  config,
@@ -54,7 +54,7 @@ async function loadBuildManifest() {
54
54
  }
55
55
  async function bootstrap() {
56
56
  const buildManifest = await loadBuildManifest();
57
- const { config } = await importConfig(normalizeImportPath(buildManifest.configPath));
57
+ const { config } = await importConfig(buildManifest.configPath);
58
58
  // This needs to run or the PrismaInstrumentation will throw an error
59
59
  const tracingSDK = new TracingSDK({
60
60
  url: env.OTEL_EXPORTER_OTLP_ENDPOINT ?? "http://0.0.0.0:4318",
@@ -62,7 +62,7 @@ async function bootstrap() {
62
62
  diagLogLevel: env.OTEL_LOG_LEVEL ?? "none",
63
63
  forceFlushTimeoutMillis: 30_000,
64
64
  });
65
- const importErrors = await registerTasks(buildManifest);
65
+ const importErrors = await registerResources(buildManifest);
66
66
  return {
67
67
  tracingSDK,
68
68
  config,
@@ -71,7 +71,7 @@ async function bootstrap() {
71
71
  };
72
72
  }
73
73
  const { buildManifest, importErrors, config } = await bootstrap();
74
- let tasks = taskCatalog.listTaskManifests();
74
+ let tasks = resourceCatalog.listTaskManifests();
75
75
  // If the config has retry defaults, we need to apply them to all tasks that don't have any retry settings
76
76
  if (config.retries?.default) {
77
77
  tasks = tasks.map((task) => {
@@ -84,20 +84,6 @@ if (config.retries?.default) {
84
84
  return task;
85
85
  });
86
86
  }
87
- // If the config has a machine preset, we need to apply it to all tasks that don't have a machine preset
88
- if (typeof config.machine === "string") {
89
- tasks = tasks.map((task) => {
90
- if (typeof task.machine?.preset !== "string") {
91
- return {
92
- ...task,
93
- machine: {
94
- preset: config.machine,
95
- },
96
- };
97
- }
98
- return task;
99
- });
100
- }
101
87
  // If the config has a maxDuration, we need to apply it to all tasks that don't have a maxDuration
102
88
  if (typeof config.maxDuration === "number") {
103
89
  tasks = tasks.map((task) => {
@@ -113,12 +99,14 @@ if (typeof config.maxDuration === "number") {
113
99
  await sendMessageInCatalog(indexerToWorkerMessages, "INDEX_COMPLETE", {
114
100
  manifest: {
115
101
  tasks,
102
+ queues: resourceCatalog.listQueueManifests(),
116
103
  configPath: buildManifest.configPath,
117
104
  runtime: buildManifest.runtime,
118
105
  workerEntryPoint: buildManifest.runWorkerEntryPoint,
119
106
  controllerEntryPoint: buildManifest.runControllerEntryPoint,
120
107
  loaderEntryPoint: buildManifest.loaderEntryPoint,
121
108
  customConditions: buildManifest.customConditions,
109
+ initEntryPoint: buildManifest.initEntryPoint,
122
110
  },
123
111
  importErrors,
124
112
  }, async (msg) => {
@@ -126,7 +114,7 @@ await sendMessageInCatalog(indexerToWorkerMessages, "INDEX_COMPLETE", {
126
114
  }).catch((err) => {
127
115
  if (err instanceof ZodSchemaParsedError) {
128
116
  return sendMessageInCatalog(indexerToWorkerMessages, "TASKS_FAILED_TO_PARSE", { zodIssues: err.error.issues, tasks }, async (msg) => {
129
- await process.send?.(msg);
117
+ process.send?.(msg);
130
118
  });
131
119
  }
132
120
  else {
@@ -139,4 +127,4 @@ await new Promise((resolve) => {
139
127
  resolve();
140
128
  }, 10);
141
129
  });
142
- //# sourceMappingURL=deploy-index-worker.js.map
130
+ //# sourceMappingURL=managed-index-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-index-worker.js","sourceRoot":"","sources":["../../../src/entryPoints/managed-index-worker.ts"],"names":[],"mappings":"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"}