@trigger.dev/sdk 4.5.14 → 4.5.15

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/dist/commonjs/v3/ai-shared.d.ts +7 -0
  2. package/dist/commonjs/v3/ai-shared.js +15 -0
  3. package/dist/commonjs/v3/ai-shared.js.map +1 -1
  4. package/dist/commonjs/v3/ai.d.ts +11 -1
  5. package/dist/commonjs/v3/ai.js +11 -3
  6. package/dist/commonjs/v3/ai.js.map +1 -1
  7. package/dist/commonjs/v3/chat-client.js +1 -1
  8. package/dist/commonjs/v3/chat-client.js.map +1 -1
  9. package/dist/commonjs/v3/chat-server.d.ts +2 -1
  10. package/dist/commonjs/v3/chat-server.js +3 -3
  11. package/dist/commonjs/v3/chat-server.js.map +1 -1
  12. package/dist/commonjs/v3/sessions.d.ts +42 -13
  13. package/dist/commonjs/v3/sessions.js +85 -16
  14. package/dist/commonjs/v3/sessions.js.map +1 -1
  15. package/dist/commonjs/version.js +1 -1
  16. package/dist/esm/v3/ai-shared.d.ts +7 -0
  17. package/dist/esm/v3/ai-shared.js +14 -0
  18. package/dist/esm/v3/ai-shared.js.map +1 -1
  19. package/dist/esm/v3/ai.d.ts +11 -1
  20. package/dist/esm/v3/ai.js +12 -4
  21. package/dist/esm/v3/ai.js.map +1 -1
  22. package/dist/esm/v3/chat-client.js +2 -2
  23. package/dist/esm/v3/chat-client.js.map +1 -1
  24. package/dist/esm/v3/chat-server.d.ts +2 -1
  25. package/dist/esm/v3/chat-server.js +3 -3
  26. package/dist/esm/v3/chat-server.js.map +1 -1
  27. package/dist/esm/v3/sessions.d.ts +42 -13
  28. package/dist/esm/v3/sessions.js +85 -16
  29. package/dist/esm/v3/sessions.js.map +1 -1
  30. package/dist/esm/version.js +1 -1
  31. package/docs/ai-chat/reference.mdx +1 -1
  32. package/docs/ai-chat/sessions.mdx +1 -1
  33. package/docs/ai-chat/side-channels.mdx +172 -0
  34. package/docs/mcp-tools.mdx +37 -0
  35. package/docs/realtime/react-hooks/session-stream.mdx +17 -0
  36. package/package.json +5 -2
  37. package/dist/commonjs/v3/auth.test.d.ts +0 -1
  38. package/dist/commonjs/v3/auth.test.js +0 -149
  39. package/dist/commonjs/v3/auth.test.js.map +0 -1
  40. package/dist/commonjs/v3/batchDebounce.test.d.ts +0 -1
  41. package/dist/commonjs/v3/batchDebounce.test.js +0 -189
  42. package/dist/commonjs/v3/batchDebounce.test.js.map +0 -1
  43. package/dist/commonjs/v3/chat-server.test.d.ts +0 -1
  44. package/dist/commonjs/v3/chat-server.test.js +0 -713
  45. package/dist/commonjs/v3/chat-server.test.js.map +0 -1
  46. package/dist/commonjs/v3/chat-tab-coordinator.test.d.ts +0 -1
  47. package/dist/commonjs/v3/chat-tab-coordinator.test.js +0 -140
  48. package/dist/commonjs/v3/chat-tab-coordinator.test.js.map +0 -1
  49. package/dist/commonjs/v3/chat.test.d.ts +0 -1
  50. package/dist/commonjs/v3/chat.test.js +0 -1838
  51. package/dist/commonjs/v3/chat.test.js.map +0 -1
  52. package/dist/commonjs/v3/createStartSessionAction.test.d.ts +0 -1
  53. package/dist/commonjs/v3/createStartSessionAction.test.js +0 -176
  54. package/dist/commonjs/v3/createStartSessionAction.test.js.map +0 -1
  55. package/dist/commonjs/v3/runs-bulk.test.d.ts +0 -1
  56. package/dist/commonjs/v3/runs-bulk.test.js +0 -141
  57. package/dist/commonjs/v3/runs-bulk.test.js.map +0 -1
  58. package/dist/commonjs/v3/schedules/index.test.d.ts +0 -1
  59. package/dist/commonjs/v3/schedules/index.test.js +0 -49
  60. package/dist/commonjs/v3/schedules/index.test.js.map +0 -1
  61. package/dist/commonjs/v3/schedules/index.types.test.d.ts +0 -1
  62. package/dist/commonjs/v3/schedules/index.types.test.js +0 -93
  63. package/dist/commonjs/v3/schedules/index.types.test.js.map +0 -1
  64. package/dist/commonjs/v3/sessions.test.d.ts +0 -1
  65. package/dist/commonjs/v3/sessions.test.js +0 -154
  66. package/dist/commonjs/v3/sessions.test.js.map +0 -1
  67. package/dist/commonjs/v3/shared.test.d.ts +0 -1
  68. package/dist/commonjs/v3/shared.test.js +0 -236
  69. package/dist/commonjs/v3/shared.test.js.map +0 -1
  70. package/dist/commonjs/v3/streams.test.d.ts +0 -1
  71. package/dist/commonjs/v3/streams.test.js +0 -51
  72. package/dist/commonjs/v3/streams.test.js.map +0 -1
  73. package/dist/commonjs/v3/triggerClient.test.d.ts +0 -1
  74. package/dist/commonjs/v3/triggerClient.test.js +0 -226
  75. package/dist/commonjs/v3/triggerClient.test.js.map +0 -1
  76. package/dist/commonjs/v3/triggerClient.types.test.d.ts +0 -1
  77. package/dist/commonjs/v3/triggerClient.types.test.js +0 -123
  78. package/dist/commonjs/v3/triggerClient.types.test.js.map +0 -1
  79. package/dist/esm/v3/auth.test.d.ts +0 -1
  80. package/dist/esm/v3/auth.test.js +0 -147
  81. package/dist/esm/v3/auth.test.js.map +0 -1
  82. package/dist/esm/v3/batchDebounce.test.d.ts +0 -1
  83. package/dist/esm/v3/batchDebounce.test.js +0 -187
  84. package/dist/esm/v3/batchDebounce.test.js.map +0 -1
  85. package/dist/esm/v3/chat-server.test.d.ts +0 -1
  86. package/dist/esm/v3/chat-server.test.js +0 -711
  87. package/dist/esm/v3/chat-server.test.js.map +0 -1
  88. package/dist/esm/v3/chat-tab-coordinator.test.d.ts +0 -1
  89. package/dist/esm/v3/chat-tab-coordinator.test.js +0 -138
  90. package/dist/esm/v3/chat-tab-coordinator.test.js.map +0 -1
  91. package/dist/esm/v3/chat.test.d.ts +0 -1
  92. package/dist/esm/v3/chat.test.js +0 -1836
  93. package/dist/esm/v3/chat.test.js.map +0 -1
  94. package/dist/esm/v3/createStartSessionAction.test.d.ts +0 -1
  95. package/dist/esm/v3/createStartSessionAction.test.js +0 -174
  96. package/dist/esm/v3/createStartSessionAction.test.js.map +0 -1
  97. package/dist/esm/v3/runs-bulk.test.d.ts +0 -1
  98. package/dist/esm/v3/runs-bulk.test.js +0 -139
  99. package/dist/esm/v3/runs-bulk.test.js.map +0 -1
  100. package/dist/esm/v3/schedules/index.test.d.ts +0 -1
  101. package/dist/esm/v3/schedules/index.test.js +0 -47
  102. package/dist/esm/v3/schedules/index.test.js.map +0 -1
  103. package/dist/esm/v3/schedules/index.types.test.d.ts +0 -1
  104. package/dist/esm/v3/schedules/index.types.test.js +0 -91
  105. package/dist/esm/v3/schedules/index.types.test.js.map +0 -1
  106. package/dist/esm/v3/sessions.test.d.ts +0 -1
  107. package/dist/esm/v3/sessions.test.js +0 -152
  108. package/dist/esm/v3/sessions.test.js.map +0 -1
  109. package/dist/esm/v3/shared.test.d.ts +0 -1
  110. package/dist/esm/v3/shared.test.js +0 -234
  111. package/dist/esm/v3/shared.test.js.map +0 -1
  112. package/dist/esm/v3/streams.test.d.ts +0 -1
  113. package/dist/esm/v3/streams.test.js +0 -49
  114. package/dist/esm/v3/streams.test.js.map +0 -1
  115. package/dist/esm/v3/triggerClient.test.d.ts +0 -1
  116. package/dist/esm/v3/triggerClient.test.js +0 -224
  117. package/dist/esm/v3/triggerClient.test.js.map +0 -1
  118. package/dist/esm/v3/triggerClient.types.test.d.ts +0 -1
  119. package/dist/esm/v3/triggerClient.types.test.js +0 -88
  120. package/dist/esm/v3/triggerClient.types.test.js.map +0 -1
