@trpc/server 11.0.0-alpha-tmp-app-router-example.388 → 11.0.0-alpha-tmp-issues-5851-take-two.448

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 (139) hide show
  1. package/dist/@trpc/server/http.d.ts +1 -2
  2. package/dist/@trpc/server/http.d.ts.map +1 -1
  3. package/dist/@trpc/server/index.d.ts +1 -1
  4. package/dist/@trpc/server/index.d.ts.map +1 -1
  5. package/dist/@trpc/server/rpc.d.ts +1 -1
  6. package/dist/@trpc/server/rpc.d.ts.map +1 -1
  7. package/dist/adapters/aws-lambda/getPlanner.d.ts.map +1 -1
  8. package/dist/adapters/aws-lambda/getPlanner.js +19 -2
  9. package/dist/adapters/aws-lambda/getPlanner.mjs +19 -2
  10. package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts.map +1 -1
  11. package/dist/adapters/next-app-dir/nextAppDirCaller.js +1 -1
  12. package/dist/adapters/next-app-dir/nextAppDirCaller.mjs +1 -1
  13. package/dist/adapters/next-app-dir/redirect.d.ts.map +1 -1
  14. package/dist/adapters/next.js +1 -1
  15. package/dist/adapters/next.mjs +1 -1
  16. package/dist/adapters/node-http/incomingMessageToRequest.d.ts +0 -1
  17. package/dist/adapters/node-http/incomingMessageToRequest.d.ts.map +1 -1
  18. package/dist/adapters/node-http/incomingMessageToRequest.js +3 -1
  19. package/dist/adapters/node-http/incomingMessageToRequest.mjs +3 -1
  20. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  21. package/dist/adapters/node-http/nodeHTTPRequestHandler.js +30 -7
  22. package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +30 -7
  23. package/dist/adapters/node-http/types.d.ts +0 -1
  24. package/dist/adapters/node-http/types.d.ts.map +1 -1
  25. package/dist/adapters/standalone.d.ts +0 -1
  26. package/dist/adapters/standalone.d.ts.map +1 -1
  27. package/dist/adapters/ws.d.ts +3 -4
  28. package/dist/adapters/ws.d.ts.map +1 -1
  29. package/dist/adapters/ws.js +172 -114
  30. package/dist/adapters/ws.mjs +172 -114
  31. package/dist/bundle-analysis.json +236 -155
  32. package/dist/http.js +3 -0
  33. package/dist/http.mjs +1 -0
  34. package/dist/index.js +7 -5
  35. package/dist/index.mjs +3 -2
  36. package/dist/observable/observable.d.ts +1 -0
  37. package/dist/observable/observable.d.ts.map +1 -1
  38. package/dist/observable/observable.js +55 -0
  39. package/dist/observable/observable.mjs +55 -1
  40. package/dist/unstable-core-do-not-import/createProxy.d.ts +3 -3
  41. package/dist/unstable-core-do-not-import/createProxy.d.ts.map +1 -1
  42. package/dist/unstable-core-do-not-import/createProxy.js +15 -6
  43. package/dist/unstable-core-do-not-import/createProxy.mjs +15 -6
  44. package/dist/unstable-core-do-not-import/http/contentType.d.ts +7 -4
  45. package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +1 -1
  46. package/dist/unstable-core-do-not-import/http/contentType.js +60 -17
  47. package/dist/unstable-core-do-not-import/http/contentType.mjs +61 -18
  48. package/dist/unstable-core-do-not-import/http/formDataToObject.d.ts.map +1 -0
  49. package/dist/unstable-core-do-not-import/http/formDataToObject.js +40 -0
  50. package/dist/unstable-core-do-not-import/http/formDataToObject.mjs +38 -0
  51. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts.map +1 -1
  52. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.js +4 -4
  53. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +4 -4
  54. package/dist/unstable-core-do-not-import/http/parseConnectionParams.d.ts +4 -0
  55. package/dist/unstable-core-do-not-import/http/parseConnectionParams.d.ts.map +1 -0
  56. package/dist/unstable-core-do-not-import/http/parseConnectionParams.js +42 -0
  57. package/dist/unstable-core-do-not-import/http/parseConnectionParams.mjs +39 -0
  58. package/dist/unstable-core-do-not-import/http/resolveResponse.d.ts.map +1 -1
  59. package/dist/unstable-core-do-not-import/http/resolveResponse.js +302 -149
  60. package/dist/unstable-core-do-not-import/http/resolveResponse.mjs +301 -148
  61. package/dist/unstable-core-do-not-import/http/types.d.ts +26 -2
  62. package/dist/unstable-core-do-not-import/http/types.d.ts.map +1 -1
  63. package/dist/unstable-core-do-not-import/initTRPC.d.ts +12 -12
  64. package/dist/unstable-core-do-not-import/initTRPC.d.ts.map +1 -1
  65. package/dist/unstable-core-do-not-import/middleware.d.ts +3 -3
  66. package/dist/unstable-core-do-not-import/middleware.d.ts.map +1 -1
  67. package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +3 -1
  68. package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +1 -1
  69. package/dist/unstable-core-do-not-import/rootConfig.d.ts +12 -0
  70. package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +1 -1
  71. package/dist/unstable-core-do-not-import/router.d.ts +2 -2
  72. package/dist/unstable-core-do-not-import/router.d.ts.map +1 -1
  73. package/dist/unstable-core-do-not-import/router.js +7 -2
  74. package/dist/unstable-core-do-not-import/router.mjs +7 -2
  75. package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts +7 -0
  76. package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts.map +1 -1
  77. package/dist/unstable-core-do-not-import/rpc/index.d.ts +1 -1
  78. package/dist/unstable-core-do-not-import/rpc/index.d.ts.map +1 -1
  79. package/dist/unstable-core-do-not-import/stream/{stream.d.ts → jsonl.d.ts} +5 -5
  80. package/dist/unstable-core-do-not-import/stream/jsonl.d.ts.map +1 -0
  81. package/dist/unstable-core-do-not-import/stream/{stream.js → jsonl.js} +148 -111
  82. package/dist/unstable-core-do-not-import/stream/{stream.mjs → jsonl.mjs} +147 -110
  83. package/dist/unstable-core-do-not-import/stream/sse.d.ts +86 -0
  84. package/dist/unstable-core-do-not-import/stream/sse.d.ts.map +1 -0
  85. package/dist/unstable-core-do-not-import/stream/sse.js +178 -0
  86. package/dist/unstable-core-do-not-import/stream/sse.mjs +172 -0
  87. package/dist/unstable-core-do-not-import/stream/utils/createDeferred.d.ts +18 -0
  88. package/dist/unstable-core-do-not-import/stream/utils/createDeferred.d.ts.map +1 -0
  89. package/dist/unstable-core-do-not-import/stream/utils/createDeferred.js +46 -0
  90. package/dist/unstable-core-do-not-import/stream/utils/createDeferred.mjs +43 -0
  91. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts +10 -0
  92. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts.map +1 -0
  93. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.js +31 -0
  94. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.mjs +29 -0
  95. package/dist/unstable-core-do-not-import/stream/utils/createServer.d.ts +7 -0
  96. package/dist/unstable-core-do-not-import/stream/utils/createServer.d.ts.map +1 -0
  97. package/dist/unstable-core-do-not-import/transformer.d.ts +5 -5
  98. package/dist/unstable-core-do-not-import/utils.d.ts +4 -0
  99. package/dist/unstable-core-do-not-import/utils.d.ts.map +1 -1
  100. package/dist/unstable-core-do-not-import/utils.js +4 -0
  101. package/dist/unstable-core-do-not-import/utils.mjs +4 -1
  102. package/dist/unstable-core-do-not-import.d.ts +5 -2
  103. package/dist/unstable-core-do-not-import.d.ts.map +1 -1
  104. package/dist/unstable-core-do-not-import.js +19 -7
  105. package/dist/unstable-core-do-not-import.mjs +6 -3
  106. package/package.json +6 -6
  107. package/src/@trpc/server/http.ts +7 -2
  108. package/src/@trpc/server/index.ts +1 -0
  109. package/src/@trpc/server/rpc.ts +1 -0
  110. package/src/adapters/aws-lambda/getPlanner.ts +21 -2
  111. package/src/adapters/next-app-dir/nextAppDirCaller.ts +2 -1
  112. package/src/adapters/node-http/incomingMessageToRequest.ts +3 -2
  113. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +32 -7
  114. package/src/adapters/ws.ts +193 -107
  115. package/src/observable/observable.ts +63 -0
  116. package/src/unstable-core-do-not-import/createProxy.ts +23 -8
  117. package/src/unstable-core-do-not-import/http/contentType.ts +83 -21
  118. package/src/{adapters/next-app-dir → unstable-core-do-not-import/http}/formDataToObject.ts +18 -10
  119. package/src/unstable-core-do-not-import/http/getHTTPStatusCode.ts +4 -7
  120. package/src/unstable-core-do-not-import/http/parseConnectionParams.ts +49 -0
  121. package/src/unstable-core-do-not-import/http/resolveResponse.ts +333 -164
  122. package/src/unstable-core-do-not-import/http/types.ts +31 -2
  123. package/src/unstable-core-do-not-import/procedureBuilder.ts +8 -1
  124. package/src/unstable-core-do-not-import/rootConfig.ts +12 -0
  125. package/src/unstable-core-do-not-import/router.ts +47 -35
  126. package/src/unstable-core-do-not-import/rpc/envelopes.ts +9 -0
  127. package/src/unstable-core-do-not-import/rpc/index.ts +1 -0
  128. package/src/unstable-core-do-not-import/stream/{stream.ts → jsonl.ts} +163 -110
  129. package/src/unstable-core-do-not-import/stream/sse.ts +288 -0
  130. package/src/unstable-core-do-not-import/stream/utils/createDeferred.ts +48 -0
  131. package/src/unstable-core-do-not-import/stream/utils/createReadableStream.ts +31 -0
  132. package/src/unstable-core-do-not-import/stream/utils/createServer.ts +44 -0
  133. package/src/unstable-core-do-not-import/utils.ts +5 -0
  134. package/src/unstable-core-do-not-import.ts +5 -2
  135. package/dist/adapters/next-app-dir/formDataToObject.d.ts.map +0 -1
  136. package/dist/adapters/next-app-dir/formDataToObject.js +0 -34
  137. package/dist/adapters/next-app-dir/formDataToObject.mjs +0 -32
  138. package/dist/unstable-core-do-not-import/stream/stream.d.ts.map +0 -1
  139. /package/dist/{adapters/next-app-dir → unstable-core-do-not-import/http}/formDataToObject.d.ts +0 -0
