@trpc/server 11.0.0-rc.643 → 11.0.0-rc.645

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 (43) hide show
  1. package/dist/adapters/node-http/writeResponse.d.ts.map +1 -1
  2. package/dist/adapters/node-http/writeResponse.js +2 -0
  3. package/dist/adapters/node-http/writeResponse.mjs +2 -0
  4. package/dist/adapters/ws.js +1 -1
  5. package/dist/adapters/ws.mjs +1 -1
  6. package/dist/bundle-analysis.json +73 -87
  7. package/dist/observable/observable.d.ts +1 -1
  8. package/dist/observable/observable.d.ts.map +1 -1
  9. package/dist/observable/observable.js +16 -4
  10. package/dist/observable/observable.mjs +16 -4
  11. package/dist/unstable-core-do-not-import/http/resolveResponse.d.ts.map +1 -1
  12. package/dist/unstable-core-do-not-import/http/resolveResponse.js +4 -9
  13. package/dist/unstable-core-do-not-import/http/resolveResponse.mjs +5 -10
  14. package/dist/unstable-core-do-not-import/stream/jsonl.d.ts +41 -4
  15. package/dist/unstable-core-do-not-import/stream/jsonl.d.ts.map +1 -1
  16. package/dist/unstable-core-do-not-import/stream/jsonl.js +223 -213
  17. package/dist/unstable-core-do-not-import/stream/jsonl.mjs +224 -214
  18. package/dist/unstable-core-do-not-import/stream/sse.d.ts +1 -1
  19. package/dist/unstable-core-do-not-import/stream/sse.d.ts.map +1 -1
  20. package/dist/unstable-core-do-not-import/stream/sse.js +46 -54
  21. package/dist/unstable-core-do-not-import/stream/sse.mjs +47 -55
  22. package/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.d.ts +8 -0
  23. package/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.d.ts.map +1 -0
  24. package/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.js +25 -0
  25. package/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.mjs +23 -0
  26. package/package.json +2 -2
  27. package/src/adapters/node-http/writeResponse.ts +3 -0
  28. package/src/adapters/ws.ts +1 -1
  29. package/src/observable/observable.ts +17 -2
  30. package/src/unstable-core-do-not-import/http/resolveResponse.ts +5 -12
  31. package/src/unstable-core-do-not-import/stream/jsonl.ts +271 -226
  32. package/src/unstable-core-do-not-import/stream/sse.ts +59 -64
  33. package/src/unstable-core-do-not-import/stream/utils/readableStreamFrom.ts +28 -0
  34. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts +0 -9
  35. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts.map +0 -1
  36. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.js +0 -25
  37. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.mjs +0 -23
  38. package/dist/unstable-core-do-not-import/stream/utils/withRefCount.d.ts +0 -17
  39. package/dist/unstable-core-do-not-import/stream/utils/withRefCount.d.ts.map +0 -1
  40. package/dist/unstable-core-do-not-import/stream/utils/withRefCount.js +0 -59
  41. package/dist/unstable-core-do-not-import/stream/utils/withRefCount.mjs +0 -57
  42. package/src/unstable-core-do-not-import/stream/utils/createReadableStream.ts +0 -25
  43. package/src/unstable-core-do-not-import/stream/utils/withRefCount.ts +0 -93
@@ -4,7 +4,7 @@ import { getTRPCErrorFromUnknown, TRPCError } from '../error/TRPCError.mjs';
4
4
  import { jsonlStreamProducer, isPromise } from '../stream/jsonl.mjs';
5
5
  import { sseStreamProducer, sseHeaders } from '../stream/sse.mjs';
6
6
  import { transformTRPCResponse } from '../transformer.mjs';
7
- import { run, abortSignalsAnyPonyfill, isAsyncIterable, isObject } from '../utils.mjs';
7
+ import { run, isAsyncIterable, isObject } from '../utils.mjs';
8
8
  import { getRequestInfo } from './contentType.mjs';
9
9
  import { getHTTPStatusCode } from './getHTTPStatusCode.mjs';
10
10
 
@@ -252,22 +252,17 @@ async function resolveResponse(opts) {
252
252
  });
253
253
  }
254
254
  }
255
- const abortCtrl = new AbortController();
256
255
  const data = await proc({
257
256
  path: call.path,
258
257
  getRawInput: call.getRawInput,
259
258
  ctx: ctxManager.value(),
260
259
  type: proc._def.type,
261
- signal: abortSignalsAnyPonyfill([
262
- opts.req.signal,
263
- abortCtrl.signal
264
- ])
260
+ signal: opts.req.signal
265
261
  });
266
262
  return [
267
263
  undefined,
268
264
  {
269
- data,
270
- abortCtrl
265
+ data
271
266
  }
272
267
  ];
273
268
  } catch (cause) {
@@ -354,7 +349,7 @@ async function resolveResponse(opts) {
354
349
  code: 'INTERNAL_SERVER_ERROR'
355
350
  }));
