* 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)
* feat(releases): add release column to CM list view (#19926)
* draft: bulk release injection zone added
* chore: implement cm-api to strapi-app & description component renderer
* feat: bulk delete action
* Revert "draft: bulk release injection zone added"
This reverts commit 2d9e8872e8.
* feat: bulk unpublish action added
* feat: default bulk publish action
* fix: variable renaming
* fix: on close of modal updated and refetched list on publish action completion
* fix: removed IZ publish and unpublish modals, e2e tests added for default bulk actions
* tests: e2e updated for publish button disabled state
* fix: bug fixed on publishing with already published entries
* fix: e2e tests
* fix: reverted IZ components
* feat: bulk release action added
* update: check right permissions to show add to release button
* update: bulk actions modal updated to accept content(modalbody+modalfooter), publish action and release actions updated accordingly
* fix: types
* test: bulk release e2e test added
* fix: e2e test
* fix: test case timeout added, notification component updated to not saved message
* feat: inject release column in LV
* fix: minor changes
* fix: remove commented code
* fix: upgraded styled components to fix the error: defaultProps circularly references
* feat(content-releases): add to be released in column in list view
* fix: types and 0 releases entry
* fix: invalidate entries in release after bulk release or on deleting a release action
* tests: e2e tests added for release column
* tests: e2e updated to create new release and then add bulk release
* fix: minor changes, test fixed
* fix: delete release action invalite tag added back
* fix: e2e test
* apply josh feedback|
---------
Co-authored-by: Josh <37798644+joshuaellis@users.noreply.github.com>
Co-authored-by: Fernando Chavez <fernando.chavez@strapi.io>
* chore(deps): revert sharp to 0.32.6 (#20066)
* fix: fix boot issue when removing i18n from an app
* chore: get i18n service outside the for loop
* chore: remove empty spaces
* v4.23.0
---------
Co-authored-by: Madhuri Sandbhor <madhurisandbhor@gmail.com>
Co-authored-by: Josh <37798644+joshuaellis@users.noreply.github.com>
Co-authored-by: Fernando Chavez <fernando.chavez@strapi.io>
Co-authored-by: markkaylor <mark.kaylor@strapi.io>
Co-authored-by: Alexandre BODIN <alexandrebodin@users.noreply.github.com>