@@ -0,0 +1,178 @@
1
+ 'use strict';
2
+
3
+ var TRPCError = require('../error/TRPCError.js');
4
+ var utils = require('../utils.js');
5
+ var createDeferred = require('./utils/createDeferred.js');
6
+ var createReadableStream = require('./utils/createReadableStream.js');
7
+
8
+ const sseSymbol = Symbol('SSEMessageEnvelope');
9
+ /**
10
+ * Produce a typed server-sent event message
11
+ */ function sse(event) {
12
+ if (event.id === '') {
13
+ // This could be removed by using different event names for `yield sse(x)`-emitted events and `yield y`-emitted events
14
+ throw new Error('`id` must not be an empty string as empty string is the same as not setting the id at all');
15
+ }
16
+ return [
17
+ sseSymbol,
18
+ event
19
+ ];
20
+ }
21
+ function isSSEMessageEnvelope(value) {
22
+ return Array.isArray(value) && value[0] === sseSymbol;
23
+ }
24
+ /**
25
+ *
26
+ * @see https://html.spec.whatwg.org/multipage/server-sent-events.html
27
+ */ function sseStreamProducer(opts) {
28
+ const stream = createReadableStream.createReadableStream();
29
+ stream.controller.enqueue({
30
+ comment: 'connected'
31
+ });
32
+ const { serialize =(v)=>v } = opts;
33
+ const ping = {
34
+ enabled: opts.ping?.enabled ?? false,
35
+ intervalMs: opts.ping?.intervalMs ?? 1000
36
+ };
37
+ utils.run(async ()=>{
38
+ const iterator = opts.data[Symbol.asyncIterator]();
39
+ const closedPromise = stream.cancelledPromise.then(()=>'closed');
40
+ const maxDurationPromise = createDeferred.createTimeoutPromise(opts.maxDurationMs ?? Infinity, 'maxDuration');
41
+ let nextPromise = iterator.next();
42
+ while(true){
43
+ const pingPromise = createDeferred.createTimeoutPromise(ping.enabled ? ping.intervalMs : Infinity, 'ping');
44
+ const next = await Promise.race([
45
+ nextPromise.catch(TRPCError.getTRPCErrorFromUnknown),
46
+ pingPromise.promise,
47
+ closedPromise,
48
+ maxDurationPromise.promise
49
+ ]);
50
+ pingPromise.clear();
51
+ if (next === 'closed') {
52
+ break;
53
+ }
54
+ if (next === 'maxDuration') {
55
+ break;
56
+ }
57
+ if (next === 'ping') {
58
+ stream.controller.enqueue({
59
+ comment: 'ping'
60
+ });
61
+ continue;
62
+ }
63
+ if (next instanceof Error) {
64
+ stream.controller.error(next);
65
+ break;
66
+ }
67
+ if (next.done) {
68
+ break;
69
+ }
70
+ const value = next.value;
71
+ const chunk = isSSEMessageEnvelope(value) ? {
72
+ ...value[1]
73
+ } : {
74
+ data: value
75
+ };
76
+ if ('data' in chunk) {
77
+ chunk.data = JSON.stringify(serialize(chunk.data));
78
+ }
79
+ stream.controller.enqueue(chunk);
80
+ if (opts.emitAndEndImmediately) {
81
+ // end the stream in the next tick so that we can send a few more events from the queue
82
+ setTimeout(maxDurationPromise.resolve, 1);
83
+ }
84
+ nextPromise = iterator.next();
85
+ }
86
+ maxDurationPromise.clear();
87
+ await iterator.return?.();
88
+ try {
89
+ stream.controller.close();
90
+ } catch {}
91
+ }).catch((error)=>{
92
+ return stream.controller.error(error);
93
+ });
94
+ return stream.readable.pipeThrough(new TransformStream({
95
+ transform (chunk, controller) {
96
+ if ('event' in chunk) {
97
+ controller.enqueue(`event: ${chunk.event}\n`);
98
+ }
99
+ if ('data' in chunk) {
100
+ controller.enqueue(`data: ${chunk.data}\n`);
101
+ }
102
+ if ('id' in chunk) {
103
+ controller.enqueue(`id: ${chunk.id}\n`);
104
+ }
105
+ if ('comment' in chunk) {
106
+ controller.enqueue(`: ${chunk.comment}\n`);
107
+ }
108
+ controller.enqueue('\n\n');
109
+ }
110
+ }));
111
+ }
112
+ /**
113
+ * @see https://html.spec.whatwg.org/multipage/server-sent-events.html
114
+ */ function sseStreamConsumer(opts) {
115
+ const { deserialize =(v)=>v } = opts;
116
+ const eventSource = opts.from;
117
+ const stream = createReadableStream.createReadableStream();
118
+ const transform = new TransformStream({
119
+ async transform (chunk, controller) {
120
+ const def = {
121
+ data: deserialize(JSON.parse(chunk.data))
122
+ };
123
+ if (chunk.lastEventId) {
124
+ def.id = chunk.lastEventId;
125
+ }
126
+ controller.enqueue(def);
127
+ }
128
+ });
129
+ eventSource.addEventListener('message', (msg)=>{
130
+ stream.controller.enqueue(msg);
131
+ });
132
+ eventSource.addEventListener('error', (cause)=>{
133
+ if (eventSource.readyState === EventSource.CLOSED) {
134
+ stream.controller.error(cause);
135
+ }
136
+ });
137
+ const readable = stream.readable.pipeThrough(transform);
138
+ return {
139
+ [Symbol.asyncIterator] () {
140
+ const reader = readable.getReader();
141
+ const iterator = {
142
+ async next () {
143
+ const value = await reader.read();
144
+ if (value.done) {
145
+ return {
146
+ value: undefined,
147
+ done: true
148
+ };
149
+ }
150
+ return {
151
+ value: value.value,
152
+ done: false
153
+ };
154
+ },
155
+ async return () {
156
+ reader.releaseLock();
157
+ return {
158
+ value: undefined,
159
+ done: true
160
+ };
161
+ }
162
+ };
163
+ return iterator;
164
+ }
165
+ };
166
+ }
167
+ const sseHeaders = {
168
+ 'Content-Type': 'text/event-stream',
169
+ 'Cache-Control': 'no-cache, no-transform',
170
+ 'X-Accel-Buffering': 'no',
171
+ Connection: 'keep-alive'
172
+ };
173
+
174
+ exports.isSSEMessageEnvelope = isSSEMessageEnvelope;
175
+ exports.sse = sse;
176
+ exports.sseHeaders = sseHeaders;
177
+ exports.sseStreamConsumer = sseStreamConsumer;
178
+ exports.sseStreamProducer = sseStreamProducer;
@@ -0,0 +1,172 @@
1
+ import { getTRPCErrorFromUnknown } from '../error/TRPCError.mjs';
2
+ import { run } from '../utils.mjs';
3
+ import { createTimeoutPromise } from './utils/createDeferred.mjs';
4
+ import { createReadableStream } from './utils/createReadableStream.mjs';
5
+
6
+ const sseSymbol = Symbol('SSEMessageEnvelope');
7
+ /**
8
+ * Produce a typed server-sent event message
9
+ */ function sse(event) {
10
+ if (event.id === '') {
11
+ // This could be removed by using different event names for `yield sse(x)`-emitted events and `yield y`-emitted events
12
+ throw new Error('`id` must not be an empty string as empty string is the same as not setting the id at all');
13
+ }
14
+ return [
15
+ sseSymbol,
16
+ event
17
+ ];
18
+ }
19
+ function isSSEMessageEnvelope(value) {
20
+ return Array.isArray(value) && value[0] === sseSymbol;
21
+ }
22
+ /**
23
+ *
24
+ * @see https://html.spec.whatwg.org/multipage/server-sent-events.html
25
+ */ function sseStreamProducer(opts) {
26
+ const stream = createReadableStream();
27
+ stream.controller.enqueue({
28
+ comment: 'connected'
29
+ });
30
+ const { serialize =(v)=>v } = opts;
31
+ const ping = {
32
+ enabled: opts.ping?.enabled ?? false,
33
+ intervalMs: opts.ping?.intervalMs ?? 1000
34
+ };
35
+ run(async ()=>{
36
+ const iterator = opts.data[Symbol.asyncIterator]();
37
+ const closedPromise = stream.cancelledPromise.then(()=>'closed');
38
+ const maxDurationPromise = createTimeoutPromise(opts.maxDurationMs ?? Infinity, 'maxDuration');
39
+ let nextPromise = iterator.next();
40
+ while(true){
41
+ const pingPromise = createTimeoutPromise(ping.enabled ? ping.intervalMs : Infinity, 'ping');
42
+ const next = await Promise.race([
43
+ nextPromise.catch(getTRPCErrorFromUnknown),
44
+ pingPromise.promise,
45
+ closedPromise,
46
+ maxDurationPromise.promise
47
+ ]);
48
+ pingPromise.clear();
49
+ if (next === 'closed') {
50
+ break;
51
+ }
52
+ if (next === 'maxDuration') {
53
+ break;
54
+ }
55
+ if (next === 'ping') {
56
+ stream.controller.enqueue({
57
+ comment: 'ping'
58
+ });
59
+ continue;
60
+ }
61
+ if (next instanceof Error) {
62
+ stream.controller.error(next);
63
+ break;
64
+ }
65
+ if (next.done) {
66
+ break;
67
+ }
68
+ const value = next.value;
69
+ const chunk = isSSEMessageEnvelope(value) ? {
70
+ ...value[1]
71
+ } : {
72
+ data: value
73
+ };
74
+ if ('data' in chunk) {
75
+ chunk.data = JSON.stringify(serialize(chunk.data));
76
+ }
77
+ stream.controller.enqueue(chunk);
78
+ if (opts.emitAndEndImmediately) {
79
+ // end the stream in the next tick so that we can send a few more events from the queue
80
+ setTimeout(maxDurationPromise.resolve, 1);
81
+ }
82
+ nextPromise = iterator.next();
83
+ }
84
+ maxDurationPromise.clear();
85
+ await iterator.return?.();
86
+ try {
87
+ stream.controller.close();
88
+ } catch {}
89
+ }).catch((error)=>{
90
+ return stream.controller.error(error);
91
+ });
92
+ return stream.readable.pipeThrough(new TransformStream({
93
+ transform (chunk, controller) {
94
+ if ('event' in chunk) {
95
+ controller.enqueue(`event: ${chunk.event}\n`);
96
+ }
97
+ if ('data' in chunk) {
98
+ controller.enqueue(`data: ${chunk.data}\n`);
99
+ }
100
+ if ('id' in chunk) {
101
+ controller.enqueue(`id: ${chunk.id}\n`);
102
+ }
103
+ if ('comment' in chunk) {
104
+ controller.enqueue(`: ${chunk.comment}\n`);
105
+ }
106
+ controller.enqueue('\n\n');
107
+ }
108
+ }));
109
+ }
110
+ /**
111
+ * @see https://html.spec.whatwg.org/multipage/server-sent-events.html
112
+ */ function sseStreamConsumer(opts) {
113
+ const { deserialize =(v)=>v } = opts;
114
+ const eventSource = opts.from;
115
+ const stream = createReadableStream();
116
+ const transform = new TransformStream({
117
+ async transform (chunk, controller) {
118
+ const def = {
119
+ data: deserialize(JSON.parse(chunk.data))
120
+ };
121
+ if (chunk.lastEventId) {
122
+ def.id = chunk.lastEventId;
123
+ }
124
+ controller.enqueue(def);
125
+ }
126
+ });
127
+ eventSource.addEventListener('message', (msg)=>{
128
+ stream.controller.enqueue(msg);
129
+ });
130
+ eventSource.addEventListener('error', (cause)=>{
131
+ if (eventSource.readyState === EventSource.CLOSED) {
132
+ stream.controller.error(cause);
133
+ }
134
+ });
135
+ const readable = stream.readable.pipeThrough(transform);
136
+ return {
137
+ [Symbol.asyncIterator] () {
138
+ const reader = readable.getReader();
139
+ const iterator = {
140
+ async next () {
141
+ const value = await reader.read();
142
+ if (value.done) {
143
+ return {
144
+ value: undefined,
145
+ done: true
146
+ };
147
+ }
148
+ return {
149
+ value: value.value,
150
+ done: false
151
+ };
152
+ },
153
+ async return () {
154
+ reader.releaseLock();
155
+ return {
156
+ value: undefined,
157
+ done: true
158
+ };
159
+ }
160
+ };
161
+ return iterator;
162
+ }
163
+ };
164
+ }
165
+ const sseHeaders = {
166
+ 'Content-Type': 'text/event-stream',
167
+ 'Cache-Control': 'no-cache, no-transform',
168
+ 'X-Accel-Buffering': 'no',
169
+ Connection: 'keep-alive'
170
+ };
171
+
172
+ export { isSSEMessageEnvelope, sse, sseHeaders, sseStreamConsumer, sseStreamProducer };
@@ -0,0 +1,18 @@
1
+ export declare function createDeferred<TValue>(): {
2
+ promise: Promise<TValue>;
3
+ resolve: (value: TValue) => void;
4
+ reject: (error: unknown) => void;
5
+ };
6
+ export type Deferred<TValue> = ReturnType<typeof createDeferred<TValue>>;
7
+ export declare const createTimeoutPromise: <TValue>(timeoutMs: number, value: TValue) => {
8
+ promise: Promise<TValue>;
9
+ /**
10
+ * Clear the timeout without resolving the promise
11
+ */
12
+ clear: () => void;
13
+ /**
14
+ * Resolve the promise with the value
15
+ */
16
+ resolve: () => void;
17
+ };
18
+ //# sourceMappingURL=createDeferred.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDeferred.d.ts","sourceRoot":"","sources":["../../../../src/unstable-core-do-not-import/stream/utils/createDeferred.ts"],"names":[],"mappings":"AACA,wBAAgB,cAAc,CAAC,MAAM;;qBACd,MAAM,KAAK,IAAI;oBAChB,OAAO,KAAK,IAAI;EAOrC;AACD,MAAM,MAAM,QAAQ,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE,eAAO,MAAM,oBAAoB,GAAI,MAAM,aAC9B,MAAM,SACV,MAAM;;IAuBX;;OAEG;;IAEH;;OAEG;;CAGN,CAAC"}
@@ -0,0 +1,46 @@
1
+ 'use strict';
2
+
3
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */ function createDeferred() {
4
+ let resolve;
5
+ let reject;
6
+ const promise = new Promise((res, rej)=>{
7
+ resolve = res;
8
+ reject = rej;
9
+ });
10
+ return {
11
+ promise,
12
+ resolve: resolve,
13
+ reject: reject
14
+ };
15
+ }
16
+ const createTimeoutPromise = (timeoutMs, value)=>{
17
+ let deferred = createDeferred();
18
+ deferred = deferred;
19
+ let timeout = null;
20
+ const clear = ()=>{
21
+ if (timeout) {
22
+ clearTimeout(timeout);
23
+ timeout = null;
24
+ }
25
+ };
26
+ const resolve = ()=>{
27
+ deferred.resolve(value);
28
+ clear();
29
+ };
30
+ if (timeoutMs !== Infinity) {
31
+ timeout = setTimeout(resolve, timeoutMs);
32
+ timeout.unref?.();
33
+ }
34
+ return {
35
+ promise: deferred.promise,
36
+ /**
37
+ * Clear the timeout without resolving the promise
38
+ */ clear,
39
+ /**
40
+ * Resolve the promise with the value
41
+ */ resolve
42
+ };
43
+ };
44
+
45
+ exports.createDeferred = createDeferred;
46
+ exports.createTimeoutPromise = createTimeoutPromise;
@@ -0,0 +1,43 @@
1
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */ function createDeferred() {
2
+ let resolve;
3
+ let reject;
4
+ const promise = new Promise((res, rej)=>{
5
+ resolve = res;
6
+ reject = rej;
7
+ });
8
+ return {
9
+ promise,
10
+ resolve: resolve,
11
+ reject: reject
12
+ };
13
+ }
14
+ const createTimeoutPromise = (timeoutMs, value)=>{
15
+ let deferred = createDeferred();
16
+ deferred = deferred;
17
+ let timeout = null;
18
+ const clear = ()=>{
19
+ if (timeout) {
20
+ clearTimeout(timeout);
21
+ timeout = null;
22
+ }
23
+ };
24
+ const resolve = ()=>{
25
+ deferred.resolve(value);
26
+ clear();
27
+ };
28
+ if (timeoutMs !== Infinity) {
29
+ timeout = setTimeout(resolve, timeoutMs);
30
+ timeout.unref?.();
31
+ }
32
+ return {
33
+ promise: deferred.promise,
34
+ /**
35
+ * Clear the timeout without resolving the promise
36
+ */ clear,
37
+ /**
38
+ * Resolve the promise with the value
39
+ */ resolve
40
+ };
41
+ };
42
+
43
+ export { createDeferred, createTimeoutPromise };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * One-off readable stream
3
+ */
4
+ export declare function createReadableStream<TValue = unknown>(): {
5
+ readonly readable: ReadableStream<TValue>;
6
+ readonly controller: ReadableStreamDefaultController<TValue>;
7
+ readonly cancelledPromise: Promise<"cancelled">;
8
+ readonly cancelled: () => boolean;
9
+ };
10
+ //# sourceMappingURL=createReadableStream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createReadableStream.d.ts","sourceRoot":"","sources":["../../../../src/unstable-core-do-not-import/stream/utils/createReadableStream.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAG,OAAO;;;;;EAwBpD"}
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var createDeferred = require('./createDeferred.js');
4
+
5
+ // ---------- utils
6
+ /**
7
+ * One-off readable stream
8
+ */ function createReadableStream() {
9
+ let controller = null;
10
+ const deferred = createDeferred.createDeferred();
11
+ let cancelled = false;
12
+ const readable = new ReadableStream({
13
+ start (c) {
14
+ controller = c;
15
+ },
16
+ cancel () {
17
+ deferred.resolve('cancelled');
18
+ cancelled = true;
19
+ }
20
+ });
21
+ return {
22
+ readable,
23
+ controller,
24
+ cancelledPromise: deferred.promise,
25
+ cancelled () {
26
+ return cancelled;
27
+ }
28
+ };
29
+ }
30
+
31
+ exports.createReadableStream = createReadableStream;
@@ -0,0 +1,29 @@
1
+ import { createDeferred } from './createDeferred.mjs';
2
+
3
+ // ---------- utils
4
+ /**
5
+ * One-off readable stream
6
+ */ function createReadableStream() {
7
+ let controller = null;
8
+ const deferred = createDeferred();
9
+ let cancelled = false;
10
+ const readable = new ReadableStream({
11
+ start (c) {
12
+ controller = c;
13
+ },
14
+ cancel () {
15
+ deferred.resolve('cancelled');
16
+ cancelled = true;
17
+ }
18
+ });
19
+ return {
20
+ readable,
21
+ controller,
22
+ cancelledPromise: deferred.promise,
23
+ cancelled () {
24
+ return cancelled;
25
+ }
26
+ };
27
+ }
28
+
29
+ export { createReadableStream };
@@ -0,0 +1,7 @@
1
+ import http from 'http';
2
+ export declare function createServer(handler: (req: http.IncomingMessage, res: http.ServerResponse) => void): {
3
+ url: string;
4
+ close: () => Promise<void>;
5
+ restart: () => Promise<void>;
6
+ };
7
+ //# sourceMappingURL=createServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createServer.d.ts","sourceRoot":"","sources":["../../../../src/unstable-core-do-not-import/stream/utils/createServer.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,wBAAgB,YAAY,CAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI;;;;EAuCvE"}
@@ -71,22 +71,22 @@ declare function transformResultInner<TRouter extends AnyRouter, TOutput>(respon
71
71
  readonly ok: false;
72
72
  readonly error: {
73
73
  readonly error: inferRouterError<TRouter>;
74
- readonly id?: import("./rpc").JSONRPC2.RequestId | undefined;
75
- readonly jsonrpc?: "2.0" | undefined;
74
+ readonly id?: import("./rpc").JSONRPC2.RequestId;
75
+ readonly jsonrpc?: "2.0";
76
76
  } | {
77
77
  readonly error: inferRouterError<TRouter>;
78
78
  readonly id: string | number | null;
79
- readonly jsonrpc?: "2.0" | undefined;
79
+ readonly jsonrpc?: "2.0";
80
80
  };
81
81
  readonly result?: undefined;
82
82
  } | {
83
83
  readonly ok: true;
84
84
  readonly result: {
85
85
  type: "started";
86
- data?: undefined;
86
+ data?: never;
87
87
  } | {
88
88
  type: "stopped";
89
- data?: undefined;
89
+ data?: never;
90
90
  } | (import("./rpc").TRPCResult<TOutput> & {
91
91
  type: "data";
92
92
  });
@@ -19,5 +19,9 @@ export declare function isFunction(fn: unknown): fn is AnyFn;
19
19
  */
20
20
  export declare function omitPrototype<TObj extends Record<string, unknown>>(obj: TObj): TObj;
21
21
  export declare function isAsyncIterable<TValue>(value: unknown): value is AsyncIterable<TValue>;
22
+ /**
23
+ * Run an IIFE
24
+ */
25
+ export declare const run: <TValue>(fn: () => TValue) => TValue;
22
26
  export {};
23
27
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/utils.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,eAAO,MAAM,WAAW,eAAwB,CAAC;AACjD,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzE,IAAI,EAAE,KAAK,EACX,GAAG,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,GACxB,KAAK,CAYP;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC;AACxE,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,KAAK,CAEnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,GAAG,EAAE,IAAI,GACR,IAAI,CAEN;AAKD,wBAAgB,eAAe,CAAC,MAAM,EACpC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,aAAa,CAAC,MAAM,CAAC,CAIhC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/utils.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,eAAO,MAAM,WAAW,eAAwB,CAAC;AACjD,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzE,IAAI,EAAE,KAAK,EACX,GAAG,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,GACxB,KAAK,CAYP;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,OAAO,CAAC,CAAC;AACxE,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,KAAK,CAEnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,GAAG,EAAE,IAAI,GACR,IAAI,CAEN;AAKD,wBAAgB,eAAe,CAAC,MAAM,EACpC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,aAAa,CAAC,MAAM,CAAC,CAIhC;AAED;;GAEG;AACH,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,MAAM,MAAM,KAAG,MAAc,CAAC"}
@@ -35,10 +35,14 @@ const asyncIteratorsSupported = typeof Symbol === 'function' && !!Symbol.asyncIt
35
35
  function isAsyncIterable(value) {
36
36
  return asyncIteratorsSupported && isObject(value) && Symbol.asyncIterator in value;
37
37
  }
38
+ /**
39
+ * Run an IIFE
40
+ */ const run = (fn)=>fn();
38
41
 
39
42
  exports.isAsyncIterable = isAsyncIterable;
40
43
  exports.isFunction = isFunction;
41
44
  exports.isObject = isObject;
42
45
  exports.mergeWithoutOverrides = mergeWithoutOverrides;
43
46
  exports.omitPrototype = omitPrototype;
47
+ exports.run = run;
44
48
  exports.unsetMarker = unsetMarker;
@@ -33,5 +33,8 @@ const asyncIteratorsSupported = typeof Symbol === 'function' && !!Symbol.asyncIt
33
33
  function isAsyncIterable(value) {
34
34
  return asyncIteratorsSupported && isObject(value) && Symbol.asyncIterator in value;
35
35
  }
36
+ /**
37
+ * Run an IIFE
38
+ */ const run = (fn)=>fn();
36
39
 
37
- export { isAsyncIterable, isFunction, isObject, mergeWithoutOverrides, omitPrototype, unsetMarker };
40
+ export { isAsyncIterable, isFunction, isObject, mergeWithoutOverrides, omitPrototype, run, unsetMarker };
@@ -12,13 +12,15 @@ export * from './unstable-core-do-not-import/clientish/inference';
12
12
  export * from './unstable-core-do-not-import/clientish/inferrable';
13
13
  export * from './unstable-core-do-not-import/clientish/serialize';
14
14
  export * from './unstable-core-do-not-import/createProxy';
15
- export * from './unstable-core-do-not-import/error/TRPCError';
16
15
  export * from './unstable-core-do-not-import/error/formatter';
17
16
  export * from './unstable-core-do-not-import/error/getErrorShape';
17
+ export * from './unstable-core-do-not-import/error/TRPCError';
18
18
  export * from './unstable-core-do-not-import/http/batchStreamFormatter';
19
19
  export * from './unstable-core-do-not-import/http/contentType';
20
20
  export * from './unstable-core-do-not-import/http/contentTypeParsers';
21
+ export * from './unstable-core-do-not-import/http/formDataToObject';
21
22
  export * from './unstable-core-do-not-import/http/getHTTPStatusCode';
23
+ export * from './unstable-core-do-not-import/http/parseConnectionParams';
22
24
  export * from './unstable-core-do-not-import/http/resolveResponse';
23
25
  export * from './unstable-core-do-not-import/http/toURL';
24
26
  export * from './unstable-core-do-not-import/http/types';
@@ -30,8 +32,9 @@ export * from './unstable-core-do-not-import/procedureBuilder';
30
32
  export * from './unstable-core-do-not-import/rootConfig';
31
33
  export * from './unstable-core-do-not-import/router';
32
34
  export * from './unstable-core-do-not-import/rpc';
35
+ export * from './unstable-core-do-not-import/stream/jsonl';
36
+ export * from './unstable-core-do-not-import/stream/sse';
33
37
  export * from './unstable-core-do-not-import/transformer';
34
38
  export * from './unstable-core-do-not-import/types';
35
39
  export * from './unstable-core-do-not-import/utils';
36
- export * from './unstable-core-do-not-import/stream/stream';
37
40
  //# sourceMappingURL=unstable-core-do-not-import.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unstable-core-do-not-import.d.ts","sourceRoot":"","sources":["../src/unstable-core-do-not-import.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,mDAAmD,CAAC;AAClE,cAAc,oDAAoD,CAAC;AACnE,cAAc,mDAAmD,CAAC;AAClE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,yDAAyD,CAAC;AACxE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uDAAuD,CAAC;AACtE,cAAc,sDAAsD,CAAC;AACrE,cAAc,oDAAoD,CAAC;AACnE,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6CAA6C,CAAC"}
1
+ {"version":3,"file":"unstable-core-do-not-import.d.ts","sourceRoot":"","sources":["../src/unstable-core-do-not-import.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,cAAc,mDAAmD,CAAC;AAClE,cAAc,oDAAoD,CAAC;AACnE,cAAc,mDAAmD,CAAC;AAClE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yDAAyD,CAAC;AACxE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uDAAuD,CAAC;AACtE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,0DAA0D,CAAC;AACzE,cAAc,oDAAoD,CAAC;AACnE,cAAc,0CAA0C,CAAC;AACzD,cAAc,0CAA0C,CAAC;AACzD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC"}