create-croissant 0.1.7 → 0.1.9

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 (482) hide show
  1. package/package.json +1 -1
  2. package/template/apps/web/package.json +4 -0
  3. package/template/apps/web/src/components/login-form.tsx +95 -48
  4. package/template/apps/web/src/components/signup-form.tsx +149 -79
  5. package/template/apps/web/src/routes/__root.tsx +18 -11
  6. package/template/apps/web/src/routes/client-orpc-auth.tsx +8 -20
  7. package/template/apps/web/src/routes/client-orpc.tsx +269 -24
  8. package/template/apps/web/src/routes/isr.tsx +4 -0
  9. package/template/apps/web/src/routes/ssr-orpc.tsx +245 -18
  10. package/template/apps/web/vite.config.ts +5 -1
  11. package/template/package.json +3 -1
  12. package/template/packages/orpc/src/lib/router.ts +63 -0
  13. package/template/apps/web/node_modules/@better-auth/core/LICENSE.md +0 -20
  14. package/template/apps/web/node_modules/@better-auth/core/README.md +0 -17
  15. package/template/apps/web/node_modules/@better-auth/core/dist/api/index.d.mts +0 -278
  16. package/template/apps/web/node_modules/@better-auth/core/dist/api/index.mjs +0 -56
  17. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/index.d.mts +0 -6
  18. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/index.mjs +0 -20
  19. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/pure.index.d.mts +0 -6
  20. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/pure.index.mjs +0 -33
  21. package/template/apps/web/node_modules/@better-auth/core/dist/context/endpoint-context.d.mts +0 -18
  22. package/template/apps/web/node_modules/@better-auth/core/dist/context/endpoint-context.mjs +0 -29
  23. package/template/apps/web/node_modules/@better-auth/core/dist/context/global.d.mts +0 -6
  24. package/template/apps/web/node_modules/@better-auth/core/dist/context/global.mjs +0 -36
  25. package/template/apps/web/node_modules/@better-auth/core/dist/context/index.d.mts +0 -5
  26. package/template/apps/web/node_modules/@better-auth/core/dist/context/index.mjs +0 -5
  27. package/template/apps/web/node_modules/@better-auth/core/dist/context/request-state.d.mts +0 -27
  28. package/template/apps/web/node_modules/@better-auth/core/dist/context/request-state.mjs +0 -47
  29. package/template/apps/web/node_modules/@better-auth/core/dist/context/transaction.d.mts +0 -24
  30. package/template/apps/web/node_modules/@better-auth/core/dist/context/transaction.mjs +0 -93
  31. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/factory.d.mts +0 -17
  32. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/factory.mjs +0 -754
  33. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-field-name.d.mts +0 -18
  34. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-field-name.mjs +0 -36
  35. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-model-name.d.mts +0 -12
  36. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-model-name.mjs +0 -30
  37. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.d.mts +0 -26
  38. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.mjs +0 -37
  39. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-name.d.mts +0 -18
  40. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-name.mjs +0 -31
  41. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-id-field.d.mts +0 -36
  42. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-id-field.mjs +0 -64
  43. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-model-name.d.mts +0 -12
  44. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-model-name.mjs +0 -21
  45. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/index.d.mts +0 -525
  46. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/index.mjs +0 -24
  47. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/types.d.mts +0 -105
  48. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/utils.d.mts +0 -7
  49. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/utils.mjs +0 -37
  50. package/template/apps/web/node_modules/@better-auth/core/dist/db/get-tables.d.mts +0 -6
  51. package/template/apps/web/node_modules/@better-auth/core/dist/db/get-tables.mjs +0 -265
  52. package/template/apps/web/node_modules/@better-auth/core/dist/db/index.d.mts +0 -10
  53. package/template/apps/web/node_modules/@better-auth/core/dist/db/index.mjs +0 -8
  54. package/template/apps/web/node_modules/@better-auth/core/dist/db/plugin.d.mts +0 -12
  55. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/account.d.mts +0 -28
  56. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/account.mjs +0 -17
  57. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/rate-limit.d.mts +0 -18
  58. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/rate-limit.mjs +0 -9
  59. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/session.d.mts +0 -23
  60. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/session.mjs +0 -12
  61. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/shared.d.mts +0 -10
  62. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/shared.mjs +0 -9
  63. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/user.d.mts +0 -22
  64. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/user.mjs +0 -11
  65. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/verification.d.mts +0 -21
  66. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/verification.mjs +0 -10
  67. package/template/apps/web/node_modules/@better-auth/core/dist/db/type.d.mts +0 -167
  68. package/template/apps/web/node_modules/@better-auth/core/dist/env/color-depth.d.mts +0 -4
  69. package/template/apps/web/node_modules/@better-auth/core/dist/env/color-depth.mjs +0 -86
  70. package/template/apps/web/node_modules/@better-auth/core/dist/env/env-impl.d.mts +0 -32
  71. package/template/apps/web/node_modules/@better-auth/core/dist/env/env-impl.mjs +0 -81
  72. package/template/apps/web/node_modules/@better-auth/core/dist/env/index.d.mts +0 -4
  73. package/template/apps/web/node_modules/@better-auth/core/dist/env/index.mjs +0 -4
  74. package/template/apps/web/node_modules/@better-auth/core/dist/env/logger.d.mts +0 -48
  75. package/template/apps/web/node_modules/@better-auth/core/dist/env/logger.mjs +0 -79
  76. package/template/apps/web/node_modules/@better-auth/core/dist/error/codes.d.mts +0 -68
  77. package/template/apps/web/node_modules/@better-auth/core/dist/error/codes.mjs +0 -54
  78. package/template/apps/web/node_modules/@better-auth/core/dist/error/index.d.mts +0 -19
  79. package/template/apps/web/node_modules/@better-auth/core/dist/error/index.mjs +0 -27
  80. package/template/apps/web/node_modules/@better-auth/core/dist/index.d.mts +0 -9
  81. package/template/apps/web/node_modules/@better-auth/core/dist/index.mjs +0 -1
  82. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/api.mjs +0 -12
  83. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/attributes.d.mts +0 -11
  84. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/attributes.mjs +0 -10
  85. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/index.d.mts +0 -3
  86. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/index.mjs +0 -3
  87. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/noop.mjs +0 -42
  88. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/pure.index.d.mts +0 -7
  89. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/pure.index.mjs +0 -7
  90. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/tracer.d.mts +0 -13
  91. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/tracer.mjs +0 -53
  92. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/client-credentials-token.d.mts +0 -56
  93. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/client-credentials-token.mjs +0 -64
  94. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/create-authorization-url.d.mts +0 -44
  95. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/create-authorization-url.mjs +0 -41
  96. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/index.d.mts +0 -8
  97. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/index.mjs +0 -7
  98. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/oauth-provider.d.mts +0 -192
  99. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/refresh-access-token.d.mts +0 -54
  100. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/refresh-access-token.mjs +0 -73
  101. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/utils.d.mts +0 -16
  102. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/utils.mjs +0 -37
  103. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/validate-authorization-code.d.mts +0 -85
  104. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/validate-authorization-code.mjs +0 -79
  105. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/verify.d.mts +0 -42
  106. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/verify.mjs +0 -92
  107. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/apple.d.mts +0 -126
  108. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/apple.mjs +0 -107
  109. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/atlassian.d.mts +0 -70
  110. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/atlassian.mjs +0 -80
  111. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/cognito.d.mts +0 -85
  112. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/cognito.mjs +0 -162
  113. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/discord.d.mts +0 -124
  114. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/discord.mjs +0 -62
  115. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/dropbox.d.mts +0 -69
  116. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/dropbox.mjs +0 -72
  117. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/facebook.d.mts +0 -79
  118. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/facebook.mjs +0 -124
  119. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/figma.d.mts +0 -61
  120. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/figma.mjs +0 -83
  121. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/github.d.mts +0 -102
  122. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/github.mjs +0 -92
  123. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/gitlab.d.mts +0 -123
  124. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/gitlab.mjs +0 -79
  125. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/google.d.mts +0 -97
  126. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/google.mjs +0 -109
  127. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/huggingface.d.mts +0 -83
  128. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/huggingface.mjs +0 -73
  129. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/index.d.mts +0 -1834
  130. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/index.mjs +0 -78
  131. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kakao.d.mts +0 -161
  132. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kakao.mjs +0 -70
  133. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kick.d.mts +0 -73
  134. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kick.mjs +0 -68
  135. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/line.d.mts +0 -105
  136. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/line.mjs +0 -110
  137. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linear.d.mts +0 -68
  138. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linear.mjs +0 -85
  139. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linkedin.d.mts +0 -67
  140. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linkedin.mjs +0 -73
  141. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/microsoft-entra-id.d.mts +0 -174
  142. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/microsoft-entra-id.mjs +0 -140
  143. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/naver.d.mts +0 -92
  144. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/naver.mjs +0 -65
  145. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/notion.d.mts +0 -64
  146. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/notion.mjs +0 -72
  147. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paybin.d.mts +0 -71
  148. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paybin.mjs +0 -81
  149. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paypal.d.mts +0 -129
  150. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paypal.mjs +0 -140
  151. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/polar.d.mts +0 -74
  152. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/polar.mjs +0 -71
  153. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/railway.d.mts +0 -65
  154. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/railway.mjs +0 -74
  155. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/reddit.d.mts +0 -62
  156. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/reddit.mjs +0 -80
  157. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/roblox.d.mts +0 -70
  158. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/roblox.mjs +0 -57
  159. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/salesforce.d.mts +0 -79
  160. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/salesforce.mjs +0 -87
  161. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/slack.d.mts +0 -83
  162. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/slack.mjs +0 -66
  163. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/spotify.d.mts +0 -63
  164. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/spotify.mjs +0 -69
  165. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/tiktok.d.mts +0 -168
  166. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/tiktok.mjs +0 -60
  167. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitch.d.mts +0 -79
  168. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitch.mjs +0 -75
  169. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitter.d.mts +0 -126
  170. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitter.mjs +0 -85
  171. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vercel.d.mts +0 -62
  172. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vercel.mjs +0 -58
  173. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vk.d.mts +0 -70
  174. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vk.mjs +0 -81
  175. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/wechat.d.mts +0 -113
  176. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/wechat.mjs +0 -81
  177. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/zoom.d.mts +0 -163
  178. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/zoom.mjs +0 -69
  179. package/template/apps/web/node_modules/@better-auth/core/dist/types/context.d.mts +0 -277
  180. package/template/apps/web/node_modules/@better-auth/core/dist/types/cookie.d.mts +0 -15
  181. package/template/apps/web/node_modules/@better-auth/core/dist/types/helper.d.mts +0 -10
  182. package/template/apps/web/node_modules/@better-auth/core/dist/types/index.d.mts +0 -9
  183. package/template/apps/web/node_modules/@better-auth/core/dist/types/init-options.d.mts +0 -1358
  184. package/template/apps/web/node_modules/@better-auth/core/dist/types/plugin-client.d.mts +0 -113
  185. package/template/apps/web/node_modules/@better-auth/core/dist/types/plugin.d.mts +0 -124
  186. package/template/apps/web/node_modules/@better-auth/core/dist/types/secret.d.mts +0 -11
  187. package/template/apps/web/node_modules/@better-auth/core/dist/utils/async.d.mts +0 -22
  188. package/template/apps/web/node_modules/@better-auth/core/dist/utils/async.mjs +0 -32
  189. package/template/apps/web/node_modules/@better-auth/core/dist/utils/db.d.mts +0 -9
  190. package/template/apps/web/node_modules/@better-auth/core/dist/utils/db.mjs +0 -15
  191. package/template/apps/web/node_modules/@better-auth/core/dist/utils/deprecate.d.mts +0 -9
  192. package/template/apps/web/node_modules/@better-auth/core/dist/utils/deprecate.mjs +0 -16
  193. package/template/apps/web/node_modules/@better-auth/core/dist/utils/error-codes.d.mts +0 -13
  194. package/template/apps/web/node_modules/@better-auth/core/dist/utils/error-codes.mjs +0 -10
  195. package/template/apps/web/node_modules/@better-auth/core/dist/utils/fetch-metadata.d.mts +0 -4
  196. package/template/apps/web/node_modules/@better-auth/core/dist/utils/fetch-metadata.mjs +0 -6
  197. package/template/apps/web/node_modules/@better-auth/core/dist/utils/host.d.mts +0 -147
  198. package/template/apps/web/node_modules/@better-auth/core/dist/utils/host.mjs +0 -291
  199. package/template/apps/web/node_modules/@better-auth/core/dist/utils/id.d.mts +0 -4
  200. package/template/apps/web/node_modules/@better-auth/core/dist/utils/id.mjs +0 -7
  201. package/template/apps/web/node_modules/@better-auth/core/dist/utils/ip.d.mts +0 -54
  202. package/template/apps/web/node_modules/@better-auth/core/dist/utils/ip.mjs +0 -116
  203. package/template/apps/web/node_modules/@better-auth/core/dist/utils/is-api-error.d.mts +0 -6
  204. package/template/apps/web/node_modules/@better-auth/core/dist/utils/is-api-error.mjs +0 -8
  205. package/template/apps/web/node_modules/@better-auth/core/dist/utils/json.d.mts +0 -4
  206. package/template/apps/web/node_modules/@better-auth/core/dist/utils/json.mjs +0 -41
  207. package/template/apps/web/node_modules/@better-auth/core/dist/utils/string.d.mts +0 -4
  208. package/template/apps/web/node_modules/@better-auth/core/dist/utils/string.mjs +0 -6
  209. package/template/apps/web/node_modules/@better-auth/core/dist/utils/url.d.mts +0 -20
  210. package/template/apps/web/node_modules/@better-auth/core/dist/utils/url.mjs +0 -31
  211. package/template/apps/web/node_modules/@better-auth/core/package.json +0 -193
  212. package/template/apps/web/node_modules/@better-auth/core/src/api/index.ts +0 -140
  213. package/template/apps/web/node_modules/@better-auth/core/src/async_hooks/index.ts +0 -40
  214. package/template/apps/web/node_modules/@better-auth/core/src/async_hooks/pure.index.ts +0 -46
  215. package/template/apps/web/node_modules/@better-auth/core/src/context/endpoint-context.ts +0 -50
  216. package/template/apps/web/node_modules/@better-auth/core/src/context/global.ts +0 -57
  217. package/template/apps/web/node_modules/@better-auth/core/src/context/index.ts +0 -23
  218. package/template/apps/web/node_modules/@better-auth/core/src/context/request-state.ts +0 -91
  219. package/template/apps/web/node_modules/@better-auth/core/src/context/transaction.ts +0 -136
  220. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/factory.ts +0 -1440
  221. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-default-field-name.ts +0 -59
  222. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-default-model-name.ts +0 -51
  223. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-field-attributes.ts +0 -62
  224. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-field-name.ts +0 -43
  225. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-id-field.ts +0 -150
  226. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-model-name.ts +0 -36
  227. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/index.ts +0 -567
  228. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/types.ts +0 -132
  229. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/utils.ts +0 -61
  230. package/template/apps/web/node_modules/@better-auth/core/src/db/get-tables.ts +0 -296
  231. package/template/apps/web/node_modules/@better-auth/core/src/db/index.ts +0 -43
  232. package/template/apps/web/node_modules/@better-auth/core/src/db/plugin.ts +0 -11
  233. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/account.ts +0 -47
  234. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/rate-limit.ts +0 -36
  235. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/session.ts +0 -29
  236. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/shared.ts +0 -7
  237. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/user.ts +0 -28
  238. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/verification.ts +0 -28
  239. package/template/apps/web/node_modules/@better-auth/core/src/db/type.ts +0 -333
  240. package/template/apps/web/node_modules/@better-auth/core/src/env/color-depth.ts +0 -172
  241. package/template/apps/web/node_modules/@better-auth/core/src/env/env-impl.ts +0 -124
  242. package/template/apps/web/node_modules/@better-auth/core/src/env/index.ts +0 -23
  243. package/template/apps/web/node_modules/@better-auth/core/src/env/logger.ts +0 -145
  244. package/template/apps/web/node_modules/@better-auth/core/src/error/codes.ts +0 -71
  245. package/template/apps/web/node_modules/@better-auth/core/src/error/index.ts +0 -35
  246. package/template/apps/web/node_modules/@better-auth/core/src/index.ts +0 -1
  247. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/api.ts +0 -17
  248. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/attributes.ts +0 -22
  249. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/index.ts +0 -2
  250. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/noop.ts +0 -74
  251. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/pure.index.ts +0 -31
  252. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/tracer.ts +0 -95
  253. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/client-credentials-token.ts +0 -126
  254. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/create-authorization-url.ts +0 -89
  255. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/index.ts +0 -33
  256. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/oauth-provider.ts +0 -222
  257. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/refresh-access-token.ts +0 -157
  258. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/utils.ts +0 -51
  259. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/validate-authorization-code.ts +0 -180
  260. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/verify.ts +0 -221
  261. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/apple.ts +0 -231
  262. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/atlassian.ts +0 -133
  263. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/cognito.ts +0 -281
  264. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/discord.ts +0 -170
  265. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/dropbox.ts +0 -112
  266. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/facebook.ts +0 -215
  267. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/figma.ts +0 -118
  268. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/github.ts +0 -184
  269. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/gitlab.ts +0 -155
  270. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/google.ts +0 -204
  271. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/huggingface.ts +0 -119
  272. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/index.ts +0 -132
  273. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/kakao.ts +0 -179
  274. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/kick.ts +0 -109
  275. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/line.ts +0 -169
  276. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/linear.ts +0 -121
  277. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/linkedin.ts +0 -110
  278. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/microsoft-entra-id.ts +0 -352
  279. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/naver.ts +0 -113
  280. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/notion.ts +0 -108
  281. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/paybin.ts +0 -118
  282. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/paypal.ts +0 -263
  283. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/polar.ts +0 -111
  284. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/railway.ts +0 -100
  285. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/reddit.ts +0 -122
  286. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/roblox.ts +0 -112
  287. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/salesforce.ts +0 -159
  288. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/slack.ts +0 -112
  289. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/spotify.ts +0 -94
  290. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/tiktok.ts +0 -211
  291. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/twitch.ts +0 -112
  292. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/twitter.ts +0 -199
  293. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/vercel.ts +0 -87
  294. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/vk.ts +0 -125
  295. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/wechat.ts +0 -213
  296. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/zoom.ts +0 -230
  297. package/template/apps/web/node_modules/@better-auth/core/src/types/context.ts +0 -415
  298. package/template/apps/web/node_modules/@better-auth/core/src/types/cookie.ts +0 -10
  299. package/template/apps/web/node_modules/@better-auth/core/src/types/helper.ts +0 -27
  300. package/template/apps/web/node_modules/@better-auth/core/src/types/index.ts +0 -40
  301. package/template/apps/web/node_modules/@better-auth/core/src/types/init-options.ts +0 -1610
  302. package/template/apps/web/node_modules/@better-auth/core/src/types/plugin-client.ts +0 -129
  303. package/template/apps/web/node_modules/@better-auth/core/src/types/plugin.ts +0 -163
  304. package/template/apps/web/node_modules/@better-auth/core/src/types/secret.ts +0 -8
  305. package/template/apps/web/node_modules/@better-auth/core/src/utils/async.ts +0 -53
  306. package/template/apps/web/node_modules/@better-auth/core/src/utils/db.ts +0 -20
  307. package/template/apps/web/node_modules/@better-auth/core/src/utils/deprecate.ts +0 -21
  308. package/template/apps/web/node_modules/@better-auth/core/src/utils/error-codes.ts +0 -68
  309. package/template/apps/web/node_modules/@better-auth/core/src/utils/fetch-metadata.ts +0 -3
  310. package/template/apps/web/node_modules/@better-auth/core/src/utils/host.ts +0 -401
  311. package/template/apps/web/node_modules/@better-auth/core/src/utils/id.ts +0 -5
  312. package/template/apps/web/node_modules/@better-auth/core/src/utils/ip.ts +0 -211
  313. package/template/apps/web/node_modules/@better-auth/core/src/utils/is-api-error.ts +0 -10
  314. package/template/apps/web/node_modules/@better-auth/core/src/utils/json.ts +0 -56
  315. package/template/apps/web/node_modules/@better-auth/core/src/utils/string.ts +0 -3
  316. package/template/apps/web/node_modules/@better-auth/core/src/utils/url.ts +0 -43
  317. package/template/apps/web/node_modules/@better-auth/utils/README.md +0 -384
  318. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.cjs +0 -104
  319. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.d.cts +0 -44
  320. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.d.mts +0 -44
  321. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.d.ts +0 -44
  322. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.mjs +0 -101
  323. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.cjs +0 -80
  324. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.d.cts +0 -16
  325. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.d.mts +0 -16
  326. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.d.ts +0 -16
  327. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.mjs +0 -77
  328. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.cjs +0 -16
  329. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.d.cts +0 -8
  330. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.d.mts +0 -8
  331. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.d.ts +0 -8
  332. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.mjs +0 -14
  333. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.cjs +0 -90
  334. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.d.cts +0 -19
  335. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.d.mts +0 -19
  336. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.d.ts +0 -19
  337. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.mjs +0 -88
  338. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.cjs +0 -31
  339. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.d.cts +0 -7
  340. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.d.mts +0 -7
  341. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.d.ts +0 -7
  342. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.mjs +0 -29
  343. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.cjs +0 -40
  344. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.d.cts +0 -8
  345. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.d.mts +0 -8
  346. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.d.ts +0 -8
  347. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.mjs +0 -38
  348. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.cjs +0 -58
  349. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.d.cts +0 -9
  350. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.d.mts +0 -9
  351. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.d.ts +0 -9
  352. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.mjs +0 -56
  353. package/template/apps/web/node_modules/@better-auth/utils/dist/index.cjs +0 -10
  354. package/template/apps/web/node_modules/@better-auth/utils/dist/index.d.cts +0 -3
  355. package/template/apps/web/node_modules/@better-auth/utils/dist/index.d.mts +0 -3
  356. package/template/apps/web/node_modules/@better-auth/utils/dist/index.d.ts +0 -3
  357. package/template/apps/web/node_modules/@better-auth/utils/dist/index.mjs +0 -8
  358. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.cjs +0 -90
  359. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.d.cts +0 -13
  360. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.d.mts +0 -13
  361. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.d.ts +0 -13
  362. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.mjs +0 -88
  363. package/template/apps/web/node_modules/@better-auth/utils/dist/password.cjs +0 -36
  364. package/template/apps/web/node_modules/@better-auth/utils/dist/password.d.cts +0 -4
  365. package/template/apps/web/node_modules/@better-auth/utils/dist/password.d.mts +0 -4
  366. package/template/apps/web/node_modules/@better-auth/utils/dist/password.d.ts +0 -4
  367. package/template/apps/web/node_modules/@better-auth/utils/dist/password.mjs +0 -33
  368. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.cjs +0 -47
  369. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.d.cts +0 -4
  370. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.d.mts +0 -4
  371. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.d.ts +0 -4
  372. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.mjs +0 -44
  373. package/template/apps/web/node_modules/@better-auth/utils/dist/random.cjs +0 -55
  374. package/template/apps/web/node_modules/@better-auth/utils/dist/random.d.cts +0 -4
  375. package/template/apps/web/node_modules/@better-auth/utils/dist/random.d.mts +0 -4
  376. package/template/apps/web/node_modules/@better-auth/utils/dist/random.d.ts +0 -4
  377. package/template/apps/web/node_modules/@better-auth/utils/dist/random.mjs +0 -53
  378. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.cjs +0 -76
  379. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.d.cts +0 -16
  380. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.d.mts +0 -16
  381. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.d.ts +0 -16
  382. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.mjs +0 -74
  383. package/template/apps/web/node_modules/@better-auth/utils/dist/shared/utils.ecd028f7.d.cts +0 -22
  384. package/template/apps/web/node_modules/@better-auth/utils/dist/shared/utils.ecd028f7.d.mts +0 -22
  385. package/template/apps/web/node_modules/@better-auth/utils/dist/shared/utils.ecd028f7.d.ts +0 -22
  386. package/template/apps/web/node_modules/@better-auth/utils/package.json +0 -95
  387. package/template/apps/web/node_modules/better-call/LICENSE +0 -21
  388. package/template/apps/web/node_modules/better-call/dist/_virtual/_rolldown/runtime.cjs +0 -29
  389. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.cjs +0 -181
  390. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.cjs.map +0 -1
  391. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.d.cts +0 -16
  392. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.d.mts +0 -16
  393. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.mjs +0 -178
  394. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.mjs.map +0 -1
  395. package/template/apps/web/node_modules/better-call/dist/client.cjs +0 -23
  396. package/template/apps/web/node_modules/better-call/dist/client.cjs.map +0 -1
  397. package/template/apps/web/node_modules/better-call/dist/client.d.cts +0 -53
  398. package/template/apps/web/node_modules/better-call/dist/client.d.mts +0 -53
  399. package/template/apps/web/node_modules/better-call/dist/client.mjs +0 -14
  400. package/template/apps/web/node_modules/better-call/dist/client.mjs.map +0 -1
  401. package/template/apps/web/node_modules/better-call/dist/context.cjs +0 -103
  402. package/template/apps/web/node_modules/better-call/dist/context.cjs.map +0 -1
  403. package/template/apps/web/node_modules/better-call/dist/context.d.cts +0 -341
  404. package/template/apps/web/node_modules/better-call/dist/context.d.mts +0 -341
  405. package/template/apps/web/node_modules/better-call/dist/context.mjs +0 -103
  406. package/template/apps/web/node_modules/better-call/dist/context.mjs.map +0 -1
  407. package/template/apps/web/node_modules/better-call/dist/cookies.cjs +0 -87
  408. package/template/apps/web/node_modules/better-call/dist/cookies.cjs.map +0 -1
  409. package/template/apps/web/node_modules/better-call/dist/cookies.d.cts +0 -103
  410. package/template/apps/web/node_modules/better-call/dist/cookies.d.mts +0 -103
  411. package/template/apps/web/node_modules/better-call/dist/cookies.mjs +0 -84
  412. package/template/apps/web/node_modules/better-call/dist/cookies.mjs.map +0 -1
  413. package/template/apps/web/node_modules/better-call/dist/crypto.cjs +0 -39
  414. package/template/apps/web/node_modules/better-call/dist/crypto.cjs.map +0 -1
  415. package/template/apps/web/node_modules/better-call/dist/crypto.mjs +0 -36
  416. package/template/apps/web/node_modules/better-call/dist/crypto.mjs.map +0 -1
  417. package/template/apps/web/node_modules/better-call/dist/endpoint.cjs +0 -70
  418. package/template/apps/web/node_modules/better-call/dist/endpoint.cjs.map +0 -1
  419. package/template/apps/web/node_modules/better-call/dist/endpoint.d.cts +0 -475
  420. package/template/apps/web/node_modules/better-call/dist/endpoint.d.mts +0 -475
  421. package/template/apps/web/node_modules/better-call/dist/endpoint.mjs +0 -70
  422. package/template/apps/web/node_modules/better-call/dist/endpoint.mjs.map +0 -1
  423. package/template/apps/web/node_modules/better-call/dist/error.cjs +0 -141
  424. package/template/apps/web/node_modules/better-call/dist/error.cjs.map +0 -1
  425. package/template/apps/web/node_modules/better-call/dist/error.d.cts +0 -103
  426. package/template/apps/web/node_modules/better-call/dist/error.d.mts +0 -103
  427. package/template/apps/web/node_modules/better-call/dist/error.mjs +0 -133
  428. package/template/apps/web/node_modules/better-call/dist/error.mjs.map +0 -1
  429. package/template/apps/web/node_modules/better-call/dist/helper.d.cts +0 -12
  430. package/template/apps/web/node_modules/better-call/dist/helper.d.mts +0 -12
  431. package/template/apps/web/node_modules/better-call/dist/index.cjs +0 -28
  432. package/template/apps/web/node_modules/better-call/dist/index.d.cts +0 -11
  433. package/template/apps/web/node_modules/better-call/dist/index.d.mts +0 -11
  434. package/template/apps/web/node_modules/better-call/dist/index.mjs +0 -10
  435. package/template/apps/web/node_modules/better-call/dist/middleware.cjs +0 -52
  436. package/template/apps/web/node_modules/better-call/dist/middleware.cjs.map +0 -1
  437. package/template/apps/web/node_modules/better-call/dist/middleware.d.cts +0 -123
  438. package/template/apps/web/node_modules/better-call/dist/middleware.d.mts +0 -123
  439. package/template/apps/web/node_modules/better-call/dist/middleware.mjs +0 -52
  440. package/template/apps/web/node_modules/better-call/dist/middleware.mjs.map +0 -1
  441. package/template/apps/web/node_modules/better-call/dist/node.cjs +0 -18
  442. package/template/apps/web/node_modules/better-call/dist/node.cjs.map +0 -1
  443. package/template/apps/web/node_modules/better-call/dist/node.d.cts +0 -9
  444. package/template/apps/web/node_modules/better-call/dist/node.d.mts +0 -9
  445. package/template/apps/web/node_modules/better-call/dist/node.mjs +0 -15
  446. package/template/apps/web/node_modules/better-call/dist/node.mjs.map +0 -1
  447. package/template/apps/web/node_modules/better-call/dist/openapi.cjs +0 -191
  448. package/template/apps/web/node_modules/better-call/dist/openapi.cjs.map +0 -1
  449. package/template/apps/web/node_modules/better-call/dist/openapi.d.cts +0 -113
  450. package/template/apps/web/node_modules/better-call/dist/openapi.d.mts +0 -113
  451. package/template/apps/web/node_modules/better-call/dist/openapi.mjs +0 -189
  452. package/template/apps/web/node_modules/better-call/dist/openapi.mjs.map +0 -1
  453. package/template/apps/web/node_modules/better-call/dist/router.cjs +0 -118
  454. package/template/apps/web/node_modules/better-call/dist/router.cjs.map +0 -1
  455. package/template/apps/web/node_modules/better-call/dist/router.d.cts +0 -103
  456. package/template/apps/web/node_modules/better-call/dist/router.d.mts +0 -103
  457. package/template/apps/web/node_modules/better-call/dist/router.mjs +0 -117
  458. package/template/apps/web/node_modules/better-call/dist/router.mjs.map +0 -1
  459. package/template/apps/web/node_modules/better-call/dist/standard-schema.d.cts +0 -59
  460. package/template/apps/web/node_modules/better-call/dist/standard-schema.d.mts +0 -59
  461. package/template/apps/web/node_modules/better-call/dist/to-response.cjs +0 -153
  462. package/template/apps/web/node_modules/better-call/dist/to-response.cjs.map +0 -1
  463. package/template/apps/web/node_modules/better-call/dist/to-response.d.cts +0 -12
  464. package/template/apps/web/node_modules/better-call/dist/to-response.d.mts +0 -12
  465. package/template/apps/web/node_modules/better-call/dist/to-response.mjs +0 -153
  466. package/template/apps/web/node_modules/better-call/dist/to-response.mjs.map +0 -1
  467. package/template/apps/web/node_modules/better-call/dist/utils.cjs +0 -86
  468. package/template/apps/web/node_modules/better-call/dist/utils.cjs.map +0 -1
  469. package/template/apps/web/node_modules/better-call/dist/utils.mjs +0 -82
  470. package/template/apps/web/node_modules/better-call/dist/utils.mjs.map +0 -1
  471. package/template/apps/web/node_modules/better-call/dist/validator.cjs +0 -58
  472. package/template/apps/web/node_modules/better-call/dist/validator.cjs.map +0 -1
  473. package/template/apps/web/node_modules/better-call/dist/validator.mjs +0 -57
  474. package/template/apps/web/node_modules/better-call/dist/validator.mjs.map +0 -1
  475. package/template/apps/web/node_modules/better-call/package.json +0 -96
  476. package/template/apps/web/node_modules/set-cookie-parser/LICENSE +0 -21
  477. package/template/apps/web/node_modules/set-cookie-parser/README.md +0 -169
  478. package/template/apps/web/node_modules/set-cookie-parser/dist/.eslintrc.cjs +0 -16
  479. package/template/apps/web/node_modules/set-cookie-parser/dist/set-cookie.cjs +0 -260
  480. package/template/apps/web/node_modules/set-cookie-parser/lib/set-cookie.d.ts +0 -119
  481. package/template/apps/web/node_modules/set-cookie-parser/lib/set-cookie.js +0 -265
  482. package/template/apps/web/node_modules/set-cookie-parser/package.json +0 -61
@@ -1,181 +0,0 @@
1
- const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
2
- let set_cookie_parser = require("set-cookie-parser");
3
- set_cookie_parser = require_runtime.__toESM(set_cookie_parser);
4
-
5
- //#region src/adapters/node/request.ts
6
- const getFirstHeaderValue = (header) => {
7
- if (Array.isArray(header)) return header[0];
8
- return header;
9
- };
10
- const hasFormUrlEncodedContentType = (headers) => {
11
- const contentType = getFirstHeaderValue(headers["content-type"]);
12
- if (!contentType) return false;
13
- return contentType.toLowerCase().startsWith("application/x-www-form-urlencoded");
14
- };
15
- const isPlainObject = (value) => {
16
- if (typeof value !== "object" || value === null) return false;
17
- const prototype = Object.getPrototypeOf(value);
18
- return prototype === Object.prototype || prototype === null;
19
- };
20
- const appendFormValue = (params, key, value) => {
21
- if (value === void 0) return;
22
- if (Array.isArray(value)) {
23
- for (const item of value) appendFormValue(params, key, item);
24
- return;
25
- }
26
- if (value === null) {
27
- params.append(key, "");
28
- return;
29
- }
30
- if (isPlainObject(value)) {
31
- params.append(key, JSON.stringify(value));
32
- return;
33
- }
34
- params.append(key, `${value}`);
35
- };
36
- const toFormUrlEncodedBody = (body) => {
37
- const params = new URLSearchParams();
38
- for (const [key, value] of Object.entries(body)) appendFormValue(params, key, value);
39
- return params.toString();
40
- };
41
- const canReadRawBody = (request) => {
42
- return !request.destroyed && request.readableEnded !== true && request.readable;
43
- };
44
- const serializeParsedBody = (parsedBody, isFormUrlEncoded) => {
45
- if (typeof parsedBody === "string") return parsedBody;
46
- if (parsedBody instanceof URLSearchParams) return parsedBody.toString();
47
- if (isFormUrlEncoded && isPlainObject(parsedBody)) return toFormUrlEncodedBody(parsedBody);
48
- return JSON.stringify(parsedBody);
49
- };
50
- function get_raw_body(req, body_size_limit) {
51
- const h = req.headers;
52
- if (!h["content-type"]) return null;
53
- const content_length = Number(h["content-length"]);
54
- if (req.httpVersionMajor === 1 && isNaN(content_length) && h["transfer-encoding"] == null || content_length === 0) return null;
55
- let length = content_length;
56
- if (body_size_limit) {
57
- if (!length) length = body_size_limit;
58
- else if (length > body_size_limit) throw Error(`Received content-length of ${length}, but only accept up to ${body_size_limit} bytes.`);
59
- }
60
- if (req.destroyed) {
61
- const readable = new ReadableStream();
62
- readable.cancel();
63
- return readable;
64
- }
65
- let size = 0;
66
- let cancelled = false;
67
- return new ReadableStream({
68
- start(controller) {
69
- req.on("error", (error) => {
70
- cancelled = true;
71
- controller.error(error);
72
- });
73
- req.on("end", () => {
74
- if (cancelled) return;
75
- controller.close();
76
- });
77
- req.on("data", (chunk) => {
78
- if (cancelled) return;
79
- size += chunk.length;
80
- if (size > length) {
81
- cancelled = true;
82
- controller.error(/* @__PURE__ */ new Error(`request body size exceeded ${content_length ? "'content-length'" : "BODY_SIZE_LIMIT"} of ${length}`));
83
- return;
84
- }
85
- controller.enqueue(chunk);
86
- if (controller.desiredSize === null || controller.desiredSize <= 0) req.pause();
87
- });
88
- },
89
- pull() {
90
- req.resume();
91
- },
92
- cancel(reason) {
93
- cancelled = true;
94
- req.destroy(reason);
95
- }
96
- });
97
- }
98
- function constructRelativeUrl(req) {
99
- const baseUrl = req.baseUrl;
100
- const originalUrl = req.originalUrl;
101
- if (!baseUrl || !originalUrl) return baseUrl ? baseUrl + req.url : req.url;
102
- if (baseUrl + req.url === originalUrl) return baseUrl + req.url;
103
- return originalUrl.split("?")[0].at(-1) === "/" ? baseUrl + req.url : baseUrl;
104
- }
105
- function getRequest({ request, base, bodySizeLimit }) {
106
- const maybeConsumedReq = request;
107
- const isFormUrlEncoded = hasFormUrlEncodedContentType(request.headers);
108
- let body = void 0;
109
- const method = request.method;
110
- if (method !== "GET" && method !== "HEAD") {
111
- if (canReadRawBody(request)) body = get_raw_body(request, bodySizeLimit);
112
- else if (maybeConsumedReq.body !== void 0) {
113
- const parsedBody = maybeConsumedReq.body;
114
- const bodyContent = serializeParsedBody(parsedBody, isFormUrlEncoded);
115
- body = new ReadableStream({ start(controller) {
116
- controller.enqueue(new TextEncoder().encode(bodyContent));
117
- controller.close();
118
- } });
119
- }
120
- }
121
- return new Request(base + constructRelativeUrl(request), {
122
- duplex: "half",
123
- method: request.method,
124
- body,
125
- headers: request.headers
126
- });
127
- }
128
- async function setResponse(res, response) {
129
- for (const [key, value] of response.headers) try {
130
- res.setHeader(key, key === "set-cookie" ? set_cookie_parser.splitCookiesString(response.headers.get(key)) : value);
131
- } catch (error) {
132
- res.getHeaderNames().forEach((name) => res.removeHeader(name));
133
- res.writeHead(500).end(String(error));
134
- return;
135
- }
136
- res.statusCode = response.status;
137
- res.writeHead(response.status);
138
- if (!response.body) {
139
- res.end();
140
- return;
141
- }
142
- if (response.body.locked) {
143
- res.end("Fatal error: Response body is locked. This can happen when the response was already read (for example through 'response.json()' or 'response.text()').");
144
- return;
145
- }
146
- const reader = response.body.getReader();
147
- if (res.destroyed) {
148
- reader.cancel();
149
- return;
150
- }
151
- const cancel = (error) => {
152
- res.off("close", cancel);
153
- res.off("error", cancel);
154
- reader.cancel(error).catch(() => {});
155
- if (error) res.destroy(error);
156
- };
157
- res.on("close", cancel);
158
- res.on("error", cancel);
159
- next();
160
- async function next() {
161
- try {
162
- for (;;) {
163
- const { done, value } = await reader.read();
164
- if (done) break;
165
- if (!res.write(value)) if (process.env.AWS_LAMBDA_FUNCTION_NAME || process.env.LAMBDA_TASK_ROOT) continue;
166
- else {
167
- res.once("drain", next);
168
- return;
169
- }
170
- res.end();
171
- }
172
- } catch (error) {
173
- cancel(error instanceof Error ? error : new Error(String(error)));
174
- }
175
- }
176
- }
177
-
178
- //#endregion
179
- exports.getRequest = getRequest;
180
- exports.setResponse = setResponse;
181
- //# sourceMappingURL=request.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request.cjs","names":[],"sources":["../../../src/adapters/node/request.ts"],"sourcesContent":["import type {\n\tIncomingHttpHeaders,\n\tIncomingMessage,\n\tServerResponse,\n} from \"node:http\";\nimport * as set_cookie_parser from \"set-cookie-parser\";\n\ntype NodeRequestWithBody = IncomingMessage & {\n\tbody?: unknown;\n};\n\nconst getFirstHeaderValue = (\n\theader: IncomingHttpHeaders[string],\n): string | undefined => {\n\tif (Array.isArray(header)) {\n\t\treturn header[0];\n\t}\n\treturn header;\n};\n\nconst hasFormUrlEncodedContentType = (\n\theaders: IncomingHttpHeaders,\n): boolean => {\n\tconst contentType = getFirstHeaderValue(headers[\"content-type\"]);\n\tif (!contentType) {\n\t\treturn false;\n\t}\n\treturn contentType\n\t\t.toLowerCase()\n\t\t.startsWith(\"application/x-www-form-urlencoded\");\n};\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n\tif (typeof value !== \"object\" || value === null) {\n\t\treturn false;\n\t}\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === Object.prototype || prototype === null;\n};\n\nconst appendFormValue = (\n\tparams: URLSearchParams,\n\tkey: string,\n\tvalue: unknown,\n) => {\n\tif (value === undefined) {\n\t\treturn;\n\t}\n\tif (Array.isArray(value)) {\n\t\tfor (const item of value) {\n\t\t\tappendFormValue(params, key, item);\n\t\t}\n\t\treturn;\n\t}\n\tif (value === null) {\n\t\tparams.append(key, \"\");\n\t\treturn;\n\t}\n\tif (isPlainObject(value)) {\n\t\tparams.append(key, JSON.stringify(value));\n\t\treturn;\n\t}\n\tparams.append(key, `${value}`);\n};\n\nconst toFormUrlEncodedBody = (\n\tbody: Readonly<Record<string, unknown>>,\n): string => {\n\tconst params = new URLSearchParams();\n\tfor (const [key, value] of Object.entries(body)) {\n\t\tappendFormValue(params, key, value);\n\t}\n\treturn params.toString();\n};\n\nconst canReadRawBody = (request: IncomingMessage): boolean => {\n\treturn (\n\t\t!request.destroyed && request.readableEnded !== true && request.readable\n\t);\n};\n\nconst serializeParsedBody = (\n\tparsedBody: unknown,\n\tisFormUrlEncoded: boolean,\n): string => {\n\tif (typeof parsedBody === \"string\") {\n\t\treturn parsedBody;\n\t}\n\tif (parsedBody instanceof URLSearchParams) {\n\t\treturn parsedBody.toString();\n\t}\n\tif (isFormUrlEncoded && isPlainObject(parsedBody)) {\n\t\treturn toFormUrlEncodedBody(parsedBody);\n\t}\n\treturn JSON.stringify(parsedBody);\n};\n\nfunction get_raw_body(req: IncomingMessage, body_size_limit?: number) {\n\tconst h = req.headers;\n\n\tif (!h[\"content-type\"]) return null;\n\n\tconst content_length = Number(h[\"content-length\"]);\n\n\t// check if no request body\n\tif (\n\t\t(req.httpVersionMajor === 1 &&\n\t\t\tisNaN(content_length) &&\n\t\t\th[\"transfer-encoding\"] == null) ||\n\t\tcontent_length === 0\n\t) {\n\t\treturn null;\n\t}\n\n\tlet length = content_length;\n\n\tif (body_size_limit) {\n\t\tif (!length) {\n\t\t\tlength = body_size_limit;\n\t\t} else if (length > body_size_limit) {\n\t\t\tthrow Error(\n\t\t\t\t`Received content-length of ${length}, but only accept up to ${body_size_limit} bytes.`,\n\t\t\t);\n\t\t}\n\t}\n\n\tif (req.destroyed) {\n\t\tconst readable = new ReadableStream();\n\t\treadable.cancel();\n\t\treturn readable;\n\t}\n\n\tlet size = 0;\n\tlet cancelled = false;\n\n\treturn new ReadableStream({\n\t\tstart(controller) {\n\t\t\treq.on(\"error\", (error) => {\n\t\t\t\tcancelled = true;\n\t\t\t\tcontroller.error(error);\n\t\t\t});\n\n\t\t\treq.on(\"end\", () => {\n\t\t\t\tif (cancelled) return;\n\t\t\t\tcontroller.close();\n\t\t\t});\n\n\t\t\treq.on(\"data\", (chunk) => {\n\t\t\t\tif (cancelled) return;\n\n\t\t\t\tsize += chunk.length;\n\n\t\t\t\tif (size > length) {\n\t\t\t\t\tcancelled = true;\n\n\t\t\t\t\tcontroller.error(\n\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t`request body size exceeded ${\n\t\t\t\t\t\t\t\tcontent_length ? \"'content-length'\" : \"BODY_SIZE_LIMIT\"\n\t\t\t\t\t\t\t} of ${length}`,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tcontroller.enqueue(chunk);\n\n\t\t\t\tif (controller.desiredSize === null || controller.desiredSize <= 0) {\n\t\t\t\t\treq.pause();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tpull() {\n\t\t\treq.resume();\n\t\t},\n\n\t\tcancel(reason) {\n\t\t\tcancelled = true;\n\t\t\treq.destroy(reason);\n\t\t},\n\t});\n}\n\nfunction constructRelativeUrl(\n\treq: IncomingMessage & { baseUrl?: string; originalUrl?: string },\n) {\n\tconst baseUrl = req.baseUrl;\n\tconst originalUrl = req.originalUrl;\n\n\tif (!baseUrl || !originalUrl) {\n\t\t// In express.js sub-routers `req.url` is relative to the mount\n\t\t// path (e.g., '/auth/xxx'), and `req.baseUrl` will hold the mount\n\t\t// path (e.g., '/api'). Build the full path as baseUrl + url when\n\t\t// available to preserve the full route. For application level routes\n\t\t// baseUrl will be an empty string\n\t\treturn baseUrl ? baseUrl + req.url : req.url;\n\t}\n\n\tif (baseUrl + req.url === originalUrl) {\n\t\treturn baseUrl + req.url;\n\t}\n\n\t// For certain subroutes or when mounting wildcard middlewares in express\n\t// it is possible `baseUrl + req.url` will result in a url constructed\n\t// which has a trailing forward slash the original url did not have.\n\t// Checking the `req.originalUrl` path ending can prevent this issue.\n\n\tconst originalPathEnding = originalUrl.split(\"?\")[0]!.at(-1);\n\treturn originalPathEnding === \"/\" ? baseUrl + req.url : baseUrl;\n}\n\nexport function getRequest({\n\trequest,\n\tbase,\n\tbodySizeLimit,\n}: {\n\tbase: string;\n\tbodySizeLimit?: number;\n\trequest: IncomingMessage;\n}) {\n\t// Check if body has already been parsed by Express middleware\n\tconst maybeConsumedReq = request as NodeRequestWithBody;\n\tconst isFormUrlEncoded = hasFormUrlEncodedContentType(request.headers);\n\tlet body = undefined;\n\n\tconst method = request.method;\n\t// Request with GET/HEAD method cannot have body.\n\tif (method !== \"GET\" && method !== \"HEAD\") {\n\t\t// Raw-first strategy: prefer consuming the original request stream whenever it is still readable.\n\t\tif (canReadRawBody(request)) {\n\t\t\tbody = get_raw_body(request, bodySizeLimit);\n\t\t} else if (maybeConsumedReq.body !== undefined) {\n\t\t\tconst parsedBody = maybeConsumedReq.body;\n\n\t\t\tconst bodyContent = serializeParsedBody(parsedBody, isFormUrlEncoded);\n\t\t\tbody = new ReadableStream({\n\t\t\t\tstart(controller) {\n\t\t\t\t\tcontroller.enqueue(new TextEncoder().encode(bodyContent));\n\t\t\t\t\tcontroller.close();\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\treturn new Request(base + constructRelativeUrl(request), {\n\t\t// @ts-expect-error\n\t\tduplex: \"half\",\n\t\tmethod: request.method,\n\t\tbody,\n\t\theaders: request.headers as Record<string, string>,\n\t});\n}\n\nexport async function setResponse(res: ServerResponse, response: Response) {\n\tfor (const [key, value] of response.headers as any) {\n\t\ttry {\n\t\t\tres.setHeader(\n\t\t\t\tkey,\n\t\t\t\tkey === \"set-cookie\"\n\t\t\t\t\t? set_cookie_parser.splitCookiesString(\n\t\t\t\t\t\t\tresponse.headers.get(key) as string,\n\t\t\t\t\t\t)\n\t\t\t\t\t: value,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tres.getHeaderNames().forEach((name) => res.removeHeader(name));\n\t\t\tres.writeHead(500).end(String(error));\n\t\t\treturn;\n\t\t}\n\t}\n\n\tres.statusCode = response.status;\n\tres.writeHead(response.status);\n\n\tif (!response.body) {\n\t\tres.end();\n\t\treturn;\n\t}\n\n\tif (response.body.locked) {\n\t\tres.end(\n\t\t\t\"Fatal error: Response body is locked. \" +\n\t\t\t\t\"This can happen when the response was already read (for example through 'response.json()' or 'response.text()').\",\n\t\t);\n\t\treturn;\n\t}\n\n\tconst reader = response.body.getReader();\n\n\tif (res.destroyed) {\n\t\treader.cancel();\n\t\treturn;\n\t}\n\n\tconst cancel = (error?: Error) => {\n\t\tres.off(\"close\", cancel);\n\t\tres.off(\"error\", cancel);\n\n\t\t// If the reader has already been interrupted with an error earlier,\n\t\t// then it will appear here, it is useless, but it needs to be catch.\n\t\treader.cancel(error).catch(() => {});\n\t\tif (error) res.destroy(error);\n\t};\n\n\tres.on(\"close\", cancel);\n\tres.on(\"error\", cancel);\n\n\tnext();\n\tasync function next() {\n\t\ttry {\n\t\t\tfor (;;) {\n\t\t\t\tconst { done, value } = await reader.read();\n\n\t\t\t\tif (done) break;\n\n\t\t\t\tconst writeResult = res.write(value);\n\t\t\t\tif (!writeResult) {\n\t\t\t\t\t// In AWS Lambda/serverless environments, drain events may not work properly\n\t\t\t\t\t// Check if we're in a Lambda-like environment and handle differently\n\t\t\t\t\tif (\n\t\t\t\t\t\tprocess.env.AWS_LAMBDA_FUNCTION_NAME ||\n\t\t\t\t\t\tprocess.env.LAMBDA_TASK_ROOT\n\t\t\t\t\t) {\n\t\t\t\t\t\t// In Lambda, continue without waiting for drain\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Standard Node.js behavior\n\t\t\t\t\t\tres.once(\"drain\", next);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tres.end();\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tcancel(error instanceof Error ? error : new Error(String(error)));\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { IncomingMessage, ServerResponse } from "node:http";
2
-
3
- //#region src/adapters/node/request.d.ts
4
- declare function getRequest({
5
- request,
6
- base,
7
- bodySizeLimit
8
- }: {
9
- base: string;
10
- bodySizeLimit?: number;
11
- request: IncomingMessage;
12
- }): Request;
13
- declare function setResponse(res: ServerResponse, response: Response): Promise<void>;
14
- //#endregion
15
- export { getRequest, setResponse };
16
- //# sourceMappingURL=request.d.cts.map
@@ -1,16 +0,0 @@
1
- import { IncomingMessage, ServerResponse } from "node:http";
2
-
3
- //#region src/adapters/node/request.d.ts
4
- declare function getRequest({
5
- request,
6
- base,
7
- bodySizeLimit
8
- }: {
9
- base: string;
10
- bodySizeLimit?: number;
11
- request: IncomingMessage;
12
- }): Request;
13
- declare function setResponse(res: ServerResponse, response: Response): Promise<void>;
14
- //#endregion
15
- export { getRequest, setResponse };
16
- //# sourceMappingURL=request.d.mts.map
@@ -1,178 +0,0 @@
1
- import * as set_cookie_parser from "set-cookie-parser";
2
-
3
- //#region src/adapters/node/request.ts
4
- const getFirstHeaderValue = (header) => {
5
- if (Array.isArray(header)) return header[0];
6
- return header;
7
- };
8
- const hasFormUrlEncodedContentType = (headers) => {
9
- const contentType = getFirstHeaderValue(headers["content-type"]);
10
- if (!contentType) return false;
11
- return contentType.toLowerCase().startsWith("application/x-www-form-urlencoded");
12
- };
13
- const isPlainObject = (value) => {
14
- if (typeof value !== "object" || value === null) return false;
15
- const prototype = Object.getPrototypeOf(value);
16
- return prototype === Object.prototype || prototype === null;
17
- };
18
- const appendFormValue = (params, key, value) => {
19
- if (value === void 0) return;
20
- if (Array.isArray(value)) {
21
- for (const item of value) appendFormValue(params, key, item);
22
- return;
23
- }
24
- if (value === null) {
25
- params.append(key, "");
26
- return;
27
- }
28
- if (isPlainObject(value)) {
29
- params.append(key, JSON.stringify(value));
30
- return;
31
- }
32
- params.append(key, `${value}`);
33
- };
34
- const toFormUrlEncodedBody = (body) => {
35
- const params = new URLSearchParams();
36
- for (const [key, value] of Object.entries(body)) appendFormValue(params, key, value);
37
- return params.toString();
38
- };
39
- const canReadRawBody = (request) => {
40
- return !request.destroyed && request.readableEnded !== true && request.readable;
41
- };
42
- const serializeParsedBody = (parsedBody, isFormUrlEncoded) => {
43
- if (typeof parsedBody === "string") return parsedBody;
44
- if (parsedBody instanceof URLSearchParams) return parsedBody.toString();
45
- if (isFormUrlEncoded && isPlainObject(parsedBody)) return toFormUrlEncodedBody(parsedBody);
46
- return JSON.stringify(parsedBody);
47
- };
48
- function get_raw_body(req, body_size_limit) {
49
- const h = req.headers;
50
- if (!h["content-type"]) return null;
51
- const content_length = Number(h["content-length"]);
52
- if (req.httpVersionMajor === 1 && isNaN(content_length) && h["transfer-encoding"] == null || content_length === 0) return null;
53
- let length = content_length;
54
- if (body_size_limit) {
55
- if (!length) length = body_size_limit;
56
- else if (length > body_size_limit) throw Error(`Received content-length of ${length}, but only accept up to ${body_size_limit} bytes.`);
57
- }
58
- if (req.destroyed) {
59
- const readable = new ReadableStream();
60
- readable.cancel();
61
- return readable;
62
- }
63
- let size = 0;
64
- let cancelled = false;
65
- return new ReadableStream({
66
- start(controller) {
67
- req.on("error", (error) => {
68
- cancelled = true;
69
- controller.error(error);
70
- });
71
- req.on("end", () => {
72
- if (cancelled) return;
73
- controller.close();
74
- });
75
- req.on("data", (chunk) => {
76
- if (cancelled) return;
77
- size += chunk.length;
78
- if (size > length) {
79
- cancelled = true;
80
- controller.error(/* @__PURE__ */ new Error(`request body size exceeded ${content_length ? "'content-length'" : "BODY_SIZE_LIMIT"} of ${length}`));
81
- return;
82
- }
83
- controller.enqueue(chunk);
84
- if (controller.desiredSize === null || controller.desiredSize <= 0) req.pause();
85
- });
86
- },
87
- pull() {
88
- req.resume();
89
- },
90
- cancel(reason) {
91
- cancelled = true;
92
- req.destroy(reason);
93
- }
94
- });
95
- }
96
- function constructRelativeUrl(req) {
97
- const baseUrl = req.baseUrl;
98
- const originalUrl = req.originalUrl;
99
- if (!baseUrl || !originalUrl) return baseUrl ? baseUrl + req.url : req.url;
100
- if (baseUrl + req.url === originalUrl) return baseUrl + req.url;
101
- return originalUrl.split("?")[0].at(-1) === "/" ? baseUrl + req.url : baseUrl;
102
- }
103
- function getRequest({ request, base, bodySizeLimit }) {
104
- const maybeConsumedReq = request;
105
- const isFormUrlEncoded = hasFormUrlEncodedContentType(request.headers);
106
- let body = void 0;
107
- const method = request.method;
108
- if (method !== "GET" && method !== "HEAD") {
109
- if (canReadRawBody(request)) body = get_raw_body(request, bodySizeLimit);
110
- else if (maybeConsumedReq.body !== void 0) {
111
- const parsedBody = maybeConsumedReq.body;
112
- const bodyContent = serializeParsedBody(parsedBody, isFormUrlEncoded);
113
- body = new ReadableStream({ start(controller) {
114
- controller.enqueue(new TextEncoder().encode(bodyContent));
115
- controller.close();
116
- } });
117
- }
118
- }
119
- return new Request(base + constructRelativeUrl(request), {
120
- duplex: "half",
121
- method: request.method,
122
- body,
123
- headers: request.headers
124
- });
125
- }
126
- async function setResponse(res, response) {
127
- for (const [key, value] of response.headers) try {
128
- res.setHeader(key, key === "set-cookie" ? set_cookie_parser.splitCookiesString(response.headers.get(key)) : value);
129
- } catch (error) {
130
- res.getHeaderNames().forEach((name) => res.removeHeader(name));
131
- res.writeHead(500).end(String(error));
132
- return;
133
- }
134
- res.statusCode = response.status;
135
- res.writeHead(response.status);
136
- if (!response.body) {
137
- res.end();
138
- return;
139
- }
140
- if (response.body.locked) {
141
- res.end("Fatal error: Response body is locked. This can happen when the response was already read (for example through 'response.json()' or 'response.text()').");
142
- return;
143
- }
144
- const reader = response.body.getReader();
145
- if (res.destroyed) {
146
- reader.cancel();
147
- return;
148
- }
149
- const cancel = (error) => {
150
- res.off("close", cancel);
151
- res.off("error", cancel);
152
- reader.cancel(error).catch(() => {});
153
- if (error) res.destroy(error);
154
- };
155
- res.on("close", cancel);
156
- res.on("error", cancel);
157
- next();
158
- async function next() {
159
- try {
160
- for (;;) {
161
- const { done, value } = await reader.read();
162
- if (done) break;
163
- if (!res.write(value)) if (process.env.AWS_LAMBDA_FUNCTION_NAME || process.env.LAMBDA_TASK_ROOT) continue;
164
- else {
165
- res.once("drain", next);
166
- return;
167
- }
168
- res.end();
169
- }
170
- } catch (error) {
171
- cancel(error instanceof Error ? error : new Error(String(error)));
172
- }
173
- }
174
- }
175
-
176
- //#endregion
177
- export { getRequest, setResponse };
178
- //# sourceMappingURL=request.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"request.mjs","names":[],"sources":["../../../src/adapters/node/request.ts"],"sourcesContent":["import type {\n\tIncomingHttpHeaders,\n\tIncomingMessage,\n\tServerResponse,\n} from \"node:http\";\nimport * as set_cookie_parser from \"set-cookie-parser\";\n\ntype NodeRequestWithBody = IncomingMessage & {\n\tbody?: unknown;\n};\n\nconst getFirstHeaderValue = (\n\theader: IncomingHttpHeaders[string],\n): string | undefined => {\n\tif (Array.isArray(header)) {\n\t\treturn header[0];\n\t}\n\treturn header;\n};\n\nconst hasFormUrlEncodedContentType = (\n\theaders: IncomingHttpHeaders,\n): boolean => {\n\tconst contentType = getFirstHeaderValue(headers[\"content-type\"]);\n\tif (!contentType) {\n\t\treturn false;\n\t}\n\treturn contentType\n\t\t.toLowerCase()\n\t\t.startsWith(\"application/x-www-form-urlencoded\");\n};\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n\tif (typeof value !== \"object\" || value === null) {\n\t\treturn false;\n\t}\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn prototype === Object.prototype || prototype === null;\n};\n\nconst appendFormValue = (\n\tparams: URLSearchParams,\n\tkey: string,\n\tvalue: unknown,\n) => {\n\tif (value === undefined) {\n\t\treturn;\n\t}\n\tif (Array.isArray(value)) {\n\t\tfor (const item of value) {\n\t\t\tappendFormValue(params, key, item);\n\t\t}\n\t\treturn;\n\t}\n\tif (value === null) {\n\t\tparams.append(key, \"\");\n\t\treturn;\n\t}\n\tif (isPlainObject(value)) {\n\t\tparams.append(key, JSON.stringify(value));\n\t\treturn;\n\t}\n\tparams.append(key, `${value}`);\n};\n\nconst toFormUrlEncodedBody = (\n\tbody: Readonly<Record<string, unknown>>,\n): string => {\n\tconst params = new URLSearchParams();\n\tfor (const [key, value] of Object.entries(body)) {\n\t\tappendFormValue(params, key, value);\n\t}\n\treturn params.toString();\n};\n\nconst canReadRawBody = (request: IncomingMessage): boolean => {\n\treturn (\n\t\t!request.destroyed && request.readableEnded !== true && request.readable\n\t);\n};\n\nconst serializeParsedBody = (\n\tparsedBody: unknown,\n\tisFormUrlEncoded: boolean,\n): string => {\n\tif (typeof parsedBody === \"string\") {\n\t\treturn parsedBody;\n\t}\n\tif (parsedBody instanceof URLSearchParams) {\n\t\treturn parsedBody.toString();\n\t}\n\tif (isFormUrlEncoded && isPlainObject(parsedBody)) {\n\t\treturn toFormUrlEncodedBody(parsedBody);\n\t}\n\treturn JSON.stringify(parsedBody);\n};\n\nfunction get_raw_body(req: IncomingMessage, body_size_limit?: number) {\n\tconst h = req.headers;\n\n\tif (!h[\"content-type\"]) return null;\n\n\tconst content_length = Number(h[\"content-length\"]);\n\n\t// check if no request body\n\tif (\n\t\t(req.httpVersionMajor === 1 &&\n\t\t\tisNaN(content_length) &&\n\t\t\th[\"transfer-encoding\"] == null) ||\n\t\tcontent_length === 0\n\t) {\n\t\treturn null;\n\t}\n\n\tlet length = content_length;\n\n\tif (body_size_limit) {\n\t\tif (!length) {\n\t\t\tlength = body_size_limit;\n\t\t} else if (length > body_size_limit) {\n\t\t\tthrow Error(\n\t\t\t\t`Received content-length of ${length}, but only accept up to ${body_size_limit} bytes.`,\n\t\t\t);\n\t\t}\n\t}\n\n\tif (req.destroyed) {\n\t\tconst readable = new ReadableStream();\n\t\treadable.cancel();\n\t\treturn readable;\n\t}\n\n\tlet size = 0;\n\tlet cancelled = false;\n\n\treturn new ReadableStream({\n\t\tstart(controller) {\n\t\t\treq.on(\"error\", (error) => {\n\t\t\t\tcancelled = true;\n\t\t\t\tcontroller.error(error);\n\t\t\t});\n\n\t\t\treq.on(\"end\", () => {\n\t\t\t\tif (cancelled) return;\n\t\t\t\tcontroller.close();\n\t\t\t});\n\n\t\t\treq.on(\"data\", (chunk) => {\n\t\t\t\tif (cancelled) return;\n\n\t\t\t\tsize += chunk.length;\n\n\t\t\t\tif (size > length) {\n\t\t\t\t\tcancelled = true;\n\n\t\t\t\t\tcontroller.error(\n\t\t\t\t\t\tnew Error(\n\t\t\t\t\t\t\t`request body size exceeded ${\n\t\t\t\t\t\t\t\tcontent_length ? \"'content-length'\" : \"BODY_SIZE_LIMIT\"\n\t\t\t\t\t\t\t} of ${length}`,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tcontroller.enqueue(chunk);\n\n\t\t\t\tif (controller.desiredSize === null || controller.desiredSize <= 0) {\n\t\t\t\t\treq.pause();\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tpull() {\n\t\t\treq.resume();\n\t\t},\n\n\t\tcancel(reason) {\n\t\t\tcancelled = true;\n\t\t\treq.destroy(reason);\n\t\t},\n\t});\n}\n\nfunction constructRelativeUrl(\n\treq: IncomingMessage & { baseUrl?: string; originalUrl?: string },\n) {\n\tconst baseUrl = req.baseUrl;\n\tconst originalUrl = req.originalUrl;\n\n\tif (!baseUrl || !originalUrl) {\n\t\t// In express.js sub-routers `req.url` is relative to the mount\n\t\t// path (e.g., '/auth/xxx'), and `req.baseUrl` will hold the mount\n\t\t// path (e.g., '/api'). Build the full path as baseUrl + url when\n\t\t// available to preserve the full route. For application level routes\n\t\t// baseUrl will be an empty string\n\t\treturn baseUrl ? baseUrl + req.url : req.url;\n\t}\n\n\tif (baseUrl + req.url === originalUrl) {\n\t\treturn baseUrl + req.url;\n\t}\n\n\t// For certain subroutes or when mounting wildcard middlewares in express\n\t// it is possible `baseUrl + req.url` will result in a url constructed\n\t// which has a trailing forward slash the original url did not have.\n\t// Checking the `req.originalUrl` path ending can prevent this issue.\n\n\tconst originalPathEnding = originalUrl.split(\"?\")[0]!.at(-1);\n\treturn originalPathEnding === \"/\" ? baseUrl + req.url : baseUrl;\n}\n\nexport function getRequest({\n\trequest,\n\tbase,\n\tbodySizeLimit,\n}: {\n\tbase: string;\n\tbodySizeLimit?: number;\n\trequest: IncomingMessage;\n}) {\n\t// Check if body has already been parsed by Express middleware\n\tconst maybeConsumedReq = request as NodeRequestWithBody;\n\tconst isFormUrlEncoded = hasFormUrlEncodedContentType(request.headers);\n\tlet body = undefined;\n\n\tconst method = request.method;\n\t// Request with GET/HEAD method cannot have body.\n\tif (method !== \"GET\" && method !== \"HEAD\") {\n\t\t// Raw-first strategy: prefer consuming the original request stream whenever it is still readable.\n\t\tif (canReadRawBody(request)) {\n\t\t\tbody = get_raw_body(request, bodySizeLimit);\n\t\t} else if (maybeConsumedReq.body !== undefined) {\n\t\t\tconst parsedBody = maybeConsumedReq.body;\n\n\t\t\tconst bodyContent = serializeParsedBody(parsedBody, isFormUrlEncoded);\n\t\t\tbody = new ReadableStream({\n\t\t\t\tstart(controller) {\n\t\t\t\t\tcontroller.enqueue(new TextEncoder().encode(bodyContent));\n\t\t\t\t\tcontroller.close();\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\treturn new Request(base + constructRelativeUrl(request), {\n\t\t// @ts-expect-error\n\t\tduplex: \"half\",\n\t\tmethod: request.method,\n\t\tbody,\n\t\theaders: request.headers as Record<string, string>,\n\t});\n}\n\nexport async function setResponse(res: ServerResponse, response: Response) {\n\tfor (const [key, value] of response.headers as any) {\n\t\ttry {\n\t\t\tres.setHeader(\n\t\t\t\tkey,\n\t\t\t\tkey === \"set-cookie\"\n\t\t\t\t\t? set_cookie_parser.splitCookiesString(\n\t\t\t\t\t\t\tresponse.headers.get(key) as string,\n\t\t\t\t\t\t)\n\t\t\t\t\t: value,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tres.getHeaderNames().forEach((name) => res.removeHeader(name));\n\t\t\tres.writeHead(500).end(String(error));\n\t\t\treturn;\n\t\t}\n\t}\n\n\tres.statusCode = response.status;\n\tres.writeHead(response.status);\n\n\tif (!response.body) {\n\t\tres.end();\n\t\treturn;\n\t}\n\n\tif (response.body.locked) {\n\t\tres.end(\n\t\t\t\"Fatal error: Response body is locked. \" +\n\t\t\t\t\"This can happen when the response was already read (for example through 'response.json()' or 'response.text()').\",\n\t\t);\n\t\treturn;\n\t}\n\n\tconst reader = response.body.getReader();\n\n\tif (res.destroyed) {\n\t\treader.cancel();\n\t\treturn;\n\t}\n\n\tconst cancel = (error?: Error) => {\n\t\tres.off(\"close\", cancel);\n\t\tres.off(\"error\", cancel);\n\n\t\t// If the reader has already been interrupted with an error earlier,\n\t\t// then it will appear here, it is useless, but it needs to be catch.\n\t\treader.cancel(error).catch(() => {});\n\t\tif (error) res.destroy(error);\n\t};\n\n\tres.on(\"close\", cancel);\n\tres.on(\"error\", cancel);\n\n\tnext();\n\tasync function next() {\n\t\ttry {\n\t\t\tfor (;;) {\n\t\t\t\tconst { done, value } = await reader.read();\n\n\t\t\t\tif (done) break;\n\n\t\t\t\tconst writeResult = res.write(value);\n\t\t\t\tif (!writeResult) {\n\t\t\t\t\t// In AWS Lambda/serverless environments, drain events may not work properly\n\t\t\t\t\t// Check if we're in a Lambda-like environment and handle differently\n\t\t\t\t\tif (\n\t\t\t\t\t\tprocess.env.AWS_LAMBDA_FUNCTION_NAME ||\n\t\t\t\t\t\tprocess.env.LAMBDA_TASK_ROOT\n\t\t\t\t\t) {\n\t\t\t\t\t\t// In Lambda, continue without waiting for drain\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Standard Node.js behavior\n\t\t\t\t\t\tres.once(\"drain\", next);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tres.end();\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tcancel(error instanceof Error ? error : new Error(String(error)));\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
3
- const require_error = require('./error.cjs');
4
- let _better_fetch_fetch = require("@better-fetch/fetch");
5
-
6
- //#region src/client.ts
7
- const createClient = (options) => {
8
- const fetch = (0, _better_fetch_fetch.createFetch)(options ?? {});
9
- return async (path, ...options) => {
10
- return await fetch(path, { ...options[0] });
11
- };
12
- };
13
-
14
- //#endregion
15
- exports.APIError = require_error.APIError;
16
- exports.BetterCallError = require_error.BetterCallError;
17
- exports.ValidationError = require_error.ValidationError;
18
- exports.createClient = createClient;
19
- exports.hideInternalStackFrames = require_error.hideInternalStackFrames;
20
- exports.kAPIErrorHeaderSymbol = require_error.kAPIErrorHeaderSymbol;
21
- exports.makeErrorForHideStackFrame = require_error.makeErrorForHideStackFrame;
22
- exports.statusCodes = require_error.statusCodes;
23
- //# sourceMappingURL=client.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.cjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import {\n\ttype BetterFetchOption,\n\ttype BetterFetchResponse,\n\tcreateFetch,\n} from \"@better-fetch/fetch\";\nimport type { Router } from \"./router\";\nimport type { HasRequiredKeys, Prettify, UnionToIntersection } from \"./helper\";\nimport type { Endpoint } from \"./endpoint\";\n\nexport type HasRequired<T extends object> = T extends {}\n\t? false\n\t: T extends {\n\t\t\t\tbody?: any;\n\t\t\t\tquery?: any;\n\t\t\t\tparams?: any;\n\t\t\t}\n\t\t? T[\"body\"] extends object\n\t\t\t? HasRequiredKeys<T[\"body\"]> extends true\n\t\t\t\t? true\n\t\t\t\t: T[\"query\"] extends object\n\t\t\t\t\t? HasRequiredKeys<T[\"query\"]> extends true\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: T[\"params\"] extends object\n\t\t\t\t\t\t\t? HasRequiredKeys<T[\"params\"]>\n\t\t\t\t\t\t\t: false\n\t\t\t\t\t: T[\"params\"] extends object\n\t\t\t\t\t\t? HasRequiredKeys<T[\"params\"]>\n\t\t\t\t\t\t: false\n\t\t\t: T[\"query\"] extends object\n\t\t\t\t? HasRequiredKeys<T[\"query\"]> extends true\n\t\t\t\t\t? true\n\t\t\t\t\t: T[\"params\"] extends object\n\t\t\t\t\t\t? HasRequiredKeys<T[\"params\"]>\n\t\t\t\t\t\t: false\n\t\t\t\t: T[\"params\"] extends object\n\t\t\t\t\t? HasRequiredKeys<T[\"params\"]>\n\t\t\t\t\t: false\n\t\t: false;\n\ntype InferContext<T> = T extends (ctx: infer Ctx) => any\n\t? Ctx extends object\n\t\t? Ctx\n\t\t: never\n\t: never;\n\nexport interface ClientOptions extends BetterFetchOption {\n\tbaseURL?: string;\n}\n\ntype WithRequired<T, K> = T & {\n\t[P in K extends string ? K : never]-?: T[P extends keyof T ? P : never];\n};\n\ntype InferClientRoutes<T extends Record<string, Endpoint>> = {\n\t[K in keyof T]: T[K] extends Endpoint<any, infer O>\n\t\t? O extends\n\t\t\t\t| { metadata: { scope: \"http\" } }\n\t\t\t\t| { metadata: { scope: \"server\" } }\n\t\t\t\t| { metadata: { SERVER_ONLY: true } }\n\t\t\t\t| { metadata: { isAction: false } }\n\t\t\t? never\n\t\t\t: T[K]\n\t\t: T[K];\n};\n\nexport type RequiredOptionKeys<\n\tC extends {\n\t\tbody?: any;\n\t\tquery?: any;\n\t\tparams?: any;\n\t},\n> = (undefined extends C[\"body\"]\n\t? {}\n\t: {\n\t\t\tbody: true;\n\t\t}) &\n\t(undefined extends C[\"query\"]\n\t\t? {}\n\t\t: {\n\t\t\t\tquery: true;\n\t\t\t}) &\n\t(undefined extends C[\"params\"]\n\t\t? {}\n\t\t: {\n\t\t\t\tparams: true;\n\t\t\t});\n\nexport const createClient = <R extends Router | Router[\"endpoints\"]>(\n\toptions?: ClientOptions,\n) => {\n\tconst fetch = createFetch(options ?? {});\n\ttype API = InferClientRoutes<\n\t\tR extends { endpoints: Record<string, Endpoint> } ? R[\"endpoints\"] : R\n\t>;\n\ttype Options = API extends {\n\t\t[key: string]: infer T;\n\t}\n\t\t? T extends Endpoint\n\t\t\t? {\n\t\t\t\t\t[key in T[\"options\"][\"method\"] extends \"GET\"\n\t\t\t\t\t\t? T[\"path\"]\n\t\t\t\t\t\t: `@${T[\"options\"][\"method\"] extends string ? Lowercase<T[\"options\"][\"method\"]> : never}${T[\"path\"]}`]: T;\n\t\t\t\t}\n\t\t\t: {}\n\t\t: {};\n\n\ttype O = Prettify<UnionToIntersection<Options>>;\n\treturn async <\n\t\tOPT extends O,\n\t\tK extends keyof OPT,\n\t\tC extends InferContext<OPT[K]>,\n\t>(\n\t\tpath: K,\n\t\t...options: HasRequired<C> extends true\n\t\t\t? [\n\t\t\t\t\tWithRequired<\n\t\t\t\t\t\tBetterFetchOption<C[\"body\"], C[\"query\"], C[\"params\"]>,\n\t\t\t\t\t\tkeyof RequiredOptionKeys<C>\n\t\t\t\t\t>,\n\t\t\t\t]\n\t\t\t: [BetterFetchOption<C[\"body\"], C[\"query\"], C[\"params\"]>?]\n\t): Promise<\n\t\tBetterFetchResponse<\n\t\t\tAwaited<ReturnType<OPT[K] extends Endpoint ? OPT[K] : never>>\n\t\t>\n\t> => {\n\t\treturn (await fetch(path as string, {\n\t\t\t...options[0],\n\t\t})) as any;\n\t};\n};\n\nexport * from \"./error\";\n"],"mappings":";;;;;;AAuFA,MAAa,gBACZ,YACI;CACJ,MAAM,6CAAoB,WAAW,EAAE,CAAC;AAiBxC,QAAO,OAKN,MACA,GAAG,YAYC;AACJ,SAAQ,MAAM,MAAM,MAAgB,EACnC,GAAG,QAAQ,IACX,CAAC"}
@@ -1,53 +0,0 @@
1
- import { HasRequiredKeys, UnionToIntersection } from "./helper.cjs";
2
- import { APIError, BetterCallError, Status, ValidationError, hideInternalStackFrames, kAPIErrorHeaderSymbol, makeErrorForHideStackFrame, statusCodes } from "./error.cjs";
3
- import { Endpoint } from "./endpoint.cjs";
4
- import { Router } from "./router.cjs";
5
- import { BetterFetchOption, BetterFetchResponse } from "@better-fetch/fetch";
6
-
7
- //#region src/client.d.ts
8
- type HasRequired<T extends object> = T extends {} ? false : T extends {
9
- body?: any;
10
- query?: any;
11
- params?: any;
12
- } ? T["body"] extends object ? HasRequiredKeys<T["body"]> extends true ? true : T["query"] extends object ? HasRequiredKeys<T["query"]> extends true ? true : T["params"] extends object ? HasRequiredKeys<T["params"]> : false : T["params"] extends object ? HasRequiredKeys<T["params"]> : false : T["query"] extends object ? HasRequiredKeys<T["query"]> extends true ? true : T["params"] extends object ? HasRequiredKeys<T["params"]> : false : T["params"] extends object ? HasRequiredKeys<T["params"]> : false : false;
13
- type InferContext<T> = T extends ((ctx: infer Ctx) => any) ? Ctx extends object ? Ctx : never : never;
14
- interface ClientOptions extends BetterFetchOption {
15
- baseURL?: string;
16
- }
17
- type WithRequired<T, K> = T & { [P in K extends string ? K : never]-?: T[P extends keyof T ? P : never] };
18
- type InferClientRoutes<T extends Record<string, Endpoint>> = { [K in keyof T]: T[K] extends Endpoint<any, infer O> ? O extends {
19
- metadata: {
20
- scope: "http";
21
- };
22
- } | {
23
- metadata: {
24
- scope: "server";
25
- };
26
- } | {
27
- metadata: {
28
- SERVER_ONLY: true;
29
- };
30
- } | {
31
- metadata: {
32
- isAction: false;
33
- };
34
- } ? never : T[K] : T[K] };
35
- type RequiredOptionKeys<C extends {
36
- body?: any;
37
- query?: any;
38
- params?: any;
39
- }> = (undefined extends C["body"] ? {} : {
40
- body: true;
41
- }) & (undefined extends C["query"] ? {} : {
42
- query: true;
43
- }) & (undefined extends C["params"] ? {} : {
44
- params: true;
45
- });
46
- declare const createClient: <R extends Router | Router["endpoints"]>(options?: ClientOptions) => <OPT extends (UnionToIntersection<InferClientRoutes<R extends {
47
- endpoints: Record<string, Endpoint>;
48
- } ? R["endpoints"] : R> extends {
49
- [key: string]: infer T_1;
50
- } ? T_1 extends Endpoint ? { [key in T_1["options"]["method"] extends "GET" ? T_1["path"] : `@${T_1["options"]["method"] extends string ? Lowercase<T_1["options"]["method"]> : never}${T_1["path"]}`]: T_1 } : {} : {}> extends infer T ? { [K_1 in keyof T]: T[K_1] } : never), K extends keyof OPT, C extends InferContext<OPT[K]>>(path: K, ...options: HasRequired<C> extends true ? [WithRequired<BetterFetchOption<C["body"], C["query"], C["params"]>, keyof RequiredOptionKeys<C>>] : [BetterFetchOption<C["body"], C["query"], C["params"]>?]) => Promise<BetterFetchResponse<Awaited<ReturnType<OPT[K] extends Endpoint ? OPT[K] : never>>>>;
51
- //#endregion
52
- export { APIError, BetterCallError, ClientOptions, HasRequired, RequiredOptionKeys, Status, ValidationError, createClient, hideInternalStackFrames, kAPIErrorHeaderSymbol, makeErrorForHideStackFrame, statusCodes };
53
- //# sourceMappingURL=client.d.cts.map
@@ -1,53 +0,0 @@
1
- import { HasRequiredKeys, UnionToIntersection } from "./helper.mjs";
2
- import { APIError, BetterCallError, Status, ValidationError, hideInternalStackFrames, kAPIErrorHeaderSymbol, makeErrorForHideStackFrame, statusCodes } from "./error.mjs";
3
- import { Endpoint } from "./endpoint.mjs";
4
- import { Router } from "./router.mjs";
5
- import { BetterFetchOption, BetterFetchResponse } from "@better-fetch/fetch";
6
-
7
- //#region src/client.d.ts
8
- type HasRequired<T extends object> = T extends {} ? false : T extends {
9
- body?: any;
10
- query?: any;
11
- params?: any;
12
- } ? T["body"] extends object ? HasRequiredKeys<T["body"]> extends true ? true : T["query"] extends object ? HasRequiredKeys<T["query"]> extends true ? true : T["params"] extends object ? HasRequiredKeys<T["params"]> : false : T["params"] extends object ? HasRequiredKeys<T["params"]> : false : T["query"] extends object ? HasRequiredKeys<T["query"]> extends true ? true : T["params"] extends object ? HasRequiredKeys<T["params"]> : false : T["params"] extends object ? HasRequiredKeys<T["params"]> : false : false;
13
- type InferContext<T> = T extends ((ctx: infer Ctx) => any) ? Ctx extends object ? Ctx : never : never;
14
- interface ClientOptions extends BetterFetchOption {
15
- baseURL?: string;
16
- }
17
- type WithRequired<T, K> = T & { [P in K extends string ? K : never]-?: T[P extends keyof T ? P : never] };
18
- type InferClientRoutes<T extends Record<string, Endpoint>> = { [K in keyof T]: T[K] extends Endpoint<any, infer O> ? O extends {
19
- metadata: {
20
- scope: "http";
21
- };
22
- } | {
23
- metadata: {
24
- scope: "server";
25
- };
26
- } | {
27
- metadata: {
28
- SERVER_ONLY: true;
29
- };
30
- } | {
31
- metadata: {
32
- isAction: false;
33
- };
34
- } ? never : T[K] : T[K] };
35
- type RequiredOptionKeys<C extends {
36
- body?: any;
37
- query?: any;
38
- params?: any;
39
- }> = (undefined extends C["body"] ? {} : {
40
- body: true;
41
- }) & (undefined extends C["query"] ? {} : {
42
- query: true;
43
- }) & (undefined extends C["params"] ? {} : {
44
- params: true;
45
- });
46
- declare const createClient: <R extends Router | Router["endpoints"]>(options?: ClientOptions) => <OPT extends (UnionToIntersection<InferClientRoutes<R extends {
47
- endpoints: Record<string, Endpoint>;
48
- } ? R["endpoints"] : R> extends {
49
- [key: string]: infer T_1;
50
- } ? T_1 extends Endpoint ? { [key in T_1["options"]["method"] extends "GET" ? T_1["path"] : `@${T_1["options"]["method"] extends string ? Lowercase<T_1["options"]["method"]> : never}${T_1["path"]}`]: T_1 } : {} : {}> extends infer T ? { [K_1 in keyof T]: T[K_1] } : never), K extends keyof OPT, C extends InferContext<OPT[K]>>(path: K, ...options: HasRequired<C> extends true ? [WithRequired<BetterFetchOption<C["body"], C["query"], C["params"]>, keyof RequiredOptionKeys<C>>] : [BetterFetchOption<C["body"], C["query"], C["params"]>?]) => Promise<BetterFetchResponse<Awaited<ReturnType<OPT[K] extends Endpoint ? OPT[K] : never>>>>;
51
- //#endregion
52
- export { APIError, BetterCallError, ClientOptions, HasRequired, RequiredOptionKeys, Status, ValidationError, createClient, hideInternalStackFrames, kAPIErrorHeaderSymbol, makeErrorForHideStackFrame, statusCodes };
53
- //# sourceMappingURL=client.d.mts.map
@@ -1,14 +0,0 @@
1
- import { APIError, BetterCallError, ValidationError, hideInternalStackFrames, kAPIErrorHeaderSymbol, makeErrorForHideStackFrame, statusCodes } from "./error.mjs";
2
- import { createFetch } from "@better-fetch/fetch";
3
-
4
- //#region src/client.ts
5
- const createClient = (options) => {
6
- const fetch = createFetch(options ?? {});
7
- return async (path, ...options) => {
8
- return await fetch(path, { ...options[0] });
9
- };
10
- };
11
-
12
- //#endregion
13
- export { APIError, BetterCallError, ValidationError, createClient, hideInternalStackFrames, kAPIErrorHeaderSymbol, makeErrorForHideStackFrame, statusCodes };
14
- //# sourceMappingURL=client.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.mjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import {\n\ttype BetterFetchOption,\n\ttype BetterFetchResponse,\n\tcreateFetch,\n} from \"@better-fetch/fetch\";\nimport type { Router } from \"./router\";\nimport type { HasRequiredKeys, Prettify, UnionToIntersection } from \"./helper\";\nimport type { Endpoint } from \"./endpoint\";\n\nexport type HasRequired<T extends object> = T extends {}\n\t? false\n\t: T extends {\n\t\t\t\tbody?: any;\n\t\t\t\tquery?: any;\n\t\t\t\tparams?: any;\n\t\t\t}\n\t\t? T[\"body\"] extends object\n\t\t\t? HasRequiredKeys<T[\"body\"]> extends true\n\t\t\t\t? true\n\t\t\t\t: T[\"query\"] extends object\n\t\t\t\t\t? HasRequiredKeys<T[\"query\"]> extends true\n\t\t\t\t\t\t? true\n\t\t\t\t\t\t: T[\"params\"] extends object\n\t\t\t\t\t\t\t? HasRequiredKeys<T[\"params\"]>\n\t\t\t\t\t\t\t: false\n\t\t\t\t\t: T[\"params\"] extends object\n\t\t\t\t\t\t? HasRequiredKeys<T[\"params\"]>\n\t\t\t\t\t\t: false\n\t\t\t: T[\"query\"] extends object\n\t\t\t\t? HasRequiredKeys<T[\"query\"]> extends true\n\t\t\t\t\t? true\n\t\t\t\t\t: T[\"params\"] extends object\n\t\t\t\t\t\t? HasRequiredKeys<T[\"params\"]>\n\t\t\t\t\t\t: false\n\t\t\t\t: T[\"params\"] extends object\n\t\t\t\t\t? HasRequiredKeys<T[\"params\"]>\n\t\t\t\t\t: false\n\t\t: false;\n\ntype InferContext<T> = T extends (ctx: infer Ctx) => any\n\t? Ctx extends object\n\t\t? Ctx\n\t\t: never\n\t: never;\n\nexport interface ClientOptions extends BetterFetchOption {\n\tbaseURL?: string;\n}\n\ntype WithRequired<T, K> = T & {\n\t[P in K extends string ? K : never]-?: T[P extends keyof T ? P : never];\n};\n\ntype InferClientRoutes<T extends Record<string, Endpoint>> = {\n\t[K in keyof T]: T[K] extends Endpoint<any, infer O>\n\t\t? O extends\n\t\t\t\t| { metadata: { scope: \"http\" } }\n\t\t\t\t| { metadata: { scope: \"server\" } }\n\t\t\t\t| { metadata: { SERVER_ONLY: true } }\n\t\t\t\t| { metadata: { isAction: false } }\n\t\t\t? never\n\t\t\t: T[K]\n\t\t: T[K];\n};\n\nexport type RequiredOptionKeys<\n\tC extends {\n\t\tbody?: any;\n\t\tquery?: any;\n\t\tparams?: any;\n\t},\n> = (undefined extends C[\"body\"]\n\t? {}\n\t: {\n\t\t\tbody: true;\n\t\t}) &\n\t(undefined extends C[\"query\"]\n\t\t? {}\n\t\t: {\n\t\t\t\tquery: true;\n\t\t\t}) &\n\t(undefined extends C[\"params\"]\n\t\t? {}\n\t\t: {\n\t\t\t\tparams: true;\n\t\t\t});\n\nexport const createClient = <R extends Router | Router[\"endpoints\"]>(\n\toptions?: ClientOptions,\n) => {\n\tconst fetch = createFetch(options ?? {});\n\ttype API = InferClientRoutes<\n\t\tR extends { endpoints: Record<string, Endpoint> } ? R[\"endpoints\"] : R\n\t>;\n\ttype Options = API extends {\n\t\t[key: string]: infer T;\n\t}\n\t\t? T extends Endpoint\n\t\t\t? {\n\t\t\t\t\t[key in T[\"options\"][\"method\"] extends \"GET\"\n\t\t\t\t\t\t? T[\"path\"]\n\t\t\t\t\t\t: `@${T[\"options\"][\"method\"] extends string ? Lowercase<T[\"options\"][\"method\"]> : never}${T[\"path\"]}`]: T;\n\t\t\t\t}\n\t\t\t: {}\n\t\t: {};\n\n\ttype O = Prettify<UnionToIntersection<Options>>;\n\treturn async <\n\t\tOPT extends O,\n\t\tK extends keyof OPT,\n\t\tC extends InferContext<OPT[K]>,\n\t>(\n\t\tpath: K,\n\t\t...options: HasRequired<C> extends true\n\t\t\t? [\n\t\t\t\t\tWithRequired<\n\t\t\t\t\t\tBetterFetchOption<C[\"body\"], C[\"query\"], C[\"params\"]>,\n\t\t\t\t\t\tkeyof RequiredOptionKeys<C>\n\t\t\t\t\t>,\n\t\t\t\t]\n\t\t\t: [BetterFetchOption<C[\"body\"], C[\"query\"], C[\"params\"]>?]\n\t): Promise<\n\t\tBetterFetchResponse<\n\t\t\tAwaited<ReturnType<OPT[K] extends Endpoint ? OPT[K] : never>>\n\t\t>\n\t> => {\n\t\treturn (await fetch(path as string, {\n\t\t\t...options[0],\n\t\t})) as any;\n\t};\n};\n\nexport * from \"./error\";\n"],"mappings":";;;;AAuFA,MAAa,gBACZ,YACI;CACJ,MAAM,QAAQ,YAAY,WAAW,EAAE,CAAC;AAiBxC,QAAO,OAKN,MACA,GAAG,YAYC;AACJ,SAAQ,MAAM,MAAM,MAAgB,EACnC,GAAG,QAAQ,IACX,CAAC"}