@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.
- package/dist/@trpc/server/http.d.ts +1 -2
- package/dist/@trpc/server/http.d.ts.map +1 -1
- package/dist/@trpc/server/index.d.ts +1 -1
- package/dist/@trpc/server/index.d.ts.map +1 -1
- package/dist/@trpc/server/rpc.d.ts +1 -1
- package/dist/@trpc/server/rpc.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/getPlanner.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/getPlanner.js +19 -2
- package/dist/adapters/aws-lambda/getPlanner.mjs +19 -2
- package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts.map +1 -1
- package/dist/adapters/next-app-dir/nextAppDirCaller.js +1 -1
- package/dist/adapters/next-app-dir/nextAppDirCaller.mjs +1 -1
- package/dist/adapters/next-app-dir/redirect.d.ts.map +1 -1
- package/dist/adapters/next.js +1 -1
- package/dist/adapters/next.mjs +1 -1
- package/dist/adapters/node-http/incomingMessageToRequest.d.ts +0 -1
- package/dist/adapters/node-http/incomingMessageToRequest.d.ts.map +1 -1
- package/dist/adapters/node-http/incomingMessageToRequest.js +3 -1
- package/dist/adapters/node-http/incomingMessageToRequest.mjs +3 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.js +30 -7
- package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +30 -7
- package/dist/adapters/node-http/types.d.ts +0 -1
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts +0 -1
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/ws.d.ts +3 -4
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +172 -114
- package/dist/adapters/ws.mjs +172 -114
- package/dist/bundle-analysis.json +236 -155
- package/dist/http.js +3 -0
- package/dist/http.mjs +1 -0
- package/dist/index.js +7 -5
- package/dist/index.mjs +3 -2
- package/dist/observable/observable.d.ts +1 -0
- package/dist/observable/observable.d.ts.map +1 -1
- package/dist/observable/observable.js +55 -0
- package/dist/observable/observable.mjs +55 -1
- package/dist/unstable-core-do-not-import/createProxy.d.ts +3 -3
- package/dist/unstable-core-do-not-import/createProxy.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/createProxy.js +15 -6
- package/dist/unstable-core-do-not-import/createProxy.mjs +15 -6
- package/dist/unstable-core-do-not-import/http/contentType.d.ts +7 -4
- package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/http/contentType.js +60 -17
- package/dist/unstable-core-do-not-import/http/contentType.mjs +61 -18
- package/dist/unstable-core-do-not-import/http/formDataToObject.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/formDataToObject.js +40 -0
- package/dist/unstable-core-do-not-import/http/formDataToObject.mjs +38 -0
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.js +4 -4
- package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +4 -4
- package/dist/unstable-core-do-not-import/http/parseConnectionParams.d.ts +4 -0
- package/dist/unstable-core-do-not-import/http/parseConnectionParams.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/http/parseConnectionParams.js +42 -0
- package/dist/unstable-core-do-not-import/http/parseConnectionParams.mjs +39 -0
- package/dist/unstable-core-do-not-import/http/resolveResponse.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/http/resolveResponse.js +302 -149
- package/dist/unstable-core-do-not-import/http/resolveResponse.mjs +301 -148
- package/dist/unstable-core-do-not-import/http/types.d.ts +26 -2
- package/dist/unstable-core-do-not-import/http/types.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/initTRPC.d.ts +12 -12
- package/dist/unstable-core-do-not-import/initTRPC.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/middleware.d.ts +3 -3
- package/dist/unstable-core-do-not-import/middleware.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +3 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/rootConfig.d.ts +12 -0
- package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/router.d.ts +2 -2
- package/dist/unstable-core-do-not-import/router.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/router.js +7 -2
- package/dist/unstable-core-do-not-import/router.mjs +7 -2
- package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts +7 -0
- package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/rpc/index.d.ts +1 -1
- package/dist/unstable-core-do-not-import/rpc/index.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/stream/{stream.d.ts → jsonl.d.ts} +5 -5
- package/dist/unstable-core-do-not-import/stream/jsonl.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/stream/{stream.js → jsonl.js} +148 -111
- package/dist/unstable-core-do-not-import/stream/{stream.mjs → jsonl.mjs} +147 -110
- package/dist/unstable-core-do-not-import/stream/sse.d.ts +86 -0
- package/dist/unstable-core-do-not-import/stream/sse.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/stream/sse.js +178 -0
- package/dist/unstable-core-do-not-import/stream/sse.mjs +172 -0
- package/dist/unstable-core-do-not-import/stream/utils/createDeferred.d.ts +18 -0
- package/dist/unstable-core-do-not-import/stream/utils/createDeferred.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/stream/utils/createDeferred.js +46 -0
- package/dist/unstable-core-do-not-import/stream/utils/createDeferred.mjs +43 -0
- package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts +10 -0
- package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.js +31 -0
- package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.mjs +29 -0
- package/dist/unstable-core-do-not-import/stream/utils/createServer.d.ts +7 -0
- package/dist/unstable-core-do-not-import/stream/utils/createServer.d.ts.map +1 -0
- package/dist/unstable-core-do-not-import/transformer.d.ts +5 -5
- package/dist/unstable-core-do-not-import/utils.d.ts +4 -0
- package/dist/unstable-core-do-not-import/utils.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/utils.js +4 -0
- package/dist/unstable-core-do-not-import/utils.mjs +4 -1
- package/dist/unstable-core-do-not-import.d.ts +5 -2
- package/dist/unstable-core-do-not-import.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import.js +19 -7
- package/dist/unstable-core-do-not-import.mjs +6 -3
- package/package.json +6 -6
- package/src/@trpc/server/http.ts +7 -2
- package/src/@trpc/server/index.ts +1 -0
- package/src/@trpc/server/rpc.ts +1 -0
- package/src/adapters/aws-lambda/getPlanner.ts +21 -2
- package/src/adapters/next-app-dir/nextAppDirCaller.ts +2 -1
- package/src/adapters/node-http/incomingMessageToRequest.ts +3 -2
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +32 -7
- package/src/adapters/ws.ts +193 -107
- package/src/observable/observable.ts +63 -0
- package/src/unstable-core-do-not-import/createProxy.ts +23 -8
- package/src/unstable-core-do-not-import/http/contentType.ts +83 -21
- package/src/{adapters/next-app-dir → unstable-core-do-not-import/http}/formDataToObject.ts +18 -10
- package/src/unstable-core-do-not-import/http/getHTTPStatusCode.ts +4 -7
- package/src/unstable-core-do-not-import/http/parseConnectionParams.ts +49 -0
- package/src/unstable-core-do-not-import/http/resolveResponse.ts +333 -164
- package/src/unstable-core-do-not-import/http/types.ts +31 -2
- package/src/unstable-core-do-not-import/procedureBuilder.ts +8 -1
- package/src/unstable-core-do-not-import/rootConfig.ts +12 -0
- package/src/unstable-core-do-not-import/router.ts +47 -35
- package/src/unstable-core-do-not-import/rpc/envelopes.ts +9 -0
- package/src/unstable-core-do-not-import/rpc/index.ts +1 -0
- package/src/unstable-core-do-not-import/stream/{stream.ts → jsonl.ts} +163 -110
- package/src/unstable-core-do-not-import/stream/sse.ts +288 -0
- package/src/unstable-core-do-not-import/stream/utils/createDeferred.ts +48 -0
- package/src/unstable-core-do-not-import/stream/utils/createReadableStream.ts +31 -0
- package/src/unstable-core-do-not-import/stream/utils/createServer.ts +44 -0
- package/src/unstable-core-do-not-import/utils.ts +5 -0
- package/src/unstable-core-do-not-import.ts +5 -2
- package/dist/adapters/next-app-dir/formDataToObject.d.ts.map +0 -1
- package/dist/adapters/next-app-dir/formDataToObject.js +0 -34
- package/dist/adapters/next-app-dir/formDataToObject.mjs +0 -32
- package/dist/unstable-core-do-not-import/stream/stream.d.ts.map +0 -1
- /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 @@
|
|
|
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
|
|
75
|
-
readonly jsonrpc?: "2.0"
|
|
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"
|
|
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?:
|
|
86
|
+
data?: never;
|
|
87
87
|
} | {
|
|
88
88
|
type: "stopped";
|
|
89
|
-
data?:
|
|
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,
|
|
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"}
|