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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/@trpc/server/http.d.ts +1 -2
  2. package/dist/@trpc/server/http.d.ts.map +1 -1
  3. package/dist/@trpc/server/index.d.ts +1 -1
  4. package/dist/@trpc/server/index.d.ts.map +1 -1
  5. package/dist/@trpc/server/rpc.d.ts +1 -1
  6. package/dist/@trpc/server/rpc.d.ts.map +1 -1
  7. package/dist/adapters/aws-lambda/getPlanner.d.ts.map +1 -1
  8. package/dist/adapters/aws-lambda/getPlanner.js +19 -2
  9. package/dist/adapters/aws-lambda/getPlanner.mjs +19 -2
  10. package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts.map +1 -1
  11. package/dist/adapters/next-app-dir/nextAppDirCaller.js +1 -1
  12. package/dist/adapters/next-app-dir/nextAppDirCaller.mjs +1 -1
  13. package/dist/adapters/next-app-dir/redirect.d.ts.map +1 -1
  14. package/dist/adapters/next.js +1 -1
  15. package/dist/adapters/next.mjs +1 -1
  16. package/dist/adapters/node-http/incomingMessageToRequest.d.ts +0 -1
  17. package/dist/adapters/node-http/incomingMessageToRequest.d.ts.map +1 -1
  18. package/dist/adapters/node-http/incomingMessageToRequest.js +3 -1
  19. package/dist/adapters/node-http/incomingMessageToRequest.mjs +3 -1
  20. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  21. package/dist/adapters/node-http/nodeHTTPRequestHandler.js +30 -7
  22. package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +30 -7
  23. package/dist/adapters/node-http/types.d.ts +0 -1
  24. package/dist/adapters/node-http/types.d.ts.map +1 -1
  25. package/dist/adapters/standalone.d.ts +0 -1
  26. package/dist/adapters/standalone.d.ts.map +1 -1
  27. package/dist/adapters/ws.d.ts +3 -4
  28. package/dist/adapters/ws.d.ts.map +1 -1
  29. package/dist/adapters/ws.js +172 -114
  30. package/dist/adapters/ws.mjs +172 -114
  31. package/dist/bundle-analysis.json +235 -154
  32. package/dist/http.js +3 -0
  33. package/dist/http.mjs +1 -0
  34. package/dist/index.js +7 -5
  35. package/dist/index.mjs +3 -2
  36. package/dist/observable/observable.d.ts +1 -0
  37. package/dist/observable/observable.d.ts.map +1 -1
  38. package/dist/observable/observable.js +55 -0
  39. package/dist/observable/observable.mjs +55 -1
  40. package/dist/unstable-core-do-not-import/createProxy.d.ts +3 -3
  41. package/dist/unstable-core-do-not-import/createProxy.d.ts.map +1 -1
  42. package/dist/unstable-core-do-not-import/createProxy.js +15 -6
  43. package/dist/unstable-core-do-not-import/createProxy.mjs +15 -6
  44. package/dist/unstable-core-do-not-import/http/contentType.d.ts +7 -4
  45. package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +1 -1
  46. package/dist/unstable-core-do-not-import/http/contentType.js +60 -17
  47. package/dist/unstable-core-do-not-import/http/contentType.mjs +61 -18
  48. package/dist/unstable-core-do-not-import/http/formDataToObject.d.ts.map +1 -0
  49. package/dist/unstable-core-do-not-import/http/formDataToObject.js +40 -0
  50. package/dist/unstable-core-do-not-import/http/formDataToObject.mjs +38 -0
  51. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts.map +1 -1
  52. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.js +4 -4
  53. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +4 -4
  54. package/dist/unstable-core-do-not-import/http/parseConnectionParams.d.ts +4 -0
  55. package/dist/unstable-core-do-not-import/http/parseConnectionParams.d.ts.map +1 -0
  56. package/dist/unstable-core-do-not-import/http/parseConnectionParams.js +42 -0
  57. package/dist/unstable-core-do-not-import/http/parseConnectionParams.mjs +39 -0
  58. package/dist/unstable-core-do-not-import/http/resolveResponse.d.ts.map +1 -1
  59. package/dist/unstable-core-do-not-import/http/resolveResponse.js +302 -149
  60. package/dist/unstable-core-do-not-import/http/resolveResponse.mjs +301 -148
  61. package/dist/unstable-core-do-not-import/http/types.d.ts +26 -2
  62. package/dist/unstable-core-do-not-import/http/types.d.ts.map +1 -1
  63. package/dist/unstable-core-do-not-import/initTRPC.d.ts +12 -12
  64. package/dist/unstable-core-do-not-import/initTRPC.d.ts.map +1 -1
  65. package/dist/unstable-core-do-not-import/middleware.d.ts +3 -3
  66. package/dist/unstable-core-do-not-import/middleware.d.ts.map +1 -1
  67. package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +3 -1
  68. package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +1 -1
  69. package/dist/unstable-core-do-not-import/rootConfig.d.ts +12 -0
  70. package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +1 -1
  71. package/dist/unstable-core-do-not-import/router.d.ts +2 -2
  72. package/dist/unstable-core-do-not-import/router.d.ts.map +1 -1
  73. package/dist/unstable-core-do-not-import/router.js +7 -2
  74. package/dist/unstable-core-do-not-import/router.mjs +7 -2
  75. package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts +7 -0
  76. package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts.map +1 -1
  77. package/dist/unstable-core-do-not-import/rpc/index.d.ts +1 -1
  78. package/dist/unstable-core-do-not-import/rpc/index.d.ts.map +1 -1
  79. package/dist/unstable-core-do-not-import/stream/{stream.d.ts → jsonl.d.ts} +12 -8
  80. package/dist/unstable-core-do-not-import/stream/jsonl.d.ts.map +1 -0
  81. package/dist/unstable-core-do-not-import/stream/{stream.js → jsonl.js} +158 -119
  82. package/dist/unstable-core-do-not-import/stream/{stream.mjs → jsonl.mjs} +157 -118
  83. package/dist/unstable-core-do-not-import/stream/sse.d.ts +86 -0
  84. package/dist/unstable-core-do-not-import/stream/sse.d.ts.map +1 -0
  85. package/dist/unstable-core-do-not-import/stream/sse.js +178 -0
  86. package/dist/unstable-core-do-not-import/stream/sse.mjs +172 -0
  87. package/dist/unstable-core-do-not-import/stream/utils/createDeferred.d.ts +18 -0
  88. package/dist/unstable-core-do-not-import/stream/utils/createDeferred.d.ts.map +1 -0
  89. package/dist/unstable-core-do-not-import/stream/utils/createDeferred.js +46 -0
  90. package/dist/unstable-core-do-not-import/stream/utils/createDeferred.mjs +43 -0
  91. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts +10 -0
  92. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.d.ts.map +1 -0
  93. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.js +31 -0
  94. package/dist/unstable-core-do-not-import/stream/utils/createReadableStream.mjs +29 -0
  95. package/dist/unstable-core-do-not-import/stream/utils/createServer.d.ts +7 -0
  96. package/dist/unstable-core-do-not-import/stream/utils/createServer.d.ts.map +1 -0
  97. package/dist/unstable-core-do-not-import/transformer.d.ts +5 -5
  98. package/dist/unstable-core-do-not-import/utils.d.ts +4 -0
  99. package/dist/unstable-core-do-not-import/utils.d.ts.map +1 -1
  100. package/dist/unstable-core-do-not-import/utils.js +4 -0
  101. package/dist/unstable-core-do-not-import/utils.mjs +4 -1
  102. package/dist/unstable-core-do-not-import.d.ts +5 -2
  103. package/dist/unstable-core-do-not-import.d.ts.map +1 -1
  104. package/dist/unstable-core-do-not-import.js +19 -7
  105. package/dist/unstable-core-do-not-import.mjs +6 -3
  106. package/package.json +6 -6
  107. package/src/@trpc/server/http.ts +7 -2
  108. package/src/@trpc/server/index.ts +1 -0
  109. package/src/@trpc/server/rpc.ts +1 -0
  110. package/src/adapters/aws-lambda/getPlanner.ts +21 -2
  111. package/src/adapters/next-app-dir/nextAppDirCaller.ts +2 -1
  112. package/src/adapters/node-http/incomingMessageToRequest.ts +3 -2
  113. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +32 -7
  114. package/src/adapters/ws.ts +193 -107
  115. package/src/observable/observable.ts +63 -0
  116. package/src/unstable-core-do-not-import/createProxy.ts +23 -8
  117. package/src/unstable-core-do-not-import/http/contentType.ts +83 -21
  118. package/src/{adapters/next-app-dir → unstable-core-do-not-import/http}/formDataToObject.ts +18 -10
  119. package/src/unstable-core-do-not-import/http/getHTTPStatusCode.ts +4 -7
  120. package/src/unstable-core-do-not-import/http/parseConnectionParams.ts +49 -0
  121. package/src/unstable-core-do-not-import/http/resolveResponse.ts +333 -164
  122. package/src/unstable-core-do-not-import/http/types.ts +31 -2
  123. package/src/unstable-core-do-not-import/procedureBuilder.ts +8 -1
  124. package/src/unstable-core-do-not-import/rootConfig.ts +12 -0
  125. package/src/unstable-core-do-not-import/router.ts +47 -35
  126. package/src/unstable-core-do-not-import/rpc/envelopes.ts +9 -0
  127. package/src/unstable-core-do-not-import/rpc/index.ts +1 -0
  128. package/src/unstable-core-do-not-import/stream/{stream.ts → jsonl.ts} +186 -127
  129. package/src/unstable-core-do-not-import/stream/sse.ts +288 -0
  130. package/src/unstable-core-do-not-import/stream/utils/createDeferred.ts +48 -0
  131. package/src/unstable-core-do-not-import/stream/utils/createReadableStream.ts +31 -0
  132. package/src/unstable-core-do-not-import/stream/utils/createServer.ts +44 -0
  133. package/src/unstable-core-do-not-import/utils.ts +5 -0
  134. package/src/unstable-core-do-not-import.ts +5 -2
  135. package/dist/adapters/next-app-dir/formDataToObject.d.ts.map +0 -1
  136. package/dist/adapters/next-app-dir/formDataToObject.js +0 -34
  137. package/dist/adapters/next-app-dir/formDataToObject.mjs +0 -32
  138. package/dist/unstable-core-do-not-import/stream/stream.d.ts.map +0 -1
  139. /package/dist/{adapters/next-app-dir → unstable-core-do-not-import/http}/formDataToObject.d.ts +0 -0
