@trpc/server 11.0.0-rc.354 → 11.0.0-rc.361

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 (162) hide show
  1. package/dist/@trpc/server/http.d.ts +0 -1
  2. package/dist/@trpc/server/http.d.ts.map +1 -1
  3. package/dist/@trpc/server/index.d.ts +2 -1
  4. package/dist/@trpc/server/index.d.ts.map +1 -1
  5. package/dist/adapters/aws-lambda/content-type/json/index.d.ts +10 -0
  6. package/dist/adapters/aws-lambda/content-type/json/index.d.ts.map +1 -0
  7. package/dist/adapters/aws-lambda/content-type/json/index.js +62 -0
  8. package/dist/adapters/aws-lambda/content-type/json/index.mjs +60 -0
  9. package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
  10. package/dist/adapters/aws-lambda/index.js +19 -9
  11. package/dist/adapters/aws-lambda/index.mjs +19 -9
  12. package/dist/adapters/aws-lambda/utils.d.ts +3 -12
  13. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
  14. package/dist/adapters/aws-lambda/utils.js +12 -1
  15. package/dist/adapters/aws-lambda/utils.mjs +12 -2
  16. package/dist/adapters/content-handlers/concurrentCache.d.ts +7 -0
  17. package/dist/adapters/content-handlers/concurrentCache.d.ts.map +1 -0
  18. package/dist/adapters/content-handlers/concurrentCache.js +17 -0
  19. package/dist/adapters/content-handlers/concurrentCache.mjs +15 -0
  20. package/dist/adapters/content-handlers/selectContentHandlerOrUnsupportedMediaType.d.ts +10 -0
  21. package/dist/adapters/content-handlers/selectContentHandlerOrUnsupportedMediaType.d.ts.map +1 -0
  22. package/dist/adapters/content-handlers/selectContentHandlerOrUnsupportedMediaType.js +33 -0
  23. package/dist/adapters/content-handlers/selectContentHandlerOrUnsupportedMediaType.mjs +31 -0
  24. package/dist/adapters/express.d.ts.map +1 -1
  25. package/dist/adapters/express.js +0 -1
  26. package/dist/adapters/express.mjs +0 -1
  27. package/dist/adapters/fastify/content-type/json/index.d.ts +8 -0
  28. package/dist/adapters/fastify/content-type/json/index.d.ts.map +1 -0
  29. package/dist/adapters/fastify/content-type/json/index.js +62 -0
  30. package/dist/adapters/fastify/content-type/json/index.mjs +60 -0
  31. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +1 -9
  32. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  33. package/dist/adapters/fastify/fastifyRequestHandler.js +10 -2
  34. package/dist/adapters/fastify/fastifyRequestHandler.mjs +10 -2
  35. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -1
  36. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
  37. package/dist/adapters/fastify/types.d.ts +11 -0
  38. package/dist/adapters/fastify/types.d.ts.map +1 -0
  39. package/dist/adapters/fetch/content-type/json/index.d.ts +9 -0
  40. package/dist/adapters/fetch/content-type/json/index.d.ts.map +1 -0
  41. package/dist/adapters/fetch/content-type/json/index.js +55 -0
  42. package/dist/adapters/fetch/content-type/json/index.mjs +53 -0
  43. package/dist/adapters/fetch/fetchRequestHandler.d.ts +1 -5
  44. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
  45. package/dist/adapters/fetch/fetchRequestHandler.js +16 -2
  46. package/dist/adapters/fetch/fetchRequestHandler.mjs +16 -2
  47. package/dist/adapters/fetch/types.d.ts +9 -12
  48. package/dist/adapters/fetch/types.d.ts.map +1 -1
  49. package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts +2 -7
  50. package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts.map +1 -1
  51. package/dist/adapters/next.d.ts.map +1 -1
  52. package/dist/adapters/next.js +0 -1
  53. package/dist/adapters/next.mjs +0 -1
  54. package/dist/adapters/node-http/content-type/form-data/index.d.ts +4 -25
  55. package/dist/adapters/node-http/content-type/form-data/index.d.ts.map +1 -1
  56. package/dist/adapters/node-http/content-type/form-data/index.js +25 -128
  57. package/dist/adapters/node-http/content-type/form-data/index.mjs +25 -103
  58. package/dist/adapters/node-http/content-type/json/getPostBody.d.ts.map +1 -1
  59. package/dist/adapters/node-http/content-type/json/getPostBody.js +4 -12
  60. package/dist/adapters/node-http/content-type/json/getPostBody.mjs +4 -12
  61. package/dist/adapters/node-http/content-type/json/index.d.ts +4 -1
  62. package/dist/adapters/node-http/content-type/json/index.d.ts.map +1 -1
  63. package/dist/adapters/node-http/content-type/json/index.js +62 -10
  64. package/dist/adapters/node-http/content-type/json/index.mjs +62 -10
  65. package/dist/adapters/node-http/content-type/octet/index.d.ts +5 -0
  66. package/dist/adapters/node-http/content-type/octet/index.d.ts.map +1 -0
  67. package/dist/adapters/node-http/content-type/octet/index.js +19 -0
  68. package/dist/adapters/node-http/content-type/octet/index.mjs +17 -0
  69. package/dist/adapters/node-http/content-type/types.d.ts +8 -0
  70. package/dist/adapters/node-http/content-type/types.d.ts.map +1 -0
  71. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  72. package/dist/adapters/node-http/nodeHTTPRequestHandler.js +19 -21
  73. package/dist/adapters/node-http/nodeHTTPRequestHandler.mjs +20 -22
  74. package/dist/adapters/node-http/types.d.ts +8 -19
  75. package/dist/adapters/node-http/types.d.ts.map +1 -1
  76. package/dist/adapters/standalone.d.ts.map +1 -1
  77. package/dist/adapters/standalone.js +0 -1
  78. package/dist/adapters/standalone.mjs +0 -1
  79. package/dist/adapters/ws.d.ts +2 -12
  80. package/dist/adapters/ws.d.ts.map +1 -1
  81. package/dist/bundle-analysis.json +241 -230
  82. package/dist/http.js +0 -2
  83. package/dist/http.mjs +0 -1
  84. package/dist/index.js +2 -0
  85. package/dist/index.mjs +1 -0
  86. package/dist/unstable-core-do-not-import/contentTypeParsers.d.ts +16 -0
  87. package/dist/unstable-core-do-not-import/contentTypeParsers.d.ts.map +1 -0
  88. package/dist/unstable-core-do-not-import/contentTypeParsers.js +23 -0
  89. package/dist/unstable-core-do-not-import/contentTypeParsers.mjs +21 -0
  90. package/dist/unstable-core-do-not-import/http/contentType.d.ts +7 -15
  91. package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +1 -1
  92. package/dist/unstable-core-do-not-import/http/index.d.ts +0 -1
  93. package/dist/unstable-core-do-not-import/http/index.d.ts.map +1 -1
  94. package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.d.ts +5 -5
  95. package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.d.ts.map +1 -1
  96. package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.js +26 -20
  97. package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.mjs +26 -20
  98. package/dist/unstable-core-do-not-import/http/types.d.ts +0 -2
  99. package/dist/unstable-core-do-not-import/http/types.d.ts.map +1 -1
  100. package/dist/unstable-core-do-not-import/rootConfig.d.ts +21 -0
  101. package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +1 -1
  102. package/dist/unstable-core-do-not-import.js +0 -2
  103. package/dist/unstable-core-do-not-import.mjs +0 -1
  104. package/package.json +6 -7
  105. package/src/@trpc/server/http.ts +0 -1
  106. package/src/@trpc/server/index.ts +4 -0
  107. package/src/adapters/aws-lambda/content-type/json/index.ts +108 -0
  108. package/src/adapters/aws-lambda/index.ts +24 -9
  109. package/src/adapters/aws-lambda/utils.ts +21 -15
  110. package/src/adapters/content-handlers/concurrentCache.ts +16 -0
  111. package/src/adapters/content-handlers/selectContentHandlerOrUnsupportedMediaType.ts +45 -0
  112. package/src/adapters/express.ts +1 -6
  113. package/src/adapters/fastify/content-type/json/index.ts +106 -0
  114. package/src/adapters/fastify/fastifyRequestHandler.ts +15 -21
  115. package/src/adapters/fastify/fastifyTRPCPlugin.ts +1 -1
  116. package/src/adapters/fastify/types.ts +22 -0
  117. package/src/adapters/fetch/content-type/json/index.ts +90 -0
  118. package/src/adapters/fetch/fetchRequestHandler.ts +22 -10
  119. package/src/adapters/fetch/types.ts +22 -15
  120. package/src/adapters/next-app-dir/nextAppDirCaller.ts +2 -9
  121. package/src/adapters/next.ts +1 -6
  122. package/src/adapters/node-http/content-type/form-data/index.ts +33 -159
  123. package/src/adapters/node-http/content-type/json/getPostBody.ts +9 -18
  124. package/src/adapters/node-http/content-type/json/index.ts +98 -9
  125. package/src/adapters/node-http/content-type/octet/index.ts +27 -0
  126. package/src/adapters/node-http/{internals/contentType.ts → content-type/types.ts} +2 -14
  127. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +22 -35
  128. package/src/adapters/node-http/types.ts +46 -46
  129. package/src/adapters/standalone.ts +1 -2
  130. package/src/adapters/ws.ts +9 -14
  131. package/src/unstable-core-do-not-import/contentTypeParsers.ts +37 -0
  132. package/src/unstable-core-do-not-import/http/contentType.ts +10 -85
  133. package/src/unstable-core-do-not-import/http/index.ts +0 -1
  134. package/src/unstable-core-do-not-import/http/resolveHTTPResponse.ts +30 -27
  135. package/src/unstable-core-do-not-import/http/types.ts +0 -2
  136. package/src/unstable-core-do-not-import/rootConfig.ts +31 -0
  137. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.d.ts +0 -73
  138. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.d.ts.map +0 -1
  139. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.js +0 -161
  140. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.mjs +0 -157
  141. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts +0 -31
  142. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts.map +0 -1
  143. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.js +0 -29
  144. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.mjs +0 -27
  145. package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts +0 -16
  146. package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts.map +0 -1
  147. package/dist/adapters/node-http/content-type/form-data/streamSlice.js +0 -46
  148. package/dist/adapters/node-http/content-type/form-data/streamSlice.mjs +0 -44
  149. package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts +0 -45
  150. package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts.map +0 -1
  151. package/dist/adapters/node-http/content-type/form-data/uploadHandler.js +0 -30
  152. package/dist/adapters/node-http/content-type/form-data/uploadHandler.mjs +0 -26
  153. package/dist/adapters/node-http/internals/contentType.d.ts +0 -9
  154. package/dist/adapters/node-http/internals/contentType.d.ts.map +0 -1
  155. package/dist/adapters/node-http/internals/contentType.js +0 -8
  156. package/dist/adapters/node-http/internals/contentType.mjs +0 -6
  157. package/dist/unstable-core-do-not-import/http/contentType.js +0 -54
  158. package/dist/unstable-core-do-not-import/http/contentType.mjs +0 -52
  159. package/src/adapters/node-http/content-type/form-data/fileUploadHandler.ts +0 -277
  160. package/src/adapters/node-http/content-type/form-data/memoryUploadHandler.ts +0 -56
  161. package/src/adapters/node-http/content-type/form-data/streamSlice.ts +0 -56
  162. package/src/adapters/node-http/content-type/form-data/uploadHandler.ts +0 -89
