Skip to content

Conversation

@eluce2
Copy link
Collaborator

@eluce2 eluce2 commented Feb 6, 2026

Note

Medium Risk
Touches core filter serialization by adding a new Column subtype and operand-handling logic, which could subtly affect query-string generation. Changes are additive and covered by new unit tests, keeping risk contained.

Overview
Adds new OData filter capabilities to @proofkit/fmodata: a matchesPattern(column, pattern) string operator and nestable string transform helpers tolower, toupper, and trim that can wrap columns and be used with existing operators (e.g., eq(tolower(col), 'x')).

Implements a new ColumnFunction wrapper (plus isColumnFunction) to serialize transforms, including correct field quoting and support for entity IDs, and wires these new exports through the public API. Updates docs/reference material and extends filter/ORM tests to cover the new operator, nested transforms, quoting behavior, and entity-id serialization.

Written by Cursor Bugbot for commit ec08889. This will update automatically on new commits. Configure here.

@vercel
Copy link

vercel bot commented Feb 6, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
proofkit-docs Ready Ready Preview Feb 6, 2026 2:52pm

Request Review

@eluce2 eluce2 marked this pull request as ready for review February 6, 2026 14:43
Copy link
Collaborator Author

eluce2 commented Feb 6, 2026

This stack of pull requests is managed by Graphite. Learn more about stacking.

@pkg-pr-new
Copy link

pkg-pr-new bot commented Feb 6, 2026

Open in StackBlitz

@proofkit/better-auth

pnpm add https://pkg.pr.new/proofgeist/proofkit/@proofkit/better-auth@114

@proofkit/cli

pnpm add https://pkg.pr.new/proofgeist/proofkit/@proofkit/cli@114

create-proofkit

pnpm add https://pkg.pr.new/proofgeist/proofkit/create-proofkit@114

@proofkit/fmdapi

pnpm add https://pkg.pr.new/proofgeist/proofkit/@proofkit/fmdapi@114

@proofkit/fmodata

pnpm add https://pkg.pr.new/proofgeist/proofkit/@proofkit/fmodata@114

@proofkit/typegen

pnpm add https://pkg.pr.new/proofgeist/proofkit/@proofkit/typegen@114

@proofkit/webviewer

pnpm add https://pkg.pr.new/proofgeist/proofkit/@proofkit/webviewer@114

commit: ec08889

@eluce2 eluce2 force-pushed the 02-06-feat_fmodata_add_odata_string_functions_matchespattern_tolower_toupper_trim branch from a42732f to ec08889 Compare February 6, 2026 14:50
@eluce2 eluce2 merged commit 553d386 into main Feb 6, 2026
13 checks passed
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

TInput = TOutput,
TableName extends string = string,
IsContainer extends boolean = false,
> extends Column<TOutput, TInput, TableName, IsContainer> {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ColumnFunction transform silently ignored in orderBy operations

Low Severity

The new ColumnFunction class extends Column, making it type-compatible with asc() and desc() operators. However, the orderBy serialization in query-builder.ts uses column.fieldName directly, which for ColumnFunction returns only the underlying field name without the function wrapper. This means asc(tolower(users.name)) compiles successfully but the tolower transform is silently ignored, producing $orderby=name asc instead of the expected $orderby=tolower(name) asc. Users attempting case-insensitive sorting would get unexpected results.

Fix in Cursor Fix in Web

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