package/dist/http.js CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  var getHTTPStatusCode = require('./unstable-core-do-not-import/http/getHTTPStatusCode.js');
4
4
  var batchStreamFormatter = require('./unstable-core-do-not-import/http/batchStreamFormatter.js');
5
+ var parseConnectionParams = require('./unstable-core-do-not-import/http/parseConnectionParams.js');
5
6
  var contentTypeParsers = require('./unstable-core-do-not-import/http/contentTypeParsers.js');
6
7
  var resolveResponse = require('./unstable-core-do-not-import/http/resolveResponse.js');
7
8
  var toURL = require('./unstable-core-do-not-import/http/toURL.js');
@@ -12,6 +13,8 @@ require('./unstable-core-do-not-import/rootConfig.js');
12
13
  exports.getHTTPStatusCode = getHTTPStatusCode.getHTTPStatusCode;
13
14
  exports.getHTTPStatusCodeFromError = getHTTPStatusCode.getHTTPStatusCodeFromError;
14
15
  exports.getBatchStreamFormatter = batchStreamFormatter.getBatchStreamFormatter;
16
+ exports.parseConnectionParamsFromString = parseConnectionParams.parseConnectionParamsFromString;
17
+ exports.parseConnectionParamsFromUnknown = parseConnectionParams.parseConnectionParamsFromUnknown;
15
18
  exports.octetInputParser = contentTypeParsers.octetInputParser;
16
19
  exports.resolveResponse = resolveResponse.resolveResponse;
17
20
  exports.toURL = toURL.toURL;
package/dist/http.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  export { getHTTPStatusCode, getHTTPStatusCodeFromError } from './unstable-core-do-not-import/http/getHTTPStatusCode.mjs';
2
2
  export { getBatchStreamFormatter } from './unstable-core-do-not-import/http/batchStreamFormatter.mjs';
3
+ export { parseConnectionParamsFromString, parseConnectionParamsFromUnknown } from './unstable-core-do-not-import/http/parseConnectionParams.mjs';
3
4
  export { octetInputParser } from './unstable-core-do-not-import/http/contentTypeParsers.mjs';
4
5
  export { resolveResponse } from './unstable-core-do-not-import/http/resolveResponse.mjs';
5
6
  export { toURL } from './unstable-core-do-not-import/http/toURL.mjs';
package/dist/index.js CHANGED
@@ -1,23 +1,25 @@
1
1
  'use strict';
2
2
 
3
3
  var createProxy = require('./unstable-core-do-not-import/createProxy.js');
4
- var TRPCError = require('./unstable-core-do-not-import/error/TRPCError.js');
5
4
  var getErrorShape = require('./unstable-core-do-not-import/error/getErrorShape.js');
6
- var router = require('./unstable-core-do-not-import/router.js');
5
+ var TRPCError = require('./unstable-core-do-not-import/error/TRPCError.js');
6
+ var sse = require('./unstable-core-do-not-import/stream/sse.js');
7
7
  var transformer = require('./unstable-core-do-not-import/transformer.js');
8
8
  var initTRPC = require('./unstable-core-do-not-import/initTRPC.js');
9
9
  var middleware = require('./unstable-core-do-not-import/middleware.js');
10
10
  require('./unstable-core-do-not-import/rootConfig.js');
11
+ var router = require('./unstable-core-do-not-import/router.js');
11
12
 
12
13
 
13
14
 
14
15
  exports.createTRPCFlatProxy = createProxy.createFlatProxy;
16
+ exports.getErrorShape = getErrorShape.getErrorShape;
15
17
  exports.TRPCError = TRPCError.TRPCError;
16
18
  exports.getTRPCErrorFromUnknown = TRPCError.getTRPCErrorFromUnknown;
17
- exports.getErrorShape = getErrorShape.getErrorShape;
18
- exports.callProcedure = router.callProcedure;
19
- exports.callTRPCProcedure = router.callProcedure;
19
+ exports.sse = sse.sse;
20
20
  exports.transformTRPCResponse = transformer.transformTRPCResponse;
21
21
  exports.initTRPC = initTRPC.initTRPC;
22
22
  exports.experimental_standaloneMiddleware = middleware.experimental_standaloneMiddleware;
23
23
  exports.experimental_trpcMiddleware = middleware.experimental_standaloneMiddleware;
24
+ exports.callProcedure = router.callProcedure;
25
+ exports.callTRPCProcedure = router.callProcedure;
package/dist/index.mjs CHANGED
@@ -1,8 +1,9 @@
1
1
  export { createFlatProxy as createTRPCFlatProxy } from './unstable-core-do-not-import/createProxy.mjs';
2
- export { TRPCError, getTRPCErrorFromUnknown } from './unstable-core-do-not-import/error/TRPCError.mjs';
3
2
  export { getErrorShape } from './unstable-core-do-not-import/error/getErrorShape.mjs';
4
- export { callProcedure, callProcedure as callTRPCProcedure } from './unstable-core-do-not-import/router.mjs';
3
+ export { TRPCError, getTRPCErrorFromUnknown } from './unstable-core-do-not-import/error/TRPCError.mjs';
4
+ export { sse } from './unstable-core-do-not-import/stream/sse.mjs';
5
5
  export { transformTRPCResponse } from './unstable-core-do-not-import/transformer.mjs';
6
6
  export { initTRPC } from './unstable-core-do-not-import/initTRPC.mjs';
7
7
  export { experimental_standaloneMiddleware, experimental_standaloneMiddleware as experimental_trpcMiddleware } from './unstable-core-do-not-import/middleware.mjs';
8
8
  import './unstable-core-do-not-import/rootConfig.mjs';
9
+ export { callProcedure, callProcedure as callTRPCProcedure } from './unstable-core-do-not-import/router.mjs';
@@ -10,4 +10,5 @@ export declare function observableToPromise<TValue>(observable: Observable<TValu
10
10
  promise: Promise<TValue>;
11
11
  abort: () => void;
12
12
  };
13
+ export declare function observableToAsyncIterable<TValue>(observable: Observable<TValue, unknown>): AsyncIterable<TValue>;
13
14
  //# sourceMappingURL=observable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../src/observable/observable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EAER,aAAa,EAEd,MAAM,SAAS,CAAC;AAEjB,cAAc;AACd,MAAM,MAAM,oBAAoB,CAAC,WAAW,IAAI,WAAW,SAAS,UAAU,CAC5E,MAAM,MAAM,EACZ,OAAO,CACR,GACG,MAAM,GACN,KAAK,CAAC;AAEV,cAAc;AACd,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAE1E;AAED,cAAc;AACd,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EACjD,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,aAAa,GAC/D,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CA6D5B;AAcD,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,MAAM,EACxC,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;;iBAEtB,IAAI;EAkCtB"}
1
+ {"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../src/observable/observable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EAER,aAAa,EAGd,MAAM,SAAS,CAAC;AAEjB,cAAc;AACd,MAAM,MAAM,oBAAoB,CAAC,WAAW,IAAI,WAAW,SAAS,UAAU,CAC5E,MAAM,MAAM,EACZ,OAAO,CACR,GACG,MAAM,GACN,KAAK,CAAC;AAEV,cAAc;AACd,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAE1E;AAED,cAAc;AACd,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EACjD,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,aAAa,GAC/D,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CA6D5B;AAcD,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,MAAM,EACxC,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;;iBAEtB,IAAI;EAkCtB;AA6BD,wBAAgB,yBAAyB,CAAC,MAAM,EAC9C,UAAU,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC,aAAa,CAAC,MAAM,CAAC,CA+BvB"}
@@ -108,7 +108,62 @@ class ObservableAbortError extends Error {
108
108
  abort: abort
109
109
  };
110
110
  }
111
+ /**
112
+ * @internal
113
+ */ function observableToReadableStream(observable) {
114
+ let unsub = null;
115
+ return new ReadableStream({
116
+ start (controller) {
117
+ unsub = observable.subscribe({
118
+ next (data) {
119
+ controller.enqueue(data);
120
+ },
121
+ error (err) {
122
+ controller.error(err);
123
+ },
124
+ complete () {
125
+ controller.close();
126
+ }
127
+ });
128
+ },
129
+ cancel () {
130
+ unsub?.unsubscribe();
131
+ }
132
+ });
133
+ }
134
+ function observableToAsyncIterable(observable) {
135
+ const stream = observableToReadableStream(observable);
136
+ const reader = stream.getReader();
137
+ const iterator = {
138
+ async next () {
139
+ const value = await reader.read();
140
+ if (value.done) {
141
+ return {
142
+ value: undefined,
143
+ done: true
144
+ };
145
+ }
146
+ return {
147
+ value: value.value,
148
+ done: false
149
+ };
150
+ },
151
+ async return () {
152
+ await reader.cancel();
153
+ return {
154
+ value: undefined,
155
+ done: true
156
+ };
157
+ }
158
+ };
159
+ return {
160
+ [Symbol.asyncIterator] () {
161
+ return iterator;
162
+ }
163
+ };
164
+ }
111
165
 
112
166
  exports.isObservable = isObservable;
113
167
  exports.observable = observable;
168
+ exports.observableToAsyncIterable = observableToAsyncIterable;
114
169
  exports.observableToPromise = observableToPromise;
@@ -106,5 +106,59 @@ class ObservableAbortError extends Error {
106
106
  abort: abort
107
107
  };
108
108
  }
109
+ /**
110
+ * @internal
111
+ */ function observableToReadableStream(observable) {
112
+ let unsub = null;
113
+ return new ReadableStream({
114
+ start (controller) {
115
+ unsub = observable.subscribe({
116
+ next (data) {
117
+ controller.enqueue(data);
118
+ },
119
+ error (err) {
120
+ controller.error(err);
121
+ },
122
+ complete () {
123
+ controller.close();
124
+ }
125
+ });
126
+ },
127
+ cancel () {
128
+ unsub?.unsubscribe();
129
+ }
130
+ });
131
+ }
132
+ function observableToAsyncIterable(observable) {
133
+ const stream = observableToReadableStream(observable);
134
+ const reader = stream.getReader();
135
+ const iterator = {
136
+ async next () {
137
+ const value = await reader.read();
138
+ if (value.done) {
139
+ return {
140
+ value: undefined,
141
+ done: true
142
+ };
143
+ }
144
+ return {
145
+ value: value.value,
146
+ done: false
147
+ };
148
+ },
149
+ async return () {
150
+ await reader.cancel();
151
+ return {
152
+ value: undefined,
153
+ done: true
154
+ };
155
+ }
156
+ };
157
+ return {
158
+ [Symbol.asyncIterator] () {
159
+ return iterator;
160
+ }
161
+ };
162
+ }
109
163
 
110
- export { isObservable, observable, observableToPromise };
164
+ export { isObservable, observable, observableToAsyncIterable, observableToPromise };
@@ -1,6 +1,6 @@
1
1
  interface ProxyCallbackOptions {
2
- path: string[];
3
- args: unknown[];
2
+ path: readonly string[];
3
+ args: readonly unknown[];
4
4
  }
5
5
  type ProxyCallback = (opts: ProxyCallbackOptions) => unknown;
6
6
  /**
@@ -8,7 +8,7 @@ type ProxyCallback = (opts: ProxyCallbackOptions) => unknown;
8
8
  *
9
9
  * @internal
10
10
  */
11
- export declare const createRecursiveProxy: (callback: ProxyCallback) => unknown;
11
+ export declare const createRecursiveProxy: <TFaux = unknown>(callback: ProxyCallback) => TFaux;
12
12
  /**
13
13
  * Used in place of `new Proxy` where each handler will map 1 level deep to another value.
14
14
  *
@@ -1 +1 @@
1
- {"version":3,"file":"createProxy.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/createProxy.ts"],"names":[],"mappings":"AAAA,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AACD,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,oBAAoB,KAAK,OAAO,CAAC;AAuC7D;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,aAAc,aAAa,YAC5B,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,eAAe,2BACT,MAAM,GAAG,MAAM,KAAK,KAAK,GAAG,KAC5C,KAWF,CAAC"}
1
+ {"version":3,"file":"createProxy.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/createProxy.ts"],"names":[],"mappings":"AAAA,UAAU,oBAAoB;IAC5B,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;CAC1B;AACD,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,oBAAoB,KAAK,OAAO,CAAC;AAqD7D;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,KAAK,sBAC9B,aAAa,KACtB,KAAqE,CAAC;AAEzE;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,YACzB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,KAAK,GAAG,KAC5C,KAWF,CAAC"}
@@ -1,10 +1,17 @@
1
1
  'use strict';
2
2
 
3
+ var _memo, _cacheKey;
3
4
  const noop = ()=>{
4
5
  // noop
5
6
  };
6
- function createInnerProxy(callback, path) {
7
- const proxy = new Proxy(noop, {
7
+ const freezeIfAvailable = (obj)=>{
8
+ if (Object.freeze) {
9
+ Object.freeze(obj);
10
+ }
11
+ };
12
+ function createInnerProxy(callback, path, memo) {
13
+ const cacheKey = path.join('.');
14
+ (_memo = memo)[_cacheKey = cacheKey] ?? (_memo[_cacheKey] = new Proxy(noop, {
8
15
  get (_obj, key) {
9
16
  if (typeof key !== 'string' || key === 'then') {
10
17
  // special case for if the proxy is accidentally treated
@@ -14,7 +21,7 @@ function createInnerProxy(callback, path) {
14
21
  return createInnerProxy(callback, [
15
22
  ...path,
16
23
  key
17
- ]);
24
+ ], memo);
18
25
  },
19
26
  apply (_1, _2, args) {
20
27
  const lastOfPath = path[path.length - 1];
@@ -36,16 +43,18 @@ function createInnerProxy(callback, path) {
36
43
  path: path.slice(0, -1)
37
44
  };
38
45
  }
46
+ freezeIfAvailable(opts.args);
47
+ freezeIfAvailable(opts.path);
39
48
  return callback(opts);
40
49
  }
41
- });
42
- return proxy;
50
+ }));
51
+ return memo[cacheKey];
43
52
  }
44
53
  /**
45
54
  * Creates a proxy that calls the callback with the path and arguments
46
55
  *
47
56
  * @internal
48
- */ const createRecursiveProxy = (callback)=>createInnerProxy(callback, []);
57
+ */ const createRecursiveProxy = (callback)=>createInnerProxy(callback, [], Object.create(null));
49
58
  /**
50
59
  * Used in place of `new Proxy` where each handler will map 1 level deep to another value.
51
60
  *
@@ -1,8 +1,15 @@
1
+ var _memo, _cacheKey;
1
2
  const noop = ()=>{
2
3
  // noop
3
4
  };
4
- function createInnerProxy(callback, path) {
5
- const proxy = new Proxy(noop, {
5
+ const freezeIfAvailable = (obj)=>{
6
+ if (Object.freeze) {
7
+ Object.freeze(obj);
8
+ }
9
+ };
10
+ function createInnerProxy(callback, path, memo) {
11
+ const cacheKey = path.join('.');
12
+ (_memo = memo)[_cacheKey = cacheKey] ?? (_memo[_cacheKey] = new Proxy(noop, {
6
13
  get (_obj, key) {
7
14
  if (typeof key !== 'string' || key === 'then') {
8
15
  // special case for if the proxy is accidentally treated
@@ -12,7 +19,7 @@ function createInnerProxy(callback, path) {
12
19
  return createInnerProxy(callback, [
13
20
  ...path,
14
21
  key
15
- ]);
22
+ ], memo);
16
23
  },
17
24
  apply (_1, _2, args) {
18
25
  const lastOfPath = path[path.length - 1];
@@ -34,16 +41,18 @@ function createInnerProxy(callback, path) {
34
41
  path: path.slice(0, -1)
35
42
  };
36
43
  }
44
+ freezeIfAvailable(opts.args);
45
+ freezeIfAvailable(opts.path);
37
46
  return callback(opts);
38
47
  }
39
- });
40
- return proxy;
48
+ }));
49
+ return memo[cacheKey];
41
50
  }
42
51
  /**
43
52
  * Creates a proxy that calls the callback with the path and arguments
44
53
  *
45
54
  * @internal
46
- */ const createRecursiveProxy = (callback)=>createInnerProxy(callback, []);
55
+ */ const createRecursiveProxy = (callback)=>createInnerProxy(callback, [], Object.create(null));
47
56
  /**
48
57
  * Used in place of `new Proxy` where each handler will map 1 level deep to another value.
49
58
  *
@@ -1,9 +1,12 @@
1
- import type { RootConfig } from '../rootConfig';
1
+ import type { AnyRouter } from '../router';
2
2
  import type { TRPCRequestInfo } from './types';
3
- export declare function getRequestInfo(opts: {
3
+ type GetRequestInfoOptions = {
4
4
  path: string;
5
5
  req: Request;
6
6
  searchParams: URLSearchParams;
7
- config: RootConfig<any>;
8
- }): TRPCRequestInfo;
7
+ headers: Headers;
8
+ router: AnyRouter;
9
+ };
10
+ export declare function getRequestInfo(opts: GetRequestInfoOptions): TRPCRequestInfo;
11
+ export {};
9
12
  //# sourceMappingURL=contentType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contentType.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/contentType.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA4M/C,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,YAAY,EAAE,eAAe,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;CACzB,GAAG,eAAe,CAGlB"}
1
+ {"version":3,"file":"contentType.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/contentType.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,SAAS,CAAC;AAEjE,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,YAAY,EAAE,eAAe,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAqQF,wBAAgB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,eAAe,CAG3E"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var TRPCError = require('../error/TRPCError.js');
4
4
  var utils = require('../utils.js');
5
+ var parseConnectionParams = require('./parseConnectionParams.js');
5
6
 
6
7
  /**
7
8
  * Memoize a function that takes no arguments
@@ -65,7 +66,7 @@ const jsonContentTypeHandler = {
65
66
  }
66
67
  if (!isBatchCall) {
67
68
  return {
68
- 0: opts.config.transformer.input.deserialize(inputs)
69
+ 0: opts.router._def._config.transformer.input.deserialize(inputs)
69
70
  };
70
71
  }
71
72
  if (!utils.isObject(inputs)) {
@@ -78,24 +79,58 @@ const jsonContentTypeHandler = {
78
79
  for (const index of paths.keys()){
79
80
  const input = inputs[index];
80
81
  if (input !== undefined) {
81
- acc[index] = opts.config.transformer.input.deserialize(input);
82
+ acc[index] = opts.router._def._config.transformer.input.deserialize(input);
82
83
  }
83
84
  }
84
85
  return acc;
85
86
  });
86
- return {
87
- isBatchCall,
88
- calls: paths.map((path, index)=>({
89
- path,
90
- getRawInput: async ()=>{
91
- const inputs = await getInputs.read();
92
- return inputs[index];
93
- },
94
- result: ()=>{
95
- return getInputs.result()?.[index];
87
+ const calls = paths.map((path, index)=>{
88
+ const procedure = opts.router._def.procedures[path] ?? null;
89
+ return {
90
+ path,
91
+ procedure,
92
+ getRawInput: async ()=>{
93
+ const inputs = await getInputs.read();
94
+ let input = inputs[index];
95
+ if (procedure?._def.type === 'subscription') {
96
+ const lastEventId = opts.headers.get('last-event-id') ?? opts.searchParams.get('lastEventId') ?? opts.searchParams.get('Last-Event-Id');
97
+ if (lastEventId) {
98
+ if (utils.isObject(input)) {
99
+ input = {
100
+ ...input,
101
+ lastEventId: lastEventId
102
+ };
103
+ } else {
104
+ input ?? (input = {
105
+ lastEventId: lastEventId
106
+ });
107
+ }
108
+ }
96
109
  }
97
- }))
110
+ return input;
111
+ },
112
+ result: ()=>{
113
+ return getInputs.result()?.[index];
114
+ }
115
+ };
116
+ });
117
+ const types = new Set(calls.map((call)=>call.procedure?._def.type).filter(Boolean));
118
+ /* istanbul ignore if -- @preserve */ if (types.size > 1) {
119
+ throw new TRPCError.TRPCError({
120
+ code: 'BAD_REQUEST',
121
+ message: `Cannot mix procedure types in call: ${Array.from(types).join(', ')}`
122
+ });
123
+ }
124
+ const type = types.values().next().value ?? 'unknown';
125
+ const connectionParamsStr = opts.searchParams.get('connectionParams');
126
+ const info = {
127
+ isBatchCall,
128
+ accept: req.headers.get('trpc-accept'),
129
+ calls,
130
+ type,
131
+ connectionParams: connectionParamsStr === null ? null : parseConnectionParams.parseConnectionParamsFromString(connectionParamsStr)
98
132
  };
