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

Open
opened 2026-03-13 13:52:38 -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: canaryHead: fix/strict-additional-fields


📝 Commits (3)

  • 3f5722a fix(types): enforce strict additionalFields keys
  • 5709b4a minor tweak
  • c770344 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 invalid or misspelled keys fail at compile time. Tightens checks while preserving correct inference and prevents mistakes like require vs required.

  • Bug Fixes
    • Enforce strict additionalFields keys for user, session, account, and verification, including when options are passed via variables.
    • Add StrictAdditionalFieldsOptions in new strict-additional-fields.ts and betterAuth overloads with NormalizeOptions to keep type inference accurate.
    • Expand positive/negative type tests in full.test.ts and minimal.test.ts; update test utils for typed baseURL and safer signUpEmail invocation.

Written for commit c77034492a5713cd7b7da44f337b4f28010274e8. 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:** `canary` ← **Head:** `fix/strict-additional-fields` --- ### 📝 Commits (3) - [`3f5722a`](https://github.com/better-auth/better-auth/commit/3f5722a4e33ef9b59097d4af5dd42f79f4e80e22) fix(types): enforce strict additionalFields keys - [`5709b4a`](https://github.com/better-auth/better-auth/commit/5709b4ad8cd64a0b43630dd37347546059e45da4) minor tweak - [`c770344`](https://github.com/better-auth/better-auth/commit/c77034492a5713cd7b7da44f337b4f28010274e8) 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 invalid or misspelled keys fail at compile time. Tightens checks while preserving correct inference and prevents mistakes like require vs required. - **Bug Fixes** - Enforce strict additionalFields keys for user, session, account, and verification, including when options are passed via variables. - Add StrictAdditionalFieldsOptions in new strict-additional-fields.ts and betterAuth overloads with NormalizeOptions to keep type inference accurate. - Expand positive/negative type tests in full.test.ts and minimal.test.ts; update test utils for typed baseURL and safer signUpEmail invocation. <sup>Written for commit c77034492a5713cd7b7da44f337b4f28010274e8. 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-03-13 13:52:38 -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#7900