[PR #8323] fix(types): enforce strict keys for additionalFields config #24800

Open
opened 2026-04-15 22:34:00 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/better-auth/better-auth/pull/8323
Author: @GautamBytes
Created: 3/3/2026
Status: 🔄 Open

Base: mainHead: fix/strict-additional-fields


📝 Commits (3)

  • 6283b0f fix(types): enforce strict additionalFields keys
  • f20a072 minor tweak
  • 1afd67b fix(types): tighten additionalFields checks and inference

📊 Changes

6 files changed (+246 additions, -12 deletions)

View changed files

📝 packages/better-auth/src/auth/full.test.ts (+94 -0)
📝 packages/better-auth/src/auth/full.ts (+9 -4)
📝 packages/better-auth/src/auth/minimal.test.ts (+94 -0)
📝 packages/better-auth/src/auth/minimal.ts (+9 -4)
packages/better-auth/src/auth/strict-additional-fields.ts (+31 -0)
📝 packages/better-auth/src/test-utils/test-instance.ts (+9 -4)

📄 Description

Fixes #8305

This PR enforces strict typing for additionalFields keys so typos/extraneous keys (e.g. require) fail at compile time.

Changes

  • Added StrictAdditionalFieldsOptions to validate field keys against DBFieldAttribute.
  • Applied strict validation at betterAuth boundaries in:
    • src/auth/full.ts
    • src/auth/minimal.ts
  • Covers user, session, account, and verification.
  • Added regression type tests (negative + positive) in:
    • src/auth/full.test.ts
    • src/auth/minimal.test.ts
  • Updated test-instance.ts typing for dynamic baseURL and removed an unused @ts-expect-error.

Summary by cubic

Enforces strict typing for additionalFields so typos and extra keys fail at compile time in both full and minimal betterAuth. Preserves accurate inference with new overloads and normalized options, preventing mistakes like require vs required.

  • Bug Fixes
    • Enforce strict additionalFields keys for user, session, account, and verification, including when configs are passed via variables (structural strictness) across both entry points.
    • Add StrictAdditionalFieldsOptions in strict-additional-fields.ts and betterAuth overloads with NormalizeOptions to keep inference accurate; expand type tests for user/session; update test utils with typed baseURL and safer signUpEmail invocation.

Written for commit 1afd67b8ee. Summary will update on new commits.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/better-auth/better-auth/pull/8323 **Author:** [@GautamBytes](https://github.com/GautamBytes) **Created:** 3/3/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `fix/strict-additional-fields` --- ### 📝 Commits (3) - [`6283b0f`](https://github.com/better-auth/better-auth/commit/6283b0f43b09b3373a82c30f9069bb23a4d59a88) fix(types): enforce strict additionalFields keys - [`f20a072`](https://github.com/better-auth/better-auth/commit/f20a072d32d35358edad0313ea6de281548eba8a) minor tweak - [`1afd67b`](https://github.com/better-auth/better-auth/commit/1afd67b8ee7a1126df812cdc9a8e1a99b8636ae6) fix(types): tighten additionalFields checks and inference ### 📊 Changes **6 files changed** (+246 additions, -12 deletions) <details> <summary>View changed files</summary> 📝 `packages/better-auth/src/auth/full.test.ts` (+94 -0) 📝 `packages/better-auth/src/auth/full.ts` (+9 -4) 📝 `packages/better-auth/src/auth/minimal.test.ts` (+94 -0) 📝 `packages/better-auth/src/auth/minimal.ts` (+9 -4) ➕ `packages/better-auth/src/auth/strict-additional-fields.ts` (+31 -0) 📝 `packages/better-auth/src/test-utils/test-instance.ts` (+9 -4) </details> ### 📄 Description Fixes #8305 This PR enforces strict typing for additionalFields keys so typos/extraneous keys (e.g. require) fail at compile time. **Changes** - Added StrictAdditionalFieldsOptions to validate field keys against DBFieldAttribute. - Applied strict validation at betterAuth boundaries in: - src/auth/full.ts - src/auth/minimal.ts - Covers user, session, account, and verification. - Added regression type tests (negative + positive) in: - src/auth/full.test.ts - src/auth/minimal.test.ts - Updated test-instance.ts typing for dynamic baseURL and removed an unused @ts-expect-error. <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Enforces strict typing for additionalFields so typos and extra keys fail at compile time in both full and minimal `betterAuth`. Preserves accurate inference with new overloads and normalized options, preventing mistakes like `require` vs `required`. - **Bug Fixes** - Enforce strict `additionalFields` keys for user, session, account, and verification, including when configs are passed via variables (structural strictness) across both entry points. - Add `StrictAdditionalFieldsOptions` in `strict-additional-fields.ts` and `betterAuth` overloads with `NormalizeOptions` to keep inference accurate; expand type tests for user/session; update test utils with typed `baseURL` and safer `signUpEmail` invocation. <sup>Written for commit 1afd67b8ee7a1126df812cdc9a8e1a99b8636ae6. Summary will update on new commits.</sup> <!-- End of auto-generated description by cubic. --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-15 22:34:00 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/better-auth#24800