create-croissant 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/package.json +1 -1
  2. package/template/apps/web/package.json +4 -0
  3. package/template/apps/web/src/components/login-form.tsx +95 -48
  4. package/template/apps/web/src/components/signup-form.tsx +149 -79
  5. package/template/apps/web/src/routes/__root.tsx +18 -11
  6. package/template/apps/web/src/routes/client-orpc-auth.tsx +8 -20
  7. package/template/apps/web/src/routes/client-orpc.tsx +269 -24
  8. package/template/apps/web/src/routes/isr.tsx +4 -0
  9. package/template/apps/web/src/routes/ssr-orpc.tsx +245 -18
  10. package/template/apps/web/vite.config.ts +5 -1
  11. package/template/package.json +3 -1
  12. package/template/packages/orpc/src/lib/router.ts +63 -0
  13. package/template/apps/web/node_modules/@better-auth/core/LICENSE.md +0 -20
  14. package/template/apps/web/node_modules/@better-auth/core/README.md +0 -17
  15. package/template/apps/web/node_modules/@better-auth/core/dist/api/index.d.mts +0 -278
  16. package/template/apps/web/node_modules/@better-auth/core/dist/api/index.mjs +0 -56
  17. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/index.d.mts +0 -6
  18. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/index.mjs +0 -20
  19. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/pure.index.d.mts +0 -6
  20. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/pure.index.mjs +0 -33
  21. package/template/apps/web/node_modules/@better-auth/core/dist/context/endpoint-context.d.mts +0 -18
  22. package/template/apps/web/node_modules/@better-auth/core/dist/context/endpoint-context.mjs +0 -29
  23. package/template/apps/web/node_modules/@better-auth/core/dist/context/global.d.mts +0 -6
  24. package/template/apps/web/node_modules/@better-auth/core/dist/context/global.mjs +0 -36
  25. package/template/apps/web/node_modules/@better-auth/core/dist/context/index.d.mts +0 -5
  26. package/template/apps/web/node_modules/@better-auth/core/dist/context/index.mjs +0 -5
  27. package/template/apps/web/node_modules/@better-auth/core/dist/context/request-state.d.mts +0 -27
  28. package/template/apps/web/node_modules/@better-auth/core/dist/context/request-state.mjs +0 -47
  29. package/template/apps/web/node_modules/@better-auth/core/dist/context/transaction.d.mts +0 -24
  30. package/template/apps/web/node_modules/@better-auth/core/dist/context/transaction.mjs +0 -93
  31. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/factory.d.mts +0 -17
  32. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/factory.mjs +0 -754
  33. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-field-name.d.mts +0 -18
  34. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-field-name.mjs +0 -36
  35. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-model-name.d.mts +0 -12
  36. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-model-name.mjs +0 -30
  37. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.d.mts +0 -26
  38. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.mjs +0 -37
  39. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-name.d.mts +0 -18
  40. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-name.mjs +0 -31
  41. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-id-field.d.mts +0 -36
  42. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-id-field.mjs +0 -64
  43. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-model-name.d.mts +0 -12
  44. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-model-name.mjs +0 -21
  45. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/index.d.mts +0 -525
  46. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/index.mjs +0 -24
  47. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/types.d.mts +0 -105
  48. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/utils.d.mts +0 -7
  49. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/utils.mjs +0 -37
  50. package/template/apps/web/node_modules/@better-auth/core/dist/db/get-tables.d.mts +0 -6
  51. package/template/apps/web/node_modules/@better-auth/core/dist/db/get-tables.mjs +0 -265
  52. package/template/apps/web/node_modules/@better-auth/core/dist/db/index.d.mts +0 -10
  53. package/template/apps/web/node_modules/@better-auth/core/dist/db/index.mjs +0 -8
  54. package/template/apps/web/node_modules/@better-auth/core/dist/db/plugin.d.mts +0 -12
  55. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/account.d.mts +0 -28
  56. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/account.mjs +0 -17
  57. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/rate-limit.d.mts +0 -18
  58. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/rate-limit.mjs +0 -9
  59. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/session.d.mts +0 -23
  60. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/session.mjs +0 -12
  61. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/shared.d.mts +0 -10
  62. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/shared.mjs +0 -9
  63. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/user.d.mts +0 -22
  64. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/user.mjs +0 -11
  65. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/verification.d.mts +0 -21
  66. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/verification.mjs +0 -10
  67. package/template/apps/web/node_modules/@better-auth/core/dist/db/type.d.mts +0 -167
  68. package/template/apps/web/node_modules/@better-auth/core/dist/env/color-depth.d.mts +0 -4
  69. package/template/apps/web/node_modules/@better-auth/core/dist/env/color-depth.mjs +0 -86
  70. package/template/apps/web/node_modules/@better-auth/core/dist/env/env-impl.d.mts +0 -32
  71. package/template/apps/web/node_modules/@better-auth/core/dist/env/env-impl.mjs +0 -81
  72. package/template/apps/web/node_modules/@better-auth/core/dist/env/index.d.mts +0 -4
  73. package/template/apps/web/node_modules/@better-auth/core/dist/env/index.mjs +0 -4
  74. package/template/apps/web/node_modules/@better-auth/core/dist/env/logger.d.mts +0 -48
  75. package/template/apps/web/node_modules/@better-auth/core/dist/env/logger.mjs +0 -79
  76. package/template/apps/web/node_modules/@better-auth/core/dist/error/codes.d.mts +0 -68
  77. package/template/apps/web/node_modules/@better-auth/core/dist/error/codes.mjs +0 -54
  78. package/template/apps/web/node_modules/@better-auth/core/dist/error/index.d.mts +0 -19
  79. package/template/apps/web/node_modules/@better-auth/core/dist/error/index.mjs +0 -27
  80. package/template/apps/web/node_modules/@better-auth/core/dist/index.d.mts +0 -9
  81. package/template/apps/web/node_modules/@better-auth/core/dist/index.mjs +0 -1
  82. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/api.mjs +0 -12
  83. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/attributes.d.mts +0 -11
  84. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/attributes.mjs +0 -10
  85. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/index.d.mts +0 -3
  86. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/index.mjs +0 -3
  87. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/noop.mjs +0 -42
  88. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/pure.index.d.mts +0 -7
  89. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/pure.index.mjs +0 -7
  90. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/tracer.d.mts +0 -13
  91. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/tracer.mjs +0 -53
  92. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/client-credentials-token.d.mts +0 -56
  93. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/client-credentials-token.mjs +0 -64
  94. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/create-authorization-url.d.mts +0 -44
  95. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/create-authorization-url.mjs +0 -41
  96. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/index.d.mts +0 -8
  97. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/index.mjs +0 -7
  98. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/oauth-provider.d.mts +0 -192
  99. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/refresh-access-token.d.mts +0 -54
  100. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/refresh-access-token.mjs +0 -73
  101. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/utils.d.mts +0 -16
  102. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/utils.mjs +0 -37
  103. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/validate-authorization-code.d.mts +0 -85
  104. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/validate-authorization-code.mjs +0 -79
  105. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/verify.d.mts +0 -42
  106. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/verify.mjs +0 -92
  107. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/apple.d.mts +0 -126
  108. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/apple.mjs +0 -107
  109. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/atlassian.d.mts +0 -70
  110. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/atlassian.mjs +0 -80
  111. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/cognito.d.mts +0 -85
  112. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/cognito.mjs +0 -162
  113. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/discord.d.mts +0 -124
  114. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/discord.mjs +0 -62
  115. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/dropbox.d.mts +0 -69
  116. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/dropbox.mjs +0 -72
  117. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/facebook.d.mts +0 -79
  118. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/facebook.mjs +0 -124
  119. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/figma.d.mts +0 -61
  120. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/figma.mjs +0 -83
  121. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/github.d.mts +0 -102
  122. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/github.mjs +0 -92
  123. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/gitlab.d.mts +0 -123
  124. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/gitlab.mjs +0 -79
  125. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/google.d.mts +0 -97
  126. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/google.mjs +0 -109
  127. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/huggingface.d.mts +0 -83
  128. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/huggingface.mjs +0 -73
  129. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/index.d.mts +0 -1834
  130. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/index.mjs +0 -78
  131. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kakao.d.mts +0 -161
  132. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kakao.mjs +0 -70
  133. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kick.d.mts +0 -73
  134. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kick.mjs +0 -68
  135. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/line.d.mts +0 -105
  136. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/line.mjs +0 -110
  137. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linear.d.mts +0 -68
  138. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linear.mjs +0 -85
  139. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linkedin.d.mts +0 -67
  140. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linkedin.mjs +0 -73
  141. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/microsoft-entra-id.d.mts +0 -174
  142. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/microsoft-entra-id.mjs +0 -140
  143. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/naver.d.mts +0 -92
  144. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/naver.mjs +0 -65
  145. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/notion.d.mts +0 -64
  146. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/notion.mjs +0 -72
  147. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paybin.d.mts +0 -71
  148. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paybin.mjs +0 -81
  149. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paypal.d.mts +0 -129
  150. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paypal.mjs +0 -140
  151. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/polar.d.mts +0 -74
  152. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/polar.mjs +0 -71
  153. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/railway.d.mts +0 -65
  154. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/railway.mjs +0 -74
  155. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/reddit.d.mts +0 -62
  156. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/reddit.mjs +0 -80
  157. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/roblox.d.mts +0 -70
  158. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/roblox.mjs +0 -57
  159. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/salesforce.d.mts +0 -79
  160. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/salesforce.mjs +0 -87
  161. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/slack.d.mts +0 -83
  162. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/slack.mjs +0 -66
  163. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/spotify.d.mts +0 -63
  164. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/spotify.mjs +0 -69
  165. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/tiktok.d.mts +0 -168
  166. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/tiktok.mjs +0 -60
  167. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitch.d.mts +0 -79
  168. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitch.mjs +0 -75
  169. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitter.d.mts +0 -126
  170. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitter.mjs +0 -85
  171. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vercel.d.mts +0 -62
  172. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vercel.mjs +0 -58
  173. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vk.d.mts +0 -70
  174. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vk.mjs +0 -81
  175. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/wechat.d.mts +0 -113
  176. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/wechat.mjs +0 -81
  177. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/zoom.d.mts +0 -163
  178. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/zoom.mjs +0 -69
  179. package/template/apps/web/node_modules/@better-auth/core/dist/types/context.d.mts +0 -277
  180. package/template/apps/web/node_modules/@better-auth/core/dist/types/cookie.d.mts +0 -15
  181. package/template/apps/web/node_modules/@better-auth/core/dist/types/helper.d.mts +0 -10
  182. package/template/apps/web/node_modules/@better-auth/core/dist/types/index.d.mts +0 -9
  183. package/template/apps/web/node_modules/@better-auth/core/dist/types/init-options.d.mts +0 -1358
  184. package/template/apps/web/node_modules/@better-auth/core/dist/types/plugin-client.d.mts +0 -113
  185. package/template/apps/web/node_modules/@better-auth/core/dist/types/plugin.d.mts +0 -124
  186. package/template/apps/web/node_modules/@better-auth/core/dist/types/secret.d.mts +0 -11
  187. package/template/apps/web/node_modules/@better-auth/core/dist/utils/async.d.mts +0 -22
  188. package/template/apps/web/node_modules/@better-auth/core/dist/utils/async.mjs +0 -32
  189. package/template/apps/web/node_modules/@better-auth/core/dist/utils/db.d.mts +0 -9
  190. package/template/apps/web/node_modules/@better-auth/core/dist/utils/db.mjs +0 -15
  191. package/template/apps/web/node_modules/@better-auth/core/dist/utils/deprecate.d.mts +0 -9
  192. package/template/apps/web/node_modules/@better-auth/core/dist/utils/deprecate.mjs +0 -16
  193. package/template/apps/web/node_modules/@better-auth/core/dist/utils/error-codes.d.mts +0 -13
  194. package/template/apps/web/node_modules/@better-auth/core/dist/utils/error-codes.mjs +0 -10
  195. package/template/apps/web/node_modules/@better-auth/core/dist/utils/fetch-metadata.d.mts +0 -4
  196. package/template/apps/web/node_modules/@better-auth/core/dist/utils/fetch-metadata.mjs +0 -6
  197. package/template/apps/web/node_modules/@better-auth/core/dist/utils/host.d.mts +0 -147
  198. package/template/apps/web/node_modules/@better-auth/core/dist/utils/host.mjs +0 -291
  199. package/template/apps/web/node_modules/@better-auth/core/dist/utils/id.d.mts +0 -4
  200. package/template/apps/web/node_modules/@better-auth/core/dist/utils/id.mjs +0 -7
  201. package/template/apps/web/node_modules/@better-auth/core/dist/utils/ip.d.mts +0 -54
  202. package/template/apps/web/node_modules/@better-auth/core/dist/utils/ip.mjs +0 -116
  203. package/template/apps/web/node_modules/@better-auth/core/dist/utils/is-api-error.d.mts +0 -6
  204. package/template/apps/web/node_modules/@better-auth/core/dist/utils/is-api-error.mjs +0 -8
  205. package/template/apps/web/node_modules/@better-auth/core/dist/utils/json.d.mts +0 -4
  206. package/template/apps/web/node_modules/@better-auth/core/dist/utils/json.mjs +0 -41
  207. package/template/apps/web/node_modules/@better-auth/core/dist/utils/string.d.mts +0 -4
  208. package/template/apps/web/node_modules/@better-auth/core/dist/utils/string.mjs +0 -6
  209. package/template/apps/web/node_modules/@better-auth/core/dist/utils/url.d.mts +0 -20
  210. package/template/apps/web/node_modules/@better-auth/core/dist/utils/url.mjs +0 -31
  211. package/template/apps/web/node_modules/@better-auth/core/package.json +0 -193
  212. package/template/apps/web/node_modules/@better-auth/core/src/api/index.ts +0 -140
  213. package/template/apps/web/node_modules/@better-auth/core/src/async_hooks/index.ts +0 -40
  214. package/template/apps/web/node_modules/@better-auth/core/src/async_hooks/pure.index.ts +0 -46
  215. package/template/apps/web/node_modules/@better-auth/core/src/context/endpoint-context.ts +0 -50
  216. package/template/apps/web/node_modules/@better-auth/core/src/context/global.ts +0 -57
  217. package/template/apps/web/node_modules/@better-auth/core/src/context/index.ts +0 -23
  218. package/template/apps/web/node_modules/@better-auth/core/src/context/request-state.ts +0 -91
  219. package/template/apps/web/node_modules/@better-auth/core/src/context/transaction.ts +0 -136
  220. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/factory.ts +0 -1440
  221. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-default-field-name.ts +0 -59
  222. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-default-model-name.ts +0 -51
  223. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-field-attributes.ts +0 -62
  224. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-field-name.ts +0 -43
  225. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-id-field.ts +0 -150
  226. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-model-name.ts +0 -36
  227. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/index.ts +0 -567
  228. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/types.ts +0 -132
  229. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/utils.ts +0 -61
  230. package/template/apps/web/node_modules/@better-auth/core/src/db/get-tables.ts +0 -296
  231. package/template/apps/web/node_modules/@better-auth/core/src/db/index.ts +0 -43
  232. package/template/apps/web/node_modules/@better-auth/core/src/db/plugin.ts +0 -11
  233. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/account.ts +0 -47
  234. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/rate-limit.ts +0 -36
  235. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/session.ts +0 -29
  236. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/shared.ts +0 -7
  237. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/user.ts +0 -28
  238. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/verification.ts +0 -28
  239. package/template/apps/web/node_modules/@better-auth/core/src/db/type.ts +0 -333
  240. package/template/apps/web/node_modules/@better-auth/core/src/env/color-depth.ts +0 -172
  241. package/template/apps/web/node_modules/@better-auth/core/src/env/env-impl.ts +0 -124
  242. package/template/apps/web/node_modules/@better-auth/core/src/env/index.ts +0 -23
  243. package/template/apps/web/node_modules/@better-auth/core/src/env/logger.ts +0 -145
  244. package/template/apps/web/node_modules/@better-auth/core/src/error/codes.ts +0 -71
  245. package/template/apps/web/node_modules/@better-auth/core/src/error/index.ts +0 -35
  246. package/template/apps/web/node_modules/@better-auth/core/src/index.ts +0 -1
  247. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/api.ts +0 -17
  248. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/attributes.ts +0 -22
  249. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/index.ts +0 -2
  250. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/noop.ts +0 -74
  251. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/pure.index.ts +0 -31
  252. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/tracer.ts +0 -95
  253. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/client-credentials-token.ts +0 -126
  254. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/create-authorization-url.ts +0 -89
  255. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/index.ts +0 -33
  256. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/oauth-provider.ts +0 -222
  257. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/refresh-access-token.ts +0 -157
  258. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/utils.ts +0 -51
  259. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/validate-authorization-code.ts +0 -180
  260. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/verify.ts +0 -221
  261. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/apple.ts +0 -231
  262. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/atlassian.ts +0 -133
  263. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/cognito.ts +0 -281
  264. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/discord.ts +0 -170
  265. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/dropbox.ts +0 -112
  266. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/facebook.ts +0 -215
  267. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/figma.ts +0 -118
  268. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/github.ts +0 -184
  269. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/gitlab.ts +0 -155
  270. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/google.ts +0 -204
  271. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/huggingface.ts +0 -119
  272. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/index.ts +0 -132
  273. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/kakao.ts +0 -179
  274. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/kick.ts +0 -109
  275. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/line.ts +0 -169
  276. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/linear.ts +0 -121
  277. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/linkedin.ts +0 -110
  278. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/microsoft-entra-id.ts +0 -352
  279. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/naver.ts +0 -113
  280. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/notion.ts +0 -108
  281. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/paybin.ts +0 -118
  282. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/paypal.ts +0 -263
  283. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/polar.ts +0 -111
  284. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/railway.ts +0 -100
  285. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/reddit.ts +0 -122
  286. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/roblox.ts +0 -112
  287. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/salesforce.ts +0 -159
  288. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/slack.ts +0 -112
  289. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/spotify.ts +0 -94
  290. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/tiktok.ts +0 -211
  291. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/twitch.ts +0 -112
  292. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/twitter.ts +0 -199
  293. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/vercel.ts +0 -87
  294. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/vk.ts +0 -125
  295. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/wechat.ts +0 -213
  296. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/zoom.ts +0 -230
  297. package/template/apps/web/node_modules/@better-auth/core/src/types/context.ts +0 -415
  298. package/template/apps/web/node_modules/@better-auth/core/src/types/cookie.ts +0 -10
  299. package/template/apps/web/node_modules/@better-auth/core/src/types/helper.ts +0 -27
  300. package/template/apps/web/node_modules/@better-auth/core/src/types/index.ts +0 -40
  301. package/template/apps/web/node_modules/@better-auth/core/src/types/init-options.ts +0 -1610
  302. package/template/apps/web/node_modules/@better-auth/core/src/types/plugin-client.ts +0 -129
  303. package/template/apps/web/node_modules/@better-auth/core/src/types/plugin.ts +0 -163
  304. package/template/apps/web/node_modules/@better-auth/core/src/types/secret.ts +0 -8
  305. package/template/apps/web/node_modules/@better-auth/core/src/utils/async.ts +0 -53
  306. package/template/apps/web/node_modules/@better-auth/core/src/utils/db.ts +0 -20
  307. package/template/apps/web/node_modules/@better-auth/core/src/utils/deprecate.ts +0 -21
  308. package/template/apps/web/node_modules/@better-auth/core/src/utils/error-codes.ts +0 -68
  309. package/template/apps/web/node_modules/@better-auth/core/src/utils/fetch-metadata.ts +0 -3
  310. package/template/apps/web/node_modules/@better-auth/core/src/utils/host.ts +0 -401
  311. package/template/apps/web/node_modules/@better-auth/core/src/utils/id.ts +0 -5
  312. package/template/apps/web/node_modules/@better-auth/core/src/utils/ip.ts +0 -211
  313. package/template/apps/web/node_modules/@better-auth/core/src/utils/is-api-error.ts +0 -10
  314. package/template/apps/web/node_modules/@better-auth/core/src/utils/json.ts +0 -56
  315. package/template/apps/web/node_modules/@better-auth/core/src/utils/string.ts +0 -3
  316. package/template/apps/web/node_modules/@better-auth/core/src/utils/url.ts +0 -43
  317. package/template/apps/web/node_modules/@better-auth/utils/README.md +0 -384
  318. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.cjs +0 -104
  319. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.d.cts +0 -44
  320. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.d.mts +0 -44
  321. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.d.ts +0 -44
  322. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.mjs +0 -101
  323. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.cjs +0 -80
  324. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.d.cts +0 -16
  325. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.d.mts +0 -16
  326. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.d.ts +0 -16
  327. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.mjs +0 -77
  328. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.cjs +0 -16
  329. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.d.cts +0 -8
  330. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.d.mts +0 -8
  331. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.d.ts +0 -8
  332. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.mjs +0 -14
  333. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.cjs +0 -90
  334. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.d.cts +0 -19
  335. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.d.mts +0 -19
  336. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.d.ts +0 -19
  337. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.mjs +0 -88
  338. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.cjs +0 -31
  339. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.d.cts +0 -7
  340. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.d.mts +0 -7
  341. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.d.ts +0 -7
  342. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.mjs +0 -29
  343. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.cjs +0 -40
  344. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.d.cts +0 -8
  345. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.d.mts +0 -8
  346. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.d.ts +0 -8
  347. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.mjs +0 -38
  348. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.cjs +0 -58
  349. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.d.cts +0 -9
  350. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.d.mts +0 -9
  351. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.d.ts +0 -9
  352. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.mjs +0 -56
  353. package/template/apps/web/node_modules/@better-auth/utils/dist/index.cjs +0 -10
  354. package/template/apps/web/node_modules/@better-auth/utils/dist/index.d.cts +0 -3
  355. package/template/apps/web/node_modules/@better-auth/utils/dist/index.d.mts +0 -3
  356. package/template/apps/web/node_modules/@better-auth/utils/dist/index.d.ts +0 -3
  357. package/template/apps/web/node_modules/@better-auth/utils/dist/index.mjs +0 -8
  358. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.cjs +0 -90
  359. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.d.cts +0 -13
  360. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.d.mts +0 -13
  361. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.d.ts +0 -13
  362. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.mjs +0 -88
  363. package/template/apps/web/node_modules/@better-auth/utils/dist/password.cjs +0 -36
  364. package/template/apps/web/node_modules/@better-auth/utils/dist/password.d.cts +0 -4
  365. package/template/apps/web/node_modules/@better-auth/utils/dist/password.d.mts +0 -4
  366. package/template/apps/web/node_modules/@better-auth/utils/dist/password.d.ts +0 -4
  367. package/template/apps/web/node_modules/@better-auth/utils/dist/password.mjs +0 -33
  368. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.cjs +0 -47
  369. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.d.cts +0 -4
  370. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.d.mts +0 -4
  371. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.d.ts +0 -4
  372. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.mjs +0 -44
  373. package/template/apps/web/node_modules/@better-auth/utils/dist/random.cjs +0 -55
  374. package/template/apps/web/node_modules/@better-auth/utils/dist/random.d.cts +0 -4
  375. package/template/apps/web/node_modules/@better-auth/utils/dist/random.d.mts +0 -4
  376. package/template/apps/web/node_modules/@better-auth/utils/dist/random.d.ts +0 -4
  377. package/template/apps/web/node_modules/@better-auth/utils/dist/random.mjs +0 -53
  378. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.cjs +0 -76
  379. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.d.cts +0 -16
  380. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.d.mts +0 -16
  381. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.d.ts +0 -16
  382. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.mjs +0 -74
  383. package/template/apps/web/node_modules/@better-auth/utils/dist/shared/utils.ecd028f7.d.cts +0 -22
  384. package/template/apps/web/node_modules/@better-auth/utils/dist/shared/utils.ecd028f7.d.mts +0 -22
  385. package/template/apps/web/node_modules/@better-auth/utils/dist/shared/utils.ecd028f7.d.ts +0 -22
  386. package/template/apps/web/node_modules/@better-auth/utils/package.json +0 -95
  387. package/template/apps/web/node_modules/better-call/LICENSE +0 -21
  388. package/template/apps/web/node_modules/better-call/dist/_virtual/_rolldown/runtime.cjs +0 -29
  389. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.cjs +0 -181
  390. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.cjs.map +0 -1
  391. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.d.cts +0 -16
  392. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.d.mts +0 -16
  393. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.mjs +0 -178
  394. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.mjs.map +0 -1
  395. package/template/apps/web/node_modules/better-call/dist/client.cjs +0 -23
  396. package/template/apps/web/node_modules/better-call/dist/client.cjs.map +0 -1
  397. package/template/apps/web/node_modules/better-call/dist/client.d.cts +0 -53
  398. package/template/apps/web/node_modules/better-call/dist/client.d.mts +0 -53
  399. package/template/apps/web/node_modules/better-call/dist/client.mjs +0 -14
  400. package/template/apps/web/node_modules/better-call/dist/client.mjs.map +0 -1
  401. package/template/apps/web/node_modules/better-call/dist/context.cjs +0 -103
  402. package/template/apps/web/node_modules/better-call/dist/context.cjs.map +0 -1
  403. package/template/apps/web/node_modules/better-call/dist/context.d.cts +0 -341
  404. package/template/apps/web/node_modules/better-call/dist/context.d.mts +0 -341
  405. package/template/apps/web/node_modules/better-call/dist/context.mjs +0 -103
  406. package/template/apps/web/node_modules/better-call/dist/context.mjs.map +0 -1
  407. package/template/apps/web/node_modules/better-call/dist/cookies.cjs +0 -87
  408. package/template/apps/web/node_modules/better-call/dist/cookies.cjs.map +0 -1
  409. package/template/apps/web/node_modules/better-call/dist/cookies.d.cts +0 -103
  410. package/template/apps/web/node_modules/better-call/dist/cookies.d.mts +0 -103
  411. package/template/apps/web/node_modules/better-call/dist/cookies.mjs +0 -84
  412. package/template/apps/web/node_modules/better-call/dist/cookies.mjs.map +0 -1
  413. package/template/apps/web/node_modules/better-call/dist/crypto.cjs +0 -39
  414. package/template/apps/web/node_modules/better-call/dist/crypto.cjs.map +0 -1
  415. package/template/apps/web/node_modules/better-call/dist/crypto.mjs +0 -36
  416. package/template/apps/web/node_modules/better-call/dist/crypto.mjs.map +0 -1
  417. package/template/apps/web/node_modules/better-call/dist/endpoint.cjs +0 -70
  418. package/template/apps/web/node_modules/better-call/dist/endpoint.cjs.map +0 -1
  419. package/template/apps/web/node_modules/better-call/dist/endpoint.d.cts +0 -475
  420. package/template/apps/web/node_modules/better-call/dist/endpoint.d.mts +0 -475
  421. package/template/apps/web/node_modules/better-call/dist/endpoint.mjs +0 -70
  422. package/template/apps/web/node_modules/better-call/dist/endpoint.mjs.map +0 -1
  423. package/template/apps/web/node_modules/better-call/dist/error.cjs +0 -141
  424. package/template/apps/web/node_modules/better-call/dist/error.cjs.map +0 -1
  425. package/template/apps/web/node_modules/better-call/dist/error.d.cts +0 -103
  426. package/template/apps/web/node_modules/better-call/dist/error.d.mts +0 -103
  427. package/template/apps/web/node_modules/better-call/dist/error.mjs +0 -133
  428. package/template/apps/web/node_modules/better-call/dist/error.mjs.map +0 -1
  429. package/template/apps/web/node_modules/better-call/dist/helper.d.cts +0 -12
  430. package/template/apps/web/node_modules/better-call/dist/helper.d.mts +0 -12
  431. package/template/apps/web/node_modules/better-call/dist/index.cjs +0 -28
  432. package/template/apps/web/node_modules/better-call/dist/index.d.cts +0 -11
  433. package/template/apps/web/node_modules/better-call/dist/index.d.mts +0 -11
  434. package/template/apps/web/node_modules/better-call/dist/index.mjs +0 -10
  435. package/template/apps/web/node_modules/better-call/dist/middleware.cjs +0 -52
  436. package/template/apps/web/node_modules/better-call/dist/middleware.cjs.map +0 -1
  437. package/template/apps/web/node_modules/better-call/dist/middleware.d.cts +0 -123
  438. package/template/apps/web/node_modules/better-call/dist/middleware.d.mts +0 -123
  439. package/template/apps/web/node_modules/better-call/dist/middleware.mjs +0 -52
  440. package/template/apps/web/node_modules/better-call/dist/middleware.mjs.map +0 -1
  441. package/template/apps/web/node_modules/better-call/dist/node.cjs +0 -18
  442. package/template/apps/web/node_modules/better-call/dist/node.cjs.map +0 -1
  443. package/template/apps/web/node_modules/better-call/dist/node.d.cts +0 -9
  444. package/template/apps/web/node_modules/better-call/dist/node.d.mts +0 -9
  445. package/template/apps/web/node_modules/better-call/dist/node.mjs +0 -15
  446. package/template/apps/web/node_modules/better-call/dist/node.mjs.map +0 -1
  447. package/template/apps/web/node_modules/better-call/dist/openapi.cjs +0 -191
  448. package/template/apps/web/node_modules/better-call/dist/openapi.cjs.map +0 -1
  449. package/template/apps/web/node_modules/better-call/dist/openapi.d.cts +0 -113
  450. package/template/apps/web/node_modules/better-call/dist/openapi.d.mts +0 -113
  451. package/template/apps/web/node_modules/better-call/dist/openapi.mjs +0 -189
  452. package/template/apps/web/node_modules/better-call/dist/openapi.mjs.map +0 -1
  453. package/template/apps/web/node_modules/better-call/dist/router.cjs +0 -118
  454. package/template/apps/web/node_modules/better-call/dist/router.cjs.map +0 -1
  455. package/template/apps/web/node_modules/better-call/dist/router.d.cts +0 -103
  456. package/template/apps/web/node_modules/better-call/dist/router.d.mts +0 -103
  457. package/template/apps/web/node_modules/better-call/dist/router.mjs +0 -117
  458. package/template/apps/web/node_modules/better-call/dist/router.mjs.map +0 -1
  459. package/template/apps/web/node_modules/better-call/dist/standard-schema.d.cts +0 -59
  460. package/template/apps/web/node_modules/better-call/dist/standard-schema.d.mts +0 -59
  461. package/template/apps/web/node_modules/better-call/dist/to-response.cjs +0 -153
  462. package/template/apps/web/node_modules/better-call/dist/to-response.cjs.map +0 -1
  463. package/template/apps/web/node_modules/better-call/dist/to-response.d.cts +0 -12
  464. package/template/apps/web/node_modules/better-call/dist/to-response.d.mts +0 -12
  465. package/template/apps/web/node_modules/better-call/dist/to-response.mjs +0 -153
  466. package/template/apps/web/node_modules/better-call/dist/to-response.mjs.map +0 -1
  467. package/template/apps/web/node_modules/better-call/dist/utils.cjs +0 -86
  468. package/template/apps/web/node_modules/better-call/dist/utils.cjs.map +0 -1
  469. package/template/apps/web/node_modules/better-call/dist/utils.mjs +0 -82
  470. package/template/apps/web/node_modules/better-call/dist/utils.mjs.map +0 -1
  471. package/template/apps/web/node_modules/better-call/dist/validator.cjs +0 -58
  472. package/template/apps/web/node_modules/better-call/dist/validator.cjs.map +0 -1
  473. package/template/apps/web/node_modules/better-call/dist/validator.mjs +0 -57
  474. package/template/apps/web/node_modules/better-call/dist/validator.mjs.map +0 -1
  475. package/template/apps/web/node_modules/better-call/package.json +0 -96
  476. package/template/apps/web/node_modules/set-cookie-parser/LICENSE +0 -21
  477. package/template/apps/web/node_modules/set-cookie-parser/README.md +0 -169
  478. package/template/apps/web/node_modules/set-cookie-parser/dist/.eslintrc.cjs +0 -16
  479. package/template/apps/web/node_modules/set-cookie-parser/dist/set-cookie.cjs +0 -260
  480. package/template/apps/web/node_modules/set-cookie-parser/lib/set-cookie.d.ts +0 -119
  481. package/template/apps/web/node_modules/set-cookie-parser/lib/set-cookie.js +0 -265
  482. package/template/apps/web/node_modules/set-cookie-parser/package.json +0 -61
