@trpc/server 11.0.0-rc.630 → 11.0.0-rc.633

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 (117) hide show
  1. package/dist/@trpc/server/http.d.ts +1 -1
  2. package/dist/@trpc/server/http.d.ts.map +1 -1
  3. package/dist/adapters/aws-lambda/index.js +1 -0
  4. package/dist/adapters/aws-lambda/index.mjs +1 -0
  5. package/dist/adapters/express.js +1 -0
  6. package/dist/adapters/express.mjs +1 -0
  7. package/dist/adapters/fastify/fastifyRequestHandler.js +2 -1
  8. package/dist/adapters/fastify/fastifyRequestHandler.mjs +2 -1
  9. package/dist/adapters/fetch/fetchRequestHandler.js +1 -0
  10. package/dist/adapters/fetch/fetchRequestHandler.mjs +1 -0
  11. package/dist/adapters/next-app-dir/nextAppDirCaller.js +1 -0
  12. package/dist/adapters/next-app-dir/nextAppDirCaller.mjs +1 -0
  13. package/dist/adapters/next-app-dir/notFound.js +1 -0
  14. package/dist/adapters/next-app-dir/notFound.mjs +1 -0
  15. package/dist/adapters/next-app-dir/redirect.js +1 -0
  16. package/dist/adapters/next-app-dir/redirect.mjs +1 -0
  17. package/dist/adapters/next.js +1 -0
  18. package/dist/adapters/next.mjs +1 -0
  19. package/dist/adapters/node-http/incomingMessageToRequest.d.ts +1 -1
  20. package/dist/adapters/node-http/incomingMessageToRequest.d.ts.map +1 -1
  21. package/dist/adapters/node-http/incomingMessageToRequest.js +7 -5
  22. package/dist/adapters/node-http/incomingMessageToRequest.mjs +7 -5
  23. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  24. package/dist/adapters/node-http/nodeHTTPRequestHandler.js +9 -42
  25. package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +9 -42
  26. package/dist/adapters/node-http/writeResponse.d.ts +18 -0
  27. package/dist/adapters/node-http/writeResponse.d.ts.map +1 -0
  28. package/dist/adapters/node-http/writeResponse.js +80 -0
  29. package/dist/adapters/node-http/writeResponse.mjs +77 -0
  30. package/dist/adapters/standalone.js +1 -0
  31. package/dist/adapters/standalone.mjs +1 -0
  32. package/dist/adapters/ws.js +1 -0
  33. package/dist/adapters/ws.mjs +1 -0
  34. package/dist/bundle-analysis.json +195 -168
  35. package/dist/http.js +1 -2
  36. package/dist/http.mjs +1 -1
  37. package/dist/index.js +1 -0
  38. package/dist/index.mjs +1 -0
  39. package/dist/rpc.js +1 -0
  40. package/dist/rpc.mjs +1 -0
  41. package/dist/shared.js +1 -0
  42. package/dist/shared.mjs +1 -0
  43. package/dist/unstable-core-do-not-import/http/isAbortError.d.ts +4 -0
  44. package/dist/unstable-core-do-not-import/http/isAbortError.d.ts.map +1 -0
  45. package/dist/unstable-core-do-not-import/http/isAbortError.js +9 -0
  46. package/dist/unstable-core-do-not-import/http/isAbortError.mjs +7 -0
  47. package/dist/unstable-core-do-not-import/http/resolveResponse.d.ts.map +1 -1
  48. package/dist/unstable-core-do-not-import/http/resolveResponse.js +3 -3
  49. package/dist/unstable-core-do-not-import/http/resolveResponse.mjs +3 -3
  50. package/dist/unstable-core-do-not-import/initTRPC.js +2 -2
  51. package/dist/unstable-core-do-not-import/initTRPC.mjs +2 -2
  52. package/dist/unstable-core-do-not-import/rootConfig.d.ts +14 -14
  53. package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +1 -1
  54. package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts +7 -10
  55. package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts.map +1 -1
  56. package/dist/unstable-core-do-not-import/stream/jsonl.d.ts +6 -9
  57. package/dist/unstable-core-do-not-import/stream/jsonl.d.ts.map +1 -1
  58. package/dist/unstable-core-do-not-import/stream/jsonl.js +75 -124
  59. package/dist/unstable-core-do-not-import/stream/jsonl.mjs +76 -125
  60. package/dist/unstable-core-do-not-import/stream/sse.d.ts +11 -1
  61. package/dist/unstable-core-do-not-import/stream/sse.d.ts.map +1 -1
  62. package/dist/unstable-core-do-not-import/stream/sse.js +154 -86
  63. package/dist/unstable-core-do-not-import/stream/sse.mjs +155 -87
  64. package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.d.ts +10 -10
  65. package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.d.ts.map +1 -1
  66. package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.js +47 -34
  67. package/dist/unstable-core-do-not-import/stream/utils/asyncIterable.mjs +47 -34
  68. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts +0 -4
  69. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts.map +1 -1
  70. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.js +0 -11
  71. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.mjs +1 -11
  72. package/dist/unstable-core-do-not-import/stream/utils/disposablePromiseTimer.d.ts +6 -0
  73. package/dist/unstable-core-do-not-import/stream/utils/disposablePromiseTimer.d.ts.map +1 -0
  74. package/dist/unstable-core-do-not-import/stream/utils/disposablePromiseTimer.js +28 -0
  75. package/dist/unstable-core-do-not-import/stream/utils/disposablePromiseTimer.mjs +25 -0
  76. package/dist/unstable-core-do-not-import/stream/utils/withPing.d.ts.map +1 -1
  77. package/dist/unstable-core-do-not-import/stream/utils/withPing.js +17 -17
  78. package/dist/unstable-core-do-not-import/stream/utils/withPing.mjs +17 -17
  79. package/dist/unstable-core-do-not-import/stream/utils/withRefCount.d.ts +17 -0
  80. package/dist/unstable-core-do-not-import/stream/utils/withRefCount.d.ts.map +1 -0
  81. package/dist/unstable-core-do-not-import/stream/utils/withRefCount.js +59 -0
  82. package/dist/unstable-core-do-not-import/stream/utils/withRefCount.mjs +57 -0
  83. package/dist/unstable-core-do-not-import/transformer.d.ts +1 -4
  84. package/dist/unstable-core-do-not-import/transformer.d.ts.map +1 -1
  85. package/dist/unstable-core-do-not-import.d.ts +2 -2
  86. package/dist/unstable-core-do-not-import.d.ts.map +1 -1
  87. package/dist/unstable-core-do-not-import.js +2 -2
  88. package/dist/unstable-core-do-not-import.mjs +1 -1
  89. package/package.json +3 -3
  90. package/src/@trpc/server/http.ts +0 -1
  91. package/src/adapters/fastify/fastifyRequestHandler.ts +1 -1
  92. package/src/adapters/node-http/incomingMessageToRequest.ts +8 -4
  93. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +8 -46
  94. package/src/adapters/node-http/writeResponse.ts +91 -0
  95. package/src/unstable-core-do-not-import/http/isAbortError.ts +7 -0
  96. package/src/unstable-core-do-not-import/http/resolveResponse.ts +3 -4
  97. package/src/unstable-core-do-not-import/initTRPC.ts +1 -1
  98. package/src/unstable-core-do-not-import/rootConfig.ts +17 -17
  99. package/src/unstable-core-do-not-import/rpc/envelopes.ts +7 -12
  100. package/src/unstable-core-do-not-import/stream/jsonl.ts +85 -154
  101. package/src/unstable-core-do-not-import/stream/sse.ts +179 -92
  102. package/src/unstable-core-do-not-import/stream/utils/asyncIterable.ts +58 -37
  103. package/src/unstable-core-do-not-import/stream/utils/createReadableStream.ts +0 -13
  104. package/src/unstable-core-do-not-import/stream/utils/disposablePromiseTimer.ts +27 -0
  105. package/src/unstable-core-do-not-import/stream/utils/withPing.ts +31 -19
  106. package/src/unstable-core-do-not-import/stream/utils/withRefCount.ts +93 -0
  107. package/src/unstable-core-do-not-import.ts +2 -2
  108. package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts +0 -24
  109. package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts.map +0 -1
  110. package/dist/unstable-core-do-not-import/http/batchStreamFormatter.js +0 -32
  111. package/dist/unstable-core-do-not-import/http/batchStreamFormatter.mjs +0 -30
  112. package/dist/unstable-core-do-not-import/stream/utils/promiseTimer.d.ts +0 -8
  113. package/dist/unstable-core-do-not-import/stream/utils/promiseTimer.d.ts.map +0 -1
  114. package/dist/unstable-core-do-not-import/stream/utils/promiseTimer.js +0 -38
  115. package/dist/unstable-core-do-not-import/stream/utils/promiseTimer.mjs +0 -36
  116. package/src/unstable-core-do-not-import/http/batchStreamFormatter.ts +0 -29
  117. package/src/unstable-core-do-not-import/stream/utils/promiseTimer.ts +0 -40
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,OAAO,CAAC;AAGf;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IAChC,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;CACnC;AAED,UAAU,oBAAqB,SAAQ,eAAe;IACpD;;OAEG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IAChC;;OAEG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;CACnC;AAED,UAAU,qBAAsB,SAAQ,eAAe;IACrD;;OAEG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IAChC;;OAEG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,KAAK,EAAE,oBAAoB,CAAC;IAC5B;;OAEG;IACH,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;CAChE,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG,eAAe,CAAC;AAE/E;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,sBAAsB,GAClC,uBAAuB,CAKzB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,uBAGhC,CAAC;AAyBF;;IAEI;AACJ,wBAAgB,qBAAqB,CACnC,SAAS,SACL,YAAY,GACZ,YAAY,EAAE,GACd,mBAAmB,GACnB,mBAAmB,EAAE,EACzB,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,SAAS;;yEAIzD;AAKD,gBAAgB;AAChB,iBAAS,oBAAoB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,EAC9D,QAAQ,EACJ,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAChD,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAC3D,WAAW,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;EAuB7B;AAQD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,EAChE,QAAQ,EACJ,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAChD,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAC3D,WAAW,EAAE,eAAe,GAC3B,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAqBzC"}
1
+ {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,OAAO,CAAC;AAGf;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IAChC,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;CACnC;AAED,UAAU,oBAAqB,SAAQ,eAAe;IACpD;;OAEG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IAChC;;OAEG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;CACnC;AAED,UAAU,qBAAsB,SAAQ,eAAe;IACrD;;OAEG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IAChC;;OAEG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,KAAK,EAAE,oBAAoB,CAAC;IAC5B;;OAEG;IACH,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;IAC3D,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;CAChE,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,uBAAuB,GAAG,eAAe,CAAC;AAE/E;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,sBAAsB,GAClC,uBAAuB,CAKzB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,uBAGhC,CAAC;AAyBF;;IAEI;AACJ,wBAAgB,qBAAqB,CACnC,SAAS,SACL,YAAY,GACZ,YAAY,EAAE,GACd,mBAAmB,GACnB,mBAAmB,EAAE,EACzB,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,SAAS;;yEAIzD;AAKD,gBAAgB;AAChB,iBAAS,oBAAoB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,EAC9D,QAAQ,EACJ,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAChD,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAC3D,WAAW,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;EAuB7B;AAQD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,EAChE,QAAQ,EACJ,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAChD,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAC3D,WAAW,EAAE,eAAe,GAC3B,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAqBzC"}
@@ -15,11 +15,11 @@ export * from './unstable-core-do-not-import/createProxy';
15
15
  export * from './unstable-core-do-not-import/error/formatter';
16
16
  export * from './unstable-core-do-not-import/error/getErrorShape';
17
17
  export * from './unstable-core-do-not-import/error/TRPCError';
18
- export * from './unstable-core-do-not-import/http/batchStreamFormatter';
19
18
  export * from './unstable-core-do-not-import/http/contentType';
20
19
  export * from './unstable-core-do-not-import/http/contentTypeParsers';
21
20
  export * from './unstable-core-do-not-import/http/formDataToObject';
22
21
  export * from './unstable-core-do-not-import/http/getHTTPStatusCode';
22
+ export * from './unstable-core-do-not-import/http/isAbortError';
23
23
  export * from './unstable-core-do-not-import/http/parseConnectionParams';
24
24
  export * from './unstable-core-do-not-import/http/resolveResponse';
25
25
  export * from './unstable-core-do-not-import/http/types';
@@ -32,8 +32,8 @@ export * from './unstable-core-do-not-import/rootConfig';
32
32
  export * from './unstable-core-do-not-import/router';
33
33
  export * from './unstable-core-do-not-import/rpc';
34
34
  export * from './unstable-core-do-not-import/stream/jsonl';
35
- export * from './unstable-core-do-not-import/stream/sse';
36
35
  export * from './unstable-core-do-not-import/stream/sse.types';
36
+ export * from './unstable-core-do-not-import/stream/sse';
37
37
  export * from './unstable-core-do-not-import/stream/tracked';
38
38
  export * from './unstable-core-do-not-import/stream/utils/createDeferred';
39
39
  export * from './unstable-core-do-not-import/transformer';
@@ -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,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,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,gDAAgD,CAAC;AAC/D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2DAA2D,CAAC;AAC1E,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,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,gDAAgD,CAAC;AAC/D,cAAc,uDAAuD,CAAC;AACtE,cAAc,qDAAqD,CAAC;AACpE,cAAc,sDAAsD,CAAC;AACrE,cAAc,iDAAiD,CAAC;AAChE,cAAc,0DAA0D,CAAC;AACzE,cAAc,oDAAoD,CAAC;AACnE,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,gDAAgD,CAAC;AAC/D,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2DAA2D,CAAC;AAC1E,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC"}
@@ -4,11 +4,11 @@ var createProxy = require('./unstable-core-do-not-import/createProxy.js');
4
4
  var formatter = require('./unstable-core-do-not-import/error/formatter.js');
5
5
  var getErrorShape = require('./unstable-core-do-not-import/error/getErrorShape.js');
6
6
  var TRPCError = require('./unstable-core-do-not-import/error/TRPCError.js');
7
- var batchStreamFormatter = require('./unstable-core-do-not-import/http/batchStreamFormatter.js');
8
7
  var contentType = require('./unstable-core-do-not-import/http/contentType.js');
9
8
  var contentTypeParsers = require('./unstable-core-do-not-import/http/contentTypeParsers.js');
10
9
  var formDataToObject = require('./unstable-core-do-not-import/http/formDataToObject.js');
11
10
  var getHTTPStatusCode = require('./unstable-core-do-not-import/http/getHTTPStatusCode.js');
11
+ var isAbortError = require('./unstable-core-do-not-import/http/isAbortError.js');
12
12
  var parseConnectionParams = require('./unstable-core-do-not-import/http/parseConnectionParams.js');
13
13
  var resolveResponse = require('./unstable-core-do-not-import/http/resolveResponse.js');
14
14
  var initTRPC = require('./unstable-core-do-not-import/initTRPC.js');
@@ -36,7 +36,6 @@ exports.getErrorShape = getErrorShape.getErrorShape;
36
36
  exports.TRPCError = TRPCError.TRPCError;
37
37
  exports.getCauseFromUnknown = TRPCError.getCauseFromUnknown;
38
38
  exports.getTRPCErrorFromUnknown = TRPCError.getTRPCErrorFromUnknown;
39
- exports.getBatchStreamFormatter = batchStreamFormatter.getBatchStreamFormatter;
40
39
  exports.getRequestInfo = contentType.getRequestInfo;
41
40
  exports.octetInputParser = contentTypeParsers.octetInputParser;
42
41
  exports.formDataToObject = formDataToObject.formDataToObject;
@@ -46,6 +45,7 @@ exports.getHTTPStatusCode = getHTTPStatusCode.getHTTPStatusCode;
46
45
  exports.getHTTPStatusCodeFromError = getHTTPStatusCode.getHTTPStatusCodeFromError;
47
46
  exports.getStatusCodeFromKey = getHTTPStatusCode.getStatusCodeFromKey;
48
47
  exports.getStatusKeyFromCode = getHTTPStatusCode.getStatusKeyFromCode;
48
+ exports.isAbortError = isAbortError.isAbortError;
49
49
  exports.parseConnectionParamsFromString = parseConnectionParams.parseConnectionParamsFromString;
50
50
  exports.parseConnectionParamsFromUnknown = parseConnectionParams.parseConnectionParamsFromUnknown;
51
51
  exports.resolveResponse = resolveResponse.resolveResponse;
@@ -2,11 +2,11 @@ export { createFlatProxy, createRecursiveProxy } from './unstable-core-do-not-im
2
2
  export { defaultFormatter } from './unstable-core-do-not-import/error/formatter.mjs';
3
3
  export { getErrorShape } from './unstable-core-do-not-import/error/getErrorShape.mjs';
4
4
  export { TRPCError, getCauseFromUnknown, getTRPCErrorFromUnknown } from './unstable-core-do-not-import/error/TRPCError.mjs';
5
- export { getBatchStreamFormatter } from './unstable-core-do-not-import/http/batchStreamFormatter.mjs';
6
5
  export { getRequestInfo } from './unstable-core-do-not-import/http/contentType.mjs';
7
6
  export { octetInputParser } from './unstable-core-do-not-import/http/contentTypeParsers.mjs';
8
7
  export { formDataToObject } from './unstable-core-do-not-import/http/formDataToObject.mjs';
9
8
  export { HTTP_CODE_TO_JSONRPC2, JSONRPC2_TO_HTTP_CODE, getHTTPStatusCode, getHTTPStatusCodeFromError, getStatusCodeFromKey, getStatusKeyFromCode } from './unstable-core-do-not-import/http/getHTTPStatusCode.mjs';
9
+ export { isAbortError } from './unstable-core-do-not-import/http/isAbortError.mjs';
10
10
  export { parseConnectionParamsFromString, parseConnectionParamsFromUnknown } from './unstable-core-do-not-import/http/parseConnectionParams.mjs';
11
11
  export { resolveResponse } from './unstable-core-do-not-import/http/resolveResponse.mjs';
12
12
  export { initTRPC } from './unstable-core-do-not-import/initTRPC.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/server",
3
- "version": "11.0.0-rc.630+73639524c",
3
+ "version": "11.0.0-rc.633+55512768a",
4
4
  "description": "The tRPC server library",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -138,7 +138,7 @@
138
138
  "rollup": "^4.24.4",
139
139
  "superjson": "^1.12.4",
140
140
  "superstruct": "^2.0.0",
141
- "tslib": "^2.5.0",
141
+ "tslib": "^2.8.1",
142
142
  "tsx": "^4.0.0",
143
143
  "typescript": "^5.6.2",
144
144
  "valibot": "^0.42.0",
@@ -156,5 +156,5 @@
156
156
  "next": "*",
157
157
  "ws": "*"
158
158
  },
