create-croissant 0.1.8 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/package.json +1 -1
  2. package/template/apps/web/package.json +2 -0
  3. package/template/apps/web/src/components/app-sidebar.tsx +43 -28
  4. package/template/apps/web/src/components/login-form.tsx +96 -49
  5. package/template/apps/web/src/components/signup-form.tsx +150 -80
  6. package/template/apps/web/src/routeTree.gen.ts +21 -0
  7. package/template/apps/web/src/routes/__root.tsx +17 -12
  8. package/template/apps/web/src/routes/account.tsx +263 -0
  9. package/template/apps/web/src/routes/client-orpc-auth.tsx +10 -22
  10. package/template/apps/web/src/routes/client-orpc.tsx +211 -110
  11. package/template/apps/web/src/routes/dashboard.tsx +3 -3
  12. package/template/apps/web/src/routes/index.tsx +8 -3
  13. package/template/apps/web/src/routes/isr.tsx +2 -2
  14. package/template/apps/web/src/routes/login.tsx +1 -1
  15. package/template/apps/web/src/routes/signup.tsx +1 -1
  16. package/template/apps/web/src/routes/ssr-orpc-auth.tsx +2 -2
  17. package/template/apps/web/src/routes/ssr-orpc.tsx +178 -100
  18. package/template/package.json +3 -1
  19. package/template/packages/orpc/src/lib/planets.ts +79 -0
  20. package/template/packages/orpc/src/lib/router.ts +3 -72
  21. package/template/apps/web/node_modules/@better-auth/core/LICENSE.md +0 -20
  22. package/template/apps/web/node_modules/@better-auth/core/README.md +0 -17
  23. package/template/apps/web/node_modules/@better-auth/core/dist/api/index.d.mts +0 -278
  24. package/template/apps/web/node_modules/@better-auth/core/dist/api/index.mjs +0 -56
  25. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/index.d.mts +0 -6
  26. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/index.mjs +0 -20
  27. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/pure.index.d.mts +0 -6
  28. package/template/apps/web/node_modules/@better-auth/core/dist/async_hooks/pure.index.mjs +0 -33
  29. package/template/apps/web/node_modules/@better-auth/core/dist/context/endpoint-context.d.mts +0 -18
  30. package/template/apps/web/node_modules/@better-auth/core/dist/context/endpoint-context.mjs +0 -29
  31. package/template/apps/web/node_modules/@better-auth/core/dist/context/global.d.mts +0 -6
  32. package/template/apps/web/node_modules/@better-auth/core/dist/context/global.mjs +0 -36
  33. package/template/apps/web/node_modules/@better-auth/core/dist/context/index.d.mts +0 -5
  34. package/template/apps/web/node_modules/@better-auth/core/dist/context/index.mjs +0 -5
  35. package/template/apps/web/node_modules/@better-auth/core/dist/context/request-state.d.mts +0 -27
  36. package/template/apps/web/node_modules/@better-auth/core/dist/context/request-state.mjs +0 -47
  37. package/template/apps/web/node_modules/@better-auth/core/dist/context/transaction.d.mts +0 -24
  38. package/template/apps/web/node_modules/@better-auth/core/dist/context/transaction.mjs +0 -93
  39. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/factory.d.mts +0 -17
  40. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/factory.mjs +0 -754
  41. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-field-name.d.mts +0 -18
  42. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-field-name.mjs +0 -36
  43. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-model-name.d.mts +0 -12
  44. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-default-model-name.mjs +0 -30
  45. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.d.mts +0 -26
  46. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-attributes.mjs +0 -37
  47. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-name.d.mts +0 -18
  48. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-field-name.mjs +0 -31
  49. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-id-field.d.mts +0 -36
  50. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-id-field.mjs +0 -64
  51. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-model-name.d.mts +0 -12
  52. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/get-model-name.mjs +0 -21
  53. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/index.d.mts +0 -525
  54. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/index.mjs +0 -24
  55. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/types.d.mts +0 -105
  56. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/utils.d.mts +0 -7
  57. package/template/apps/web/node_modules/@better-auth/core/dist/db/adapter/utils.mjs +0 -37
  58. package/template/apps/web/node_modules/@better-auth/core/dist/db/get-tables.d.mts +0 -6
  59. package/template/apps/web/node_modules/@better-auth/core/dist/db/get-tables.mjs +0 -265
  60. package/template/apps/web/node_modules/@better-auth/core/dist/db/index.d.mts +0 -10
  61. package/template/apps/web/node_modules/@better-auth/core/dist/db/index.mjs +0 -8
  62. package/template/apps/web/node_modules/@better-auth/core/dist/db/plugin.d.mts +0 -12
  63. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/account.d.mts +0 -28
  64. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/account.mjs +0 -17
  65. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/rate-limit.d.mts +0 -18
  66. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/rate-limit.mjs +0 -9
  67. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/session.d.mts +0 -23
  68. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/session.mjs +0 -12
  69. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/shared.d.mts +0 -10
  70. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/shared.mjs +0 -9
  71. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/user.d.mts +0 -22
  72. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/user.mjs +0 -11
  73. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/verification.d.mts +0 -21
  74. package/template/apps/web/node_modules/@better-auth/core/dist/db/schema/verification.mjs +0 -10
  75. package/template/apps/web/node_modules/@better-auth/core/dist/db/type.d.mts +0 -167
  76. package/template/apps/web/node_modules/@better-auth/core/dist/env/color-depth.d.mts +0 -4
  77. package/template/apps/web/node_modules/@better-auth/core/dist/env/color-depth.mjs +0 -86
  78. package/template/apps/web/node_modules/@better-auth/core/dist/env/env-impl.d.mts +0 -32
  79. package/template/apps/web/node_modules/@better-auth/core/dist/env/env-impl.mjs +0 -81
  80. package/template/apps/web/node_modules/@better-auth/core/dist/env/index.d.mts +0 -4
  81. package/template/apps/web/node_modules/@better-auth/core/dist/env/index.mjs +0 -4
  82. package/template/apps/web/node_modules/@better-auth/core/dist/env/logger.d.mts +0 -48
  83. package/template/apps/web/node_modules/@better-auth/core/dist/env/logger.mjs +0 -79
  84. package/template/apps/web/node_modules/@better-auth/core/dist/error/codes.d.mts +0 -68
  85. package/template/apps/web/node_modules/@better-auth/core/dist/error/codes.mjs +0 -54
  86. package/template/apps/web/node_modules/@better-auth/core/dist/error/index.d.mts +0 -19
  87. package/template/apps/web/node_modules/@better-auth/core/dist/error/index.mjs +0 -27
  88. package/template/apps/web/node_modules/@better-auth/core/dist/index.d.mts +0 -9
  89. package/template/apps/web/node_modules/@better-auth/core/dist/index.mjs +0 -1
  90. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/api.mjs +0 -12
  91. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/attributes.d.mts +0 -11
  92. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/attributes.mjs +0 -10
  93. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/index.d.mts +0 -3
  94. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/index.mjs +0 -3
  95. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/noop.mjs +0 -42
  96. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/pure.index.d.mts +0 -7
  97. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/pure.index.mjs +0 -7
  98. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/tracer.d.mts +0 -13
  99. package/template/apps/web/node_modules/@better-auth/core/dist/instrumentation/tracer.mjs +0 -53
  100. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/client-credentials-token.d.mts +0 -56
  101. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/client-credentials-token.mjs +0 -64
  102. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/create-authorization-url.d.mts +0 -44
  103. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/create-authorization-url.mjs +0 -41
  104. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/index.d.mts +0 -8
  105. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/index.mjs +0 -7
  106. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/oauth-provider.d.mts +0 -192
  107. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/refresh-access-token.d.mts +0 -54
  108. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/refresh-access-token.mjs +0 -73
  109. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/utils.d.mts +0 -16
  110. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/utils.mjs +0 -37
  111. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/validate-authorization-code.d.mts +0 -85
  112. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/validate-authorization-code.mjs +0 -79
  113. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/verify.d.mts +0 -42
  114. package/template/apps/web/node_modules/@better-auth/core/dist/oauth2/verify.mjs +0 -92
  115. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/apple.d.mts +0 -126
  116. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/apple.mjs +0 -107
  117. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/atlassian.d.mts +0 -70
  118. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/atlassian.mjs +0 -80
  119. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/cognito.d.mts +0 -85
  120. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/cognito.mjs +0 -162
  121. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/discord.d.mts +0 -124
  122. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/discord.mjs +0 -62
  123. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/dropbox.d.mts +0 -69
  124. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/dropbox.mjs +0 -72
  125. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/facebook.d.mts +0 -79
  126. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/facebook.mjs +0 -124
  127. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/figma.d.mts +0 -61
  128. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/figma.mjs +0 -83
  129. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/github.d.mts +0 -102
  130. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/github.mjs +0 -92
  131. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/gitlab.d.mts +0 -123
  132. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/gitlab.mjs +0 -79
  133. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/google.d.mts +0 -97
  134. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/google.mjs +0 -109
  135. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/huggingface.d.mts +0 -83
  136. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/huggingface.mjs +0 -73
  137. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/index.d.mts +0 -1834
  138. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/index.mjs +0 -78
  139. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kakao.d.mts +0 -161
  140. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kakao.mjs +0 -70
  141. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kick.d.mts +0 -73
  142. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/kick.mjs +0 -68
  143. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/line.d.mts +0 -105
  144. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/line.mjs +0 -110
  145. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linear.d.mts +0 -68
  146. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linear.mjs +0 -85
  147. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linkedin.d.mts +0 -67
  148. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/linkedin.mjs +0 -73
  149. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/microsoft-entra-id.d.mts +0 -174
  150. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/microsoft-entra-id.mjs +0 -140
  151. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/naver.d.mts +0 -92
  152. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/naver.mjs +0 -65
  153. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/notion.d.mts +0 -64
  154. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/notion.mjs +0 -72
  155. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paybin.d.mts +0 -71
  156. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paybin.mjs +0 -81
  157. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paypal.d.mts +0 -129
  158. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/paypal.mjs +0 -140
  159. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/polar.d.mts +0 -74
  160. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/polar.mjs +0 -71
  161. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/railway.d.mts +0 -65
  162. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/railway.mjs +0 -74
  163. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/reddit.d.mts +0 -62
  164. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/reddit.mjs +0 -80
  165. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/roblox.d.mts +0 -70
  166. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/roblox.mjs +0 -57
  167. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/salesforce.d.mts +0 -79
  168. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/salesforce.mjs +0 -87
  169. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/slack.d.mts +0 -83
  170. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/slack.mjs +0 -66
  171. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/spotify.d.mts +0 -63
  172. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/spotify.mjs +0 -69
  173. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/tiktok.d.mts +0 -168
  174. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/tiktok.mjs +0 -60
  175. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitch.d.mts +0 -79
  176. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitch.mjs +0 -75
  177. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitter.d.mts +0 -126
  178. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/twitter.mjs +0 -85
  179. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vercel.d.mts +0 -62
  180. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vercel.mjs +0 -58
  181. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vk.d.mts +0 -70
  182. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/vk.mjs +0 -81
  183. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/wechat.d.mts +0 -113
  184. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/wechat.mjs +0 -81
  185. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/zoom.d.mts +0 -163
  186. package/template/apps/web/node_modules/@better-auth/core/dist/social-providers/zoom.mjs +0 -69
  187. package/template/apps/web/node_modules/@better-auth/core/dist/types/context.d.mts +0 -277
  188. package/template/apps/web/node_modules/@better-auth/core/dist/types/cookie.d.mts +0 -15
  189. package/template/apps/web/node_modules/@better-auth/core/dist/types/helper.d.mts +0 -10
  190. package/template/apps/web/node_modules/@better-auth/core/dist/types/index.d.mts +0 -9
  191. package/template/apps/web/node_modules/@better-auth/core/dist/types/init-options.d.mts +0 -1358
  192. package/template/apps/web/node_modules/@better-auth/core/dist/types/plugin-client.d.mts +0 -113
  193. package/template/apps/web/node_modules/@better-auth/core/dist/types/plugin.d.mts +0 -124
  194. package/template/apps/web/node_modules/@better-auth/core/dist/types/secret.d.mts +0 -11
  195. package/template/apps/web/node_modules/@better-auth/core/dist/utils/async.d.mts +0 -22
  196. package/template/apps/web/node_modules/@better-auth/core/dist/utils/async.mjs +0 -32
  197. package/template/apps/web/node_modules/@better-auth/core/dist/utils/db.d.mts +0 -9
  198. package/template/apps/web/node_modules/@better-auth/core/dist/utils/db.mjs +0 -15
  199. package/template/apps/web/node_modules/@better-auth/core/dist/utils/deprecate.d.mts +0 -9
  200. package/template/apps/web/node_modules/@better-auth/core/dist/utils/deprecate.mjs +0 -16
  201. package/template/apps/web/node_modules/@better-auth/core/dist/utils/error-codes.d.mts +0 -13
  202. package/template/apps/web/node_modules/@better-auth/core/dist/utils/error-codes.mjs +0 -10
  203. package/template/apps/web/node_modules/@better-auth/core/dist/utils/fetch-metadata.d.mts +0 -4
  204. package/template/apps/web/node_modules/@better-auth/core/dist/utils/fetch-metadata.mjs +0 -6
  205. package/template/apps/web/node_modules/@better-auth/core/dist/utils/host.d.mts +0 -147
  206. package/template/apps/web/node_modules/@better-auth/core/dist/utils/host.mjs +0 -291
  207. package/template/apps/web/node_modules/@better-auth/core/dist/utils/id.d.mts +0 -4
  208. package/template/apps/web/node_modules/@better-auth/core/dist/utils/id.mjs +0 -7
  209. package/template/apps/web/node_modules/@better-auth/core/dist/utils/ip.d.mts +0 -54
  210. package/template/apps/web/node_modules/@better-auth/core/dist/utils/ip.mjs +0 -116
  211. package/template/apps/web/node_modules/@better-auth/core/dist/utils/is-api-error.d.mts +0 -6
  212. package/template/apps/web/node_modules/@better-auth/core/dist/utils/is-api-error.mjs +0 -8
  213. package/template/apps/web/node_modules/@better-auth/core/dist/utils/json.d.mts +0 -4
  214. package/template/apps/web/node_modules/@better-auth/core/dist/utils/json.mjs +0 -41
  215. package/template/apps/web/node_modules/@better-auth/core/dist/utils/string.d.mts +0 -4
  216. package/template/apps/web/node_modules/@better-auth/core/dist/utils/string.mjs +0 -6
  217. package/template/apps/web/node_modules/@better-auth/core/dist/utils/url.d.mts +0 -20
  218. package/template/apps/web/node_modules/@better-auth/core/dist/utils/url.mjs +0 -31
  219. package/template/apps/web/node_modules/@better-auth/core/package.json +0 -193
  220. package/template/apps/web/node_modules/@better-auth/core/src/api/index.ts +0 -140
  221. package/template/apps/web/node_modules/@better-auth/core/src/async_hooks/index.ts +0 -40
  222. package/template/apps/web/node_modules/@better-auth/core/src/async_hooks/pure.index.ts +0 -46
  223. package/template/apps/web/node_modules/@better-auth/core/src/context/endpoint-context.ts +0 -50
  224. package/template/apps/web/node_modules/@better-auth/core/src/context/global.ts +0 -57
  225. package/template/apps/web/node_modules/@better-auth/core/src/context/index.ts +0 -23
  226. package/template/apps/web/node_modules/@better-auth/core/src/context/request-state.ts +0 -91
  227. package/template/apps/web/node_modules/@better-auth/core/src/context/transaction.ts +0 -136
  228. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/factory.ts +0 -1440
  229. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-default-field-name.ts +0 -59
  230. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-default-model-name.ts +0 -51
  231. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-field-attributes.ts +0 -62
  232. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-field-name.ts +0 -43
  233. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-id-field.ts +0 -150
  234. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/get-model-name.ts +0 -36
  235. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/index.ts +0 -567
  236. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/types.ts +0 -132
  237. package/template/apps/web/node_modules/@better-auth/core/src/db/adapter/utils.ts +0 -61
  238. package/template/apps/web/node_modules/@better-auth/core/src/db/get-tables.ts +0 -296
  239. package/template/apps/web/node_modules/@better-auth/core/src/db/index.ts +0 -43
  240. package/template/apps/web/node_modules/@better-auth/core/src/db/plugin.ts +0 -11
  241. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/account.ts +0 -47
  242. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/rate-limit.ts +0 -36
  243. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/session.ts +0 -29
  244. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/shared.ts +0 -7
  245. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/user.ts +0 -28
  246. package/template/apps/web/node_modules/@better-auth/core/src/db/schema/verification.ts +0 -28
  247. package/template/apps/web/node_modules/@better-auth/core/src/db/type.ts +0 -333
  248. package/template/apps/web/node_modules/@better-auth/core/src/env/color-depth.ts +0 -172
  249. package/template/apps/web/node_modules/@better-auth/core/src/env/env-impl.ts +0 -124
  250. package/template/apps/web/node_modules/@better-auth/core/src/env/index.ts +0 -23
  251. package/template/apps/web/node_modules/@better-auth/core/src/env/logger.ts +0 -145
  252. package/template/apps/web/node_modules/@better-auth/core/src/error/codes.ts +0 -71
  253. package/template/apps/web/node_modules/@better-auth/core/src/error/index.ts +0 -35
  254. package/template/apps/web/node_modules/@better-auth/core/src/index.ts +0 -1
  255. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/api.ts +0 -17
  256. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/attributes.ts +0 -22
  257. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/index.ts +0 -2
  258. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/noop.ts +0 -74
  259. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/pure.index.ts +0 -31
  260. package/template/apps/web/node_modules/@better-auth/core/src/instrumentation/tracer.ts +0 -95
  261. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/client-credentials-token.ts +0 -126
  262. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/create-authorization-url.ts +0 -89
  263. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/index.ts +0 -33
  264. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/oauth-provider.ts +0 -222
  265. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/refresh-access-token.ts +0 -157
  266. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/utils.ts +0 -51
  267. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/validate-authorization-code.ts +0 -180
  268. package/template/apps/web/node_modules/@better-auth/core/src/oauth2/verify.ts +0 -221
  269. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/apple.ts +0 -231
  270. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/atlassian.ts +0 -133
  271. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/cognito.ts +0 -281
  272. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/discord.ts +0 -170
  273. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/dropbox.ts +0 -112
  274. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/facebook.ts +0 -215
  275. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/figma.ts +0 -118
  276. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/github.ts +0 -184
  277. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/gitlab.ts +0 -155
  278. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/google.ts +0 -204
  279. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/huggingface.ts +0 -119
  280. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/index.ts +0 -132
  281. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/kakao.ts +0 -179
  282. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/kick.ts +0 -109
  283. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/line.ts +0 -169
  284. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/linear.ts +0 -121
  285. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/linkedin.ts +0 -110
  286. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/microsoft-entra-id.ts +0 -352
  287. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/naver.ts +0 -113
  288. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/notion.ts +0 -108
  289. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/paybin.ts +0 -118
  290. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/paypal.ts +0 -263
  291. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/polar.ts +0 -111
  292. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/railway.ts +0 -100
  293. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/reddit.ts +0 -122
  294. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/roblox.ts +0 -112
  295. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/salesforce.ts +0 -159
  296. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/slack.ts +0 -112
  297. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/spotify.ts +0 -94
  298. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/tiktok.ts +0 -211
  299. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/twitch.ts +0 -112
  300. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/twitter.ts +0 -199
  301. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/vercel.ts +0 -87
  302. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/vk.ts +0 -125
  303. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/wechat.ts +0 -213
  304. package/template/apps/web/node_modules/@better-auth/core/src/social-providers/zoom.ts +0 -230
  305. package/template/apps/web/node_modules/@better-auth/core/src/types/context.ts +0 -415
  306. package/template/apps/web/node_modules/@better-auth/core/src/types/cookie.ts +0 -10
  307. package/template/apps/web/node_modules/@better-auth/core/src/types/helper.ts +0 -27
  308. package/template/apps/web/node_modules/@better-auth/core/src/types/index.ts +0 -40
  309. package/template/apps/web/node_modules/@better-auth/core/src/types/init-options.ts +0 -1610
  310. package/template/apps/web/node_modules/@better-auth/core/src/types/plugin-client.ts +0 -129
  311. package/template/apps/web/node_modules/@better-auth/core/src/types/plugin.ts +0 -163
  312. package/template/apps/web/node_modules/@better-auth/core/src/types/secret.ts +0 -8
  313. package/template/apps/web/node_modules/@better-auth/core/src/utils/async.ts +0 -53
  314. package/template/apps/web/node_modules/@better-auth/core/src/utils/db.ts +0 -20
  315. package/template/apps/web/node_modules/@better-auth/core/src/utils/deprecate.ts +0 -21
  316. package/template/apps/web/node_modules/@better-auth/core/src/utils/error-codes.ts +0 -68
  317. package/template/apps/web/node_modules/@better-auth/core/src/utils/fetch-metadata.ts +0 -3
  318. package/template/apps/web/node_modules/@better-auth/core/src/utils/host.ts +0 -401
  319. package/template/apps/web/node_modules/@better-auth/core/src/utils/id.ts +0 -5
  320. package/template/apps/web/node_modules/@better-auth/core/src/utils/ip.ts +0 -211
  321. package/template/apps/web/node_modules/@better-auth/core/src/utils/is-api-error.ts +0 -10
  322. package/template/apps/web/node_modules/@better-auth/core/src/utils/json.ts +0 -56
  323. package/template/apps/web/node_modules/@better-auth/core/src/utils/string.ts +0 -3
  324. package/template/apps/web/node_modules/@better-auth/core/src/utils/url.ts +0 -43
  325. package/template/apps/web/node_modules/@better-auth/utils/README.md +0 -384
  326. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.cjs +0 -104
  327. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.d.cts +0 -44
  328. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.d.mts +0 -44
  329. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.d.ts +0 -44
  330. package/template/apps/web/node_modules/@better-auth/utils/dist/base32.mjs +0 -101
  331. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.cjs +0 -80
  332. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.d.cts +0 -16
  333. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.d.mts +0 -16
  334. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.d.ts +0 -16
  335. package/template/apps/web/node_modules/@better-auth/utils/dist/base64.mjs +0 -77
  336. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.cjs +0 -16
  337. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.d.cts +0 -8
  338. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.d.mts +0 -8
  339. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.d.ts +0 -8
  340. package/template/apps/web/node_modules/@better-auth/utils/dist/binary.mjs +0 -14
  341. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.cjs +0 -90
  342. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.d.cts +0 -19
  343. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.d.mts +0 -19
  344. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.d.ts +0 -19
  345. package/template/apps/web/node_modules/@better-auth/utils/dist/ecdsa.mjs +0 -88
  346. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.cjs +0 -31
  347. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.d.cts +0 -7
  348. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.d.mts +0 -7
  349. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.d.ts +0 -7
  350. package/template/apps/web/node_modules/@better-auth/utils/dist/hash.mjs +0 -29
  351. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.cjs +0 -40
  352. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.d.cts +0 -8
  353. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.d.mts +0 -8
  354. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.d.ts +0 -8
  355. package/template/apps/web/node_modules/@better-auth/utils/dist/hex.mjs +0 -38
  356. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.cjs +0 -58
  357. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.d.cts +0 -9
  358. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.d.mts +0 -9
  359. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.d.ts +0 -9
  360. package/template/apps/web/node_modules/@better-auth/utils/dist/hmac.mjs +0 -56
  361. package/template/apps/web/node_modules/@better-auth/utils/dist/index.cjs +0 -10
  362. package/template/apps/web/node_modules/@better-auth/utils/dist/index.d.cts +0 -3
  363. package/template/apps/web/node_modules/@better-auth/utils/dist/index.d.mts +0 -3
  364. package/template/apps/web/node_modules/@better-auth/utils/dist/index.d.ts +0 -3
  365. package/template/apps/web/node_modules/@better-auth/utils/dist/index.mjs +0 -8
  366. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.cjs +0 -90
  367. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.d.cts +0 -13
  368. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.d.mts +0 -13
  369. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.d.ts +0 -13
  370. package/template/apps/web/node_modules/@better-auth/utils/dist/otp.mjs +0 -88
  371. package/template/apps/web/node_modules/@better-auth/utils/dist/password.cjs +0 -36
  372. package/template/apps/web/node_modules/@better-auth/utils/dist/password.d.cts +0 -4
  373. package/template/apps/web/node_modules/@better-auth/utils/dist/password.d.mts +0 -4
  374. package/template/apps/web/node_modules/@better-auth/utils/dist/password.d.ts +0 -4
  375. package/template/apps/web/node_modules/@better-auth/utils/dist/password.mjs +0 -33
  376. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.cjs +0 -47
  377. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.d.cts +0 -4
  378. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.d.mts +0 -4
  379. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.d.ts +0 -4
  380. package/template/apps/web/node_modules/@better-auth/utils/dist/password.node.mjs +0 -44
  381. package/template/apps/web/node_modules/@better-auth/utils/dist/random.cjs +0 -55
  382. package/template/apps/web/node_modules/@better-auth/utils/dist/random.d.cts +0 -4
  383. package/template/apps/web/node_modules/@better-auth/utils/dist/random.d.mts +0 -4
  384. package/template/apps/web/node_modules/@better-auth/utils/dist/random.d.ts +0 -4
  385. package/template/apps/web/node_modules/@better-auth/utils/dist/random.mjs +0 -53
  386. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.cjs +0 -76
  387. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.d.cts +0 -16
  388. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.d.mts +0 -16
  389. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.d.ts +0 -16
  390. package/template/apps/web/node_modules/@better-auth/utils/dist/rsa.mjs +0 -74
  391. package/template/apps/web/node_modules/@better-auth/utils/dist/shared/utils.ecd028f7.d.cts +0 -22
  392. package/template/apps/web/node_modules/@better-auth/utils/dist/shared/utils.ecd028f7.d.mts +0 -22
  393. package/template/apps/web/node_modules/@better-auth/utils/dist/shared/utils.ecd028f7.d.ts +0 -22
  394. package/template/apps/web/node_modules/@better-auth/utils/package.json +0 -95
  395. package/template/apps/web/node_modules/better-call/LICENSE +0 -21
  396. package/template/apps/web/node_modules/better-call/dist/_virtual/_rolldown/runtime.cjs +0 -29
  397. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.cjs +0 -181
  398. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.cjs.map +0 -1
  399. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.d.cts +0 -16
  400. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.d.mts +0 -16
  401. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.mjs +0 -178
  402. package/template/apps/web/node_modules/better-call/dist/adapters/node/request.mjs.map +0 -1
  403. package/template/apps/web/node_modules/better-call/dist/client.cjs +0 -23
  404. package/template/apps/web/node_modules/better-call/dist/client.cjs.map +0 -1
  405. package/template/apps/web/node_modules/better-call/dist/client.d.cts +0 -53
  406. package/template/apps/web/node_modules/better-call/dist/client.d.mts +0 -53
  407. package/template/apps/web/node_modules/better-call/dist/client.mjs +0 -14
  408. package/template/apps/web/node_modules/better-call/dist/client.mjs.map +0 -1
  409. package/template/apps/web/node_modules/better-call/dist/context.cjs +0 -103
  410. package/template/apps/web/node_modules/better-call/dist/context.cjs.map +0 -1
  411. package/template/apps/web/node_modules/better-call/dist/context.d.cts +0 -341
  412. package/template/apps/web/node_modules/better-call/dist/context.d.mts +0 -341
  413. package/template/apps/web/node_modules/better-call/dist/context.mjs +0 -103
  414. package/template/apps/web/node_modules/better-call/dist/context.mjs.map +0 -1
  415. package/template/apps/web/node_modules/better-call/dist/cookies.cjs +0 -87
  416. package/template/apps/web/node_modules/better-call/dist/cookies.cjs.map +0 -1
  417. package/template/apps/web/node_modules/better-call/dist/cookies.d.cts +0 -103
  418. package/template/apps/web/node_modules/better-call/dist/cookies.d.mts +0 -103
  419. package/template/apps/web/node_modules/better-call/dist/cookies.mjs +0 -84
  420. package/template/apps/web/node_modules/better-call/dist/cookies.mjs.map +0 -1
  421. package/template/apps/web/node_modules/better-call/dist/crypto.cjs +0 -39
  422. package/template/apps/web/node_modules/better-call/dist/crypto.cjs.map +0 -1
  423. package/template/apps/web/node_modules/better-call/dist/crypto.mjs +0 -36
  424. package/template/apps/web/node_modules/better-call/dist/crypto.mjs.map +0 -1
  425. package/template/apps/web/node_modules/better-call/dist/endpoint.cjs +0 -70
  426. package/template/apps/web/node_modules/better-call/dist/endpoint.cjs.map +0 -1
  427. package/template/apps/web/node_modules/better-call/dist/endpoint.d.cts +0 -475
  428. package/template/apps/web/node_modules/better-call/dist/endpoint.d.mts +0 -475
  429. package/template/apps/web/node_modules/better-call/dist/endpoint.mjs +0 -70
  430. package/template/apps/web/node_modules/better-call/dist/endpoint.mjs.map +0 -1
  431. package/template/apps/web/node_modules/better-call/dist/error.cjs +0 -141
  432. package/template/apps/web/node_modules/better-call/dist/error.cjs.map +0 -1
  433. package/template/apps/web/node_modules/better-call/dist/error.d.cts +0 -103
  434. package/template/apps/web/node_modules/better-call/dist/error.d.mts +0 -103
  435. package/template/apps/web/node_modules/better-call/dist/error.mjs +0 -133
  436. package/template/apps/web/node_modules/better-call/dist/error.mjs.map +0 -1
  437. package/template/apps/web/node_modules/better-call/dist/helper.d.cts +0 -12
  438. package/template/apps/web/node_modules/better-call/dist/helper.d.mts +0 -12
  439. package/template/apps/web/node_modules/better-call/dist/index.cjs +0 -28
  440. package/template/apps/web/node_modules/better-call/dist/index.d.cts +0 -11
  441. package/template/apps/web/node_modules/better-call/dist/index.d.mts +0 -11
  442. package/template/apps/web/node_modules/better-call/dist/index.mjs +0 -10
  443. package/template/apps/web/node_modules/better-call/dist/middleware.cjs +0 -52
  444. package/template/apps/web/node_modules/better-call/dist/middleware.cjs.map +0 -1
  445. package/template/apps/web/node_modules/better-call/dist/middleware.d.cts +0 -123
  446. package/template/apps/web/node_modules/better-call/dist/middleware.d.mts +0 -123
  447. package/template/apps/web/node_modules/better-call/dist/middleware.mjs +0 -52
  448. package/template/apps/web/node_modules/better-call/dist/middleware.mjs.map +0 -1
  449. package/template/apps/web/node_modules/better-call/dist/node.cjs +0 -18
  450. package/template/apps/web/node_modules/better-call/dist/node.cjs.map +0 -1
  451. package/template/apps/web/node_modules/better-call/dist/node.d.cts +0 -9
  452. package/template/apps/web/node_modules/better-call/dist/node.d.mts +0 -9
  453. package/template/apps/web/node_modules/better-call/dist/node.mjs +0 -15
  454. package/template/apps/web/node_modules/better-call/dist/node.mjs.map +0 -1
  455. package/template/apps/web/node_modules/better-call/dist/openapi.cjs +0 -191
  456. package/template/apps/web/node_modules/better-call/dist/openapi.cjs.map +0 -1
  457. package/template/apps/web/node_modules/better-call/dist/openapi.d.cts +0 -113
  458. package/template/apps/web/node_modules/better-call/dist/openapi.d.mts +0 -113
  459. package/template/apps/web/node_modules/better-call/dist/openapi.mjs +0 -189
  460. package/template/apps/web/node_modules/better-call/dist/openapi.mjs.map +0 -1
  461. package/template/apps/web/node_modules/better-call/dist/router.cjs +0 -118
  462. package/template/apps/web/node_modules/better-call/dist/router.cjs.map +0 -1
  463. package/template/apps/web/node_modules/better-call/dist/router.d.cts +0 -103
  464. package/template/apps/web/node_modules/better-call/dist/router.d.mts +0 -103
  465. package/template/apps/web/node_modules/better-call/dist/router.mjs +0 -117
  466. package/template/apps/web/node_modules/better-call/dist/router.mjs.map +0 -1
  467. package/template/apps/web/node_modules/better-call/dist/standard-schema.d.cts +0 -59
  468. package/template/apps/web/node_modules/better-call/dist/standard-schema.d.mts +0 -59
  469. package/template/apps/web/node_modules/better-call/dist/to-response.cjs +0 -153
  470. package/template/apps/web/node_modules/better-call/dist/to-response.cjs.map +0 -1
  471. package/template/apps/web/node_modules/better-call/dist/to-response.d.cts +0 -12
  472. package/template/apps/web/node_modules/better-call/dist/to-response.d.mts +0 -12
  473. package/template/apps/web/node_modules/better-call/dist/to-response.mjs +0 -153
  474. package/template/apps/web/node_modules/better-call/dist/to-response.mjs.map +0 -1
  475. package/template/apps/web/node_modules/better-call/dist/utils.cjs +0 -86
  476. package/template/apps/web/node_modules/better-call/dist/utils.cjs.map +0 -1
  477. package/template/apps/web/node_modules/better-call/dist/utils.mjs +0 -82
  478. package/template/apps/web/node_modules/better-call/dist/utils.mjs.map +0 -1
  479. package/template/apps/web/node_modules/better-call/dist/validator.cjs +0 -58
  480. package/template/apps/web/node_modules/better-call/dist/validator.cjs.map +0 -1
  481. package/template/apps/web/node_modules/better-call/dist/validator.mjs +0 -57
  482. package/template/apps/web/node_modules/better-call/dist/validator.mjs.map +0 -1
  483. package/template/apps/web/node_modules/better-call/package.json +0 -96
  484. package/template/apps/web/node_modules/set-cookie-parser/LICENSE +0 -21
  485. package/template/apps/web/node_modules/set-cookie-parser/README.md +0 -169
  486. package/template/apps/web/node_modules/set-cookie-parser/dist/.eslintrc.cjs +0 -16
  487. package/template/apps/web/node_modules/set-cookie-parser/dist/set-cookie.cjs +0 -260
  488. package/template/apps/web/node_modules/set-cookie-parser/lib/set-cookie.d.ts +0 -119
  489. package/template/apps/web/node_modules/set-cookie-parser/lib/set-cookie.js +0 -265
  490. package/template/apps/web/node_modules/set-cookie-parser/package.json +0 -61
