trigger.dev 3.0.0-beta.9 → 3.0.1

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 (231) hide show
  1. package/dist/esm/apiClient.d.ts +190 -0
  2. package/dist/esm/apiClient.js +239 -0
  3. package/dist/esm/apiClient.js.map +1 -0
  4. package/dist/esm/build/buildWorker.d.ts +68 -0
  5. package/dist/esm/build/buildWorker.js +159 -0
  6. package/dist/esm/build/buildWorker.js.map +1 -0
  7. package/dist/esm/build/bundle.d.ts +36 -0
  8. package/dist/esm/build/bundle.js +197 -0
  9. package/dist/esm/build/bundle.js.map +1 -0
  10. package/dist/esm/build/extensions.d.ts +15 -0
  11. package/dist/esm/build/extensions.js +158 -0
  12. package/dist/esm/build/extensions.js.map +1 -0
  13. package/dist/esm/build/externals.d.ts +15 -0
  14. package/dist/esm/build/externals.js +285 -0
  15. package/dist/esm/build/externals.js.map +1 -0
  16. package/dist/esm/build/manifests.d.ts +2 -0
  17. package/dist/esm/build/manifests.js +22 -0
  18. package/dist/esm/build/manifests.js.map +1 -0
  19. package/dist/esm/build/packageModules.d.ts +18 -0
  20. package/dist/esm/build/packageModules.js +84 -0
  21. package/dist/esm/build/packageModules.js.map +1 -0
  22. package/dist/esm/build/plugins.d.ts +6 -0
  23. package/dist/esm/build/plugins.js +67 -0
  24. package/dist/esm/build/plugins.js.map +1 -0
  25. package/dist/esm/build/resolveModule.d.ts +1 -0
  26. package/dist/esm/build/resolveModule.js +9 -0
  27. package/dist/esm/build/resolveModule.js.map +1 -0
  28. package/dist/esm/cli/common.d.ts +30 -0
  29. package/dist/esm/cli/common.js +85 -0
  30. package/dist/esm/cli/common.js.map +1 -0
  31. package/dist/esm/cli/index.d.ts +2 -0
  32. package/dist/esm/cli/index.js +27 -0
  33. package/dist/esm/cli/index.js.map +1 -0
  34. package/dist/esm/commands/deploy.d.ts +5 -0
  35. package/dist/esm/commands/deploy.js +402 -0
  36. package/dist/esm/commands/deploy.js.map +1 -0
  37. package/dist/esm/commands/dev.d.ts +37 -0
  38. package/dist/esm/commands/dev.js +128 -0
  39. package/dist/esm/commands/dev.js.map +1 -0
  40. package/dist/esm/commands/init.d.ts +3 -0
  41. package/dist/esm/commands/init.js +427 -0
  42. package/dist/esm/commands/init.js.map +1 -0
  43. package/dist/esm/commands/list-profiles.d.ts +23 -0
  44. package/dist/esm/commands/list-profiles.js +40 -0
  45. package/dist/esm/commands/list-profiles.js.map +1 -0
  46. package/dist/esm/commands/login.d.ts +28 -0
  47. package/dist/esm/commands/login.js +275 -0
  48. package/dist/esm/commands/login.js.map +1 -0
  49. package/dist/esm/commands/logout.d.ts +23 -0
  50. package/dist/esm/commands/logout.js +28 -0
  51. package/dist/esm/commands/logout.js.map +1 -0
  52. package/dist/esm/commands/update.d.ts +24 -0
  53. package/dist/esm/commands/update.js +243 -0
  54. package/dist/esm/commands/update.js.map +1 -0
  55. package/dist/esm/commands/whoami.d.ts +34 -0
  56. package/dist/esm/commands/whoami.js +70 -0
  57. package/dist/esm/commands/whoami.js.map +1 -0
  58. package/dist/esm/config.d.ts +22 -0
  59. package/dist/esm/config.js +204 -0
  60. package/dist/esm/config.js.map +1 -0
  61. package/dist/esm/consts.d.ts +4 -0
  62. package/dist/esm/consts.js +5 -0
  63. package/dist/esm/consts.js.map +1 -0
  64. package/dist/esm/deploy/buildImage.d.ts +69 -0
  65. package/dist/esm/deploy/buildImage.js +472 -0
  66. package/dist/esm/deploy/buildImage.js.map +1 -0
  67. package/dist/esm/deploy/logs.d.ts +19 -0
  68. package/dist/esm/deploy/logs.js +96 -0
  69. package/dist/esm/deploy/logs.js.map +1 -0
  70. package/dist/esm/dev/backgroundWorker.d.ts +114 -0
  71. package/dist/esm/dev/backgroundWorker.js +412 -0
  72. package/dist/esm/dev/backgroundWorker.js.map +1 -0
  73. package/dist/esm/dev/devOutput.d.ts +9 -0
  74. package/dist/esm/dev/devOutput.js +137 -0
  75. package/dist/esm/dev/devOutput.js.map +1 -0
  76. package/dist/esm/dev/devSession.d.ts +17 -0
  77. package/dist/esm/dev/devSession.js +156 -0
  78. package/dist/esm/dev/devSession.js.map +1 -0
  79. package/dist/esm/dev/workerRuntime.d.ts +16 -0
  80. package/dist/esm/dev/workerRuntime.js +258 -0
  81. package/dist/esm/dev/workerRuntime.js.map +1 -0
  82. package/dist/esm/entryPoints/deploy-index-controller.d.ts +1 -0
  83. package/dist/esm/entryPoints/deploy-index-controller.js +85 -0
  84. package/dist/esm/entryPoints/deploy-index-controller.js.map +1 -0
  85. package/dist/esm/entryPoints/deploy-index-worker.d.ts +1 -0
  86. package/dist/esm/entryPoints/deploy-index-worker.js +104 -0
  87. package/dist/esm/entryPoints/deploy-index-worker.js.map +1 -0
  88. package/dist/esm/entryPoints/deploy-run-controller.d.ts +1 -0
  89. package/dist/esm/entryPoints/deploy-run-controller.js +996 -0
  90. package/dist/esm/entryPoints/deploy-run-controller.js.map +1 -0
  91. package/dist/esm/entryPoints/deploy-run-worker.d.ts +1 -0
  92. package/dist/esm/entryPoints/deploy-run-worker.js +297 -0
  93. package/dist/esm/entryPoints/deploy-run-worker.js.map +1 -0
  94. package/dist/esm/entryPoints/dev-index-worker.d.ts +1 -0
  95. package/dist/esm/entryPoints/dev-index-worker.js +104 -0
  96. package/dist/esm/entryPoints/dev-index-worker.js.map +1 -0
  97. package/dist/esm/entryPoints/dev-run-worker.d.ts +1 -0
  98. package/dist/esm/entryPoints/dev-run-worker.js +254 -0
  99. package/dist/esm/entryPoints/dev-run-worker.js.map +1 -0
  100. package/dist/esm/entryPoints/loader.d.ts +1 -0
  101. package/dist/esm/entryPoints/loader.js +16 -0
  102. package/dist/esm/entryPoints/loader.js.map +1 -0
  103. package/dist/esm/executions/taskRunProcess.d.ts +115 -0
  104. package/dist/esm/executions/taskRunProcess.js +254 -0
  105. package/dist/esm/executions/taskRunProcess.js.map +1 -0
  106. package/dist/esm/imports/magicast.d.ts +2 -0
  107. package/dist/esm/imports/magicast.js +5 -0
  108. package/dist/esm/imports/magicast.js.map +1 -0
  109. package/dist/esm/imports/xdg-app-paths.d.ts +2 -0
  110. package/dist/esm/imports/xdg-app-paths.js +3 -0
  111. package/dist/esm/imports/xdg-app-paths.js.map +1 -0
  112. package/dist/{index.d.ts → esm/index.d.ts} +1 -0
  113. package/dist/esm/index.js +17 -0
  114. package/dist/esm/index.js.map +1 -0
  115. package/dist/esm/indexing/indexWorkerManifest.d.ts +85 -0
  116. package/dist/esm/indexing/indexWorkerManifest.js +76 -0
  117. package/dist/esm/indexing/indexWorkerManifest.js.map +1 -0
  118. package/dist/esm/indexing/registerTasks.d.ts +2 -0
  119. package/dist/esm/indexing/registerTasks.js +62 -0
  120. package/dist/esm/indexing/registerTasks.js.map +1 -0
  121. package/dist/esm/package.json +3 -0
  122. package/dist/esm/runtimes/bun.d.ts +2 -0
  123. package/dist/esm/runtimes/bun.js +11 -0
  124. package/dist/esm/runtimes/bun.js.map +1 -0
  125. package/dist/esm/shims/esm.d.ts +1 -0
  126. package/dist/esm/shims/esm.js +9 -0
  127. package/dist/esm/shims/esm.js.map +1 -0
  128. package/dist/esm/sourceDir.d.ts +1 -0
  129. package/dist/esm/sourceDir.js +4 -0
  130. package/dist/esm/sourceDir.js.map +1 -0
  131. package/dist/esm/telemetry/tracing.d.ts +3 -0
  132. package/dist/esm/telemetry/tracing.js +58 -0
  133. package/dist/esm/telemetry/tracing.js.map +1 -0
  134. package/dist/esm/types.d.ts +6 -0
  135. package/dist/esm/types.js +2 -0
  136. package/dist/esm/types.js.map +1 -0
  137. package/dist/esm/utilities/assertExhaustive.d.ts +1 -0
  138. package/dist/esm/utilities/assertExhaustive.js +4 -0
  139. package/dist/esm/utilities/assertExhaustive.js.map +1 -0
  140. package/dist/esm/utilities/buildManifest.d.ts +2 -0
  141. package/dist/esm/utilities/buildManifest.js +9 -0
  142. package/dist/esm/utilities/buildManifest.js.map +1 -0
  143. package/dist/esm/utilities/cliOutput.d.ts +20 -0
  144. package/dist/esm/utilities/cliOutput.js +88 -0
  145. package/dist/esm/utilities/cliOutput.js.map +1 -0
  146. package/dist/esm/utilities/configFiles.d.ts +29 -0
  147. package/dist/esm/utilities/configFiles.js +65 -0
  148. package/dist/esm/utilities/configFiles.js.map +1 -0
  149. package/dist/esm/utilities/createFileFromTemplate.d.ts +16 -0
  150. package/dist/esm/utilities/createFileFromTemplate.js +50 -0
  151. package/dist/esm/utilities/createFileFromTemplate.js.map +1 -0
  152. package/dist/esm/utilities/deployErrors.d.ts +19 -0
  153. package/dist/esm/utilities/deployErrors.js +117 -0
  154. package/dist/esm/utilities/deployErrors.js.map +1 -0
  155. package/dist/esm/utilities/dotEnv.d.ts +4 -0
  156. package/dist/esm/utilities/dotEnv.js +28 -0
  157. package/dist/esm/utilities/dotEnv.js.map +1 -0
  158. package/dist/esm/utilities/eventBus.d.ts +14 -0
  159. package/dist/esm/utilities/eventBus.js +3 -0
  160. package/dist/esm/utilities/eventBus.js.map +1 -0
  161. package/dist/esm/utilities/fileSystem.d.ts +12 -0
  162. package/dist/esm/utilities/fileSystem.js +81 -0
  163. package/dist/esm/utilities/fileSystem.js.map +1 -0
  164. package/dist/esm/utilities/getApiKeyType.d.ts +13 -0
  165. package/dist/esm/utilities/getApiKeyType.js +44 -0
  166. package/dist/esm/utilities/getApiKeyType.js.map +1 -0
  167. package/dist/esm/utilities/initialBanner.d.ts +4 -0
  168. package/dist/esm/utilities/initialBanner.js +82 -0
  169. package/dist/esm/utilities/initialBanner.js.map +1 -0
  170. package/dist/esm/utilities/keyValueBy.d.ts +8 -0
  171. package/dist/esm/utilities/keyValueBy.js +19 -0
  172. package/dist/esm/utilities/keyValueBy.js.map +1 -0
  173. package/dist/esm/utilities/links.d.ts +9 -0
  174. package/dist/esm/utilities/links.js +10 -0
  175. package/dist/esm/utilities/links.js.map +1 -0
  176. package/dist/esm/utilities/linux.d.ts +1 -0
  177. package/dist/esm/utilities/linux.js +24 -0
  178. package/dist/esm/utilities/linux.js.map +1 -0
  179. package/dist/esm/utilities/logger.d.ts +40 -0
  180. package/dist/esm/utilities/logger.js +109 -0
  181. package/dist/esm/utilities/logger.js.map +1 -0
  182. package/dist/esm/utilities/normalizeImportPath.d.ts +1 -0
  183. package/dist/esm/utilities/normalizeImportPath.js +5 -0
  184. package/dist/esm/utilities/normalizeImportPath.js.map +1 -0
  185. package/dist/esm/utilities/obfuscateApiKey.d.ts +1 -0
  186. package/dist/esm/utilities/obfuscateApiKey.js +5 -0
  187. package/dist/esm/utilities/obfuscateApiKey.js.map +1 -0
  188. package/dist/esm/utilities/parseNameAndPath.d.ts +2 -0
  189. package/dist/esm/utilities/parseNameAndPath.js +10 -0
  190. package/dist/esm/utilities/parseNameAndPath.js.map +1 -0
  191. package/dist/esm/utilities/resolveInternalFilePath.d.ts +1 -0
  192. package/dist/esm/utilities/resolveInternalFilePath.js +8 -0
  193. package/dist/esm/utilities/resolveInternalFilePath.js.map +1 -0
  194. package/dist/esm/utilities/runtimeCheck.d.ts +8 -0
  195. package/dist/esm/utilities/runtimeCheck.js +52 -0
  196. package/dist/esm/utilities/runtimeCheck.js.map +1 -0
  197. package/dist/esm/utilities/safeJsonParse.d.ts +1 -0
  198. package/dist/esm/utilities/safeJsonParse.js +12 -0
  199. package/dist/esm/utilities/safeJsonParse.js.map +1 -0
  200. package/dist/esm/utilities/sanitizeEnvVars.d.ts +3 -0
  201. package/dist/esm/utilities/sanitizeEnvVars.js +4 -0
  202. package/dist/esm/utilities/sanitizeEnvVars.js.map +1 -0
  203. package/dist/esm/utilities/session.d.ts +33 -0
  204. package/dist/esm/utilities/session.js +82 -0
  205. package/dist/esm/utilities/session.js.map +1 -0
  206. package/dist/esm/utilities/sourceFiles.d.ts +12 -0
  207. package/dist/esm/utilities/sourceFiles.js +76 -0
  208. package/dist/esm/utilities/sourceFiles.js.map +1 -0
  209. package/dist/esm/utilities/taskFiles.d.ts +6 -0
  210. package/dist/esm/utilities/taskFiles.js +69 -0
  211. package/dist/esm/utilities/taskFiles.js.map +1 -0
  212. package/dist/esm/utilities/tempDirectories.d.ts +16 -0
  213. package/dist/esm/utilities/tempDirectories.js +27 -0
  214. package/dist/esm/utilities/tempDirectories.js.map +1 -0
  215. package/dist/esm/utilities/windows.d.ts +7 -0
  216. package/dist/esm/utilities/windows.js +21 -0
  217. package/dist/esm/utilities/windows.js.map +1 -0
  218. package/dist/esm/version.d.ts +1 -0
  219. package/dist/esm/version.js +2 -0
  220. package/dist/esm/version.js.map +1 -0
  221. package/package.json +85 -82
  222. package/dist/Containerfile.prod +0 -39
  223. package/dist/index.js +0 -6115
  224. package/dist/index.js.map +0 -1
  225. package/dist/templates/examples/simple.ts.template +0 -14
  226. package/dist/templates/trigger.config.ts.template +0 -16
  227. package/dist/workers/dev/worker-facade.js +0 -187
  228. package/dist/workers/dev/worker-setup.js +0 -40
  229. package/dist/workers/prod/entry-point.js +0 -1146
  230. package/dist/workers/prod/worker-facade.js +0 -193
  231. package/dist/workers/prod/worker-setup.js +0 -35