159
- "gitHead": "73639524cd2d8071e4818435a76f7234685ac2af"
159
+ "gitHead": "55512768ac9e57c472c9b03d8e39f606a8c1e1c6"
160
160
  }
@@ -18,7 +18,6 @@ export type {
18
18
  } from '../../unstable-core-do-not-import';
19
19
 
20
20
  export {
21
- getBatchStreamFormatter,
22
21
  octetInputParser,
23
22
  parseConnectionParamsFromUnknown,
24
23
  parseConnectionParamsFromString,
@@ -60,7 +60,7 @@ export async function fastifyRequestHandler<
60
60
  if ('body' in opts.req) {
61
61
  incomingMessage.body = opts.req.body;
62
62
  }
63
- const req = incomingMessageToRequest(incomingMessage, {
63
+ const req = incomingMessageToRequest(incomingMessage, opts.res.raw, {
64
64
  maxBodySize: null,
65
65
  });
66
66
 
@@ -118,6 +118,7 @@ function createHeaders(incoming: http.IncomingHttpHeaders): Headers {
118
118
  */
119
119
  export function incomingMessageToRequest(
120
120
  req: http.IncomingMessage,
121
+ res: http.ServerResponse,
121
122
  opts: {
122
123
  /**
123
124
  * Max body size in bytes. If the body is larger than this, the request will be aborted
@@ -128,12 +129,15 @@ export function incomingMessageToRequest(
128
129
  const ac = new AbortController();
129
130
 
130
131
  const onAbort = () => {
132
+ res.off('close', onAbort);
133
+ req.socket.off('end', onAbort);
134
+
135
+ // abort the request
131
136
  ac.abort();
132
- req.off('aborted', onAbort);
133
- req.off('close', onAbort);
134
137
  };
135
- req.once('aborted', onAbort);
136
- req.socket?.once('close', onAbort);
138
+
139
+ res.once('close', onAbort);
140
+ req.socket.once('end', onAbort);
137
141
 
138
142
  // Get host from either regular header or HTTP/2 pseudo-header
139
143
  const url = createURL(req);
@@ -25,6 +25,7 @@ import type {
25
25
  NodeHTTPRequestHandlerOptions,
26
26
  NodeHTTPResponse,
27
27
  } from './types';
28
+ import { writeResponse } from './writeResponse';
28
29
 
29
30
  /**
30
31
  * @internal
@@ -82,7 +83,7 @@ export async function nodeHTTPRequestHandler<
82
83
  });
83
84
  return handleViaMiddleware(opts.req, opts.res, (err: unknown) => {
84
85
  run(async () => {
85
- const req = incomingMessageToRequest(opts.req, {
86
+ const request = incomingMessageToRequest(opts.req, opts.res, {
86
87
  maxBodySize: opts.maxBodySize ?? null,
87
88
  });
88
89
 
@@ -98,7 +99,7 @@ export async function nodeHTTPRequestHandler<
98
99
 
99
100
  const response = await resolveResponse({
100
101
  ...opts,
101
- req,
102
+ req: request,
102
103
  error: err ? getTRPCErrorFromUnknown(err) : null,
103
104
  createContext,
104
105
  onError(o) {
@@ -109,50 +110,11 @@ export async function nodeHTTPRequestHandler<
109
110
  },
110
111
  });
111
112
 
112
- const { res } = opts;
113
- if (res.statusCode === 200) {
114
- // if the status code is set, we assume that it's been manually overridden
115
- res.statusCode = response.status;
116
- }
117
- for (const [key, value] of response.headers) {
118
- res.setHeader(key, value);
119
- }
120
- if (response.body) {
121
- const reader = response.body.getReader();
122
- const onAbort = () => {
123
- // cancelling the reader will cause the whole stream to be cancelled
124
- reader.cancel().catch(() => {
125
- // console.error('reader.cancel() error', err);
126
- });
127
- };
128
- req.signal.addEventListener('abort', onAbort, {
129
- once: true,
130
- });
131
-
132
- while (true) {
133
- const { done, value } = await reader.read();
134
-
135
- if (done) {
136
- break;
137
- }
138
- if (!res.writable) {
139
- break;
140
- }
141
- if (res.write(value) === false) {
142
- await new Promise<void>((resolve) => {
143
- res.once('drain', resolve);
144
- });
145
- }
146
-
147
- // useful for debugging chunked responses:
148
- // console.log('wrote', Buffer.from(value).toString());
149
-
150
- // IMPORTANT - flush the response buffer, otherwise the client will not receive the data until `.end()`
151
- res.flush?.();
152
- }
153
- req.signal.removeEventListener('abort', onAbort);
154
- }
155
- res.end();
113
+ await writeResponse({
114
+ request,
115
+ response,
116
+ rawResponse: opts.res,
117
+ });
156
118
  }).catch(internal_exceptionHandler(opts));
157
119
  });
158
120
  });
@@ -0,0 +1,91 @@
1
+ // eslint-disable-next-line no-restricted-imports
2
+ import { isAbortError } from '../../unstable-core-do-not-import';
3
+ import type { NodeHTTPResponse } from './types';
4
+
5
+ async function writeResponseBodyChunk(
6
+ res: NodeHTTPResponse,
7
+ chunk: Uint8Array,
8
+ ) {
9
+ if (res.write(chunk) === false) {
10
+ await new Promise<void>((resolve, reject) => {
11
+ const onError = (err: unknown) => {
12
+ reject(err);
13
+ cleanup();
14
+ };
15
+ const onDrain = () => {
16
+ resolve();
17
+ cleanup();
18
+ };
19
+ const cleanup = () => {
20
+ res.off('error', onError);
21
+ res.off('drain', onDrain);
22
+ };
23
+ res.once('error', onError);
24
+ res.once('drain', onDrain);
25
+ });
26
+ }
27
+ }
28
+ /**
29
+ * @internal
30
+ */
31
+
32
+ export async function writeResponseBody(opts: {
33
+ res: NodeHTTPResponse;
34
+ signal: AbortSignal;
35
+ body: NonNullable<Response['body']>;
36
+ }) {
37
+ const { res } = opts;
38
+
39
+ try {
40
+ const writableStream = new WritableStream({
41
+ async write(chunk) {
42
+ await writeResponseBodyChunk(res, chunk);
43
+ res.flush?.();
44
+ },
45
+ });
46
+
47
+ await opts.body.pipeTo(writableStream, {
48
+ signal: opts.signal,
49
+ });
50
+ } catch (err) {
51
+ if (isAbortError(err)) {
52
+ return;
53
+ }
54
+ throw err;
55
+ }
56
+ }
57
+ /**
58
+ * @internal
59
+ */
60
+
61
+ export async function writeResponse(opts: {
62
+ request: Request;
63
+ response: Response;
64
+ rawResponse: NodeHTTPResponse;
65
+ }) {
66
+ const { response, rawResponse } = opts;
67
+
68
+ // Only override status code if it hasn't been explicitly set in a procedure etc
69
+ if (rawResponse.statusCode === 200) {
70
+ rawResponse.statusCode = response.status;
71
+ }
72
+ for (const [key, value] of response.headers) {
73
+ rawResponse.setHeader(key, value);
74
+ }
75
+ try {
76
+ if (response.body) {
77
+ await writeResponseBody({
78
+ res: rawResponse,
79
+ signal: opts.request.signal,
80
+ body: response.body,
81
+ });
82
+ }
83
+ } catch (err) {
84
+ if (!rawResponse.headersSent) {
85
+ rawResponse.statusCode = 500;
86
+ }
87
+ throw err;
88
+ } finally {
89
+ rawResponse.end();
90
+ }
91
+ }
@@ -0,0 +1,7 @@
1
+ import { isObject } from '../utils';
2
+
3
+ export function isAbortError(
4
+ error: unknown,
5
+ ): error is DOMException | Error | { name: 'AbortError' } {
6
+ return isObject(error) && error['name'] === 'AbortError';
7
+ }
@@ -300,9 +300,8 @@ export async function resolveResponse<TRouter extends AnyRouter>(
300
300
  const isStreamCall = req.headers.get('trpc-accept') === 'application/jsonl';
301
301
 
302
302
  const experimentalIterablesAndDeferreds =
303
- router._def._config.experimental?.iterablesAndDeferreds ?? true;
304
- const experimentalSSE =
305
- router._def._config.experimental?.sseSubscriptions?.enabled ?? true;
303
+ config.iterablesAndDeferreds ?? true;
304
+ const experimentalSSE = config.sse?.enabled ?? true;
306
305
  try {
307
306
  const [infoError, info] = infoTuple;
308
307
  if (infoError) {
@@ -465,7 +464,7 @@ export async function resolveResponse<TRouter extends AnyRouter>(
465
464
  });
466
465
 
467
466
  const stream = sseStreamProducer({
468
- ...config.experimental?.sseSubscriptions,
467
+ ...config.sse,
469
468
  data: iterable,
470
469
  abortCtrl: result?.abortCtrl ?? new AbortController(),
471
470
  serialize: (v) => config.transformer.output.serialize(v),
@@ -76,6 +76,7 @@ class TRPCBuilder<TContext extends object, TMeta extends object> {
76
76
  }>;
77
77
 
78
78
  const config: RootConfig<$Root> = {
79
+ ...opts,
79
80
  transformer: getDataTransformer(opts?.transformer ?? defaultTransformer),
80
81
  isDev:
81
82
  opts?.isDev ??
@@ -89,7 +90,6 @@ class TRPCBuilder<TContext extends object, TMeta extends object> {
89
90
  * @internal
90
91
  */
91
92
  $types: null as any,
92
- experimental: opts?.experimental ?? {},
93
93
  };
94
94
 
95
95
  {
@@ -65,26 +65,26 @@ export interface RootConfig<TTypes extends RootTypes> {
65
65
 
66
66
  defaultMeta?: TTypes['meta'] extends object ? TTypes['meta'] : never;
67
67
 
68
- experimental?: {
68
+ /**
69
+ * Enable support for returning async iterables and returning deferred promises when using `httpBatchStreamLink`
70
+ * @default true
71
+ */
72
+ iterablesAndDeferreds?: boolean;
73
+ /**
74
+ * Options for server-sent events (SSE) subscriptions
75
+ * @see https://trpc.io/docs/client/links/httpSubscriptionLink
76
+ */
77
+ sse?: {
69
78
  /**
70
- * Enable support for returning async iterables and returning deferred promises when using `httpBatchStreamLink`
79
+ * Enable server-sent events (SSE) subscriptions
71
80
  * @default true
72
81
  */
73
- iterablesAndDeferreds?: boolean;
74
- /**
75
- * Enable support for server-sent events (SSE) subscriptions
76
- */
77
- sseSubscriptions?: {
78
- /**
79
- * Enable server-sent events (SSE) subscriptions
80
- * @default true
81
- */
82
- enabled?: boolean;
83
- } & Pick<
84
- SSEStreamProducerOptions,
85
- 'ping' | 'emitAndEndImmediately' | 'maxDurationMs'
86
- >;
87
- };
82
+ enabled?: boolean;
83
+ } & Pick<
84
+ SSEStreamProducerOptions,
85
+ 'ping' | 'emitAndEndImmediately' | 'maxDurationMs'
86
+ >;
87
+ experimental?: {};
88
88
  }
89
89
 
90
90
  /**
@@ -63,14 +63,15 @@ export interface TRPCRequest
63
63
 
64
64
  export interface TRPCResult<TData = unknown> {
65
65
  data: TData;
66
+ type?: 'data';
67
+ /**
68
+ * The id of the message to keep track of in case of a reconnect
69
+ */
70
+ id?: string;
66
71
  }
67
72
 
68
73
  export interface TRPCSuccessResponse<TData>
69
- extends JSONRPC2.ResultResponse<
70
- TRPCResult<TData> & {
71
- type?: 'data';
72
- }
73
- > {}
74
+ extends JSONRPC2.ResultResponse<TRPCResult<TData>> {}
74
75
 
75
76
  export interface TRPCErrorResponse<
76
77
  TError extends TRPCErrorShape = TRPCErrorShape,
@@ -111,13 +112,7 @@ export interface TRPCResultMessage<TData>
111
112
  extends JSONRPC2.ResultResponse<
112
113
  | { type: 'started'; data?: never }
113
114
  | { type: 'stopped'; data?: never }
114
- | (TRPCResult<TData> & {
115
- type: 'data';
116
- /**
117
- * The id of the message to keep track of in case of a reconnect
118
- */
119
- id?: string;
120
- })
115
+ | TRPCResult<TData>
121
116
  > {}
122
117
 
123
118
  export type TRPCResponseMessage<