@@ -3,6 +3,5 @@ export { resolveHTTPResponse } from '../../unstable-core-do-not-import';
3
3
  export type { BaseHandlerOptions, HTTPBaseHandlerOptions, HTTPHeaders, HTTPRequest, HTTPResponse, OnErrorFunction, ProcedureCall, ResolveHTTPRequestOptionsContextFn, ResponseChunk, ResponseMeta, ResponseMetaFn, TRPCRequestInfo, } from '../../unstable-core-do-not-import';
4
4
  export { getBatchStreamFormatter } from '../../unstable-core-do-not-import';
5
5
  export type { BaseContentTypeHandler, BodyResult, } from '../../unstable-core-do-not-import';
6
- export { getJsonContentTypeInputs } from '../../unstable-core-do-not-import';
7
6
  export { toURL } from '../../unstable-core-do-not-import';
8
7
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/@trpc/server/http.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kCAAkC,EAClC,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,YAAY,EACV,sBAAsB,EACtB,UAAU,GACX,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/@trpc/server/http.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kCAAkC,EAClC,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,YAAY,EACV,sBAAsB,EACtB,UAAU,GACX,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC"}
@@ -2,7 +2,7 @@ export { TRPCError,
2
2
  /**
3
3
  * @deprecated use `experimental_trpcMiddleware` instead
4
4
  */
5
- experimental_standaloneMiddleware, experimental_standaloneMiddleware as experimental_trpcMiddleware, initTRPC, callProcedure as callTRPCProcedure, getTRPCErrorFromUnknown, transformTRPCResponse, createFlatProxy as createTRPCFlatProxy, type inferProcedureInput, type inferProcedureOutput, type inferProcedureBuilderResolverOptions, type inferRouterError, type inferRouterInputs, type inferRouterOutputs, type inferRouterContext, type inferClientTypes as inferTRPCClientTypes, type AnyClientTypes as AnyTRPCClientTypes, type inferTransformedProcedureOutput, type inferTransformedSubscriptionOutput, type AnyProcedure as AnyTRPCProcedure, type AnyRouter as AnyTRPCRouter, type AnyMiddlewareFunction as AnyTRPCMiddlewareFunction, type CombinedDataTransformer as TRPCCombinedDataTransformer, type ProcedureType as TRPCProcedureType, type AnyMutationProcedure as AnyTRPCMutationProcedure, type AnyQueryProcedure as AnyTRPCQueryProcedure, type RouterRecord as TRPCRouterRecord, type AnySubscriptionProcedure as AnyTRPCSubscriptionProcedure, type ProcedureOptions as TRPCProcedureOptions, type MutationProcedure as TRPCMutationProcedure, type QueryProcedure as TRPCQueryProcedure, type SubscriptionProcedure as TRPCSubscriptionProcedure, type TRPCBuilder, } from '../../unstable-core-do-not-import';
5
+ experimental_standaloneMiddleware, experimental_standaloneMiddleware as experimental_trpcMiddleware, initTRPC, callProcedure as callTRPCProcedure, getTRPCErrorFromUnknown, transformTRPCResponse, createFlatProxy as createTRPCFlatProxy, type inferProcedureInput, type inferProcedureOutput, type inferProcedureBuilderResolverOptions, type inferRouterError, type inferRouterInputs, type inferRouterOutputs, type inferRouterContext, type inferClientTypes as inferTRPCClientTypes, type AnyClientTypes as AnyTRPCClientTypes, type inferTransformedProcedureOutput, type inferTransformedSubscriptionOutput, type AnyProcedure as AnyTRPCProcedure, type AnyRouter as AnyTRPCRouter, type AnyMiddlewareFunction as AnyTRPCMiddlewareFunction, type CombinedDataTransformer as TRPCCombinedDataTransformer, type ProcedureType as TRPCProcedureType, type AnyMutationProcedure as AnyTRPCMutationProcedure, type AnyQueryProcedure as AnyTRPCQueryProcedure, type RouterRecord as TRPCRouterRecord, type AnySubscriptionProcedure as AnyTRPCSubscriptionProcedure, type ProcedureOptions as TRPCProcedureOptions, type CreateContextCallback, type WrapCreateContext, type MutationProcedure as TRPCMutationProcedure, type QueryProcedure as TRPCQueryProcedure, type SubscriptionProcedure as TRPCSubscriptionProcedure, type TRPCBuilder, } from '../../unstable-core-do-not-import';
6
6
  export type {
7
7
  /**
8
8
  * @deprecated use `AnyTRPCProcedure` instead
@@ -58,4 +58,5 @@ callProcedure, } from '../../unstable-core-do-not-import';
58
58
  * Use `Awaited<ReturnType<typeof myFunction>>` instead
59
59
  */
60
60
  export type inferAsyncReturnType<TFunction extends (...args: any[]) => any> = Awaited<ReturnType<TFunction>>;
61
+ export { parseOctetInput } from '../../unstable-core-do-not-import/contentTypeParsers';
61
62
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/@trpc/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS;AACT;;GAEG;AACH,iCAAiC,EACjC,iCAAiC,IAAI,2BAA2B,EAChE,QAAQ,EAER,aAAa,IAAI,iBAAiB,EAClC,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,IAAI,mBAAmB,EACtC,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,oCAAoC,EACzC,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,KAAK,cAAc,IAAI,kBAAkB,EACzC,KAAK,+BAA+B,EACpC,KAAK,kCAAkC,EACvC,KAAK,YAAY,IAAI,gBAAgB,EACrC,KAAK,SAAS,IAAI,aAAa,EAC/B,KAAK,qBAAqB,IAAI,yBAAyB,EACvD,KAAK,uBAAuB,IAAI,2BAA2B,EAC3D,KAAK,aAAa,IAAI,iBAAiB,EACvC,KAAK,oBAAoB,IAAI,wBAAwB,EACrD,KAAK,iBAAiB,IAAI,qBAAqB,EAC/C,KAAK,YAAY,IAAI,gBAAgB,EACrC,KAAK,wBAAwB,IAAI,4BAA4B,EAC7D,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,KAAK,iBAAiB,IAAI,qBAAqB,EAC/C,KAAK,cAAc,IAAI,kBAAkB,EACzC,KAAK,qBAAqB,IAAI,yBAAyB,EACvD,KAAK,WAAW,GACjB,MAAM,mCAAmC,CAAC;AAE3C,YAAY;AACV;;GAEG;AACH,YAAY;AACZ;;GAEG;AACH,SAAS;AACT;;GAEG;AACH,qBAAqB;AACrB;;GAEG;AACH,uBAAuB;AAEvB;;GAEG;AACH,IAAI;AAEJ;;GAEG;AACH,WAAW;AACX;;GAEG;AACH,aAAa;AACb;;GAEG;AACH,oBAAoB;AAEpB;;GAEG;AACH,iBAAiB;AACjB;;GAEG;AACH,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;AAE3C,OAAO;AACL;;GAEG;AACH,aAAa;AAEb;;GAEG;AACH,aAAa,GACd,MAAM,mCAAmC,CAAC;AAE3C;;;GAGG;AACH,MAAM,MAAM,oBAAoB,CAAC,SAAS,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IACxE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/@trpc/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS;AACT;;GAEG;AACH,iCAAiC,EACjC,iCAAiC,IAAI,2BAA2B,EAChE,QAAQ,EAER,aAAa,IAAI,iBAAiB,EAClC,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,IAAI,mBAAmB,EACtC,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,oCAAoC,EACzC,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,KAAK,cAAc,IAAI,kBAAkB,EACzC,KAAK,+BAA+B,EACpC,KAAK,kCAAkC,EACvC,KAAK,YAAY,IAAI,gBAAgB,EACrC,KAAK,SAAS,IAAI,aAAa,EAC/B,KAAK,qBAAqB,IAAI,yBAAyB,EACvD,KAAK,uBAAuB,IAAI,2BAA2B,EAC3D,KAAK,aAAa,IAAI,iBAAiB,EACvC,KAAK,oBAAoB,IAAI,wBAAwB,EACrD,KAAK,iBAAiB,IAAI,qBAAqB,EAC/C,KAAK,YAAY,IAAI,gBAAgB,EACrC,KAAK,wBAAwB,IAAI,4BAA4B,EAC7D,KAAK,gBAAgB,IAAI,oBAAoB,EAC7C,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,IAAI,qBAAqB,EAC/C,KAAK,cAAc,IAAI,kBAAkB,EACzC,KAAK,qBAAqB,IAAI,yBAAyB,EACvD,KAAK,WAAW,GACjB,MAAM,mCAAmC,CAAC;AAE3C,YAAY;AACV;;GAEG;AACH,YAAY;AACZ;;GAEG;AACH,SAAS;AACT;;GAEG;AACH,qBAAqB;AACrB;;GAEG;AACH,uBAAuB;AAEvB;;GAEG;AACH,IAAI;AAEJ;;GAEG;AACH,WAAW;AACX;;GAEG;AACH,aAAa;AACb;;GAEG;AACH,oBAAoB;AAEpB;;GAEG;AACH,iBAAiB;AACjB;;GAEG;AACH,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;AAE3C,OAAO;AACL;;GAEG;AACH,aAAa;AAEb;;GAEG;AACH,aAAa,GACd,MAAM,mCAAmC,CAAC;AAE3C;;;GAGG;AACH,MAAM,MAAM,oBAAoB,CAAC,SAAS,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IACxE,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,sDAAsD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { AnyRouter } from '../../../../@trpc/server';
2
+ import type { BaseContentTypeHandler, HTTPRequest } from '../../../../@trpc/server/http';
3
+ import { type APIGatewayEvent, type AWSLambdaOptions } from '../../utils';
4
+ export interface LambdaHTTPContentTypeHandler<TRouter extends AnyRouter, TEvent extends APIGatewayEvent> extends BaseContentTypeHandler<AWSLambdaOptions<TRouter, TEvent> & {
5
+ event: TEvent;
6
+ req: HTTPRequest;
7
+ }> {
8
+ }
9
+ export declare const getLambdaHTTPJSONContentTypeHandler: <TRouter extends AnyRouter, TEvent extends APIGatewayEvent>() => LambdaHTTPContentTypeHandler<TRouter, TEvent>;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/aws-lambda/content-type/json/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,SAAS,EAEV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,4BAA4B,CAC3C,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,CAC9B,SAAQ,sBAAsB,CAC5B,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,WAAW,CAAC;CAClB,CACF;CAAG;AAEN,eAAO,MAAM,mCAAmC,EAAE,CAChD,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,OACzB,4BAA4B,CAAC,OAAO,EAAE,MAAM,CA6ElD,CAAC"}
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ var TRPCError = require('../../../../unstable-core-do-not-import/error/TRPCError.js');
4
+ require('../../../../unstable-core-do-not-import/rootConfig.js');
5
+ var concurrentCache = require('../../../content-handlers/concurrentCache.js');
6
+ var utils = require('../../utils.js');
7
+
8
+ // @trpc/server
9
+ const getLambdaHTTPJSONContentTypeHandler = ()=>{
10
+ const cache = concurrentCache.createConcurrentCache();
11
+ return {
12
+ name: 'lambda-json',
13
+ isMatch: (headers)=>{
14
+ return !!headers.get('content-type')?.startsWith('application/json');
15
+ },
16
+ getInputs: async (opts, info)=>{
17
+ function getRawProcedureInputOrThrow() {
18
+ const { event , req } = opts;
19
+ try {
20
+ if (req.query.has('input')) {
21
+ const input = req.query.get('input');
22
+ if (!input) {
23
+ return undefined;
24
+ }
25
+ return JSON.parse(input);
26
+ }
27
+ const body = utils.lambdaEventToHTTPBody(opts.event);
28
+ if (typeof body === 'string') {
29
+ // A mutation with no inputs will have req.body === ''
30
+ return body.length === 0 ? undefined : JSON.parse(body);
31
+ }
32
+ return event.body;
33
+ } catch (cause) {
34
+ throw new TRPCError.TRPCError({
35
+ code: 'PARSE_ERROR',
36
+ cause
37
+ });
38
+ }
39
+ }
40
+ const deserializeInputValue = (rawValue, transformer)=>{
41
+ return typeof rawValue !== 'undefined' ? transformer.input.deserialize(rawValue) : rawValue;
42
+ };
43
+ const rawInput = await cache.concurrentSafeGet('rawInput', ()=>getRawProcedureInputOrThrow());
44
+ if (rawInput === undefined) {
45
+ return undefined;
46
+ }
47
+ const transformer = opts.router._def._config.transformer;
48
+ if (!info.isBatchCall) {
49
+ return cache.concurrentSafeGet('input', ()=>deserializeInputValue(rawInput, transformer));
50
+ }
51
+ /* istanbul ignore if */ if (rawInput == null || typeof rawInput !== 'object' || Array.isArray(rawInput)) {
52
+ throw new TRPCError.TRPCError({
53
+ code: 'BAD_REQUEST',
54
+ message: '"input" needs to be an object when doing a batch call'
55
+ });
56
+ }
57
+ return cache.concurrentSafeGet(String(info.batch), ()=>deserializeInputValue(rawInput[info.batch], transformer));
58
+ }
59
+ };
60
+ };
61
+
62
+ exports.getLambdaHTTPJSONContentTypeHandler = getLambdaHTTPJSONContentTypeHandler;
@@ -0,0 +1,60 @@
1
+ import { TRPCError } from '../../../../unstable-core-do-not-import/error/TRPCError.mjs';
2
+ import '../../../../unstable-core-do-not-import/rootConfig.mjs';
3
+ import { createConcurrentCache } from '../../../content-handlers/concurrentCache.mjs';
4
+ import { lambdaEventToHTTPBody } from '../../utils.mjs';
5
+
6
+ // @trpc/server
7
+ const getLambdaHTTPJSONContentTypeHandler = ()=>{
8
+ const cache = createConcurrentCache();
9
+ return {
10
+ name: 'lambda-json',
11
+ isMatch: (headers)=>{
12
+ return !!headers.get('content-type')?.startsWith('application/json');
13
+ },
14
+ getInputs: async (opts, info)=>{
15
+ function getRawProcedureInputOrThrow() {
16
+ const { event , req } = opts;
17
+ try {
18
+ if (req.query.has('input')) {
19
+ const input = req.query.get('input');
20
+ if (!input) {
21
+ return undefined;
22
+ }
23
+ return JSON.parse(input);
24
+ }
25
+ const body = lambdaEventToHTTPBody(opts.event);
26
+ if (typeof body === 'string') {
27
+ // A mutation with no inputs will have req.body === ''
28
+ return body.length === 0 ? undefined : JSON.parse(body);
29
+ }
30
+ return event.body;
31
+ } catch (cause) {
32
+ throw new TRPCError({
33
+ code: 'PARSE_ERROR',
34
+ cause
35
+ });
36
+ }
37
+ }
38
+ const deserializeInputValue = (rawValue, transformer)=>{
39
+ return typeof rawValue !== 'undefined' ? transformer.input.deserialize(rawValue) : rawValue;
40
+ };
41
+ const rawInput = await cache.concurrentSafeGet('rawInput', ()=>getRawProcedureInputOrThrow());
42
+ if (rawInput === undefined) {
43
+ return undefined;
44
+ }
45
+ const transformer = opts.router._def._config.transformer;
46
+ if (!info.isBatchCall) {
47
+ return cache.concurrentSafeGet('input', ()=>deserializeInputValue(rawInput, transformer));
48
+ }
49
+ /* istanbul ignore if */ if (rawInput == null || typeof rawInput !== 'object' || Array.isArray(rawInput)) {
50
+ throw new TRPCError({
51
+ code: 'BAD_REQUEST',
52
+ message: '"input" needs to be an object when doing a batch call'
53
+ });
54
+ }
55
+ return cache.concurrentSafeGet(String(info.batch), ()=>deserializeInputValue(rawInput[info.batch], transformer));
56
+ }
57
+ };
58
+ };
59
+
60
+ export { getLambdaHTTPJSONContentTypeHandler };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws-lambda/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iCAAiC,EACjC,OAAO,IAAI,YAAY,EACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AASpD,OAAO,KAAK,EACV,eAAe,EAEf,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAUjB,cAAc,SAAS,CAAC;AAqDxB;;IAEI;AACJ,KAAK,gBAAgB,CAAC,KAAK,IAAI,KAAK,SAAS,oBAAoB,GAC7D,qBAAqB,GACrB,KAAK,SAAS,sBAAsB,GACpC,iCAAiC,GACjC,KAAK,CAAC;AACV,wBAAgB,uBAAuB,CACrC,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,EAC9B,OAAO,SAAS,gBAAgB,CAAC,MAAM,CAAC,EAExC,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,GACtC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CA0B5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws-lambda/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iCAAiC,EACjC,OAAO,IAAI,YAAY,EACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAWpD,OAAO,KAAK,EACV,eAAe,EAEf,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAUjB,cAAc,SAAS,CAAC;AA6CxB;;IAEI;AACJ,KAAK,gBAAgB,CAAC,KAAK,IAAI,KAAK,SAAS,oBAAoB,GAC7D,qBAAqB,GACrB,KAAK,SAAS,sBAAsB,GACpC,iCAAiC,GACjC,KAAK,CAAC;AACV,wBAAgB,uBAAuB,CACrC,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,EAC9B,OAAO,SAAS,gBAAgB,CAAC,MAAM,CAAC,EAExC,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,GACtC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CA+C5D"}
@@ -3,6 +3,8 @@
3
3
  var TRPCError = require('../../unstable-core-do-not-import/error/TRPCError.js');
4
4
  var resolveHTTPResponse = require('../../unstable-core-do-not-import/http/resolveHTTPResponse.js');
5
5
  require('../../unstable-core-do-not-import/rootConfig.js');
6
+ var selectContentHandlerOrUnsupportedMediaType = require('../content-handlers/selectContentHandlerOrUnsupportedMediaType.js');
7
+ var index = require('./content-type/json/index.js');
6
8
  var utils = require('./utils.js');
7
9
 
8
10
  /**
@@ -21,17 +23,10 @@ function lambdaEventToHTTPRequest(event) {
21
23
  query.append(key, value);
22
24
  }
23
25
  }
24
- let body;
25
- if (event.body && event.isBase64Encoded) {
26
- body = Buffer.from(event.body, 'base64').toString('utf8');
27
- } else {
28
- body = event.body;
29
- }
30
26
  return {
31
27
  method: utils.getHTTPMethod(event),
32
28
  query: query,
33
- headers: event.headers,
34
- body: body
29
+ headers: event.headers
35
30
  };
36
31
  }
37
32
  function tRPCOutputToAPIGatewayOutput(event, response) {
@@ -67,12 +62,26 @@ function awsLambdaRequestHandler(opts) {
67
62
  ...innerOpts
68
63
  });
69
64
  };
65
+ const [contentTypeHandler, unsupportedMediaTypeError] = selectContentHandlerOrUnsupportedMediaType.selectContentHandlerOrUnsupportedMediaType([
66
+ index.getLambdaHTTPJSONContentTypeHandler()
67
+ ], {
68
+ ...opts,
69
+ event,
70
+ req
71
+ });
70
72
  const response = await resolveHTTPResponse.resolveHTTPResponse({
71
73
  ...opts,
72
74
  createContext,
73
75
  req,
74
76
  path,
75
- error: null,
77
+ error: unsupportedMediaTypeError,
78
+ async getInput (info) {
79
+ return await contentTypeHandler?.getInputs({
80
+ ...opts,
81
+ event,
82
+ req
83
+ }, info);
84
+ },
76
85
  onError (o) {
77
86
  opts?.onError?.({
78
87
  ...o,
@@ -89,5 +98,6 @@ exports.getHTTPMethod = utils.getHTTPMethod;
89
98
  exports.getPath = utils.getPath;
90
99
  exports.isPayloadV1 = utils.isPayloadV1;
91
100
  exports.isPayloadV2 = utils.isPayloadV2;
101
+ exports.lambdaEventToHTTPBody = utils.lambdaEventToHTTPBody;
92
102
  exports.transformHeaders = utils.transformHeaders;
93
103
  exports.awsLambdaRequestHandler = awsLambdaRequestHandler;
@@ -1,7 +1,10 @@
1
1
  import { TRPCError } from '../../unstable-core-do-not-import/error/TRPCError.mjs';
2
2
  import { resolveHTTPResponse } from '../../unstable-core-do-not-import/http/resolveHTTPResponse.mjs';
3
3
  import '../../unstable-core-do-not-import/rootConfig.mjs';
4
+ import { selectContentHandlerOrUnsupportedMediaType } from '../content-handlers/selectContentHandlerOrUnsupportedMediaType.mjs';
5
+ import { getLambdaHTTPJSONContentTypeHandler } from './content-type/json/index.mjs';
4
6
  import { getPath, getHTTPMethod, isPayloadV1, transformHeaders, isPayloadV2, UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE } from './utils.mjs';
7
+ export { lambdaEventToHTTPBody } from './utils.mjs';
5
8
 
6
9
  /**
7
10
  * If you're making an adapter for tRPC and looking at this file for reference, you should import types and functions from `@trpc/server` and `@trpc/server/http`
@@ -19,17 +22,10 @@ function lambdaEventToHTTPRequest(event) {
19
22
  query.append(key, value);
20
23
  }
21
24
  }
22
- let body;
23
- if (event.body && event.isBase64Encoded) {
24
- body = Buffer.from(event.body, 'base64').toString('utf8');
25
- } else {
26
- body = event.body;
27
- }
28
25
  return {
29
26
  method: getHTTPMethod(event),
30
27
  query: query,
31
- headers: event.headers,
32
- body: body
28
+ headers: event.headers
33
29
  };
34
30
  }
35
31
  function tRPCOutputToAPIGatewayOutput(event, response) {
@@ -65,12 +61,26 @@ function awsLambdaRequestHandler(opts) {
65
61
  ...innerOpts
66
62
  });
67
63
  };
64
+ const [contentTypeHandler, unsupportedMediaTypeError] = selectContentHandlerOrUnsupportedMediaType([
65
+ getLambdaHTTPJSONContentTypeHandler()
66
+ ], {
67
+ ...opts,
68
+ event,
69
+ req
70
+ });
68
71
  const response = await resolveHTTPResponse({
69
72
  ...opts,
70
73
  createContext,
71
74
  req,
72
75
  path,
73
- error: null,
76
+ error: unsupportedMediaTypeError,
77
+ async getInput (info) {
78
+ return await contentTypeHandler?.getInputs({
79
+ ...opts,
80
+ event,
81
+ req
82
+ }, info);
83
+ },
74
84
  onError (o) {
75
85
  opts?.onError?.({
76
86
  ...o,
@@ -8,7 +8,7 @@
8
8
  * ```
9
9
  */
10
10
  import type { APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResult, APIGatewayProxyStructuredResultV2, Context as APIGWContext } from 'aws-lambda';
11
- import type { AnyRouter, inferRouterContext } from '../../@trpc/server';
11
+ import type { AnyRouter, CreateContextCallback, inferRouterContext } from '../../@trpc/server';
12
12
  import type { HTTPBaseHandlerOptions, HTTPHeaders, TRPCRequestInfo } from '../../@trpc/server/http';
13
13
  export type APIGatewayEvent = APIGatewayProxyEvent | APIGatewayProxyEventV2;
14
14
  export type APIGatewayResult = APIGatewayProxyResult | APIGatewayProxyStructuredResultV2;
@@ -18,17 +18,7 @@ export type CreateAWSLambdaContextOptions<TEvent extends APIGatewayEvent> = {
18
18
  info: TRPCRequestInfo;
19
19
  };
20
20
  export type AWSLambdaCreateContextFn<TRouter extends AnyRouter, TEvent extends APIGatewayEvent> = ({ event, context, info, }: CreateAWSLambdaContextOptions<TEvent>) => inferRouterContext<TRouter> | Promise<inferRouterContext<TRouter>>;
21
- export type AWSLambdaOptions<TRouter extends AnyRouter, TEvent extends APIGatewayEvent> = HTTPBaseHandlerOptions<TRouter, TEvent> & ({
22
- /**
23
- * @link https://trpc.io/docs/v11/context
24
- **/
25
- createContext: AWSLambdaCreateContextFn<TRouter, TEvent>;
26
- } | {
27
- /**
28
- * @link https://trpc.io/docs/v11/context
29
- **/
30
- createContext?: AWSLambdaCreateContextFn<TRouter, TEvent>;
31
- });
21
+ export type AWSLambdaOptions<TRouter extends AnyRouter, TEvent extends APIGatewayEvent> = HTTPBaseHandlerOptions<TRouter, TEvent> & CreateContextCallback<inferRouterContext<AnyRouter>, AWSLambdaCreateContextFn<TRouter, TEvent>>;
32
22
  export declare function isPayloadV1(event: APIGatewayEvent): event is APIGatewayProxyEvent;
33
23
  export declare function isPayloadV2(event: APIGatewayEvent): event is APIGatewayProxyEventV2;
34
24
  export declare function getHTTPMethod(event: APIGatewayEvent): string;
@@ -37,4 +27,5 @@ export declare function transformHeaders(headers: HTTPHeaders): APIGatewayResult
37
27
  export type DefinedAPIGatewayPayloadFormats = '1.0' | '2.0';
38
28
  export type APIGatewayPayloadFormatVersion = DefinedAPIGatewayPayloadFormats | 'custom';
39
29
  export declare const UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE: string;
30
+ export declare function lambdaEventToHTTPBody(event: APIGatewayEvent): string | null | undefined;
40
31
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws-lambda/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iCAAiC,EACjC,OAAO,IAAI,YAAY,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAIxE,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GACxB,qBAAqB,GACrB,iCAAiC,CAAC;AAEtC,MAAM,MAAM,6BAA6B,CAAC,MAAM,SAAS,eAAe,IAAI;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,wBAAwB,CAClC,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,IAC5B,CAAC,EACH,KAAK,EACL,OAAO,EACP,IAAI,GACL,EAAE,6BAA6B,CAAC,MAAM,CAAC,KACpC,kBAAkB,CAAC,OAAO,CAAC,GAC3B,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzC,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,IAE5B,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,GACrC,CACI;IACE;;QAEI;IACJ,aAAa,EAAE,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAC1D,GACD;IACE;;QAEI;IACJ,aAAa,CAAC,EAAE,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAC3D,CACJ,CAAC;AAER,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,GACrB,KAAK,IAAI,oBAAoB,CAE/B;AACD,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,GACrB,KAAK,IAAI,sBAAsB,CAEjC;AAoBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,UAWnD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,eAAe,UA+B7C;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,GACnB,gBAAgB,CAAC,SAAS,CAAC,CAU7B;AAED,MAAM,MAAM,+BAA+B,GAAG,KAAK,GAAG,KAAK,CAAC;AAC5D,MAAM,MAAM,8BAA8B,GACtC,+BAA+B,GAC/B,QAAQ,CAAC;AAEb,eAAO,MAAM,4CAA4C,QAEiD,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws-lambda/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iCAAiC,EACjC,OAAO,IAAI,YAAY,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,eAAe,EAChB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAC5E,MAAM,MAAM,gBAAgB,GACxB,qBAAqB,GACrB,iCAAiC,CAAC;AAEtC,MAAM,MAAM,6BAA6B,CAAC,MAAM,SAAS,eAAe,IAAI;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,eAAe,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,wBAAwB,CAClC,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,IAC5B,CAAC,EACH,KAAK,EACL,OAAO,EACP,IAAI,GACL,EAAE,6BAA6B,CAAC,MAAM,CAAC,KACpC,kBAAkB,CAAC,OAAO,CAAC,GAC3B,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzC,MAAM,MAAM,gBAAgB,CAC1B,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,IAE5B,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,GACrC,qBAAqB,CACnB,kBAAkB,CAAC,SAAS,CAAC,EAC7B,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAC1C,CAAC;AAER,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,GACrB,KAAK,IAAI,oBAAoB,CAE/B;AACD,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,GACrB,KAAK,IAAI,sBAAsB,CAEjC;AAoBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,UAWnD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,eAAe,UA+B7C;AAED,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,GACnB,gBAAgB,CAAC,SAAS,CAAC,CAU7B;AAED,MAAM,MAAM,+BAA+B,GAAG,KAAK,GAAG,KAAK,CAAC;AAC5D,MAAM,MAAM,8BAA8B,GACtC,+BAA+B,GAC/B,QAAQ,CAAC;AAEb,eAAO,MAAM,4CAA4C,QAEiD,CAAC;AAE3G,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,6BAS3D"}
@@ -11,7 +11,8 @@ require('../../unstable-core-do-not-import/rootConfig.js');
11
11
  * import type { AnyTRPCRouter } from '@trpc/server'
12
12
  * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'
13
13
  * ```
14
- */ // @trpc/server
14
+ */ // import @trpc/server
15
+ // @trpc/server
15
16
  function isPayloadV1(event) {
16
17
  return determinePayloadFormat(event) == '1.0';
17
18
  }
@@ -91,10 +92,20 @@ function transformHeaders(headers) {
91
92
  return obj;
92
93
  }
93
94
  const UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE = 'Custom payload format version not handled by this adapter. Please use either 1.0 or 2.0. More information here' + 'https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html';
95
+ function lambdaEventToHTTPBody(event) {
96
+ let body;
97
+ if (event.body && event.isBase64Encoded) {
98
+ body = Buffer.from(event.body, 'base64').toString('utf8');
99
+ } else {
100
+ body = event.body;
101
+ }
102
+ return body;
103
+ }
94
104
 
95
105
  exports.UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE = UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE;
96
106
  exports.getHTTPMethod = getHTTPMethod;
97
107
  exports.getPath = getPath;
98
108
  exports.isPayloadV1 = isPayloadV1;
99
109
  exports.isPayloadV2 = isPayloadV2;
110
+ exports.lambdaEventToHTTPBody = lambdaEventToHTTPBody;
100
111
  exports.transformHeaders = transformHeaders;
@@ -9,7 +9,8 @@ import '../../unstable-core-do-not-import/rootConfig.mjs';
9
9
  * import type { AnyTRPCRouter } from '@trpc/server'
10
10
  * import type { HTTPBaseHandlerOptions } from '@trpc/server/http'
11
11
  * ```
12
- */ // @trpc/server
12
+ */ // import @trpc/server
13
+ // @trpc/server
13
14
  function isPayloadV1(event) {
14
15
  return determinePayloadFormat(event) == '1.0';
15
16
  }
@@ -89,5 +90,14 @@ function transformHeaders(headers) {
89
90
  return obj;
90
91
  }
91
92
  const UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE = 'Custom payload format version not handled by this adapter. Please use either 1.0 or 2.0. More information here' + 'https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html';
93
+ function lambdaEventToHTTPBody(event) {
94
+ let body;
95
+ if (event.body && event.isBase64Encoded) {
96
+ body = Buffer.from(event.body, 'base64').toString('utf8');
97
+ } else {
98
+ body = event.body;
99
+ }
100
+ return body;
101
+ }
92
102
 
93
- export { UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE, getHTTPMethod, getPath, isPayloadV1, isPayloadV2, transformHeaders };
103
+ export { UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE, getHTTPMethod, getPath, isPayloadV1, isPayloadV2, lambdaEventToHTTPBody, transformHeaders };
@@ -0,0 +1,7 @@
1
+ /**
2
+ * A simple concurrent cache that ensures that only one promise is created for a given key.
3
+ */
4
+ export declare function createConcurrentCache(): {
5
+ concurrentSafeGet<TValue>(key: string, setter: () => TValue): TValue;
6
+ };
7
+ //# sourceMappingURL=concurrentCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concurrentCache.d.ts","sourceRoot":"","sources":["../../../src/adapters/content-handlers/concurrentCache.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,qBAAqB;mCAIF,MAAM,UAAU,MAAM,MAAM,GAAG,MAAM;EAQvE"}
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * A simple concurrent cache that ensures that only one promise is created for a given key.
5
+ */ function createConcurrentCache() {
6
+ const cache = new Map();
7
+ return {
8
+ concurrentSafeGet (key, setter) {
9
+ if (!cache.has(key)) {
10
+ cache.set(key, setter());
11
+ }
12
+ return cache.get(key);
13
+ }
14
+ };
15
+ }
16
+
17
+ exports.createConcurrentCache = createConcurrentCache;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * A simple concurrent cache that ensures that only one promise is created for a given key.
3
+ */ function createConcurrentCache() {
4
+ const cache = new Map();
5
+ return {
6
+ concurrentSafeGet (key, setter) {
7
+ if (!cache.has(key)) {
8
+ cache.set(key, setter());
9
+ }
10
+ return cache.get(key);
11
+ }
12
+ };
13
+ }
14
+
15
+ export { createConcurrentCache };
@@ -0,0 +1,10 @@
1
+ import { TRPCError } from '../../@trpc/server';
2
+ import type { BaseContentTypeHandler, HTTPHeaders } from '../../@trpc/server/http';
3
+ interface MinimalHandlerOpts {
4
+ req: {
5
+ headers: HTTPHeaders | Headers;
6
+ };
7
+ }
8
+ export declare function selectContentHandlerOrUnsupportedMediaType<THandlerOpts extends MinimalHandlerOpts, THandler extends BaseContentTypeHandler<THandlerOpts>>(handlers: THandler[], opts: THandlerOpts): readonly [undefined, TRPCError] | readonly [THandler];
9
+ export {};
10
+ //# sourceMappingURL=selectContentHandlerOrUnsupportedMediaType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectContentHandlerOrUnsupportedMediaType.d.ts","sourceRoot":"","sources":["../../../src/adapters/content-handlers/selectContentHandlerOrUnsupportedMediaType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACZ,MAAM,yBAAyB,CAAC;AAEjC,UAAU,kBAAkB;IAC1B,GAAG,EAAE;QAGH,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;KAChC,CAAC;CACH;AAED,wBAAgB,0CAA0C,CACxD,YAAY,SAAS,kBAAkB,EACvC,QAAQ,SAAS,sBAAsB,CAAC,YAAY,CAAC,EACrD,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,yDA2BzC"}
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ var TRPCError = require('../../unstable-core-do-not-import/error/TRPCError.js');
4
+ require('../../unstable-core-do-not-import/rootConfig.js');
5
+
6
+ function selectContentHandlerOrUnsupportedMediaType(handlers, opts) {
7
+ const headers = new Headers(opts.req.headers);
8
+ const contentType = headers.get('content-type');
9
+ if (contentType === null) {
10
+ return [
11
+ undefined,
12
+ new TRPCError.TRPCError({
13
+ code: 'UNSUPPORTED_MEDIA_TYPE',
14
+ message: 'No Content-Type header detected on the incoming request. This request may not be supported by your tRPC Adapter, or possibly by tRPC at all'
15
+ })
16
+ ];
17
+ }
18
+ const handler = handlers.find((handler)=>handler.isMatch(headers));
19
+ if (!handler) {
20
+ return [
21
+ undefined,
22
+ new TRPCError.TRPCError({
23
+ code: 'UNSUPPORTED_MEDIA_TYPE',
24
+ message: `Invalid Content-Type header '${contentType}'. This request may not be supported by your tRPC Adapter, or possibly by tRPC at all`
25
+ })
26
+ ];
27
+ }
28
+ return [
29
+ handler
30
+ ];
31
+ }
32
+
33
+ exports.selectContentHandlerOrUnsupportedMediaType = selectContentHandlerOrUnsupportedMediaType;
@@ -0,0 +1,31 @@
1
+ import { TRPCError } from '../../unstable-core-do-not-import/error/TRPCError.mjs';
2
+ import '../../unstable-core-do-not-import/rootConfig.mjs';
3
+
4
+ function selectContentHandlerOrUnsupportedMediaType(handlers, opts) {
5
+ const headers = new Headers(opts.req.headers);
6
+ const contentType = headers.get('content-type');
7
+ if (contentType === null) {
8
+ return [
9
+ undefined,
10
+ new TRPCError({
11
+ code: 'UNSUPPORTED_MEDIA_TYPE',
12
+ message: 'No Content-Type header detected on the incoming request. This request may not be supported by your tRPC Adapter, or possibly by tRPC at all'
13
+ })
14
+ ];
15
+ }
16
+ const handler = handlers.find((handler)=>handler.isMatch(headers));
17
+ if (!handler) {
18
+ return [
19
+ undefined,
20
+ new TRPCError({
21
+ code: 'UNSUPPORTED_MEDIA_TYPE',
22
+ message: `Invalid Content-Type header '${contentType}'. This request may not be supported by your tRPC Adapter, or possibly by tRPC at all`
23
+ })
24
+ ];
25
+ }
26
+ return [
27
+ handler
28
+ ];
29
+ }
30
+
31
+ export { selectContentHandlerOrUnsupportedMediaType };
@@ -1 +1 @@
1
- {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/adapters/express.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EACV,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,2BAA2B,GAAG,8BAA8B,CACtE,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,QAAQ,CACjB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,OAAO,SAAS,SAAS,EAC/D,IAAI,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GACvE,OAAO,CAAC,OAAO,CAgBjB"}
1
+ {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/adapters/express.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EACV,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,2BAA2B,GAAG,8BAA8B,CACtE,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,QAAQ,CACjB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,OAAO,SAAS,SAAS,EAC/D,IAAI,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GACvE,OAAO,CAAC,OAAO,CAWjB"}
@@ -6,7 +6,6 @@ function createExpressMiddleware(opts) {
6
6
  return async (req, res)=>{
7
7
  const endpoint = req.path.slice(1);
8
8
  await nodeHTTPRequestHandler.nodeHTTPRequestHandler({
9
- // FIXME: no typecasting should be needed here
10
9
  ...opts,
11
10
  req,
12
11
  res,
@@ -4,7 +4,6 @@ function createExpressMiddleware(opts) {
4
4
  return async (req, res)=>{
5
5
  const endpoint = req.path.slice(1);
6
6
  await nodeHTTPRequestHandler({
7
- // FIXME: no typecasting should be needed here
8
7
  ...opts,
9
8
  req,
10
9
  res,
@@ -0,0 +1,8 @@
1
+ import type { FastifyReply, FastifyRequest } from 'fastify';
2
+ import type { AnyRouter } from '../../../../@trpc/server';
3
+ import type { BaseContentTypeHandler } from '../../../../@trpc/server/http';
4
+ import type { FastifyRequestHandlerOptions } from '../../types';
5
+ export interface FastifyHTTPContentTypeHandler<TRouter extends AnyRouter, TRequest extends FastifyRequest, TResponse extends FastifyReply> extends BaseContentTypeHandler<FastifyRequestHandlerOptions<TRouter, TRequest, TResponse>> {
6
+ }
7
+ export declare const getFastifyHTTPJSONContentTypeHandler: <TRouter extends AnyRouter, TRequest extends FastifyRequest, TResponse extends FastifyReply>() => FastifyHTTPContentTypeHandler<TRouter, TRequest, TResponse>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/fastify/content-type/json/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE5D,OAAO,KAAK,EACV,SAAS,EAEV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAEhE,MAAM,WAAW,6BAA6B,CAC5C,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,cAAc,EAC/B,SAAS,SAAS,YAAY,CAC9B,SAAQ,sBAAsB,CAC5B,4BAA4B,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAC3D;CAAG;AAEN,eAAO,MAAM,oCAAoC,EAAE,CACjD,OAAO,SAAS,SAAS,EACzB,QAAQ,SAAS,cAAc,EAC/B,SAAS,SAAS,YAAY,OACzB,6BAA6B,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAkFhE,CAAC"}