Commit Graph

379 Commits

Author SHA1 Message Date
KinfeMichael Tariku
86db0c2039 docs: fix metadata theming (#1613)
* fix: light theme issue

* fix: metadata issue

* cleanup the layout

* changelog-layout default clean up
2025-03-02 01:45:19 +03:00
KinfeMichael Tariku
d76d621feb docs: v1.2 banner (#1608) 2025-03-01 23:47:34 +03:00
Bereket Engida
51e756e91e docs(landing):update avatar 2025-03-01 22:00:27 +03:00
Bereket Engida
68e0f46bdb docs: replace oslo with @better-auth/utils 2025-03-01 03:44:07 +03:00
Bereket Engida
86cbf70684 docs: v1.2 release notes (#1602) 2025-03-01 02:22:32 +03:00
Bereket Engida
43cae44617 chore: lint 2025-03-01 01:27:18 +03:00
Bereket Engida
4f56078e4b feat: stripe plugin to handle subscriptions and customers (#1588)
* init

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* feat(stripe): enable subscription support and update pricing plans

* feat(stripe): add Vitest configuration and initial tests for Stripe integration

* feat(stripe): implement setCookieToHeader function and update tests for customer creation and subscription handling

* feat(stripe): add seats support for subscriptions and update related endpoints

* feat(stripe): update schema to include unique referenceId, stripeSubscriptionId, and periodEnd fields

* wip docs

* docs

* docs: imporves

* fix(stripe): update webhook handlers to use correct subscription identification

* refactor(stripe): simplify customer management by storing Stripe customer ID directly on user

* chore(stripe): update package configuration and build setup

- Migrated from tsup to unbuild for build configuration
- Updated package.json with improved export and dependency management
- Added build configuration for better module support
- Removed tsup configuration file

* chore(stripe): update pnpm lockfile dependencies

- Moved `better-auth` from devDependencies to dependencies
- Added `zod` as a direct dependency
- Reorganized package dependencies in the lockfile

* feat(stripe): enhance subscription management and error handling

- Added toast error handling for subscription upgrades in the dashboard
- Updated Stripe price IDs for different plans
- Improved Stripe plugin documentation with beta warning and team subscription details
- Implemented intermediate redirect for checkout success to handle race conditions
- Added support for fetching and updating subscription status after checkout
- Fixed Next.js cookie handling and build configuration

* chore: update snapshot
2025-03-01 01:20:17 +03:00
Maxwell
b6d18ce16f docs(add): database category (#1315)
* docs: sidebar updated for new category

* fix: icons to use fill version

* add: the rest of the pages for the database category

* update: MySQL done

* update: SQLite done. (and updated MySQL)

* update: PostgreSQL

* update: mssql done

* update: added callout to Kysley docs for each core dialect

* update: other relational databases page

* update: drizzle

* docs(fix): wrong words on drizzle page

* update: mongo docs

* update: prisma done

* update: community adapter page

* update: concept/database to refer to the documentation for each dialect in the docs category

* update: drizzle to mention the schema definitions

---------

Co-authored-by: Bereket Engida <86073083+Bekacru@users.noreply.github.com>
2025-03-01 00:32:46 +03:00
Maxwell
ec9edc357a feat: API Key plugin (#1515)
* feat: API-key plugin

* add: `deleteAllExpiredApiKeys` functionality

* fix: fetching sessions from headers

* update: types & create-api-key now checks for min & max expiresIn values

* tests: Started working on tests

* add: features

- added list functionality
- added min & max prefix length
- added min & max name length
- added metadata enable/disable option
- added `disableSessionForAPIKeys` option
- verify API key now checks for expiration & refills
- added regex to check prefix of api key

* fix: create-api-key's expiration using `/` instead of `*`

* update: schema `metadata` transforms invalid values as `null`

* fix: create-api-key metadata should go through transformation

* fix: missing metadata wouldn't have `'null'` as value

* update: error types

* fix: remove console.logs from verify

* fix: rate-limit not working

* fix: rate-limit plugin options types

* chore: remove logs

* update: removed `key` field from result apiKey type of the update-api-key endpoint

* fix: typo

* update: create & update if checks

- create now checks if custom expiration times are allowed
- update now allows name values & checks if name is within length range
- update now also checks for custom expiration times are allowed

* update(WIP): tests

* fix: added the missing error throw when there is no values to update

* fix: update-api-key checks expiresIn in days, not ms

- also updated create-api-key & update-api-key to have more detailed event logging

* fix: update api key's remaining count's min & max checks

- also added more detail to the events

* fix: update-api-key can now update refillInterval & refillAmount properly

* fix: metadata in update-api-key transforms between string & obj correctly

* add: all of the `update` tests

* update: get-api-key metadata is now obj instead of string

* add: listApiKeys functionality

* fix: get-session to use mock session based on header API keys

* update: tests to test against get-session, get-api-key, and list-api-key

* add: `start` field to show the first few characters of an API key

* fix: very silly mistake

* update: tests to validate `start` property

* update: create-api-key checks if properties are set from server & allows for custom rate-limit rules

- also updated tests to check against this

* update: verify-api-key to check if a row has the right user-id

- this also should speed up the DB process too. (I'm pretty sure)

* update: `delete-all-expired-api-keys` endpoint added & updated list-api-keys endpoint function name

* add: customAPIKeyValidator fn, and fixed verification `remaining` and `lastRefillAt` values updating DB incorrectly

* update: documentation

* add: rate-limiting enable/disable on a per-key level

* update: docs

* fix: correct expiration time units and improve error messages in API key handling

* fix: allow creating apiKeys by providing userId on the server

* fix: user userId instead of headers to differ server vs client calls on create api key

* wip

* fix: JSDoc comment

* fix: tests not passing due to invalid expiresIn value

Since the expiresIn got changed from `ms` to `sec`, this needed to be changed as well.

* wip

* fix(api-key): update tests and error messages for API key verification

* fix(api-key): update API key fixes

* refactor tests and remove events

* refactor(api-key): remove unused event handling and clean up type definitions

* add: minimum values to `create-api-key` numeric input options

* fix: remove `opts.events` in delete-api-key route

* refactor: all returning routes which can contain `key`

- more performant
- better typed
- cleaner code

:D

* update: added minimum values to update-api-key endpoint as well

* fix: removed `maximumRemaining` & `minimumRemaining` default values in `opts`

* docs: ready (unless I make minor adjustments later) 🫡

* fix(docs): links & invalid code examples

* fix: output transform of metadata to use ParseJSON

* fix: tests failing due to async metadata transform output

* fix: return types for verify-api-key endpoint

* fix: tests failing due to invalid expiresIn minimum value

* docs: reorder sidebar items for API Key

* wip

* docs(api-key): enhance documentation with permissions and usage details

- Updated API key documentation with comprehensive permissions explanation
- Added examples for setting default permissions, creating, verifying, and updating API keys with permissions
- Clarified API key creation, verification, and update processes
- Improved code examples and descriptions for better understanding

* chore: lint

* fix(docs): incorrect wording / explanation on refillInterval/refillAmount

* add(docs): missing permissions info in docs

---------

Co-authored-by: Bereket Engida <bekacru@gmail.com>
2025-02-28 17:11:03 +03:00
Maxwell
8fb25bdd6a docs(rename): node to express in integration docs (#1535) 2025-02-23 09:18:41 +03:00
Bereket Engida
1a0d5e21f5 Merge branch 'main' into v1.2 2025-02-22 20:06:23 +03:00
Rahul Mishra
419a86a773 chore: fix type exports and sync dep versions to improve build times (#1528) 2025-02-21 16:26:50 +03:00
Bereket Engida
5d529f0189 docs(landing): add testimonial from Theo 2025-02-21 12:00:21 +03:00
Bereket Engida
0208d09012 docs(landing): update testimonials 2025-02-21 11:52:47 +03:00
Bereket Engida
5e4b8ef0df docs(landing): update testimonials 2025-02-21 11:31:36 +03:00
Bereket Engida
745c9f35b4 docs: update testimonials 2025-02-21 11:28:17 +03:00
Bereket Engida
c3168d0dc0 docs(landing): update avatar image for testimonial 2025-02-21 11:09:59 +03:00
Bereket Engida
cccb6fbaa3 Merge branch 'main' into v1.2 2025-02-21 01:20:54 +03:00
Bereket Engida
848b47f567 chore:lint 2025-02-20 23:27:17 +03:00
Pratiyank Kumar
9b02e0aae2 demo: fix React prop spreading warnings in CodeEditor component (#1321) 2025-02-20 22:43:34 +03:00
Levi Gunsallus
f2279d59e2 docs: fix casing in features (#1449) 2025-02-17 08:23:56 +03:00
Levi Gunsallus
b6035062c0 docs: fix casing in features (#1449) 2025-02-15 09:15:35 +03:00
Bereket Engida
2c81e5bf8f Merge branch 'main' into v1.2 2025-02-14 15:17:41 +03:00
D3vision
e647040b14 feat: add Roblox social provider (#1249)
* Implemented Roblox social provider + documentation + icon for builder

* linter didn't like my svg and some of my other formatting

* and now the linter is finally happy

* made discord scope option overwrite default scopes, this way I dont need to have a users' email

* Revert "made discord scope option overwrite default scopes, this way I dont need to have a users' email"

This reverts commit 35b29e7957935ca2c777772a6a88dfa67015ed7b.

---------

Co-authored-by: Bereket Engida <86073083+Bekacru@users.noreply.github.com>
2025-02-14 13:11:50 +03:00
Bereket Engida
b8d20c5e7b chore: lint 2025-02-14 12:51:29 +03:00
Maged Ibrahim
1edfb9f698 docs: change google logo for colors compliance (#1439) 2025-02-14 12:42:30 +03:00
Bereket Engida
cb691e78bc docs: update captcha docs and fix sidebar svg 2025-02-14 10:18:21 +03:00
Rizvan Nukhtarov
700d392759 feat: add VK ID social provider (#1013)
* feat: add VK ID social provider

* lint

* remove data

* fix emailVerified property

---------

Co-authored-by: Bereket Engida <86073083+Bekacru@users.noreply.github.com>
2025-02-14 09:17:14 +03:00
Oscar
363ca39db7 feat: Captcha Plugin with multiple providers (#957)
* feat: create Cloudflare Turnstile middleware plugin

* fix: middleware returns new Response & working unit tests

* chore: renamed plugin to cloudflare-turnstile

* docs: adds Cloudflare Turnstile plugin documentation

* docs: improves Cloudflare Turnstile's docs

* feat: move to generic captcha plugin, supporting multiple providers
2025-02-14 09:11:19 +03:00
Bereket Engida
9243529cc0 chore:lint 2025-02-06 15:10:29 +03:00
Maxwell
095661f387 docs: add other-social-providers page (#1340)
* add(docs): other-social-providers page

* add: missing social provider URLs and scopes
2025-02-03 17:16:05 +03:00
Kinfe123
66c6904703 chore: lint 2025-01-30 07:41:25 +03:00
Kinfe123
4c0a9116f6 ui patch 2025-01-30 07:41:25 +03:00
Bereket Engida
d75d8b6baa chore: lint 2025-01-29 15:05:35 +03:00
Maxwell
47f14a22cb docs: new contribution category (#1174) 2025-01-21 11:05:17 +03:00
Maxwell
b1c21fd8c5 docs: fix home-page builder using x instead of twitter (#1244) 2025-01-18 18:49:10 +03:00
Maxwell
566a88f496 docs: fix sidebar not updating UI when pathname changes (#1242) 2025-01-18 17:45:53 +03:00
Quan Pham
b1c6b5a5e4 docs: prop names and react key warnings (#1234)
* fix: docs component props

* fix: props name
2025-01-17 10:47:58 +03:00
Maxwell
b036061263 docs: guide for optimizing for performance (#1199)
* add(docs): guide for optimizing for performance

* update: reworded some areas
2025-01-14 11:02:25 +03:00
Denys
028bc59b1f docs: add spotify provider to the sidebar (#1147)
* fix: add spotify provider to the sidebar

* fix: formatting
2025-01-12 10:46:39 +03:00
Bereket Engida
9f2e45b8c7 chore: cleanup 2025-01-06 14:30:39 +03:00
Multinite
95344a6784 Browser extensions example & guide (#1117)
* init: plasmo example project

* feat: add example for browser extension with BetterAuth

- Introduced a basic browser extension example using Plasmo framework and BetterAuth for authentication.
- Updated .env.example with BetterAuth configuration.
- Removed unnecessary GitHub workflow file for submitting to Web Store.
- Updated .gitignore to exclude local env files.
- Improved README documentation for the example.
- Included BetterAuth dependency in the package.json and updated the pnpm-lock.yaml.

* add: browser-extension example complete

* fix: content.tsx

* remove: browser-extension package as that isn't needed

* add: browser extension buide

* docs: added references in the guide to the examples code

* remove(dep): unused dependency

* refactor: package.json - remove author & update description

* wip

* chore: update lock file

* docs: update icon

---------

Co-authored-by: Bereket Engida <bekacru@gmail.com>
2025-01-04 18:14:59 +03:00
Bereket Engida
7aa587b6d9 chore: cleanup 2025-01-02 20:37:42 +03:00
Bereket Engida
4555f92063 feat: OIDC Plugin (#765) 2024-12-21 02:12:04 +03:00
Bereket Engida
384ef1c344 feat: hooks (#916) 2024-12-20 21:00:14 +03:00
Bereket Engida
f9102b1542 feat: OpenID SSO Provider (#951) 2024-12-20 20:08:42 +03:00
Bereket Engida
727820d5ed docs: fix landing cross alignment 2024-12-18 11:02:17 +03:00
Bereket Engida
f7e9a174c9 docs: landing responsivness fixes 2024-12-18 10:42:07 +03:00
Bereket Engida
62b0b053e5 docs: fix nitro icon 2024-12-17 21:10:17 +03:00
Bereket Engida
b008ec4d1e docs: update testimonal 2024-12-16 19:30:50 +03:00