133
+ return info;
99
134
  }
100
135
  };
101
136
  const formDataContentTypeHandler = {
@@ -115,14 +150,18 @@ const formDataContentTypeHandler = {
115
150
  return fd;
116
151
  });
117
152
  return {
153
+ accept: null,
118
154
  calls: [
119
155
  {
120
156
  path: opts.path,
121
157
  getRawInput: getInputs.read,
122
- result: getInputs.result
158
+ result: getInputs.result,
159
+ procedure: opts.router._def.procedures[opts.path] ?? null
123
160
  }
124
161
  ],
125
- isBatchCall: false
162
+ isBatchCall: false,
163
+ type: 'mutation',
164
+ connectionParams: null
126
165
  };
127
166
  }
128
167
  };
@@ -146,10 +185,14 @@ const octetStreamContentTypeHandler = {
146
185
  {
147
186
  path: opts.path,
148
187
  getRawInput: getInputs.read,
149
- result: getInputs.result
188
+ result: getInputs.result,
189
+ procedure: opts.router._def.procedures[opts.path] ?? null
150
190
  }
151
191
  ],
152
- isBatchCall: false
192
+ isBatchCall: false,
193
+ accept: null,
194
+ type: 'mutation',
195
+ connectionParams: null
153
196
  };
154
197
  }
155
198
  };
@@ -1,5 +1,6 @@
1
1
  import { TRPCError } from '../error/TRPCError.mjs';
2
- import { unsetMarker, isObject } from '../utils.mjs';
2
+ import { isObject, unsetMarker } from '../utils.mjs';
3
+ import { parseConnectionParamsFromString } from './parseConnectionParams.mjs';
3
4
 
