@trigger.dev/react-hooks 4.5.13 → 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 (37) hide show
  1. package/dist/commonjs/hooks/useApiClient.d.ts +5 -0
  2. package/dist/commonjs/hooks/useApiClient.js +14 -1
  3. package/dist/commonjs/hooks/useApiClient.js.map +1 -1
  4. package/dist/commonjs/hooks/useRealtime.d.ts +43 -1
  5. package/dist/commonjs/hooks/useRealtime.js +65 -22
  6. package/dist/commonjs/hooks/useRealtime.js.map +1 -1
  7. package/dist/commonjs/hooks/useSessionStream.d.ts +131 -0
  8. package/dist/commonjs/hooks/useSessionStream.js +236 -0
  9. package/dist/commonjs/hooks/useSessionStream.js.map +1 -0
  10. package/dist/commonjs/hooks/useSessionStreamChannel.d.ts +86 -0
  11. package/dist/commonjs/hooks/useSessionStreamChannel.js +209 -0
  12. package/dist/commonjs/hooks/useSessionStreamChannel.js.map +1 -0
  13. package/dist/commonjs/index.d.ts +2 -0
  14. package/dist/commonjs/index.js +2 -0
  15. package/dist/commonjs/index.js.map +1 -1
  16. package/dist/commonjs/utils/useStableRequestCallback.d.ts +5 -0
  17. package/dist/commonjs/utils/useStableRequestCallback.js +17 -0
  18. package/dist/commonjs/utils/useStableRequestCallback.js.map +1 -0
  19. package/dist/esm/hooks/useApiClient.d.ts +5 -0
  20. package/dist/esm/hooks/useApiClient.js +15 -2
  21. package/dist/esm/hooks/useApiClient.js.map +1 -1
  22. package/dist/esm/hooks/useRealtime.d.ts +43 -1
  23. package/dist/esm/hooks/useRealtime.js +60 -17
  24. package/dist/esm/hooks/useRealtime.js.map +1 -1
  25. package/dist/esm/hooks/useSessionStream.d.ts +131 -0
  26. package/dist/esm/hooks/useSessionStream.js +233 -0
  27. package/dist/esm/hooks/useSessionStream.js.map +1 -0
  28. package/dist/esm/hooks/useSessionStreamChannel.d.ts +86 -0
  29. package/dist/esm/hooks/useSessionStreamChannel.js +206 -0
  30. package/dist/esm/hooks/useSessionStreamChannel.js.map +1 -0
  31. package/dist/esm/index.d.ts +2 -0
  32. package/dist/esm/index.js +2 -0
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/utils/useStableRequestCallback.d.ts +5 -0
  35. package/dist/esm/utils/useStableRequestCallback.js +14 -0
  36. package/dist/esm/utils/useStableRequestCallback.js.map +1 -0
  37. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"useApiClient.js","sourceRoot":"","sources":["../../../src/hooks/useApiClient.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAuB/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,YAAY,CAAC,OAA6B;IACxD,MAAM,IAAI,GAAG,6BAA6B,EAAE,CAAC;IAE7C,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;IAC/E,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,WAAW,CAAC;IAC9D,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,aAAa,CAAC;IACpE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,IAAI,OAAO,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,cAAc,GAAsB;QACxC,GAAG,IAAI,EAAE,cAAc;QACvB,GAAG,OAAO,EAAE,cAAc;KAC3B,CAAC;IAEF,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"useApiClient.js","sourceRoot":"","sources":["../../../src/hooks/useApiClient.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AA4B/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,YAAY,CAAC,OAA6B;IACxD,MAAM,IAAI,GAAG,6BAA6B,EAAE,CAAC;IAE7C,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;IAC/E,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,EAAE,WAAW,CAAC;IAC9D,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,aAAa,CAAC;IACpE,MAAM,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,IAAI,EAAE,kBAAkB,CAAC;IAEnF,MAAM,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACzD,SAAS,CAAC,GAAG,EAAE;QACb,qBAAqB,CAAC,OAAO,GAAG,kBAAkB,CAAC;IACrD,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACzB,MAAM,wBAAwB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtD,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC;QAE9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,IAAI,OAAO,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,cAAc,GAAsB;QACxC,GAAG,IAAI,EAAE,cAAc;QACvB,GAAG,OAAO,EAAE,cAAc;KAC3B,CAAC;IAEF,OAAO,IAAI,SAAS,CAClB,OAAO,EACP,WAAW,EACX,aAAa,EACb,cAAc,EACd,SAAS,EACT,kBAAkB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAC1D,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { AnyTask, InferStreamType, RealtimeDefinedStream, RealtimeRun, RealtimeRunSkipColumns } from "@trigger.dev/core/v3";
1
+ import type { AnyTask, InferStreamType, RealtimeDefinedStream, RealtimeRun, RealtimeRunSkipColumns, SSEStreamPart } from "@trigger.dev/core/v3";
2
2
  import type { UseApiClientOptions } from "./useApiClient.js";
3
3
  export type UseRealtimeRunOptions = UseApiClientOptions & {
4
4
  id?: string;
@@ -154,6 +154,12 @@ export declare function useRealtimeRunsWithTag<TTask extends AnyTask>(tag: strin
154
154
  export declare function useRealtimeBatch<TTask extends AnyTask>(batchId: string, options?: UseRealtimeRunOptions): UseRealtimeRunsInstance<TTask>;
155
155
  export type UseRealtimeStreamInstance<TPart> = {
156
156
  parts: Array<TPart>;
157
+ /**
158
+ * The event id of the last part seen. Persist this (e.g. to localStorage) and
159
+ * pass it back as the `lastEventId` option to resume the stream where you left
160
+ * off after a page reload. Updated on each throttled flush.
161
+ */
162
+ lastEventId: string | undefined;
157
163
  error: Error | undefined;
158
164
  /**
159
165
  * Abort the current request immediately, keep the generated tokens if any.
@@ -182,10 +188,46 @@ export type UseRealtimeStreamOptions<TPart> = UseApiClientOptions & {
182
188
  * @default 0
183
189
  */
184
190
  startIndex?: number;
191
+ /**
192
+ * The event id to resume from, as returned in `lastEventId`. Persist it across
193
+ * a page reload and pass it back to continue where the previous session left
194
+ * off, with no replay and no gap. Takes precedence over `startIndex` and
195
+ * `from`.
196
+ */
197
+ lastEventId?: string | number;
198
+ /**
199
+ * Where a fresh subscription starts reading.
200
+ *
201
+ * - `"beginning"` (default): replay the full stream history, then live-tail.
202
+ * - `"latest"`: start at the current tail (the latest record, then live
203
+ * updates) instead of replaying history, for a last-value / live view. On
204
+ * reconnect or remount the subscription resumes from the last record it
205
+ * saw, so no frames are missed and none are replayed.
206
+ *
207
+ * Ignored when `startIndex` is set (which pins an absolute start position).
208
+ */
209
+ from?: "beginning" | "latest";
210
+ /**
211
+ * Cap the number of parts kept in the accumulated `parts` array. When more
212
+ * than `maxParts` parts have been received, only the most recent `maxParts`
213
+ * are retained (older parts are dropped). Use `maxParts: 1` together with
214
+ * `from: "latest"` for a pure last-value view with bounded memory.
215
+ *
216
+ * When unset, `parts` accumulates every record for the lifetime of the
217
+ * subscription (the default).
218
+ */
219
+ maxParts?: number;
185
220
  /**
186
221
  * Callback this is called when new data is received.
187
222
  */
188
223
  onData?: (data: TPart) => void;
224
+ /**
225
+ * Callback invoked once per throttled flush with the batch of parts in that
226
+ * flush, each carrying its event `id`, `chunk` and `timestamp`. Use it to
227
+ * track the resume cursor without re-rendering on every record. Fires at the
228
+ * `throttleInMs` cadence, not per record.
229
+ */
230
+ onParts?: (parts: Array<SSEStreamPart<TPart>>) => void;
189
231
  };
190
232
  export declare function useRealtimeStream<TDefinedStream extends RealtimeDefinedStream<any>>(stream: TDefinedStream, runId: string, options?: UseRealtimeStreamOptions<InferStreamType<TDefinedStream>>): UseRealtimeStreamInstance<InferStreamType<TDefinedStream>>;
191
233
  /**
@@ -3,14 +3,7 @@ import { useCallback, useEffect, useId, useRef, useState } from "react";
3
3
  import { useSWR } from "../utils/trigger-swr.js";
4
4
  import { useApiClient } from "./useApiClient.js";
5
5
  import { createThrottledQueue } from "../utils/throttle.js";
6
- // Keep subscription lifecycles controlled by their effects while using the latest request inputs.
7
- function useStableRequestCallback(callback) {
8
- const callbackRef = useRef(callback);
9
- useEffect(() => {
10
- callbackRef.current = callback;
11
- }, [callback]);
12
- return useCallback(() => callbackRef.current(), []);
13
- }
6
+ import { useStableRequestCallback } from "../utils/useStableRequestCallback.js";
14
7
  /**
15
8
  * Hook to subscribe to realtime updates of a task run.
16
9
  *
@@ -396,6 +389,16 @@ function useRealtimeStreamImplementation(runId, streamKey, options) {
396
389
  useEffect(() => {
397
390
  partsRef.current = parts || [];
398
391
  }, [parts]);
392
+ const { data: persistedLastEventId, mutate: mutateLastEventId } = useSWR([idKey, runId, streamKey, "lastEventId"], null);
393
+ const lastEventIdRef = useRef(persistedLastEventId);
394
+ const streamIdentityRef = useRef(`${idKey}:${runId}:${streamKey}`);
395
+ useEffect(() => {
396
+ const identity = `${idKey}:${runId}:${streamKey}`;
397
+ if (streamIdentityRef.current !== identity) {
398
+ streamIdentityRef.current = identity;
399
+ lastEventIdRef.current = persistedLastEventId;
400
+ }
401
+ }, [idKey, runId, streamKey, persistedLastEventId]);
399
402
  // Add state to track when the subscription is complete
400
403
  const { data: _isComplete = false, mutate: setIsComplete } = useSWR([idKey, runId, streamKey, "complete"], null);
401
404
  const { data: error = undefined, mutate: setError } = useSWR([idKey, runId, streamKey, "error"], null);
@@ -413,10 +416,27 @@ function useRealtimeStreamImplementation(runId, streamKey, options) {
413
416
  onDataCallback(data);
414
417
  }
415
418
  }, [onDataCallback]);
419
+ const onPartsCallback = options?.onParts;
420
+ const onParts = useCallback((partsBatch) => {
421
+ if (onPartsCallback) {
422
+ onPartsCallback(partsBatch);
423
+ }
424
+ }, [onPartsCallback]);
416
425
  const apiClient = useApiClient(options);
417
426
  const timeoutInSeconds = options?.timeoutInSeconds;
418
427
  const startIndex = options?.startIndex;
428
+ const startEventId = options?.lastEventId;
419
429
  const throttleInMs = options?.throttleInMs;
430
+ const from = options?.from;
431
+ const maxParts = options?.maxParts;
432
+ useEffect(() => {
433
+ if (maxParts != null && maxParts >= 0) {
434
+ const current = partsRef.current;
435
+ if (current.length > maxParts) {
436
+ mutateParts(current.slice(current.length - maxParts));
437
+ }
438
+ }
439
+ }, [maxParts, mutateParts]);
420
440
  const triggerRequest = useCallback(async () => {
421
441
  try {
422
442
  if (!runId || !apiClient) {
@@ -424,7 +444,7 @@ function useRealtimeStreamImplementation(runId, streamKey, options) {
424
444
  }
425
445
  const abortController = new AbortController();
426
446
  abortControllerRef.current = abortController;
427
- await processRealtimeStream(runId, streamKey, apiClient, mutateParts, partsRef, setError, onData, abortControllerRef, timeoutInSeconds, startIndex, throttleInMs ?? 16);
447
+ await processRealtimeStream(runId, streamKey, apiClient, mutateParts, partsRef, setError, onData, abortControllerRef, timeoutInSeconds, startIndex, throttleInMs ?? 16, from, maxParts, lastEventIdRef, (id) => mutateLastEventId(id, false), startEventId !== undefined ? String(startEventId) : undefined, onParts);
428
448
  }
429
449
  catch (err) {
430
450
  // Ignore abort errors as they are expected.
@@ -449,9 +469,14 @@ function useRealtimeStreamImplementation(runId, streamKey, options) {
449
469
  setError,
450
470
  setIsComplete,
451
471
  onData,
472
+ onParts,
452
473
  timeoutInSeconds,
453
474
  startIndex,
475
+ startEventId,
454
476
  throttleInMs,
477
+ from,
478
+ maxParts,
479
+ mutateLastEventId,
455
480
  ]);
456
481
  const requestSubscription = useStableRequestCallback(triggerRequest);
457
482
  useEffect(() => {
@@ -466,7 +491,7 @@ function useRealtimeStreamImplementation(runId, streamKey, options) {
466
491
  stop();
467
492
  };
468
493
  }, [runId, stop, options?.enabled, requestSubscription]);
469
- return { parts: parts ?? initialPartsFallback, error, stop };
494
+ return { parts: parts ?? initialPartsFallback, lastEventId: persistedLastEventId, error, stop };
470
495
  }
471
496
  async function processRealtimeBatch(batchId, apiClient, mutateRunsData, existingRunsRef, onError, abortControllerRef) {
472
497
  const subscription = apiClient.subscribeToBatch(batchId, {
@@ -560,21 +585,39 @@ async function processRealtimeRun(runId, filters, apiClient, mutateRunData, onEr
560
585
  mutateRunData(part);
561
586
  }
562
587
  }
563
- async function processRealtimeStream(runId, streamKey, apiClient, mutatePartsData, existingPartsRef, onError, onData, abortControllerRef, timeoutInSeconds, startIndex, throttleInMs) {
588
+ async function processRealtimeStream(runId, streamKey, apiClient, mutatePartsData, existingPartsRef, onError, onData, abortControllerRef, timeoutInSeconds, startIndex, throttleInMs, from, maxParts, lastEventIdRef, persistLastEventId, userLastEventId, onParts) {
564
589
  try {
590
+ const resumeFromEventId = lastEventIdRef?.current ??
591
+ userLastEventId ??
592
+ (startIndex ? (startIndex - 1).toString() : undefined);
593
+ const partsQueue = createThrottledQueue(async (batch) => {
594
+ const combined = [...existingPartsRef.current, ...batch.map((part) => part.chunk)];
595
+ const bounded = maxParts != null && maxParts >= 0 && combined.length > maxParts
596
+ ? combined.slice(combined.length - maxParts)
597
+ : combined;
598
+ existingPartsRef.current = bounded;
599
+ mutatePartsData(bounded);
600
+ if (persistLastEventId && lastEventIdRef?.current) {
601
+ persistLastEventId(lastEventIdRef.current);
602
+ }
603
+ onParts?.(batch);
604
+ }, throttleInMs);
565
605
  const stream = await apiClient.fetchStream(runId, streamKey, {
566
606
  signal: abortControllerRef.current?.signal,
567
607
  timeoutInSeconds,
568
- lastEventId: startIndex ? (startIndex - 1).toString() : undefined,
608
+ lastEventId: resumeFromEventId,
609
+ from: startIndex !== undefined ? undefined : from,
610
+ onPart: (part) => {
611
+ if (part.id && lastEventIdRef) {
612
+ lastEventIdRef.current = part.id;
613
+ }
614
+ partsQueue.add(part);
615
+ },
569
616
  });
570
- // Throttle the stream
571
- const streamQueue = createThrottledQueue(async (parts) => {
572
- mutatePartsData([...existingPartsRef.current, ...parts]);
573
- }, throttleInMs);
574
617
  for await (const part of stream) {
575
618
  onData(part);
576
- streamQueue.add(part);
577
619
  }
620
+ await partsQueue.flush();
578
621
  }
579
622
  catch (err) {
580
623
  if (err.name === "AbortError") {
@@ -1 +1 @@
1
- {"version":3,"file":"useRealtime.js","sourceRoot":"","sources":["../../../src/hooks/useRealtime.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAWb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,kGAAkG;AAClG,SAAS,wBAAwB,CAAC,QAA6B;IAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAErC,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAkDD;;;;;;;;;;;;;GAaG;AAEH,MAAM,UAAU,cAAc,CAC5B,KAAc,EACd,OAA4C;IAE5C,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC;IAEpC,8EAA8E;IAC9E,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAE1F,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAC1D,CAAC,KAAK,EAAE,OAAO,CAAC,EAChB,IAAI,CACL,CAAC;IAEF,uDAAuD;IACvD,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAChE,CAAC,KAAK,EAAE,UAAU,CAAC,EACnB,IAAI,CACL,CAAC;IAEF,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IAEhE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC/B,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;IACvC,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,CAAC;IACzC,MAAM,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,CAAC;IAEnD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,kBAAkB,CAAC,OAAO,GAAG,eAAe,CAAC;YAE7C,MAAM,kBAAkB,CACtB,KAAK,EACL,EAAE,WAAW,EAAE,EACf,SAAS,EACT,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,OAAO,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAChE,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,4CAA4C;YAC5C,IAAK,GAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACvC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,GAAY,CAAC,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/B,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;YACpC,CAAC;YAED,oCAAoC;YACpC,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAC1F,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAErE,MAAM,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7C,uCAAuC;IACvC,4EAA4E;IAC5E,sFAAsF;IACtF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,IAAI,GAAG,EAAE,UAAU,IAAI,UAAU,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;YACnF,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvB,sBAAsB,CAAC,OAAO,GAAG,IAAI,CAAC;QACxC,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,OAAO,EAAE,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,mBAAmB,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAExC,OAAO,GAAG,EAAE;YACV,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEzD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,EAAE,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;IAEzB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAsBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,yBAAyB,CAIvC,KAAc,EACd,OAA4C;IAE5C,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC;IAEpC,MAAM,CAAC,sBAAsB,CAAC,GAAG,QAAQ,CAAC,EAA6B,CAAC,CAAC;IAEzE,8EAA8E;IAC9E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CACrD,CAAC,KAAK,EAAE,SAAS,CAAC,EAClB,IAAI,EACJ;QACE,YAAY,EAAE,sBAAsB;KACrC,CACF,CAAC;IAEF,oCAAoC;IACpC,MAAM,UAAU,GAAG,MAAM,CAA0B,OAAO,IAAK,EAA8B,CAAC,CAAC;IAC/F,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,OAAO,GAAG,OAAO,IAAK,EAA8B,CAAC;IAClE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,8EAA8E;IAC9E,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAE1F,uDAAuD;IACvD,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAChE,CAAC,KAAK,EAAE,UAAU,CAAC,EACnB,IAAI,CACL,CAAC;IAEF,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAC1D,CAAC,KAAK,EAAE,OAAO,CAAC,EAChB,IAAI,CACL,CAAC;IAEF,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IAEhE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC/B,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;IACvC,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,CAAC;IACzC,MAAM,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,CAAC;IACnD,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;IAE3C,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,kBAAkB,CAAC,OAAO,GAAG,eAAe,CAAC;YAE7C,MAAM,6BAA6B,CACjC,KAAK,EACL,EAAE,WAAW,EAAE,EACf,SAAS,EACT,SAAS,EACT,aAAa,EACb,UAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,OAAO,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAC/D,YAAY,IAAI,EAAE,CACnB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,4CAA4C;YAC5C,IAAK,GAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACvC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,GAAY,CAAC,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/B,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;YACpC,CAAC;YAED,oCAAoC;YACpC,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE;QACD,KAAK;QACL,SAAS;QACT,SAAS;QACT,aAAa;QACb,QAAQ;QACR,aAAa;QACb,WAAW;QACX,gBAAgB;QAChB,YAAY;KACb,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAErE,MAAM,sBAAsB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE7C,uCAAuC;IACvC,4EAA4E;IAC5E,sFAAsF;IACtF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,IAAI,GAAG,EAAE,UAAU,IAAI,UAAU,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;YACnF,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACvB,sBAAsB,CAAC,OAAO,GAAG,IAAI,CAAC;QACxC,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,OAAO,EAAE,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,mBAAmB,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAExC,OAAO,GAAG,EAAE;YACV,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEzD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,EAAE,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;IAEzB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC1E,CAAC;AAuCD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAsB,EACtB,OAAuC;IAEvC,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnE,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC;IAEpC,8EAA8E;IAC9E,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE;QAC5F,YAAY,EAAE,EAAE;KACjB,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,OAAO,GAAG,MAAM,CAAuB,EAAE,CAAC,CAAC;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;IAC/B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAC1D,CAAC,KAAK,EAAE,OAAO,CAAC,EAChB,IAAI,CACL,CAAC;IAEF,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IAEhE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC/B,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,CAAC;IACrC,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,CAAC;IAEzC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,kBAAkB,CAAC,OAAO,GAAG,eAAe,CAAC;YAE7C,MAAM,0BAA0B,CAC9B,GAAG,EACH,EAAE,SAAS,EAAE,WAAW,EAAE,EAC1B,SAAS,EACT,UAAU,EACV,OAAO,EACP,QAAQ,EACR,kBAAkB,CACnB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,4CAA4C;YAC5C,IAAK,GAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACvC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,GAAY,CAAC,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/B,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnE,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAErE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,OAAO,EAAE,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,mBAAmB,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAExC,OAAO,GAAG,EAAE;YACV,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEjE,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;GAaG;AAEH,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,OAA+B;IAE/B,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC;IAEpC,8EAA8E;IAC9E,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE;QAC5F,YAAY,EAAE,EAAE;KACjB,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,OAAO,GAAG,MAAM,CAAuB,EAAE,CAAC,CAAC;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;IAC/B,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAC1D,CAAC,KAAK,EAAE,OAAO,CAAC,EAChB,IAAI,CACL,CAAC;IAEF,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IAEhE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC/B,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAExC,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,kBAAkB,CAAC,OAAO,GAAG,eAAe,CAAC;YAE7C,MAAM,oBAAoB,CACxB,OAAO,EACP,SAAS,EACT,UAAU,EACV,OAAO,EACP,QAAQ,EACR,kBAAkB,CACnB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,4CAA4C;YAC5C,IAAK,GAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACvC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,GAAY,CAAC,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/B,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5E,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAErE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,OAAO,EAAE,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,mBAAmB,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAExC,OAAO,GAAG,EAAE;YACV,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAE3D,OAAO,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC;AA+JD,MAAM,UAAU,iBAAiB,CAC/B,oBAA2D,EAC3D,yBAAoE,EACpE,OAAyC;IAEzC,IAAI,KAAa,CAAC;IAClB,IAAI,SAAiB,CAAC;IACtB,IAAI,eAA4D,CAAC;IAEjE,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE,CAAC;QAC7C,KAAK,GAAG,oBAAoB,CAAC;QAC7B,SAAS;YACP,OAAO,yBAAyB,KAAK,QAAQ,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,eAAe;YACb,OAAO,yBAAyB,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC;IACxF,CAAC;SAAM,CAAC;QACN,IAAI,OAAO,yBAAyB,KAAK,QAAQ,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACb,gJAAgJ,CACjJ,CAAC;QACJ,CAAC;QAED,KAAK,GAAG,yBAAyB,CAAC;QAClC,SAAS,GAAG,oBAAoB,CAAC,EAAE,CAAC;QACpC,eAAe,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,OAAO,+BAA+B,CAAC,KAAK,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,+BAA+B,CACtC,KAAa,EACb,SAAiB,EACjB,OAAyC;IAEzC,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,OAAO,EAAE,EAAE,IAAI,MAAM,CAAC;IAEpC,MAAM,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC,EAAkB,CAAC,CAAC;IAE5D,8EAA8E;IAC9E,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CACjD,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAClC,IAAI,EACJ;QACE,YAAY,EAAE,oBAAoB;KACnC,CACF,CAAC;IAEF,oCAAoC;IACpC,MAAM,QAAQ,GAAG,MAAM,CAAe,KAAK,IAAK,EAAmB,CAAC,CAAC;IACrE,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,OAAO,GAAG,KAAK,IAAK,EAAmB,CAAC;IACnD,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,uDAAuD;IACvD,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CACjE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EACrC,IAAI,CACL,CAAC;IAEF,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAC1D,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAClC,IAAI,CACL,CAAC;IAEF,mDAAmD;IACnD,MAAM,kBAAkB,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IAEhE,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAC/B,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,OAAO,EAAE,MAAM,CAAC;IACvC,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,IAAW,EAAE,EAAE;QACd,IAAI,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAC;IAEF,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;IACvC,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;IAE3C,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,kBAAkB,CAAC,OAAO,GAAG,eAAe,CAAC;YAE7C,MAAM,qBAAqB,CACzB,KAAK,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,YAAY,IAAI,EAAE,CACnB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,4CAA4C;YAC5C,IAAK,GAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACvC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,GAAY,CAAC,CAAC;QACzB,CAAC;gBAAS,CAAC;YACT,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC;gBAC/B,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;YACpC,CAAC;YAED,oCAAoC;YACpC,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE;QACD,KAAK;QACL,SAAS;QACT,SAAS;QACT,WAAW;QACX,QAAQ;QACR,aAAa;QACb,MAAM;QACN,gBAAgB;QAChB,UAAU;QACV,YAAY;KACb,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAErE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,OAAO,EAAE,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC9D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,mBAAmB,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAExC,OAAO,GAAG,EAAE;YACV,IAAI,EAAE,CAAC;QACT,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAEzD,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,OAAe,EACf,SAAoB,EACpB,cAAkD,EAClD,eAA6D,EAC7D,OAA2B,EAC3B,kBAAkE;IAElE,MAAM,YAAY,GAAG,SAAS,CAAC,gBAAgB,CAAuB,OAAO,EAAE;QAC7E,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM;QAC1C,YAAY,EAAE,OAAO;KACtB,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QACtC,cAAc,CAAC,qBAAqB,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,qGAAqG;AACrG,SAAS,qBAAqB,CAC5B,YAAkC,EAClC,GAAuB;IAEvB,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC;IACnC,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC;IACxE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,0BAA0B,CACvC,GAAsB,EACtB,OAAqE,EACrE,SAAoB,EACpB,cAAkD,EAClD,eAA6D,EAC7D,OAA2B,EAC3B,kBAAkE;IAElE,MAAM,YAAY,GAAG,SAAS,CAAC,sBAAsB,CAAuB,GAAG,EAAE,OAAO,EAAE;QACxF,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM;QAC1C,YAAY,EAAE,OAAO;KACtB,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QACtC,cAAc,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,SAAS,cAAc,CACrB,YAAkC,EAClC,GAAuB;IAEvB,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9D,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;IAEhC,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAErE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,6BAA6B,CAI1C,KAAa,EACb,OAAiD,EACjD,SAAoB,EACpB,aAA+C,EAC/C,gBAAuD,EACvD,eAAgE,EAChE,OAA2B,EAC3B,kBAAkE,EAClE,gBAAgB,GAAY,IAAI,EAChC,YAAqB;IAErB,MAAM,YAAY,GAAG,SAAS,CAAC,cAAc,CAAuB,KAAK,EAAE;QACzE,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM;QAC1C,eAAe,EAAE,gBAAgB;QACjC,YAAY,EAAE,OAAO;QACrB,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;IAOH,MAAM,WAAW,GAAG,oBAAoB,CAAe,KAAK,EAAE,OAAO,EAAE,EAAE;QACvE,MAAM,cAAc,GAAG,EAAE,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC;QAEtD,wBAAwB;QACxB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAClC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACd,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACxB,CAAC;YACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,GAAG,CAAC;QACb,CAAC,EACD,EAAmC,CACpC,CAAC;QAEF,oBAAoB;QACpB,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3D,aAAa;YACb,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QAC/E,CAAC;QAED,gBAAgB,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC,EAAE,YAAY,CAAC,CAAC;IAEjB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,YAAY,CAAC,WAAW,EAAY,EAAE,CAAC;QAC9D,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,GAAG,CAAC;gBACd,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa;gBACb,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,KAAa,EACb,OAAiD,EACjD,SAAoB,EACpB,aAA+C,EAC/C,OAA2B,EAC3B,kBAAkE,EAClE,gBAAgB,GAAY,IAAI;IAEhC,MAAM,YAAY,GAAG,SAAS,CAAC,cAAc,CAAuB,KAAK,EAAE;QACzE,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM;QAC1C,eAAe,EAAE,gBAAgB;QACjC,YAAY,EAAE,OAAO;QACrB,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;IAEH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QACtC,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,KAAa,EACb,SAAiB,EACjB,SAAoB,EACpB,eAA2C,EAC3C,gBAAsD,EACtD,OAA2B,EAC3B,MAA6B,EAC7B,kBAAkE,EAClE,gBAAyB,EACzB,UAAmB,EACnB,YAAqB;IAErB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAQ,KAAK,EAAE,SAAS,EAAE;YAClE,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM;YAC1C,gBAAgB;YAChB,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;SAClE,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,WAAW,GAAG,oBAAoB,CAAQ,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9D,eAAe,CAAC,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;QAC3D,CAAC,EAAE,YAAY,CAAC,CAAC;QAEjB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,CAAC;YACb,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"useRealtime.js","sourceRoot":"","sources":["../../../src/hooks/useRealtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ import type { ControlEvent, SSEStreamPart } from "@trigger.dev/core/v3";
2
+ import type { UseApiClientOptions } from "./useApiClient.js";
3
+ export type UseSessionStreamInstance<TRecord> = {
4
+ /**
5
+ * The records received so far on the channel, in arrival order. Control records are
6
+ * never included here, they are delivered to `onControl` instead.
7
+ */
8
+ records: Array<TRecord>;
9
+ /**
10
+ * The cursor of the last record seen. Persist this and pass it back as the `lastEventId`
11
+ * option to resume the channel where you left off.
12
+ */
13
+ lastEventId: string | undefined;
14
+ /**
15
+ * The last control record seen on the channel (e.g. `turn-complete`).
16
+ */
17
+ lastControl: ControlEvent | undefined;
18
+ error: Error | undefined;
19
+ /**
20
+ * Abort the current request immediately, keep the records received so far.
21
+ */
22
+ stop: () => void;
23
+ };
24
+ export type UseSessionStreamOptions<TRecord> = UseApiClientOptions & {
25
+ id?: string;
26
+ enabled?: boolean;
27
+ /**
28
+ * Which channel of the session to read.
29
+ *
30
+ * @default "out"
31
+ */
32
+ io?: "out" | "in";
33
+ /**
34
+ * The number of milliseconds to throttle the record updates.
35
+ *
36
+ * @default 16
37
+ */
38
+ throttleInMs?: number;
39
+ /**
40
+ * The number of seconds to wait for new data to be available,
41
+ * If no data arrives within the timeout, the stream will be closed.
42
+ *
43
+ * @default 60 seconds
44
+ */
45
+ timeoutInSeconds?: number;
46
+ /**
47
+ * The cursor to resume from. If not provided, the channel is read from the beginning.
48
+ */
49
+ lastEventId?: string | number;
50
+ /**
51
+ * Where a fresh subscription (no `lastEventId`) starts reading.
52
+ *
53
+ * - `"beginning"` (default): replay the full channel history, then live-tail.
54
+ * - `"latest"`: start at the current tail (the latest record, then live
55
+ * updates) instead of replaying history, for a last-value / live view.
56
+ *
57
+ * Ignored when `lastEventId` is set.
58
+ */
59
+ from?: "beginning" | "latest";
60
+ /**
61
+ * Cap the number of records kept in the accumulated `records` array. When more
62
+ * than `maxRecords` have been received, only the most recent `maxRecords` are
63
+ * retained. Use `maxRecords: 1` with `from: "latest"` for a last-value view
64
+ * with bounded memory. When unset, `records` accumulates without bound.
65
+ */
66
+ maxRecords?: number;
67
+ /**
68
+ * Callback invoked once per throttled flush with the batch of records in that
69
+ * flush, each carrying its event `id`, `chunk` and `timestamp`. Fires at the
70
+ * `throttleInMs` cadence (not per record) and includes control records, so it
71
+ * can track the resume cursor for everything on the channel.
72
+ */
73
+ onRecords?: (records: Array<SSEStreamPart<TRecord>>) => void;
74
+ /**
75
+ * Callback this is called when a control record is received (e.g. `turn-complete`).
76
+ */
77
+ onControl?: (event: ControlEvent) => void;
78
+ };
79
+ /**
80
+ * Hook to read one channel of a Session's realtime stream.
81
+ *
82
+ * This hook subscribes to one of the session's channels (`out` by default, or `in`) and
83
+ * updates the `records` array as new records arrive. It is read-only: use `useSession` for
84
+ * two-way (read and write) communication. The subscription is automatically managed: it
85
+ * starts when the component mounts (or when `enabled` becomes `true`) and stops when the
86
+ * component unmounts or when `stop()` is called.
87
+ *
88
+ * Requires a Public Access Token with the `read:sessions:{id}` scope.
89
+ *
90
+ * @template TRecord - The type of each record on the channel
91
+ * @param sessionIdOrExternalId - The id or external id of the session to subscribe to
92
+ * @param options - Optional configuration for the subscription
93
+ * @returns An object containing:
94
+ * - `records`: An array of all the records received so far (accumulates over time)
95
+ * - `lastEventId`: The cursor of the last record seen, for resuming later
96
+ * - `lastControl`: The last control record seen
97
+ * - `error`: Any error that occurred during subscription
98
+ * - `stop`: A function to manually stop the subscription
99
+ *
100
+ * @example
101
+ * ```tsx
102
+ * "use client";
103
+ * import { useSessionStream } from "@trigger.dev/react-hooks";
104
+ *
105
+ * function SessionViewer({ sessionId }: { sessionId: string }) {
106
+ * const { records, error } = useSessionStream<string>(sessionId, {
107
+ * accessToken: publicAccessToken,
108
+ * });
109
+ *
110
+ * if (error) return <div>Error: {error.message}</div>;
111
+ *
112
+ * return <div>{records.join("")}</div>;
113
+ * }
114
+ * ```
115
+ *
116
+ * @example
117
+ * ```tsx
118
+ * // Read the input channel, resuming from a persisted cursor
119
+ * const { records, lastEventId, stop } = useSessionStream<MyRecord>(sessionId, {
120
+ * accessToken: publicAccessToken,
121
+ * io: "in",
122
+ * lastEventId: persistedCursor,
123
+ * onControl: (event) => {
124
+ * if (event.subtype === "turn-complete") {
125
+ * console.log("The turn is complete");
126
+ * }
127
+ * },
128
+ * });
129
+ * ```
130
+ */
131
+ export declare function useSessionStream<TRecord = unknown>(sessionIdOrExternalId?: string, options?: UseSessionStreamOptions<TRecord>): UseSessionStreamInstance<TRecord>;