@@ -1,103 +0,0 @@
1
- //#region src/cookies.d.ts
2
- type CookiePrefixOptions = "host" | "secure";
3
- type CookieOptions = {
4
- /**
5
- * Domain of the cookie
6
- *
7
- * The Domain attribute specifies which server can receive a cookie. If specified, cookies are
8
- * available on the specified server and its subdomains. If the it is not
9
- * specified, the cookies are available on the server that sets it but not on
10
- * its subdomains.
11
- *
12
- * @example
13
- * `domain: "example.com"`
14
- */
15
- domain?: string;
16
- /**
17
- * A lifetime of a cookie. Permanent cookies are deleted after the date specified in the
18
- * Expires attribute:
19
- *
20
- * Expires has been available for longer than Max-Age, however Max-Age is less error-prone, and
21
- * takes precedence when both are set. The rationale behind this is that when you set an
22
- * Expires date and time, they're relative to the client the cookie is being set on. If the
23
- * server is set to a different time, this could cause errors
24
- */
25
- expires?: Date;
26
- /**
27
- * Forbids JavaScript from accessing the cookie, for example, through the Document.cookie
28
- * property. Note that a cookie that has been created with HttpOnly will still be sent with
29
- * JavaScript-initiated requests, for example, when calling XMLHttpRequest.send() or fetch().
30
- * This mitigates attacks against cross-site scripting
31
- */
32
- httpOnly?: boolean;
33
- /**
34
- * Indicates the number of seconds until the cookie expires. A zero or negative number will
35
- * expire the cookie immediately. If both Expires and Max-Age are set, Max-Age has precedence.
36
- *
37
- * @example 604800 - 7 days
38
- */
39
- maxAge?: number;
40
- /**
41
- * Indicates the path that must exist in the requested URL for the browser to send the Cookie
42
- * header.
43
- *
44
- * @example
45
- * "/docs"
46
- * // -> the request paths /docs, /docs/, /docs/Web/, and /docs/Web/HTTP will all match. the request paths /, /fr/docs will not match.
47
- */
48
- path?: string;
49
- /**
50
- * Indicates that the cookie is sent to the server only when a request is made with the https:
51
- * scheme (except on localhost), and therefore, is more resistant to man-in-the-middle attacks.
52
- */
53
- secure?: boolean;
54
- /**
55
- * Controls whether or not a cookie is sent with cross-site requests, providing some protection
56
- * against cross-site request forgery attacks (CSRF).
57
- *
58
- * Strict - Means that the browser sends the cookie only for same-site requests, that is,
59
- * requests originating from the same site that set the cookie. If a request originates from a
60
- * different domain or scheme (even with the same domain), no cookies with the SameSite=Strict
61
- * attribute are sent.
62
- *
63
- * Lax - Means that the cookie is not sent on cross-site requests, such as on requests to load
64
- * images or frames, but is sent when a user is navigating to the origin site from an external
65
- * site (for example, when following a link). This is the default behavior if the SameSite
66
- * attribute is not specified.
67
- *
68
- * None - Means that the browser sends the cookie with both cross-site and same-site requests.
69
- * The Secure attribute must also be set when setting this value.
70
- */
71
- sameSite?: "Strict" | "Lax" | "None" | "strict" | "lax" | "none";
72
- /**
73
- * Indicates that the cookie should be stored using partitioned storage. Note that if this is
74
- * set, the Secure directive must also be set.
75
- *
76
- * @see https://developer.mozilla.org/en-US/docs/Web/Privacy/Privacy_sandbox/Partitioned_cookies
77
- */
78
- partitioned?: boolean;
79
- /**
80
- * Cooke Prefix
81
- *
82
- * - secure: `__Secure-` -> `__Secure-cookie-name`
83
- * - host: `__Host-` -> `__Host-cookie-name`
84
- *
85
- * `secure` must be set to true to use prefixes
86
- */
87
- prefix?: CookiePrefixOptions;
88
- };
89
- declare const getCookieKey: (key: string, prefix?: CookiePrefixOptions) => string | undefined;
90
- /**
91
- * Parse an HTTP Cookie header string and returning an object of all cookie
92
- * name-value pairs.
93
- *
94
- * Inspired by https://github.com/unjs/cookie-es/blob/main/src/cookie/parse.ts
95
- *
96
- * @param str the string representing a `Cookie` header value
97
- */
98
- declare function parseCookies(str: string): Map<string, string>;
99
- declare const serializeCookie: (key: string, value: string, opt?: CookieOptions) => string;
100
- declare const serializeSignedCookie: (key: string, value: string, secret: string, opt?: CookieOptions) => Promise<string>;
101
- //#endregion
102
- export { CookieOptions, CookiePrefixOptions, getCookieKey, parseCookies, serializeCookie, serializeSignedCookie };
103
- //# sourceMappingURL=cookies.d.cts.map
@@ -1,103 +0,0 @@
1
- //#region src/cookies.d.ts
2
- type CookiePrefixOptions = "host" | "secure";
3
- type CookieOptions = {
4
- /**
5
- * Domain of the cookie
6
- *
7
- * The Domain attribute specifies which server can receive a cookie. If specified, cookies are
8
- * available on the specified server and its subdomains. If the it is not
9
- * specified, the cookies are available on the server that sets it but not on
10
- * its subdomains.
11
- *
12
- * @example
13
- * `domain: "example.com"`
14
- */
15
- domain?: string;
16
- /**
17
- * A lifetime of a cookie. Permanent cookies are deleted after the date specified in the
18
- * Expires attribute:
19
- *
20
- * Expires has been available for longer than Max-Age, however Max-Age is less error-prone, and
21
- * takes precedence when both are set. The rationale behind this is that when you set an
22
- * Expires date and time, they're relative to the client the cookie is being set on. If the
23
- * server is set to a different time, this could cause errors
24
- */
25
- expires?: Date;
26
- /**
27
- * Forbids JavaScript from accessing the cookie, for example, through the Document.cookie
28
- * property. Note that a cookie that has been created with HttpOnly will still be sent with
29
- * JavaScript-initiated requests, for example, when calling XMLHttpRequest.send() or fetch().
30
- * This mitigates attacks against cross-site scripting
31
- */
32
- httpOnly?: boolean;
33
- /**
34
- * Indicates the number of seconds until the cookie expires. A zero or negative number will
35
- * expire the cookie immediately. If both Expires and Max-Age are set, Max-Age has precedence.
36
- *
37
- * @example 604800 - 7 days
38
- */
39
- maxAge?: number;
40
- /**
41
- * Indicates the path that must exist in the requested URL for the browser to send the Cookie
42
- * header.
43
- *
44
- * @example
45
- * "/docs"
46
- * // -> the request paths /docs, /docs/, /docs/Web/, and /docs/Web/HTTP will all match. the request paths /, /fr/docs will not match.
47
- */
48
- path?: string;
49
- /**
50
- * Indicates that the cookie is sent to the server only when a request is made with the https:
51
- * scheme (except on localhost), and therefore, is more resistant to man-in-the-middle attacks.
52
- */
53
- secure?: boolean;
54
- /**
55
- * Controls whether or not a cookie is sent with cross-site requests, providing some protection
56
- * against cross-site request forgery attacks (CSRF).
57
- *
58
- * Strict - Means that the browser sends the cookie only for same-site requests, that is,
59
- * requests originating from the same site that set the cookie. If a request originates from a
60
- * different domain or scheme (even with the same domain), no cookies with the SameSite=Strict
61
- * attribute are sent.
62
- *
63
- * Lax - Means that the cookie is not sent on cross-site requests, such as on requests to load
64
- * images or frames, but is sent when a user is navigating to the origin site from an external
65
- * site (for example, when following a link). This is the default behavior if the SameSite
66
- * attribute is not specified.
67
- *
68
- * None - Means that the browser sends the cookie with both cross-site and same-site requests.
69
- * The Secure attribute must also be set when setting this value.
70
- */
71
- sameSite?: "Strict" | "Lax" | "None" | "strict" | "lax" | "none";
72
- /**
73
- * Indicates that the cookie should be stored using partitioned storage. Note that if this is
74
- * set, the Secure directive must also be set.
75
- *
76
- * @see https://developer.mozilla.org/en-US/docs/Web/Privacy/Privacy_sandbox/Partitioned_cookies
77
- */
78
- partitioned?: boolean;
79
- /**
80
- * Cooke Prefix
81
- *
82
- * - secure: `__Secure-` -> `__Secure-cookie-name`
83
- * - host: `__Host-` -> `__Host-cookie-name`
84
- *
85
- * `secure` must be set to true to use prefixes
86
- */
87
- prefix?: CookiePrefixOptions;
88
- };
89
- declare const getCookieKey: (key: string, prefix?: CookiePrefixOptions) => string | undefined;
90
- /**
91
- * Parse an HTTP Cookie header string and returning an object of all cookie
92
- * name-value pairs.
93
- *
94
- * Inspired by https://github.com/unjs/cookie-es/blob/main/src/cookie/parse.ts
95
- *
96
- * @param str the string representing a `Cookie` header value
97
- */
98
- declare function parseCookies(str: string): Map<string, string>;
99
- declare const serializeCookie: (key: string, value: string, opt?: CookieOptions) => string;
100
- declare const serializeSignedCookie: (key: string, value: string, secret: string, opt?: CookieOptions) => Promise<string>;
101
- //#endregion
102
- export { CookieOptions, CookiePrefixOptions, getCookieKey, parseCookies, serializeCookie, serializeSignedCookie };
103
- //# sourceMappingURL=cookies.d.mts.map
@@ -1,84 +0,0 @@
1
- import { tryDecode } from "./utils.mjs";
2
- import { signCookieValue } from "./crypto.mjs";
3
-
4
- //#region src/cookies.ts
5
- const getCookieKey = (key, prefix) => {
6
- let finalKey = key;
7
- if (prefix) if (prefix === "secure") finalKey = "__Secure-" + key;
8
- else if (prefix === "host") finalKey = "__Host-" + key;
9
- else return;
10
- return finalKey;
11
- };
12
- /**
13
- * Parse an HTTP Cookie header string and returning an object of all cookie
14
- * name-value pairs.
15
- *
16
- * Inspired by https://github.com/unjs/cookie-es/blob/main/src/cookie/parse.ts
17
- *
18
- * @param str the string representing a `Cookie` header value
19
- */
20
- function parseCookies(str) {
21
- if (typeof str !== "string") throw new TypeError("argument str must be a string");
22
- const cookies = /* @__PURE__ */ new Map();
23
- let index = 0;
24
- while (index < str.length) {
25
- const eqIdx = str.indexOf("=", index);
26
- if (eqIdx === -1) break;
27
- let endIdx = str.indexOf(";", index);
28
- if (endIdx === -1) endIdx = str.length;
29
- else if (endIdx < eqIdx) {
30
- index = str.lastIndexOf(";", eqIdx - 1) + 1;
31
- continue;
32
- }
33
- const key = str.slice(index, eqIdx).trim();
34
- if (!cookies.has(key)) {
35
- let val = str.slice(eqIdx + 1, endIdx).trim();
36
- if (val.codePointAt(0) === 34) val = val.slice(1, -1);
37
- cookies.set(key, tryDecode(val));
38
- }
39
- index = endIdx + 1;
40
- }
41
- return cookies;
42
- }
43
- const _serialize = (key, value, opt = {}) => {
44
- let cookie;
45
- if (opt?.prefix === "secure") cookie = `${`__Secure-${key}`}=${value}`;
46
- else if (opt?.prefix === "host") cookie = `${`__Host-${key}`}=${value}`;
47
- else cookie = `${key}=${value}`;
48
- if (key.startsWith("__Secure-") && !opt.secure) opt.secure = true;
49
- if (key.startsWith("__Host-")) {
50
- if (!opt.secure) opt.secure = true;
51
- if (opt.path !== "/") opt.path = "/";
52
- if (opt.domain) opt.domain = void 0;
53
- }
54
- if (opt && typeof opt.maxAge === "number" && opt.maxAge >= 0) {
55
- if (opt.maxAge > 3456e4) throw new Error("Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.");
56
- cookie += `; Max-Age=${Math.floor(opt.maxAge)}`;
57
- }
58
- if (opt.domain && opt.prefix !== "host") cookie += `; Domain=${opt.domain}`;
59
- if (opt.path) cookie += `; Path=${opt.path}`;
60
- if (opt.expires) {
61
- if (opt.expires.getTime() - Date.now() > 3456e7) throw new Error("Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.");
62
- cookie += `; Expires=${opt.expires.toUTCString()}`;
63
- }
64
- if (opt.httpOnly) cookie += "; HttpOnly";
65
- if (opt.secure) cookie += "; Secure";
66
- if (opt.sameSite) cookie += `; SameSite=${opt.sameSite.charAt(0).toUpperCase() + opt.sameSite.slice(1)}`;
67
- if (opt.partitioned) {
68
- if (!opt.secure) opt.secure = true;
69
- cookie += "; Partitioned";
70
- }
71
- return cookie;
72
- };
73
- const serializeCookie = (key, value, opt) => {
74
- value = encodeURIComponent(value);
75
- return _serialize(key, value, opt);
76
- };
77
- const serializeSignedCookie = async (key, value, secret, opt) => {
78
- value = await signCookieValue(value, secret);
79
- return _serialize(key, value, opt);
80
- };
81
-
82
- //#endregion
83
- export { getCookieKey, parseCookies, serializeCookie, serializeSignedCookie };
84
- //# sourceMappingURL=cookies.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cookies.mjs","names":[],"sources":["../src/cookies.ts"],"sourcesContent":["import { signCookieValue } from \"./crypto\";\nimport { tryDecode } from \"./utils\";\n\nexport type CookiePrefixOptions = \"host\" | \"secure\";\n\nexport type CookieOptions = {\n\t/**\n\t * Domain of the cookie\n\t *\n\t * The Domain attribute specifies which server can receive a cookie. If specified, cookies are\n\t * available on the specified server and its subdomains. If the it is not\n\t * specified, the cookies are available on the server that sets it but not on\n\t * its subdomains.\n\t *\n\t * @example\n\t * `domain: \"example.com\"`\n\t */\n\tdomain?: string;\n\t/**\n\t * A lifetime of a cookie. Permanent cookies are deleted after the date specified in the\n\t * Expires attribute:\n\t *\n\t * Expires has been available for longer than Max-Age, however Max-Age is less error-prone, and\n\t * takes precedence when both are set. The rationale behind this is that when you set an\n\t * Expires date and time, they're relative to the client the cookie is being set on. If the\n\t * server is set to a different time, this could cause errors\n\t */\n\texpires?: Date;\n\t/**\n\t * Forbids JavaScript from accessing the cookie, for example, through the Document.cookie\n\t * property. Note that a cookie that has been created with HttpOnly will still be sent with\n\t * JavaScript-initiated requests, for example, when calling XMLHttpRequest.send() or fetch().\n\t * This mitigates attacks against cross-site scripting\n\t */\n\thttpOnly?: boolean;\n\t/**\n\t * Indicates the number of seconds until the cookie expires. A zero or negative number will\n\t * expire the cookie immediately. If both Expires and Max-Age are set, Max-Age has precedence.\n\t *\n\t * @example 604800 - 7 days\n\t */\n\tmaxAge?: number;\n\t/**\n\t * Indicates the path that must exist in the requested URL for the browser to send the Cookie\n\t * header.\n\t *\n\t * @example\n\t * \"/docs\"\n\t * // -> the request paths /docs, /docs/, /docs/Web/, and /docs/Web/HTTP will all match. the request paths /, /fr/docs will not match.\n\t */\n\tpath?: string;\n\t/**\n\t * Indicates that the cookie is sent to the server only when a request is made with the https:\n\t * scheme (except on localhost), and therefore, is more resistant to man-in-the-middle attacks.\n\t */\n\tsecure?: boolean;\n\t/**\n\t * Controls whether or not a cookie is sent with cross-site requests, providing some protection\n\t * against cross-site request forgery attacks (CSRF).\n\t *\n\t * Strict - Means that the browser sends the cookie only for same-site requests, that is,\n\t * requests originating from the same site that set the cookie. If a request originates from a\n\t * different domain or scheme (even with the same domain), no cookies with the SameSite=Strict\n\t * attribute are sent.\n\t *\n\t * Lax - Means that the cookie is not sent on cross-site requests, such as on requests to load\n\t * images or frames, but is sent when a user is navigating to the origin site from an external\n\t * site (for example, when following a link). This is the default behavior if the SameSite\n\t * attribute is not specified.\n\t *\n\t * None - Means that the browser sends the cookie with both cross-site and same-site requests.\n\t * The Secure attribute must also be set when setting this value.\n\t */\n\tsameSite?: \"Strict\" | \"Lax\" | \"None\" | \"strict\" | \"lax\" | \"none\";\n\t/**\n\t * Indicates that the cookie should be stored using partitioned storage. Note that if this is\n\t * set, the Secure directive must also be set.\n\t *\n\t * @see https://developer.mozilla.org/en-US/docs/Web/Privacy/Privacy_sandbox/Partitioned_cookies\n\t */\n\tpartitioned?: boolean;\n\t/**\n\t * Cooke Prefix\n\t *\n\t * - secure: `__Secure-` -> `__Secure-cookie-name`\n\t * - host: `__Host-` -> `__Host-cookie-name`\n\t *\n\t * `secure` must be set to true to use prefixes\n\t */\n\tprefix?: CookiePrefixOptions;\n};\n\nexport const getCookieKey = (key: string, prefix?: CookiePrefixOptions) => {\n\tlet finalKey = key;\n\tif (prefix) {\n\t\tif (prefix === \"secure\") {\n\t\t\tfinalKey = \"__Secure-\" + key;\n\t\t} else if (prefix === \"host\") {\n\t\t\tfinalKey = \"__Host-\" + key;\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\treturn finalKey;\n};\n\n/**\n * Parse an HTTP Cookie header string and returning an object of all cookie\n * name-value pairs.\n *\n * Inspired by https://github.com/unjs/cookie-es/blob/main/src/cookie/parse.ts\n *\n * @param str the string representing a `Cookie` header value\n */\nexport function parseCookies(str: string) {\n\tif (typeof str !== \"string\") {\n\t\tthrow new TypeError(\"argument str must be a string\");\n\t}\n\n\tconst cookies: Map<string, string> = new Map();\n\n\tlet index = 0;\n\twhile (index < str.length) {\n\t\tconst eqIdx = str.indexOf(\"=\", index);\n\n\t\tif (eqIdx === -1) {\n\t\t\tbreak;\n\t\t}\n\n\t\tlet endIdx = str.indexOf(\";\", index);\n\n\t\tif (endIdx === -1) {\n\t\t\tendIdx = str.length;\n\t\t} else if (endIdx < eqIdx) {\n\t\t\tindex = str.lastIndexOf(\";\", eqIdx - 1) + 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst key = str.slice(index, eqIdx).trim();\n\t\tif (!cookies.has(key)) {\n\t\t\tlet val = str.slice(eqIdx + 1, endIdx).trim();\n\t\t\tif (val.codePointAt(0) === 0x22) {\n\t\t\t\tval = val.slice(1, -1);\n\t\t\t}\n\t\t\tcookies.set(key, tryDecode(val));\n\t\t}\n\n\t\tindex = endIdx + 1;\n\t}\n\n\treturn cookies;\n}\n\nconst _serialize = (key: string, value: string, opt: CookieOptions = {}) => {\n\tlet cookie: string;\n\n\tif (opt?.prefix === \"secure\") {\n\t\tcookie = `${`__Secure-${key}`}=${value}`;\n\t} else if (opt?.prefix === \"host\") {\n\t\tcookie = `${`__Host-${key}`}=${value}`;\n\t} else {\n\t\tcookie = `${key}=${value}`;\n\t}\n\n\tif (key.startsWith(\"__Secure-\") && !opt.secure) {\n\t\topt.secure = true;\n\t}\n\n\tif (key.startsWith(\"__Host-\")) {\n\t\tif (!opt.secure) {\n\t\t\topt.secure = true;\n\t\t}\n\n\t\tif (opt.path !== \"/\") {\n\t\t\topt.path = \"/\";\n\t\t}\n\n\t\tif (opt.domain) {\n\t\t\topt.domain = undefined;\n\t\t}\n\t}\n\n\tif (opt && typeof opt.maxAge === \"number\" && opt.maxAge >= 0) {\n\t\tif (opt.maxAge > 34560000) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Cookies Max-Age SHOULD NOT be greater than 400 days (34560000 seconds) in duration.\",\n\t\t\t);\n\t\t}\n\t\tcookie += `; Max-Age=${Math.floor(opt.maxAge)}`;\n\t}\n\n\tif (opt.domain && opt.prefix !== \"host\") {\n\t\tcookie += `; Domain=${opt.domain}`;\n\t}\n\n\tif (opt.path) {\n\t\tcookie += `; Path=${opt.path}`;\n\t}\n\n\tif (opt.expires) {\n\t\tif (opt.expires.getTime() - Date.now() > 34560000_000) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Cookies Expires SHOULD NOT be greater than 400 days (34560000 seconds) in the future.\",\n\t\t\t);\n\t\t}\n\t\tcookie += `; Expires=${opt.expires.toUTCString()}`;\n\t}\n\n\tif (opt.httpOnly) {\n\t\tcookie += \"; HttpOnly\";\n\t}\n\n\tif (opt.secure) {\n\t\tcookie += \"; Secure\";\n\t}\n\n\tif (opt.sameSite) {\n\t\tcookie += `; SameSite=${opt.sameSite.charAt(0).toUpperCase() + opt.sameSite.slice(1)}`;\n\t}\n\n\tif (opt.partitioned) {\n\t\tif (!opt.secure) {\n\t\t\topt.secure = true;\n\t\t}\n\t\tcookie += \"; Partitioned\";\n\t}\n\n\treturn cookie;\n};\n\nexport const serializeCookie = (\n\tkey: string,\n\tvalue: string,\n\topt?: CookieOptions,\n) => {\n\tvalue = encodeURIComponent(value);\n\treturn _serialize(key, value, opt);\n};\n\nexport const serializeSignedCookie = async (\n\tkey: string,\n\tvalue: string,\n\tsecret: string,\n\topt?: CookieOptions,\n) => {\n\tvalue = await signCookieValue(value, secret);\n\treturn _serialize(key, value, opt);\n};\n"],"mappings":";;;;AA4FA,MAAa,gBAAgB,KAAa,WAAiC;CAC1E,IAAI,WAAW;AACf,KAAI,OACH,KAAI,WAAW,SACd,YAAW,cAAc;UACf,WAAW,OACrB,YAAW,YAAY;KAEvB;AAGF,QAAO;;;;;;;;;;AAWR,SAAgB,aAAa,KAAa;AACzC,KAAI,OAAO,QAAQ,SAClB,OAAM,IAAI,UAAU,gCAAgC;CAGrD,MAAM,0BAA+B,IAAI,KAAK;CAE9C,IAAI,QAAQ;AACZ,QAAO,QAAQ,IAAI,QAAQ;EAC1B,MAAM,QAAQ,IAAI,QAAQ,KAAK,MAAM;AAErC,MAAI,UAAU,GACb;EAGD,IAAI,SAAS,IAAI,QAAQ,KAAK,MAAM;AAEpC,MAAI,WAAW,GACd,UAAS,IAAI;WACH,SAAS,OAAO;AAC1B,WAAQ,IAAI,YAAY,KAAK,QAAQ,EAAE,GAAG;AAC1C;;EAGD,MAAM,MAAM,IAAI,MAAM,OAAO,MAAM,CAAC,MAAM;AAC1C,MAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;GACtB,IAAI,MAAM,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM;AAC7C,OAAI,IAAI,YAAY,EAAE,KAAK,GAC1B,OAAM,IAAI,MAAM,GAAG,GAAG;AAEvB,WAAQ,IAAI,KAAK,UAAU,IAAI,CAAC;;AAGjC,UAAQ,SAAS;;AAGlB,QAAO;;AAGR,MAAM,cAAc,KAAa,OAAe,MAAqB,EAAE,KAAK;CAC3E,IAAI;AAEJ,KAAI,KAAK,WAAW,SACnB,UAAS,GAAG,YAAY,MAAM,GAAG;UACvB,KAAK,WAAW,OAC1B,UAAS,GAAG,UAAU,MAAM,GAAG;KAE/B,UAAS,GAAG,IAAI,GAAG;AAGpB,KAAI,IAAI,WAAW,YAAY,IAAI,CAAC,IAAI,OACvC,KAAI,SAAS;AAGd,KAAI,IAAI,WAAW,UAAU,EAAE;AAC9B,MAAI,CAAC,IAAI,OACR,KAAI,SAAS;AAGd,MAAI,IAAI,SAAS,IAChB,KAAI,OAAO;AAGZ,MAAI,IAAI,OACP,KAAI,SAAS;;AAIf,KAAI,OAAO,OAAO,IAAI,WAAW,YAAY,IAAI,UAAU,GAAG;AAC7D,MAAI,IAAI,SAAS,OAChB,OAAM,IAAI,MACT,sFACA;AAEF,YAAU,aAAa,KAAK,MAAM,IAAI,OAAO;;AAG9C,KAAI,IAAI,UAAU,IAAI,WAAW,OAChC,WAAU,YAAY,IAAI;AAG3B,KAAI,IAAI,KACP,WAAU,UAAU,IAAI;AAGzB,KAAI,IAAI,SAAS;AAChB,MAAI,IAAI,QAAQ,SAAS,GAAG,KAAK,KAAK,GAAG,OACxC,OAAM,IAAI,MACT,wFACA;AAEF,YAAU,aAAa,IAAI,QAAQ,aAAa;;AAGjD,KAAI,IAAI,SACP,WAAU;AAGX,KAAI,IAAI,OACP,WAAU;AAGX,KAAI,IAAI,SACP,WAAU,cAAc,IAAI,SAAS,OAAO,EAAE,CAAC,aAAa,GAAG,IAAI,SAAS,MAAM,EAAE;AAGrF,KAAI,IAAI,aAAa;AACpB,MAAI,CAAC,IAAI,OACR,KAAI,SAAS;AAEd,YAAU;;AAGX,QAAO;;AAGR,MAAa,mBACZ,KACA,OACA,QACI;AACJ,SAAQ,mBAAmB,MAAM;AACjC,QAAO,WAAW,KAAK,OAAO,IAAI;;AAGnC,MAAa,wBAAwB,OACpC,KACA,OACA,QACA,QACI;AACJ,SAAQ,MAAM,gBAAgB,OAAO,OAAO;AAC5C,QAAO,WAAW,KAAK,OAAO,IAAI"}
@@ -1,39 +0,0 @@
1
- const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
2
- let _better_auth_utils = require("@better-auth/utils");
3
-
4
- //#region src/crypto.ts
5
- const algorithm = {
6
- name: "HMAC",
7
- hash: "SHA-256"
8
- };
9
- const getCryptoKey = async (secret) => {
10
- const secretBuf = typeof secret === "string" ? new TextEncoder().encode(secret) : secret;
11
- return await (0, _better_auth_utils.getWebcryptoSubtle)().importKey("raw", secretBuf, algorithm, false, ["sign", "verify"]);
12
- };
13
- const verifySignature = async (base64Signature, value, secret) => {
14
- try {
15
- const signatureBinStr = atob(base64Signature);
16
- const signature = new Uint8Array(signatureBinStr.length);
17
- for (let i = 0, len = signatureBinStr.length; i < len; i++) signature[i] = signatureBinStr.charCodeAt(i);
18
- return await (0, _better_auth_utils.getWebcryptoSubtle)().verify(algorithm, secret, signature, new TextEncoder().encode(value));
19
- } catch (e) {
20
- return false;
21
- }
22
- };
23
- const makeSignature = async (value, secret) => {
24
- const key = await getCryptoKey(secret);
25
- const signature = await (0, _better_auth_utils.getWebcryptoSubtle)().sign(algorithm.name, key, new TextEncoder().encode(value));
26
- return btoa(String.fromCharCode(...new Uint8Array(signature)));
27
- };
28
- const signCookieValue = async (value, secret) => {
29
- const signature = await makeSignature(value, secret);
30
- value = `${value}.${signature}`;
31
- value = encodeURIComponent(value);
32
- return value;
33
- };
34
-
35
- //#endregion
36
- exports.getCryptoKey = getCryptoKey;
37
- exports.signCookieValue = signCookieValue;
38
- exports.verifySignature = verifySignature;
39
- //# sourceMappingURL=crypto.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.cjs","names":[],"sources":["../src/crypto.ts"],"sourcesContent":["import { getWebcryptoSubtle } from \"@better-auth/utils\";\nconst algorithm = { name: \"HMAC\", hash: \"SHA-256\" };\n\nexport const getCryptoKey = async (secret: string | BufferSource) => {\n\tconst secretBuf =\n\t\ttypeof secret === \"string\" ? new TextEncoder().encode(secret) : secret;\n\treturn await getWebcryptoSubtle().importKey(\n\t\t\"raw\",\n\t\tsecretBuf,\n\t\talgorithm,\n\t\tfalse,\n\t\t[\"sign\", \"verify\"],\n\t);\n};\n\nexport const verifySignature = async (\n\tbase64Signature: string,\n\tvalue: string,\n\tsecret: CryptoKey,\n): Promise<boolean> => {\n\ttry {\n\t\tconst signatureBinStr = atob(base64Signature);\n\t\tconst signature = new Uint8Array(signatureBinStr.length);\n\t\tfor (let i = 0, len = signatureBinStr.length; i < len; i++) {\n\t\t\tsignature[i] = signatureBinStr.charCodeAt(i);\n\t\t}\n\t\treturn await getWebcryptoSubtle().verify(\n\t\t\talgorithm,\n\t\t\tsecret,\n\t\t\tsignature,\n\t\t\tnew TextEncoder().encode(value),\n\t\t);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nconst makeSignature = async (\n\tvalue: string,\n\tsecret: string | BufferSource,\n): Promise<string> => {\n\tconst key = await getCryptoKey(secret);\n\tconst signature = await getWebcryptoSubtle().sign(\n\t\talgorithm.name,\n\t\tkey,\n\t\tnew TextEncoder().encode(value),\n\t);\n\t// the returned base64 encoded signature will always be 44 characters long and end with one or two equal signs\n\treturn btoa(String.fromCharCode(...new Uint8Array(signature)));\n};\n\nexport const signCookieValue = async (\n\tvalue: string,\n\tsecret: string | BufferSource,\n) => {\n\tconst signature = await makeSignature(value, secret);\n\tvalue = `${value}.${signature}`;\n\tvalue = encodeURIComponent(value);\n\treturn value;\n};\n"],"mappings":";;;;AACA,MAAM,YAAY;CAAE,MAAM;CAAQ,MAAM;CAAW;AAEnD,MAAa,eAAe,OAAO,WAAkC;CACpE,MAAM,YACL,OAAO,WAAW,WAAW,IAAI,aAAa,CAAC,OAAO,OAAO,GAAG;AACjE,QAAO,kDAA0B,CAAC,UACjC,OACA,WACA,WACA,OACA,CAAC,QAAQ,SAAS,CAClB;;AAGF,MAAa,kBAAkB,OAC9B,iBACA,OACA,WACsB;AACtB,KAAI;EACH,MAAM,kBAAkB,KAAK,gBAAgB;EAC7C,MAAM,YAAY,IAAI,WAAW,gBAAgB,OAAO;AACxD,OAAK,IAAI,IAAI,GAAG,MAAM,gBAAgB,QAAQ,IAAI,KAAK,IACtD,WAAU,KAAK,gBAAgB,WAAW,EAAE;AAE7C,SAAO,kDAA0B,CAAC,OACjC,WACA,QACA,WACA,IAAI,aAAa,CAAC,OAAO,MAAM,CAC/B;UACO,GAAG;AACX,SAAO;;;AAIT,MAAM,gBAAgB,OACrB,OACA,WACqB;CACrB,MAAM,MAAM,MAAM,aAAa,OAAO;CACtC,MAAM,YAAY,kDAA0B,CAAC,KAC5C,UAAU,MACV,KACA,IAAI,aAAa,CAAC,OAAO,MAAM,CAC/B;AAED,QAAO,KAAK,OAAO,aAAa,GAAG,IAAI,WAAW,UAAU,CAAC,CAAC;;AAG/D,MAAa,kBAAkB,OAC9B,OACA,WACI;CACJ,MAAM,YAAY,MAAM,cAAc,OAAO,OAAO;AACpD,SAAQ,GAAG,MAAM,GAAG;AACpB,SAAQ,mBAAmB,MAAM;AACjC,QAAO"}
@@ -1,36 +0,0 @@
1
- import { getWebcryptoSubtle } from "@better-auth/utils";
2
-
3
- //#region src/crypto.ts
4
- const algorithm = {
5
- name: "HMAC",
6
- hash: "SHA-256"
7
- };
8
- const getCryptoKey = async (secret) => {
9
- const secretBuf = typeof secret === "string" ? new TextEncoder().encode(secret) : secret;
10
- return await getWebcryptoSubtle().importKey("raw", secretBuf, algorithm, false, ["sign", "verify"]);
11
- };
12
- const verifySignature = async (base64Signature, value, secret) => {
13
- try {
14
- const signatureBinStr = atob(base64Signature);
15
- const signature = new Uint8Array(signatureBinStr.length);
16
- for (let i = 0, len = signatureBinStr.length; i < len; i++) signature[i] = signatureBinStr.charCodeAt(i);
17
- return await getWebcryptoSubtle().verify(algorithm, secret, signature, new TextEncoder().encode(value));
18
- } catch (e) {
19
- return false;
20
- }
21
- };
22
- const makeSignature = async (value, secret) => {
23
- const key = await getCryptoKey(secret);
24
- const signature = await getWebcryptoSubtle().sign(algorithm.name, key, new TextEncoder().encode(value));
25
- return btoa(String.fromCharCode(...new Uint8Array(signature)));
26
- };
27
- const signCookieValue = async (value, secret) => {
28
- const signature = await makeSignature(value, secret);
29
- value = `${value}.${signature}`;
30
- value = encodeURIComponent(value);
31
- return value;
32
- };
33
-
34
- //#endregion
35
- export { getCryptoKey, signCookieValue, verifySignature };
36
- //# sourceMappingURL=crypto.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.mjs","names":[],"sources":["../src/crypto.ts"],"sourcesContent":["import { getWebcryptoSubtle } from \"@better-auth/utils\";\nconst algorithm = { name: \"HMAC\", hash: \"SHA-256\" };\n\nexport const getCryptoKey = async (secret: string | BufferSource) => {\n\tconst secretBuf =\n\t\ttypeof secret === \"string\" ? new TextEncoder().encode(secret) : secret;\n\treturn await getWebcryptoSubtle().importKey(\n\t\t\"raw\",\n\t\tsecretBuf,\n\t\talgorithm,\n\t\tfalse,\n\t\t[\"sign\", \"verify\"],\n\t);\n};\n\nexport const verifySignature = async (\n\tbase64Signature: string,\n\tvalue: string,\n\tsecret: CryptoKey,\n): Promise<boolean> => {\n\ttry {\n\t\tconst signatureBinStr = atob(base64Signature);\n\t\tconst signature = new Uint8Array(signatureBinStr.length);\n\t\tfor (let i = 0, len = signatureBinStr.length; i < len; i++) {\n\t\t\tsignature[i] = signatureBinStr.charCodeAt(i);\n\t\t}\n\t\treturn await getWebcryptoSubtle().verify(\n\t\t\talgorithm,\n\t\t\tsecret,\n\t\t\tsignature,\n\t\t\tnew TextEncoder().encode(value),\n\t\t);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nconst makeSignature = async (\n\tvalue: string,\n\tsecret: string | BufferSource,\n): Promise<string> => {\n\tconst key = await getCryptoKey(secret);\n\tconst signature = await getWebcryptoSubtle().sign(\n\t\talgorithm.name,\n\t\tkey,\n\t\tnew TextEncoder().encode(value),\n\t);\n\t// the returned base64 encoded signature will always be 44 characters long and end with one or two equal signs\n\treturn btoa(String.fromCharCode(...new Uint8Array(signature)));\n};\n\nexport const signCookieValue = async (\n\tvalue: string,\n\tsecret: string | BufferSource,\n) => {\n\tconst signature = await makeSignature(value, secret);\n\tvalue = `${value}.${signature}`;\n\tvalue = encodeURIComponent(value);\n\treturn value;\n};\n"],"mappings":";;;AACA,MAAM,YAAY;CAAE,MAAM;CAAQ,MAAM;CAAW;AAEnD,MAAa,eAAe,OAAO,WAAkC;CACpE,MAAM,YACL,OAAO,WAAW,WAAW,IAAI,aAAa,CAAC,OAAO,OAAO,GAAG;AACjE,QAAO,MAAM,oBAAoB,CAAC,UACjC,OACA,WACA,WACA,OACA,CAAC,QAAQ,SAAS,CAClB;;AAGF,MAAa,kBAAkB,OAC9B,iBACA,OACA,WACsB;AACtB,KAAI;EACH,MAAM,kBAAkB,KAAK,gBAAgB;EAC7C,MAAM,YAAY,IAAI,WAAW,gBAAgB,OAAO;AACxD,OAAK,IAAI,IAAI,GAAG,MAAM,gBAAgB,QAAQ,IAAI,KAAK,IACtD,WAAU,KAAK,gBAAgB,WAAW,EAAE;AAE7C,SAAO,MAAM,oBAAoB,CAAC,OACjC,WACA,QACA,WACA,IAAI,aAAa,CAAC,OAAO,MAAM,CAC/B;UACO,GAAG;AACX,SAAO;;;AAIT,MAAM,gBAAgB,OACrB,OACA,WACqB;CACrB,MAAM,MAAM,MAAM,aAAa,OAAO;CACtC,MAAM,YAAY,MAAM,oBAAoB,CAAC,KAC5C,UAAU,MACV,KACA,IAAI,aAAa,CAAC,OAAO,MAAM,CAC/B;AAED,QAAO,KAAK,OAAO,aAAa,GAAG,IAAI,WAAW,UAAU,CAAC,CAAC;;AAG/D,MAAa,kBAAkB,OAC9B,OACA,WACI;CACJ,MAAM,YAAY,MAAM,cAAc,OAAO,OAAO;AACpD,SAAQ,GAAG,MAAM,GAAG;AACpB,SAAQ,mBAAmB,MAAM;AACjC,QAAO"}
@@ -1,70 +0,0 @@
1
- const require_error = require('./error.cjs');
2
- const require_utils = require('./utils.cjs');
3
- const require_to_response = require('./to-response.cjs');
4
- const require_context = require('./context.cjs');
5
-
6
- //#region src/endpoint.ts
7
- function createEndpoint(pathOrOptions, handlerOrOptions, handlerOrNever) {
8
- const path = typeof pathOrOptions === "string" ? pathOrOptions : void 0;
9
- const options = typeof handlerOrOptions === "object" ? handlerOrOptions : pathOrOptions;
10
- const handler = typeof handlerOrOptions === "function" ? handlerOrOptions : handlerOrNever;
11
- if ((options.method === "GET" || options.method === "HEAD") && options.body) throw new require_error.BetterCallError("Body is not allowed with GET or HEAD methods");
12
- if (path && /\/{2,}/.test(path)) throw new require_error.BetterCallError("Path cannot contain consecutive slashes");
13
- const internalHandler = async (...inputCtx) => {
14
- const context = inputCtx[0] || {};
15
- const { data: internalContext, error: validationError } = await require_utils.tryCatch(require_context.createInternalContext(context, {
16
- options,
17
- path
18
- }));
19
- if (validationError) {
20
- if (!(validationError instanceof require_error.ValidationError)) throw validationError;
21
- if (options.onValidationError) await options.onValidationError({
22
- message: validationError.message,
23
- issues: validationError.issues
24
- });
25
- throw new require_error.APIError(400, {
26
- message: validationError.message,
27
- code: "VALIDATION_ERROR"
28
- });
29
- }
30
- const response = await handler(internalContext).catch(async (e) => {
31
- if (require_utils.isAPIError(e)) {
32
- const onAPIError = options.onAPIError;
33
- if (onAPIError) await onAPIError(e);
34
- if (context.asResponse) return e;
35
- }
36
- throw e;
37
- });
38
- const headers = internalContext.responseHeaders;
39
- const status = internalContext.responseStatus;
40
- return context.asResponse ? require_to_response.toResponse(response, {
41
- headers,
42
- status
43
- }) : context.returnHeaders ? context.returnStatus ? {
44
- headers,
45
- response,
46
- status
47
- } : {
48
- headers,
49
- response
50
- } : context.returnStatus ? {
51
- response,
52
- status
53
- } : response;
54
- };
55
- internalHandler.options = options;
56
- internalHandler.path = path;
57
- return internalHandler;
58
- }
59
- createEndpoint.create = (opts) => {
60
- return (path, options, handler) => {
61
- return createEndpoint(path, {
62
- ...options,
63
- use: [...options?.use || [], ...opts?.use || []]
64
- }, handler);
65
- };
66
- };
67
-
68
- //#endregion
69
- exports.createEndpoint = createEndpoint;
70
- //# sourceMappingURL=endpoint.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoint.cjs","names":["BetterCallError","tryCatch","createInternalContext","ValidationError","APIError","isAPIError","toResponse"],"sources":["../src/endpoint.ts"],"sourcesContent":["import type { HasRequiredKeys, Prettify } from \"./helper\";\nimport { toResponse } from \"./to-response\";\nimport type { Middleware } from \"./middleware\";\nimport {\n\tcreateInternalContext,\n\ttype InferBody,\n\ttype InferHeaders,\n\ttype InferMethod,\n\ttype InferParam,\n\ttype InferQuery,\n\ttype InferRequest,\n\ttype InferUse,\n\ttype InputContext,\n\ttype Method,\n} from \"./context\";\nimport type { CookieOptions, CookiePrefixOptions } from \"./cookies\";\nimport {\n\tAPIError,\n\tValidationError,\n\ttype statusCodes,\n\ttype Status,\n\tBetterCallError,\n} from \"./error\";\nimport type { OpenAPIParameter, OpenAPISchemaType } from \"./openapi\";\nimport type { StandardSchemaV1 } from \"./standard-schema\";\nimport { isAPIError, tryCatch } from \"./utils\";\n\nexport interface EndpointBaseOptions {\n\t/**\n\t * Query Schema\n\t */\n\tquery?: StandardSchemaV1;\n\t/**\n\t * Error Schema\n\t */\n\terror?: StandardSchemaV1;\n\t/**\n\t * If true headers will be required to be passed in the context\n\t */\n\trequireHeaders?: boolean;\n\t/**\n\t * If true request object will be required\n\t */\n\trequireRequest?: boolean;\n\t/**\n\t * Clone the request object from the router\n\t */\n\tcloneRequest?: boolean;\n\t/**\n\t * If true the body will be undefined\n\t */\n\tdisableBody?: boolean;\n\t/**\n\t * Endpoint metadata\n\t */\n\tmetadata?: {\n\t\t/**\n\t\t * Open API definition\n\t\t */\n\t\topenapi?: {\n\t\t\tsummary?: string;\n\t\t\tdescription?: string;\n\t\t\ttags?: string[];\n\t\t\toperationId?: string;\n\t\t\tparameters?: OpenAPIParameter[];\n\t\t\trequestBody?: {\n\t\t\t\tcontent: {\n\t\t\t\t\t\"application/json\": {\n\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\ttype?: OpenAPISchemaType;\n\t\t\t\t\t\t\tproperties?: Record<string, any>;\n\t\t\t\t\t\t\trequired?: string[];\n\t\t\t\t\t\t\t$ref?: string;\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tresponses?: {\n\t\t\t\t[status: string]: {\n\t\t\t\t\tdescription: string;\n\t\t\t\t\tcontent?: {\n\t\t\t\t\t\t\"application/json\"?: {\n\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\ttype?: OpenAPISchemaType;\n\t\t\t\t\t\t\t\tproperties?: Record<string, any>;\n\t\t\t\t\t\t\t\trequired?: string[];\n\t\t\t\t\t\t\t\t$ref?: string;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\"text/plain\"?: {\n\t\t\t\t\t\t\tschema?: {\n\t\t\t\t\t\t\t\ttype?: OpenAPISchemaType;\n\t\t\t\t\t\t\t\tproperties?: Record<string, any>;\n\t\t\t\t\t\t\t\trequired?: string[];\n\t\t\t\t\t\t\t\t$ref?: string;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\"text/html\"?: {\n\t\t\t\t\t\t\tschema?: {\n\t\t\t\t\t\t\t\ttype?: OpenAPISchemaType;\n\t\t\t\t\t\t\t\tproperties?: Record<string, any>;\n\t\t\t\t\t\t\t\trequired?: string[];\n\t\t\t\t\t\t\t\t$ref?: string;\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t};\n\t\t/**\n\t\t * Infer body and query type from ts interface\n\t\t *\n\t\t * useful for generic and dynamic types\n\t\t *\n\t\t * @example\n\t\t * ```ts\n\t\t * const endpoint = createEndpoint(\"/path\", {\n\t\t * \t\tmethod: \"POST\",\n\t\t * \t\tbody: z.record(z.string()),\n\t\t * \t\t$Infer: {\n\t\t * \t\t\tbody: {} as {\n\t\t * \t\t\t\ttype: InferTypeFromOptions<Option> // custom type inference\n\t\t * \t\t\t}\n\t\t * \t\t}\n\t\t * \t}, async(ctx)=>{\n\t\t * \t\tconst body = ctx.body\n\t\t * \t})\n\t\t * ```\n\t\t */\n\t\t$Infer?: {\n\t\t\t/**\n\t\t\t * Body\n\t\t\t */\n\t\t\tbody?: any;\n\t\t\t/**\n\t\t\t * Query\n\t\t\t */\n\t\t\tquery?: Record<string, any>;\n\t\t};\n\t\t/**\n\t\t * If enabled, endpoint won't be exposed over a router\n\t\t * @deprecated Use path-less endpoints instead\n\t\t */\n\t\tSERVER_ONLY?: boolean;\n\t\t/**\n\t\t * If enabled, endpoint won't be exposed as an action to the client\n\t\t * @deprecated Use path-less endpoints instead\n\t\t */\n\t\tisAction?: boolean;\n\t\t/**\n\t\t * Defines the places where the endpoint will be available\n\t\t *\n\t\t * Possible options:\n\t\t * - `rpc` - the endpoint is exposed to the router, can be invoked directly and is available to the client\n\t\t * - `server` - the endpoint is exposed to the router, can be invoked directly, but is not available to the client\n\t\t * - `http` - the endpoint is only exposed to the router\n\t\t * @default \"rpc\"\n\t\t */\n\t\tscope?: \"rpc\" | \"server\" | \"http\";\n\t\t/**\n\t\t * List of allowed media types (MIME types) for the endpoint\n\t\t *\n\t\t * if provided, only the media types in the list will be allowed to be passed in the body\n\t\t *\n\t\t * @example\n\t\t * ```ts\n\t\t * const endpoint = createEndpoint(\"/path\", {\n\t\t * \t\tmethod: \"POST\",\n\t\t * \t\tallowedMediaTypes: [\"application/json\", \"application/x-www-form-urlencoded\"],\n\t\t * \t}, async(ctx)=>{\n\t\t * \t\tconst body = ctx.body\n\t\t * \t})\n\t\t * ```\n\t\t */\n\t\tallowedMediaTypes?: string[];\n\t\t/**\n\t\t * Extra metadata\n\t\t */\n\t\t[key: string]: any;\n\t};\n\t/**\n\t * List of middlewares to use\n\t */\n\tuse?: Middleware[];\n\t/**\n\t * A callback to run before any API error is throw or returned\n\t *\n\t * @param e - The API error\n\t * @returns - The response to return\n\t */\n\tonAPIError?: (e: APIError) => void | Promise<void>;\n\t/**\n\t * A callback to run before a validation error is thrown\n\t * You can customize the validation error message by throwing your own APIError\n\t */\n\tonValidationError?: ({\n\t\tissues,\n\t\tmessage,\n\t}: {\n\t\tmessage: string;\n\t\tissues: readonly StandardSchemaV1.Issue[];\n\t}) => void | Promise<void>;\n}\n\nexport type EndpointBodyMethodOptions =\n\t| {\n\t\t\t/**\n\t\t\t * Request Method\n\t\t\t */\n\t\t\tmethod:\n\t\t\t\t| \"POST\"\n\t\t\t\t| \"PUT\"\n\t\t\t\t| \"DELETE\"\n\t\t\t\t| \"PATCH\"\n\t\t\t\t| (\"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\")[];\n\t\t\t/**\n\t\t\t * Body Schema\n\t\t\t */\n\t\t\tbody?: StandardSchemaV1;\n\t }\n\t| {\n\t\t\t/**\n\t\t\t * Request Method\n\t\t\t */\n\t\t\tmethod: \"GET\" | \"HEAD\" | (\"GET\" | \"HEAD\")[];\n\t\t\t/**\n\t\t\t * Body Schema\n\t\t\t */\n\t\t\tbody?: never;\n\t }\n\t| {\n\t\t\t/**\n\t\t\t * Request Method\n\t\t\t */\n\t\t\tmethod: \"*\";\n\t\t\t/**\n\t\t\t * Body Schema\n\t\t\t */\n\t\t\tbody?: StandardSchemaV1;\n\t }\n\t| {\n\t\t\t/**\n\t\t\t * Request Method\n\t\t\t */\n\t\t\tmethod: (\"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\" | \"GET\" | \"HEAD\")[];\n\t\t\t/**\n\t\t\t * Body Schema\n\t\t\t */\n\t\t\tbody?: StandardSchemaV1;\n\t };\n\nexport type EndpointOptions = EndpointBaseOptions & EndpointBodyMethodOptions;\n\nexport type EndpointContext<\n\tPath extends string,\n\tOptions extends EndpointOptions,\n\tContext = {},\n> = {\n\t/**\n\t * Method\n\t *\n\t * The request method\n\t */\n\tmethod: InferMethod<Options>;\n\t/**\n\t * Path\n\t *\n\t * The path of the endpoint\n\t */\n\tpath: Path;\n\t/**\n\t * Body\n\t *\n\t * The body object will be the parsed JSON from the request and validated\n\t * against the body schema if it exists.\n\t */\n\tbody: InferBody<Options>;\n\t/**\n\t * Query\n\t *\n\t * The query object will be the parsed query string from the request\n\t * and validated against the query schema if it exists\n\t */\n\tquery: InferQuery<Options>;\n\t/**\n\t * Params\n\t *\n\t * If the path is `/user/:id` and the request is `/user/1` then the params will\n\t * be `{ id: \"1\" }` and if the path includes a wildcard like `/user/*` then the\n\t * params will be `{ _: \"1\" }` where `_` is the wildcard key. If the wildcard\n\t * is named like `/user/**:name` then the params will be `{ name: string }`\n\t */\n\tparams: InferParam<Path>;\n\t/**\n\t * Request object\n\t *\n\t * If `requireRequest` is set to true in the endpoint options this will be\n\t * required\n\t */\n\trequest: InferRequest<Options>;\n\t/**\n\t * Headers\n\t *\n\t * If `requireHeaders` is set to true in the endpoint options this will be\n\t * required\n\t */\n\theaders: InferHeaders<Options>;\n\t/**\n\t * Set header\n\t *\n\t * If it's called outside of a request it will just be ignored.\n\t */\n\tsetHeader: (key: string, value: string) => void;\n\t/**\n\t * Set the response status code\n\t */\n\tsetStatus: (status: Status) => void;\n\t/**\n\t * Get header\n\t *\n\t * If it's called outside of a request it will just return null\n\t *\n\t * @param key - The key of the header\n\t * @returns\n\t */\n\tgetHeader: (key: string) => string | null;\n\t/**\n\t * Get a cookie value from the request\n\t *\n\t * @param key - The key of the cookie\n\t * @param prefix - The prefix of the cookie between `__Secure-` and `__Host-`\n\t * @returns - The value of the cookie\n\t */\n\tgetCookie: (key: string, prefix?: CookiePrefixOptions) => string | null;\n\t/**\n\t * Get a signed cookie value from the request\n\t *\n\t * @param key - The key of the cookie\n\t * @param secret - The secret of the signed cookie\n\t * @param prefix - The prefix of the cookie between `__Secure-` and `__Host-`\n\t * @returns - The value of the cookie or null if the cookie is not found or false if the signature is invalid\n\t */\n\tgetSignedCookie: (\n\t\tkey: string,\n\t\tsecret: string,\n\t\tprefix?: CookiePrefixOptions,\n\t) => Promise<string | null | false>;\n\t/**\n\t * Set a cookie value in the response\n\t *\n\t * @param key - The key of the cookie\n\t * @param value - The value to set\n\t * @param options - The options of the cookie\n\t * @returns - The cookie string\n\t */\n\tsetCookie: (key: string, value: string, options?: CookieOptions) => string;\n\t/**\n\t * Set signed cookie\n\t *\n\t * @param key - The key of the cookie\n\t * @param value - The value to set\n\t * @param secret - The secret to sign the cookie with\n\t * @param options - The options of the cookie\n\t * @returns - The cookie string\n\t */\n\tsetSignedCookie: (\n\t\tkey: string,\n\t\tvalue: string,\n\t\tsecret: string,\n\t\toptions?: CookieOptions,\n\t) => Promise<string>;\n\t/**\n\t * JSON\n\t *\n\t * a helper function to create a JSON response with\n\t * the correct headers\n\t * and status code. If `asResponse` is set to true in\n\t * the context then\n\t * it will return a Response object instead of the\n\t * JSON object.\n\t *\n\t * @param json - The JSON object to return\n\t * @param routerResponse - The response object to\n\t * return if `asResponse` is\n\t * true in the context this will take precedence\n\t */\n\tjson: <R extends Record<string, any> | null>(\n\t\tjson: R,\n\t\trouterResponse?:\n\t\t\t| {\n\t\t\t\t\tstatus?: number;\n\t\t\t\t\theaders?: Record<string, string>;\n\t\t\t\t\tresponse?: Response;\n\t\t\t\t\tbody?: Record<string, string>;\n\t\t\t }\n\t\t\t| Response,\n\t) => Promise<R>;\n\t/**\n\t * Middleware context\n\t */\n\tcontext: Prettify<Context & InferUse<Options[\"use\"]>>;\n\t/**\n\t * Redirect to a new URL\n\t */\n\tredirect: (url: string) => APIError;\n\t/**\n\t * Return error\n\t */\n\terror: (\n\t\tstatus: keyof typeof statusCodes | Status,\n\t\tbody?: {\n\t\t\tmessage?: string;\n\t\t\tcode?: string;\n\t\t} & Record<string, any>,\n\t\theaders?: HeadersInit,\n\t) => APIError;\n};\n\ntype ExtractBody<E extends EndpointBodyMethodOptions> = E extends {\n\tmethod: (\"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\" | \"GET\" | \"HEAD\")[];\n\tbody?: StandardSchemaV1<infer B>;\n}\n\t? E extends {\n\t\t\tmethod: infer M;\n\t\t\tbody?: StandardSchemaV1<B>;\n\t\t}\n\t\t? { method: M; body: StandardSchemaV1<B> }\n\t\t: never\n\t: E extends {\n\t\t\t\tmethod:\n\t\t\t\t\t| \"POST\"\n\t\t\t\t\t| \"PUT\"\n\t\t\t\t\t| \"DELETE\"\n\t\t\t\t\t| \"PATCH\"\n\t\t\t\t\t| (\"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\")[];\n\t\t\t\tbody?: StandardSchemaV1<infer B>;\n\t\t\t}\n\t\t? E extends {\n\t\t\t\tmethod: infer M;\n\t\t\t\tbody?: StandardSchemaV1<B>;\n\t\t\t}\n\t\t\t? { method: M; body: StandardSchemaV1<B> }\n\t\t\t: never\n\t\t: E extends {\n\t\t\t\t\tmethod: \"*\";\n\t\t\t\t\tbody?: StandardSchemaV1<infer B>;\n\t\t\t\t}\n\t\t\t? {\n\t\t\t\t\tmethod: \"*\";\n\t\t\t\t\tbody?: StandardSchemaV1<B>;\n\t\t\t\t}\n\t\t\t: E extends {\n\t\t\t\t\t\tmethod: \"GET\" | \"HEAD\" | (\"GET\" | \"HEAD\")[];\n\t\t\t\t\t\tbody?: never;\n\t\t\t\t\t}\n\t\t\t\t? E extends { method: infer M }\n\t\t\t\t\t? { method: M }\n\t\t\t\t\t: never\n\t\t\t\t: never;\ntype ExtractError<E extends EndpointOptions> = E extends {\n\terror?: StandardSchemaV1<infer Err>;\n}\n\t? {\n\t\t\terror: StandardSchemaV1<Err>;\n\t\t}\n\t: {};\ntype ExtractQuery<E extends EndpointOptions> = E extends {\n\tquery?: StandardSchemaV1<infer Q>;\n}\n\t? {\n\t\t\tquery: StandardSchemaV1<Q>;\n\t\t}\n\t: {};\n\ntype ExtractOthers<E extends EndpointOptions> = Pick<\n\tE,\n\tExclude<keyof E, \"method\" | \"body\" | \"query\" | \"error\">\n>;\n\n/**\n * DO NOT EXPORT THIS TYPE\n */\ntype ExtractStandSchema<E extends EndpointOptions> = ExtractOthers<E> &\n\tExtractBody<E> &\n\tExtractQuery<E> &\n\tExtractError<E>;\n\nexport type EndpointHandler<\n\tPath extends string,\n\tOptions extends EndpointOptions,\n\tR,\n> = (context: EndpointContext<Path, Options>) => Promise<R>;\n\nexport function createEndpoint<\n\tPath extends string,\n\tOptions extends EndpointOptions,\n\tR,\n>(\n\tpath: Path,\n\toptions: Options,\n\thandler: EndpointHandler<Path, Options, R>,\n): StrictEndpoint<Path, ExtractStandSchema<Options>, R>;\n\nexport function createEndpoint<Options extends EndpointOptions, R>(\n\toptions: Options,\n\thandler: EndpointHandler<never, Options, R>,\n): StrictEndpoint<never, ExtractStandSchema<Options>, R>;\n\nexport function createEndpoint<\n\tPath extends string,\n\tOptions extends EndpointOptions,\n\tR,\n>(\n\tpathOrOptions: Path | Options,\n\thandlerOrOptions: EndpointHandler<Path, Options, R> | Options,\n\thandlerOrNever?: any,\n): StrictEndpoint<Path, ExtractStandSchema<Options>, R> {\n\tconst path: string | undefined =\n\t\ttypeof pathOrOptions === \"string\" ? pathOrOptions : undefined;\n\tconst options: Options =\n\t\ttypeof handlerOrOptions === \"object\"\n\t\t\t? handlerOrOptions\n\t\t\t: (pathOrOptions as Options);\n\tconst handler: EndpointHandler<Path, Options, R> =\n\t\ttypeof handlerOrOptions === \"function\" ? handlerOrOptions : handlerOrNever;\n\n\tif ((options.method === \"GET\" || options.method === \"HEAD\") && options.body) {\n\t\tthrow new BetterCallError(\"Body is not allowed with GET or HEAD methods\");\n\t}\n\n\tif (path && /\\/{2,}/.test(path)) {\n\t\tthrow new BetterCallError(\"Path cannot contain consecutive slashes\");\n\t}\n\ttype Context = InputContext<Path, Options>;\n\n\ttype ResultType<\n\t\tAsResponse extends boolean,\n\t\tReturnHeaders extends boolean,\n\t\tReturnStatus extends boolean,\n\t> = AsResponse extends true\n\t\t? Response\n\t\t: ReturnHeaders extends true\n\t\t\t? ReturnStatus extends true\n\t\t\t\t? {\n\t\t\t\t\t\theaders: Headers;\n\t\t\t\t\t\tstatus: number;\n\t\t\t\t\t\tresponse: Awaited<R>;\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\theaders: Headers;\n\t\t\t\t\t\tresponse: Awaited<R>;\n\t\t\t\t\t}\n\t\t\t: ReturnStatus extends true\n\t\t\t\t? {\n\t\t\t\t\t\tstatus: number;\n\t\t\t\t\t\tresponse: Awaited<R>;\n\t\t\t\t\t}\n\t\t\t\t: Awaited<R>;\n\n\tconst internalHandler = async <\n\t\tAsResponse extends boolean = false,\n\t\tReturnHeaders extends boolean = false,\n\t\tReturnStatus extends boolean = false,\n\t>(\n\t\t...inputCtx: HasRequiredKeys<Context> extends true\n\t\t\t? [\n\t\t\t\t\tContext & {\n\t\t\t\t\t\tasResponse?: AsResponse;\n\t\t\t\t\t\treturnHeaders?: ReturnHeaders;\n\t\t\t\t\t\treturnStatus?: ReturnStatus;\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t: [\n\t\t\t\t\t(Context & {\n\t\t\t\t\t\tasResponse?: AsResponse;\n\t\t\t\t\t\treturnHeaders?: ReturnHeaders;\n\t\t\t\t\t\treturnStatus?: ReturnStatus;\n\t\t\t\t\t})?,\n\t\t\t\t]\n\t): Promise<ResultType<AsResponse, ReturnHeaders, ReturnStatus>> => {\n\t\tconst context = (inputCtx[0] || {}) as InputContext<any, any>;\n\t\tconst { data: internalContext, error: validationError } = await tryCatch(\n\t\t\tcreateInternalContext(context, {\n\t\t\t\toptions,\n\t\t\t\tpath,\n\t\t\t}),\n\t\t);\n\n\t\tif (validationError) {\n\t\t\t// If it's not a validation error, we throw it\n\t\t\tif (!(validationError instanceof ValidationError)) throw validationError;\n\n\t\t\t// Check if the endpoint has a custom onValidationError callback\n\t\t\tif (options.onValidationError) {\n\t\t\t\t// This can possibly throw an APIError in order to customize the validation error message\n\t\t\t\tawait options.onValidationError({\n\t\t\t\t\tmessage: validationError.message,\n\t\t\t\t\tissues: validationError.issues,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthrow new APIError(400, {\n\t\t\t\tmessage: validationError.message,\n\t\t\t\tcode: \"VALIDATION_ERROR\",\n\t\t\t});\n\t\t}\n\t\tconst response = await handler(internalContext as any).catch(async (e) => {\n\t\t\tif (isAPIError(e)) {\n\t\t\t\tconst onAPIError = options.onAPIError;\n\t\t\t\tif (onAPIError) {\n\t\t\t\t\tawait onAPIError(e);\n\t\t\t\t}\n\t\t\t\tif (context.asResponse) {\n\t\t\t\t\treturn e;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow e;\n\t\t});\n\t\tconst headers = internalContext.responseHeaders;\n\t\tconst status = internalContext.responseStatus;\n\n\t\treturn (\n\t\t\tcontext.asResponse\n\t\t\t\t? toResponse(response, {\n\t\t\t\t\t\theaders,\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t})\n\t\t\t\t: context.returnHeaders\n\t\t\t\t\t? context.returnStatus\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\theaders,\n\t\t\t\t\t\t\t\tresponse,\n\t\t\t\t\t\t\t\tstatus,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\theaders,\n\t\t\t\t\t\t\t\tresponse,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t: context.returnStatus\n\t\t\t\t\t\t? { response, status }\n\t\t\t\t\t\t: response\n\t\t) as ResultType<AsResponse, ReturnHeaders, ReturnStatus>;\n\t};\n\tinternalHandler.options = options;\n\tinternalHandler.path = path;\n\treturn internalHandler as unknown as StrictEndpoint<\n\t\tPath,\n\t\tExtractStandSchema<Options>,\n\t\tR\n\t>;\n}\n\ncreateEndpoint.create = <E extends { use?: Middleware[] }>(opts?: E) => {\n\treturn <\n\t\tPath extends string,\n\t\tOpts extends EndpointOptions,\n\t\tR extends Promise<any>,\n\t>(\n\t\tpath: Path,\n\t\toptions: Opts,\n\t\thandler: (ctx: EndpointContext<Path, Opts, InferUse<E[\"use\"]>>) => R,\n\t) => {\n\t\treturn createEndpoint(\n\t\t\tpath,\n\t\t\t{\n\t\t\t\t...options,\n\t\t\t\tuse: [...(options?.use || []), ...(opts?.use || [])],\n\t\t\t},\n\t\t\thandler,\n\t\t);\n\t};\n};\n\nexport type StrictEndpoint<\n\tPath extends string,\n\tOptions extends EndpointOptions,\n\tR = any,\n> = {\n\t// asResponse cases\n\t(\n\t\tcontext: InputContext<Path, Options> & { asResponse: true },\n\t): Promise<Response>;\n\n\t// returnHeaders & returnStatus cases\n\t(\n\t\tcontext: InputContext<Path, Options> & {\n\t\t\treturnHeaders: true;\n\t\t\treturnStatus: true;\n\t\t},\n\t): Promise<{ headers: Headers; status: number; response: Awaited<R> }>;\n\t(\n\t\tcontext: InputContext<Path, Options> & {\n\t\t\treturnHeaders: true;\n\t\t\treturnStatus: false;\n\t\t},\n\t): Promise<{ headers: Headers; response: Awaited<R> }>;\n\t(\n\t\tcontext: InputContext<Path, Options> & {\n\t\t\treturnHeaders: false;\n\t\t\treturnStatus: true;\n\t\t},\n\t): Promise<{ status: number; response: Awaited<R> }>;\n\t(\n\t\tcontext: InputContext<Path, Options> & {\n\t\t\treturnHeaders: false;\n\t\t\treturnStatus: false;\n\t\t},\n\t): Promise<R>;\n\n\t// individual flag cases\n\t(\n\t\tcontext: InputContext<Path, Options> & { returnHeaders: true },\n\t): Promise<{ headers: Headers; response: Awaited<R> }>;\n\t(\n\t\tcontext: InputContext<Path, Options> & { returnStatus: true },\n\t): Promise<{ status: number; response: Awaited<R> }>;\n\n\t// default case\n\t(context?: InputContext<Path, Options>): Promise<R>;\n\n\toptions: Options;\n\tpath: Path;\n};\n\nexport type Endpoint<\n\tPath extends string = string,\n\tOptions extends EndpointOptions = EndpointOptions,\n\tHandler extends (inputCtx: any) => Promise<any> = (\n\t\tinputCtx: any,\n\t) => Promise<any>,\n> = Handler & {\n\toptions: Options;\n\tpath: Path;\n};\n"],"mappings":";;;;;;AA4fA,SAAgB,eAKf,eACA,kBACA,gBACuD;CACvD,MAAM,OACL,OAAO,kBAAkB,WAAW,gBAAgB;CACrD,MAAM,UACL,OAAO,qBAAqB,WACzB,mBACC;CACL,MAAM,UACL,OAAO,qBAAqB,aAAa,mBAAmB;AAE7D,MAAK,QAAQ,WAAW,SAAS,QAAQ,WAAW,WAAW,QAAQ,KACtE,OAAM,IAAIA,8BAAgB,+CAA+C;AAG1E,KAAI,QAAQ,SAAS,KAAK,KAAK,CAC9B,OAAM,IAAIA,8BAAgB,0CAA0C;CA4BrE,MAAM,kBAAkB,OAKvB,GAAG,aAe+D;EAClE,MAAM,UAAW,SAAS,MAAM,EAAE;EAClC,MAAM,EAAE,MAAM,iBAAiB,OAAO,oBAAoB,MAAMC,uBAC/DC,sCAAsB,SAAS;GAC9B;GACA;GACA,CAAC,CACF;AAED,MAAI,iBAAiB;AAEpB,OAAI,EAAE,2BAA2BC,+BAAkB,OAAM;AAGzD,OAAI,QAAQ,kBAEX,OAAM,QAAQ,kBAAkB;IAC/B,SAAS,gBAAgB;IACzB,QAAQ,gBAAgB;IACxB,CAAC;AAGH,SAAM,IAAIC,uBAAS,KAAK;IACvB,SAAS,gBAAgB;IACzB,MAAM;IACN,CAAC;;EAEH,MAAM,WAAW,MAAM,QAAQ,gBAAuB,CAAC,MAAM,OAAO,MAAM;AACzE,OAAIC,yBAAW,EAAE,EAAE;IAClB,MAAM,aAAa,QAAQ;AAC3B,QAAI,WACH,OAAM,WAAW,EAAE;AAEpB,QAAI,QAAQ,WACX,QAAO;;AAGT,SAAM;IACL;EACF,MAAM,UAAU,gBAAgB;EAChC,MAAM,SAAS,gBAAgB;AAE/B,SACC,QAAQ,aACLC,+BAAW,UAAU;GACrB;GACA;GACA,CAAC,GACD,QAAQ,gBACP,QAAQ,eACP;GACA;GACA;GACA;GACA,GACA;GACA;GACA;GACA,GACD,QAAQ,eACP;GAAE;GAAU;GAAQ,GACpB;;AAGP,iBAAgB,UAAU;AAC1B,iBAAgB,OAAO;AACvB,QAAO;;AAOR,eAAe,UAA4C,SAAa;AACvE,SAKC,MACA,SACA,YACI;AACJ,SAAO,eACN,MACA;GACC,GAAG;GACH,KAAK,CAAC,GAAI,SAAS,OAAO,EAAE,EAAG,GAAI,MAAM,OAAO,EAAE,CAAE;GACpD,EACD,QACA"}