@@ -1,291 +0,0 @@
1
- import { isValidIP, normalizeIP } from "./ip.mjs";
2
- //#region src/utils/host.ts
3
- /**
4
- * Cloud provider instance metadata service FQDNs. These resolve to link-local
5
- * IPs (usually `169.254.169.254`) inside their respective clouds and are
6
- * prime SSRF targets.
7
- *
8
- * The IPs themselves are already caught by the `linkLocal` kind; this set
9
- * only exists for the FQDN form that a naive server-side fetch might resolve
10
- * via its own resolver.
11
- */
12
- const CLOUD_METADATA_HOSTS = new Set([
13
- "metadata.google.internal",
14
- "metadata.goog",
15
- "metadata",
16
- "instance-data",
17
- "instance-data.ec2.internal"
18
- ]);
19
- /** Strip `[...]` if the entire input is bracketed (IPv6 literal form). */
20
- function stripBrackets(host) {
21
- if (host.length >= 2 && host.startsWith("[") && host.endsWith("]")) return host.slice(1, -1);
22
- return host;
23
- }
24
- /**
25
- * Strip trailing `:port` from host-with-port strings.
26
- *
27
- * - Bracketed IPv6 with port: `[::1]:8080` → `[::1]`
28
- * - IPv4/FQDN with port: `127.0.0.1:3000` / `example.com:443` → base form
29
- * - Bare IPv6: `::1` / `fe80::1` → unchanged (multiple colons means no port)
30
- */
31
- function stripPort(host) {
32
- if (host.startsWith("[")) {
33
- const end = host.indexOf("]");
34
- if (end === -1) return host;
35
- return host.slice(0, end + 1);
36
- }
37
- const firstColon = host.indexOf(":");
38
- if (firstColon === -1) return host;
39
- if (host.indexOf(":", firstColon + 1) !== -1) return host;
40
- return host.slice(0, firstColon);
41
- }
42
- /** Strip IPv6 zone identifier: `fe80::1%eth0` → `fe80::1`. */
43
- function stripZoneId(host) {
44
- const zone = host.indexOf("%");
45
- if (zone === -1) return host;
46
- return host.slice(0, zone);
47
- }
48
- /**
49
- * Strip trailing dots (RFC 1034 absolute DNS form): `localhost.` → `localhost`.
50
- * Without this, `metadata.google.internal.` would fall through to `public` and
51
- * bypass the cloud-metadata / `.localhost` checks, since WHATWG URL parsing
52
- * preserves the trailing dot in `url.hostname`.
53
- */
54
- function stripTrailingDot(host) {
55
- return host.replace(/\.+$/, "");
56
- }
57
- /** Fast dotted-decimal shape check. Does NOT validate octet bounds. */
58
- function looksLikeIPv4(host) {
59
- return /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(host);
60
- }
61
- /** Pack a validated dotted-decimal IPv4 into a 32-bit unsigned integer. */
62
- function ipv4ToUint32(ip) {
63
- const parts = ip.split(".");
64
- return (Number(parts[0]) << 24 | Number(parts[1]) << 16 | Number(parts[2]) << 8 | Number(parts[3])) >>> 0;
65
- }
66
- /** Check whether a 32-bit value matches `prefix/length` (both unsigned). */
67
- function inIPv4Range(value, prefix, length) {
68
- if (length === 0) return true;
69
- const mask = length === 32 ? 4294967295 : -1 << 32 - length >>> 0;
70
- return (value & mask) === (prefix & mask);
71
- }
72
- function classifyIPv4(ip) {
73
- if (ip === "0.0.0.0") return "unspecified";
74
- if (ip === "255.255.255.255") return "broadcast";
75
- const n = ipv4ToUint32(ip);
76
- if (inIPv4Range(n, ipv4ToUint32("127.0.0.0"), 8)) return "loopback";
77
- if (inIPv4Range(n, ipv4ToUint32("10.0.0.0"), 8)) return "private";
78
- if (inIPv4Range(n, ipv4ToUint32("172.16.0.0"), 12)) return "private";
79
- if (inIPv4Range(n, ipv4ToUint32("192.168.0.0"), 16)) return "private";
80
- if (inIPv4Range(n, ipv4ToUint32("169.254.0.0"), 16)) return "linkLocal";
81
- if (inIPv4Range(n, ipv4ToUint32("100.64.0.0"), 10)) return "sharedAddressSpace";
82
- if (inIPv4Range(n, ipv4ToUint32("192.0.2.0"), 24)) return "documentation";
83
- if (inIPv4Range(n, ipv4ToUint32("198.51.100.0"), 24)) return "documentation";
84
- if (inIPv4Range(n, ipv4ToUint32("203.0.113.0"), 24)) return "documentation";
85
- if (inIPv4Range(n, ipv4ToUint32("198.18.0.0"), 15)) return "benchmarking";
86
- if (inIPv4Range(n, ipv4ToUint32("224.0.0.0"), 4)) return "multicast";
87
- if (inIPv4Range(n, ipv4ToUint32("0.0.0.0"), 8)) return "reserved";
88
- if (inIPv4Range(n, ipv4ToUint32("192.0.0.0"), 24)) return "reserved";
89
- if (inIPv4Range(n, ipv4ToUint32("240.0.0.0"), 4)) return "reserved";
90
- return "public";
91
- }
92
- /**
93
- * Extract an IPv4 address embedded in an expanded IPv6 literal.
94
- *
95
- * Used to recurse into tunnel/translation forms (6to4, NAT64, Teredo) so a
96
- * private destination cannot be smuggled behind a syntactically-public IPv6
97
- * literal. `startGroup` is the index of the first of two 16-bit groups in the
98
- * expanded form (`0000:0000:...`). With `xor: true`, the 32-bit value is XORed
99
- * with `0xffffffff` before decoding (Teredo obfuscates the client IPv4 this
100
- * way).
101
- */
102
- function extractEmbeddedIPv4(expanded, startGroup, options = {}) {
103
- const offset = startGroup * 5;
104
- const g1 = Number.parseInt(expanded.slice(offset, offset + 4), 16);
105
- const g2 = Number.parseInt(expanded.slice(offset + 5, offset + 9), 16);
106
- if (!Number.isFinite(g1) || !Number.isFinite(g2)) return null;
107
- let combined = (g1 << 16 | g2) >>> 0;
108
- if (options.xor) combined = (combined ^ 4294967295) >>> 0;
109
- return `${combined >>> 24 & 255}.${combined >>> 16 & 255}.${combined >>> 8 & 255}.${combined & 255}`;
110
- }
111
- /**
112
- * Classify an expanded, full-form, lowercase IPv6 address (no IPv4-mapped
113
- * input — those are unmapped to IPv4 before reaching here).
114
- *
115
- * 6to4 (`2002::/16`), NAT64 (`64:ff9b::/96`) and Teredo (`2001:0000::/32`)
116
- * embed an IPv4 that can route to private/loopback space. If the embedded
117
- * IPv4 classifies as non-`public`, return `reserved` — blocks SSRF without
118
- * advertising the address as a loopback literal for RFC 8252 §7.3 matching.
119
- */
120
- function classifyIPv6(expanded) {
121
- if (expanded === "0000:0000:0000:0000:0000:0000:0000:0000") return "unspecified";
122
- if (expanded === "0000:0000:0000:0000:0000:0000:0000:0001") return "loopback";
123
- const firstByte = Number.parseInt(expanded.slice(0, 2), 16);
124
- const secondByte = Number.parseInt(expanded.slice(2, 4), 16);
125
- if (firstByte === 255) return "multicast";
126
- if (firstByte === 254 && (secondByte & 192) === 128) return "linkLocal";
127
- if ((firstByte & 254) === 252) return "private";
128
- if (expanded.startsWith("2001:0db8:")) return "documentation";
129
- if (expanded.startsWith("2002:")) {
130
- const embedded = extractEmbeddedIPv4(expanded, 1);
131
- if (embedded && classifyIPv4(embedded) !== "public") return "reserved";
132
- return "public";
133
- }
134
- if (expanded.startsWith("0064:ff9b:0000:0000:0000:0000:")) {
135
- const embedded = extractEmbeddedIPv4(expanded, 6);
136
- if (embedded && classifyIPv4(embedded) !== "public") return "reserved";
137
- return "reserved";
138
- }
139
- if (expanded.startsWith("2001:0000:")) {
140
- const embedded = extractEmbeddedIPv4(expanded, 6, { xor: true });
141
- if (embedded && classifyIPv4(embedded) !== "public") return "reserved";
142
- return "reserved";
143
- }
144
- if (expanded.startsWith("0100:0000:0000:0000:")) return "reserved";
145
- return "public";
146
- }
147
- /**
148
- * Classify a host string according to RFC 6890 / RFC 6761.
149
- *
150
- * Accepts inputs in any of these shapes and normalizes before classifying:
151
- *
152
- * - Bare IPv4: `127.0.0.1`
153
- * - Bare IPv6: `::1`, `fe80::1%eth0`
154
- * - Bracketed IPv6: `[::1]`
155
- * - Host with port: `localhost:3000`, `127.0.0.1:443`, `[::1]:8080`
156
- * - FQDN: `example.com`, `tenant.localhost`
157
- * - IPv4-mapped IPv6: `::ffff:192.0.2.1` (reported as `literal: "ipv4"`)
158
- *
159
- * Invalid or non-resolvable FQDNs are returned as `{ kind: "public", literal: "fqdn" }`
160
- * — this function never throws. Callers that need structural validation must
161
- * combine this with a URL/hostname validator upstream.
162
- *
163
- * @example
164
- * classifyHost("127.0.0.1")
165
- * // { kind: "loopback", literal: "ipv4", canonical: "127.0.0.1" }
166
- *
167
- * @example
168
- * classifyHost("[::1]:8080")
169
- * // { kind: "loopback", literal: "ipv6", canonical: "0000:0000:...:0001" }
170
- *
171
- * @example
172
- * classifyHost("::ffff:192.0.2.1")
173
- * // { kind: "documentation", literal: "ipv4", canonical: "192.0.2.1" }
174
- *
175
- * @example
176
- * classifyHost("tenant-a.localhost")
177
- * // { kind: "localhost", literal: "fqdn", canonical: "tenant-a.localhost" }
178
- */
179
- function classifyHost(host) {
180
- const lowered = stripTrailingDot(stripZoneId(stripBrackets(stripPort(host.trim())))).toLowerCase();
181
- if (lowered === "") return {
182
- kind: "reserved",
183
- literal: "fqdn",
184
- canonical: ""
185
- };
186
- if (!isValidIP(lowered)) {
187
- if (lowered === "localhost" || lowered.endsWith(".localhost")) return {
188
- kind: "localhost",
189
- literal: "fqdn",
190
- canonical: lowered
191
- };
192
- if (CLOUD_METADATA_HOSTS.has(lowered)) return {
193
- kind: "cloudMetadata",
194
- literal: "fqdn",
195
- canonical: lowered
196
- };
197
- return {
198
- kind: "public",
199
- literal: "fqdn",
200
- canonical: lowered
201
- };
202
- }
203
- if (looksLikeIPv4(lowered)) return {
204
- kind: classifyIPv4(lowered),
205
- literal: "ipv4",
206
- canonical: lowered
207
- };
208
- const canonical = normalizeIP(lowered, { ipv6Subnet: 128 });
209
- if (looksLikeIPv4(canonical)) return {
210
- kind: classifyIPv4(canonical),
211
- literal: "ipv4",
212
- canonical
213
- };
214
- return {
215
- kind: classifyIPv6(canonical),
216
- literal: "ipv6",
217
- canonical
218
- };
219
- }
220
- /**
221
- * Strict loopback-IP-literal check per RFC 8252 §7.3.
222
- *
223
- * Returns true ONLY for IPv4 `127.0.0.0/8` or IPv6 `::1`. The DNS name
224
- * `localhost` returns false — RFC 8252 §8.3 explicitly recommends against
225
- * relying on name resolution for loopback redirect URIs.
226
- *
227
- * Use this for OAuth redirect URI matching.
228
- *
229
- * @example
230
- * isLoopbackIP("127.0.0.1") // true
231
- * isLoopbackIP("::1") // true
232
- * isLoopbackIP("[::1]:8080") // true
233
- * isLoopbackIP("localhost") // false (use isLoopbackHost for DNS names)
234
- * isLoopbackIP("0.0.0.0") // false (unspecified, not loopback)
235
- */
236
- function isLoopbackIP(host) {
237
- return classifyHost(host).kind === "loopback";
238
- }
239
- /**
240
- * Permissive loopback check for developer-ergonomics code paths.
241
- *
242
- * Returns true for IPv4 `127.0.0.0/8`, IPv6 `::1`, the literal name `localhost`,
243
- * and any RFC 6761 `.localhost` subdomain (`tenant.localhost`, `app.localhost`).
244
- *
245
- * Use this for things like: allowing HTTP for dev servers, skipping Secure
246
- * cookie requirements, browser-trust heuristics. Do NOT use this for OAuth
247
- * redirect URI matching — use {@link isLoopbackIP} there.
248
- *
249
- * @example
250
- * isLoopbackHost("localhost") // true
251
- * isLoopbackHost("tenant.localhost") // true (RFC 6761)
252
- * isLoopbackHost("127.0.0.1") // true
253
- * isLoopbackHost("0.0.0.0") // false (unspecified, NOT loopback)
254
- */
255
- function isLoopbackHost(host) {
256
- const kind = classifyHost(host).kind;
257
- return kind === "loopback" || kind === "localhost";
258
- }
259
- /**
260
- * First-line SSRF gate: returns true ONLY for hosts that classify as `public`.
261
- *
262
- * Every RFC 6890 special-purpose range (loopback, private, link-local,
263
- * unspecified, documentation, multicast, broadcast, reserved, shared address
264
- * space, benchmarking) and cloud-metadata FQDN returns false.
265
- *
266
- * Use this BEFORE issuing a server-side fetch to a user-supplied URL, e.g.
267
- * OAuth introspection endpoints, webhook targets, or metadata-document
268
- * fetches (CIMD).
269
- *
270
- * Limitations (this is a syntactic check, not a complete SSRF mitigation):
271
- * - No DNS resolution: a public-looking FQDN that resolves to a private IP
272
- * passes this check. Re-verify the resolved address before connecting, or
273
- * pin the socket to the resolved IP.
274
- * - No DNS-rebinding defense: attackers can return a public IP on the first
275
- * lookup and a private IP on the second. Resolve once and reuse the IP.
276
- * - No redirect following: HTTP 3xx responses can redirect to private hosts.
277
- * Re-run this check on every redirect target, or disable auto-follow.
278
- *
279
- * @example
280
- * isPublicRoutableHost("example.com") // true
281
- * isPublicRoutableHost("127.0.0.1") // false (loopback)
282
- * isPublicRoutableHost("169.254.169.254") // false (linkLocal / AWS IMDS)
283
- * isPublicRoutableHost("metadata.google.internal") // false (cloudMetadata)
284
- * isPublicRoutableHost("10.0.0.1") // false (private)
285
- * isPublicRoutableHost("::ffff:127.0.0.1") // false (mapped loopback)
286
- */
287
- function isPublicRoutableHost(host) {
288
- return classifyHost(host).kind === "public";
289
- }
290
- //#endregion
291
- export { classifyHost, isLoopbackHost, isLoopbackIP, isPublicRoutableHost };
@@ -1,4 +0,0 @@
1
- //#region src/utils/id.d.ts
2
- declare const generateId: (size?: number) => string;
3
- //#endregion
4
- export { generateId };
@@ -1,7 +0,0 @@
1
- import { createRandomStringGenerator } from "@better-auth/utils/random";
2
- //#region src/utils/id.ts
3
- const generateId = (size) => {
4
- return createRandomStringGenerator("a-z", "A-Z", "0-9")(size || 32);
5
- };
6
- //#endregion
7
- export { generateId };
@@ -1,54 +0,0 @@
1
- //#region src/utils/ip.d.ts
2
- /**
3
- * Normalizes an IP address for consistent rate limiting.
4
- *
5
- * Features:
6
- * - Normalizes IPv6 to canonical lowercase form
7
- * - Converts IPv4-mapped IPv6 to IPv4
8
- * - Supports IPv6 subnet extraction
9
- * - Handles all edge cases (::1, ::, etc.)
10
- */
11
- interface NormalizeIPOptions {
12
- /**
13
- * For IPv6 addresses, extract the subnet prefix instead of full address.
14
- * Common values: 32, 48, 64, 128 (default: 128 = full address)
15
- *
16
- * @default 128
17
- */
18
- ipv6Subnet?: 128 | 64 | 48 | 32;
19
- }
20
- /**
21
- * Checks if an IP is valid IPv4 or IPv6
22
- */
23
- declare function isValidIP(ip: string): boolean;
24
- /**
25
- * Normalizes an IP address (IPv4 or IPv6) for consistent rate limiting.
26
- *
27
- * @param ip - The IP address to normalize
28
- * @param options - Normalization options
29
- * @returns Normalized IP address
30
- *
31
- * @example
32
- * normalizeIP("2001:DB8::1")
33
- * // -> "2001:0db8:0000:0000:0000:0000:0000:0000"
34
- *
35
- * @example
36
- * normalizeIP("::ffff:192.0.2.1")
37
- * // -> "192.0.2.1" (converted to IPv4)
38
- *
39
- * @example
40
- * normalizeIP("2001:db8::1", { ipv6Subnet: 64 })
41
- * // -> "2001:0db8:0000:0000:0000:0000:0000:0000" (subnet /64)
42
- */
43
- declare function normalizeIP(ip: string, options?: NormalizeIPOptions): string;
44
- /**
45
- * Creates a rate limit key from IP and path
46
- * Uses a separator to prevent collision attacks
47
- *
48
- * @param ip - The IP address (should be normalized)
49
- * @param path - The request path
50
- * @returns Rate limit key
51
- */
52
- declare function createRateLimitKey(ip: string, path: string): string;
53
- //#endregion
54
- export { createRateLimitKey, isValidIP, normalizeIP };
@@ -1,116 +0,0 @@
1
- import * as z from "zod";
2
- //#region src/utils/ip.ts
3
- /**
4
- * Checks if an IP is valid IPv4 or IPv6
5
- */
6
- function isValidIP(ip) {
7
- return z.ipv4().safeParse(ip).success || z.ipv6().safeParse(ip).success;
8
- }
9
- /**
10
- * Checks if an IP is IPv6
11
- */
12
- function isIPv6(ip) {
13
- return z.ipv6().safeParse(ip).success;
14
- }
15
- /**
16
- * Converts IPv4-mapped IPv6 address to IPv4
17
- * e.g., "::ffff:192.0.2.1" -> "192.0.2.1"
18
- */
19
- function extractIPv4FromMapped(ipv6) {
20
- const lower = ipv6.toLowerCase();
21
- if (lower.startsWith("::ffff:")) {
22
- const ipv4Part = lower.substring(7);
23
- if (z.ipv4().safeParse(ipv4Part).success) return ipv4Part;
24
- }
25
- const parts = ipv6.split(":");
26
- if (parts.length === 7 && parts[5]?.toLowerCase() === "ffff") {
27
- const ipv4Part = parts[6];
28
- if (ipv4Part && z.ipv4().safeParse(ipv4Part).success) return ipv4Part;
29
- }
30
- if (lower.includes("::ffff:") || lower.includes(":ffff:")) {
31
- const groups = expandIPv6(ipv6);
32
- if (groups.length === 8 && groups[0] === "0000" && groups[1] === "0000" && groups[2] === "0000" && groups[3] === "0000" && groups[4] === "0000" && groups[5] === "ffff" && groups[6] && groups[7]) return `${Number.parseInt(groups[6].substring(0, 2), 16)}.${Number.parseInt(groups[6].substring(2, 4), 16)}.${Number.parseInt(groups[7].substring(0, 2), 16)}.${Number.parseInt(groups[7].substring(2, 4), 16)}`;
33
- }
34
- return null;
35
- }
36
- /**
37
- * Expands a compressed IPv6 address to full form
38
- * e.g., "2001:db8::1" -> ["2001", "0db8", "0000", "0000", "0000", "0000", "0000", "0001"]
39
- */
40
- function expandIPv6(ipv6) {
41
- if (ipv6.includes("::")) {
42
- const sides = ipv6.split("::");
43
- const left = sides[0] ? sides[0].split(":") : [];
44
- const right = sides[1] ? sides[1].split(":") : [];
45
- const missingGroups = 8 - left.length - right.length;
46
- const zeros = Array(missingGroups).fill("0000");
47
- const paddedLeft = left.map((g) => g.padStart(4, "0"));
48
- const paddedRight = right.map((g) => g.padStart(4, "0"));
49
- return [
50
- ...paddedLeft,
51
- ...zeros,
52
- ...paddedRight
53
- ];
54
- }
55
- return ipv6.split(":").map((g) => g.padStart(4, "0"));
56
- }
57
- /**
58
- * Normalizes an IPv6 address to canonical form
59
- * e.g., "2001:DB8::1" -> "2001:0db8:0000:0000:0000:0000:0000:0001"
60
- */
61
- function normalizeIPv6(ipv6, subnetPrefix) {
62
- const groups = expandIPv6(ipv6);
63
- if (subnetPrefix && subnetPrefix < 128) {
64
- let bitsRemaining = subnetPrefix;
65
- return groups.map((group) => {
66
- if (bitsRemaining <= 0) return "0000";
67
- if (bitsRemaining >= 16) {
68
- bitsRemaining -= 16;
69
- return group;
70
- }
71
- const masked = Number.parseInt(group, 16) & (65535 << 16 - bitsRemaining & 65535);
72
- bitsRemaining = 0;
73
- return masked.toString(16).padStart(4, "0");
74
- }).join(":").toLowerCase();
75
- }
76
- return groups.join(":").toLowerCase();
77
- }
78
- /**
79
- * Normalizes an IP address (IPv4 or IPv6) for consistent rate limiting.
80
- *
81
- * @param ip - The IP address to normalize
82
- * @param options - Normalization options
83
- * @returns Normalized IP address
84
- *
85
- * @example
86
- * normalizeIP("2001:DB8::1")
87
- * // -> "2001:0db8:0000:0000:0000:0000:0000:0000"
88
- *
89
- * @example
90
- * normalizeIP("::ffff:192.0.2.1")
91
- * // -> "192.0.2.1" (converted to IPv4)
92
- *
93
- * @example
94
- * normalizeIP("2001:db8::1", { ipv6Subnet: 64 })
95
- * // -> "2001:0db8:0000:0000:0000:0000:0000:0000" (subnet /64)
96
- */
97
- function normalizeIP(ip, options = {}) {
98
- if (z.ipv4().safeParse(ip).success) return ip.toLowerCase();
99
- if (!isIPv6(ip)) return ip.toLowerCase();
100
- const ipv4 = extractIPv4FromMapped(ip);
101
- if (ipv4) return ipv4.toLowerCase();
102
- return normalizeIPv6(ip, options.ipv6Subnet || 64);
103
- }
104
- /**
105
- * Creates a rate limit key from IP and path
106
- * Uses a separator to prevent collision attacks
107
- *
108
- * @param ip - The IP address (should be normalized)
109
- * @param path - The request path
110
- * @returns Rate limit key
111
- */
112
- function createRateLimitKey(ip, path) {
113
- return `${ip}|${path}`;
114
- }
115
- //#endregion
116
- export { createRateLimitKey, isValidIP, normalizeIP };
@@ -1,6 +0,0 @@
1
- import { APIError } from "../error/index.mjs";
2
-
3
- //#region src/utils/is-api-error.d.ts
4
- declare function isAPIError(error: unknown): error is APIError;
5
- //#endregion
6
- export { isAPIError };
@@ -1,8 +0,0 @@
1
- import { APIError as APIError$1 } from "../error/index.mjs";
2
- import { APIError } from "better-call";
3
- //#region src/utils/is-api-error.ts
4
- function isAPIError(error) {
5
- return error instanceof APIError || error instanceof APIError$1 || error?.name === "APIError";
6
- }
7
- //#endregion
8
- export { isAPIError };
@@ -1,4 +0,0 @@
1
- //#region src/utils/json.d.ts
2
- declare function safeJSONParse<T>(data: unknown): T | null;
3
- //#endregion
4
- export { safeJSONParse };
@@ -1,41 +0,0 @@
1
- import { logger } from "../env/logger.mjs";
2
- //#region src/utils/json.ts
3
- const iso8601Regex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/;
4
- function reviveDate(value) {
5
- if (typeof value === "string" && iso8601Regex.test(value)) {
6
- const date = new Date(value);
7
- if (!isNaN(date.getTime())) return date;
8
- }
9
- return value;
10
- }
11
- /**
12
- * Recursively walk a pre-parsed object and convert ISO 8601 date strings
13
- * to Date instances. This handles the case where a Redis client (or similar)
14
- * returns already-parsed JSON objects whose date fields are still strings.
15
- */
16
- function reviveDates(value) {
17
- if (value === null || value === void 0) return value;
18
- if (typeof value === "string") return reviveDate(value);
19
- if (value instanceof Date) return value;
20
- if (Array.isArray(value)) return value.map(reviveDates);
21
- if (typeof value === "object") {
22
- const result = {};
23
- for (const key of Object.keys(value)) result[key] = reviveDates(value[key]);
24
- return result;
25
- }
26
- return value;
27
- }
28
- function safeJSONParse(data) {
29
- try {
30
- if (typeof data !== "string") {
31
- if (data === null || data === void 0) return null;
32
- return reviveDates(data);
33
- }
34
- return JSON.parse(data, (_, value) => reviveDate(value));
35
- } catch (e) {
36
- logger.error("Error parsing JSON", { error: e });
37
- return null;
38
- }
39
- }
40
- //#endregion
41
- export { safeJSONParse };
@@ -1,4 +0,0 @@
1
- //#region src/utils/string.d.ts
2
- declare function capitalizeFirstLetter(str: string): string;
3
- //#endregion
4
- export { capitalizeFirstLetter };
@@ -1,6 +0,0 @@
1
- //#region src/utils/string.ts
2
- function capitalizeFirstLetter(str) {
3
- return str.charAt(0).toUpperCase() + str.slice(1);
4
- }
5
- //#endregion
6
- export { capitalizeFirstLetter };
@@ -1,20 +0,0 @@
1
- //#region src/utils/url.d.ts
2
- /**
3
- * Normalizes a request pathname by removing the basePath prefix and trailing slashes.
4
- * This is useful for matching paths against configured path lists.
5
- *
6
- * @param requestUrl - The full request URL
7
- * @param basePath - The base path of the auth API (e.g., "/api/auth")
8
- * @returns The normalized path without basePath prefix or trailing slashes,
9
- * or "/" if URL parsing fails
10
- *
11
- * @example
12
- * normalizePathname("http://localhost:3000/api/auth/sso/saml2/callback/provider1", "/api/auth")
13
- * // Returns: "/sso/saml2/callback/provider1"
14
- *
15
- * normalizePathname("http://localhost:3000/sso/saml2/callback/provider1/", "/")
16
- * // Returns: "/sso/saml2/callback/provider1"
17
- */
18
- declare function normalizePathname(requestUrl: string, basePath: string): string;
19
- //#endregion
20
- export { normalizePathname };
@@ -1,31 +0,0 @@
1
- //#region src/utils/url.ts
2
- /**
3
- * Normalizes a request pathname by removing the basePath prefix and trailing slashes.
4
- * This is useful for matching paths against configured path lists.
5
- *
6
- * @param requestUrl - The full request URL
7
- * @param basePath - The base path of the auth API (e.g., "/api/auth")
8
- * @returns The normalized path without basePath prefix or trailing slashes,
9
- * or "/" if URL parsing fails
10
- *
11
- * @example
12
- * normalizePathname("http://localhost:3000/api/auth/sso/saml2/callback/provider1", "/api/auth")
13
- * // Returns: "/sso/saml2/callback/provider1"
14
- *
15
- * normalizePathname("http://localhost:3000/sso/saml2/callback/provider1/", "/")
16
- * // Returns: "/sso/saml2/callback/provider1"
17
- */
18
- function normalizePathname(requestUrl, basePath) {
19
- let pathname;
20
- try {
21
- pathname = new URL(requestUrl).pathname.replace(/\/+$/, "") || "/";
22
- } catch {
23
- return "/";
24
- }
25
- if (basePath === "/" || basePath === "") return pathname;
26
- if (pathname === basePath) return "/";
27
- if (pathname.startsWith(basePath + "/")) return pathname.slice(basePath.length).replace(/\/+$/, "") || "/";
28
- return pathname;
29
- }
30
- //#endregion
31
- export { normalizePathname };