v3.18.0 (2025-01-20)
π Features
- adds support for both client-side and server-side remote URL uploads fetching (#10004) (38a06e7)
- support JPEG XL image size calculation (#10624) (6ebcbe4)
- adds multi-tenant plugin (#10447) (813e70b)
- examples: add example with Remix + Payload Local API (#10171) (5a9cf89)
- richtext-lexical: add jsx and html converters for tab nodes (#10565) (2e09da8)
- ui: exposes context of the view being rendered on the server (#10620) (e80d679)
π Bug Fixes
- updates field validation error messages to use labels if applicable (#10601) (ad553e9)
- delete scheduled publish jobs when deleting documents (#10584) (05b9d94)
- UpsertArgs is not exported in payload (#9347) (7a392dd)
- form state read access control args (#10576) (05b03b2)
- missing find collection versions REST endpoint (#10573) (120735c)
- basePath was not passed through if method was overriden (#10562) (90e1843)
- db-mongodb: incorrect errors logging due to invalid logic in
handleError
(#10575) (9043b10) - payload-cloud: add ts strict mode and fix a couple of wrong runtime behaviors (#10570) (16ad7a6)
- plugin-seo: loosen some types to restore compatibility between minor versions (#10670) (9c29541)
- plugin-stripe: hooks did not use api key from plugin config (#10671) (d2f63dc)
- richtext-lexical: setting hideInsertParagraphAtEnd to true did not hide insert paragraph button (#10581) (8ab05b0)
- richtext-lexical: inline blocks did not store nested fields correctly (#10578) (61117ee)
- richtext-lexical: ensure jsx and html converters do not output linebreak if editor is empty (#10563) (df4af70)
- richtext-slate: link and upload extra field drawers did not render fields if collection has unrelated access control set (#10583) (ecf0572)
- ui: renders custom block row labels (#10686) (6c19579)
- ui: fixed many bugs in the WhereBuilder relationship select menu (#10553) (56667cd)
- ui: replace hard coded path to API with
serverURL
androutes.api
(#10618) (5a95237) - ui: placement issue with sonner toasts (#10641) (f1cc8bd)
- ui: show outline on focus for sort column buttons (#9557) (818467d)
β‘ Performance
- list view table should not send duplicative client CollectionConfig to client (#10664) (823e223)
- ensure deepCopy in beforeValidate hook does not run unnecessarily for rest and graphQL API (#10666) (b69fe99)
- optimize getEntityConfig lookups (#10665) (c07c9e9)
- remove deepCopying in sanitizeJoinQuery, optimize flattenWhereToOperators (#10663) (91ed882)
- operations performance optimizations (#10609) (42382b6)
- reduce document data deepCopying in field hooks (#10610) (116fd99)
- do not send minRows and maxRows undefined values to client (#10600) (0a1cf7b)
- ensure unnecessary config translations are not sent to the client (#10524) (3fb6ac3)
- significantly reduce form state response size by up to 3x (#9388) (31ae27b)
- richtext-lexical: ensure internal link nodes do not store url field, and vice versa (#10564) (5d6c29f)
- ui: remove unnecessary deepCopy in reduceToSerializableFields (#10667) (a98a398)
- ui: speed up list view rendering, ensure root layout does not re-render when navigating to list view (#10607) (fafe37e)
π Documentation
- react hooks - update useForm import path (#10658) (ef44bdd)
- removes live preview image placeholder comment (#10643) (64fc2df)
- update wording for sentence (#10599) (22f3c79)
- add section on localized access control (#10567) (8217842)
π§ͺ Tests
π Templates
- form fields will now respect 'required' flag from config on website template (#10681) (2d70269)
- add cache tag to images so that they can be revalidated along with the page on website templates (#10647) (7d10e1b)
- bump for v3.17.1 (#10560) (592f02b)
π Examples
π¨ Build
βοΈ CI
- update canary script for tools dir (711febc)
- add multi-tenant plugin to publish list (076ffa2)
- disable integration tests retrying (#10615) (28b7c04)
- access sha in dispatch event (5ee36fc)
- dispatch event (f306785)
- scripts: publish-canary script always bump minor, more realistic [skip ci][skip lint] (4629784)
π‘ Chores
- set save-prefix='' for repo [skip ci] (ef4b8d9)
- run pnpm dev without dev - this improves error logging on init (#10669) (9215f03)
- adjust multi tenant version (#10640) (baad382)
- multi-tenant plugin updates (#10598) (0d47a5d)
- enable noUncheckedIndexedAccess in all packages except richtext-lexical (#10592) (d4039f2)
- enable noImplicitOverride in all packages (#10588) (d55b6a3)
- update mongodb-memory-server v9 -> v10 (#10556) (918bd72)
- make TypeScript strict in test folder. Simplify tsconfig (#10582) (a304dc4)
- make TypeScript strict by default in packages and 7 packages stricter (#10579) (085c1d0)
- db-mongodb: update mongoose and mongodb deps (#10644) (00cc10c)
- deps: upgrade various dependencies (#10657) (b6e9c3b)
- deps: bumps path-to-regexp (8c3f6e1)
- examples: bumps custom components example to latest and runs seed on init (#10661) (9f5ffed)
- richtext-lexical: add unit test that ensures lexical dependency checker is updated (#10561) (6a6ef8f)
- templates: make TypeScript strict in website template (#10587) (2ce3829)
π€ Contributors
- Alessio Gravili (@AlessioGr)
- Jacob Fletcher (@jacobsfletch)
- Elliot DeNolf (@denolfe)
- Sasha (@r1tsuu)
- GermΓ‘n JabloΓ±ski (@GermanJablo)
- Paul (@paulpopus)
- Boyan Bratvanov (@bratvanov)
- Dan Ribbens (@DanRibbens)
- Jarrod Flesch (@JarrodMFlesch)
- Patrik (@PatrikKozak)
- Riley Langbein (@rilrom)
- Said Akhrarov (@akhrarovsaid)
- Greg Presland (@gpresland)
- DracoBlue (@DracoBlue)
- Jessica Chowdhury (@JessChowdhury)
- Suphon T. (@suphon-t)