create-croissant 0.1.8 → 0.1.10

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 (490) hide show
  1. package/package.json +1 -1
  2. package/template/apps/web/package.json +2 -0
  3. package/template/apps/web/src/components/app-sidebar.tsx +43 -28
  4. package/template/apps/web/src/components/login-form.tsx +96 -49
  5. package/template/apps/web/src/components/signup-form.tsx +150 -80
  6. package/template/apps/web/src/routeTree.gen.ts +21 -0
  7. package/template/apps/web/src/routes/__root.tsx +17 -12
  8. package/template/apps/web/src/routes/account.tsx +263 -0
  9. package/template/apps/web/src/routes/client-orpc-auth.tsx +10 -22
  10. package/template/apps/web/src/routes/client-orpc.tsx +211 -110
  11. package/template/apps/web/src/routes/dashboard.tsx +3 -3
  12. package/template/apps/web/src/routes/index.tsx +8 -3
  13. package/template/apps/web/src/routes/isr.tsx +2 -2
  14. package/template/apps/web/src/routes/login.tsx +1 -1
  15. package/template/apps/web/src/routes/signup.tsx +1 -1
  16. package/template/apps/web/src/routes/ssr-orpc-auth.tsx +2 -2
  17. package/template/apps/web/src/routes/ssr-orpc.tsx +178 -100
  18. package/template/package.json +3 -1
  19. package/template/packages/orpc/src/lib/planets.ts +79 -0
  20. package/template/packages/orpc/src/lib/router.ts +3 -72
  21. package/template/apps/web/node_modules/@better-auth/core/LICENSE.md +0 -20
  22. package/template/apps/web/node_modules/@better-auth/core/README.md +0 -17
  23. package/template/apps/web/node_modules/@better-auth/core/dist/api/index.d.mts +0 -278
  24. package/template/apps/web/node_modules/@better-auth/core/dist/api/index.mjs +0 -56
  25. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/index.d.mts +0 -6
  26. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/index.mjs +0 -20
  27. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/pure.index.d.mts +0 -6
  28. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/pure.index.mjs +0 -33
  29. package/template/apps/web/node_modules/@better-auth/core/dist/context/endpoint-context.d.mts +0 -18
  30. package/template/apps/web/node_modules/@better-auth/core/dist/context/endpoint-context.mjs +0 -29
  31. package/template/apps/web/node_modules/@better-auth/core/dist/context/global.d.mts +0 -6
  32. package/template/apps/web/node_modules/@better-auth/core/dist/context/global.mjs +0 -36
  33. package/template/apps/web/node_modules/@better-auth/core/dist/context/index.d.mts +0 -5
  34. package/template/apps/web/node_modules/@better-auth/core/dist/context/index.mjs +0 -5
  35. package/template/apps/web/node_modules/@better-auth/core/dist/context/request-state.d.mts +0 -27
  36. package/template/apps/web/node_modules/@better-auth/core/dist/context/request-state.mjs +0 -47
  37. package/template/apps/web/node_modules/@better-auth/core/dist/context/transaction.d.mts +0 -24
  38. package/template/apps/web/node_modules/@better-auth/core/dist/context/transaction.mjs +0 -93
  39. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/factory.d.mts +0 -17
  40. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/factory.mjs +0 -754
  41. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-field-name.d.mts +0 -18
  42. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-field-name.mjs +0 -36
  43. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-model-name.d.mts +0 -12
  44. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-model-name.mjs +0 -30
  45. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.d.mts +0 -26
  46. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.mjs +0 -37
  47. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-name.d.mts +0 -18
  48. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-name.mjs +0 -31
  49. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-id-field.d.mts +0 -36
  50. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-id-field.mjs +0 -64
  51. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-model-name.d.mts +0 -12
  52. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-model-name.mjs +0 -21
  53. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/index.d.mts +0 -525
  54. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/index.mjs +0 -24
  55. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/types.d.mts +0 -105
  56. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/utils.d.mts +0 -7
  57. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/utils.mjs +0 -37
  58. package/template/apps/web/node_modules/@better-auth/core/dist/db/get-tables.d.mts +0 -6
  59. package/template/apps/web/node_modules/@better-auth/core/dist/db/get-tables.mjs +0 -265
  60. package/template/apps/web/node_modules/@better-auth/core/dist/db/index.d.mts +0 -10
  61. package/template/apps/web/node_modules/@better-auth/core/dist/db/index.mjs +0 -8
  62. package/template/apps/web/node_modules/@better-auth/core/dist/db/plugin.d.mts +0 -12
  63. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/account.d.mts +0 -28
  64. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/account.mjs +0 -17
  65. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/rate-limit.d.mts +0 -18
  66. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/rate-limit.mjs +0 -9
  67. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/session.d.mts +0 -23
  68. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/session.mjs +0 -12
  69. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/shared.d.mts +0 -10
  70. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/shared.mjs +0 -9
  71. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/user.d.mts +0 -22
  72. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/user.mjs +0 -11
  73. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/verification.d.mts +0 -21
  74. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/verification.mjs +0 -10
  75. package/template/apps/web/node_modules/@better-auth/core/dist/db/type.d.mts +0 -167
  76. package/template/apps/web/node_modules/@better-auth/core/dist/env/color-depth.d.mts +0 -4
  77. package/template/apps/web/node_modules/@better-auth/core/dist/env/color-depth.mjs +0 -86
  78. package/template/apps/web/node_modules/@better-auth/core/dist/env/env-impl.d.mts +0 -32
  79. package/template/apps/web/node_modules/@better-auth/core/dist/env/env-impl.mjs +0 -81
  80. package/template/apps/web/node_modules/@better-auth/core/dist/env/index.d.mts +0 -4
  81. package/template/apps/web/node_modules/@better-auth/core/dist/env/index.mjs +0 -4
  82. package/template/apps/web/node_modules/@better-auth/core/dist/env/logger.d.mts +0 -48
  83. package/template/apps/web/node_modules/@better-auth/core/dist/env/logger.mjs +0 -79
  84. package/template/apps/web/node_modules/@better-auth/core/dist/error/codes.d.mts +0 -68
  85. package/template/apps/web/node_modules/@better-auth/core/dist/error/codes.mjs +0 -54
  86. package/template/apps/web/node_modules/@better-auth/core/dist/error/index.d.mts +0 -19
  87. package/template/apps/web/node_modules/@better-auth/core/dist/error/index.mjs +0 -27
  88. package/template/apps/web/node_modules/@better-auth/core/dist/index.d.mts +0 -9
  89. package/template/apps/web/node_modules/@better-auth/core/dist/index.mjs +0 -1
  90. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/api.mjs +0 -12
  91. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/attributes.d.mts +0 -11
  92. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/attributes.mjs +0 -10
  93. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/index.d.mts +0 -3
  94. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/index.mjs +0 -3
  95. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/noop.mjs +0 -42
  96. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/pure.index.d.mts +0 -7
  97. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/pure.index.mjs +0 -7
  98. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/tracer.d.mts +0 -13
  99. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/tracer.mjs +0 -53
  100. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/client-credentials-token.d.mts +0 -56
  101. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/client-credentials-token.mjs +0 -64
  102. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/create-authorization-url.d.mts +0 -44
  103. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/create-authorization-url.mjs +0 -41
  104. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/index.d.mts +0 -8
  105. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/index.mjs +0 -7
  106. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/oauth-provider.d.mts +0 -192
  107. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/refresh-access-token.d.mts +0 -54
  108. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/refresh-access-token.mjs +0 -73
  109. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/utils.d.mts +0 -16
  110. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/utils.mjs +0 -37
  111. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/validate-authorization-code.d.mts +0 -85
  112. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/validate-authorization-code.mjs +0 -79
  113. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/verify.d.mts +0 -42
  114. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/verify.mjs +0 -92
  115. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/apple.d.mts +0 -126
  116. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/apple.mjs +0 -107
  117. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/atlassian.d.mts +0 -70
  118. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/atlassian.mjs +0 -80
  119. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/cognito.d.mts +0 -85
  120. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/cognito.mjs +0 -162
  121. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/discord.d.mts +0 -124
  122. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/discord.mjs +0 -62
  123. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/dropbox.d.mts +0 -69
  124. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/dropbox.mjs +0 -72
  125. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/facebook.d.mts +0 -79
  126. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/facebook.mjs +0 -124
  127. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/figma.d.mts +0 -61
  128. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/figma.mjs +0 -83
  129. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/github.d.mts +0 -102
  130. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/github.mjs +0 -92
  131. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/gitlab.d.mts +0 -123
  132. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/gitlab.mjs +0 -79
  133. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/google.d.mts +0 -97
  134. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/google.mjs +0 -109
  135. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/huggingface.d.mts +0 -83
  136. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/huggingface.mjs +0 -73
  137. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/index.d.mts +0 -1834
  138. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/index.mjs +0 -78
  139. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kakao.d.mts +0 -161
  140. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kakao.mjs +0 -70
  141. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kick.d.mts +0 -73
  142. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kick.mjs +0 -68
  143. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/line.d.mts +0 -105
  144. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/line.mjs +0 -110
  145. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linear.d.mts +0 -68
  146. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linear.mjs +0 -85
  147. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linkedin.d.mts +0 -67
  148. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linkedin.mjs +0 -73
  149. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/microsoft-entra-id.d.mts +0 -174
  150. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/microsoft-entra-id.mjs +0 -140
  151. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/naver.d.mts +0 -92
  152. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/naver.mjs +0 -65
  153. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/notion.d.mts +0 -64
  154. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/notion.mjs +0 -72
  155. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paybin.d.mts +0 -71
  156. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paybin.mjs +0 -81
  157. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paypal.d.mts +0 -129
  158. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paypal.mjs +0 -140
  159. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/polar.d.mts +0 -74
  160. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/polar.mjs +0 -71
  161. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/railway.d.mts +0 -65
  162. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/railway.mjs +0 -74
  163. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/reddit.d.mts +0 -62
  164. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/reddit.mjs +0 -80
  165. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/roblox.d.mts +0 -70
  166. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/roblox.mjs +0 -57
  167. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/salesforce.d.mts +0 -79
  168. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/salesforce.mjs +0 -87
  169. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/slack.d.mts +0 -83
  170. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/slack.mjs +0 -66
  171. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/spotify.d.mts +0 -63
  172. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/spotify.mjs +0 -69
  173. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/tiktok.d.mts +0 -168
  174. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/tiktok.mjs +0 -60
  175. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitch.d.mts +0 -79
  176. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitch.mjs +0 -75
  177. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitter.d.mts +0 -126
  178. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitter.mjs +0 -85
  179. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vercel.d.mts +0 -62
  180. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vercel.mjs +0 -58
  181. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vk.d.mts +0 -70
  182. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vk.mjs +0 -81
  183. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/wechat.d.mts +0 -113
  184. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/wechat.mjs +0 -81
  185. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/zoom.d.mts +0 -163
  186. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/zoom.mjs +0 -69
  187. package/template/apps/web/node_modules/@better-auth/core/dist/types/context.d.mts +0 -277
  188. package/template/apps/web/node_modules/@better-auth/core/dist/types/cookie.d.mts +0 -15
  189. package/template/apps/web/node_modules/@better-auth/core/dist/types/helper.d.mts +0 -10
  190. package/template/apps/web/node_modules/@better-auth/core/dist/types/index.d.mts +0 -9
  191. package/template/apps/web/node_modules/@better-auth/core/dist/types/init-options.d.mts +0 -1358
  192. package/template/apps/web/node_modules/@better-auth/core/dist/types/plugin-client.d.mts +0 -113
  193. package/template/apps/web/node_modules/@better-auth/core/dist/types/plugin.d.mts +0 -124
  194. package/template/apps/web/node_modules/@better-auth/core/dist/types/secret.d.mts +0 -11
  195. package/template/apps/web/node_modules/@better-auth/core/dist/utils/async.d.mts +0 -22
  196. package/template/apps/web/node_modules/@better-auth/core/dist/utils/async.mjs +0 -32
  197. package/template/apps/web/node_modules/@better-auth/core/dist/utils/db.d.mts +0 -9
  198. package/template/apps/web/node_modules/@better-auth/core/dist/utils/db.mjs +0 -15
  199. package/template/apps/web/node_modules/@better-auth/core/dist/utils/deprecate.d.mts +0 -9
  200. package/template/apps/web/node_modules/@better-auth/core/dist/utils/deprecate.mjs +0 -16
  201. package/template/apps/web/node_modules/@better-auth/core/dist/utils/error-codes.d.mts +0 -13
  202. package/template/apps/web/node_modules/@better-auth/core/dist/utils/error-codes.mjs +0 -10
  203. package/template/apps/web/node_modules/@better-auth/core/dist/utils/fetch-metadata.d.mts +0 -4
  204. package/template/apps/web/node_modules/@better-auth/core/dist/utils/fetch-metadata.mjs +0 -6
  205. package/template/apps/web/node_modules/@better-auth/core/dist/utils/host.d.mts +0 -147
  206. package/template/apps/web/node_modules/@better-auth/core/dist/utils/host.mjs +0 -291
  207. package/template/apps/web/node_modules/@better-auth/core/dist/utils/id.d.mts +0 -4
  208. package/template/apps/web/node_modules/@better-auth/core/dist/utils/id.mjs +0 -7
  209. package/template/apps/web/node_modules/@better-auth/core/dist/utils/ip.d.mts +0 -54
  210. package/template/apps/web/node_modules/@better-auth/core/dist/utils/ip.mjs +0 -116
  211. package/template/apps/web/node_modules/@better-auth/core/dist/utils/is-api-error.d.mts +0 -6
  212. package/template/apps/web/node_modules/@better-auth/core/dist/utils/is-api-error.mjs +0 -8
  213. package/template/apps/web/node_modules/@better-auth/core/dist/utils/json.d.mts +0 -4
  214. package/template/apps/web/node_modules/@better-auth/core/dist/utils/json.mjs +0 -41
  215. package/template/apps/web/node_modules/@better-auth/core/dist/utils/string.d.mts +0 -4
  216. package/template/apps/web/node_modules/@better-auth/core/dist/utils/string.mjs +0 -6
  217. package/template/apps/web/node_modules/@better-auth/core/dist/utils/url.d.mts +0 -20
  218. package/template/apps/web/node_modules/@better-auth/core/dist/utils/url.mjs +0 -31
  219. package/template/apps/web/node_modules/@better-auth/core/package.json +0 -193
  220. package/template/apps/web/node_modules/@better-auth/core/src/api/index.ts +0 -140
  221. package/template/apps/web/node_modules/@better-auth/core/src/async_hooks/index.ts +0 -40
  222. package/template/apps/web/node_modules/@better-auth/core/src/async_hooks/pure.index.ts +0 -46
  223. package/template/apps/web/node_modules/@better-auth/core/src/context/endpoint-context.ts +0 -50
  224. package/template/apps/web/node_modules/@better-auth/core/src/context/global.ts +0 -57
  225. package/template/apps/web/node_modules/@better-auth/core/src/context/index.ts +0 -23
  226. package/template/apps/web/node_modules/@better-auth/core/src/context/request-state.ts +0 -91
  227. package/template/apps/web/node_modules/@better-auth/core/src/context/transaction.ts +0 -136
  228. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/factory.ts +0 -1440
  229. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-default-field-name.ts +0 -59
  230. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-default-model-name.ts +0 -51
  231. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-field-attributes.ts +0 -62
  232. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-field-name.ts +0 -43
  233. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-id-field.ts +0 -150
  234. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-model-name.ts +0 -36
  235. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/index.ts +0 -567
  236. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/types.ts +0 -132
  237. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/utils.ts +0 -61
  238. package/template/apps/web/node_modules/@better-auth/core/src/db/get-tables.ts +0 -296
  239. package/template/apps/web/node_modules/@better-auth/core/src/db/index.ts +0 -43
  240. package/template/apps/web/node_modules/@better-auth/core/src/db/plugin.ts +0 -11
  241. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/account.ts +0 -47
  242. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/rate-limit.ts +0 -36
  243. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/session.ts +0 -29
  244. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/shared.ts +0 -7
  245. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/user.ts +0 -28
  246. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/verification.ts +0 -28
  247. package/template/apps/web/node_modules/@better-auth/core/src/db/type.ts +0 -333
  248. package/template/apps/web/node_modules/@better-auth/core/src/env/color-depth.ts +0 -172
  249. package/template/apps/web/node_modules/@better-auth/core/src/env/env-impl.ts +0 -124
  250. package/template/apps/web/node_modules/@better-auth/core/src/env/index.ts +0 -23
  251. package/template/apps/web/node_modules/@better-auth/core/src/env/logger.ts +0 -145
  252. package/template/apps/web/node_modules/@better-auth/core/src/error/codes.ts +0 -71
  253. package/template/apps/web/node_modules/@better-auth/core/src/error/index.ts +0 -35
  254. package/template/apps/web/node_modules/@better-auth/core/src/index.ts +0 -1
  255. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/api.ts +0 -17
  256. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/attributes.ts +0 -22
  257. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/index.ts +0 -2
  258. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/noop.ts +0 -74
  259. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/pure.index.ts +0 -31
  260. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/tracer.ts +0 -95
  261. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/client-credentials-token.ts +0 -126
  262. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/create-authorization-url.ts +0 -89
  263. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/index.ts +0 -33
  264. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/oauth-provider.ts +0 -222
  265. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/refresh-access-token.ts +0 -157
  266. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/utils.ts +0 -51
  267. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/validate-authorization-code.ts +0 -180
  268. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/verify.ts +0 -221
  269. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/apple.ts +0 -231
  270. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/atlassian.ts +0 -133
  271. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/cognito.ts +0 -281
  272. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/discord.ts +0 -170
  273. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/dropbox.ts +0 -112
  274. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/facebook.ts +0 -215
  275. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/figma.ts +0 -118
  276. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/github.ts +0 -184
  277. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/gitlab.ts +0 -155
  278. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/google.ts +0 -204
  279. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/huggingface.ts +0 -119
  280. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/index.ts +0 -132
  281. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/kakao.ts +0 -179
  282. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/kick.ts +0 -109
  283. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/line.ts +0 -169
  284. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/linear.ts +0 -121
  285. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/linkedin.ts +0 -110
  286. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/microsoft-entra-id.ts +0 -352
  287. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/naver.ts +0 -113
  288. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/notion.ts +0 -108
  289. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/paybin.ts +0 -118
  290. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/paypal.ts +0 -263
  291. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/polar.ts +0 -111
  292. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/railway.ts +0 -100
  293. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/reddit.ts +0 -122
  294. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/roblox.ts +0 -112
  295. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/salesforce.ts +0 -159
  296. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/slack.ts +0 -112
  297. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/spotify.ts +0 -94
  298. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/tiktok.ts +0 -211
  299. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/twitch.ts +0 -112
  300. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/twitter.ts +0 -199
  301. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/vercel.ts +0 -87
  302. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/vk.ts +0 -125
  303. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/wechat.ts +0 -213
  304. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/zoom.ts +0 -230
  305. package/template/apps/web/node_modules/@better-auth/core/src/types/context.ts +0 -415
  306. package/template/apps/web/node_modules/@better-auth/core/src/types/cookie.ts +0 -10
  307. package/template/apps/web/node_modules/@better-auth/core/src/types/helper.ts +0 -27
  308. package/template/apps/web/node_modules/@better-auth/core/src/types/index.ts +0 -40
  309. package/template/apps/web/node_modules/@better-auth/core/src/types/init-options.ts +0 -1610
  310. package/template/apps/web/node_modules/@better-auth/core/src/types/plugin-client.ts +0 -129
  311. package/template/apps/web/node_modules/@better-auth/core/src/types/plugin.ts +0 -163
  312. package/template/apps/web/node_modules/@better-auth/core/src/types/secret.ts +0 -8
  313. package/template/apps/web/node_modules/@better-auth/core/src/utils/async.ts +0 -53
  314. package/template/apps/web/node_modules/@better-auth/core/src/utils/db.ts +0 -20
  315. package/template/apps/web/node_modules/@better-auth/core/src/utils/deprecate.ts +0 -21
  316. package/template/apps/web/node_modules/@better-auth/core/src/utils/error-codes.ts +0 -68
  317. package/template/apps/web/node_modules/@better-auth/core/src/utils/fetch-metadata.ts +0 -3
  318. package/template/apps/web/node_modules/@better-auth/core/src/utils/host.ts +0 -401
  319. package/template/apps/web/node_modules/@better-auth/core/src/utils/id.ts +0 -5
  320. package/template/apps/web/node_modules/@better-auth/core/src/utils/ip.ts +0 -211
  321. package/template/apps/web/node_modules/@better-auth/core/src/utils/is-api-error.ts +0 -10
  322. package/template/apps/web/node_modules/@better-auth/core/src/utils/json.ts +0 -56
  323. package/template/apps/web/node_modules/@better-auth/core/src/utils/string.ts +0 -3
  324. package/template/apps/web/node_modules/@better-auth/core/src/utils/url.ts +0 -43
  325. package/template/apps/web/node_modules/@better-auth/utils/README.md +0 -384
  326. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.cjs +0 -104
  327. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.d.cts +0 -44
  328. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.d.mts +0 -44
  329. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.d.ts +0 -44
  330. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.mjs +0 -101
  331. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.cjs +0 -80
  332. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.d.cts +0 -16
  333. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.d.mts +0 -16
  334. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.d.ts +0 -16
  335. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.mjs +0 -77
  336. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.cjs +0 -16
  337. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.d.cts +0 -8
  338. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.d.mts +0 -8
  339. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.d.ts +0 -8
  340. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.mjs +0 -14
  341. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.cjs +0 -90
  342. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.d.cts +0 -19
  343. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.d.mts +0 -19
  344. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.d.ts +0 -19
  345. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.mjs +0 -88
  346. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.cjs +0 -31
  347. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.d.cts +0 -7
  348. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.d.mts +0 -7
  349. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.d.ts +0 -7
  350. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.mjs +0 -29
  351. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.cjs +0 -40
  352. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.d.cts +0 -8
  353. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.d.mts +0 -8
  354. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.d.ts +0 -8
  355. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.mjs +0 -38
  356. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.cjs +0 -58
  357. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.d.cts +0 -9
  358. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.d.mts +0 -9
  359. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.d.ts +0 -9
  360. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.mjs +0 -56
  361. package/template/apps/web/node_modules/@better-auth/utils/dist/index.cjs +0 -10
  362. package/template/apps/web/node_modules/@better-auth/utils/dist/index.d.cts +0 -3
  363. package/template/apps/web/node_modules/@better-auth/utils/dist/index.d.mts +0 -3
  364. package/template/apps/web/node_modules/@better-auth/utils/dist/index.d.ts +0 -3
  365. package/template/apps/web/node_modules/@better-auth/utils/dist/index.mjs +0 -8
  366. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.cjs +0 -90
  367. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.d.cts +0 -13
  368. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.d.mts +0 -13
  369. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.d.ts +0 -13
  370. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.mjs +0 -88
  371. package/template/apps/web/node_modules/@better-auth/utils/dist/password.cjs +0 -36
  372. package/template/apps/web/node_modules/@better-auth/utils/dist/password.d.cts +0 -4
  373. package/template/apps/web/node_modules/@better-auth/utils/dist/password.d.mts +0 -4
  374. package/template/apps/web/node_modules/@better-auth/utils/dist/password.d.ts +0 -4
  375. package/template/apps/web/node_modules/@better-auth/utils/dist/password.mjs +0 -33
  376. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.cjs +0 -47
  377. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.d.cts +0 -4
  378. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.d.mts +0 -4
  379. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.d.ts +0 -4
  380. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.mjs +0 -44
  381. package/template/apps/web/node_modules/@better-auth/utils/dist/random.cjs +0 -55
  382. package/template/apps/web/node_modules/@better-auth/utils/dist/random.d.cts +0 -4
  383. package/template/apps/web/node_modules/@better-auth/utils/dist/random.d.mts +0 -4
  384. package/template/apps/web/node_modules/@better-auth/utils/dist/random.d.ts +0 -4
  385. package/template/apps/web/node_modules/@better-auth/utils/dist/random.mjs +0 -53
  386. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.cjs +0 -76
  387. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.d.cts +0 -16
  388. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.d.mts +0 -16
  389. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.d.ts +0 -16
  390. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.mjs +0 -74
  391. package/template/apps/web/node_modules/@better-auth/utils/dist/shared/utils.ecd028f7.d.cts +0 -22
  392. package/template/apps/web/node_modules/@better-auth/utils/dist/shared/utils.ecd028f7.d.mts +0 -22
  393. package/template/apps/web/node_modules/@better-auth/utils/dist/shared/utils.ecd028f7.d.ts +0 -22
  394. package/template/apps/web/node_modules/@better-auth/utils/package.json +0 -95
  395. package/template/apps/web/node_modules/better-call/LICENSE +0 -21
  396. package/template/apps/web/node_modules/better-call/dist/_virtual/_rolldown/runtime.cjs +0 -29
  397. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.cjs +0 -181
  398. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.cjs.map +0 -1
  399. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.d.cts +0 -16
  400. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.d.mts +0 -16
  401. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.mjs +0 -178
  402. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.mjs.map +0 -1
  403. package/template/apps/web/node_modules/better-call/dist/client.cjs +0 -23
  404. package/template/apps/web/node_modules/better-call/dist/client.cjs.map +0 -1
  405. package/template/apps/web/node_modules/better-call/dist/client.d.cts +0 -53
  406. package/template/apps/web/node_modules/better-call/dist/client.d.mts +0 -53
  407. package/template/apps/web/node_modules/better-call/dist/client.mjs +0 -14
  408. package/template/apps/web/node_modules/better-call/dist/client.mjs.map +0 -1
  409. package/template/apps/web/node_modules/better-call/dist/context.cjs +0 -103
  410. package/template/apps/web/node_modules/better-call/dist/context.cjs.map +0 -1
  411. package/template/apps/web/node_modules/better-call/dist/context.d.cts +0 -341
  412. package/template/apps/web/node_modules/better-call/dist/context.d.mts +0 -341
  413. package/template/apps/web/node_modules/better-call/dist/context.mjs +0 -103
  414. package/template/apps/web/node_modules/better-call/dist/context.mjs.map +0 -1
  415. package/template/apps/web/node_modules/better-call/dist/cookies.cjs +0 -87
  416. package/template/apps/web/node_modules/better-call/dist/cookies.cjs.map +0 -1
  417. package/template/apps/web/node_modules/better-call/dist/cookies.d.cts +0 -103
  418. package/template/apps/web/node_modules/better-call/dist/cookies.d.mts +0 -103
  419. package/template/apps/web/node_modules/better-call/dist/cookies.mjs +0 -84
  420. package/template/apps/web/node_modules/better-call/dist/cookies.mjs.map +0 -1
  421. package/template/apps/web/node_modules/better-call/dist/crypto.cjs +0 -39
  422. package/template/apps/web/node_modules/better-call/dist/crypto.cjs.map +0 -1
  423. package/template/apps/web/node_modules/better-call/dist/crypto.mjs +0 -36
  424. package/template/apps/web/node_modules/better-call/dist/crypto.mjs.map +0 -1
  425. package/template/apps/web/node_modules/better-call/dist/endpoint.cjs +0 -70
  426. package/template/apps/web/node_modules/better-call/dist/endpoint.cjs.map +0 -1
  427. package/template/apps/web/node_modules/better-call/dist/endpoint.d.cts +0 -475
  428. package/template/apps/web/node_modules/better-call/dist/endpoint.d.mts +0 -475
  429. package/template/apps/web/node_modules/better-call/dist/endpoint.mjs +0 -70
  430. package/template/apps/web/node_modules/better-call/dist/endpoint.mjs.map +0 -1
  431. package/template/apps/web/node_modules/better-call/dist/error.cjs +0 -141
  432. package/template/apps/web/node_modules/better-call/dist/error.cjs.map +0 -1
  433. package/template/apps/web/node_modules/better-call/dist/error.d.cts +0 -103
  434. package/template/apps/web/node_modules/better-call/dist/error.d.mts +0 -103
  435. package/template/apps/web/node_modules/better-call/dist/error.mjs +0 -133
  436. package/template/apps/web/node_modules/better-call/dist/error.mjs.map +0 -1
  437. package/template/apps/web/node_modules/better-call/dist/helper.d.cts +0 -12
  438. package/template/apps/web/node_modules/better-call/dist/helper.d.mts +0 -12
  439. package/template/apps/web/node_modules/better-call/dist/index.cjs +0 -28
  440. package/template/apps/web/node_modules/better-call/dist/index.d.cts +0 -11
  441. package/template/apps/web/node_modules/better-call/dist/index.d.mts +0 -11
  442. package/template/apps/web/node_modules/better-call/dist/index.mjs +0 -10
  443. package/template/apps/web/node_modules/better-call/dist/middleware.cjs +0 -52
  444. package/template/apps/web/node_modules/better-call/dist/middleware.cjs.map +0 -1
  445. package/template/apps/web/node_modules/better-call/dist/middleware.d.cts +0 -123
  446. package/template/apps/web/node_modules/better-call/dist/middleware.d.mts +0 -123
  447. package/template/apps/web/node_modules/better-call/dist/middleware.mjs +0 -52
  448. package/template/apps/web/node_modules/better-call/dist/middleware.mjs.map +0 -1
  449. package/template/apps/web/node_modules/better-call/dist/node.cjs +0 -18
  450. package/template/apps/web/node_modules/better-call/dist/node.cjs.map +0 -1
  451. package/template/apps/web/node_modules/better-call/dist/node.d.cts +0 -9
  452. package/template/apps/web/node_modules/better-call/dist/node.d.mts +0 -9
  453. package/template/apps/web/node_modules/better-call/dist/node.mjs +0 -15
  454. package/template/apps/web/node_modules/better-call/dist/node.mjs.map +0 -1
  455. package/template/apps/web/node_modules/better-call/dist/openapi.cjs +0 -191
  456. package/template/apps/web/node_modules/better-call/dist/openapi.cjs.map +0 -1
  457. package/template/apps/web/node_modules/better-call/dist/openapi.d.cts +0 -113
  458. package/template/apps/web/node_modules/better-call/dist/openapi.d.mts +0 -113
  459. package/template/apps/web/node_modules/better-call/dist/openapi.mjs +0 -189
  460. package/template/apps/web/node_modules/better-call/dist/openapi.mjs.map +0 -1
  461. package/template/apps/web/node_modules/better-call/dist/router.cjs +0 -118
  462. package/template/apps/web/node_modules/better-call/dist/router.cjs.map +0 -1
  463. package/template/apps/web/node_modules/better-call/dist/router.d.cts +0 -103
  464. package/template/apps/web/node_modules/better-call/dist/router.d.mts +0 -103
  465. package/template/apps/web/node_modules/better-call/dist/router.mjs +0 -117
  466. package/template/apps/web/node_modules/better-call/dist/router.mjs.map +0 -1
  467. package/template/apps/web/node_modules/better-call/dist/standard-schema.d.cts +0 -59
  468. package/template/apps/web/node_modules/better-call/dist/standard-schema.d.mts +0 -59
  469. package/template/apps/web/node_modules/better-call/dist/to-response.cjs +0 -153
  470. package/template/apps/web/node_modules/better-call/dist/to-response.cjs.map +0 -1
  471. package/template/apps/web/node_modules/better-call/dist/to-response.d.cts +0 -12
  472. package/template/apps/web/node_modules/better-call/dist/to-response.d.mts +0 -12
  473. package/template/apps/web/node_modules/better-call/dist/to-response.mjs +0 -153
  474. package/template/apps/web/node_modules/better-call/dist/to-response.mjs.map +0 -1
  475. package/template/apps/web/node_modules/better-call/dist/utils.cjs +0 -86
  476. package/template/apps/web/node_modules/better-call/dist/utils.cjs.map +0 -1
  477. package/template/apps/web/node_modules/better-call/dist/utils.mjs +0 -82
  478. package/template/apps/web/node_modules/better-call/dist/utils.mjs.map +0 -1
  479. package/template/apps/web/node_modules/better-call/dist/validator.cjs +0 -58
  480. package/template/apps/web/node_modules/better-call/dist/validator.cjs.map +0 -1
  481. package/template/apps/web/node_modules/better-call/dist/validator.mjs +0 -57
  482. package/template/apps/web/node_modules/better-call/dist/validator.mjs.map +0 -1
  483. package/template/apps/web/node_modules/better-call/package.json +0 -96
  484. package/template/apps/web/node_modules/set-cookie-parser/LICENSE +0 -21
  485. package/template/apps/web/node_modules/set-cookie-parser/README.md +0 -169
  486. package/template/apps/web/node_modules/set-cookie-parser/dist/.eslintrc.cjs +0 -16
  487. package/template/apps/web/node_modules/set-cookie-parser/dist/set-cookie.cjs +0 -260
  488. package/template/apps/web/node_modules/set-cookie-parser/lib/set-cookie.d.ts +0 -119
  489. package/template/apps/web/node_modules/set-cookie-parser/lib/set-cookie.js +0 -265
  490. 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"}