818 Commits

Author SHA1 Message Date
Bassel Kanso e666ee26ae Merge branch 'main' into develop 2026-06-02 17:08:25 +03:00
dependabot[bot] d0aa491f9f chore(deps): bump qs from 6.15.0 to 6.15.2 (#26417)
Bumps [qs](https://github.com/ljharb/qs) from 6.15.0 to 6.15.2.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.15.0...v6.15.2)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.15.2
  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-05-28 17:36:20 +00:00
Andrei L 1138f7c6ad chore(admin): remove punycode dependency (#26189)
* chore(admin): remove punycode dependency

WHATWG URL handles IDN natively on Node >=20, so the punycode call
before `new URL()` is redundant.

Per Node docs (https://nodejs.org/api/url.html#new-urlinput-base):

  Unicode characters appearing within the host name of input will be
  automatically converted to ASCII using the Punycode algorithm.

  const myURL = new URL('https://測試');
  // https://xn--g6w251d/

Drops `punycode` and `@types/punycode` from packages/core/admin.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(typescript): guard pathExistsSync against undefined config path

`getConfigPath` may return `undefined` when no tsconfig matches; passing
that into `fse.pathExistsSync` triggers DEP0187 on Node >=22:

  [DEP0187] DeprecationWarning: Passing invalid argument types to
  fs.existsSync is deprecated

Short-circuit to `false` when the path is not resolved.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
2026-05-28 15:09:31 +00:00
Jamie Howard 3edd3a102c Merge remote-tracking branch 'origin/develop' 2026-05-28 14:17:59 +01:00
jhoward1994 42509493bf release: 5.47.0 2026-05-28 11:22:14 +00:00
Paul Bratslavsky 411bb86bed fix(upgrade): simplify registry URL resolution (#25027)
* fix(upgrade): simplify registry URL resolution

* fix(upgrade): handle Yarn Classic registry config

   - Add yarn version detection to use correct config key
   - Yarn v1 uses 'registry', Yarn v2+ uses 'npmRegistryServer'
   - Guard against literal 'undefined' string from Yarn v1
   - Add tests for Yarn v1 and v2+ registry detection

* fix(upgrade): extract normalizeRegistryOutput helper

Move registry stdout validation into a shared helper and tighten registry
URL determination tests.

---------

Co-authored-by: Ben Irvin <ben@innerdvations.com>
2026-05-26 14:01:52 +00:00
Bassel17 04ac8c3e90 release: 5.46.1 2026-05-20 09:09:00 +00:00
Ben Irvin 6ed22b5cfa security(deps): upgrade multiple dependencies (#26326)
* chore: upgrade simple-git

* chore: upgrade axios

* chore: upgrade docusaurus

* chore: upgrade docusaurus family

* chore: yarn.lock

* chore: upgrade styled-components

* chore: upgrade yaml

* chore: bump fast-uri in pinned deps

* chore: bump axios in cloud plugin

* chore: remove unnecessary ts error suppression

* chore: align docusaurus packages

* chore: yarn.lock

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Jamie Howard <jhoward1994@gmail.com>
2026-05-15 08:52:31 +01:00
Ben Irvin e73364c31b fix(upgrade): align scoped @strapi packages in devDependencies (#26248) 2026-05-14 10:37:05 +02:00
Mark Kaylor 83fec11da9 Merge remote-tracking branch 'origin/main' into develop 2026-05-13 19:12:11 +02:00
markkaylor 7f34c4b7d9 release: 5.46.0 2026-05-13 13:39:32 +00:00
Ben Irvin 4648a4c3e5 fix(upgrade): use pnpm install when project prefers pnpm (#26246)
* fix(upgrade): use pnpm install when project prefers pnpm

Extend @strapi/utils package manager support to include pnpm. The upgrade CLI
then runs pnpm install instead of incorrectly defaulting to npm on pnpm
projects.

Resolve the NPM registry in @strapi/upgrade via pnpm config when pnpm is
preferred.

Fix #23927

* fix: supported package  managers
2026-05-12 12:56:58 +00:00
Andrei L b5452ab89f chore(eslint): migrate .eslintrc + .eslintignore to .eslintrc.cjs (#26216)
* chore(eslint): migrate .eslintrc + .eslintignore to .eslintrc.cjs

Consolidates the per-package ESLint setup into a single typed
`.eslintrc.cjs` file across the monorepo (177 files touched).

Why
- `.eslintignore` is removed in ESLint v9/v10. Folding ignore patterns
  into `ignorePatterns` inside the rc file is the supported migration
  path and unblocks future ESLint upgrades (which will likely be needed
  alongside the in-flight TypeScript 6 migration).
- `.cjs` extension is explicit about module format, so the configs keep
  working if any package later adopts `"type": "module"` (no CJS/ESM
  surprises).
- Wrapping each config in `// @ts-check` + a `Linter.Config`-typed
  `const config` block gives editor autocomplete and catches typos.
  Surfaced two real duplicates in
  `eslint-config-custom/back/typescript.js`
  (`node/no-unsupported-features/es-syntax`,
  `node/no-missing-import`), now deduplicated.
- `extends` references switched from the `custom/*` shorthand to the
  explicit `eslint-config-custom/*` package name. ESLint resolves both,
  but the explicit form makes the source unambiguous.
- Added `coverage/` to `ignorePatterns` so coverage output produced
  inside a workspace is not linted.

Misc
- `examples/kitchensink` had ESLint configured but no `lint` script;
  added one so the config actually runs.
- `nx.json` hash inputs updated:
  - removed `.eslintignore` (no longer exists)
  - replaced `{projectRoot}/.eslintrc.js` with
    `{projectRoot}/**/.eslintrc.cjs` so nested package configs are also
    part of the cache key (the previous glob missed them).
- `packages/utils/upgrade/tsconfig.eslint.json` include path updated
  from `.eslintrc.js` to `.eslintrc.cjs`.

Verification
- `eslint --print-config` resolves cleanly on sampled back/front
  packages (admin, users-permissions, upload).
- Full `pnpm -r lint` is clean.

* chore(eslint): set tsconfigRootDir for vscode-eslint typed linting

CLI lint resolved tsconfig paths via cwd, but vscode-eslint runs from
the workspace root and could not locate per-package tsconfigs. Set
parserOptions.tsconfigRootDir to __dirname in each package's
.eslintrc.cjs so the editor resolves typed-lint configs correctly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* chore(eslint): self-ignore configs, scope coverage to jest packages

- Replace `env: { es6: true }` workaround with `.eslintrc.cjs` in
  ignorePatterns so eslint never lints the config file itself
  (root cause of the "const is not a keyword" parse error in es5)
- Add `.eslintrc.cjs` to ignorePatterns across all configs that
  were missing it
- Restrict `coverage/` ignorePatterns to workspace roots that
  actually run jest; drop from non-test packages and admin/server
  subdir configs (tests run from the workspace root)
2026-05-12 07:32:12 +00:00
jhoward1994 9300041094 release: 5.45.1 2026-05-11 10:41:36 +00:00
Bassel17 c5bc749fee release: 5.45.0 2026-05-06 10:06:46 +00: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
Ben Irvin ac6cd0063c chore(deps): bump multiple dependencies (#26103)
dotenv: 16.4.5 → 16.6.1
fs-extra: 11.2.0 → 11.3.4
semver: 7.5.4 → 7.7.4
typescript: 5.4.4 → 5.4.5
esbuild-loader: 4.3.0 → 4.4.3
esbuild-register: 3.5.0 → 3.6.0
grant: ^5.4.8 → 5.4.24 (pinned)
markdown-it: ^13.0.2 → 14.1.1
2026-04-24 13:11:54 +01:00
nclsndr 14628987b5 release: 5.43.0 2026-04-22 14:30:40 +00:00
Ben Irvin bac520e9f8 fix(data-transfer): fix large transfer crashes; show transfer progress (#23479)
* enhancement: update progress per chunk

* fix: check stageprogress exists to make ts happy

* chore: split progress tracker into two methods

* test: fix lint

* enhancement: display readable times

* fix: speed indication for assets

* fix: restore speed indicator and fix double counting

* chore: clean up code

* fix: data transfer memory leak

* fix: yarn.lock

* chore: fix memory logging

* ci: complex project remote transfer

* enhancement: optimized transfer mode

* test(cli): data transfer and env passthrough

* chore: only send one message warning of legacy mode

* enhancement: show transfer totals and estimated time

* test(cli): fix deterministic transfer test files

* fix: push and pull shared utils backwards compatibility

* fix(data-transfer): extract legacy asset chunk parsing and tighten transfer logging/test coverage

* enhancement: checksum negotiation

* enhancement: show skipped file warnings on client

* fix: transfer diagnostics

* test: fix open handle

* fix: clear stall timeout for assets

* chore: fix misleading comments and variables

* test: fix misleading test

* test: fix typo

* test: make checks deterministic, less flaky

* enhancement(data-transfer): speed up asset totals; widen assets start reply window on remote pull

* fix(data-transfer): harden WebSocket JSON serialization for transfer frames

* fix(data-transfer): more transfer hardening

* test: fix test imports

* fix: await async write

* fix(data-transfer): resolve push transfer deadlock and harden async writes

- Extract createAssetsDestinationWritable so Writable callbacks run before
  uploadStream completes (same WS batch as PassThrough chunks).
- Add writable-async-write (write callback + drain/finished race; avoid hang
  on destroy).
- Wire push/pull, remote-source, file & directory sources to shared write().
- Fire-and-forget pull flush: Promise.resolve(flush).catch(onError); guard
  missing stream inside try.
- Add regression tests (assets writable, writable-async-write, handler checks).

* fix(data-transfer): write push stream batches sequentially

Use a for-loop with await write() instead of Promise.all over msg.data
so non-asset stages respect one in-flight write per objectMode Writable
and backpressure from writable-async-write.

- Validate minChunksForBackpressure in assertReadStreamBackpressure
- Add engine test for non-Buffer asset chunk byte progress (counts as 1)
- Assert push.ts keeps sequential msg.data handling in static handler test

* fix(data-transfer): align push streamAsset with remote-source and harden tests

- Push handler: combine stream/end under one branch, error when start is missing
  or action is invalid; shorten stage write comments.
- Engine version-matching tests: use a fresh createDestination() per engine so
  parallel transfers do not share destination writables (MaxListeners warnings).
- File destination tests: mock createWriteStream with a new Writable per call.
- CLI transfer tests: mock progress.stream so transfer::finish runs after transfer
  and clears the progress setInterval (fixes Jest worker hang).
- Misc test cleanup: assets-destination timeout clearTimeout, collect listeners,
  writable-async-write teardown; tighten push/static test descriptions.

* test: remove parity test

* fix(data-transfer): harden collect() and stabilize transfer tests

- collect(): settle once, remove listeners on resolve/reject, avoid double completion
- engine tests: add expectHeapGrowthWithinNoise for heap smoke checks
- CLI transfer tests: console spies in beforeAll; jest.restoreAllMocks in afterAll
- stream test: remove removeAllListeners workaround
2026-04-20 16:08:05 +02:00
Jamie Howard 399f2a89f2 Merge pull request #26041 from strapi/main
chore: release v5.42.1 update develop
2026-04-16 14:26:11 +01:00
Bellian 7c5332546b enhancement: strapi dev continue watching on build error (#25514)
* feat: strapi dev continue watching on error

* fix(strapi): await TS compile in build and harden develop watcher

Await tsUtils.compile during strapi build so failures are caught and
process still exits with 1. Add ensureWatcher guard to avoid duplicate
chokidar handlers when strapiInstance.start() throws after the watcher
is registered. Wrap cluster reload compile in try/catch with exit on
failure; fail loadStrapi spinner and normalize non-Error throws in the
develop catch path.

---------

Co-authored-by: Ben Irvin <ben@innerdvations.com>
Co-authored-by: Ben Irvin <ben.irvin@strapi.io>
2026-04-15 15:42:16 +00:00
jhoward1994 4709832272 release: 5.42.1 2026-04-15 11:13:30 +00:00
dependabot[bot] 08a7283a16 chore(deps): bump undici from 6.24.1 to 6.25.0 (#26022)
Bumps [undici](https://github.com/nodejs/undici) from 6.24.1 to 6.25.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v6.24.1...v6.25.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 6.25.0
  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-15 09:10:05 +02: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
markkaylor e86a5190a5 release: 5.42.0 2026-04-08 12:14:52 +00:00
dependabot[bot] 981e5cfb32 chore(deps): bump simple-git from 3.21.0 to 3.32.3 (#25704) 2026-04-01 14:29:05 +02:00
dependabot[bot] 42bc519480 chore(deps): bump undici from 6.24.0 to 6.24.1 (#25785) 2026-04-01 13:34:33 +02: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
Ben Irvin 353a86a60d security: package upgrades to remove deprecated versions of boolean, tar, and glob (#25776)
* chore: upgrade tar, global-agent, dedupe yarn.lock

This removes the deprecated packages: boolean, tar<7, node-gyp<12, and others

* chore: upgrade inquirer, file-type, jscodeshift, supertest

* chore: update better-sqlite3

* chore: upgrade pg and mysql2

* fix: use dynamic imports for inquirer esm only

* test(cli): add create-strapi-app test

* test(cli): add scaffold cases

* chore: upgrade to rimraf 6.1.3

* chore: dedupe yarn.lock

* security: update jwk-to-pem

* chore: dedupe yarn.lock

* chore: align inquirer version

* chore: yarn.lock

* test: fix inquirer imports

* test(cli): support zero apps

* test: fix back-end

* test(cli): fix inquirer and fs

* chore: remove accidental file

* chore: dedupe and upgrade pinned deps
2026-03-19 13:44:02 +01:00
dependabot[bot] 8ff7058b3b chore(deps): bump undici from 6.23.0 to 6.24.0 (#25731)
Bumps [undici](https://github.com/nodejs/undici) from 6.23.0 to 6.24.0.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v6.23.0...v6.24.0)

---
updated-dependencies:
- dependency-name: undici
  dependency-version: 6.24.0
  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-03-18 17:18:03 +01:00
Adrien L ba17962b42 release: 5.40.0 2026-03-18 16:21:08 +01:00
Adzouz e1cdebd2a5 release: 5.40.0 2026-03-18 13:25:35 +00:00
Ben Irvin 38049559a0 fix: use strapi.fetch for remote uploads (#25661) 2026-03-18 12:34:39 +01: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
Ben Irvin 149af9e5e1 chore: remove eslint-plugin-rxjs (#25612) 2026-03-05 12:20:27 +00:00
dependabot[bot] 8d98416eff chore(deps): bump qs from 6.14.2 to 6.15.0 (#25555)
Bumps [qs](https://github.com/ljharb/qs) from 6.14.2 to 6.15.0.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.14.2...v6.15.0)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.15.0
  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-03-04 16:24:46 +00:00
Mark Kaylor 51f8d168f0 Merge remote-tracking branch 'origin/main' into develop 2026-03-04 15:13:27 +01:00
markkaylor 29f5741e96 release: 5.38.0 2026-03-04 13:09:53 +00:00
Ben Irvin 484b494b02 security(upload): improve mimetype detection for uploads (#25177) 2026-03-04 10:39:09 +01:00
Nico André d7981bd752 chore(*): register vitest dependency in Yarn catalog (#25400) 2026-03-03 13:19:53 +00:00
Bassel17 e7bb15d0fd release: 5.37.1 2026-02-26 14:50:27 +00:00
innerdvations c18dbf7892 release: 5.37.0 2026-02-26 08:27:53 +00:00
Ben Irvin 7786d4dcde fix: feature works and rename addBodyParams to addInputParams (#25552)
* fix: add params actually works

* fix: rename addInputParams

* test: fix register timing

* chore: update getstarted

* test(api): remove ai comment

* revert: do not merge in type unneccessarily

* revert: do not add type to route
2026-02-25 17:34:56 +01:00
Bassel Kanso 741c748589 Merge branch 'main' into develop 2026-02-19 17:14:36 +02:00