Commit graph

678 commits

Author SHA1 Message Date
sanny-io
97d674ecdc
feat: phone validation (#2672) 2026-05-23 21:27:54 -07:00
github-actions[bot]
87644178b3
[CI] Bump version 3.7.1 (#2678)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-05-22 08:31:58 -07:00
Lukas Wolf
7bc2fe57d7
feat(orm): implement delegateMap attribute (#2676) 2026-05-22 08:31:43 -07:00
Yiming Cao
ed01275e4a
chore: bump Kysely to 0.29 (#2626)
Some checks failed
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 14:34:00 -07:00
Yiming Cao
026450bfe7
fix(orm): make orderBy nulls optional (#2670)
Some checks are pending
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 12:13:11 -07:00
Keath Pavlenko
1a4de21bdc
fix: detect policy plugin by stable id (#2663)
Some checks are pending
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
2026-05-11 18:28:16 -07:00
Erwan JOLY
ce50d3ba48
fix(orm): coerce ISO strings on DateTime input, with strictDateInput opt-in (#2631) (#2632)
Some checks failed
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 05:56:25 -07:00
github-actions[bot]
b53e908a5d
[CI] Bump version 3.7.0 (#2656)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-05-07 22:35:13 -07:00
Yiming Cao
899e74daf6
test(regression): add regression test for issue #2639 (#2657)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 21:47:35 -07:00
Yiming Cao
7283d0e4d1
fix(orm): handle cyclic JSON typedef references in zod factory (#2654) (#2655)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 20:51:04 -07:00
Erwan JOLY
d1db37cee5
fix(orm): format Date as HH:MM:SS for @db.Time / @db.Timetz columns (#2633) (#2634) 2026-05-07 18:02:55 -07:00
ymc9
1997cf3e98 fix(orm): coalesce NULL → '' in single-field _ftsRelevance ORDER BY
`to_tsvector(NULL)` returns NULL and `ts_rank(NULL, ...)` therefore
returns NULL — under Postgres's default `NULLS FIRST` for `ORDER BY DESC`
this would surface NULL-valued rows ahead of any matching ones, an
asymmetry with the multi-field path where `concat_ws(' ', ...)` already
skips NULLs and yields a 0.0 rank. Coalescing the field to `''` aligns
the two paths.

Adds `subtitle: String? @fullText` to the test fixture and a regression
test that orders a NULL-subtitle row against a matching one — without
the fix, the NULL row ranks first under DESC.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 21:07:53 -07:00
ymc9
d0dd954827 feat(orm): add @fullText attribute and Postgres full-text search
Introduces a Prisma-style full-text search capability gated by a new
field-level `@fullText` ZModel attribute. PostgreSQL only — MySQL/SQLite
throw NotSupported. Mirrors the existing `@fuzzy` design.

- Filter operator: `where: { title: { fts: { search, config? } } }`
  emits `to_tsvector(field) @@ to_tsquery(query)` (or with a `::regconfig`
  cast when `config` is provided; otherwise Postgres uses the database's
  `default_text_search_config`).
- OrderBy operator: `_ftsRelevance: { fields, search, config?, sort }`
  emits a single `ts_rank(...)`. Multi-field combines fields with
  `concat_ws(' ', ...)` so AND queries match terms across fields
  (matches Prisma's behavior).
- Type-level gating: the `fts` operator and `_ftsRelevance` orderBy
  appear only on String fields annotated with `@fullText` and only when
  the schema's provider is `postgresql`. Slicing's `'FullText'` filter
  kind controls availability of the runtime operator.
- Cursor pagination is rejected when combined with `_ftsRelevance`
  (parallel to `_fuzzyRelevance`).

Also refactors `buildOrderBy` to dispatch to small per-branch helpers
(`applyScalarOrderBy`, `applyAggregationOrderBy`, `applyRelationOrderBy`,
`applyFuzzyRelevanceOrderBy`, `applyFtsRelevanceOrderBy`).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 11:34:30 -07:00
Yiming Cao
d5e790061a
fix(orm, zod): allow null in inferred type of required Json fields (#2647) (#2649)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 19:14:07 -07:00
Yiming Cao
8ddbfdebdc
feat(orm): add field-level @fuzzy attribute to gate fuzzy search (#2642)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 12:41:09 -07:00
Yiming Cao
eff4263c47
refactor(tanstack-query, orm): thread plugin generics through transactions (#2645)
Some checks are pending
CodeQL / Analyze (javascript-typescript) (push) Waiting to run
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 10:56:06 -07:00
docloulou
679f91fc26
feat(orm): add fuzzy search and relevance ordering (PostgreSQL) (#2573)
Some checks failed
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-05-03 20:11:03 -07:00
Yiming Cao
9cef0272e7
chore: upgrade to TypeScript 6 (#2629) 2026-04-29 20:41:27 -07:00
Yiming Cao
2a10bcae09
fix(orm): export UncheckedCreateInput/CheckedCreateInput and add XOR to UpdateInput (#2627)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 14:44:21 -07:00
Yiming Cao
d30ebade7f
fix(policy): resolve inherited fields in delegate sub-type create policy checks (#2623)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 18:23:37 -07:00
github-actions[bot]
80c0bd6d68
[CI] Bump version 3.6.4 (#2624)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-04-27 17:50:05 -07:00
github-actions[bot]
8609d5b3e3
[CI] Bump version 3.6.3 (#2613)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-04-24 21:21:24 -07:00
Yiming Cao
09ca875066
test(regression): add regression test for issue #2538 (#2607) 2026-04-22 16:32:01 -07:00
ymc9
fa94d38bb2 test(regression): add regression test for issue #2538
Adds a regression test for nested collection predicates in access
policies generating valid SQL (issue #2538).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 15:59:06 -07:00
Yiming Cao
40c45944cc
fix(orm): resolve implicit m2m join table schema for non-public PostgreSQL schemas (#2606)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 15:21:43 -07:00
Yiming Cao
1cf4345ffa
fix(policy): join base table when loading before-update entities for @@delegate sub-models (#2605)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 11:59:30 -07:00
github-actions[bot]
fd8db57ef2
[CI] Bump version 3.6.2 (#2604)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-04-22 10:54:53 -07:00
Yiming Cao
14e1d55544
chore: fix up test case (#2600) 2026-04-21 17:33:06 -07:00
Lukas Kahwe Smith
bfdfce13c0
fix(orm): accept plain date strings in DateTime @db.Date field filters (#2572)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-04-21 16:46:30 -07:00
github-actions[bot]
a1374c042f
[CI] Bump version 3.6.1 (#2598)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-04-21 08:52:19 -07:00
Erwan JOLY
3398c87dbb
fix(orm): return @db.Time fields as Date instead of raw string (#2589) (#2590) 2026-04-18 20:17:45 -07:00
Eugen Istoc
4e35bc163b
fix(orm): resolve delegate-inherited fields in cursor pagination (#2591) 2026-04-18 15:50:06 -07:00
Yiming Cao
09b96e4ed3
fix(orm): make JsonArray mutable to fix Zod schema type incompatibility (#2585) 2026-04-16 22:03:39 -07:00
Yiming Cao
c858bbd4cf
feat(language): allow relation fields in type declarations for mixin use cases (#2583)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 20:01:12 -07:00
Evgenii Novalov
36da18a17f
perf(orm): use EXISTS instead of COUNT subquery for to-one relation filters (#2579)
Co-authored-by: evgenovalov <evgenii@flowlity.com>
2026-04-15 13:07:16 -07:00
Yiming Cao
b8209d7eeb
chore: migrate from tsup to tsdown (#2580) 2026-04-15 12:13:34 -07:00
Lukas Kahwe Smith
3393e4cc21
@computed fields from mixin types (with) cause column does not exist error when the model is explicitly included (#2539)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 13:49:35 -07:00
Yiming Cao
dc26257553
feat(server): add OpenAPI spec generation for RPC API (#2574)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 21:35:24 -07:00
github-actions[bot]
3dc922d6a9
[CI] Bump version 3.6.0 (#2571)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-04-11 19:18:20 -07:00
Yiming Cao
39a0a28c51
fix(orm): enforce at most one key per orderBy array element (#2563) 2026-04-06 19:16:27 -07:00
Yiming Cao
d22709fb55
fix(orm): prepend DISTINCT ON fields to ORDER BY for PostgreSQL compatibility (#2562)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: Yiming Cao <ymc9@users.noreply.github.com>
2026-04-06 16:47:45 -07:00
github-actions[bot]
df9b35ea64
[CI] Bump version 3.5.6 (#2560)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-04-06 13:14:51 -07:00
Yiming Cao
e9482fe34f
fix(orm): fix _count returning 0 for self-referential relations on delegate models (#2555)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 18:16:39 -07:00
Yiming Cao
744c760ac4
fix(orm): split jsonb_build_object calls exceeding PostgreSQL 100-arg limit (#2554)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 15:49:18 -07:00
Yiming Cao
dbb3474c65
fix(orm): support DbNull/JsonNull/AnyNull for nullable typed JSON fields (#2552)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 15:08:57 -07:00
github-actions[bot]
0495333ca3
[CI] Bump version 3.5.5 (#2553)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-04-03 14:13:43 -07:00
Yiming Cao
a81d8f4f52
test(regression): add regression test for issue #2410 (#2549)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 14:10:06 -07:00
Emil Redzik
c6c8ad1906
fix(orm): unify zenstack v3 and prisma behavior on empty branches in OR filter (#2528)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-04-02 23:44:28 -07:00
motopods
5a60fb227d
fix(orm): type inference for polymorphic models (#2543)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-04-02 22:52:10 -07:00
github-actions[bot]
263074ce78
[CI] Bump version 3.5.4 (#2545)
Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com>
2026-04-02 10:23:46 -07:00