719 Commits

Author SHA1 Message Date
Andrei L 90623baa6f fix(admin): clean up lazy component registration warnings (#25015)
* fix(admin): don't warn when Component is missing in addMenuLink/addSettingsLink

* fix: add some missing StrapiApp types

* fix(admin): clean up lazy component registrations

---------

Co-authored-by: Bassel Kanso <basselkanso82@gmail.com>
2026-04-30 16:27:48 +03:00
Adzouz 11554fe43e release: 5.44.0 2026-04-29 13:06:31 +00:00
nclsndr 765bd19a3a Merge branch 'develop' of github.com:strapi/strapi 2026-04-24 15:40:44 +02:00
Filip Ónodi 4ccaab3c74 enhancement(translations): update czech translations (#25824)
Co-authored-by: Bassel Kanso <basselkanso82@gmail.com>
2026-04-24 11:11:48 +03:00
nclsndr 14628987b5 release: 5.43.0 2026-04-22 14:30:40 +00:00
Jan Willem Keizer 0c912f071b feat(i18n): complete Dutch (nl) translations for admin panel (#25932)
Add missing Dutch translations across all core packages and plugins,
bringing coverage from ~50% to ~100%.

Changes:
- core/admin: 301 new translations added (564 → 863 keys)
- core/content-manager: 169 new translations added (190 → 359 keys)
- core/content-type-builder: 62 new translations added (226 → 288 keys)
- core/upload: new nl.json with 220 translations
- core/email: 43 translations added (was empty)
- core/content-releases: new nl.json with 104 translations
- core/review-workflows: new nl.json with 15 translations
- plugins/users-permissions: 39 new translations added (42 → 81 keys)
- plugins/i18n: new nl.json with 84 translations
- plugins/cloud: new nl.json with 19 translations

Also standardizes existing translations to use informal "je/jouw"
consistently (was mixed "u/uw" and "je/jouw"), matching Strapi's
informal, developer-friendly tone of voice.
2026-04-20 10:29:25 +01:00
jhoward1994 4709832272 release: 5.42.1 2026-04-15 11:13:30 +00:00
dependabot[bot] 68e20493cc chore(deps): bump lodash from 4.17.23 to 4.18.1 (#25919)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.18.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 10:50:59 +02:00
Mark Kaylor 7d6ce043e0 Merge branch 'main' into develop 2026-04-09 15:36:49 +02:00
Michał Kleszczyński 62023de80d chore: update Polish language translations (#23762) 2026-04-08 15:29:18 +02:00
markkaylor e86a5190a5 release: 5.42.0 2026-04-08 12:14:52 +00:00
Bassel17 5ae36e382d release: 5.41.1 2026-04-01 09:48:47 +00:00
Bassel17 967175a13b release: 5.41.0 2026-04-01 09:10:30 +00:00
Adzouz e1cdebd2a5 release: 5.40.0 2026-03-18 13:25:35 +00:00
Bassel Kanso ea3b700d6d Merge branch 'main' into develop 2026-03-11 16:37:26 +02:00
Bassel17 243c96ff4a release: 5.39.0 2026-03-11 10:13:31 +00:00
Bassel17 cd12da721d release: 5.38.1 2026-03-11 09:56:28 +00:00
Nikolas Rimikis a0a18654b2 chore: use https instead of git url in package.repository.url (#25698)
Signed-off-by: Nikolas Rimikis <leptopoda@users.noreply.github.com>
Co-authored-by: Nikolas Rimikis <leptopoda@users.noreply.github.com>
2026-03-10 12:42:42 +00:00
Nikolas Rimikis f2a8048761 chore: update package metadata (#25599)
Add homepage, bugs and repository information to every public package

Signed-off-by: Nikolas Rimikis <leptopoda@users.noreply.github.com>
Co-authored-by: Nikolas Rimikis <leptopoda@users.noreply.github.com>
2026-03-09 15:34:48 +01:00
Adrien L 9ef7aa5f21 fix: es translations (#25655)
Co-authored-by: Iñigo Zulueta <eggamer131@gmail.com>
2026-03-05 16:03:00 +01:00
Ben Irvin 12c801db9e chore: upgrade koa to 20.8.4 and minimatch to 10.2.4 (#25624) 2026-03-05 12:25:36 +00:00
markkaylor 29f5741e96 release: 5.38.0 2026-03-04 13:09:53 +00:00
mathildeleg 55f985dfaa chore: bump design-system to v2.2.0 (#25584) 2026-02-27 15:56:24 +00:00
Bassel Kanso d0a4d6e1fd Merge branch 'main' into develop 2026-02-26 17:03:26 +02:00
Bassel17 e7bb15d0fd release: 5.37.1 2026-02-26 14:50:27 +00:00
Ben Irvin bf7eb824dc Merge main into develop (sync with release 5.37.0) 2026-02-26 10:04:24 +01:00
innerdvations c18dbf7892 release: 5.37.0 2026-02-26 08:27:53 +00:00
Schero D. c4cea991dd feat(email-nodemailer): upgrade to Nodemailer v8 with advanced email features and Admin UI capabilities (#25392)
* feat(email-nodemailer): improve provider with new features and tests

- Remove lodash dependency, use native destructuring
- Add verify() method for SMTP configuration testing
- Add isIdle() method for connection pool status
- Add close() method for graceful shutdown
- Add unit tests (11 tests)
- Expand documentation with OAuth2, DKIM, pooling, calendar events
- Fix package description from "Strapi 3" to "Strapi"

* feat(email): add connection verification support in admin UI

- Add verify endpoint to test SMTP connection without sending email
- Add EmailProvider interface with optional verify, isIdle, close methods
- Add "Test connection" button in Email Settings when provider supports it
- Show connection status badge (Connected/Error) after verification
- Add translations for new UI elements

* feat(email): add RFC-compliant email address parsing utilities

- Add parseEmailAddress() supporting RFC 5322, 2047, 6531
- Add formatEmailAddress() with automatic encoding
- Parse sender name and email separately in Settings UI
- Support Base64/Quoted-Printable encoded names (RFC 2047)
- Support comments in parentheses (RFC 5322)
- Support quoted strings with special characters
- Add comprehensive test suite (40+ tests)
- Export utilities from @strapi/provider-email-nodemailer/utils

* feat(email-nodemailer): add custom headers support and upgrade to nodemailer v7

- Add explicit `headers` field to SendOptions interface, allowing
  custom SMTP headers to be passed in send() calls. This enables
  use cases with specialized SMTP servers that require custom headers
  (e.g. X-Priority, X-Mailer, business-specific headers).
- Upgrade nodemailer from 6.10.1 to 7.0.13 (includes security fix
  for stack overflow DoS in address parser, DNS cache leak fix,
  REQUIRETLS support, and increased data URI size limit).
- Upgrade @types/nodemailer from 6.4.7 to 7.0.9.

Closes #23190
Closes #24949

* feat(email-nodemailer): add advanced email features

Add typed support for advanced Nodemailer features that no other
headless CMS currently offers:

- priority: Set email priority (high/normal/low) via X-Priority header
- dsn: Delivery Status Notifications for bounce/success tracking
- icalEvent: Calendar event invitations (meeting requests)
- list: RFC 2369 List-* headers (enables one-click unsubscribe
  in Gmail/Outlook for newsletters)
- envelope: Custom SMTP envelope for bounce handling
- amp: AMP4Email content for interactive emails

All features are opt-in and fully backward-compatible. Transport-level
features (DKIM, connection pooling, rate limiting, OAuth2, proxy)
are already supported through providerOptions pass-through.

* docs(email-nodemailer): comprehensive README with all features documented

- Add feature overview table at the top
- Document all new send() options: list (unsubscribe), dsn, envelope, amp
- Add examples for newsletters, bounce handling, AMP4Email, DSN
- Document transport-level features: rate limiting, proxy, requireTLS
- Update send options table with all supported fields

* feat(email-nodemailer): add per-message OAuth2 authentication support

Enable sending emails on behalf of different users through a single
OAuth2-configured transporter. Each send() call can include user-
specific auth credentials (user, refreshToken, accessToken), allowing
multi-user email sending without creating separate transporters.

Useful for applications where admins or team members need to send
emails from their own accounts via a shared OAuth2 client.

* feat(email): add provider capabilities to Email Settings UI

- Extend EmailProvider interface with optional getCapabilities()
- Add ProviderCapabilities type to shared types
- Implement getCapabilities() in Nodemailer provider (transport, auth, features)
- Extend getSettings controller to return capabilities and isIdle
- Add Capabilities section in Admin UI showing SMTP server, encryption,
  authentication, pool status, and feature badges (DKIM, pool, rate limiting,
  OAuth2, requireTLS)
- Add translations for en and de
- Disable import/no-unresolved for email admin (match sibling packages)

* fix(email): show Connected/Error badge next to Test connection button

* chore: update yarn.lock after rebase on develop

* security(email-nodemailer): upgrade to nodemailer 8.0.1 and harden provider

- Upgrade nodemailer from 7.0.13 to 8.0.1 (improved socket cleanup,
  DNS fallback hardening, TLS error handling, standardized error codes)
- Upgrade @types/nodemailer from 7.0.9 to 7.0.10
- Remove dangerous ...rest spread that allowed arbitrary property
  injection into sendMail options (only explicitly allowlisted fields
  are now forwarded)
- Remove auth.user from getCapabilities() and ProviderCapabilities
  type to prevent credential/username leakage via admin API
- Simplify admin UI auth display to show only auth type, not username
- Replace (message as any) casts with (message as Record<string, unknown>)
- Add comprehensive security tests: no-rest-spread injection test,
  credential leak prevention test, per-field forwarding tests

* fix(email): restore auth.user in capabilities for admin visibility

Keep the SMTP username visible in getCapabilities() and the admin
Settings UI so administrators can verify which account is configured.

* feat(email-nodemailer): expose all nodemailer message options

Forward every nodemailer SendMailOptions field through the provider:
- sender, inReplyTo, references (threading & on-behalf-of)
- alternatives, watchHtml (content variants)
- messageId, date, xMailer (metadata control)
- textEncoding, encoding, normalizeHeaderKey (encoding)
- dkim per-message, attachDataUrls (signing & embedding)
- disableUrlAccess, disableFileAccess (security flags)
- raw (pre-built MIME passthrough)
- proxy detection in getCapabilities()

All fields are explicitly allowlisted - no rest-spread.

* docs(email-nodemailer): update README with all message options

Add documentation for newly supported fields: sender, inReplyTo,
references, alternatives, watchHtml, messageId, date, xMailer,
textEncoding, encoding, dkim per-message, disableUrlAccess,
disableFileAccess, raw MIME, attachDataUrls. Expand field table
with categories and add code examples for threading, on-behalf-of,
per-message DKIM, alternative content, and raw MIME passthrough.

* feat(email-nodemailer): add RFC 5321 email normalization and expand RFC coverage

- Add normalizeEmail() that lowercases email addresses per RFC 5321
  section 2.4 (domain is case-insensitive, local part treated as
  case-insensitive in practice by all major providers)
- parseEmailAddress() now returns normalized lowercase emails
- formatEmailAddress() now normalizes email before formatting
- Export normalizeEmail from utils
- Expand RFC standards table: add RFC 5321, 2369, 3461, 6376, 6532
- Add normalization examples to README
- Add 10 new tests for email normalization

* fix(email-nodemailer): fix 7 bugs in provider and email utilities

- Fix extractComments: unmatched ')' no longer causes negative depth
- Fix parseMultipleEmailAddresses: replace broken prevChar escape tracking with boolean flag
- Fix encodeRfc2047Base64: split long names into <=75 char chunks per RFC 2047
- Fix isValidEmail: reject consecutive/leading/trailing dots in local part
- Fix isValidEmail: enforce RFC 5321 length limits (local<=64, domain<=255, total<=320)
- Fix send(): replace || with ?? for text/html fallback (empty string is a valid value)
- Fix send(): replace || with ?? for from/replyTo fallback (empty string is a valid value)

* style(email-nodemailer): fix prettier formatting in tests and README

---------

Co-authored-by: Bassel Kanso <basselkanso82@gmail.com>
2026-02-25 15:16:56 +02:00
Bassel Kanso 741c748589 Merge branch 'main' into develop 2026-02-19 17:14:36 +02:00
innerdvations 6187e8a9d7 release: 5.36.1 2026-02-18 14:16:09 +00:00
Ben Irvin bebb8af25d ci: add version compare script and workflow (#25451) 2026-02-18 09:16:43 +01:00
Mark Kaylor 9ecfab0e5d Merge branch 'main' of github.com:strapi/strapi into develop 2026-02-11 17:13:52 +01:00
Ben Irvin bf72b0ec43 security: update react-router (#25391) 2026-02-11 16:30:17 +01:00
markkaylor 23a521fab4 release: 5.36.0 2026-02-11 14:05:28 +00:00
innerdvations ec17c9e1ed release: 5.35.0 2026-02-04 12:48:11 +00:00
markkaylor 47cff8e767 release: 5.34.0 2026-01-28 14:54:52 +00:00
Bassel Kanso 67c376eb1f Merge branch 'main' into develop 2026-01-21 14:17:24 +02:00
Bassel17 2437d69089 release: 5.33.4 2026-01-21 11:43:11 +00:00
Lukas Eipert 3d9d4b0209 feat: update german translations for various components (#24143) 2026-01-21 11:58:39 +01:00
Adrien L 2629db1107 chore: bump design-system to v2.1.2 (#25174) 2026-01-14 18:31:32 +01:00
innerdvations 8cf09da6cf release: 5.33.3 2026-01-14 11:05:34 +00:00
DMehaffy 15fc3ac01f chore: update multiple packages to resolve vuln warnings (#25137) 2026-01-12 16:58:41 +01:00
markkaylor 4a8a5c9c88 release: 5.33.2 2026-01-08 08:47:12 +00:00
Bassel17 78aac892c9 release: 5.33.1 2025-12-29 09:43:19 +00:00
markkaylor 7bf3fdf9d5 release: 5.33.0 2025-12-17 13:10:40 +00:00
Maksim Zhukau 83cb416993 feat(i18n): add Russian translations for all admin components (#24077) 2025-12-13 11:53:27 +01:00
innerdvations a54a83b36a release: 5.32.0 2025-12-10 15:12:24 +00:00
Rémi de Juvigny 9b24f8f26a Merge remote-tracking branch 'origin/main' into develop 2025-12-04 16:33:22 +01:00
remidej a7b581af10 release: 5.31.3 2025-12-03 14:17:15 +00:00
HichamELBSI 16b0f3c011 chore: bump testing library dependencies 2025-12-03 10:19:07 +01:00