356
351
  }
357
- const dataAsIterable = isObservable(result.data) ? observableToAsyncIterable(result.data) : result.data;
352
+ const dataAsIterable = isObservable(result.data) ? observableToAsyncIterable(result.data, opts.req.signal) : result.data;
358
353
  return dataAsIterable;
359
354
  });
360
355
  const stream = sseStreamProducer({
@@ -448,7 +443,7 @@ async function resolveResponse(opts) {
448
443
  /**
449
444
  * Not very pretty, but we need to wrap nested data in promises
450
445
  * Our stream producer will only resolve top-level async values or async values that are directly nested in another async value
451
- */ const iterable = isObservable(result.data) ? observableToAsyncIterable(result.data) : Promise.resolve(result.data);
446
+ */ const iterable = isObservable(result.data) ? observableToAsyncIterable(result.data, opts.req.signal) : Promise.resolve(result.data);
452
447
  return {
453
448
  result: Promise.resolve({
454
449
  data: iterable
@@ -18,8 +18,8 @@ declare const PROMISE_STATUS_REJECTED = 1;
18
18
  type PROMISE_STATUS_REJECTED = typeof PROMISE_STATUS_REJECTED;
19
19
  declare const ASYNC_ITERABLE_STATUS_RETURN = 0;
20
20
  type ASYNC_ITERABLE_STATUS_RETURN = typeof ASYNC_ITERABLE_STATUS_RETURN;
21
- declare const ASYNC_ITERABLE_STATUS_VALUE = 1;
22
- type ASYNC_ITERABLE_STATUS_VALUE = typeof ASYNC_ITERABLE_STATUS_VALUE;
21
+ declare const ASYNC_ITERABLE_STATUS_YIELD = 1;
22
+ type ASYNC_ITERABLE_STATUS_YIELD = typeof ASYNC_ITERABLE_STATUS_YIELD;
23
23
  declare const ASYNC_ITERABLE_STATUS_ERROR = 2;
24
24
  type ASYNC_ITERABLE_STATUS_ERROR = typeof ASYNC_ITERABLE_STATUS_ERROR;
25
25
  type ChunkDefinitionKey = null | number | string;
@@ -49,7 +49,7 @@ type IterableChunk = [
49
49
  value: EncodedValue
50
50
  ] | [
51
51
  chunkIndex: ChunkIndex,
52
- status: ASYNC_ITERABLE_STATUS_VALUE,
52
+ status: ASYNC_ITERABLE_STATUS_YIELD,
53
53
  value: EncodedValue
54
54
  ] | [
55
55
  chunkIndex: ChunkIndex,
@@ -86,6 +86,35 @@ declare class StreamInterruptedError extends Error {
86
86
  export type ConsumerOnError = (opts: {
87
87
  error: unknown;
88
88
  }) => void;
89
+ /**
90
+ * Represents a chunk of data or stream interruption error that can be enqueued to a controller
91
+ */
92
+ type ControllerChunk = ChunkData | StreamInterruptedError;
93
+ /**
94
+ * Interface for a controller that can enqueue chunks and be closed
95
+ */
96
+ /**
97
+ * Interface for controlling a stream's lifecycle and data flow
98
+ */
99
+ interface StreamController {
100
+ /**
101
+ * Enqueues a chunk of data or error into the stream
102
+ * @param chunk The data chunk or error to enqueue
103
+ */
104
+ enqueue: (chunk: ControllerChunk) => void;
105
+ /**
106
+ * Closes the stream and prevents further data from being enqueued
107
+ */
108
+ close: () => void;
109
+ /**
110
+ * Whether the stream has been closed
111
+ */
112
+ closed: boolean;
113
+ /**
114
+ * Gets a reader for consuming the stream's data
115
+ */
116
+ getReader: () => ReadableStreamDefaultReader<ControllerChunk>;
117
+ }
89
118
  /**
90
119
  * JSON Lines stream consumer
91
120
  * @see https://jsonlines.org/
@@ -102,7 +131,15 @@ export declare function jsonlStreamConsumer<THead>(opts: {
102
131
  */
103
132
  abortController: AbortController;
104
133
  }): Promise<readonly [Awaited<THead>, {
105
- readonly controllers: Map<ChunkIndex, ReadableStreamDefaultController<ChunkData | StreamInterruptedError>>;
134
+ getOrCreate(chunkId: ChunkIndex): StreamController;
135
+ /**
136
+ * Check if there are no pending controllers
137
+ **/
138
+ isEmpty: () => boolean;
139
+ /**
140
+ * Cancels all pending controllers and rejects deferred promises
141
+ */
142
+ cancelAll(reason: unknown): void;
106
143
  }]>;
107
144
  export {};
108
145
  //# sourceMappingURL=jsonl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/stream/jsonl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/stream/jsonl.ts"],"names":[],"mappings":"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"}