Skip to content

Releases: payloadcms/payload

Release v2.8.2

16 Jan 21:35
Compare
Choose a tag to compare

2.8.2 (2024-01-16)

Features

  • db-postgres: support drizzle logging config (#4809) (371353f)
  • plugin-form-builder: add validation for form ID when creating a submission (#4730)
  • plugin-seo: add support for interfaceName and fieldOverrides (#4695)

Bug Fixes

  • db-mongodb: mongodb versions creating duplicates (#4825) (a861311)
  • db-mongodb: transactionOptions=false typeErrors (82383a5)
  • db-postgres: Remove duplicate keys from response (#4747) (eb9e771)
  • db-postgres: validateExistingBlockIsIdentical with arrays (3b88adc)
  • db-postgres: validateExistingBlockIsIdentical with other tables (0647c87)
  • plugin-seo: fix missing spread operator in URL generator function (#4723)
  • removes max-width from field-types class & correctly sets it on uploads (#4829) (ee5390a)

Release v2.8.0

12 Jan 15:43
Compare
Choose a tag to compare

2.8.0 (2024-01-12)

Features

Bug Fixes

  • allow a custom ID field to be nested inside unnamed tabs and rows (#4701) (6d5ac1d)
  • build payload without initializing (#4028) (1115387)
  • db-mongodb: limit=0 returns unpaginated (63e5c43)
  • db-postgres: totalPages value when limit=0 (5702b83)
  • migration regression (#4777) (fa3b3dd)
  • db-mongodb: migration regression (#4777) (fa3b3dd)
  • **db-postgres:**migration regression (#4777) (fa3b3dd)
  • passes draft=true in fetch for relationships (#4784) (0a259d2)
  • plugin-form-builder: replaces curly brackets with lexical editor (#4753) (8481846)
  • prioritizes value key when filtering / querying for relationships (#4727) (d0f7677)
  • text hasMany validation (#4789) (e2e56a4)

⚠ BREAKING CHANGES

@payloadcms/plugin-seo

  • remove support for payload <2.7.0 (#4765)

Release v2.7.0

09 Jan 21:33
Compare
Choose a tag to compare

2.7.0 (2024-01-09)

Features

  • db-mongodb: improve transaction support by passing req to migrations (682eca2)
  • db-postgres: improve transaction support by passing req to migrations (555d027)
  • hasMany property for text fields (#4605) (f43cf18)
  • improve transaction support by passing req to migrations (1d14d9f)
  • plugin-seo: add i18n (#4665) (3027a03)

Bug Fixes

  • adds objectID validation to isValidID if of type text (#4689) (d419275)
  • allow json field to be saved empty and reflect value changes (#4687) (0fb3a9c)
  • custom ids in versions (#4680) (5d15955)
  • custom overrides of breadcrumb and parent fields (7db58b4)
  • db-mongodb: migration error calling beginTransaction with transactionOptions false (21b9453)
  • db-mongodb: querying plan for collections ignoring indexes (#4655) (63bc4ca)
  • db-postgres: incorrect results querying json field using exists operator (9d9ac0e)
  • db-postgres: migrate down only runs latest batch size (6acfae8)
  • db-postgres: query on json properties (ec4d2f9)
  • db-postgres: validation prevents group fields in blocks (#4699) (cab6bab)
  • non-boolean condition result causes infinite looping (#4579) (a3e7816)
  • plugin-form-builder: slate serializer should replace curly braces in links (#4703) (28a3012)
  • plugin-nested-docs: breadcrumbsFieldSlug used in resaveSelfAfterCreate hook (a5a91c0)
  • plugin-nested-docs: children wrongly publishing draft data (#4692) (5539942)
  • plugin-nested-docs: custom parent field slug (635e7c2)
  • plugin-nested-docs: parent filterOptions errors when specifying breadcrumbsFieldSlug (c4a4678)
  • prevents row overflow (#4704) (9828772)
  • relations with number based ids (postgres) show untitled ID: x (1b91408)
  • sidebar fields not disabled by access permissions (#4682) (85e38b7)
  • unlock user condition always passes due to seconds conversion (#4610) (d543665)

Release v2.6.0

03 Jan 20:59
Compare
Choose a tag to compare

2.6.0 (2024-01-03)

Features

  • db-mongodb: add transactionOptions (f2c8ac4)
  • extend locales to have fallbackLocales (9fac2ef)

Bug Fixes

  • "The punycode module is deprecated" warning by updating nodemailer (00d8480)
  • adjusts json field joi schema to allow editorOptions (bff4cf5)
  • db-postgres: Wait for transaction to complete on commit (#4582) (a71d37b)
  • detect language from request headers accept-language (#4656) (69a9944)
  • graphql multiple locales (98890ee)
  • navigation locks when modal is closed with esc (#4664) (be3beab)
  • req.locale and req.fallbackLocale get reassigned in local operations (aa048d5)
  • resets actions array when navigating out of view with actions (#4585) (5c55231)
  • richtext-lexical: z-index issues (#4570) (8015e99)
  • tab field error when using the same interface name (#4657) (f1fa374)

Release v2.5.0

19 Dec 19:51
Compare
Choose a tag to compare

2.5.0 (2023-12-19)

Features

  • add Chinese Traditional translation (#4372) (50253f6)
  • add context to auth and globals local API (#4449) (168d629)
  • adds new actions property to admin customization (#4468) (9e8f14a)
  • async live preview urls (#4339) (5f17324)
  • pass path to FieldDescription (#4364) (3b8a27d)
  • plugin-form-builder: Lexical support (#4487) (c6c5cab)
  • prevent querying relationship when filterOptions returns false (#4392) (c1bd338)
  • richtext-lexical: improve floating select menu Dropdown classNames (#4444) (9331204)
  • richtext-lexical: improve link URL validation (#4442) (9babf68)
  • richtext-lexical: lazy import React components to prevent client-only code from leaking into the server (#4290) (5de347f)
  • richtext-lexical: Link & Relationship Feature: field-level configurable allowed relationships (#4182) (7af8f29)
  • richtext-lexical: link node: change doc data format to be consistent with relationship field (#4504) (cc0ba89)
  • richtext-lexical: rename TreeviewFeature into TreeViewFeature (#4520) (c49fd66)
  • richtext-lexical: Slate to Lexical converter: add blockquote conversion, convert custom link fields (#4486) (31f8f3c)
  • richtext-lexical: Upload html serializer: Output picture element if the image has multiple sizes, improve absolute URL creation (e558894)

Bug Fixes

  • adds bg color for year/month select options in datepicker (#4508) (07371b9)
  • correctly fetches externally stored files when passing uploadEdits (#4505) (228d45c)
  • cursor jumping around inside json field (#4453) (6300037)
  • db-mongodb: documentDB unique constraint throws incorrect error (#4513) (05e8914)
  • db-postgres: findOne correctly querying with where queries (#4550) (8bc31cd)
  • db-postgres: querying nested blocks fields (#4404) (6e9ae65)
  • db-postgres: sorting on a not-configured field throws error (#4382) (dbaecda)
  • defaultValues computed on new globals (#4380) (b6cffce)
  • disallow duplicate fieldNames to be used on the same level in the config (#4381) (a1d66b8)
  • ensure ui fields do not make it into gql schemas (#4457) (3a20ddc)
  • format fields within tab for list controls (#4516) (2650c70)
  • formats locales with multiple labels for versions locale selector (#4495) (8257661)
  • graphql schema generation for fields without queryable subfields (#4463) (13e3e06)
  • handles null upload field values (#4397) (cf9a370)
  • live-preview: populates rte uploads and relationships (#4379) (4090aeb)
  • live-preview: sends raw js objects through window.postMessage instead of json (#4354) (03a3872)
  • make admin navigation transition smoother (#4217) (eb6572e)
  • omit field default value if read access returns false (#4518) (3e9ef84)
  • pin ts-node versions which are causing swc errors (#4447) (b9c0248)
  • properly spreads collection fields into non-tabbed configs #50 (#51) (7e88159)
  • plugin-form-builder: removes use of slate in rich-text serializer (#4451) (3df52a8)
  • plugin-nested-docs: properly exports field utilities (#4462) (1cc87bd)
  • richtext-*: loosen RichTextAdapter types due to re-occuring ts strict mode errors (#4416) (48f1299)
  • richtext-lexical: Blocks field: should not prompt for unsaved changes due to value comparison between null and non-existent props (#4450) (548e78c)
  • richtext-lexical: do not add unnecessary paragraph before upload, relationship and blocks nodes (#4441) (5c2739e)
  • richtext-lexical: lexicalHTML field not working when used inside of Blocks field (128f9c4)
  • richtext-lexical: lexicalHTML field now works when used inside of row fields (#4440) (0421173)
  • richtext-lexical: not all types of URLs are validated correctly (ac7f980)

... Release notes are cut-off. Click here to continue reading

...........................................

  • ...
Read more

Release v2.4.0

06 Dec 18:44
Compare
Choose a tag to compare

2.4.0 (2023-12-06)

Features

  • add Chinese Traditional translation (#4372) (50253f6)
  • async live preview urls (#4339) (5f17324)
  • pass path to FieldDescription (#4364) (3b8a27d)
  • richtext-lexical: lazy import React components to prevent client-only code from leaking into the server (#4290) (5de347f)
  • richtext-lexical: Link & Relationship Feature: field-level configurable allowed relationships (#4182) (7af8f29)

Bug Fixes

  • db-postgres: sorting on a not-configured field throws error (#4382) (dbaecda)
  • defaultValues computed on new globals (#4380) (b6cffce)
  • handles null upload field values (#4397) (cf9a370)
  • live-preview: populates rte uploads and relationships (#4379) (4090aeb)
  • live-preview: sends raw js objects through window.postMessage instead of json (#4354) (03a3872)
  • simplifies query validation and fixes nested relationship fields (#4391) (4b5453e)
  • upload editing error with plugin-cloud (#4170) (fcbe574)
  • uploads files after validation (#4218) (65adfd2)

BREAKING CHANGES

  • richtext-lexical: lazy import React components to prevent client-only code from leaking into the server (#4290)

⚠️ @payloadcms/richtext-lexical

Most important: If you are updating @payloadcms/richtext-lexical to v0.4.0 or higher, you will HAVE to update payload to the latest version as well. If you don't update it, payload likely won't start up due to validation errors. It's generally good practice to upgrade packages prefixed with @payloadcms/ together with payload and keep the versions in sync.

@payloadcms/richtext-slate is not affected by this.

Every single property in the Feature interface which accepts a React component now no longer accepts a React component, but a function which imports a React component instead. This is done to ensure no unnecessary client-only code is leaked to the server when importing Features on a server.
Here's an example migration:

Old:

import { BlockIcon } from '../../lexical/ui/icons/Block'
...
Icon: BlockIcon,

New:

// import { BlockIcon } from '../../lexical/ui/icons/Block' // <= Remove this import
...
Icon: () =>
  // @ts-expect-error
  import('../../lexical/ui/icons/Block').then((module) => module.BlockIcon),

Or alternatively, if you're using default exports instead of named exports:

// import BlockIcon from '../../lexical/ui/icons/Block' // <= Remove this import
...
Icon: () =>
  // @ts-expect-error
  import('../../lexical/ui/icons/Block'),

The types for SanitizedEditorConfig and EditorConfig have changed. Their respective lexical property no longer expects the LexicalEditorConfig. It now expects a function returning the LexicalEditorConfig. You will have to adjust this if you adjusted that property anywhere, e.g. when initializing the lexical field editor property, or when initializing a new headless editor.

The following exports are now exported from the @payloadcms/richtext-lexical/components subpath exports instead of @payloadcms/richtext-lexical:

  • ToolbarButton
  • ToolbarDropdown
  • RichTextCell
  • RichTextField
  • defaultEditorLexicalConfig

You will have to adjust your imports, only if you import any of those properties in your project.

Release v2.3.1

01 Dec 21:21
Compare
Choose a tag to compare

2.3.1 (2023-12-01)

Bug Fixes

  • ensure doc controls are not hidden behind lexical field (#4345) (bea79fe)
  • query validation on relationship fields (#4353) (fe888b5)
  • richtext-lexical: blocks content may be hidden behind components outside of the editor (#4325) (3e745e9)
  • richtext-lexical: Blocks node: incorrect conversion from v1 node to v2 node (ef84a2c)

Release v2.3.0

30 Nov 16:13
Compare
Choose a tag to compare

2.3.0 (2023-11-30)

Features

  • add serbian (latin and cyrillic) translations (#4268) (40c8909)
  • db-mongodb: search for migrations dir intelligently (530c825)
  • db-postgres: search for migrations dir intelligently (308979f)
  • live-preview: batches api requests (#4315) (d49bb43)
  • relationship sortOptions property (#4301) (224cddd)
  • support migrations with js files (2122242)
  • support OAuth 2.0 format Authorization: Bearer tokens in headers (c1eb9d1)
  • useDocumentEvents (#4284) (9bb7a88)

Bug Fixes

  • db-postgres: allow for nested block fields to be queried (#4237) (cd07873)
  • db-postgres: error saving nested arrays with versions (#4302) (3514bfb)
  • duplicate documents with required localized fields (#4236) (9da9b1f)
  • incorrect key property in Tabs field component (#4311) (3502ce7), closes #4282
  • live-preview-react: removes payload from peer deps (7e1052f)
  • live-preview: compounds merge results (#4306) (381c158)
  • live-preview: property resets rte nodes (#4313) (66679fb)
  • live-preview: re-populates externally updated relationships (#4287) (57fc211)
  • live-preview: removes payload from peer deps (b4af95f)
  • properly exports useDocumentsEvents hook (#4314) (5420963)
  • properly sets tabs key in fieldSchemaToJSON (#4317) (9cc88bb)
  • richtext-lexical: HTML Converter field not working inside of tabs (#4293) (5bf6493)
  • richtext-lexical: re-use payload population logic to fix population-related issues (#4291) (094d02c)
  • richtext-slate: add use client to top of tsx files importing from payload core (#4312) (d4f28b1)

BREAKING CHANGES

⚠️ @payloadcms/richtext-lexical

The SlashMenuGroup and SlashMenuOption classes have changed. If you have any custom lexical Features which are adding new slash menu entries, this will be a breaking change for you. If not, no action is required from your side.

Here are the breaking changes and how to migrate:

  1. The SlashMenuOption's first argument is now used as a key and not as a display name. Additionally, a new, optional displayName property is added which will serve as the display name. Make sure your key does not contain any spaces or special characters.
  2. The title property of SlashMenuGroup has been replaced by a new, mandatory key and an optional displayName property. To migrate, you will have to remove the title property and add a key property instead - make sure you do not use spaces or special characters in the key.
  3. Additionally, if you have custom styles targeting elements inside of slash or floating-select-toolbar menus, you will have to adjust those too, as the CSS classes changed

This is an example of performing these updates

Release v2.2.2

27 Nov 21:13
Compare
Choose a tag to compare

2.2.2 (2023-11-27)

Features

Bug Fixes

  • number field validation (#4233) (19fcfc2)
  • passes date options to the react-datepicker in filter UI, removes duplicate options from operators select (#4225) (3d2b62b)
  • prevent json data getting reset when switching tabs (#4123) (1dcd3a2)
  • transactions broken within doc access (443847e)
  • typo in polish translations (#4234) (56a4692)

Release v2.2.1

21 Nov 15:09
Compare
Choose a tag to compare

2.2.1 (2023-11-21)

Bug Fixes

  • make outputSchema optional on richtext config (#4230) (3a784a0)