416 Commits

Author SHA1 Message Date
Jumpei Ogawa
40cefe99b1 chore(example): fix SvelteKit example (#1742)
* refactor: upgrade Svelte, Vite and related packages

* refactor: replace no longer supported `body.callbackURL` with `onSuccess`

* fix: add missing `svelte-kit sync` on `prepare`

* fix: add missing `import`s

* chore(svelte-kit-example): show message & redirect to index after sign up

* chore: add npm script to migrate database

* doc: add more commands to set up

* chore: explicitly disable verification email on sign up

The example does not work if you set `sendOnSignUp: true` without setting up the email server.

* refactor(svelte-kit-example): add type for hooks

* chore(svelte-kit-example): redirect to sign in page if users open dashboard without log in

* chore: diable some rules for svelte-kit-example due to Biome's limited Svelte support

* style: fix format

* chore: update pnpm-lock.yaml

* chore: fix lock file

---------

Co-authored-by: Bereket Engida <Bekacru@gmail.com>
2025-07-25 13:32:17 -07:00
Bereket Engida
b140d3933b chore: cleanup 2025-07-18 20:05:59 -07:00
Bereket Engida
6cc9a5db53 chore: fix lockfile 2025-07-18 19:48:49 -07:00
rokitg
370e8515e5 feat: SIWE plugin (#2579)
* feat: first draft of SIWE plugin

* fix: run biome linter

* refactor(siwe): rename publicKey to walletAddress for clarity

 - Add ensName as an optional param from the client
 - Add emailDomainName to plugin options - fallback to getOrigin()
- Move schema to a separate file

* fix(siwe): update emailDomainName assignment to use nullish coalescing operator

* run biome linter

* fix(siwe): avatar field is not included in createUser call

* refactor(siwe): remove siwe dependency and implement nonce generation and message verification through plugin options

- Removed direct dependency on 'siwe' package.
- Introduced 'generateSiweNonce' and 'verifySiweMessage' as user functions
- Updated tests to reflect changes in nonce handling and message verification logic (WIP)

* feat: add anonymous flag to plugin options

* refactor(siwe): improve test coverage - anonymous flag, missing nonce & other edge cases

* feat(siwe): add checksum address validation using keccak256 + test case

* fix(siwe): refactor hashing utility to use @noble/hashes

* feat(siwe): enhance SIWE plugin with chainId support, strong typing, dedicated table for wallet adresses and more test coverage

* refactor(siwe): remove unused SIWE interfaces

* fix(siwe): PR review issues

* fix(siwe): rename const "siweClientPlugin" to "siweClient" for simplicity

* feat(siwe): add docs

* chore: fix lock file

* fix: account linking & code formatting

* run pnpm lint

---------

Co-authored-by: Bereket Engida <Bekacru@gmail.com>
2025-07-18 19:21:55 -07:00
KinfeMichael Tariku
4cff983e5c refactor: migrated all packages from Zod v3 to Zod v4 (#3399)
Refactors
- Updated all imports and type references to use zod/v4.
- Replaced deprecated or changed Zod APIs and options across the codebase.
- Adjusted validation schemas and error messages to match Zod v4 requirements.
- Updated dependencies and lockfiles to use Zod v4.
2025-07-17 08:30:02 -07:00
Bereket Engida
cbcba2b5d2 chore: upgrade better-call 2025-07-09 01:13:40 -07:00
Abdulrahman
cce6c2d74f docs(feat): added apple sign in JWT generation in docs (#2453)
* docs: Add guide for Sign In with Apple

* docs-feat: add apple JWT generator

* fix-lint: ran lint:fix to fix CI test

* chore: refactor to remove jose

* update docs

* chore: lock file

* fix test

---------

Co-authored-by: Bereket Engida <Bekacru@gmail.com>
2025-07-07 17:21:10 -07:00
Bereket Engida
fd8cc52977 chore: update dependencies in pnpm-lock.yaml and package.json
- Bump '@types/bun' from 1.2.17 to 1.2.18
- Update '@better-auth/utils' from 0.2.5 to 0.2.6
- Adjust versioning for 'bun-types' and 'vinxi' to reflect new dependencies
2025-07-06 23:49:58 -07:00
Bereket Engida
5b2f87535c Merge remote-tracking branch 'origin/main' into v1.3 2025-07-03 11:41:56 -07:00
KinfeMichael Tariku
bb47937be5 chore: fix react dual reference and update react types to 19.1.0 (#3246)
* react-dual

* chore: update react types

---------

Co-authored-by: Bereket Engida <Bekacru@gmail.com>
2025-07-02 14:00:29 -07:00
Bereket Engida
0bd7d61a6e chore: fix pnpm lock file 2025-06-28 16:01:22 -07:00
Bereket Engida
002cacbf2a Merge remote-tracking branch 'origin/main' into v1.3 2025-06-27 22:57:26 -07:00
Bereket Engida
dff5eb651b docs: add installtion guide on sso plugin 2025-06-27 22:48:10 -07:00
Bereket Engida
a6a66d9c7e feat: SSO plugin with OIDC and SAML support (#3185)
* fix(email-verification): improve email verification logic to check session and user email consistency (#3042)

* docs(passkey): Fixed signIn passkey props (#3014)

callbackURL doesn't exist.

* fix(email-otp): auto-verify on email otp reset (#3022)

* fix: delete user should respect freshAge config (#3075)

* fix: delete user needs to enforced through fresh age

* cleanup

* cleanup

* chore(org): add comments explaining what shimContext does (#3098)

* feat: Allow passing `id` in DB hook `create` (#3048)

* feat(database-hooks): Allow passing `id` in DB hook `create`

It's the same to using a custom `idGenerator`, except configurable by the database hook which would in theory provide more data.

A use-case is to generate the id based on user info in the user before DB hook.

Solves https://discord.com/channels/1288403910284935179/1379190465588367540/1384217435535835216

* chore: lint

* fix: tests failing

* docs: basic errs with svg props (#3102)

* docs: corrected github user email scope name (#3099)

* docs: corrected github user email scope name

* docs: cubic dev suggestion

* fix: use correct refresh token endpoint for github (#3095)

* chore: fix typo in authorize comment (#3106)

* docs: fix session parameter spelling (#3108)

* docs: input field usage on additional fields (#2991)

* fix: onLinkAccount trigger on phone number verification (#3007)

* fix: expose headers override in jwt plugin (#3019)

* expose headers override in jwt plugin

* clean up

* lint

* fix(expo): remove duplicated trusted origins

* feat: link account with idToken  (#1830)

* add idToken to link account

* add docs

* Implemented linking accounts based on idToken

* fix: tests

* docs: prevent diff

* docs: prevent diff

---------

Co-authored-by: kzlar <120426485+kzlar@users.noreply.github.com>

* feat: add Hugging Face provider (#3089)

* feat: add huggingface provider

* Add hugging face to doc

* chore: update hugging face logo

* chore: release v1.2.10

* docs: fix builder failing to open

* docs(NextJS): Improve middleware example to be more secure (#3135)

* docs(NextJS): Improve middleware example to be more secure

Users can skim code without reading the text, and LLMs can read code and miss-understand context correctly.  Our current middleware example only checks for existence of a cookie, and doesn't validate it.

While we do warn users this isn't secure, some users has raised concern in a Github issue saying it's not obvious enough for users who skim.

Also we don't provide examples on how to authenticate users on each route, we only show middleware optimistic check examples.

* Update docs/content/docs/integrations/next.mdx

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* fix(username): log the correct username (#3127)

* docs: fix typo in plugin (#3122)

* typo

* typo

* typo

* typo

* typo

* docs: fix typos on mcp guide (#3146)

* docs: update TanStack Start integration guide (#3142)

* fix(sveltekit): only dynamic import $app/environment once (#3152)

Co-authored-by: Work <work@Jasons-MacBook-Pro.local>

* docs: fix typo in oauth proxy documentation (#3151)

* blog: seed round announcement  (#3168)

* init

* cleanup

* fix seed round announcemnt

* fix seed round announcemnt

* seed round blog

* add nav mobile

* fix typo

* Update docs/content/blogs/seed-round.mdx

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* Update docs/app/blog/[[...slug]]/page.tsx

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* Update docs/app/blog/[[...slug]]/page.tsx

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* update og

* cleanup

---------

Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>

* docs: fix email address

* refactor(mongo-adapter): migrate to createAdapter (#3170)

In the past we didn't have mongoDb adapter move over to createAdapter since we've seen users running into issues.

However some time ago I've merged a PR which I believe fixed the issue, and after testing the org plugin with the mongo adapter that uses `createAdapter` I don't see any issues.

* fix(api-key): update should only use by ID

* docs: fix blog page layout (#3176)

* fix/blog-page-layouts

* clean up

* docs: update contact email in seed round blog

* init

* cleanup

* feat(better-auth): add test utilities and update dependencies

- Introduced a new test utility module in `src/test-utils/index.ts` for better testing support.
- Updated `package.json` to include new test utilities in the build configuration.
- Added `oauth2-mock-server` dependency to `pnpm-lock.yaml` and `sso/package.json` for OAuth2 testing.
- Enhanced the SSO provider registration process with improved error handling.

* docs update

---------

Co-authored-by: Maxwell <145994855+ping-maxwell@users.noreply.github.com>
Co-authored-by: KinfeMichael Tariku <65047246+Kinfe123@users.noreply.github.com>
Co-authored-by: Undefined Ninja <74867549+0xCodeMaieutics@users.noreply.github.com>
Co-authored-by: artemoire <18062266+artemoire@users.noreply.github.com>
Co-authored-by: reslear <12596485+reslear@users.noreply.github.com>
Co-authored-by: kzlar <120426485+kzlar@users.noreply.github.com>
Co-authored-by: Eliott C. <coyotte508@protonmail.com>
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
Co-authored-by: Alessandro Bortolin <bortolin.alessandro@outlook.it>
Co-authored-by: Lakshya Thakur <lapstjup@gmail.com>
Co-authored-by: Usman S. (Max Programming) <51731966+max-programming@users.noreply.github.com>
Co-authored-by: Jason Venable <jason.venable@gmail.com>
Co-authored-by: Work <work@Jasons-MacBook-Pro.local>
Co-authored-by: Dan McGrath <daniel.mcgrath9@gmail.com>
2025-06-27 20:19:19 -07:00
Tai Vo
0679ebed3e chore: update jose to fix vite build (#3183) 2025-06-27 11:26:23 -07:00
Normal Gaussian
26645aa012 fix(cli): missing dependency @babel/core (#2909)
Co-authored-by: Normal Gaussian <gitlab.march.2019@normal-gaussian.com>
2025-06-07 17:18:20 -07:00
Bereket Engida
fd727e515d chore: update kysley to 0.28.2 2025-05-31 09:14:05 -07:00
KinfeMichael Tariku
06ca627a6a fix: demo build & upgrades (#2848) 2025-05-31 00:22:02 -07:00
Bereket Engida
9cc2e3d8ab feat: MCP plugin (#2666)
* chore: wip

* wip

* feat: mcp plugin

* wip

* chore: fix lock file

* clean up

* schema

* docs

* chore: lint

* chore: release v1.2.9-beta.1

* blog

* chore: lint
2025-05-23 12:44:51 -07:00
Bereket Engida
62ed1a7783 feat: support bun sqlite by default (#2551)
* feat: support bun sqlite by default

* chore: add database type

* chore: proper lic

* chore: release v1.2.8-beta.5
2025-05-15 21:02:28 -07:00
Bereket Engida
42a9f610d2 chore: update better-auth utils to v0.2.5 2025-05-05 11:47:09 -07:00
dependabot[bot]
82e113964d chore(deps-dev): bump vite from 5.4.18 to 5.4.19 2025-05-01 05:39:17 +03:00
Bereket Engida
d8cbe3da40 chore: upgrade kysely (#2396) 2025-04-22 12:14:30 +03:00
kkMihai
86b19dec46 feat(stripe): migrate to stripe sdk v18.0.0 (#2366)
* feat: migrate to stripe sdk v18.0.0

* chore: lint

* chore: fix type

---------

Co-authored-by: Bereket Engida <bekacru@gmail.com>
2025-04-22 11:25:39 +03:00
Shawn Erquhart
5483522d95 chore: re-add concurrently dev dep (#2282) 2025-04-15 09:32:16 +03:00
Bereket Engida
fd1f41e395 chore: revert zod to stable release 2025-04-13 23:16:23 +03:00
Bereket Engida
46ff537535 chore: update lock file 2025-04-13 23:10:21 +03:00
Bereket Engida
068f8aa937 chore: update better-call package version to 1.0.8 in pnpm-lock and pnpm-workspace files 2025-04-13 14:53:35 +03:00
Bereket Engida
e06b3e03d2 chore: update expo dependencies to latest versions
- Bump expo-constants to 17.0.8
- Update expo-linking to 7.0.5
- Upgrade expo-secure-store to 14.0.1
- Upgrade expo-web-browser to 14.0.2
2025-04-13 00:45:15 +03:00
dependabot[bot]
992ea12aad chore(deps-dev): bump vite from 5.4.16 to 5.4.18 (#2219)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.16 to 5.4.18.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.18/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.18/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 5.4.18
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-11 18:41:20 +03:00
Bereket Engida
1e5d44fe8f chore: fix lint 2025-04-11 09:56:40 +03:00
Maxwell
986614b241 feat: createAdapter and useNumberId (#1926)
* refactor(adapter): `createAdapter` helper

* update: Kysely adapter support

* update: memory adapter

* chore: cleanup

* update: MongoDB adapter supported

* update: mongodb adapter file names

* update: support for prisma adapter

- also fixed memory adapter with `getField`
- disabled all debug logs by default

* chore: lint

* fix: generate an `id` if it isn't already provided

* update(test): init config snapshot

* update: existing adapters tests to include an `id` existence check

* fix: renamed prisma adapter file names

* ^

* update(mongo): Removed `disableIdGeneration` for mongo adapter

* fix: dont add `id` from fields if `disableIdGeneration` is false

* fix: adapter converting dates to string using the wrong value data

* add: create-adapter tests

* update: moved `adapter` to `create-adapter` under the existing `adapters` folder

* WIP: docs

* fix: create-adapter test importing from wrong path

* WIP: docs

* update: key transformation map options are now objs not fns

* chore: lint

* update: cleanup & added debugLogs/usePlural option to some adapters

* update: tests

* chore: cleanup

* update: fields name & made customTransforminput/output to run after supportsDates/supportsBoolean/SupportsJSON to run

* chore: lint

* Update: docs

* update: update-many to not use transformOutput

* chore: lint

* fix: adapter options breaking

* update: set the default limit on findMany

* update: docs

* update: docs & cleaned up code

* update: create schema comes with `tables` now

* This is useless

* fix: api-key shouldn't handle id gen in row creation

* chore: lint

* WIP: useNumberId

* chore: cleanup

* removed all cases of `id` during adapter.create call

* update: useNumberId

* update: drizzle adapter schema generation

- update: pg now sets `id` field to use `uuid`.
- fix: sets the correct reference `onDelete` action.
- refactor: cleaned up the code a lot more

* update: added `supportNumericIds` in create adapter options

* chore: cleanup

* update(tests): added option to disable any adapter tests & created a `useNumberId` test

* fix: skip tests options were using old method

* chore: lint

* WIP: Drizzle tests with number id

* chore: lint

* fix: memory adapter failing on number id adapter tests

* chore: cleanup

* fix: adapter tests fail due to emails needing to be unique

* update: support drizzle adapter use-number-id

* fix: cleanup Drizzle Adapter tests

* fix: drizzle schema generation for reference id fields

* fix: type errs in memory adapter tests

* fix: memory adapter tests

* Update init.test.ts.snap

* fix: prisma tests correctly uses the right primsa client per schema

* Delete run-vitest.ts

* update: create-adapter to support `getDefaultFieldName`

* update: create-adapter adapter options updated

* fix: adapters using older function names

* fix: create-adapter now converts where clauses & added tests

* update: new `getFieldAttributes` option in create-adapter, and fixed convert where clause fn

* chore: cleanup

* update: convertWhereClause in create-adapter improved

* update: BAOptions to start using `database` & updated adapter tests

* fix: type errors

* chore: lint

* update: default config values for the create-adapter config

* fix: getModelName doesnt take into account of plural

* chore: cleanup

* update: improved getDefaultModelname

* fix: create-adapter transform input doesn't take into account reference IDs

* fix: transformInput on reference IDs doesn't take into account of array IDs

* chore: lint

* fix: prisma tests

* fix: Prisma adapter tests running one after another

* fix: init snapshot should state supportJSON as `false`

* fix: drizzle adapter tests

* update: adapter test options to allow passing a test prefix

* chore: add state.txt to gitignore

* remove: state.txt from gitignore, it's useless

* chore: lint

* Update adapter.prisma.numberid.test.ts

* fix: get-migration for mysql & mssql `id` fields to use varchar

* chore: cleanup

* update: adapter comes with adapter-test-debug-log functions

* update: made adapterTestDebugLog functions only be in adapter if config enabled it

* fix: transactionId for debug logs not working correctly

This was due to the adapter being reinitialized each test case

* update: Added colors to debug logs

* update: adapter tests a little more refined

* add: deepmerge dev deps to deep merge better auth options config for adapters

* fix: create-adapter types

* update: revert back to old types

* fix: prisma adapter tests now run one after another

* fix: kysely adapter to work when no `id` is provided

* update: mongoDB to set `supportNumericids` to false

* update(docs): discuss new `database` object in BetterAuthOptions

* add: support for custom ID generation

* fix: docs had incorrect default value for `supportsJSON`

* update(docs): added number id adapter test documentation

* fix: drizzle-adapter mysql tests

* update: drizzle-adapter tests to use deepmerge

* add: drizzle-adapter mysql tests to test useNumberId

* add: Prisma generate to support number id

* update: support the old `generateId` option, but warn the user for deprecation

* update: init test snapshot

* update: adapter tests not included in normal tests

* Update pnpm-lock.yaml

* fix: typo in file names for kysley test files

* update: separated adapter tests

* Update pnpm-lock.yaml

* fix: please tell me I actually fixed this

* fix: pnpm-lock merge conflict

* chore: lint

* fix: sveltekit pkg.json merge conflicts (hopefully)

* Delete pnpm-lock.yaml

* update: createSchema takes into account of rate-limit and secondaryStorage

* improve docs

* add drizzle returning id retriver

* chore: fix test script

---------

Co-authored-by: Bereket Engida <bekacru@gmail.com>
2025-04-11 09:04:49 +03:00
Bereket Engida
06ddd9121e feat(react-start): add react-start integration for cookie handling (#2119) 2025-04-10 07:45:55 +03:00
Bereket Engida
db13aa9a09 chore: update better-call package version to ^1.0.7 2025-04-07 08:45:16 +03:00
Bereket Engida
382f51f97d chore: update better-call package version to ^1.0.6 (#2159) 2025-04-07 01:32:45 +03:00
Kinfe123
4ff8139fcd fix: dep issue 2025-04-02 15:04:11 +03:00
dependabot[bot]
f1963c994a chore(deps-dev): bump vite from 5.4.14 to 5.4.16 (#2066)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.4.14 to 5.4.16.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.16/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.16/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-02 06:54:04 +03:00
Bereket Engida
4100faafe0 chore(deps): remove valibot 2025-03-30 09:03:48 +03:00
Bereket Engida
f6cad2b6db chore(deps): add concurrently package 2025-03-27 20:14:46 +03:00
Bereket Engida
b3e7d7e186 chore(deps): update better-fetch to version 1.1.18 2025-03-27 08:16:13 +03:00
KinfeMichael Tariku
e0835c9d38 docs: fix ui builder code block (#1999) 2025-03-26 21:38:40 +03:00
dependabot[bot]
128cca8151 chore(deps): bump next from 15.2.1 to 15.2.3 (#1982)
Bumps [next](https://github.com/vercel/next.js) from 15.2.1 to 15.2.3.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.2.1...v15.2.3)

---
updated-dependencies:
- dependency-name: next
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-26 19:33:05 +03:00
Bereket Engida
6b229c7b11 chore: update pnpm lock file 2025-03-22 09:11:40 +03:00
Bereket Engida
ed816ca5bd chore: update dependencies for better-call and @better-fetch/fetch (#1899) 2025-03-20 20:56:24 +03:00
Bereket Engida
6b4e20c61b docs: add supabase migration guide (#1829) 2025-03-15 16:10:47 +03:00
Bereket Engida
54bdb695b5 fix(expo): better fetch type mismatch causing type error on expo client plugin (#1825) 2025-03-15 09:54:28 +03:00
Bereket Engida
1152c3dfe2 chore: upgrade '@better-auth/utils' to 0.2.4 2025-03-14 19:30:05 +03:00
Bereket Engida
58889fece5 chore: update dependencies and lock file 2025-03-09 14:04:47 +03:00
Bereket Engida
b5f638ca45 docs: upgrade to tailwind v4, react 19, fuma docs 15 (#1735) 2025-03-08 19:33:31 +03:00
Bereket Engida
dd0cc21a6a chore: upgrade Shiki to v1.29.2 and update documentation 2025-03-05 00:06:02 +03:00