Skip to content

feat: fully type CRUD field vocabularies - #45

Merged
kauandotnet merged 1 commit into
mainfrom
codex/fully-typed-crud-fields
Aug 30, 2026
Merged

feat: fully type CRUD field vocabularies#45
kauandotnet merged 1 commit into
mainfrom
codex/fully-typed-crud-fields

Conversation

@kauandotnet

Copy link
Copy Markdown
Contributor

Summary

  • require each CRUD resource to declare one authoritative, non-empty field vocabulary
  • propagate exact logical field unions through IDs, paths, query options, relations, scopes, cursors, predicates, ordering, mappings, and every adapter binding
  • derive persistence field unions for memory, TypeORM, Drizzle, and Prisma, including typed upsert conflict and overwrite tuples
  • add compile-negative coverage, runtime validation, documentation, consumer migrations, and a changeset

Breaking changes

  • defineCrudResource now requires fields
  • binding-level fields options were removed from defineCrudBinding and all concrete bind helpers
  • authored field names outside the resource or persistence vocabulary now fail compilation

Verification

  • pnpm run verify
  • 328 unit tests passed
  • 65 PostgreSQL integration tests passed
  • all five packed-package consumer checks passed

@kauandotnet
kauandotnet merged commit daf0bee into main Aug 30, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant