diff --git a/.gitignore b/.gitignore index eaddaafd2ad..612bcbca12c 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ docs/api/output.json yarn.lock package-lock.json coverage/ +coverage-vitest/ # Files associated with specific development environments. .DS_Store diff --git a/package.json b/package.json index b4fc99efdf5..605294583aa 100644 --- a/package.json +++ b/package.json @@ -36,17 +36,17 @@ "devDependencies": { "@babel/parser": "^7.23.3", "@ckbox/uploader": "2.11.0", - "@ckeditor/ckeditor5-dev-build-tools": "^55.0.0", - "@ckeditor/ckeditor5-dev-bump-year": "^55.0.0", - "@ckeditor/ckeditor5-dev-changelog": "^55.0.0", - "@ckeditor/ckeditor5-dev-ci": "^55.0.0", - "@ckeditor/ckeditor5-dev-dependency-checker": "^55.0.0", - "@ckeditor/ckeditor5-dev-docs": "^55.0.0", - "@ckeditor/ckeditor5-dev-license-checker": "^55.0.0", - "@ckeditor/ckeditor5-dev-release-tools": "^55.0.0", - "@ckeditor/ckeditor5-dev-stale-bot": "^55.0.0", - "@ckeditor/ckeditor5-dev-tests": "^55.0.0", - "@ckeditor/ckeditor5-dev-web-crawler": "^55.0.0", + "@ckeditor/ckeditor5-dev-build-tools": "^55.2.0", + "@ckeditor/ckeditor5-dev-bump-year": "^55.2.0", + "@ckeditor/ckeditor5-dev-changelog": "^55.2.0", + "@ckeditor/ckeditor5-dev-ci": "^55.2.0", + "@ckeditor/ckeditor5-dev-dependency-checker": "^55.2.0", + "@ckeditor/ckeditor5-dev-docs": "^55.2.0", + "@ckeditor/ckeditor5-dev-license-checker": "^55.2.0", + "@ckeditor/ckeditor5-dev-release-tools": "^55.2.0", + "@ckeditor/ckeditor5-dev-stale-bot": "^55.2.0", + "@ckeditor/ckeditor5-dev-tests": "^55.2.0", + "@ckeditor/ckeditor5-dev-web-crawler": "^55.2.0", "@ckeditor/ckeditor5-inspector": "^5.0.0", "@ckeditor/ckeditor5-mermaid": "ckeditor/ckeditor5-mermaid#v0.0.6", "@ckeditor/ckeditor5-react": "^9.5.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 76a8de93fc4..f1143c21e98 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,38 +27,38 @@ importers: specifier: 2.11.0 version: 2.11.0(@types/node@25.3.0)(jiti@2.6.1)(lightningcss@1.32.0)(sass@1.93.2)(terser@5.46.0)(yaml@2.8.1) '@ckeditor/ckeditor5-dev-build-tools': - specifier: ^55.0.0 - version: 55.0.0(postcss@8.5.6)(tslib@2.8.1)(typescript@5.5.4) + specifier: ^55.2.0 + version: 55.2.0(postcss@8.5.6)(tslib@2.8.1)(typescript@5.5.4) '@ckeditor/ckeditor5-dev-bump-year': - specifier: ^55.0.0 - version: 55.0.0 + specifier: ^55.2.0 + version: 55.2.0 '@ckeditor/ckeditor5-dev-changelog': - specifier: ^55.0.0 - version: 55.0.0(@babel/core@7.28.4)(@types/node@25.3.0)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) + specifier: ^55.2.0 + version: 55.2.0(@babel/core@7.28.4)(@types/node@25.3.0)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) '@ckeditor/ckeditor5-dev-ci': - specifier: ^55.0.0 - version: 55.0.0 + specifier: ^55.2.0 + version: 55.2.0 '@ckeditor/ckeditor5-dev-dependency-checker': - specifier: ^55.0.0 - version: 55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) + specifier: ^55.2.0 + version: 55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) '@ckeditor/ckeditor5-dev-docs': - specifier: ^55.0.0 - version: 55.0.0(typescript@5.5.4) + specifier: ^55.2.0 + version: 55.2.0(typescript@5.5.4) '@ckeditor/ckeditor5-dev-license-checker': - specifier: ^55.0.0 - version: 55.0.0 + specifier: ^55.2.0 + version: 55.2.0 '@ckeditor/ckeditor5-dev-release-tools': - specifier: ^55.0.0 - version: 55.0.0(@babel/core@7.28.4)(@types/node@25.3.0)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) + specifier: ^55.2.0 + version: 55.2.0(@babel/core@7.28.4)(@types/node@25.3.0)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) '@ckeditor/ckeditor5-dev-stale-bot': - specifier: ^55.0.0 - version: 55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) + specifier: ^55.2.0 + version: 55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) '@ckeditor/ckeditor5-dev-tests': - specifier: ^55.0.0 - version: 55.0.0(@swc/core@1.13.5)(esbuild@0.25.10) + specifier: ^55.2.0 + version: 55.2.0(@swc/core@1.13.5)(esbuild@0.25.10) '@ckeditor/ckeditor5-dev-web-crawler': - specifier: ^55.0.0 - version: 55.0.0(typescript@5.5.4) + specifier: ^55.2.0 + version: 55.2.0(typescript@5.5.4) '@ckeditor/ckeditor5-inspector': specifier: ^5.0.0 version: 5.0.0 @@ -4323,62 +4323,62 @@ packages: '@ckbox/uploader@2.11.0': resolution: {integrity: sha512-joskUAalQIBDF0bvRpDBQDxQteVqUrU7Fvx+peQy+0Al/Cj5bzkSZlkChMBPAPsc6HqZyuNfaAN+CSO5sCHt0A==} - '@ckeditor/ckeditor5-dev-build-tools@55.0.0': - resolution: {integrity: sha512-7B0njsGc+rQFkmGnszGZQmn8V9dJnhFv8yIUxom7/y+cIIM+WDJUuXh7C/ahjW/fiMnyql6h8zYsDmbfTzhEvA==} + '@ckeditor/ckeditor5-dev-build-tools@55.2.0': + resolution: {integrity: sha512-pUa3GqCOEb7m5xhbUPV6gKLIgsX/TI3MXT51u0wa+A822ZFVbaXoGd2LissPkuK9WcGfmgU1gT8TzcyFTCTYig==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} hasBin: true - '@ckeditor/ckeditor5-dev-bump-year@55.0.0': - resolution: {integrity: sha512-o9LewJMw3ma3M0F4JAv5Zpfd1/Ut9FQinnLAdf3dJP4Vz6PjoJHevPDMbE1vt9mzMniTt5jAUrPdIlAHao3xtg==} + '@ckeditor/ckeditor5-dev-bump-year@55.2.0': + resolution: {integrity: sha512-wP8YgItcwRZgYR68y5ikQg32d3TKo/JkvvrwuPFBmEsQ/6DduNEaPQGeW5EzOnPj8hydAwCKswgCroVr7RBSVg==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} - '@ckeditor/ckeditor5-dev-changelog@55.0.0': - resolution: {integrity: sha512-tGv2kHBMvd9hrUESuEFDXlHPGOsKYXahgofnvIVwfRRWYvrpMjZoQX80C7S0KO12s8cBviK+VFGUd4u1dudLsw==} + '@ckeditor/ckeditor5-dev-changelog@55.2.0': + resolution: {integrity: sha512-2M9aXE9sEGhUxDJjunTcTILSJFtlLQcnMlK/UOyZWiGCG3iLRErC1DE7HpUad6x7F20MGWNNF9ddD0FUbLaVag==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} hasBin: true - '@ckeditor/ckeditor5-dev-ci@55.0.0': - resolution: {integrity: sha512-LrwcVTACyhOktd5BdSnKfBPi8eUubd28zGO4VPQfhvAsVgZA4KZg7szB1j7D6G1qX86w6NuKHBx6FNYgORTnPA==} + '@ckeditor/ckeditor5-dev-ci@55.2.0': + resolution: {integrity: sha512-fysmC2vIm0CtUjYL0wX/t4ePLWhIw5icnjKDsrnpFRIeWi1EOlNcSxw0Ul5IxBAm2rqXjjZWFKcn6kRTxqzqkw==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} hasBin: true - '@ckeditor/ckeditor5-dev-dependency-checker@55.0.0': - resolution: {integrity: sha512-+pIh5IfBQXMySBG5kQ2miubTXA7e/IE54Ot/Oiwf7eRm/A0lpa7J3s2Ndnfus/R3nNJF77SoFnVTcOQBF2VhNQ==} + '@ckeditor/ckeditor5-dev-dependency-checker@55.2.0': + resolution: {integrity: sha512-mZdOniDO/ZuYmrLu4nsisk+8YFfyvI+pOzAgsksrYUdG1E5m6sqR1dHMqqyC6ZC2bAotacjp61FyCfoIvSQe8g==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} hasBin: true - '@ckeditor/ckeditor5-dev-docs@55.0.0': - resolution: {integrity: sha512-UUTbsLvMLouObmE7CVWX1a0gwCdZWV0SOj28ULYYh+VP0BI7ZkpT6o81kycddff9b2XyZfYQ5nSuYPf0fpxRmA==} + '@ckeditor/ckeditor5-dev-docs@55.2.0': + resolution: {integrity: sha512-fSvO4j4cZbV8yU1obDlosZ4BE1/22DrDjPne7HCDkqYzEBuQscMGUnZPwX9YWPsgZ2LlrXKpn6Tcky1TLuDfLw==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} - '@ckeditor/ckeditor5-dev-license-checker@55.0.0': - resolution: {integrity: sha512-CGmNAVKJPOxXrRN/jJHh8c0AfS62TcpNQMd7FitgEBCIM2m408lO3XPO6MWjp6WPBaMH+6XIMTTeRYlybQMTFQ==} + '@ckeditor/ckeditor5-dev-license-checker@55.2.0': + resolution: {integrity: sha512-hEeaXmYCScAIW9cmiKmZaR3KXjMkGfGI1832+a6COIYp4XGbrPehIm7JaeeJmmD8iHyfWm4PvMl3kXBOs+HJOw==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} - '@ckeditor/ckeditor5-dev-release-tools@55.0.0': - resolution: {integrity: sha512-0tErAjSx+JX6SxV9Zb/LeC3ni9cdVzel21SmKnb9QE3GKAVVrUxaYE4Fa3t5f4u5ovNSxWFIH9hMWBwBMo1YgQ==} + '@ckeditor/ckeditor5-dev-release-tools@55.2.0': + resolution: {integrity: sha512-tCmqgI4U56mQW1buhcd90rKWxq5s75gC1OyNS5fv1JaWGh2ps2tWTSZSfm43dQsIoLg1glWdxOJSG5X8grBPqA==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} - '@ckeditor/ckeditor5-dev-stale-bot@55.0.0': - resolution: {integrity: sha512-Ll01PJQGq0YewWARPzNATOkeLpjUaarvW44BzX9Gw11i0p4uXYzAye4pW4D8NLEqUUh4fah/F+sTXx0N4JxjGA==} + '@ckeditor/ckeditor5-dev-stale-bot@55.2.0': + resolution: {integrity: sha512-W8tJJuPJtJCAxKeNInHEGEDaBkuXYYzVLOUBDMIep2C8/Q/g6ZiX/bNhAAnMXd+vseWrxhA3WEUpnORY4eC2ug==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} hasBin: true - '@ckeditor/ckeditor5-dev-tests@55.0.0': - resolution: {integrity: sha512-qgIyZWdx0b/k8wxsnoGdEO4PzfHYovxX07tRYFP8Luq3cOCybDGxu+VEyvEQb096j5CLWu80/oEGGH5qjJxjMg==} + '@ckeditor/ckeditor5-dev-tests@55.2.0': + resolution: {integrity: sha512-mxi6FcDRpO7/EvAE2hrALnm5xK5KEg/BDoXW0JNmNF7RR8z0tlNFD+E6Y8ifdmqdCDXW/ZCw27D1NV02R7bsqw==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} hasBin: true - '@ckeditor/ckeditor5-dev-translations@55.0.0': - resolution: {integrity: sha512-IVe0kR343OyCtCbK1xZ6Hy6xiOOUGSpevk4Q9FNrr13s1Jl4h2lWs7Vqzjdo7ihqCujktAAC9A8udgh2zBfeXw==} + '@ckeditor/ckeditor5-dev-translations@55.2.0': + resolution: {integrity: sha512-qjEgm9yAgAgUPbScrPRQ6rF4ffdgibMIJqDF9rQkZtstbl4bSc44sQs6trItrPl4ohKjDTF+eiZBKoOc5MMDiA==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} - '@ckeditor/ckeditor5-dev-utils@55.0.0': - resolution: {integrity: sha512-xyvn/+ZIcl0RJAqCUZj43rudUmPVOgpN2OgdAlO4YC2z7binUmdmKKqijFmkUqsBdpC3p7VY4Xjrv7qbwNFavA==} + '@ckeditor/ckeditor5-dev-utils@55.2.0': + resolution: {integrity: sha512-ymt09EKAhNcWqMXaRng1Apx88Px0fsuv31Y/9fXFRjEsYOUVCgevtwOCg3AvgnqSi1THMipaUEbFO7JMQKLM7g==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} - '@ckeditor/ckeditor5-dev-web-crawler@55.0.0': - resolution: {integrity: sha512-7MInM6RGj+eGeT6o6GVwR3VGWV/WxhW8ViBZSDF1ha17bVJq758U8o4hmklO2eVGUEfk6c4hVPuIOnt90MDxQQ==} + '@ckeditor/ckeditor5-dev-web-crawler@55.2.0': + resolution: {integrity: sha512-FmpX2aS79HLKMZIMbb25/t5xsZKaFURv2b/VrlyxmPGE2pKI7S5XY8/uRrl4CURb5jpy12xPpCMp6ZQfwZoqCg==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} '@ckeditor/ckeditor5-inspector@5.0.0': @@ -4404,8 +4404,8 @@ packages: ckeditor5: '>=42.0.0 || ^0.0.0-nightly' react: ^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@ckeditor/typedoc-plugins@55.0.0': - resolution: {integrity: sha512-9NhVFj4ROH5D4De+h3bR56Q2cpUorTxwsIuRFm8SaodRt3OcrNYdiYqtXkt7gXjKq4GHELyiMxlwtqMbN/wfIw==} + '@ckeditor/typedoc-plugins@55.2.0': + resolution: {integrity: sha512-BZgGtr7kD6PVenbzW2q1/IbuAAmS02buDZgTlU/Ysi1t2ni6pdtzlIEjHun9Rz3pNFi098/dEgQsgeCXZnMaww==} engines: {node: '>=24.11.0', npm: '>=5.7.1'} peerDependencies: typedoc: ^0.28.14 @@ -5614,6 +5614,30 @@ packages: cpu: [x64] os: [win32] + '@sentry-internal/tracing@7.120.4': + resolution: {integrity: sha512-Fz5+4XCg3akeoFK+K7g+d7HqGMjmnLoY2eJlpONJmaeT9pXY7yfUyXKZMmMajdE2LxxKJgQ2YKvSCaGVamTjHw==} + engines: {node: '>=8'} + + '@sentry/core@7.120.4': + resolution: {integrity: sha512-TXu3Q5kKiq8db9OXGkWyXUbIxMMuttB5vJ031yolOl5T/B69JRyAoKuojLBjRv1XX583gS1rSSoX8YXX7ATFGA==} + engines: {node: '>=8'} + + '@sentry/integrations@7.120.4': + resolution: {integrity: sha512-kkBTLk053XlhDCg7OkBQTIMF4puqFibeRO3E3YiVc4PGLnocXMaVpOSCkMqAc1k1kZ09UgGi8DxfQhnFEjUkpA==} + engines: {node: '>=8'} + + '@sentry/node@7.120.4': + resolution: {integrity: sha512-qq3wZAXXj2SRWhqErnGCSJKUhPSlZ+RGnCZjhfjHpP49KNpcd9YdPTIUsFMgeyjdh6Ew6aVCv23g1hTP0CHpYw==} + engines: {node: '>=8'} + + '@sentry/types@7.120.4': + resolution: {integrity: sha512-cUq2hSSe6/qrU6oZsEP4InMI5VVdD86aypE+ENrQ6eZEVLTCYm1w6XhW1NvIu3UuWh7gZec4a9J7AFpYxki88Q==} + engines: {node: '>=8'} + + '@sentry/utils@7.120.4': + resolution: {integrity: sha512-zCKpyDIWKHwtervNK2ZlaK8mMV7gVUijAgFeJStH+CU/imcdquizV3pFLlSQYRswG+Lbyd6CT/LGRh3IbtkCFw==} + engines: {node: '>=8'} + '@shikijs/core@3.13.0': resolution: {integrity: sha512-3P8rGsg2Eh2qIHekwuQjzWhKI4jV97PhvYjYUzGqjvJfqdQPz+nMlfWahU24GZAyW1FxFI1sYjyhfh5CoLmIUA==} @@ -6501,6 +6525,10 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -7328,6 +7356,9 @@ packages: detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} @@ -7936,6 +7967,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + global-modules@1.0.0: resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} engines: {node: '>=0.10.0'} @@ -7964,6 +7999,10 @@ packages: resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} engines: {node: '>=18'} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -8260,6 +8299,9 @@ packages: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + immutable@5.1.5: resolution: {integrity: sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==} @@ -8772,6 +8814,9 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lie@3.1.1: + resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} + lightningcss-android-arm64@1.32.0: resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} engines: {node: '>= 12.0.0'} @@ -8890,6 +8935,9 @@ packages: engines: {node: '>=12.20'} hasBin: true + localforage@1.10.0: + resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -9115,6 +9163,10 @@ packages: engines: {node: '>= 20'} hasBin: true + matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -10455,6 +10507,10 @@ packages: engines: {node: 20 || >=22} hasBin: true + roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} + robust-predicates@3.0.2: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} @@ -10549,6 +10605,10 @@ packages: engines: {node: '>=10'} hasBin: true + serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + serialize-javascript@7.0.4: resolution: {integrity: sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==} engines: {node: '>=20.0.0'} @@ -10679,6 +10739,11 @@ packages: smob@1.5.0: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + snyk@1.1303.1: + resolution: {integrity: sha512-VJzv3rgdb9MNM/d6BlJFWrnxNaskUyHbOrWaujoXhnpTAccDgkF6G60v5VIrjey3KHLpwZxMA2akoyB1zvfFVw==} + engines: {node: '>=12'} + hasBin: true + socket.io-adapter@2.5.5: resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} @@ -11077,6 +11142,10 @@ packages: resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} engines: {node: '>=4'} + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + type-fest@0.8.1: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} @@ -12437,7 +12506,7 @@ snapshots: - tsx - yaml - '@ckeditor/ckeditor5-dev-build-tools@55.0.0(postcss@8.5.6)(tslib@2.8.1)(typescript@5.5.4)': + '@ckeditor/ckeditor5-dev-build-tools@55.2.0(postcss@8.5.6)(tslib@2.8.1)(typescript@5.5.4)': dependencies: '@rollup/plugin-commonjs': 28.0.6(rollup@4.59.0) '@rollup/plugin-json': 6.1.0(rollup@4.59.0) @@ -12466,18 +12535,18 @@ snapshots: - tslib - typescript - '@ckeditor/ckeditor5-dev-bump-year@55.0.0': + '@ckeditor/ckeditor5-dev-bump-year@55.2.0': dependencies: glob: 13.0.0 - '@ckeditor/ckeditor5-dev-changelog@55.0.0(@babel/core@7.28.4)(@types/node@25.3.0)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10))': + '@ckeditor/ckeditor5-dev-changelog@55.2.0(@babel/core@7.28.4)(@types/node@25.3.0)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10))': dependencies: - '@ckeditor/ckeditor5-dev-utils': 55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) + '@ckeditor/ckeditor5-dev-utils': 55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) date-fns: 4.1.0 glob: 13.0.0 gray-matter: 4.0.3 inquirer: 12.9.6(@types/node@25.3.0) - semver: 7.7.2 + semver: 7.7.4 upath: 2.0.1 transitivePeerDependencies: - '@babel/core' @@ -12486,14 +12555,15 @@ snapshots: - supports-color - webpack - '@ckeditor/ckeditor5-dev-ci@55.0.0': + '@ckeditor/ckeditor5-dev-ci@55.2.0': dependencies: '@octokit/rest': 22.0.0 slack-notify: 2.0.7 + snyk: 1.1303.1 - '@ckeditor/ckeditor5-dev-dependency-checker@55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10))': + '@ckeditor/ckeditor5-dev-dependency-checker@55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10))': dependencies: - '@ckeditor/ckeditor5-dev-utils': 55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) + '@ckeditor/ckeditor5-dev-utils': 55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) depcheck: 1.4.7 glob: 13.0.0 minimist: 1.2.8 @@ -12506,9 +12576,9 @@ snapshots: - supports-color - webpack - '@ckeditor/ckeditor5-dev-docs@55.0.0(typescript@5.5.4)': + '@ckeditor/ckeditor5-dev-docs@55.2.0(typescript@5.5.4)': dependencies: - '@ckeditor/typedoc-plugins': 55.0.0(typedoc@0.28.14(typescript@5.5.4)) + '@ckeditor/typedoc-plugins': 55.2.0(typedoc@0.28.14(typescript@5.5.4)) glob: 13.0.0 typedoc: 0.28.14(typescript@5.5.4) typedoc-plugin-rename-defaults: 0.7.3(typedoc@0.28.14(typescript@5.5.4)) @@ -12516,19 +12586,19 @@ snapshots: transitivePeerDependencies: - typescript - '@ckeditor/ckeditor5-dev-license-checker@55.0.0': + '@ckeditor/ckeditor5-dev-license-checker@55.2.0': dependencies: diff: 8.0.3 upath: 2.0.1 - '@ckeditor/ckeditor5-dev-release-tools@55.0.0(@babel/core@7.28.4)(@types/node@25.3.0)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10))': + '@ckeditor/ckeditor5-dev-release-tools@55.2.0(@babel/core@7.28.4)(@types/node@25.3.0)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10))': dependencies: - '@ckeditor/ckeditor5-dev-utils': 55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) + '@ckeditor/ckeditor5-dev-utils': 55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) '@octokit/rest': 22.0.0 cli-columns: 4.0.0 glob: 13.0.0 inquirer: 12.9.6(@types/node@25.3.0) - semver: 7.7.2 + semver: 7.7.4 shell-escape: 0.2.0 simple-git: 3.33.0 upath: 2.0.1 @@ -12539,9 +12609,9 @@ snapshots: - supports-color - webpack - '@ckeditor/ckeditor5-dev-stale-bot@55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10))': + '@ckeditor/ckeditor5-dev-stale-bot@55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10))': dependencies: - '@ckeditor/ckeditor5-dev-utils': 55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) + '@ckeditor/ckeditor5-dev-utils': 55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) date-fns: 4.1.0 graphql: 16.11.0 graphql-request: 7.2.0(graphql@16.11.0) @@ -12554,11 +12624,11 @@ snapshots: - supports-color - webpack - '@ckeditor/ckeditor5-dev-tests@55.0.0(@swc/core@1.13.5)(esbuild@0.25.10)': + '@ckeditor/ckeditor5-dev-tests@55.2.0(@swc/core@1.13.5)(esbuild@0.25.10)': dependencies: '@babel/core': 7.28.4 - '@ckeditor/ckeditor5-dev-translations': 55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) - '@ckeditor/ckeditor5-dev-utils': 55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) + '@ckeditor/ckeditor5-dev-translations': 55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) + '@ckeditor/ckeditor5-dev-utils': 55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) '@ckeditor/ckeditor5-inspector': 5.0.0 '@types/chai': 4.3.20 '@types/karma-sinon-chai': 2.0.6 @@ -12610,11 +12680,11 @@ snapshots: - utf-8-validate - webpack-cli - '@ckeditor/ckeditor5-dev-translations@55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10))': + '@ckeditor/ckeditor5-dev-translations@55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10))': dependencies: '@babel/parser': 7.29.0 '@babel/traverse': 7.29.0 - '@ckeditor/ckeditor5-dev-utils': 55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) + '@ckeditor/ckeditor5-dev-utils': 55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) glob: 13.0.0 plural-forms: 0.5.5 pofile: 1.1.4 @@ -12627,7 +12697,7 @@ snapshots: - supports-color - webpack - '@ckeditor/ckeditor5-dev-utils@55.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10))': + '@ckeditor/ckeditor5-dev-utils@55.2.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10))': dependencies: '@types/through2': 2.0.41 babel-loader: 10.0.0(@babel/core@7.28.4)(webpack@5.105.2(@swc/core@1.13.5)(esbuild@0.25.10)) @@ -12653,7 +12723,7 @@ snapshots: - supports-color - webpack - '@ckeditor/ckeditor5-dev-web-crawler@55.0.0(typescript@5.5.4)': + '@ckeditor/ckeditor5-dev-web-crawler@55.2.0(typescript@5.5.4)': dependencies: puppeteer: 24.39.1(typescript@5.5.4) puppeteer-cluster: 0.24.0(puppeteer@24.39.1(typescript@5.5.4)) @@ -12685,7 +12755,7 @@ snapshots: ckeditor5: link:packages/ckeditor5 react: 18.3.1 - '@ckeditor/typedoc-plugins@55.0.0(typedoc@0.28.14(typescript@5.5.4))': + '@ckeditor/typedoc-plugins@55.2.0(typedoc@0.28.14(typescript@5.5.4))': dependencies: typedoc: 0.28.14(typescript@5.5.4) upath: 2.0.1 @@ -13292,7 +13362,7 @@ snapshots: '@npmcli/fs@4.0.0': dependencies: - semver: 7.7.2 + semver: 7.7.4 '@npmcli/git@7.0.0': dependencies: @@ -13302,7 +13372,7 @@ snapshots: npm-pick-manifest: 11.0.1 proc-log: 5.0.0 promise-retry: 2.0.1 - semver: 7.7.2 + semver: 7.7.4 which: 5.0.0 '@npmcli/installed-package-contents@4.0.0': @@ -13319,7 +13389,7 @@ snapshots: hosted-git-info: 9.0.0 json-parse-even-better-errors: 4.0.0 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.4 validate-npm-package-license: 3.0.4 '@npmcli/promise-spawn@8.0.3': @@ -13677,6 +13747,38 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.59.0': optional: true + '@sentry-internal/tracing@7.120.4': + dependencies: + '@sentry/core': 7.120.4 + '@sentry/types': 7.120.4 + '@sentry/utils': 7.120.4 + + '@sentry/core@7.120.4': + dependencies: + '@sentry/types': 7.120.4 + '@sentry/utils': 7.120.4 + + '@sentry/integrations@7.120.4': + dependencies: + '@sentry/core': 7.120.4 + '@sentry/types': 7.120.4 + '@sentry/utils': 7.120.4 + localforage: 1.10.0 + + '@sentry/node@7.120.4': + dependencies: + '@sentry-internal/tracing': 7.120.4 + '@sentry/core': 7.120.4 + '@sentry/integrations': 7.120.4 + '@sentry/types': 7.120.4 + '@sentry/utils': 7.120.4 + + '@sentry/types@7.120.4': {} + + '@sentry/utils@7.120.4': + dependencies: + '@sentry/types': 7.120.4 + '@shikijs/core@3.13.0': dependencies: '@shikijs/types': 3.13.0 @@ -14168,7 +14270,7 @@ snapshots: fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.9 - semver: 7.7.2 + semver: 7.7.4 ts-api-utils: 2.1.0(typescript@5.5.4) typescript: 5.5.4 transitivePeerDependencies: @@ -14674,6 +14776,8 @@ snapshots: boolbase@1.0.0: {} + boolean@3.2.0: {} + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -15171,7 +15275,7 @@ snapshots: postcss-modules-scope: 3.2.1(postcss@8.5.6) postcss-modules-values: 4.0.0(postcss@8.5.6) postcss-value-parser: 4.2.0 - semver: 7.7.2 + semver: 7.7.4 optionalDependencies: webpack: 5.105.2(@swc/core@1.13.5)(esbuild@0.25.10) @@ -15569,7 +15673,7 @@ snapshots: require-package-name: 2.0.1 resolve: 1.22.11 resolve-from: 5.0.0 - semver: 7.7.2 + semver: 7.7.4 yargs: 16.2.0 transitivePeerDependencies: - supports-color @@ -15593,6 +15697,8 @@ snapshots: detect-node-es@1.1.0: {} + detect-node@2.1.0: {} + devlop@1.1.0: dependencies: dequal: 2.0.3 @@ -15690,7 +15796,7 @@ snapshots: '@one-ini/wasm': 0.1.1 commander: 10.0.1 minimatch: 9.0.9 - semver: 7.7.2 + semver: 7.7.4 ee-first@1.1.1: {} @@ -16274,6 +16380,15 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + global-agent@3.0.0: + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.7.4 + serialize-error: 7.0.1 + global-modules@1.0.0: dependencies: global-prefix: 1.0.2 @@ -16304,6 +16419,11 @@ snapshots: globals@16.4.0: {} + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -16722,6 +16842,8 @@ snapshots: ignore@7.0.5: {} + immediate@3.0.6: {} + immutable@5.1.5: {} import-fresh@3.3.1: @@ -16914,7 +17036,7 @@ snapshots: '@babel/parser': 7.29.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.7.2 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -17278,6 +17400,10 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lie@3.1.1: + dependencies: + immediate: 3.0.6 + lightningcss-android-arm64@1.32.0: optional: true @@ -17404,6 +17530,10 @@ snapshots: - '@75lb/nature' - supports-color + localforage@1.10.0: + dependencies: + lie: 3.1.1 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -17615,7 +17745,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.4 make-fetch-happen@14.0.3: dependencies: @@ -17682,6 +17812,10 @@ snapshots: marked@16.4.0: {} + matcher@3.0.0: + dependencies: + escape-string-regexp: 4.0.0 + math-intrinsics@1.1.0: {} mathml-tag-names@2.1.3: {} @@ -18262,7 +18396,7 @@ snapshots: make-fetch-happen: 14.0.3 nopt: 8.1.0 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.4 tar: 7.5.11 tinyglobby: 0.2.15 which: 5.0.0 @@ -18273,7 +18407,7 @@ snapshots: dependencies: growly: 1.3.0 is-wsl: 2.2.0 - semver: 7.7.2 + semver: 7.7.4 shellwords: 0.1.1 uuid: 8.3.2 which: 2.0.2 @@ -18300,7 +18434,7 @@ snapshots: npm-install-checks@7.1.2: dependencies: - semver: 7.7.2 + semver: 7.7.4 npm-normalize-package-bin@4.0.0: {} @@ -18310,7 +18444,7 @@ snapshots: dependencies: hosted-git-info: 9.0.0 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.4 validate-npm-package-name: 6.0.2 npm-packlist@10.0.2: @@ -18323,7 +18457,7 @@ snapshots: npm-install-checks: 7.1.2 npm-normalize-package-bin: 4.0.0 npm-package-arg: 13.0.0 - semver: 7.7.2 + semver: 7.7.4 npm-registry-fetch@19.0.0: dependencies: @@ -19365,6 +19499,15 @@ snapshots: glob: 11.1.0 package-json-from-dist: 1.0.1 + roarr@2.15.4: + dependencies: + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.4 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.3 + robust-predicates@3.0.2: {} rollup-plugin-svg-import@3.0.0(rollup@4.59.0): @@ -19489,6 +19632,10 @@ snapshots: semver@7.7.4: {} + serialize-error@7.0.1: + dependencies: + type-fest: 0.13.1 + serialize-javascript@7.0.4: {} serve-index-75lb@2.0.1: @@ -19675,6 +19822,11 @@ snapshots: smob@1.5.0: {} + snyk@1.1303.1: + dependencies: + '@sentry/node': 7.120.4 + global-agent: 3.0.0 + socket.io-adapter@2.5.5: dependencies: debug: 4.3.7 @@ -20145,6 +20297,8 @@ snapshots: type-detect@4.1.0: {} + type-fest@0.13.1: {} + type-fest@0.8.1: {} type-is@1.6.18: diff --git a/scripts/ci/check-unit-tests-for-package.mjs b/scripts/ci/check-unit-tests-for-package.mjs index a4185a818a0..2a255bc1c74 100644 --- a/scripts/ci/check-unit-tests-for-package.mjs +++ b/scripts/ci/check-unit-tests-for-package.mjs @@ -26,7 +26,9 @@ async function main() { const exitCode = checkCodeCoverage(); if ( coverageFile ) { - const matches = await glob( 'coverage/*/lcov.info' ); + // Karma writes to coverage//lcov.info, + // Vitest writes to coverage-vitest/lcov.info (merged into coverage/lcov.info by the test runner). + const matches = await glob( [ 'coverage/*/lcov.info', 'coverage-vitest/lcov.info' ] ); for ( const filePath of matches ) { const buffer = await fs.readFile( filePath ); @@ -80,7 +82,15 @@ function runTests( { packageName, checkCoverage, attempts = 3 } ) { } function checkCodeCoverage() { - execSync( 'cp coverage/*/coverage-final.json .nyc_output', { + // Karma writes coverage-final.json to coverage//, + // Vitest writes it to coverage-vitest/. Copy whichever exists + // with distinct names so nyc can merge both. + execSync( 'cp coverage/*/coverage-final.json .nyc_output/karma-coverage.json 2>/dev/null || true', { + cwd: process.cwd(), + stdio: 'inherit' + } ); + + execSync( 'cp coverage-vitest/coverage-final.json .nyc_output/vitest-coverage.json 2>/dev/null || true', { cwd: process.cwd(), stdio: 'inherit' } ); diff --git a/vitest.config.mjs b/vitest.config.mjs new file mode 100644 index 00000000000..ca9917b97f1 --- /dev/null +++ b/vitest.config.mjs @@ -0,0 +1,17 @@ +/** + * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. + * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options + */ + +import { defineConfig } from 'vitest/config'; + +export default defineConfig( { + test: { + projects: [ 'packages/*/vitest.config.mjs' ], + coverage: { + provider: 'v8', + reporter: [ 'text-summary', 'html', 'json', 'lcovonly' ], + reportsDirectory: 'coverage' + } + } +} );