@@ -0,0 +1,29 @@
1
+ import { z } from "zod";
2
+ export declare const UserAuthConfigSchema: z.ZodObject<{
3
+ accessToken: z.ZodOptional<z.ZodString>;
4
+ apiUrl: z.ZodOptional<z.ZodString>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ accessToken?: string | undefined;
7
+ apiUrl?: string | undefined;
8
+ }, {
9
+ accessToken?: string | undefined;
10
+ apiUrl?: string | undefined;
11
+ }>;
12
+ export type UserAuthConfig = z.infer<typeof UserAuthConfigSchema>;
13
+ declare const UserAuthConfigFileSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
14
+ accessToken: z.ZodOptional<z.ZodString>;
15
+ apiUrl: z.ZodOptional<z.ZodString>;
16
+ }, "strip", z.ZodTypeAny, {
17
+ accessToken?: string | undefined;
18
+ apiUrl?: string | undefined;
19
+ }, {
20
+ accessToken?: string | undefined;
21
+ apiUrl?: string | undefined;
22
+ }>>;
23
+ type UserAuthConfigFile = z.infer<typeof UserAuthConfigFileSchema>;
24
+ export declare function writeAuthConfigProfile(config: UserAuthConfig, profile?: string): void;
25
+ export declare function readAuthConfigProfile(profile?: string): UserAuthConfig | undefined;
26
+ export declare function deleteAuthConfigProfile(profile?: string): void;
27
+ export declare function readAuthConfigFile(): UserAuthConfigFile | undefined;
28
+ export declare function writeAuthConfigFile(config: UserAuthConfigFile): void;
29
+ export {};
@@ -0,0 +1,65 @@
1
+ import { mkdirSync, writeFileSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { z } from "zod";
4
+ import { xdgAppPaths } from "../imports/xdg-app-paths.js";
5
+ import { readJSONFileSync } from "./fileSystem.js";
6
+ import { logger } from "./logger.js";
7
+ function getGlobalConfigFolderPath() {
8
+ const configDir = xdgAppPaths("trigger").config();
9
+ return configDir;
10
+ }
11
+ //auth config file
12
+ export const UserAuthConfigSchema = z.object({
13
+ accessToken: z.string().optional(),
14
+ apiUrl: z.string().optional(),
15
+ });
16
+ const UserAuthConfigFileSchema = z.record(UserAuthConfigSchema);
17
+ function getAuthConfigFilePath() {
18
+ return path.join(getGlobalConfigFolderPath(), "default.json");
19
+ }
20
+ export function writeAuthConfigProfile(config, profile = "default") {
21
+ const existingConfig = readAuthConfigFile() || {};
22
+ existingConfig[profile] = config;
23
+ writeAuthConfigFile(existingConfig);
24
+ }
25
+ export function readAuthConfigProfile(profile = "default") {
26
+ try {
27
+ const authConfigFilePath = getAuthConfigFilePath();
28
+ logger.debug(`Reading auth config file`, { authConfigFilePath });
29
+ const json = readJSONFileSync(authConfigFilePath);
30
+ const parsed = UserAuthConfigFileSchema.parse(json);
31
+ return parsed[profile];
32
+ }
33
+ catch (error) {
34
+ logger.debug(`Error reading auth config file: ${error}`);
35
+ return undefined;
36
+ }
37
+ }
38
+ export function deleteAuthConfigProfile(profile = "default") {
39
+ const existingConfig = readAuthConfigFile() || {};
40
+ delete existingConfig[profile];
41
+ writeAuthConfigFile(existingConfig);
42
+ }
43
+ export function readAuthConfigFile() {
44
+ try {
45
+ const authConfigFilePath = getAuthConfigFilePath();
46
+ logger.debug(`Reading auth config file`, { authConfigFilePath });
47
+ const json = readJSONFileSync(authConfigFilePath);
48
+ const parsed = UserAuthConfigFileSchema.parse(json);
49
+ return parsed;
50
+ }
51
+ catch (error) {
52
+ logger.debug(`Error reading auth config file: ${error}`);
53
+ return undefined;
54
+ }
55
+ }
56
+ export function writeAuthConfigFile(config) {
57
+ const authConfigFilePath = getAuthConfigFilePath();
58
+ mkdirSync(path.dirname(authConfigFilePath), {
59
+ recursive: true,
60
+ });
61
+ writeFileSync(path.join(authConfigFilePath), JSON.stringify(config), {
62
+ encoding: "utf-8",
63
+ });
64
+ }
65
+ //# sourceMappingURL=configFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configFiles.js","sourceRoot":"","sources":["../../../src/utilities/configFiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ type Result = {
2
+ success: true;
3
+ alreadyExisted: boolean;
4
+ } | {
5
+ success: false;
6
+ error: string;
7
+ };
8
+ export declare function createFileFromTemplate(params: {
9
+ templateUrl: string;
10
+ replacements: Record<string, string>;
11
+ outputPath: string;
12
+ override?: boolean;
13
+ }): Promise<Result>;
14
+ export declare function replaceAll(input: string, replacements: Record<string, string>): string;
15
+ export declare function generateTemplateUrl(templateName: string, ref?: string): string;
16
+ export {};
@@ -0,0 +1,50 @@
1
+ import fs from "fs/promises";
2
+ import { pathExists } from "./fileSystem.js";
3
+ import path from "path";
4
+ export async function createFileFromTemplate(params) {
5
+ try {
6
+ const response = await fetch(params.templateUrl);
7
+ if (!response.ok) {
8
+ throw new Error(`Failed to fetch template: ${response.statusText}`);
9
+ }
10
+ const template = await response.text();
11
+ if ((await pathExists(params.outputPath)) && !params.override) {
12
+ return {
13
+ success: true,
14
+ alreadyExisted: true,
15
+ };
16
+ }
17
+ const output = replaceAll(template, params.replacements);
18
+ const directoryName = path.dirname(params.outputPath);
19
+ await fs.mkdir(directoryName, { recursive: true });
20
+ await fs.writeFile(params.outputPath, output);
21
+ return {
22
+ success: true,
23
+ alreadyExisted: false,
24
+ };
25
+ }
26
+ catch (e) {
27
+ if (e instanceof Error) {
28
+ return {
29
+ success: false,
30
+ error: e.message,
31
+ };
32
+ }
33
+ return {
34
+ success: false,
35
+ error: JSON.stringify(e),
36
+ };
37
+ }
38
+ }
39
+ // find strings that match ${varName} and replace with the value from a Record<string, string> where { varName: "value" }
40
+ export function replaceAll(input, replacements) {
41
+ let output = input;
42
+ for (const [key, value] of Object.entries(replacements)) {
43
+ output = output.replace(new RegExp(`\\$\\{${key}\\}`, "g"), value);
44
+ }
45
+ return output;
46
+ }
47
+ export function generateTemplateUrl(templateName, ref = "main") {
48
+ return `https://raw.githubusercontent.com/triggerdotdev/trigger.dev/${ref}/packages/cli-v3/templates/${templateName}.template`;
49
+ }
50
+ //# sourceMappingURL=createFileFromTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createFileFromTemplate.js","sourceRoot":"","sources":["../../../src/utilities/createFileFromTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAY,MAAM,iBAAiB,CAAC;AACvD,OAAO,IAAI,MAAM,MAAM,CAAC;AAYxB,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAK5C;IACC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEvC,IAAI,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC9D,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,cAAc,EAAE,IAAI;aACrB,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAEzD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAE9C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,cAAc,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,CAAC,CAAC,OAAO;aACjB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SACzB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,YAAoC;IAC5E,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACxD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,GAAG,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,YAAoB,EAAE,MAAc,MAAM;IAC5E,OAAO,+DAA+D,GAAG,8BAA8B,YAAY,WAAW,CAAC;AACjI,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { z } from "zod";
2
+ export type ESMRequireError = {
3
+ type: "esm-require-error";
4
+ moduleName: string;
5
+ };
6
+ export type BuildError = ESMRequireError | string;
7
+ export declare function parseBuildErrorStack(error: unknown): BuildError | undefined;
8
+ export declare function logESMRequireError(parsedError: ESMRequireError): void;
9
+ export type PackageNotFoundError = {
10
+ type: "package-not-found-error";
11
+ packageName: string;
12
+ };
13
+ export type NoMatchingVersionError = {
14
+ type: "no-matching-version-error";
15
+ packageName: string;
16
+ };
17
+ export type NpmInstallError = PackageNotFoundError | NoMatchingVersionError | string;
18
+ export declare function parseNpmInstallError(error: unknown): NpmInstallError;
19
+ export declare function logTaskMetadataParseError(zodIssues: z.ZodIssue[], tasks: any): void;
@@ -0,0 +1,117 @@
1
+ import chalk from "chalk";
2
+ import { chalkError, chalkPurple, chalkGrey, chalkGreen, chalkWarning, cliLink, } from "./cliOutput.js";
3
+ import { logger } from "./logger.js";
4
+ import { groupTaskMetadataIssuesByTask } from "@trigger.dev/core/v3";
5
+ import { docs } from "./links.js";
6
+ function errorIsErrorLike(error) {
7
+ return (error instanceof Error || (typeof error === "object" && error !== null && "message" in error));
8
+ }
9
+ export function parseBuildErrorStack(error) {
10
+ if (typeof error === "string") {
11
+ return error;
12
+ }
13
+ if (errorIsErrorLike(error)) {
14
+ if (typeof error.stack === "string") {
15
+ if (error.stack.includes("ERR_REQUIRE_ESM")) {
16
+ const moduleName = getPackageNameFromEsmRequireError(error.stack);
17
+ if (moduleName) {
18
+ return {
19
+ type: "esm-require-error",
20
+ moduleName,
21
+ };
22
+ }
23
+ }
24
+ }
25
+ else {
26
+ return error.message;
27
+ }
28
+ }
29
+ return;
30
+ }
31
+ function getPackageNameFromEsmRequireError(stack) {
32
+ const pathRegex = /require\(\) of ES Module (.*) from/;
33
+ const pathMatch = pathRegex.exec(stack);
34
+ if (!pathMatch) {
35
+ return;
36
+ }
37
+ const filePath = pathMatch[1];
38
+ if (!filePath) {
39
+ return;
40
+ }
41
+ const lastPart = filePath.split("node_modules/").pop();
42
+ if (!lastPart) {
43
+ return;
44
+ }
45
+ // regular expression to match the package name
46
+ const moduleRegex = /(@[^\/]+\/[^\/]+|[^\/]+)/;
47
+ const match = moduleRegex.exec(lastPart);
48
+ if (!match) {
49
+ return;
50
+ }
51
+ return match[1];
52
+ }
53
+ export function logESMRequireError(parsedError) {
54
+ logger.log(`\n${chalkError("X Error:")} The ${chalkPurple(parsedError.moduleName)} module is being required even though it's ESM only, and builds only support CommonJS. There are two ${chalk.underline("possible")} ways to fix this:`);
55
+ logger.log(`\n${chalkGrey("○")} Dynamically import the module in your code: ${chalkGrey(`const myModule = await import("${parsedError.moduleName}");`)}`);
56
+ logger.log(`${chalkGrey("○")} ${chalk.underline("Or")} add ${chalkPurple(parsedError.moduleName)} to the ${chalkGreen("dependenciesToBundle")} array in your config file ${chalkGrey("(you'll need to create one)")}. This will bundle the module with your code.\n`);
57
+ logger.log(`${chalkGrey("○")} For more info see the ${cliLink("relevant docs", docs.config.esm)}.\n`);
58
+ }
59
+ export function parseNpmInstallError(error) {
60
+ if (typeof error === "string") {
61
+ return error;
62
+ }
63
+ if (error instanceof Error) {
64
+ if (typeof error.stack === "string") {
65
+ const isPackageNotFoundError = error.stack.includes("ERR! 404 Not Found") &&
66
+ error.stack.includes("is not in this registry");
67
+ let packageName = null;
68
+ if (isPackageNotFoundError) {
69
+ // Regular expression to match the package name
70
+ const packageNameRegex = /'([^']+)' is not in this registry/;
71
+ const match = packageNameRegex.exec(error.stack);
72
+ if (match) {
73
+ packageName = match[1]; // Capture the package name
74
+ }
75
+ }
76
+ if (packageName) {
77
+ return {
78
+ type: "package-not-found-error",
79
+ packageName,
80
+ };
81
+ }
82
+ const noMatchingVersionRegex = /No matching version found for ([^\s]+)\s/;
83
+ const noMatchingVersionMatch = noMatchingVersionRegex.exec(error.stack);
84
+ if (noMatchingVersionMatch) {
85
+ return {
86
+ type: "no-matching-version-error",
87
+ packageName: noMatchingVersionMatch[1].replace(/.$/, ""),
88
+ };
89
+ }
90
+ return error.message;
91
+ }
92
+ else {
93
+ return error.message;
94
+ }
95
+ }
96
+ return "Unknown error";
97
+ }
98
+ export function logTaskMetadataParseError(zodIssues, tasks) {
99
+ logger.log(`\n${chalkError("X Error:")} Failed to start. The following ${zodIssues.length === 1 ? "task issue was" : "task issues were"} found:`);
100
+ const groupedIssues = groupTaskMetadataIssuesByTask(tasks, zodIssues);
101
+ for (const key in groupedIssues) {
102
+ const taskWithIssues = groupedIssues[key];
103
+ if (!taskWithIssues) {
104
+ continue;
105
+ }
106
+ logger.log(`\n ${chalkWarning("❯")} ${taskWithIssues.exportName} ${chalkGrey("in")} ${taskWithIssues.filePath}`);
107
+ for (const issue of taskWithIssues.issues) {
108
+ if (issue.path) {
109
+ logger.log(` ${chalkError("x")} ${issue.path} ${chalkGrey(issue.message)}`);
110
+ }
111
+ else {
112
+ logger.log(` ${chalkError("x")} ${chalkGrey(issue.message)}`);
113
+ }
114
+ }
115
+ }
116
+ }
117
+ //# sourceMappingURL=deployErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployErrors.js","sourceRoot":"","sources":["../../../src/utilities/deployErrors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function resolveDotEnvVars(cwd?: string, envFile?: string): {
2
+ [key: string]: string;
3
+ };
4
+ export declare function loadDotEnvVars(cwd?: string, envFile?: string): void;
@@ -0,0 +1,28 @@
1
+ import dotenv from "dotenv";
2
+ import { resolve } from "node:path";
3
+ import { env } from "std-env";
4
+ const ENVVAR_FILES = [".env", ".env.development", ".env.local", ".env.development.local"];
5
+ export function resolveDotEnvVars(cwd, envFile) {
6
+ const result = {};
7
+ const envFilePath = envFile
8
+ ? resolve(cwd ?? process.cwd(), envFile)
9
+ : ENVVAR_FILES.map((p) => resolve(cwd ?? process.cwd(), p));
10
+ dotenv.config({
11
+ processEnv: result,
12
+ path: envFilePath,
13
+ });
14
+ env.TRIGGER_API_URL && (result.TRIGGER_API_URL = env.TRIGGER_API_URL);
15
+ // remove TRIGGER_API_URL and TRIGGER_SECRET_KEY, since those should be coming from the worker
16
+ delete result.TRIGGER_API_URL;
17
+ delete result.TRIGGER_SECRET_KEY;
18
+ return result;
19
+ }
20
+ export function loadDotEnvVars(cwd, envFile) {
21
+ const envFilePath = envFile
22
+ ? resolve(cwd ?? process.cwd(), envFile)
23
+ : ENVVAR_FILES.map((p) => resolve(cwd ?? process.cwd(), p));
24
+ dotenv.config({
25
+ path: envFilePath,
26
+ });
27
+ }
28
+ //# sourceMappingURL=dotEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dotEnv.js","sourceRoot":"","sources":["../../../src/utilities/dotEnv.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,wBAAwB,CAAC,CAAC;AAE1F,MAAM,UAAU,iBAAiB,CAAC,GAAY,EAAE,OAAgB;IAC9D,MAAM,MAAM,GAA8B,EAAE,CAAC;IAE7C,MAAM,WAAW,GAAG,OAAO;QACzB,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC;QACxC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAE9D,MAAM,CAAC,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM;QAClB,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IAEH,GAAG,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC;IAEtE,8FAA8F;IAC9F,OAAO,MAAM,CAAC,eAAe,CAAC;IAC9B,OAAO,MAAM,CAAC,kBAAkB,CAAC;IAEjC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAY,EAAE,OAAgB;IAC3D,MAAM,WAAW,GAAG,OAAO;QACzB,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC;QACxC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAE9D,MAAM,CAAC,MAAM,CAAC;QACZ,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { BuildManifest, BuildTarget, TaskRunExecutionPayload, TaskRunExecutionResult } from "@trigger.dev/core/v3";
2
+ import { EventEmitter } from "node:events";
3
+ import { BackgroundWorker } from "../dev/backgroundWorker.js";
4
+ export type EventBusEvents = {
5
+ rebuildStarted: [BuildTarget];
6
+ buildStarted: [BuildTarget];
7
+ workerSkipped: [];
8
+ backgroundWorkerInitialized: [BackgroundWorker];
9
+ backgroundWorkerIndexingError: [BuildManifest, Error];
10
+ runStarted: [BackgroundWorker, TaskRunExecutionPayload];
11
+ runCompleted: [BackgroundWorker, TaskRunExecutionPayload, TaskRunExecutionResult, number];
12
+ };
13
+ export type EventBusEventArgs<T extends keyof EventBusEvents> = EventBusEvents[T];
14
+ export declare const eventBus: EventEmitter<EventBusEvents>;
@@ -0,0 +1,3 @@
1
+ import { EventEmitter } from "node:events";
2
+ export const eventBus = new EventEmitter();
3
+ //# sourceMappingURL=eventBus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eventBus.js","sourceRoot":"","sources":["../../../src/utilities/eventBus.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAe3C,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAkB,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare function createFile(path: string, contents: string | NodeJS.ArrayBufferView): Promise<string>;
2
+ export declare function isDirectory(configPath: string): boolean;
3
+ export declare function pathExists(path: string): Promise<boolean>;
4
+ export declare function someFileExists(directory: string, filenames: string[]): Promise<boolean>;
5
+ export declare function removeFile(path: string): Promise<void>;
6
+ export declare function readFile(path: string): Promise<string>;
7
+ export declare function readJSONFile(path: string): Promise<any>;
8
+ export declare function safeFeadJSONFile(path: string): Promise<any>;
9
+ export declare function writeJSONFile(path: string, json: any, pretty?: boolean): Promise<void>;
10
+ export declare function readJSONFileSync(path: string): any;
11
+ export declare function safeDeleteFileSync(path: string): void;
12
+ export declare function createTempDir(): Promise<string>;
@@ -0,0 +1,81 @@
1
+ import fsSync from "fs";
2
+ import fsModule, { writeFile } from "fs/promises";
3
+ import fs from "node:fs";
4
+ import { tmpdir } from "node:os";
5
+ import pathModule from "node:path";
6
+ // Creates a file at the given path, if the directory doesn't exist it will be created
7
+ export async function createFile(path, contents) {
8
+ await fsModule.mkdir(pathModule.dirname(path), { recursive: true });
9
+ await fsModule.writeFile(path, contents);
10
+ return path;
11
+ }
12
+ export function isDirectory(configPath) {
13
+ try {
14
+ return fs.statSync(configPath).isDirectory();
15
+ }
16
+ catch (error) {
17
+ // ignore error
18
+ return false;
19
+ }
20
+ }
21
+ export async function pathExists(path) {
22
+ return fsSync.existsSync(path);
23
+ }
24
+ export async function someFileExists(directory, filenames) {
25
+ for (let index = 0; index < filenames.length; index++) {
26
+ const filename = filenames[index];
27
+ if (!filename)
28
+ continue;
29
+ const path = pathModule.join(directory, filename);
30
+ if (await pathExists(path)) {
31
+ return true;
32
+ }
33
+ }
34
+ return false;
35
+ }
36
+ export async function removeFile(path) {
37
+ await fsModule.unlink(path);
38
+ }
39
+ export async function readFile(path) {
40
+ return await fsModule.readFile(path, "utf8");
41
+ }
42
+ export async function readJSONFile(path) {
43
+ const fileContents = await fsModule.readFile(path, "utf8");
44
+ return JSON.parse(fileContents);
45
+ }
46
+ export async function safeFeadJSONFile(path) {
47
+ try {
48
+ const fileExists = await pathExists(path);
49
+ if (!fileExists)
50
+ return;
51
+ const fileContents = await readFile(path);
52
+ return JSON.parse(fileContents);
53
+ }
54
+ catch {
55
+ return;
56
+ }
57
+ }
58
+ export async function writeJSONFile(path, json, pretty = false) {
59
+ await writeFile(path, JSON.stringify(json, undefined, pretty ? 2 : undefined), "utf8");
60
+ }
61
+ export function readJSONFileSync(path) {
62
+ const fileContents = fsSync.readFileSync(path, "utf8");
63
+ return JSON.parse(fileContents);
64
+ }
65
+ export function safeDeleteFileSync(path) {
66
+ try {
67
+ fs.unlinkSync(path);
68
+ }
69
+ catch (error) {
70
+ // ignore error
71
+ }
72
+ }
73
+ // Create a temporary directory within the OS's temp directory
74
+ export async function createTempDir() {
75
+ // Generate a unique temp directory path
76
+ const tempDirPath = pathModule.join(tmpdir(), "trigger-");
77
+ // Create the temp directory synchronously and return the path
78
+ const directory = await fsModule.mkdtemp(tempDirPath);
79
+ return directory;
80
+ }
81
+ //# sourceMappingURL=fileSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSystem.js","sourceRoot":"","sources":["../../../src/utilities/fileSystem.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export type ApiKeyType = {
2
+ environment: "dev" | "prod";
3
+ type: "server" | "public";
4
+ };
5
+ type Result = {
6
+ success: true;
7
+ } | {
8
+ success: false;
9
+ type: ApiKeyType | undefined;
10
+ };
11
+ export declare function checkApiKeyIsDevServer(apiKey: string): Result;
12
+ export declare function getApiKeyType(apiKey: string): ApiKeyType | undefined;
13
+ export {};
@@ -0,0 +1,44 @@
1
+ export function checkApiKeyIsDevServer(apiKey) {
2
+ const type = getApiKeyType(apiKey);
3
+ if (!type) {
4
+ return { success: false, type: undefined };
5
+ }
6
+ if (type.environment === "dev" && type.type === "server") {
7
+ return {
8
+ success: true,
9
+ };
10
+ }
11
+ return {
12
+ success: false,
13
+ type,
14
+ };
15
+ }
16
+ export function getApiKeyType(apiKey) {
17
+ if (apiKey.startsWith("tr_dev_")) {
18
+ return {
19
+ environment: "dev",
20
+ type: "server",
21
+ };
22
+ }
23
+ if (apiKey.startsWith("pk_dev_")) {
24
+ return {
25
+ environment: "dev",
26
+ type: "public",
27
+ };
28
+ }
29
+ // If they enter a prod key (tr_prod_), let them know
30
+ if (apiKey.startsWith("tr_prod_")) {
31
+ return {
32
+ environment: "prod",
33
+ type: "server",
34
+ };
35
+ }
36
+ if (apiKey.startsWith("pk_prod_")) {
37
+ return {
38
+ environment: "prod",
39
+ type: "public",
40
+ };
41
+ }
42
+ return;
43
+ }
44
+ //# sourceMappingURL=getApiKeyType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getApiKeyType.js","sourceRoot":"","sources":["../../../src/utilities/getApiKeyType.ts"],"names":[],"mappings":"AAcA,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAEnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzD,OAAO;YACL,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK;QACd,IAAI;KACL,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,WAAW,EAAE,KAAK;YAClB,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,OAAO;YACL,WAAW,EAAE,KAAK;YAClB,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,WAAW,EAAE,MAAM;YACnB,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;IAED,OAAO;AACT,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function printInitialBanner(performUpdateCheck?: boolean): Promise<void>;
2
+ export declare function printStandloneInitialBanner(performUpdateCheck?: boolean): Promise<void>;
3
+ export declare function printDevBanner(printTopBorder?: boolean): void;
4
+ export declare function updateCheck(): Promise<string | undefined>;
@@ -0,0 +1,82 @@
1
+ import chalk from "chalk";
2
+ import { getLatestVersion } from "fast-npm-meta";
3
+ import { VERSION } from "../version.js";
4
+ import { chalkGrey, chalkRun, chalkTask, chalkWorker, logo } from "./cliOutput.js";
5
+ import { logger } from "./logger.js";
6
+ import { spinner } from "./windows.js";
7
+ export async function printInitialBanner(performUpdateCheck = true) {
8
+ const text = `\n${logo()} ${chalkGrey(`(${VERSION})`)}\n`;
9
+ logger.info(text);
10
+ let maybeNewVersion;
11
+ if (performUpdateCheck) {
12
+ const $spinner = spinner();
13
+ $spinner.start("Checking for updates");
14
+ maybeNewVersion = await updateCheck();
15
+ // Log a slightly more noticeable message if this is a major bump
16
+ if (maybeNewVersion !== undefined) {
17
+ $spinner.stop(`Update available ${chalk.green(maybeNewVersion)}`);
18
+ const currentMajor = parseInt(VERSION.split(".")[0]);
19
+ const newMajor = parseInt(maybeNewVersion.split(".")[0]);
20
+ logger.debug(`updateCheck: ${VERSION} -> ${maybeNewVersion}`);
21
+ if (newMajor > currentMajor) {
22
+ logger.warn(`Please update to the latest version of \`trigger.dev\` to prevent critical errors.
23
+ Run \`npm install --save-dev trigger.dev@${newMajor}\` to update to the latest version.
24
+ After installation, run Trigger.dev with \`npx trigger.dev\`.`);
25
+ }
26
+ else {
27
+ }
28
+ }
29
+ else {
30
+ $spinner.stop("On latest version");
31
+ }
32
+ }
33
+ }
34
+ export async function printStandloneInitialBanner(performUpdateCheck = true) {
35
+ if (performUpdateCheck) {
36
+ const maybeNewVersion = await updateCheck();
37
+ // Log a slightly more noticeable message if this is a major bump
38
+ if (maybeNewVersion !== undefined) {
39
+ logger.log(`\n${logo()} ${chalkGrey(`(${VERSION} -> ${chalk.green(maybeNewVersion)})`)}`);
40
+ }
41
+ else {
42
+ logger.log(`\n${logo()} ${chalkGrey(`(${VERSION})`)}`);
43
+ }
44
+ }
45
+ else {
46
+ logger.log(`\n${logo()} ${chalkGrey(`(${VERSION})`)}`);
47
+ }
48
+ logger.log(`${chalkGrey("-".repeat(54))}`);
49
+ }
50
+ export function printDevBanner(printTopBorder = true) {
51
+ if (printTopBorder) {
52
+ logger.log(chalkGrey("-".repeat(54)));
53
+ }
54
+ logger.log(`${chalkGrey("Key:")} ${chalkWorker("Version")} ${chalkGrey("|")} ${chalkTask("Task")} ${chalkGrey("|")} ${chalkRun("Run")}`);
55
+ logger.log(chalkGrey("-".repeat(54)));
56
+ }
57
+ async function doUpdateCheck() {
58
+ try {
59
+ // default cache for update check is 1 day
60
+ const meta = await getLatestVersion("trigger.dev@latest", { force: true });
61
+ if (!meta.version) {
62
+ return;
63
+ }
64
+ const compareVersions = (a, b) => a.localeCompare(b, "en-US", { numeric: true });
65
+ const comparison = compareVersions(VERSION, meta.version);
66
+ if (comparison === -1) {
67
+ return meta.version;
68
+ }
69
+ return;
70
+ }
71
+ catch (err) {
72
+ // ignore error
73
+ logger.debug(err);
74
+ return;
75
+ }
76
+ }
77
+ //only do this once while the cli is running
78
+ let updateCheckPromise;
79
+ export function updateCheck() {
80
+ return (updateCheckPromise ??= doUpdateCheck());
81
+ }
82
+ //# sourceMappingURL=initialBanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialBanner.js","sourceRoot":"","sources":["../../../src/utilities/initialBanner.ts"],"names":[],"mappings":"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"}