4
5
  /**
5
6
  * Memoize a function that takes no arguments
@@ -63,7 +64,7 @@ const jsonContentTypeHandler = {
63
64
  }
64
65
  if (!isBatchCall) {
65
66
  return {
66
- 0: opts.config.transformer.input.deserialize(inputs)
67
+ 0: opts.router._def._config.transformer.input.deserialize(inputs)
67
68
  };
68
69
  }
69
70
  if (!isObject(inputs)) {
@@ -76,24 +77,58 @@ const jsonContentTypeHandler = {
76
77
  for (const index of paths.keys()){
77
78
  const input = inputs[index];
78
79
  if (input !== undefined) {
79
- acc[index] = opts.config.transformer.input.deserialize(input);
80
+ acc[index] = opts.router._def._config.transformer.input.deserialize(input);
80
81
  }
81
82
  }
82
83
  return acc;
83
84
  });
84
- return {
85
- isBatchCall,
86
- calls: paths.map((path, index)=>({
87
- path,
88
- getRawInput: async ()=>{
89
- const inputs = await getInputs.read();
90
- return inputs[index];
91
- },
92
- result: ()=>{
93
- return getInputs.result()?.[index];
85
+ const calls = paths.map((path, index)=>{
86
+ const procedure = opts.router._def.procedures[path] ?? null;
87
+ return {
88
+ path,
89
+ procedure,
90
+ getRawInput: async ()=>{
91
+ const inputs = await getInputs.read();
92
+ let input = inputs[index];
93
+ if (procedure?._def.type === 'subscription') {
94
+ const lastEventId = opts.headers.get('last-event-id') ?? opts.searchParams.get('lastEventId') ?? opts.searchParams.get('Last-Event-Id');
95
+ if (lastEventId) {
96
+ if (isObject(input)) {
97
+ input = {
98
+ ...input,
99
+ lastEventId: lastEventId
100
+ };
101
+ } else {
102
+ input ?? (input = {
103
+ lastEventId: lastEventId
104
+ });
105
+ }
106
+ }
94
107
  }
95
- }))
108
+ return input;
109
+ },
110
+ result: ()=>{
111
+ return getInputs.result()?.[index];
112
+ }
113
+ };
114
+ });
115
+ const types = new Set(calls.map((call)=>call.procedure?._def.type).filter(Boolean));
116
+ /* istanbul ignore if -- @preserve */ if (types.size > 1) {
117
+ throw new TRPCError({
118
+ code: 'BAD_REQUEST',
119
+ message: `Cannot mix procedure types in call: ${Array.from(types).join(', ')}`
120
+ });
121
+ }
122
+ const type = types.values().next().value ?? 'unknown';
123
+ const connectionParamsStr = opts.searchParams.get('connectionParams');
124
+ const info = {
125
+ isBatchCall,
126
+ accept: req.headers.get('trpc-accept'),
127
+ calls,
128
+ type,
129
+ connectionParams: connectionParamsStr === null ? null : parseConnectionParamsFromString(connectionParamsStr)
96
130
  };
131
+ return info;
97
132
  }
98
133
  };
99
134
  const formDataContentTypeHandler = {
@@ -113,14 +148,18 @@ const formDataContentTypeHandler = {
113
148
  return fd;
114
149
  });
115
150
  return {
151
+ accept: null,
116
152
  calls: [
117
153
  {
118
154
  path: opts.path,
119
155
  getRawInput: getInputs.read,
120
- result: getInputs.result
156
+ result: getInputs.result,
157
+ procedure: opts.router._def.procedures[opts.path] ?? null
121
158
  }
122
159
  ],
123
- isBatchCall: false
160
+ isBatchCall: false,
161
+ type: 'mutation',
162
+ connectionParams: null
124
163
  };
125
164
  }
126
165
  };
@@ -144,10 +183,14 @@ const octetStreamContentTypeHandler = {
144
183
  {
145
184
  path: opts.path,
146
185
  getRawInput: getInputs.read,
147
- result: getInputs.result
186
+ result: getInputs.result,
187
+ procedure: opts.router._def.procedures[opts.path] ?? null
148
188
  }
149
189
  ],
150
- isBatchCall: false
190
+ isBatchCall: false,
191
+ accept: null,
192
+ type: 'mutation',
193
+ connectionParams: null
151
194
  };
152
195
  }
153
196
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formDataToObject.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/formDataToObject.ts"],"names":[],"mappings":"AAkCA,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,2BASlD"}
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */ const isNumberString = (str)=>/^\d+$/.test(str);
4
+ function set(obj, path, value) {
5
+ if (path.length > 1) {
6
+ const newPath = [
7
+ ...path
8
+ ];
9
+ const key = newPath.shift();
10
+ const nextKey = newPath[0];
11
+ if (!obj[key]) {
12
+ obj[key] = isNumberString(nextKey) ? [] : {};
13
+ } else if (Array.isArray(obj[key]) && !isNumberString(nextKey)) {
14
+ obj[key] = Object.fromEntries(Object.entries(obj[key]));
15
+ }
16
+ set(obj[key], newPath, value);
17
+ return;
18
+ }
19
+ const p = path[0];
20
+ if (obj[p] === undefined) {
21
+ obj[p] = value;
22
+ } else if (Array.isArray(obj[p])) {
23
+ obj[p].push(value);
24
+ } else {
25
+ obj[p] = [
26
+ obj[p],
27
+ value
28
+ ];
29
+ }
30
+ }
31
+ function formDataToObject(formData) {
32
+ const obj = {};
33
+ for (const [key, value] of formData.entries()){
34
+ const parts = key.split(/[\.\[\]]/).filter(Boolean);
35
+ set(obj, parts, value);
36
+ }
37
+ return obj;
38
+ }
39
+
40
+ exports.formDataToObject = formDataToObject;