@highstate/designer 0.7.3 → 0.7.6
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/.output/nitro.json +15 -0
- package/.output/public/_nuxt/0cvrggvQ.js +6 -0
- package/.output/public/_nuxt/25W9uPmb.js +6 -0
- package/.output/public/_nuxt/4Ik7cdeQ.js +8 -0
- package/.output/public/_nuxt/5Rap-vPy.js +6 -0
- package/.output/public/_nuxt/B03wrqEc.js +6 -0
- package/.output/public/_nuxt/B5zXfXm9.js +6 -0
- package/.output/public/_nuxt/B9Xyijhd.js +6 -0
- package/.output/public/_nuxt/BFG1Mk7z.js +6 -0
- package/.output/public/_nuxt/BIHI7g3E.js +1 -0
- package/.output/public/_nuxt/BKlk5iyT.js +6 -0
- package/.output/public/_nuxt/BSkB5QuD.js +6 -0
- package/.output/public/_nuxt/BWmkvLm_.js +9 -0
- package/.output/public/_nuxt/BY4ic99o.js +1 -0
- package/.output/public/_nuxt/B_c3zf-v.js +6 -0
- package/.output/public/_nuxt/B_fMsGYe.js +6 -0
- package/.output/public/_nuxt/BaJupSGV.js +6 -0
- package/.output/public/_nuxt/BaLxmfj-.js +6 -0
- package/.output/public/_nuxt/BaiHcgzs.js +6 -0
- package/.output/public/_nuxt/Bc-ZgV77.js +6 -0
- package/.output/public/_nuxt/BfEKNvv3.js +7 -0
- package/.output/public/_nuxt/Bhzvs7bI.js +6 -0
- package/.output/public/_nuxt/Bio4gycK.js +6 -0
- package/.output/public/_nuxt/BoFRg7Ot.js +6 -0
- package/.output/public/_nuxt/Bqgm2twL.js +6 -0
- package/.output/public/_nuxt/BrdhNivz.js +1 -0
- package/.output/public/_nuxt/BrgZPUOV.js +6 -0
- package/.output/public/_nuxt/BsTHnhdd.js +7 -0
- package/.output/public/_nuxt/C5WLch3f.js +6 -0
- package/.output/public/_nuxt/C7NrX02N.js +6 -0
- package/.output/public/_nuxt/CCSDG5nI.js +6 -0
- package/.output/public/_nuxt/CDGzqUPQ.js +6 -0
- package/.output/public/_nuxt/CDntyWJ8.js +6 -0
- package/.output/public/_nuxt/CFKIUWau.js +6 -0
- package/.output/public/_nuxt/CFOPXBzS.js +6 -0
- package/.output/public/_nuxt/CLLBncYj.js +6 -0
- package/.output/public/_nuxt/COyEY5Pt.js +7 -0
- package/.output/public/_nuxt/CPajHgWi.js +6 -0
- package/.output/public/_nuxt/CVwtpugi.js +6 -0
- package/.output/public/_nuxt/CWsALi_N.js +6 -0
- package/.output/public/_nuxt/CX-rkNHf.js +6 -0
- package/.output/public/_nuxt/CXOwvkN_.js +6 -0
- package/.output/public/_nuxt/CdQndTaG.js +6 -0
- package/.output/public/_nuxt/Ce3n6wWz.js +6 -0
- package/.output/public/_nuxt/Cg7bfA9N.js +6 -0
- package/.output/public/_nuxt/Ch4PGxFq.js +6 -0
- package/.output/public/_nuxt/Cp1zYvxS.js +6 -0
- package/.output/public/_nuxt/CpIb_Oan.js +6 -0
- package/.output/public/_nuxt/Cpb6xl2v.js +6 -0
- package/.output/public/_nuxt/Cphgjts3.js +6 -0
- package/.output/public/_nuxt/CrUIUSRQ.js +1 -0
- package/.output/public/_nuxt/CwNk8-XU.js +6 -0
- package/.output/public/_nuxt/CxQiO5cn.js +8 -0
- package/.output/public/_nuxt/CzKuDChf.js +6 -0
- package/.output/public/_nuxt/D-MeaMDU.js +6 -0
- package/.output/public/_nuxt/D0A5LTnE.js +9 -0
- package/.output/public/_nuxt/D3h14YRZ.js +8 -0
- package/.output/public/_nuxt/D5C2fndG.js +6 -0
- package/.output/public/_nuxt/DDwshQtU.js +6 -0
- package/.output/public/_nuxt/DFGrbNda.js +16 -0
- package/.output/public/_nuxt/DGinXpNd.js +6 -0
- package/.output/public/_nuxt/DHaeiCBh.js +6 -0
- package/.output/public/_nuxt/DHbdnjwW.js +6 -0
- package/.output/public/_nuxt/DSZPf7rp.js +6 -0
- package/.output/public/_nuxt/DTECt2xU.js +6 -0
- package/.output/public/_nuxt/DXyYeYxl.js +6 -0
- package/.output/public/_nuxt/DYQUnd45.js +303 -0
- package/.output/public/_nuxt/Dd3NCNK9.js +6 -0
- package/.output/public/_nuxt/DfzH4Xui.js +6 -0
- package/.output/public/_nuxt/DgpMLyT9.js +6 -0
- package/.output/public/_nuxt/DgyLZaXg.js +6 -0
- package/.output/public/_nuxt/DnHyzjbg.js +6 -0
- package/.output/public/_nuxt/DqxlV1Dz.js +6 -0
- package/.output/public/_nuxt/DrQuvNYM.js +6 -0
- package/.output/public/_nuxt/Drc7WvVn.js +6 -0
- package/.output/public/_nuxt/DtSS2RIy.js +6 -0
- package/.output/public/_nuxt/DwJ7jVG9.js +8 -0
- package/.output/public/_nuxt/DwN8ib1V.js +1111 -0
- package/.output/public/_nuxt/DyP6w7ZV.js +6 -0
- package/.output/public/_nuxt/Tw7wswEv.js +6 -0
- package/.output/public/_nuxt/YWi4-JPR.js +6 -0
- package/.output/public/_nuxt/Zznr-cwX.js +6 -0
- package/.output/public/_nuxt/builds/latest.json +1 -0
- package/.output/public/_nuxt/builds/meta/652d9eb9-2c2b-4ab1-b1c2-d46efce134b3.json +1 -0
- package/.output/public/_nuxt/codicon.DCmgc-ay.ttf +0 -0
- package/.output/public/_nuxt/dUCx_-0o.js +6 -0
- package/.output/public/_nuxt/deUWdS0T.js +6 -0
- package/.output/public/_nuxt/edge-router-BFNVMcBx.js +4 -0
- package/.output/public/_nuxt/editor.worker-B6Jl4jUd.js +12 -0
- package/.output/public/_nuxt/entry.BD0Qz9HR.css +5 -0
- package/.output/public/_nuxt/error-404.D7tj2jQK.css +1 -0
- package/.output/public/_nuxt/error-500.TOCKLquH.css +1 -0
- package/.output/public/_nuxt/gYnoVL96.js +6 -0
- package/.output/public/_nuxt/graph-resolver-Y9hmyS-J.js +8 -0
- package/.output/public/_nuxt/i9-g7ZhI.js +6 -0
- package/.output/public/_nuxt/jDosRYr7.js +15 -0
- package/.output/public/_nuxt/materialdesignicons-webfont.B6OSyW2I.woff2 +0 -0
- package/.output/public/_nuxt/materialdesignicons-webfont.BpRar1d5.ttf +0 -0
- package/.output/public/_nuxt/materialdesignicons-webfont.Bvl3VxMs.woff +0 -0
- package/.output/public/_nuxt/materialdesignicons-webfont.TEmAk13K.eot +0 -0
- package/.output/public/_nuxt/nf6ki56Z.js +6 -0
- package/.output/public/_nuxt/pnP8ivHi.js +6 -0
- package/.output/public/_nuxt/rUNN04Wq.js +6 -0
- package/.output/public/_nuxt/tGk8EFnU.js +6 -0
- package/.output/public/_nuxt/yaml.worker-B8S0iqeR.js +411 -0
- package/.output/public/favicon.ico +0 -0
- package/.output/public/libavoid.wasm +0 -0
- package/.output/public/robots.txt +1 -0
- package/.output/server/index.mjs +13188 -0
- package/.output/server/index.mjs.map +1 -0
- package/.output/server/node_modules/@babel/parser/lib/index.js +14246 -0
- package/.output/server/node_modules/@babel/parser/package.json +50 -0
- package/.output/server/node_modules/@trpc/server/dist/adapters/fetch/fetchRequestHandler.mjs +74 -0
- package/.output/server/node_modules/@trpc/server/dist/adapters/fetch/index.mjs +1 -0
- package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/incomingMessageToRequest.mjs +119 -0
- package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/index.mjs +2 -0
- package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +92 -0
- package/.output/server/node_modules/@trpc/server/dist/adapters/node-http/writeResponse.mjs +79 -0
- package/.output/server/node_modules/@trpc/server/dist/adapters/ws.mjs +521 -0
- package/.output/server/node_modules/@trpc/server/dist/index.mjs +12 -0
- package/.output/server/node_modules/@trpc/server/dist/observable/observable.mjs +175 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/createProxy.mjs +73 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/TRPCError.mjs +79 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/formatter.mjs +5 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/error/getErrorShape.mjs +29 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/abortError.mjs +10 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/contentType.mjs +229 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +76 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/parseConnectionParams.mjs +39 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/http/resolveResponse.mjs +570 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/initTRPC.mjs +80 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/middleware.mjs +90 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/parser.mjs +52 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/procedure.mjs +7 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/procedureBuilder.mjs +198 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/rootConfig.mjs +6 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/router.mjs +278 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/rpc/codes.mjs +54 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.mjs +61 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/jsonl.mjs +603 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/sse.mjs +369 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/tracked.mjs +25 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/asyncIterable.mjs +165 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/createDeferred.mjs +15 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/disposable.mjs +43 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/mergeAsyncIterables.mjs +239 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/readableStreamFrom.mjs +23 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/timerResource.mjs +23 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/stream/utils/withPing.mjs +127 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/transformer.mjs +101 -0
- package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/utils.mjs +83 -0
- package/.output/server/node_modules/@trpc/server/dist/vendor/standard-schema-v1/error.mjs +26 -0
- package/.output/server/node_modules/@trpc/server/dist/vendor/unpromise/unpromise.mjs +289 -0
- package/.output/server/node_modules/@trpc/server/package.json +156 -0
- package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6690 -0
- package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
- package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +686 -0
- package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
- package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1404 -0
- package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
- package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1789 -0
- package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
- package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6654 -0
- package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
- package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1669 -0
- package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
- package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +857 -0
- package/.output/server/node_modules/@vue/server-renderer/package.json +55 -0
- package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +594 -0
- package/.output/server/node_modules/@vue/shared/package.json +47 -0
- package/.output/server/node_modules/devalue/index.js +3 -0
- package/.output/server/node_modules/devalue/package.json +34 -0
- package/.output/server/node_modules/devalue/src/base64.js +110 -0
- package/.output/server/node_modules/devalue/src/constants.js +6 -0
- package/.output/server/node_modules/devalue/src/parse.js +160 -0
- package/.output/server/node_modules/devalue/src/stringify.js +232 -0
- package/.output/server/node_modules/devalue/src/uneval.js +351 -0
- package/.output/server/node_modules/devalue/src/utils.js +113 -0
- package/.output/server/node_modules/entities/lib/decode.js +536 -0
- package/.output/server/node_modules/entities/lib/decode_codepoint.js +76 -0
- package/.output/server/node_modules/entities/lib/generated/decode-data-html.js +9 -0
- package/.output/server/node_modules/entities/lib/generated/decode-data-xml.js +9 -0
- package/.output/server/node_modules/entities/package.json +90 -0
- package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
- package/.output/server/node_modules/estree-walker/package.json +37 -0
- package/.output/server/node_modules/hookable/dist/index.mjs +290 -0
- package/.output/server/node_modules/hookable/package.json +49 -0
- package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
- package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
- package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
- package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
- package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
- package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
- package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
- package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
- package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
- package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
- package/.output/server/node_modules/source-map-js/package.json +71 -0
- package/.output/server/node_modules/source-map-js/source-map.js +8 -0
- package/.output/server/node_modules/ufo/dist/index.mjs +630 -0
- package/.output/server/node_modules/ufo/package.json +47 -0
- package/.output/server/node_modules/unhead/dist/plugins.mjs +94 -0
- package/.output/server/node_modules/unhead/dist/server.mjs +220 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.C13swrCa.mjs +48 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CApf5sj3.mjs +148 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.Cp0iF6eN.mjs +177 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +196 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.DZbvapt-.mjs +70 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.DeCxexjU.mjs +166 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.Txd0XTIP.mjs +172 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +38 -0
- package/.output/server/node_modules/unhead/dist/utils.mjs +5 -0
- package/.output/server/node_modules/unhead/package.json +101 -0
- package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
- package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
- package/.output/server/node_modules/vue/index.js +7 -0
- package/.output/server/node_modules/vue/index.mjs +1 -0
- package/.output/server/node_modules/vue/package.json +112 -0
- package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
- package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +196 -0
- package/.output/server/node_modules/vue-bundle-renderer/package.json +50 -0
- package/.output/server/node_modules/ws/lib/buffer-util.js +131 -0
- package/.output/server/node_modules/ws/lib/constants.js +18 -0
- package/.output/server/node_modules/ws/lib/event-target.js +292 -0
- package/.output/server/node_modules/ws/lib/extension.js +203 -0
- package/.output/server/node_modules/ws/lib/limiter.js +55 -0
- package/.output/server/node_modules/ws/lib/permessage-deflate.js +514 -0
- package/.output/server/node_modules/ws/lib/receiver.js +706 -0
- package/.output/server/node_modules/ws/lib/sender.js +602 -0
- package/.output/server/node_modules/ws/lib/stream.js +161 -0
- package/.output/server/node_modules/ws/lib/subprotocol.js +62 -0
- package/.output/server/node_modules/ws/lib/validation.js +152 -0
- package/.output/server/node_modules/ws/lib/websocket-server.js +540 -0
- package/.output/server/node_modules/ws/lib/websocket.js +1388 -0
- package/.output/server/node_modules/ws/package.json +69 -0
- package/.output/server/node_modules/ws/wrapper.mjs +8 -0
- package/.output/server/node_modules/zod/lib/index.mjs +4405 -0
- package/.output/server/node_modules/zod/package.json +122 -0
- package/.output/server/package.json +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { TRPCError } from '../error/TRPCError.mjs';
|
|
2
|
+
import { isObject } from '../utils.mjs';
|
|
3
|
+
|
|
4
|
+
function parseConnectionParamsFromUnknown(parsed) {
|
|
5
|
+
try {
|
|
6
|
+
if (parsed === null) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
if (!isObject(parsed)) {
|
|
10
|
+
throw new Error('Expected object');
|
|
11
|
+
}
|
|
12
|
+
const nonStringValues = Object.entries(parsed).filter(([_key, value])=>typeof value !== 'string');
|
|
13
|
+
if (nonStringValues.length > 0) {
|
|
14
|
+
throw new Error(`Expected connectionParams to be string values. Got ${nonStringValues.map(([key, value])=>`${key}: ${typeof value}`).join(', ')}`);
|
|
15
|
+
}
|
|
16
|
+
return parsed;
|
|
17
|
+
} catch (cause) {
|
|
18
|
+
throw new TRPCError({
|
|
19
|
+
code: 'PARSE_ERROR',
|
|
20
|
+
message: 'Invalid connection params shape',
|
|
21
|
+
cause
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function parseConnectionParamsFromString(str) {
|
|
26
|
+
let parsed;
|
|
27
|
+
try {
|
|
28
|
+
parsed = JSON.parse(str);
|
|
29
|
+
} catch (cause) {
|
|
30
|
+
throw new TRPCError({
|
|
31
|
+
code: 'PARSE_ERROR',
|
|
32
|
+
message: 'Not JSON-parsable query params',
|
|
33
|
+
cause
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
return parseConnectionParamsFromUnknown(parsed);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export { parseConnectionParamsFromString, parseConnectionParamsFromUnknown };
|
|
@@ -0,0 +1,570 @@
|
|
|
1
|
+
import { isObservable, observableToAsyncIterable } from '../../observable/observable.mjs';
|
|
2
|
+
import { getErrorShape } from '../error/getErrorShape.mjs';
|
|
3
|
+
import { getTRPCErrorFromUnknown, TRPCError } from '../error/TRPCError.mjs';
|
|
4
|
+
import { jsonlStreamProducer, isPromise } from '../stream/jsonl.mjs';
|
|
5
|
+
import { sseStreamProducer, sseHeaders } from '../stream/sse.mjs';
|
|
6
|
+
import { transformTRPCResponse } from '../transformer.mjs';
|
|
7
|
+
import { run, isAsyncIterable, isObject } from '../utils.mjs';
|
|
8
|
+
import { getRequestInfo } from './contentType.mjs';
|
|
9
|
+
import { getHTTPStatusCode } from './getHTTPStatusCode.mjs';
|
|
10
|
+
|
|
11
|
+
function errorToAsyncIterable(err) {
|
|
12
|
+
return run(async function*() {
|
|
13
|
+
throw err;
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
const TYPE_ACCEPTED_METHOD_MAP = {
|
|
17
|
+
mutation: [
|
|
18
|
+
'POST'
|
|
19
|
+
],
|
|
20
|
+
query: [
|
|
21
|
+
'GET'
|
|
22
|
+
],
|
|
23
|
+
subscription: [
|
|
24
|
+
'GET'
|
|
25
|
+
]
|
|
26
|
+
};
|
|
27
|
+
const TYPE_ACCEPTED_METHOD_MAP_WITH_METHOD_OVERRIDE = {
|
|
28
|
+
// never allow GET to do a mutation
|
|
29
|
+
mutation: [
|
|
30
|
+
'POST'
|
|
31
|
+
],
|
|
32
|
+
query: [
|
|
33
|
+
'GET',
|
|
34
|
+
'POST'
|
|
35
|
+
],
|
|
36
|
+
subscription: [
|
|
37
|
+
'GET',
|
|
38
|
+
'POST'
|
|
39
|
+
]
|
|
40
|
+
};
|
|
41
|
+
function initResponse(initOpts) {
|
|
42
|
+
const { ctx, info, responseMeta, untransformedJSON, errors = [], headers } = initOpts;
|
|
43
|
+
let status = untransformedJSON ? getHTTPStatusCode(untransformedJSON) : 200;
|
|
44
|
+
const eagerGeneration = !untransformedJSON;
|
|
45
|
+
const data = eagerGeneration ? [] : Array.isArray(untransformedJSON) ? untransformedJSON : [
|
|
46
|
+
untransformedJSON
|
|
47
|
+
];
|
|
48
|
+
const meta = responseMeta?.({
|
|
49
|
+
ctx,
|
|
50
|
+
info,
|
|
51
|
+
paths: info?.calls.map((call)=>call.path),
|
|
52
|
+
data,
|
|
53
|
+
errors,
|
|
54
|
+
eagerGeneration,
|
|
55
|
+
type: info?.calls.find((call)=>call.procedure?._def.type)?.procedure?._def.type ?? 'unknown'
|
|
56
|
+
}) ?? {};
|
|
57
|
+
if (meta.headers) {
|
|
58
|
+
if (meta.headers instanceof Headers) {
|
|
59
|
+
for (const [key, value] of meta.headers.entries()){
|
|
60
|
+
headers.append(key, value);
|
|
61
|
+
}
|
|
62
|
+
} else {
|
|
63
|
+
/**
|
|
64
|
+
* @deprecated, delete in v12
|
|
65
|
+
*/ for (const [key, value] of Object.entries(meta.headers)){
|
|
66
|
+
if (Array.isArray(value)) {
|
|
67
|
+
for (const v of value){
|
|
68
|
+
headers.append(key, v);
|
|
69
|
+
}
|
|
70
|
+
} else if (typeof value === 'string') {
|
|
71
|
+
headers.set(key, value);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (meta.status) {
|
|
77
|
+
status = meta.status;
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
status
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function caughtErrorToData(cause, errorOpts) {
|
|
84
|
+
const { router, req, onError } = errorOpts.opts;
|
|
85
|
+
const error = getTRPCErrorFromUnknown(cause);
|
|
86
|
+
onError?.({
|
|
87
|
+
error,
|
|
88
|
+
path: errorOpts.path,
|
|
89
|
+
input: errorOpts.input,
|
|
90
|
+
ctx: errorOpts.ctx,
|
|
91
|
+
type: errorOpts.type,
|
|
92
|
+
req
|
|
93
|
+
});
|
|
94
|
+
const untransformedJSON = {
|
|
95
|
+
error: getErrorShape({
|
|
96
|
+
config: router._def._config,
|
|
97
|
+
error,
|
|
98
|
+
type: errorOpts.type,
|
|
99
|
+
path: errorOpts.path,
|
|
100
|
+
input: errorOpts.input,
|
|
101
|
+
ctx: errorOpts.ctx
|
|
102
|
+
})
|
|
103
|
+
};
|
|
104
|
+
const transformedJSON = transformTRPCResponse(router._def._config, untransformedJSON);
|
|
105
|
+
const body = JSON.stringify(transformedJSON);
|
|
106
|
+
return {
|
|
107
|
+
error,
|
|
108
|
+
untransformedJSON,
|
|
109
|
+
body
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Check if a value is a stream-like object
|
|
114
|
+
* - if it's an async iterable
|
|
115
|
+
* - if it's an object with async iterables or promises
|
|
116
|
+
*/ function isDataStream(v) {
|
|
117
|
+
if (!isObject(v)) {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
if (isAsyncIterable(v)) {
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
return Object.values(v).some(isPromise) || Object.values(v).some(isAsyncIterable);
|
|
124
|
+
}
|
|
125
|
+
async function resolveResponse(opts) {
|
|
126
|
+
const { router, req } = opts;
|
|
127
|
+
const headers = new Headers([
|
|
128
|
+
[
|
|
129
|
+
'vary',
|
|
130
|
+
'trpc-accept'
|
|
131
|
+
]
|
|
132
|
+
]);
|
|
133
|
+
const config = router._def._config;
|
|
134
|
+
const url = new URL(req.url);
|
|
135
|
+
if (req.method === 'HEAD') {
|
|
136
|
+
// can be used for lambda warmup
|
|
137
|
+
return new Response(null, {
|
|
138
|
+
status: 204
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
const allowBatching = opts.allowBatching ?? opts.batching?.enabled ?? true;
|
|
142
|
+
const allowMethodOverride = (opts.allowMethodOverride ?? false) && req.method === 'POST';
|
|
143
|
+
const infoTuple = await run(async ()=>{
|
|
144
|
+
try {
|
|
145
|
+
return [
|
|
146
|
+
undefined,
|
|
147
|
+
await getRequestInfo({
|
|
148
|
+
req,
|
|
149
|
+
path: decodeURIComponent(opts.path),
|
|
150
|
+
router,
|
|
151
|
+
searchParams: url.searchParams,
|
|
152
|
+
headers: opts.req.headers,
|
|
153
|
+
url
|
|
154
|
+
})
|
|
155
|
+
];
|
|
156
|
+
} catch (cause) {
|
|
157
|
+
return [
|
|
158
|
+
getTRPCErrorFromUnknown(cause),
|
|
159
|
+
undefined
|
|
160
|
+
];
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
const ctxManager = run(()=>{
|
|
164
|
+
let result = undefined;
|
|
165
|
+
return {
|
|
166
|
+
valueOrUndefined: ()=>{
|
|
167
|
+
if (!result) {
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
return result[1];
|
|
171
|
+
},
|
|
172
|
+
value: ()=>{
|
|
173
|
+
const [err, ctx] = result;
|
|
174
|
+
if (err) {
|
|
175
|
+
throw err;
|
|
176
|
+
}
|
|
177
|
+
return ctx;
|
|
178
|
+
},
|
|
179
|
+
create: async (info)=>{
|
|
180
|
+
if (result) {
|
|
181
|
+
throw new Error('This should only be called once - report a bug in tRPC');
|
|
182
|
+
}
|
|
183
|
+
try {
|
|
184
|
+
const ctx = await opts.createContext({
|
|
185
|
+
info
|
|
186
|
+
});
|
|
187
|
+
result = [
|
|
188
|
+
undefined,
|
|
189
|
+
ctx
|
|
190
|
+
];
|
|
191
|
+
} catch (cause) {
|
|
192
|
+
result = [
|
|
193
|
+
getTRPCErrorFromUnknown(cause),
|
|
194
|
+
undefined
|
|
195
|
+
];
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
});
|
|
200
|
+
const methodMapper = allowMethodOverride ? TYPE_ACCEPTED_METHOD_MAP_WITH_METHOD_OVERRIDE : TYPE_ACCEPTED_METHOD_MAP;
|
|
201
|
+
/**
|
|
202
|
+
* @deprecated
|
|
203
|
+
*/ const isStreamCall = req.headers.get('trpc-accept') === 'application/jsonl';
|
|
204
|
+
const experimentalSSE = config.sse?.enabled ?? true;
|
|
205
|
+
try {
|
|
206
|
+
const [infoError, info] = infoTuple;
|
|
207
|
+
if (infoError) {
|
|
208
|
+
throw infoError;
|
|
209
|
+
}
|
|
210
|
+
if (info.isBatchCall && !allowBatching) {
|
|
211
|
+
throw new TRPCError({
|
|
212
|
+
code: 'BAD_REQUEST',
|
|
213
|
+
message: `Batching is not enabled on the server`
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
/* istanbul ignore if -- @preserve */ if (isStreamCall && !info.isBatchCall) {
|
|
217
|
+
throw new TRPCError({
|
|
218
|
+
message: `Streaming requests must be batched (you can do a batch of 1)`,
|
|
219
|
+
code: 'BAD_REQUEST'
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
await ctxManager.create(info);
|
|
223
|
+
const rpcCalls = info.calls.map(async (call)=>{
|
|
224
|
+
const proc = call.procedure;
|
|
225
|
+
try {
|
|
226
|
+
if (opts.error) {
|
|
227
|
+
throw opts.error;
|
|
228
|
+
}
|
|
229
|
+
if (!proc) {
|
|
230
|
+
throw new TRPCError({
|
|
231
|
+
code: 'NOT_FOUND',
|
|
232
|
+
message: `No procedure found on path "${call.path}"`
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
if (!methodMapper[proc._def.type].includes(req.method)) {
|
|
236
|
+
throw new TRPCError({
|
|
237
|
+
code: 'METHOD_NOT_SUPPORTED',
|
|
238
|
+
message: `Unsupported ${req.method}-request to ${proc._def.type} procedure at path "${call.path}"`
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
if (proc._def.type === 'subscription') {
|
|
242
|
+
/* istanbul ignore if -- @preserve */ if (info.isBatchCall) {
|
|
243
|
+
throw new TRPCError({
|
|
244
|
+
code: 'BAD_REQUEST',
|
|
245
|
+
message: `Cannot batch subscription calls`
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
const data = await proc({
|
|
250
|
+
path: call.path,
|
|
251
|
+
getRawInput: call.getRawInput,
|
|
252
|
+
ctx: ctxManager.value(),
|
|
253
|
+
type: proc._def.type,
|
|
254
|
+
signal: opts.req.signal
|
|
255
|
+
});
|
|
256
|
+
return [
|
|
257
|
+
undefined,
|
|
258
|
+
{
|
|
259
|
+
data
|
|
260
|
+
}
|
|
261
|
+
];
|
|
262
|
+
} catch (cause) {
|
|
263
|
+
const error = getTRPCErrorFromUnknown(cause);
|
|
264
|
+
const input = call.result();
|
|
265
|
+
opts.onError?.({
|
|
266
|
+
error,
|
|
267
|
+
path: call.path,
|
|
268
|
+
input,
|
|
269
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
270
|
+
type: call.procedure?._def.type ?? 'unknown',
|
|
271
|
+
req: opts.req
|
|
272
|
+
});
|
|
273
|
+
return [
|
|
274
|
+
error,
|
|
275
|
+
undefined
|
|
276
|
+
];
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
// ----------- response handlers -----------
|
|
280
|
+
if (!info.isBatchCall) {
|
|
281
|
+
const [call] = info.calls;
|
|
282
|
+
const [error, result] = await rpcCalls[0];
|
|
283
|
+
switch(info.type){
|
|
284
|
+
case 'unknown':
|
|
285
|
+
case 'mutation':
|
|
286
|
+
case 'query':
|
|
287
|
+
{
|
|
288
|
+
// httpLink
|
|
289
|
+
headers.set('content-type', 'application/json');
|
|
290
|
+
if (isDataStream(result?.data)) {
|
|
291
|
+
throw new TRPCError({
|
|
292
|
+
code: 'UNSUPPORTED_MEDIA_TYPE',
|
|
293
|
+
message: 'Cannot use stream-like response in non-streaming request - use httpBatchStreamLink'
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
const res = error ? {
|
|
297
|
+
error: getErrorShape({
|
|
298
|
+
config,
|
|
299
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
300
|
+
error,
|
|
301
|
+
input: call.result(),
|
|
302
|
+
path: call.path,
|
|
303
|
+
type: info.type
|
|
304
|
+
})
|
|
305
|
+
} : {
|
|
306
|
+
result: {
|
|
307
|
+
data: result.data
|
|
308
|
+
}
|
|
309
|
+
};
|
|
310
|
+
const headResponse = initResponse({
|
|
311
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
312
|
+
info,
|
|
313
|
+
responseMeta: opts.responseMeta,
|
|
314
|
+
errors: error ? [
|
|
315
|
+
error
|
|
316
|
+
] : [],
|
|
317
|
+
headers,
|
|
318
|
+
untransformedJSON: [
|
|
319
|
+
res
|
|
320
|
+
]
|
|
321
|
+
});
|
|
322
|
+
return new Response(JSON.stringify(transformTRPCResponse(config, res)), {
|
|
323
|
+
status: headResponse.status,
|
|
324
|
+
headers
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
case 'subscription':
|
|
328
|
+
{
|
|
329
|
+
// httpSubscriptionLink
|
|
330
|
+
const iterable = run(()=>{
|
|
331
|
+
if (error) {
|
|
332
|
+
return errorToAsyncIterable(error);
|
|
333
|
+
}
|
|
334
|
+
if (!experimentalSSE) {
|
|
335
|
+
return errorToAsyncIterable(new TRPCError({
|
|
336
|
+
code: 'METHOD_NOT_SUPPORTED',
|
|
337
|
+
message: 'Missing experimental flag "sseSubscriptions"'
|
|
338
|
+
}));
|
|
339
|
+
}
|
|
340
|
+
if (!isObservable(result.data) && !isAsyncIterable(result.data)) {
|
|
341
|
+
return errorToAsyncIterable(new TRPCError({
|
|
342
|
+
message: `Subscription ${call.path} did not return an observable or a AsyncGenerator`,
|
|
343
|
+
code: 'INTERNAL_SERVER_ERROR'
|
|
344
|
+
}));
|
|
345
|
+
}
|
|
346
|
+
const dataAsIterable = isObservable(result.data) ? observableToAsyncIterable(result.data, opts.req.signal) : result.data;
|
|
347
|
+
return dataAsIterable;
|
|
348
|
+
});
|
|
349
|
+
const stream = sseStreamProducer({
|
|
350
|
+
...config.sse,
|
|
351
|
+
data: iterable,
|
|
352
|
+
serialize: (v)=>config.transformer.output.serialize(v),
|
|
353
|
+
formatError (errorOpts) {
|
|
354
|
+
const error = getTRPCErrorFromUnknown(errorOpts.error);
|
|
355
|
+
const input = call?.result();
|
|
356
|
+
const path = call?.path;
|
|
357
|
+
const type = call?.procedure?._def.type ?? 'unknown';
|
|
358
|
+
opts.onError?.({
|
|
359
|
+
error,
|
|
360
|
+
path,
|
|
361
|
+
input,
|
|
362
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
363
|
+
req: opts.req,
|
|
364
|
+
type
|
|
365
|
+
});
|
|
366
|
+
const shape = getErrorShape({
|
|
367
|
+
config,
|
|
368
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
369
|
+
error,
|
|
370
|
+
input,
|
|
371
|
+
path,
|
|
372
|
+
type
|
|
373
|
+
});
|
|
374
|
+
return shape;
|
|
375
|
+
}
|
|
376
|
+
});
|
|
377
|
+
for (const [key, value] of Object.entries(sseHeaders)){
|
|
378
|
+
headers.set(key, value);
|
|
379
|
+
}
|
|
380
|
+
const headResponse = initResponse({
|
|
381
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
382
|
+
info,
|
|
383
|
+
responseMeta: opts.responseMeta,
|
|
384
|
+
errors: [],
|
|
385
|
+
headers,
|
|
386
|
+
untransformedJSON: null
|
|
387
|
+
});
|
|
388
|
+
return new Response(stream, {
|
|
389
|
+
headers,
|
|
390
|
+
status: headResponse.status
|
|
391
|
+
});
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
// batch response handlers
|
|
396
|
+
if (info.accept === 'application/jsonl') {
|
|
397
|
+
// httpBatchStreamLink
|
|
398
|
+
headers.set('content-type', 'application/json');
|
|
399
|
+
headers.set('transfer-encoding', 'chunked');
|
|
400
|
+
const headResponse = initResponse({
|
|
401
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
402
|
+
info,
|
|
403
|
+
responseMeta: opts.responseMeta,
|
|
404
|
+
errors: [],
|
|
405
|
+
headers,
|
|
406
|
+
untransformedJSON: null
|
|
407
|
+
});
|
|
408
|
+
const stream = jsonlStreamProducer({
|
|
409
|
+
...config.jsonl,
|
|
410
|
+
/**
|
|
411
|
+
* Example structure for `maxDepth: 4`:
|
|
412
|
+
* {
|
|
413
|
+
* // 1
|
|
414
|
+
* 0: {
|
|
415
|
+
* // 2
|
|
416
|
+
* result: {
|
|
417
|
+
* // 3
|
|
418
|
+
* data: // 4
|
|
419
|
+
* }
|
|
420
|
+
* }
|
|
421
|
+
* }
|
|
422
|
+
*/ maxDepth: Infinity,
|
|
423
|
+
data: rpcCalls.map(async (res)=>{
|
|
424
|
+
const [error, result] = await res;
|
|
425
|
+
const call = info.calls[0];
|
|
426
|
+
if (error) {
|
|
427
|
+
return {
|
|
428
|
+
error: getErrorShape({
|
|
429
|
+
config,
|
|
430
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
431
|
+
error,
|
|
432
|
+
input: call.result(),
|
|
433
|
+
path: call.path,
|
|
434
|
+
type: call.procedure?._def.type ?? 'unknown'
|
|
435
|
+
})
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Not very pretty, but we need to wrap nested data in promises
|
|
440
|
+
* Our stream producer will only resolve top-level async values or async values that are directly nested in another async value
|
|
441
|
+
*/ const iterable = isObservable(result.data) ? observableToAsyncIterable(result.data, opts.req.signal) : Promise.resolve(result.data);
|
|
442
|
+
return {
|
|
443
|
+
result: Promise.resolve({
|
|
444
|
+
data: iterable
|
|
445
|
+
})
|
|
446
|
+
};
|
|
447
|
+
}),
|
|
448
|
+
serialize: config.transformer.output.serialize,
|
|
449
|
+
onError: (cause)=>{
|
|
450
|
+
opts.onError?.({
|
|
451
|
+
error: getTRPCErrorFromUnknown(cause),
|
|
452
|
+
path: undefined,
|
|
453
|
+
input: undefined,
|
|
454
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
455
|
+
req: opts.req,
|
|
456
|
+
type: info?.type ?? 'unknown'
|
|
457
|
+
});
|
|
458
|
+
},
|
|
459
|
+
formatError (errorOpts) {
|
|
460
|
+
const call = info?.calls[errorOpts.path[0]];
|
|
461
|
+
const error = getTRPCErrorFromUnknown(errorOpts.error);
|
|
462
|
+
const input = call?.result();
|
|
463
|
+
const path = call?.path;
|
|
464
|
+
const type = call?.procedure?._def.type ?? 'unknown';
|
|
465
|
+
// no need to call `onError` here as it will be propagated through the stream itself
|
|
466
|
+
const shape = getErrorShape({
|
|
467
|
+
config,
|
|
468
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
469
|
+
error,
|
|
470
|
+
input,
|
|
471
|
+
path,
|
|
472
|
+
type
|
|
473
|
+
});
|
|
474
|
+
return shape;
|
|
475
|
+
}
|
|
476
|
+
});
|
|
477
|
+
return new Response(stream, {
|
|
478
|
+
headers,
|
|
479
|
+
status: headResponse.status
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
// httpBatchLink
|
|
483
|
+
/**
|
|
484
|
+
* Non-streaming response:
|
|
485
|
+
* - await all responses in parallel, blocking on the slowest one
|
|
486
|
+
* - create headers with known response body
|
|
487
|
+
* - return a complete HTTPResponse
|
|
488
|
+
*/ headers.set('content-type', 'application/json');
|
|
489
|
+
const results = (await Promise.all(rpcCalls)).map((res)=>{
|
|
490
|
+
const [error, result] = res;
|
|
491
|
+
if (error) {
|
|
492
|
+
return res;
|
|
493
|
+
}
|
|
494
|
+
if (isDataStream(result.data)) {
|
|
495
|
+
return [
|
|
496
|
+
new TRPCError({
|
|
497
|
+
code: 'UNSUPPORTED_MEDIA_TYPE',
|
|
498
|
+
message: 'Cannot use stream-like response in non-streaming request - use httpBatchStreamLink'
|
|
499
|
+
}),
|
|
500
|
+
undefined
|
|
501
|
+
];
|
|
502
|
+
}
|
|
503
|
+
return res;
|
|
504
|
+
});
|
|
505
|
+
const resultAsRPCResponse = results.map(([error, result], index)=>{
|
|
506
|
+
const call = info.calls[index];
|
|
507
|
+
if (error) {
|
|
508
|
+
return {
|
|
509
|
+
error: getErrorShape({
|
|
510
|
+
config,
|
|
511
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
512
|
+
error,
|
|
513
|
+
input: call.result(),
|
|
514
|
+
path: call.path,
|
|
515
|
+
type: call.procedure?._def.type ?? 'unknown'
|
|
516
|
+
})
|
|
517
|
+
};
|
|
518
|
+
}
|
|
519
|
+
return {
|
|
520
|
+
result: {
|
|
521
|
+
data: result.data
|
|
522
|
+
}
|
|
523
|
+
};
|
|
524
|
+
});
|
|
525
|
+
const errors = results.map(([error])=>error).filter(Boolean);
|
|
526
|
+
const headResponse = initResponse({
|
|
527
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
528
|
+
info,
|
|
529
|
+
responseMeta: opts.responseMeta,
|
|
530
|
+
untransformedJSON: resultAsRPCResponse,
|
|
531
|
+
errors,
|
|
532
|
+
headers
|
|
533
|
+
});
|
|
534
|
+
return new Response(JSON.stringify(transformTRPCResponse(config, resultAsRPCResponse)), {
|
|
535
|
+
status: headResponse.status,
|
|
536
|
+
headers
|
|
537
|
+
});
|
|
538
|
+
} catch (cause) {
|
|
539
|
+
const [_infoError, info] = infoTuple;
|
|
540
|
+
const ctx = ctxManager.valueOrUndefined();
|
|
541
|
+
// we get here if
|
|
542
|
+
// - batching is called when it's not enabled
|
|
543
|
+
// - `createContext()` throws
|
|
544
|
+
// - `router._def._config.transformer.output.serialize()` throws
|
|
545
|
+
// - post body is too large
|
|
546
|
+
// - input deserialization fails
|
|
547
|
+
// - `errorFormatter` return value is malformed
|
|
548
|
+
const { error, untransformedJSON, body } = caughtErrorToData(cause, {
|
|
549
|
+
opts,
|
|
550
|
+
ctx: ctxManager.valueOrUndefined(),
|
|
551
|
+
type: info?.type ?? 'unknown'
|
|
552
|
+
});
|
|
553
|
+
const headResponse = initResponse({
|
|
554
|
+
ctx,
|
|
555
|
+
info,
|
|
556
|
+
responseMeta: opts.responseMeta,
|
|
557
|
+
untransformedJSON,
|
|
558
|
+
errors: [
|
|
559
|
+
error
|
|
560
|
+
],
|
|
561
|
+
headers
|
|
562
|
+
});
|
|
563
|
+
return new Response(body, {
|
|
564
|
+
status: headResponse.status,
|
|
565
|
+
headers
|
|
566
|
+
});
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
export { resolveResponse };
|
package/.output/server/node_modules/@trpc/server/dist/unstable-core-do-not-import/initTRPC.mjs
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { defaultFormatter } from './error/formatter.mjs';
|
|
2
|
+
import { createMiddlewareFactory } from './middleware.mjs';
|
|
3
|
+
import { createBuilder } from './procedureBuilder.mjs';
|
|
4
|
+
import { isServerDefault } from './rootConfig.mjs';
|
|
5
|
+
import { createCallerFactory, mergeRouters, createRouterFactory } from './router.mjs';
|
|
6
|
+
import { getDataTransformer, defaultTransformer } from './transformer.mjs';
|
|
7
|
+
|
|
8
|
+
class TRPCBuilder {
|
|
9
|
+
/**
|
|
10
|
+
* Add a context shape as a generic to the root object
|
|
11
|
+
* @see https://trpc.io/docs/v11/server/context
|
|
12
|
+
*/ context() {
|
|
13
|
+
return new TRPCBuilder();
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Add a meta shape as a generic to the root object
|
|
17
|
+
* @see https://trpc.io/docs/v11/quickstart
|
|
18
|
+
*/ meta() {
|
|
19
|
+
return new TRPCBuilder();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Create the root object
|
|
23
|
+
* @see https://trpc.io/docs/v11/server/routers#initialize-trpc
|
|
24
|
+
*/ create(opts) {
|
|
25
|
+
const config = {
|
|
26
|
+
...opts,
|
|
27
|
+
transformer: getDataTransformer(opts?.transformer ?? defaultTransformer),
|
|
28
|
+
isDev: opts?.isDev ?? // eslint-disable-next-line @typescript-eslint/dot-notation
|
|
29
|
+
globalThis.process?.env['NODE_ENV'] !== 'production',
|
|
30
|
+
allowOutsideOfServer: opts?.allowOutsideOfServer ?? false,
|
|
31
|
+
errorFormatter: opts?.errorFormatter ?? defaultFormatter,
|
|
32
|
+
isServer: opts?.isServer ?? isServerDefault,
|
|
33
|
+
/**
|
|
34
|
+
* These are just types, they can't be used at runtime
|
|
35
|
+
* @internal
|
|
36
|
+
*/ $types: null
|
|
37
|
+
};
|
|
38
|
+
{
|
|
39
|
+
// Server check
|
|
40
|
+
const isServer = opts?.isServer ?? isServerDefault;
|
|
41
|
+
if (!isServer && opts?.allowOutsideOfServer !== true) {
|
|
42
|
+
throw new Error(`You're trying to use @trpc/server in a non-server environment. This is not supported by default.`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
/**
|
|
47
|
+
* Your router config
|
|
48
|
+
* @internal
|
|
49
|
+
*/ _config: config,
|
|
50
|
+
/**
|
|
51
|
+
* Builder object for creating procedures
|
|
52
|
+
* @see https://trpc.io/docs/v11/server/procedures
|
|
53
|
+
*/ procedure: createBuilder({
|
|
54
|
+
meta: opts?.defaultMeta
|
|
55
|
+
}),
|
|
56
|
+
/**
|
|
57
|
+
* Create reusable middlewares
|
|
58
|
+
* @see https://trpc.io/docs/v11/server/middlewares
|
|
59
|
+
*/ middleware: createMiddlewareFactory(),
|
|
60
|
+
/**
|
|
61
|
+
* Create a router
|
|
62
|
+
* @see https://trpc.io/docs/v11/server/routers
|
|
63
|
+
*/ router: createRouterFactory(config),
|
|
64
|
+
/**
|
|
65
|
+
* Merge Routers
|
|
66
|
+
* @see https://trpc.io/docs/v11/server/merging-routers
|
|
67
|
+
*/ mergeRouters,
|
|
68
|
+
/**
|
|
69
|
+
* Create a server-side caller for a router
|
|
70
|
+
* @see https://trpc.io/docs/v11/server/server-side-calls
|
|
71
|
+
*/ createCallerFactory: createCallerFactory()
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Builder to initialize the tRPC root object - use this exactly once per backend
|
|
77
|
+
* @see https://trpc.io/docs/v11/quickstart
|
|
78
|
+
*/ const initTRPC = new TRPCBuilder();
|
|
79
|
+
|
|
80
|
+
export { initTRPC };
|