@@ -1,91 +0,0 @@
1
- import { describe, it } from "vitest";
2
- import { create, task, update } from "./index.js";
3
- function assertDeclarativeScheduleWindowTypes() {
4
- task({
5
- id: "valid-window",
6
- cron: { pattern: "*/5 * * * *", window: "30m" },
7
- run: async () => undefined,
8
- });
9
- task({
10
- id: "runtime-window",
11
- cron: { pattern: "*/5 * * * *", window: runtimeWindow },
12
- run: async () => undefined,
13
- });
14
- task({
15
- id: "duration-too-large",
16
- // @ts-expect-error Schedule windows cannot exceed 24 hours.
17
- cron: { pattern: "*/5 * * * *", window: "25h" },
18
- run: async () => undefined,
19
- });
20
- task({
21
- id: "percentage-too-large",
22
- // @ts-expect-error Schedule window percentages cannot exceed 100%.
23
- cron: { pattern: "*/5 * * * *", window: "101%" },
24
- run: async () => undefined,
25
- });
26
- task({
27
- id: "unsupported-unit",
28
- // @ts-expect-error Days are not a supported schedule-window unit.
29
- cron: { pattern: "*/5 * * * *", window: "1d" },
30
- run: async () => undefined,
31
- });
32
- task({
33
- id: "fractional-window",
34
- // @ts-expect-error Schedule windows must use whole numbers.
35
- cron: { pattern: "*/5 * * * *", window: "1.5m" },
36
- run: async () => undefined,
37
- });
38
- task({
39
- id: "negative-window",
40
- // @ts-expect-error Schedule windows must be non-negative.
41
- cron: { pattern: "*/5 * * * *", window: "-1m" },
42
- run: async () => undefined,
43
- });
44
- task({
45
- id: "leading-zero-window",
46
- // @ts-expect-error Schedule windows must use canonical whole numbers.
47
- cron: { pattern: "*/5 * * * *", window: "01m" },
48
- run: async () => undefined,
49
- });
50
- }
51
- function assertImperativeScheduleWindowTypes() {
52
- create({
53
- task: "scheduled-task",
54
- cron: "*/5 * * * *",
55
- deduplicationKey: "valid",
56
- window: "50%",
57
- });
58
- create({
59
- task: "scheduled-task",
60
- cron: "*/5 * * * *",
61
- deduplicationKey: "runtime",
62
- window: runtimeWindow,
63
- });
64
- update("schedule_123", {
65
- task: "scheduled-task",
66
- cron: "*/5 * * * *",
67
- window: "1440m",
68
- });
69
- create({
70
- task: "scheduled-task",
71
- cron: "*/5 * * * *",
72
- deduplicationKey: "invalid",
73
- // @ts-expect-error Schedule windows cannot exceed 24 hours.
74
- window: "1441m",
75
- });
76
- update("schedule_123", {
77
- task: "scheduled-task",
78
- cron: "*/5 * * * *",
79
- // @ts-expect-error Schedule windows must use a supported unit.
80
- window: "30s",
81
- });
82
- }
83
- describe("schedule window types", () => {
84
- it("validates declarative schedule literals", () => {
85
- void assertDeclarativeScheduleWindowTypes;
86
- });
87
- it("validates imperative schedule literals", () => {
88
- void assertImperativeScheduleWindowTypes;
89
- });
90
- });
91
- //# sourceMappingURL=index.types.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.types.test.js","sourceRoot":"","sources":["../../../../src/v3/schedules/index.types.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,152 +0,0 @@
1
- import { describe, expect, it, vi } from "vitest";
2
- // Per-test override for the stubbed SessionStreamInstance's wait() so a
3
- // test can simulate downstream writer failures (e.g. S2 auth error after
4
- // initializeSessionStream returned a stale token). Reset at the top of
5
- // each test that touches it.
6
- let stubWaitImpl;
7
- // Stub `SessionStreamInstance` so constructing a channel writer doesn't try
8
- // to reach S2. The stub still invokes the `initializeSession` callback the
9
- // channel passes in, which is the whole point: that's how the cache gets
10
- // exercised. wait() resolves immediately by default; tests can override it
11
- // via `stubWaitImpl` to verify reactive invalidation on writer failure.
12
- vi.mock("@trigger.dev/core/v3", async (importActual) => {
13
- const actual = (await importActual());
14
- class StubSessionStreamInstance {
15
- waitPromise;
16
- constructor(opts) {
17
- // Drain the source so the upstream tee doesn't backpressure-stall.
18
- void (async () => {
19
- const reader = opts.source.getReader();
20
- try {
21
- while (true) {
22
- const { done } = await reader.read();
23
- if (done)
24
- break;
25
- }
26
- }
27
- finally {
28
- reader.releaseLock();
29
- }
30
- })();
31
- // Trigger the initializeSession callback so the cache path runs.
32
- opts.initializeSession?.().catch(() => {
33
- // Failures are observed via the spy; swallow here so unhandled
34
- // rejection warnings don't leak through the stub.
35
- });
36
- // Capture the wait outcome once at construction (mirrors real
37
- // SessionStreamInstance which kicks off initializeWriter from the
38
- // ctor). All subsequent wait() calls return the same promise so
39
- // a single failure is observable by every consumer in the channel
40
- // (`.finally`, reactive `.catch`, and customer `waitUntilComplete`).
41
- this.waitPromise = stubWaitImpl
42
- ? stubWaitImpl()
43
- : Promise.resolve({ lastEventId: undefined });
44
- // Claim any rejection so test runs don't surface as unhandled.
45
- // Real awaiters still observe the rejection when they `await` it.
46
- this.waitPromise.catch(() => { });
47
- }
48
- async wait() {
49
- return this.waitPromise;
50
- }
51
- get stream() {
52
- return new ReadableStream({ start: (c) => c.close() });
53
- }
54
- }
55
- return { ...actual, SessionStreamInstance: StubSessionStreamInstance };
56
- });
57
- import { SessionOutputChannel } from "./sessions.js";
58
- import { apiClientManager } from "@trigger.dev/core/v3";
59
- function installStubApiClient(impl) {
60
- const stub = { initializeSessionStream: impl };
61
- // `apiClientManager.clientOrThrow()` is what `#pipeInternal` reaches for.
62
- vi.spyOn(apiClientManager, "clientOrThrow").mockReturnValue(stub);
63
- return stub;
64
- }
65
- function emptyStream() {
66
- return new ReadableStream({ start: (c) => c.close() });
67
- }
68
- describe("SessionOutputChannel initializeSessionStream cache", () => {
69
- it("dedupes repeated pipe()/writer() calls for the same channel", async () => {
70
- stubWaitImpl = undefined;
71
- const spy = vi.fn(async () => ({ version: "v2", headers: {} }));
72
- installStubApiClient(spy);
73
- const channel = new SessionOutputChannel("session-1");
74
- const p1 = channel.pipe(emptyStream());
75
- const p2 = channel.pipe(emptyStream());
76
- const p3 = channel.writer({
77
- execute: ({ write }) => {
78
- write({ chunk: 1 });
79
- },
80
- });
81
- await Promise.all([p1.waitUntilComplete(), p2.waitUntilComplete(), p3.waitUntilComplete()]);
82
- expect(spy).toHaveBeenCalledTimes(1);
83
- expect(spy).toHaveBeenCalledWith("session-1", "out", undefined);
84
- });
85
- it("evicts on initialize failure so the next call retries instead of returning a poisoned entry", async () => {
86
- stubWaitImpl = undefined;
87
- const spy = vi
88
- .fn()
89
- .mockRejectedValueOnce(new Error("boom"))
90
- .mockResolvedValueOnce({ version: "v2", headers: {} });
91
- installStubApiClient(spy);
92
- const channel = new SessionOutputChannel("session-1");
93
- const firstAttempt = channel.pipe(emptyStream());
94
- // First call fails — the stub swallows the rejection on the
95
- // initializeSession callback, but the cache eviction handler still runs.
96
- await firstAttempt.waitUntilComplete();
97
- // Settle pending microtasks so the .catch() eviction fires.
98
- await new Promise((resolve) => setTimeout(resolve, 0));
99
- const retried = channel.pipe(emptyStream());
100
- await retried.waitUntilComplete();
101
- expect(spy).toHaveBeenCalledTimes(2);
102
- });
103
- it("reset() clears cached entries so the next call re-PUTs", async () => {
104
- stubWaitImpl = undefined;
105
- const spy = vi.fn(async () => ({ version: "v2", headers: {} }));
106
- installStubApiClient(spy);
107
- const channel = new SessionOutputChannel("session-1");
108
- await channel.pipe(emptyStream()).waitUntilComplete();
109
- expect(spy).toHaveBeenCalledTimes(1);
110
- channel.reset();
111
- await channel.pipe(emptyStream()).waitUntilComplete();
112
- expect(spy).toHaveBeenCalledTimes(2);
113
- });
114
- it("scopes the cache per channel instance", async () => {
115
- stubWaitImpl = undefined;
116
- const spy = vi.fn(async () => ({ version: "v2", headers: {} }));
117
- installStubApiClient(spy);
118
- const channelA = new SessionOutputChannel("session-a");
119
- const channelB = new SessionOutputChannel("session-b");
120
- await Promise.all([
121
- channelA.pipe(emptyStream()).waitUntilComplete(),
122
- channelB.pipe(emptyStream()).waitUntilComplete(),
123
- ]);
124
- expect(spy).toHaveBeenCalledTimes(2);
125
- expect(spy).toHaveBeenCalledWith("session-a", "out", undefined);
126
- expect(spy).toHaveBeenCalledWith("session-b", "out", undefined);
127
- });
128
- it("evicts the cache when a writer's wait() rejects (simulated stale-token failure)", async () => {
129
- const spy = vi.fn(async () => ({ version: "v2", headers: {} }));
130
- installStubApiClient(spy);
131
- // First writer's wait() rejects (e.g. S2 returned 401 after the cached
132
- // token expired mid-process); subsequent writers' wait() resolve cleanly.
133
- let waitCallCount = 0;
134
- stubWaitImpl = async () => {
135
- waitCallCount++;
136
- if (waitCallCount === 1)
137
- throw new Error("S2 auth failed: token expired");
138
- return { lastEventId: undefined };
139
- };
140
- const channel = new SessionOutputChannel("session-1");
141
- const failed = channel.pipe(emptyStream());
142
- await expect(failed.waitUntilComplete()).rejects.toThrow(/token expired/);
143
- // Settle microtasks so the reactive .catch eviction handler fires.
144
- await new Promise((resolve) => setTimeout(resolve, 0));
145
- const recovered = channel.pipe(emptyStream());
146
- await recovered.waitUntilComplete();
147
- // Cache evicted ⇒ second pipe() re-PUT ⇒ two distinct initialize calls.
148
- expect(spy).toHaveBeenCalledTimes(2);
149
- stubWaitImpl = undefined;
150
- });
151
- });
152
- //# sourceMappingURL=sessions.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessions.test.js","sourceRoot":"","sources":["../../../src/v3/sessions.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,234 +0,0 @@
1
- import { ApiClient } from "@trigger.dev/core/v3";
2
- import { describe, it, expect } from "vitest";
3
- import { offloadBatchItemPayloads, readableStreamToAsyncIterable, uniqueBatchTaskIdentifiers, } from "./shared.js";
4
- describe("uniqueBatchTaskIdentifiers", () => {
5
- it("returns a stable, deduplicated declaration for batch creation", () => {
6
- expect(uniqueBatchTaskIdentifiers([
7
- { index: 0, task: "task-b", payload: "{}" },
8
- { index: 1, task: "task-a", payload: "{}" },
9
- { index: 2, task: "task-b", payload: "{}" },
10
- ])).toEqual(["task-a", "task-b"]);
11
- });
12
- });
13
- describe("offloadBatchItemPayloads", () => {
14
- // A real client is required for conditionallyExportPacket's truthy check; small payloads
15
- // short-circuit before any network call, so this never actually reaches the server.
16
- const apiClient = new ApiClient("http://localhost:3030", "tr_dev_test");
17
- it("returns an empty array unchanged", async () => {
18
- expect(await offloadBatchItemPayloads([], apiClient)).toEqual([]);
19
- });
20
- it("passes small payloads through and records their pre-offload byte size", async () => {
21
- const payload = JSON.stringify({ hello: "world" });
22
- const result = await offloadBatchItemPayloads([{ index: 0, task: "my-task", payload, options: { payloadType: "application/json" } }], apiClient);
23
- const item = result[0];
24
- expect(item.payload).toBe(payload);
25
- expect(item.options?.payloadType).toBe("application/json");
26
- expect(item.options?.payloadSize).toBe(Buffer.byteLength(payload, "utf8"));
27
- });
28
- it("measures multi-byte payloads by byte length, not character count", async () => {
29
- const payload = "€€€"; // 3 chars, 9 bytes in UTF-8
30
- const result = await offloadBatchItemPayloads([{ index: 0, task: "my-task", payload, options: { payloadType: "application/json" } }], apiClient);
31
- expect(result[0].options?.payloadSize).toBe(9);
32
- });
33
- it("leaves an already-offloaded (application/store) item untouched", async () => {
34
- const item = {
35
- index: 0,
36
- task: "my-task",
37
- payload: "trigger/my-task/123/payload.json",
38
- options: { payloadType: "application/store" },
39
- };
40
- const result = await offloadBatchItemPayloads([item], apiClient);
41
- expect(result[0]).toEqual(item);
42
- });
43
- it("leaves items without a string payload untouched", async () => {
44
- const item = { index: 0, task: "my-task", options: {} };
45
- const result = await offloadBatchItemPayloads([item], apiClient);
46
- expect(result[0]).toEqual(item);
47
- });
48
- });
49
- describe("readableStreamToAsyncIterable", () => {
50
- it("yields all values from the stream", async () => {
51
- const values = [1, 2, 3, 4, 5];
52
- const stream = new ReadableStream({
53
- start(controller) {
54
- for (const value of values) {
55
- controller.enqueue(value);
56
- }
57
- controller.close();
58
- },
59
- });
60
- const result = [];
61
- for await (const value of readableStreamToAsyncIterable(stream)) {
62
- result.push(value);
63
- }
64
- expect(result).toEqual(values);
65
- });
66
- it("cancels the stream when consumer breaks early", async () => {
67
- let cancelCalled = false;
68
- const stream = new ReadableStream({
69
- start(controller) {
70
- controller.enqueue(1);
71
- controller.enqueue(2);
72
- controller.enqueue(3);
73
- controller.enqueue(4);
74
- controller.enqueue(5);
75
- controller.close();
76
- },
77
- cancel() {
78
- cancelCalled = true;
79
- },
80
- });
81
- const result = [];
82
- for await (const value of readableStreamToAsyncIterable(stream)) {
83
- result.push(value);
84
- if (value === 2) {
85
- break; // Early termination
86
- }
87
- }
88
- expect(result).toEqual([1, 2]);
89
- expect(cancelCalled).toBe(true);
90
- });
91
- it("cancels the stream when consumer throws an error", async () => {
92
- let cancelCalled = false;
93
- const stream = new ReadableStream({
94
- start(controller) {
95
- controller.enqueue(1);
96
- controller.enqueue(2);
97
- controller.enqueue(3);
98
- controller.close();
99
- },
100
- cancel() {
101
- cancelCalled = true;
102
- },
103
- });
104
- const result = [];
105
- const testError = new Error("Test error");
106
- await expect(async () => {
107
- for await (const value of readableStreamToAsyncIterable(stream)) {
108
- result.push(value);
109
- if (value === 2) {
110
- throw testError;
111
- }
112
- }
113
- }).rejects.toThrow(testError);
114
- expect(result).toEqual([1, 2]);
115
- expect(cancelCalled).toBe(true);
116
- });
117
- it("handles stream that produces values asynchronously", async () => {
118
- const values = ["a", "b", "c"];
119
- let index = 0;
120
- const stream = new ReadableStream({
121
- async pull(controller) {
122
- if (index < values.length) {
123
- // Simulate async data production
124
- await new Promise((resolve) => setTimeout(resolve, 1));
125
- controller.enqueue(values[index]);
126
- index++;
127
- }
128
- else {
129
- controller.close();
130
- }
131
- },
132
- });
133
- const result = [];
134
- for await (const value of readableStreamToAsyncIterable(stream)) {
135
- result.push(value);
136
- }
137
- expect(result).toEqual(values);
138
- });
139
- it("cancels async stream when consumer breaks early", async () => {
140
- let cancelCalled = false;
141
- let producedCount = 0;
142
- const stream = new ReadableStream({
143
- async pull(controller) {
144
- // Simulate async data production
145
- await new Promise((resolve) => setTimeout(resolve, 1));
146
- producedCount++;
147
- controller.enqueue(producedCount);
148
- // Never close - infinite stream
149
- },
150
- cancel() {
151
- cancelCalled = true;
152
- },
153
- });
154
- const result = [];
155
- for await (const value of readableStreamToAsyncIterable(stream)) {
156
- result.push(value);
157
- if (value >= 3) {
158
- break;
159
- }
160
- }
161
- expect(result).toEqual([1, 2, 3]);
162
- expect(cancelCalled).toBe(true);
163
- });
164
- it("does not throw when cancelling an already-closed stream", async () => {
165
- const stream = new ReadableStream({
166
- start(controller) {
167
- controller.enqueue(1);
168
- controller.close();
169
- },
170
- });
171
- // Normal iteration should complete without errors
172
- const result = [];
173
- for await (const value of readableStreamToAsyncIterable(stream)) {
174
- result.push(value);
175
- }
176
- expect(result).toEqual([1]);
177
- });
178
- it("does not throw when cancelling an errored stream", async () => {
179
- const streamError = new Error("Stream error");
180
- let errorIndex = 0;
181
- const stream = new ReadableStream({
182
- pull(controller) {
183
- errorIndex++;
184
- if (errorIndex <= 2) {
185
- controller.enqueue(errorIndex);
186
- }
187
- else {
188
- controller.error(streamError);
189
- }
190
- },
191
- });
192
- const result = [];
193
- // The stream error should propagate
194
- await expect(async () => {
195
- for await (const value of readableStreamToAsyncIterable(stream)) {
196
- result.push(value);
197
- }
198
- }).rejects.toThrow(streamError);
199
- // We should have gotten the values before the error
200
- expect(result).toEqual([1, 2]);
201
- });
202
- it("signals upstream producer to stop via cancel", async () => {
203
- const producedValues = [];
204
- let isProducing = true;
205
- const stream = new ReadableStream({
206
- async pull(controller) {
207
- if (!isProducing)
208
- return;
209
- await new Promise((resolve) => setTimeout(resolve, 5));
210
- const value = producedValues.length + 1;
211
- producedValues.push(value);
212
- controller.enqueue(value);
213
- },
214
- cancel() {
215
- isProducing = false;
216
- },
217
- });
218
- const consumed = [];
219
- for await (const value of readableStreamToAsyncIterable(stream)) {
220
- consumed.push(value);
221
- if (value >= 2) {
222
- break;
223
- }
224
- }
225
- // Wait a bit to ensure no more values are produced
226
- await new Promise((resolve) => setTimeout(resolve, 20));
227
- expect(consumed).toEqual([1, 2]);
228
- // Producer should have stopped after cancel
229
- expect(isProducing).toBe(false);
230
- // No more values should have been produced after breaking
231
- expect(producedValues.length).toBeLessThanOrEqual(3);
232
- });
233
- });
234
- //# sourceMappingURL=shared.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.test.js","sourceRoot":"","sources":["../../../src/v3/shared.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,49 +0,0 @@
1
- import { realtimeStreams } from "@trigger.dev/core/v3";
2
- import { beforeEach, describe, expect, it, vi } from "vitest";
3
- import { streams } from "./streams.js";
4
- vi.mock("@trigger.dev/core/v3", async (importOriginal) => {
5
- const original = await importOriginal();
6
- return {
7
- ...original,
8
- taskContext: {
9
- ctx: {
10
- run: {
11
- id: "run_123",
12
- // parentTaskRunId and rootTaskRunId are undefined for root tasks
13
- },
14
- },
15
- },
16
- realtimeStreams: {
17
- pipe: vi.fn().mockReturnValue({
18
- wait: () => Promise.resolve(),
19
- stream: new ReadableStream(),
20
- }),
21
- },
22
- };
23
- });
24
- describe("streams.pipe consistency", () => {
25
- beforeEach(() => {
26
- vi.clearAllMocks();
27
- });
28
- it("should not throw and should use self runId when target is 'root' in a root task", async () => {
29
- const mockStream = new ReadableStream();
30
- // This should not throw anymore
31
- const { waitUntilComplete: _waitUntilComplete } = streams.pipe("test-key", mockStream, {
32
- target: "root",
33
- });
34
- expect(realtimeStreams.pipe).toHaveBeenCalledWith("test-key", mockStream, expect.objectContaining({
35
- target: "run_123",
36
- }));
37
- });
38
- it("should not throw and should use self runId when target is 'parent' in a root task", async () => {
39
- const mockStream = new ReadableStream();
40
- // This should not throw anymore
41
- const { waitUntilComplete: _waitUntilComplete } = streams.pipe("test-key", mockStream, {
42
- target: "parent",
43
- });
44
- expect(realtimeStreams.pipe).toHaveBeenCalledWith("test-key", mockStream, expect.objectContaining({
45
- target: "run_123",
46
- }));
47
- });
48
- });
49
- //# sourceMappingURL=streams.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"streams.test.js","sourceRoot":"","sources":["../../../src/v3/streams.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACvD,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAe,CAAC;IACrD,OAAO;QACL,GAAG,QAAQ;QACX,WAAW,EAAE;YACX,GAAG,EAAE;gBACH,GAAG,EAAE;oBACH,EAAE,EAAE,SAAS;oBACb,iEAAiE;iBAClE;aACF;SACF;QACD,eAAe,EAAE;YACf,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;gBAC5B,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;gBAC7B,MAAM,EAAE,IAAI,cAAc,EAAE;aAC7B,CAAC;SACH;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,UAAU,GAAG,IAAI,cAAc,EAAE,CAAC;QAExC,gCAAgC;QAChC,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE;YACrF,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAC/C,UAAU,EACV,UAAU,EACV,MAAM,CAAC,gBAAgB,CAAC;YACtB,MAAM,EAAE,SAAS;SAClB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,UAAU,GAAG,IAAI,cAAc,EAAE,CAAC;QAExC,gCAAgC;QAChC,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE;YACrF,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QAEH,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAC/C,UAAU,EACV,UAAU,EACV,MAAM,CAAC,gBAAgB,CAAC;YACtB,MAAM,EAAE,SAAS;SAClB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};