From 6b92729d5345711518d0b3c81d10947616996dd6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 27 Oct 2026 00:56:23 +0000 Subject: [PATCH 1/2] chore(deps): update dependency @antfu/eslint-config to v10 --- pnpm-lock.yaml | 763 +++++++++++++++++++++----------------------- pnpm-workspace.yaml | 2 +- 2 files changed, 362 insertions(+), 403 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c21278..481cb9d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -174,8 +174,8 @@ catalogs: specifier: ^9.1.1 version: 9.1.1 '@antfu/eslint-config': - specifier: ^9.5.1 - version: 9.5.1 + specifier: ^10.0.0 + version: 10.0.0 '@octokit/plugin-rest-endpoint-methods': specifier: ^18.0.0 version: 18.0.0 @@ -207,7 +207,7 @@ importers: devDependencies: '@antfu/eslint-config': specifier: 'catalog:' - version: 9.5.1(@typescript-eslint/typescript-estree@8.70.0(typescript@5.9.3))(@typescript-eslint/utils@8.70.0(eslint@10.13.0)(typescript@5.9.3))(@vue/compiler-sfc@3.5.24)(eslint@10.13.0)(typescript@5.9.3)(vitest@5.0.5(@types/node@26.5.1)(vite@8.0.13(@types/node@26.5.1)(yaml@2.9.1))) + version: 10.0.0(@typescript-eslint/typescript-estree@8.72.0(typescript@5.9.3))(@typescript-eslint/utils@8.72.0(eslint@10.13.0)(typescript@5.9.3))(@vue/compiler-sfc@3.5.24)(eslint@10.13.0)(typescript@5.9.3)(vitest@5.0.5(@types/node@26.5.1)(vite@8.0.13(@types/node@26.5.1)(yaml@2.9.1))) '@typescript/native-preview': specifier: 'catalog:' version: 7.0.0-dev.20260707.2 @@ -355,8 +355,8 @@ packages: '@actions/io@3.0.2': resolution: {integrity: sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==} - '@antfu/eslint-config@9.5.1': - resolution: {integrity: sha512-BoQGe5lY9spYmGqtUOC6hWohxob4SNn+7o5nHsOXoLn+9vJqNGqC/2/vRoXbcOa3dT4Rx/ZV/Qkr6uf72KTbxQ==} + '@antfu/eslint-config@10.0.0': + resolution: {integrity: sha512-SwFOW3AHjzUAhWn56bycanHEeSV2LLkVvMLY14hoFNi5zYqfwf92mWj0wX/8p24iR8IwvRmsNwxMTXQZMcOsHQ==} hasBin: true peerDependencies: '@angular-eslint/eslint-plugin': ^21.1.0 @@ -425,8 +425,8 @@ packages: svelte-eslint-parser: optional: true - '@antfu/install-pkg@2.0.1': - resolution: {integrity: sha512-iCKVQcIC0e3oDxEfs3SHQGW+ovhBMZmS1TE+bTk50rVyMCBmCfClv7Qi3HQKlumYwvjb/iIMeWCW2i67q6kFfQ==} + '@antfu/install-pkg@2.1.0': + resolution: {integrity: sha512-sdg9NxU3zR4Mnawfbc/x6GB5Wf17WYud5qOuEuxXjaKpYpMkISSJEjItGebXJ2bQ4DIcly4NYH23mtkGJjvKUw==} '@babel/helper-string-parser@7.27.1': resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} @@ -451,16 +451,16 @@ packages: '@cacheable/utils@2.5.0': resolution: {integrity: sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==} - '@clack/core@1.4.3': - resolution: {integrity: sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==} + '@clack/core@1.5.1': + resolution: {integrity: sha512-iHTrHA8MtVuLl2TfZySmcKv1qO2PoyC9Z7pfSDozEuV5vtY3/wcOPKJXlqJ5Oq2Cx5DDGQGAMVx6HZfRRoVEbQ==} engines: {node: '>= 20.12.0'} - '@clack/prompts@1.7.0': - resolution: {integrity: sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==} + '@clack/prompts@1.8.1': + resolution: {integrity: sha512-dlT1m5e/0yUL0kRNcQn7yGLVThkgbB0Ga/1AmfDDC/8ik6AIiSf2QLQO2zPYvefsHP0aFgxO93cVLCCfDp7kzQ==} engines: {node: '>= 20.12.0'} - '@e18e/eslint-plugin@0.8.0': - resolution: {integrity: sha512-js/TeM+XJyoJ2Zk4if5uTEchv3MEbqugc9gLgq8YdB6Dy+LvwGACpQiAwcul0r4LUl0TvhuzAKUeIUPtGp2cew==} + '@e18e/eslint-plugin@0.8.1': + resolution: {integrity: sha512-OV3T7l0r52/IglskdAuoO+BJyzsCs7AcIHpwpBMlIMO0+3RHskM2h5MuHdLuesIhSRhwCURGMKtp/XwnfXrfxg==} peerDependencies: eslint: ^9.0.0 || ^10.0.0 oxlint: ^1.72.0 @@ -479,20 +479,33 @@ packages: '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + '@es-joy/escodegen@4.2.0': + resolution: {integrity: sha512-jWqqS3StW6vGwJeT8yu6alS4nipOBi3kD/pR63+9hG2NfGafCJ4viDME15mVf+fyupyptcUJDXfv63gFF5Gzfg==} + engines: {node: '>=6.0'} + hasBin: true + + '@es-joy/estraverse@7.1.1': + resolution: {integrity: sha512-h2d737iS0LFAqypZOmXizu54qAbHofI/RpD30Zom03O6BCXKHuFevWKPcGarZbGq82h7qSBb5G6kLdhTMO+caw==} + engines: {node: '>=4.0'} + + '@es-joy/jsdoccomment@0.62.0': + resolution: {integrity: sha512-yWi6sm7INEwnfS7IJvE0dU+RTrwzLPFcY7e7eGpu/l5Q9lWfQ2ROwZ0qVnc242jw2TUPsfHX3XMIISkGBv57RQ==} + engines: {node: '>=20.11.0'} + '@es-joy/jsdoccomment@0.92.0': resolution: {integrity: sha512-WivZqV5jPTYDQJgIMp0hTsyQESKYNY6yCJr4b0l84tYtQntkAMkc6zARh2vlRQyeg4aYHPUkCUDpvr2IWAiGpQ==} engines: {node: ^22.22.2 || >=24.15.0} - '@es-joy/jsdoccomment@0.97.0': - resolution: {integrity: sha512-EP8uoFfh6+GsdGCduYtmWAW0h7AO+Ayik9Vh5YbA2r/3N6lmJKkCNZX+q3QBXC1K6ixjQ/9igF2b7WVvLm063g==} + '@es-joy/jsdoccomment@1.0.0': + resolution: {integrity: sha512-jiVfUnvMioo3upHpAoxE4XkqfrL6nc/XQx7Uw7tQL6QbQDJcALm+fhdj6tjiORDF7uADJbTlmnYWR9DvJE/eiw==} engines: {node: ^22.22.2 || >=24.15.0} '@es-joy/resolve.exports@1.2.0': resolution: {integrity: sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g==} engines: {node: '>=10'} - '@eslint-community/eslint-plugin-eslint-comments@4.7.2': - resolution: {integrity: sha512-LF03qURSwEWm2dz5wtdDCzNk+7Opl0X7q6I3undsaIuNsEiNvRV3BCtqu14Q/6Pzg1tBj44LcxpW2EpSLZStZw==} + '@eslint-community/eslint-plugin-eslint-comments@4.8.1': + resolution: {integrity: sha512-vafrdi15JHBFh1qWOAucyJwlEEuhdoMof28jOdKdgnwZ7bXwd6v4wzHYSmAVLwnx0yc7bqAtfJ0EZQV1WAzV/Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 @@ -503,12 +516,6 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.12.2': resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -538,8 +545,8 @@ packages: resolution: {integrity: sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/css-tree@4.0.5': - resolution: {integrity: sha512-iPmijIAq4hlIJB86PYmY/fcZORHtjphSqICDbwuw32A/JmkhZQ/K/6TjHE03zqf3n5yABpVcbRAMG8Mi9ojy8g==} + '@eslint/css-tree@4.1.2': + resolution: {integrity: sha512-rVcxLmwSkEL3aWS3vAgsTRrQHoYE1b0XcgDtKHDJ92XOkyUpcbS/g0tUJKhvCtlEhYzgKBWsgDd+Z/aPhd166w==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/markdown@8.0.3': @@ -913,100 +920,67 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.70.0': - resolution: {integrity: sha512-/v8HZt6RlyIZxB3ntehELOcUcfxKPVGWXnQdJuHRmzrqgF8nQypcC/oxGW+Ot4VGKDq81XugPKxx0n5PBtf9PA==} + '@typescript-eslint/eslint-plugin@8.72.0': + resolution: {integrity: sha512-aysKgysPX9XOv/dk95UkvUDe++Q3n3dJPG9CEWT3RUccxfkPJ+Qn6nhKPDhZXU6Ofo9kgwGWwKyQCnZIXTgngg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.70.0 + '@typescript-eslint/parser': ^8.72.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.70.0': - resolution: {integrity: sha512-zYvrmj9Yxd63UGaXw+kdt6A0F0s0qveJyuatIM77bYC2DE4pgmg7a50u8LR7PRtXd0x+h+Tl3eXabGm06SWd3Q==} + '@typescript-eslint/parser@8.72.0': + resolution: {integrity: sha512-0O+x3ynciD6zuXb1CKSu165haQV6ey53DKhHHUnujP7U+XlltJG+/keT0Xhd1HXCze+IHf7Tvt39ovyepX/LNw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.66.0': - resolution: {integrity: sha512-7MthGPTt4BP69lSryqpqq8HQqxuzynssckL/jyDyk3+TNMQ3y2jFWkptCrktWvBrP+EH787Nl5N5Qpw7WZg+5g==} + '@typescript-eslint/project-service@8.72.0': + resolution: {integrity: sha512-bzHngBbmIgzj6TsTjVUCntGx6FFLgE7mPjpO0PzHycOaZHXqS43XnrkFIHRS16LLr/xO6FHSXG3GJFo/F4bSBQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.70.0': - resolution: {integrity: sha512-hFHbTNqhU9G+2eKFXCBVb1tjFT/LceiJ4+HfLO4pTpDI0KHi6iajpcFFkaSQ9gXmCh7n82A0PthaayEdN6mspQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/scope-manager@8.66.0': - resolution: {integrity: sha512-8TGcH25j9zqJ/IULB/ppyhRvxA8QYfFEZ7nfbg6/BN9spDgb8fPWQXlE5l8TWBL50EtUx007uZ1o9VOwrq2/9g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/scope-manager@8.70.0': - resolution: {integrity: sha512-8nP3Kwh5hlgZ4FicGvmznAmJe8UL4sdU8tLukrPaMuQmDuk4Y8xYfzu/aYZW4xT2JCgc7H/TpDI5cGlxcWJSqQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.66.0': - resolution: {integrity: sha512-9D5gLYZG4rOjcoag8MQ/fWI8WqA9wcPDyOGyWtWFhvM1lHRbliqUSPIY5J3zqCU1tvSwzXxnnjhQhz5Ne7mJ4g==} + '@typescript-eslint/scope-manager@8.72.0': + resolution: {integrity: sha512-JewPyJOYcXBSAS7PIgufscHOwZqhTGyBRiQJhhuDln66tMchxvvt7nJ90JKKIoOelmdHA3kAQbm9cEUHc4JSEA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/tsconfig-utils@8.70.0': - resolution: {integrity: sha512-adnkeeNq9Sq1sUf4+FRVc0KdgYghzsgFpZSQVZVvY0LCuUuN0FnQgyGzCJeC4fW1cdXseBAjU2EOqUIjbNcZUw==} + '@typescript-eslint/tsconfig-utils@8.72.0': + resolution: {integrity: sha512-0vbxCf7xLVPSjcOdm6eQbgViH8EDJ8xnl1laLT9yoqSz2YmcSfSg5Vdl0JUvZf6rcuJ0ZivJIuMD4edTg8obaA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.70.0': - resolution: {integrity: sha512-NUMKIhYVaVIVLnRL9CRt+VVcuLgSHUCpXn4/+K8wql+vdInUzvx8BjUO1oJ7cG9shjFJKtF8F8Hh2kCh3/KBVw==} + '@typescript-eslint/type-utils@8.72.0': + resolution: {integrity: sha512-gEXxmmbSTSOVTC37IYYvremOM31v+UN2W772bJxmVYPhAOPSUxtacyb7wkm1EhkYKU6KzFJsdU44DCV4to0LWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.66.0': - resolution: {integrity: sha512-H6gcYaSDOyvL3AD/jHUtUFo2jqGgn/F6nuyuZSu0QTesxL+cP4dQoIMrODRofuJC09g64+WgZ6tE19Y1N2YIFQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.70.0': resolution: {integrity: sha512-asTOIYhDg4zdzOScCyaytrsV3cR6B4ecPQlXw/dJIm7J/MZTtCtfVII9JD8Geh4jTCrK/Xe6cg5UevoleMcoJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.66.0': - resolution: {integrity: sha512-8/x4INiiQb10jGgXYD7116/zQ+OL84ZIFn0za68wwFHCanT/VLbBEroWht8RV8fn0/ZCAoazHLQgwUC0UQcDfg==} + '@typescript-eslint/types@8.72.0': + resolution: {integrity: sha512-Adfoy59kxNEjT5E5fnyrp7GpHYuWs8ONbdohu4ez6IU46qDq8LltG90tLmkucZB2uhYL8mqBjtXqGd8yhfjXqQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/typescript-estree@8.70.0': - resolution: {integrity: sha512-d9NmHMPEKQ7QCLLm1jI3zmoQBwT5KwFYjXBJ9ymZfKCUU+5rmTRykKAFvH5Qn/ZCds3CEAFS9OC9M/jkl0X2bA==} + '@typescript-eslint/typescript-estree@8.72.0': + resolution: {integrity: sha512-gwLfFgWcw15tN2KXDCJvxEOQjPn+P3j/n3eSqkZ5sX4VpW9Cosodr+tWwBZRvJT3TcKx6HnPRGZMCNAiP1Xhug==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.66.0': - resolution: {integrity: sha512-jasearZPolBw5NJNYGMwxzHMF83niVWmMU1VdHzG1CyfI2VS7f7nZltnKtHcg20hW+7Uo5GfK4MeDPoU3qI8EA==} + '@typescript-eslint/utils@8.72.0': + resolution: {integrity: sha512-0up3oArJZBYnzOaEXKo8DmI43QvMZyPoFEt9LWzRJcyl/RcJjfKKPebknN1VbTgXBf3M/KggUh5uUMdURLnseg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.70.0': - resolution: {integrity: sha512-oZmtKJz/4fufZ2p3+Cn3ijEojcdfR+1zYDH2xKYrEly0dR/Q/1xUPRCOlKGxod78nWlU2UnDe09GZ3TaknBFGA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/visitor-keys@8.66.0': - resolution: {integrity: sha512-dkKR8q+lKciskj1Y3vthHktl+3cMLWGyVUP23bRiPZ5O9BRT++4EqDDV+TVeIKBL1VXVEqrJlz8MYbcnvJcAlg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/visitor-keys@8.70.0': - resolution: {integrity: sha512-BoC8PiO4Hkdo0TVJh9Ntxr5MxPDI7/oFsrygN5ADelFSeXG/qgNuucIGA+L5Z6JpPTE/uRfcTWtscjbUaufepQ==} + '@typescript-eslint/visitor-keys@8.72.0': + resolution: {integrity: sha512-E2mroviasaWecDzTGiGMtuEguuLVOeRggnrIn93CJuxYJzQBHbyymlT08aVQydbBal5538o+JkBKXh2sRuCyIA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260707.2': @@ -1056,13 +1030,13 @@ packages: engines: {node: '>=16.20.0'} hasBin: true - '@vitest/eslint-plugin@1.6.27': - resolution: {integrity: sha512-X1RCAfwbatG4GFbJ/1PIHP9MSZMt0JJThqbYID+vS4L783k6QGlLPe421wQE8dHXuGCcenVLsydiM4qzsYWxhg==} - engines: {node: '>=18'} + '@vitest/eslint-plugin@1.6.28': + resolution: {integrity: sha512-2QorUqhTIR7gaDkANEBTjuG2SE5MJgFaWElINyq9bIaOEJXycZUliu5xYSzG6QRLunWopYshgcRs2vW2CTRqGA==} + engines: {node: '>=22'} peerDependencies: '@typescript-eslint/eslint-plugin': '*' eslint: '>=8.57.0' - typescript: '>=5.0.0' + typescript: '>=6.0.0' vitest: '*' peerDependenciesMeta: '@typescript-eslint/eslint-plugin': @@ -1183,14 +1157,17 @@ packages: ajv@6.14.0: resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} - ansis@4.3.1: - resolution: {integrity: sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA==} + ansis@4.4.0: + resolution: {integrity: sha512-9k3v7xcHwgdO/DruxGIg4HtjvlAZlcnsX/mzqUb1t3NkYnl9kK2UJ+Gq0io+vQf7iT//BD/HB/NBkUR1LWxoeA==} engines: {node: '>=14'} are-docs-informative@0.1.1: resolution: {integrity: sha512-sqRsNQBwbKLRX0jV5Cu5uzmtflf892n4Vukz7T659ebL4pz3mpOqCMU7lxMoBTFwnp10E3YB5ZcyHM41W5bcDA==} engines: {node: '>=18'} + argparse@3.0.4: + resolution: {integrity: sha512-fwWK3Zq22l4XJJjx5mcBHGikIk+hJqO+32dPm0Jur7+rtG5x1scOjSfdT9ZKeWHPpsya/l0HHK4tDImBkTrtvA==} + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -1199,8 +1176,8 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - baseline-browser-mapping@2.11.23: - resolution: {integrity: sha512-le521dGVfxM7yRX0EikCoSz+rOK+hHzdDt/E7mG1jOJB/6WAAUuwVroLwaB7ApaUsz5Q0kFlDXLSA9MheUIfRQ==} + baseline-browser-mapping@2.11.33: + resolution: {integrity: sha512-yiVKDX+qCMRKBE084lXvq9EcwFUhKZ2nU8TK1EQQuOgPNR/lmbGxXOeDdlGUqC2Zz11Cs9rk1d/8NfgBmlkt0w==} engines: {node: '>=6.0.0'} hasBin: true @@ -1214,8 +1191,8 @@ packages: resolution: {integrity: sha512-JZyDyq3D4AUifKTPOB7DELf6XsB3WdPuNxCtob1vFXPsSXhdAiHBWJ/tJ8HAc9aH84BK+5JFZLNkJKx3G9kzQg==} engines: {node: 20 || >=22} - browserslist@4.28.9: - resolution: {integrity: sha512-EWazOblFYUvlGZcfGhPUPmYh3nikUxBVb+y9MJun5f3hBi812X+8MSQTujLBtgK3cf51fJWbWfOjyeO954d+Eg==} + browserslist@4.29.4: + resolution: {integrity: sha512-2TcbbiwXEq+N0kD36tykpCfyyQigUXmuwNQbnPp4Xk4PX9JOqVIKjJlIDjpH7uY6tmRGoAd+apeT1p60T8wsdA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1223,10 +1200,6 @@ packages: resolution: {integrity: sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==} engines: {node: '>=18.20'} - cac@7.0.0: - resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} - engines: {node: '>=20.19.0'} - cac@7.1.0: resolution: {integrity: sha512-LMDU/U2yA4IPIY8KT0NsNPWEYZvAMkbgyspxJ6btJaYV+WMDOHAZCmB0lsTObiHaRS1V/ztKAl7+TSkTqXyeoA==} engines: {node: '>=20.19.0'} @@ -1234,8 +1207,8 @@ packages: cacheable@2.5.0: resolution: {integrity: sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==} - caniuse-lite@1.0.30001810: - resolution: {integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==} + caniuse-lite@1.0.30001819: + resolution: {integrity: sha512-LFUqIIAwpzsIuevnKnsR9qnStBcgzPShTX61lBwN9uFkkf8o8zLiebEjbW8AYtZiF+1YKDWfdt/pWDtMuG8Xwg==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1258,6 +1231,10 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} + comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + comment-parser@1.4.7: resolution: {integrity: sha512-0h+uSNtQGW3D98eQt3jJ8L06Fves8hncB4V/PKdw/Qb8Hnk19VaKuTr55UNRYiSoVa7WwrFls+rh3ux9agmkeQ==} engines: {node: '>= 12.0.0'} @@ -1266,16 +1243,16 @@ packages: resolution: {integrity: sha512-rKZTGo4fzKYna8UcL0isTg5wkBNla7bxTypLwZQXjIdi++IdP1OJ41rI5Mti3/jltkPujbu4i9LIARYA+zpotQ==} engines: {node: '>= 12.0.0'} + comment-parser@1.4.9: + resolution: {integrity: sha512-+2AvZKjJaNq9GQljm3tr0utwrig5BL+jgJGvz5rDpGKNIp+ojcRXWUwBbh/sGIi1QCprR6PsKFakub+w1v+4hQ==} + engines: {node: '>= 12.0.0'} + confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} confbox@0.2.2: resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} - convert-hrtime@5.0.0: - resolution: {integrity: sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==} - engines: {node: '>=12'} - core-js-compat@3.50.0: resolution: {integrity: sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==} engines: {node: '>=6.4.0'} @@ -1335,12 +1312,8 @@ packages: oxc-resolver: optional: true - electron-to-chromium@1.5.427: - resolution: {integrity: sha512-n14zb3FdsChZ2BNobqNHAJMcP3ifFv4paox2LvCrfVAQcqGiSURgbJl+PfMpHVCNFkStnNc+RRVtPBTVW5PDgw==} - - empathic@2.0.1: - resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==} - engines: {node: '>=14'} + electron-to-chromium@1.5.464: + resolution: {integrity: sha512-nRa65aFge40viPAKxMKULIY8tcXKwKboJWNn4RoKwyWXJ6SP7BnrDGKUTzc64818jIciH0PK7LSF8QzZes19GA==} empathic@2.1.0: resolution: {integrity: sha512-AnfC1ATldl49/cvZdLPDjBfrRNwbDO05aibiOtzQu3qtlbJtomNLhF30HEtn/7iBz50dlMECqATo3fG0LrdEgw==} @@ -1403,8 +1376,8 @@ packages: peerDependencies: eslint: '*' - eslint-plugin-antfu@3.2.3: - resolution: {integrity: sha512-U2fnz/H0gFPxpuC7QpaHa0Jv2AgCZ5hunp36SOP/yWo8yFzgvMh8X4pZ4uN4IKoqtBhk7G3HuVa93Urf51+sZg==} + eslint-plugin-antfu@3.3.1: + resolution: {integrity: sha512-SP1Wmq8EPgXOMWE3SNGS6T7sCcKYOId5vLU8hUO0VFMJ7PwaMYEqFNdp0jlL6vnsT1h1LCKuRmoed1ktRjWHjA==} peerDependencies: eslint: '*' @@ -1428,11 +1401,15 @@ packages: peerDependencies: eslint: ^9.0.0 || ^10.0.0 - eslint-plugin-jsdoc@64.4.0: - resolution: {integrity: sha512-CvEE+NIXsjV6n6SOKmZvnehQCLkxxQGB6/xqyg2LQ4xyf5DHRV25xEkKdECup+yaT7U2RgbOw5xCnqITrfqmdA==} + eslint-plugin-jsdoc@65.4.2: + resolution: {integrity: sha512-+1XHeMXZxHK0+uiHwKuZzwCIlZjw9SuZ/enuLMtZ8ZT7cxBLTZ4lCHd3kO6BhPcsUQ59fMg6DKWcCNxnRAhMjg==} engines: {node: ^22.22.2 || >=24.15.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true eslint-plugin-jsonc@3.4.2: resolution: {integrity: sha512-q5xzjCYFQuhFomTbctXzd3STfDJ8XduvaigjQmMEbP2gzSKrc58y3Fv6D775/cIK1/sRUn+4kpljiU2iW8k0zw==} @@ -1440,8 +1417,8 @@ packages: peerDependencies: eslint: '>=9.38.0' - eslint-plugin-n@18.3.0: - resolution: {integrity: sha512-cPVguuDe6DrIPb/qUXHf8P89MaVTUmiYWwpt5gX5AILsvRIiZAxMFXcFR6QHYBksqKJpjfUBlL/RleCJUWcD7w==} + eslint-plugin-n@18.5.0: + resolution: {integrity: sha512-M7uF6MTN/An+AXqvyIbXq7npJIZOkd5eKo8iMMvWrcDVNyZVdA6TF2lw01aKQfCEidRfpnR78GhAjZorlXNHiw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: eslint: '>=8.57.1' @@ -1457,19 +1434,22 @@ packages: resolution: {integrity: sha512-4S3/9Nb7A2tiMcpzEQE9bQSlpeOz6WJkgryBuou/SA8W2x2c8Zf4j0NvTKBjv6qNhF9T79tmkecm/0CHqV0UGg==} engines: {node: '>=5.0.0'} - eslint-plugin-perfectionist@5.10.1: - resolution: {integrity: sha512-Kprsp9Us0GqAesYaAIzUViw57xYp5WBqzXrcE0Mtww++E5fexWXYBipMuuD7yvyH4vvpBH0+oJ+OMAmZ0oYXkw==} + eslint-plugin-perfectionist@5.13.0: + resolution: {integrity: sha512-kPlqE2Kdh0njsad9S9xL/xnq+NNVUsga/uS3yf6axE0RddACM3Q+idJyethC7R+C9b73+NRhAWvKyXPrkl0nFA==} engines: {node: ^20.0.0 || >=22.0.0} peerDependencies: eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true eslint-plugin-pnpm@1.9.1: resolution: {integrity: sha512-8++1Egww2cqc9Wylmt7P+xXNMQVCosAZ4m4W4Gc0V5lGea8HFByHTRvUI+ZvvpO8fLXGg2O4MQc90EhuI3mMdQ==} peerDependencies: eslint: ^9.0.0 || ^10.0.0 - eslint-plugin-regexp@3.3.0: - resolution: {integrity: sha512-TT0JTQbW7CRKohntpGAsMdQ1K3MsmJK4gdAhKJtIwlJ0JvuYxauymFgJdvqxIY4lqNj0EuRZWVrymQtEdJYEFg==} + eslint-plugin-regexp@3.3.1: + resolution: {integrity: sha512-58bGUci/AaWAo1ETj6Lsnmy6QXwnSyVONRA805828nnqp7vrTwdaQMc02vtowmYB3A5OB3SLr3r5HgmfxX4dLg==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: eslint: '>=9.38.0' @@ -1480,11 +1460,15 @@ packages: peerDependencies: eslint: '>=9.38.0' - eslint-plugin-unicorn@74.0.0: - resolution: {integrity: sha512-AGnsGi2SxHg1HEAXxn9nSnZfyjvTWkxm8E8hpd/9tD6dLjBUdcD7+D6ZN64HmmCXTSXlrwVyUqe20Uyb2CaurA==} + eslint-plugin-unicorn@78.0.0: + resolution: {integrity: sha512-XTDqxcJeAmh2lhgU75TpuMDdFtPDnAU+DCW56nR5UzXTG+uOyvOGjV80O11my7kNb2bYSCPlWa8c4K8/rwlYog==} engines: {node: '>=22'} peerDependencies: eslint: '>=10.4' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true eslint-plugin-unused-imports@4.4.1: resolution: {integrity: sha512-oZGYUz1X3sRMGUB+0cZyK2VcvRX5lm/vB56PgNNcU+7ficUCKm66oZWKUubXWnOuPjQ8PvmXtCViXBMONPe7tQ==} @@ -1495,8 +1479,8 @@ packages: '@typescript-eslint/eslint-plugin': optional: true - eslint-plugin-vue@10.10.0: - resolution: {integrity: sha512-dL9x9rBHqqNcByWiLOHK6L0SB97V82/NC0cZRn9cXPjM7pCuWlpQQP9bFH4vjBv80ej1ZpzAkuD8zWH1o9bZbA==} + eslint-plugin-vue@10.11.1: + resolution: {integrity: sha512-pasVXhl7wUmIvhujoqs/m0mJ9r59QW1IR9XXYKGR0FETzSM+Hhlf4qKIYgWiDDP+9YKv4YfbwskD7LqIdVcgQw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 @@ -1509,8 +1493,8 @@ packages: '@typescript-eslint/parser': optional: true - eslint-plugin-yml@3.8.1: - resolution: {integrity: sha512-E/70psRwxz5EJ8dBtzrFfqSiiInuSytbdtFCjueb/GcKjsWzPBfxfhtQePImMAPjHwMA/VDurO7DJwStDJ4wWg==} + eslint-plugin-yml@3.9.0: + resolution: {integrity: sha512-o4ByMVFd/mGc0Q/vJmbG9pz7Kyg/BiKAGnWCzvMLqzpa2KMdpUrLgF5a6yYeL2mf1Br/9dckd0ADl3vw7uF+jA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} peerDependencies: eslint: '>=9.38.0' @@ -1555,6 +1539,11 @@ packages: resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + esquery@1.7.0: resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} @@ -1643,10 +1632,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - function-timeout@1.0.2: - resolution: {integrity: sha512-939eZS4gJ3htTHAldmyyuzlrD58P03fHG49v2JfFXbV6OhvZKRC9j2yAtdHw/zrp2zXHuv05zMIy40F0ge7spA==} - engines: {node: '>=18'} - get-tsconfig@4.13.7: resolution: {integrity: sha512-7tN6rFgBlMgpBML5j8typ92BKFi2sFQvIdpAqLA2beia5avZDrMs0FLZiM5etShWq5irVyGcGMEA1jcDaK7A/Q==} @@ -1665,8 +1650,8 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@17.12.0: - resolution: {integrity: sha512-cezEd/DTyyht9cvSSURyygXPfy04GtWO/5e6ZPvH7fCtjKz9PYOmuawphw1Ctd1f6C+5JypXfGD7ahNMXvevBA==} + globals@17.13.0: + resolution: {integrity: sha512-RwMTC61u7hrG3ZJMkZQOK4JLJrKS8QtoTii63EmWvFXHqycY9FObBJQCbsLxSO8kjKhWE5kV1GC+Vb1g3RI0Zg==} engines: {node: '>=18'} globrex@0.1.2: @@ -1727,13 +1712,17 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-identifier@1.1.0: - resolution: {integrity: sha512-NhOds0mDx9lJu+1lBRO0xbwFo5nobA7GCk/0e5xjr6+6XugX985+0OyGX35BNrTkPAsdLcIKg02HUQJOK8D8kw==} - engines: {node: '>=18'} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + js-yaml@5.5.0: + resolution: {integrity: sha512-paNr4LFIFPjeeSmwNYdrb8FafLLG/Cr2Af3GjbsHJ5CxIjH4r0c2emlmRdAtpPAieP1gRVzk6buBbVP5gBMGAg==} + hasBin: true + + jsdoc-type-pratt-parser@5.9.2: + resolution: {integrity: sha512-TYzkACp/wPvDJLRY7qpHXtrhgwoAaojIOnLaaVNi+AbPU2u1kkjfKd9hXXTq0qSAGsyYXvwUXt99h9I5iCmjjw==} + engines: {node: '>=12.0.0'} + jsdoc-type-pratt-parser@9.0.0: resolution: {integrity: sha512-gZvnVGWqgA9L/L2NLdcff6Rezp6ymKBqJDqfg+qWL9QyZA5prn5irUCkSGDEvuse1SjiFhlV2WQsgGBaIlPLWg==} engines: {node: ^22.22.2 || >=24.15.0} @@ -1742,6 +1731,10 @@ packages: resolution: {integrity: sha512-V4Ww4EHnTcTLSOMoB0FsF72JhQvcAsriCm/LWnxJeGWoxIjEL2l9na11abQok5SYShq8m0Gl02el/xAbTCulvQ==} engines: {node: ^22.22.2 || >=24.15.0} + jsdoc-type-pratt-parser@9.4.0: + resolution: {integrity: sha512-orXhi2Y06rag47r4SW4JPII6WlUJbp0xe9cIcqLaSbb/8tREcEZSq99Lu3AFfra6PAlMqTYIxV+ZHxl1dFUrWw==} + engines: {node: ^22.22.2 || >=24.15.0} + jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -1753,10 +1746,6 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - jsonc-eslint-parser@3.1.0: - resolution: {integrity: sha512-75EA7EWZExL/j+MDKQrRbdzcRI2HOkRlmUw8fZJc1ioqFEOvBsq7Rt+A6yCxOt9w/TYNpkt52gC6nm/g5tFIng==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - jsonc-eslint-parser@3.3.0: resolution: {integrity: sha512-hYTGkHGNRZnXOFZ1urhINADoqDrGfpy53cjw+dxk84QE0pUDujQzeUeamNs6Mz44/TKD49z2x6/GVSu4ZrtA+Q==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -1866,10 +1855,6 @@ packages: magic-string@1.4.3: resolution: {integrity: sha512-z12OxmaPGE0F4xlpGdjuAUckipLpQlTAuAmyGhNoD7ODpYUzvDfvtxUbjM/jwznyP178oju/KDdyi220wNJ0RQ==} - make-asynchronous@1.1.0: - resolution: {integrity: sha512-ayF7iT+44LXdxJLTrTd3TLQpFDDvPCBxXxbv+pMUSuHA5Q8zyAfwkRP6aHHwNVFBUFWtxAHqwNJxF8vMZLAbVg==} - engines: {node: '>=18'} - markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} @@ -1912,8 +1897,8 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - mdn-data@2.29.0: - resolution: {integrity: sha512-pVxQFCcaYUEAH853+v7yoI/qzhxXSq1bTb9obMYGYAN1c3Hen+XDCEvr296XhstrwlSTNgOR7mCSD4JPjbJe5A==} + mdn-data@2.37.2: + resolution: {integrity: sha512-rz9YOBGItdSbe7HcSArUbhiAv4SB/4DKRYg96CSFS2CcIYMbUvBtZlzA1NCbk2AdgbmYwMqwNblLpR441lLeiQ==} micromark-core-commonmark@2.0.3: resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} @@ -1978,6 +1963,9 @@ packages: micromark-util-decode-string@2.0.1: resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + micromark-util-edit-map@1.0.0: + resolution: {integrity: sha512-Pa2ljlsEL6sVwFaYeyrOLSYbQt73JvGbPOYFq+9AElXiSnfI5Q4465RRZ1sHv7lDjDOnGRDDaqPXqClqWK/q1Q==} + micromark-util-encode@2.0.1: resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} @@ -2005,6 +1993,9 @@ packages: micromark@4.0.2: resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + micromark@4.0.3: + resolution: {integrity: sha512-oGYfQzHSG5dOMovQcJ3fyTmZlWAWpi0XA0sJwJs+i6OT88o1+Jtw/8z0CmdowSLxGhhFK89rQ/oXph/wN02PNw==} + minimatch@10.2.6: resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} engines: {node: 18 || 20 || >=22} @@ -2030,8 +2021,8 @@ packages: resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} engines: {node: '>=18'} - node-releases@2.0.55: - resolution: {integrity: sha512-mIrE/Cw9y+9Au6dS5vDKDhQza9YvG6w+ZrS6X+ZzA7yFW/soAeaups4Qzn1bL6g5FVy8WtP79+0j82oPIbqRjQ==} + node-releases@2.0.60: + resolution: {integrity: sha512-OmO8+GM1JUZqXET720VrJCwkjUCXmCMQm0Z3UDDRbfNLHS4NEAvY60j5jiFv0tkKw2PNNlqOLhahVmwJIOLDIQ==} engines: {node: '>=18'} nth-check@2.1.1: @@ -2048,10 +2039,6 @@ packages: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - p-event@6.0.1: - resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==} - engines: {node: '>=16.17'} - p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -2060,10 +2047,6 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-timeout@6.1.4: - resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} - engines: {node: '>=14.16'} - package-manager-detector@1.8.0: resolution: {integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==} @@ -2077,6 +2060,9 @@ packages: parse-statements@1.0.11: resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==} + parse5@8.0.1: + resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -2146,8 +2132,8 @@ packages: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - regjsparser@0.13.2: - resolution: {integrity: sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==} + regjsparser@0.13.4: + resolution: {integrity: sha512-EWV80YgFaVgFrjGCAsV7oybp4GOxbls5RzBg8OB0nKEVXsBJR1JlV8Di1JhCROg3MzTfe1RI8yitIm1eOs68iA==} hasBin: true reserved-identifiers@1.2.0: @@ -2210,6 +2196,10 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + spdx-exceptions@2.5.0: resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} @@ -2226,10 +2216,6 @@ packages: resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} engines: {node: '>=12'} - super-regex@1.1.0: - resolution: {integrity: sha512-WHkws2ZflZe41zj6AolvvmaTrWds/VuyeYr9iPVv/oQeaIoVxMKaushfFWpOGDT+GuBrM/sVqF8KUCYQlSSTdQ==} - engines: {node: '>=18'} - synckit@0.11.12: resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -2238,10 +2224,6 @@ packages: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} - time-span@5.1.0: - resolution: {integrity: sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==} - engines: {node: '>=12'} - tinybench@6.2.2: resolution: {integrity: sha512-nIZ2N2dFpjBsg2hgitKu7mA+FvsIJuGJOwysRngmVRRmWgR/UyPjwJj8c/fT/dhm8EkHnF5EOogRf+0Z2qrimA==} engines: {node: '>=20.0.0'} @@ -2317,10 +2299,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@4.41.0: - resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} - engines: {node: '>=16'} - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -2360,8 +2338,8 @@ packages: universal-user-agent@7.0.3: resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==} - update-browserslist-db@1.3.3: - resolution: {integrity: sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==} + update-browserslist-db@1.3.4: + resolution: {integrity: sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -2376,6 +2354,10 @@ packages: resolution: {integrity: sha512-zj/ob3UsvJGN0whEAKFp53REA5X66hvffVqoCtVQAakJKnKlH+/PcOfMoFwIG/o4rElqLv/ycAFlx8ZlXUorCg==} engines: {node: '>=18.12.0'} + verkit@0.4.1: + resolution: {integrity: sha512-mMVzj0TXExtVdlDEq+Mzp0eyOuyznNpFobNM3uAqe3HVm/Ps2c+u17BligMkZjZCA6EiXpoon8iRTer3iu40SQ==} + engines: {node: '>=18.12.0'} + verkit@0.5.0: resolution: {integrity: sha512-u4J1hr6Y+C/hit34GwL3eIcUf3wngT8TlYUjK7tk0jxydKLAq3sYvifjdTDA6U3KCKRcQCQDGf/srjxfZF3l7g==} engines: {node: '>=18.12.0'} @@ -2470,9 +2452,6 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - web-worker@1.5.0: - resolution: {integrity: sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -2556,40 +2535,40 @@ snapshots: '@actions/io@3.0.2': {} - '@antfu/eslint-config@9.5.1(@typescript-eslint/typescript-estree@8.70.0(typescript@5.9.3))(@typescript-eslint/utils@8.70.0(eslint@10.13.0)(typescript@5.9.3))(@vue/compiler-sfc@3.5.24)(eslint@10.13.0)(typescript@5.9.3)(vitest@5.0.5(@types/node@26.5.1)(vite@8.0.13(@types/node@26.5.1)(yaml@2.9.1)))': + '@antfu/eslint-config@10.0.0(@typescript-eslint/typescript-estree@8.72.0(typescript@5.9.3))(@typescript-eslint/utils@8.72.0(eslint@10.13.0)(typescript@5.9.3))(@vue/compiler-sfc@3.5.24)(eslint@10.13.0)(typescript@5.9.3)(vitest@5.0.5(@types/node@26.5.1)(vite@8.0.13(@types/node@26.5.1)(yaml@2.9.1)))': dependencies: - '@antfu/install-pkg': 2.0.1 - '@clack/prompts': 1.7.0 - '@e18e/eslint-plugin': 0.8.0(eslint@10.13.0) - '@eslint-community/eslint-plugin-eslint-comments': 4.7.2(eslint@10.13.0) + '@antfu/install-pkg': 2.1.0 + '@clack/prompts': 1.8.1 + '@e18e/eslint-plugin': 0.8.1(eslint@10.13.0) + '@eslint-community/eslint-plugin-eslint-comments': 4.8.1(eslint@10.13.0) '@eslint/markdown': 8.0.3 '@stylistic/eslint-plugin': 5.10.0(eslint@10.13.0) - '@typescript-eslint/eslint-plugin': 8.70.0(@typescript-eslint/parser@8.70.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3) - '@typescript-eslint/parser': 8.70.0(eslint@10.13.0)(typescript@5.9.3) - '@vitest/eslint-plugin': 1.6.27(@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3)(vitest@5.0.5(@types/node@26.5.1)(vite@8.0.13(@types/node@26.5.1)(yaml@2.9.1))) - ansis: 4.3.1 - cac: 7.0.0 + '@typescript-eslint/eslint-plugin': 8.72.0(@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3) + '@typescript-eslint/parser': 8.72.0(eslint@10.13.0)(typescript@5.9.3) + '@vitest/eslint-plugin': 1.6.28(@typescript-eslint/eslint-plugin@8.72.0(@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3)(vitest@5.0.5(@types/node@26.5.1)(vite@8.0.13(@types/node@26.5.1)(yaml@2.9.1))) + ansis: 4.4.0 + cac: 7.1.0 eslint: 10.13.0 eslint-config-flat-gitignore: 2.4.0(eslint@10.13.0) eslint-flat-config-utils: 3.2.0 eslint-merge-processors: 2.0.0(eslint@10.13.0) - eslint-plugin-antfu: 3.2.3(eslint@10.13.0) - eslint-plugin-command: 4.0.0(@typescript-eslint/typescript-estree@8.70.0(typescript@5.9.3))(@typescript-eslint/utils@8.70.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0) + eslint-plugin-antfu: 3.3.1(eslint@10.13.0) + eslint-plugin-command: 4.0.0(@typescript-eslint/typescript-estree@8.72.0(typescript@5.9.3))(@typescript-eslint/utils@8.72.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0) eslint-plugin-import-lite: 0.6.0(eslint@10.13.0) - eslint-plugin-jsdoc: 64.4.0(eslint@10.13.0)(typescript@5.9.3) + eslint-plugin-jsdoc: 65.4.2(eslint@10.13.0)(typescript@5.9.3) eslint-plugin-jsonc: 3.4.2(eslint@10.13.0) - eslint-plugin-n: 18.3.0(eslint@10.13.0)(typescript@5.9.3) + eslint-plugin-n: 18.5.0(eslint@10.13.0)(typescript@5.9.3) eslint-plugin-no-only-tests: 3.4.0 - eslint-plugin-perfectionist: 5.10.1(eslint@10.13.0)(typescript@5.9.3) + eslint-plugin-perfectionist: 5.13.0(eslint@10.13.0)(typescript@5.9.3) eslint-plugin-pnpm: 1.9.1(eslint@10.13.0) - eslint-plugin-regexp: 3.3.0(eslint@10.13.0) + eslint-plugin-regexp: 3.3.1(eslint@10.13.0) eslint-plugin-toml: 1.5.0(eslint@10.13.0) - eslint-plugin-unicorn: 74.0.0(eslint@10.13.0) - eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0) - eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.13.0))(@typescript-eslint/parser@8.70.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(vue-eslint-parser@10.4.1(eslint@10.13.0)) - eslint-plugin-yml: 3.8.1(eslint@10.13.0) + eslint-plugin-unicorn: 78.0.0(eslint@10.13.0)(typescript@5.9.3) + eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.72.0(@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0) + eslint-plugin-vue: 10.11.1(@stylistic/eslint-plugin@5.10.0(eslint@10.13.0))(@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(vue-eslint-parser@10.4.1(eslint@10.13.0)) + eslint-plugin-yml: 3.9.0(eslint@10.13.0) eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.24)(eslint@10.13.0) - globals: 17.12.0 + globals: 17.13.0 local-pkg: 1.2.1 parse-gitignore: 2.0.0 toml-eslint-parser: 1.0.3 @@ -2606,7 +2585,7 @@ snapshots: - typescript - vitest - '@antfu/install-pkg@2.0.1': + '@antfu/install-pkg@2.1.0': dependencies: package-manager-detector: 1.8.0 tinyexec: 1.3.1 @@ -2636,23 +2615,23 @@ snapshots: hashery: 1.5.1 keyv: 5.6.0 - '@clack/core@1.4.3': + '@clack/core@1.5.1': dependencies: fast-wrap-ansi: 0.2.0 sisteransi: 1.0.5 - '@clack/prompts@1.7.0': + '@clack/prompts@1.8.1': dependencies: - '@clack/core': 1.4.3 + '@clack/core': 1.5.1 fast-string-width: 3.0.2 fast-wrap-ansi: 0.2.0 sisteransi: 1.0.5 - '@e18e/eslint-plugin@0.8.0(eslint@10.13.0)': + '@e18e/eslint-plugin@0.8.1(eslint@10.13.0)': dependencies: - empathic: 2.0.1 + empathic: 2.1.0 module-replacements: 3.3.0 - semver: 7.8.5 + verkit: 0.4.1 optionalDependencies: eslint: 10.13.0 @@ -2672,25 +2651,45 @@ snapshots: tslib: 2.8.1 optional: true + '@es-joy/escodegen@4.2.0': + dependencies: + '@es-joy/estraverse': 7.1.1 + '@es-joy/jsdoccomment': 0.62.0 + esprima: 4.0.1 + esutils: 2.0.3 + optionator: 0.9.4 + optionalDependencies: + source-map: 0.7.6 + + '@es-joy/estraverse@7.1.1': {} + + '@es-joy/jsdoccomment@0.62.0': + dependencies: + '@types/estree': 1.0.9 + '@typescript-eslint/types': 8.70.0 + comment-parser: 1.4.1 + esquery: 1.7.0 + jsdoc-type-pratt-parser: 5.9.2 + '@es-joy/jsdoccomment@0.92.0': dependencies: '@types/estree': 1.0.9 - '@typescript-eslint/types': 8.66.0 + '@typescript-eslint/types': 8.70.0 comment-parser: 1.4.7 esquery: 1.7.0 jsdoc-type-pratt-parser: 9.0.0 - '@es-joy/jsdoccomment@0.97.0': + '@es-joy/jsdoccomment@1.0.0': dependencies: '@types/estree': 1.0.9 - '@typescript-eslint/types': 8.70.0 - comment-parser: 1.4.8 + '@typescript-eslint/types': 8.72.0 + comment-parser: 1.4.9 esquery: 1.7.0 - jsdoc-type-pratt-parser: 9.2.1 + jsdoc-type-pratt-parser: 9.4.0 '@es-joy/resolve.exports@1.2.0': {} - '@eslint-community/eslint-plugin-eslint-comments@4.7.2(eslint@10.13.0)': + '@eslint-community/eslint-plugin-eslint-comments@4.8.1(eslint@10.13.0)': dependencies: escape-string-regexp: 4.0.0 eslint: 10.13.0 @@ -2701,11 +2700,6 @@ snapshots: eslint: 10.13.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.1(eslint@10.13.0)': - dependencies: - eslint: 10.13.0 - eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.2': {} '@eslint/compat@2.1.1(eslint@10.13.0)': @@ -2734,9 +2728,9 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/css-tree@4.0.5': + '@eslint/css-tree@4.1.2': dependencies: - mdn-data: 2.29.0 + mdn-data: 2.37.2 source-map-js: 1.2.1 '@eslint/markdown@8.0.3': @@ -2971,8 +2965,8 @@ snapshots: '@stylistic/eslint-plugin@5.10.0(eslint@10.13.0)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.13.0) - '@typescript-eslint/types': 8.66.0 + '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0) + '@typescript-eslint/types': 8.70.0 eslint: 10.13.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -3023,14 +3017,14 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.72.0(@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.70.0(eslint@10.13.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.70.0 - '@typescript-eslint/type-utils': 8.70.0(eslint@10.13.0)(typescript@5.9.3) - '@typescript-eslint/utils': 8.70.0(eslint@10.13.0)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.70.0 + '@typescript-eslint/parser': 8.72.0(eslint@10.13.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.72.0 + '@typescript-eslint/type-utils': 8.72.0(eslint@10.13.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.72.0(eslint@10.13.0)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.72.0 eslint: 10.13.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -3039,59 +3033,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.70.0(eslint@10.13.0)(typescript@5.9.3)': + '@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.70.0 - '@typescript-eslint/types': 8.70.0 - '@typescript-eslint/typescript-estree': 8.70.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.70.0 + '@typescript-eslint/scope-manager': 8.72.0 + '@typescript-eslint/types': 8.72.0 + '@typescript-eslint/typescript-estree': 8.72.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.72.0 debug: 4.4.3 eslint: 10.13.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.66.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.72.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.66.0(typescript@5.9.3) - '@typescript-eslint/types': 8.66.0 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.70.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.70.0(typescript@5.9.3) - '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/tsconfig-utils': 8.72.0(typescript@5.9.3) + '@typescript-eslint/types': 8.72.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.66.0': + '@typescript-eslint/scope-manager@8.72.0': dependencies: - '@typescript-eslint/types': 8.66.0 - '@typescript-eslint/visitor-keys': 8.66.0 + '@typescript-eslint/types': 8.72.0 + '@typescript-eslint/visitor-keys': 8.72.0 - '@typescript-eslint/scope-manager@8.70.0': - dependencies: - '@typescript-eslint/types': 8.70.0 - '@typescript-eslint/visitor-keys': 8.70.0 - - '@typescript-eslint/tsconfig-utils@8.66.0(typescript@5.9.3)': - dependencies: - typescript: 5.9.3 - - '@typescript-eslint/tsconfig-utils@8.70.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.72.0(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.70.0(eslint@10.13.0)(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.72.0(eslint@10.13.0)(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.70.0 - '@typescript-eslint/typescript-estree': 8.70.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.70.0(eslint@10.13.0)(typescript@5.9.3) + '@typescript-eslint/types': 8.72.0 + '@typescript-eslint/typescript-estree': 8.72.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.72.0(eslint@10.13.0)(typescript@5.9.3) debug: 4.4.3 eslint: 10.13.0 ts-api-utils: 2.5.0(typescript@5.9.3) @@ -3099,31 +3075,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.66.0': {} - '@typescript-eslint/types@8.70.0': {} - '@typescript-eslint/typescript-estree@8.66.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.66.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.66.0(typescript@5.9.3) - '@typescript-eslint/types': 8.66.0 - '@typescript-eslint/visitor-keys': 8.66.0 - debug: 4.4.3 - minimatch: 10.2.6 - semver: 7.8.5 - tinyglobby: 0.2.17 - ts-api-utils: 2.5.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@8.72.0': {} - '@typescript-eslint/typescript-estree@8.70.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.72.0(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.70.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.70.0(typescript@5.9.3) - '@typescript-eslint/types': 8.70.0 - '@typescript-eslint/visitor-keys': 8.70.0 + '@typescript-eslint/project-service': 8.72.0(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.72.0(typescript@5.9.3) + '@typescript-eslint/types': 8.72.0 + '@typescript-eslint/visitor-keys': 8.72.0 debug: 4.4.3 minimatch: 10.2.6 semver: 7.8.5 @@ -3133,36 +3094,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.66.0(eslint@10.13.0)(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.13.0) - '@typescript-eslint/scope-manager': 8.66.0 - '@typescript-eslint/types': 8.66.0 - '@typescript-eslint/typescript-estree': 8.66.0(typescript@5.9.3) - eslint: 10.13.0 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.70.0(eslint@10.13.0)(typescript@5.9.3)': + '@typescript-eslint/utils@8.72.0(eslint@10.13.0)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0) - '@typescript-eslint/scope-manager': 8.70.0 - '@typescript-eslint/types': 8.70.0 - '@typescript-eslint/typescript-estree': 8.70.0(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.72.0 + '@typescript-eslint/types': 8.72.0 + '@typescript-eslint/typescript-estree': 8.72.0(typescript@5.9.3) eslint: 10.13.0 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.66.0': + '@typescript-eslint/visitor-keys@8.72.0': dependencies: - '@typescript-eslint/types': 8.66.0 - eslint-visitor-keys: 5.0.1 - - '@typescript-eslint/visitor-keys@8.70.0': - dependencies: - '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/types': 8.72.0 eslint-visitor-keys: 5.0.1 '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260707.2': @@ -3196,13 +3141,13 @@ snapshots: '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260707.2 '@typescript/native-preview-win32-x64': 7.0.0-dev.20260707.2 - '@vitest/eslint-plugin@1.6.27(@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3)(vitest@5.0.5(@types/node@26.5.1)(vite@8.0.13(@types/node@26.5.1)(yaml@2.9.1)))': + '@vitest/eslint-plugin@1.6.28(@typescript-eslint/eslint-plugin@8.72.0(@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3)(vitest@5.0.5(@types/node@26.5.1)(vite@8.0.13(@types/node@26.5.1)(yaml@2.9.1)))': dependencies: - '@typescript-eslint/scope-manager': 8.66.0 - '@typescript-eslint/utils': 8.66.0(eslint@10.13.0)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.72.0 + '@typescript-eslint/utils': 8.72.0(eslint@10.13.0)(typescript@5.9.3) eslint: 10.13.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.70.0(@typescript-eslint/parser@8.70.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.72.0(@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3) typescript: 5.9.3 vitest: 5.0.5(@types/node@26.5.1)(vite@8.0.13(@types/node@26.5.1)(yaml@2.9.1)) transitivePeerDependencies: @@ -3302,15 +3247,17 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ansis@4.3.1: {} + ansis@4.4.0: {} are-docs-informative@0.1.1: {} + argparse@3.0.4: {} + assertion-error@2.0.1: {} balanced-match@4.0.4: {} - baseline-browser-mapping@2.11.23: {} + baseline-browser-mapping@2.11.33: {} before-after-hook@4.0.0: {} @@ -3320,18 +3267,16 @@ snapshots: dependencies: balanced-match: 4.0.4 - browserslist@4.28.9: + browserslist@4.29.4: dependencies: - baseline-browser-mapping: 2.11.23 - caniuse-lite: 1.0.30001810 - electron-to-chromium: 1.5.427 - node-releases: 2.0.55 - update-browserslist-db: 1.3.3(browserslist@4.28.9) + baseline-browser-mapping: 2.11.33 + caniuse-lite: 1.0.30001819 + electron-to-chromium: 1.5.464 + node-releases: 2.0.60 + update-browserslist-db: 1.3.4(browserslist@4.29.4) builtin-modules@5.0.0: {} - cac@7.0.0: {} - cac@7.1.0: {} cacheable@2.5.0: @@ -3342,7 +3287,7 @@ snapshots: keyv: 5.6.0 qified: 0.10.1 - caniuse-lite@1.0.30001810: {} + caniuse-lite@1.0.30001819: {} ccount@2.0.1: {} @@ -3356,19 +3301,21 @@ snapshots: commander@8.3.0: {} + comment-parser@1.4.1: {} + comment-parser@1.4.7: {} comment-parser@1.4.8: {} + comment-parser@1.4.9: {} + confbox@0.1.8: {} confbox@0.2.2: {} - convert-hrtime@5.0.0: {} - core-js-compat@3.50.0: dependencies: - browserslist: 4.28.9 + browserslist: 4.29.4 cross-spawn@7.0.6: dependencies: @@ -3404,9 +3351,7 @@ snapshots: dts-resolver@3.0.0: {} - electron-to-chromium@1.5.427: {} - - empathic@2.0.1: {} + electron-to-chromium@1.5.464: {} empathic@2.1.0: {} @@ -3442,12 +3387,6 @@ snapshots: '@eslint/config-helpers': 0.5.5 pathe: 2.0.3 - eslint-json-compat-utils@0.2.3(eslint@10.13.0)(jsonc-eslint-parser@3.1.0): - dependencies: - eslint: 10.13.0 - esquery: 1.7.0 - jsonc-eslint-parser: 3.1.0 - eslint-json-compat-utils@0.2.3(eslint@10.13.0)(jsonc-eslint-parser@3.3.0): dependencies: eslint: 10.13.0 @@ -3458,20 +3397,20 @@ snapshots: dependencies: eslint: 10.13.0 - eslint-plugin-antfu@3.2.3(eslint@10.13.0): + eslint-plugin-antfu@3.3.1(eslint@10.13.0): dependencies: eslint: 10.13.0 - eslint-plugin-command@4.0.0(@typescript-eslint/typescript-estree@8.70.0(typescript@5.9.3))(@typescript-eslint/utils@8.70.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0): + eslint-plugin-command@4.0.0(@typescript-eslint/typescript-estree@8.72.0(typescript@5.9.3))(@typescript-eslint/utils@8.72.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0): dependencies: '@es-joy/jsdoccomment': 0.92.0 - '@typescript-eslint/typescript-estree': 8.70.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.70.0(eslint@10.13.0)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.72.0(typescript@5.9.3) + '@typescript-eslint/utils': 8.72.0(eslint@10.13.0)(typescript@5.9.3) eslint: 10.13.0 eslint-plugin-es-x@7.8.0(eslint@10.13.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.13.0) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0) '@eslint-community/regexpp': 4.12.2 eslint: 10.13.0 eslint-compat-utils: 0.5.1(eslint@10.13.0) @@ -3480,13 +3419,14 @@ snapshots: dependencies: eslint: 10.13.0 - eslint-plugin-jsdoc@64.4.0(eslint@10.13.0)(typescript@5.9.3): + eslint-plugin-jsdoc@65.4.2(eslint@10.13.0)(typescript@5.9.3): dependencies: - '@es-joy/jsdoccomment': 0.97.0 + '@es-joy/escodegen': 4.2.0 + '@es-joy/jsdoccomment': 1.0.0 '@es-joy/resolve.exports': 1.2.0 - '@typescript-eslint/utils': 8.70.0(eslint@10.13.0)(typescript@5.9.3) + '@typescript-eslint/utils': 8.72.0(eslint@10.13.0)(typescript@5.9.3) are-docs-informative: 0.1.1 - comment-parser: 1.4.8 + comment-parser: 1.4.9 debug: 4.4.3 escape-string-regexp: 5.0.0 eslint: 10.13.0 @@ -3498,28 +3438,29 @@ snapshots: semver: 7.8.5 spdx-expression-parse: 5.0.0 to-valid-identifier: 1.0.0 + optionalDependencies: + typescript: 5.9.3 transitivePeerDependencies: - supports-color - - typescript eslint-plugin-jsonc@3.4.2(eslint@10.13.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.13.0) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0) '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.7.3 '@ota-meshi/ast-token-store': 0.3.0 diff-sequences: 29.6.3 eslint: 10.13.0 - eslint-json-compat-utils: 0.2.3(eslint@10.13.0)(jsonc-eslint-parser@3.1.0) - jsonc-eslint-parser: 3.1.0 + eslint-json-compat-utils: 0.2.3(eslint@10.13.0)(jsonc-eslint-parser@3.3.0) + jsonc-eslint-parser: 3.3.0 natural-compare: 1.4.0 synckit: 0.11.12 transitivePeerDependencies: - '@eslint/json' - eslint-plugin-n@18.3.0(eslint@10.13.0)(typescript@5.9.3): + eslint-plugin-n@18.5.0(eslint@10.13.0)(typescript@5.9.3): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.13.0) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0) enhanced-resolve: 5.18.4 eslint: 10.13.0 eslint-plugin-es-x: 7.8.0(eslint@10.13.0) @@ -3527,24 +3468,27 @@ snapshots: globals: 15.15.0 globrex: 0.1.2 ignore: 5.3.2 + js-yaml: 5.5.0 semver: 7.8.5 optionalDependencies: typescript: 5.9.3 eslint-plugin-no-only-tests@3.4.0: {} - eslint-plugin-perfectionist@5.10.1(eslint@10.13.0)(typescript@5.9.3): + eslint-plugin-perfectionist@5.13.0(eslint@10.13.0)(typescript@5.9.3): dependencies: - '@typescript-eslint/utils': 8.66.0(eslint@10.13.0)(typescript@5.9.3) - eslint: 10.13.0 + '@typescript-eslint/types': 8.72.0 + '@typescript-eslint/utils': 8.72.0(eslint@10.13.0)(typescript@5.9.3) natural-orderby: 5.0.0 + optionalDependencies: + eslint: 10.13.0 transitivePeerDependencies: - supports-color - typescript eslint-plugin-pnpm@1.9.1(eslint@10.13.0): dependencies: - empathic: 2.0.1 + empathic: 2.1.0 eslint: 10.13.0 eslint-json-compat-utils: 0.2.3(eslint@10.13.0)(jsonc-eslint-parser@3.3.0) jsonc-eslint-parser: 3.3.0 @@ -3556,13 +3500,13 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-regexp@3.3.0(eslint@10.13.0): + eslint-plugin-regexp@3.3.1(eslint@10.13.0): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.13.0) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0) '@eslint-community/regexpp': 4.12.2 - comment-parser: 1.4.7 + comment-parser: 1.4.8 eslint: 10.13.0 - jsdoc-type-pratt-parser: 9.0.0 + jsdoc-type-pratt-parser: 9.2.1 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 @@ -3578,11 +3522,11 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@74.0.0(eslint@10.13.0): + eslint-plugin-unicorn@78.0.0(eslint@10.13.0)(typescript@5.9.3): dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0) - '@eslint/css-tree': 4.0.5 - browserslist: 4.28.9 + '@eslint/css-tree': 4.1.2 + browserslist: 4.29.4 change-case: 5.4.4 ci-info: 4.4.0 core-js-compat: 3.50.0 @@ -3590,27 +3534,33 @@ snapshots: entities: 8.1.0 eslint: 10.13.0 find-up-simple: 1.0.1 - globals: 17.12.0 + globals: 17.13.0 + identifier-regex: 1.1.0 indent-string: 5.0.0 is-builtin-module: 5.0.0 - is-identifier: 1.1.0 + micromark: 4.0.3 + parse5: 8.0.1 pluralize: 8.0.0 quote-js-string: 0.1.0 - regjsparser: 0.13.2 + regjsparser: 0.13.4 reserved-identifiers: 1.2.0 semver: 7.8.5 strip-indent: 4.1.1 yaml: 2.9.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color - eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0): + eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.72.0(@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0): dependencies: eslint: 10.13.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.70.0(@typescript-eslint/parser@8.70.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.72.0(@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(typescript@5.9.3) - eslint-plugin-vue@10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.13.0))(@typescript-eslint/parser@8.70.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(vue-eslint-parser@10.4.1(eslint@10.13.0)): + eslint-plugin-vue@10.11.1(@stylistic/eslint-plugin@5.10.0(eslint@10.13.0))(@typescript-eslint/parser@8.72.0(eslint@10.13.0)(typescript@5.9.3))(eslint@10.13.0)(vue-eslint-parser@10.4.1(eslint@10.13.0)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.13.0) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0) eslint: 10.13.0 natural-compare: 1.4.0 nth-check: 2.1.1 @@ -3620,9 +3570,9 @@ snapshots: xml-name-validator: 5.0.0 optionalDependencies: '@stylistic/eslint-plugin': 5.10.0(eslint@10.13.0) - '@typescript-eslint/parser': 8.70.0(eslint@10.13.0)(typescript@5.9.3) + '@typescript-eslint/parser': 8.72.0(eslint@10.13.0)(typescript@5.9.3) - eslint-plugin-yml@3.8.1(eslint@10.13.0): + eslint-plugin-yml@3.9.0(eslint@10.13.0): dependencies: '@eslint/core': 1.2.1 '@eslint/plugin-kit': 0.7.3 @@ -3698,6 +3648,8 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 5.0.1 + esprima@4.0.1: {} + esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -3770,8 +3722,6 @@ snapshots: fsevents@2.3.3: optional: true - function-timeout@1.0.2: {} - get-tsconfig@4.13.7: dependencies: resolve-pkg-maps: 1.0.0 @@ -3788,7 +3738,7 @@ snapshots: globals@15.15.0: {} - globals@17.12.0: {} + globals@17.13.0: {} globrex@0.1.2: {} @@ -3830,12 +3780,13 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-identifier@1.1.0: + isexe@2.0.0: {} + + js-yaml@5.5.0: dependencies: - identifier-regex: 1.1.0 - super-regex: 1.1.0 + argparse: 3.0.4 - isexe@2.0.0: {} + jsdoc-type-pratt-parser@5.9.2: {} jsdoc-type-pratt-parser@9.0.0: dependencies: @@ -3846,18 +3797,16 @@ snapshots: '@types/estree': 1.0.9 '@types/node': 26.5.1 + jsdoc-type-pratt-parser@9.4.0: + dependencies: + '@types/estree': 1.0.9 + jsesc@3.1.0: {} json-schema-traverse@0.4.1: {} json-stable-stringify-without-jsonify@1.0.1: {} - jsonc-eslint-parser@3.1.0: - dependencies: - acorn: 8.16.0 - eslint-visitor-keys: 5.0.1 - semver: 7.8.5 - jsonc-eslint-parser@3.3.0: dependencies: acorn: 8.16.0 @@ -3948,12 +3897,6 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 - make-asynchronous@1.1.0: - dependencies: - p-event: 6.0.1 - type-fest: 4.41.0 - web-worker: 1.5.0 - markdown-table@3.0.4: {} mdast-util-find-and-replace@3.0.2: @@ -4081,7 +4024,7 @@ snapshots: dependencies: '@types/mdast': 4.0.4 - mdn-data@2.29.0: {} + mdn-data@2.37.2: {} micromark-core-commonmark@2.0.3: dependencies: @@ -4240,6 +4183,10 @@ snapshots: micromark-util-decode-numeric-character-reference: 2.0.2 micromark-util-symbol: 2.0.1 + micromark-util-edit-map@1.0.0: + dependencies: + micromark-util-types: 2.0.2 + micromark-util-encode@2.0.1: {} micromark-util-html-tag-name@2.0.1: {} @@ -4291,6 +4238,29 @@ snapshots: transitivePeerDependencies: - supports-color + micromark@4.0.3: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.3 + decode-named-character-reference: 1.3.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-edit-map: 1.0.0 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + minimatch@10.2.6: dependencies: brace-expansion: 5.0.8 @@ -4312,7 +4282,7 @@ snapshots: natural-orderby@5.0.0: {} - node-releases@2.0.55: {} + node-releases@2.0.60: {} nth-check@2.1.1: dependencies: @@ -4331,10 +4301,6 @@ snapshots: type-check: 0.4.0 word-wrap: 1.2.5 - p-event@6.0.1: - dependencies: - p-timeout: 6.1.4 - p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -4343,8 +4309,6 @@ snapshots: dependencies: p-limit: 3.1.0 - p-timeout@6.1.4: {} - package-manager-detector@1.8.0: {} parse-gitignore@2.0.0: {} @@ -4355,6 +4319,10 @@ snapshots: parse-statements@1.0.11: {} + parse5@8.0.1: + dependencies: + entities: 8.1.0 + path-exists@4.0.0: {} path-key@3.1.1: {} @@ -4417,7 +4385,7 @@ snapshots: '@eslint-community/regexpp': 4.12.2 refa: 0.12.1 - regjsparser@0.13.2: + regjsparser@0.13.4: dependencies: jsesc: 3.1.0 @@ -4499,6 +4467,9 @@ snapshots: source-map-js@1.2.1: {} + source-map@0.7.6: + optional: true + spdx-exceptions@2.5.0: {} spdx-expression-parse@5.0.0: @@ -4512,22 +4483,12 @@ snapshots: strip-indent@4.1.1: {} - super-regex@1.1.0: - dependencies: - function-timeout: 1.0.2 - make-asynchronous: 1.1.0 - time-span: 5.1.0 - synckit@0.11.12: dependencies: '@pkgr/core': 0.2.9 tapable@2.3.0: {} - time-span@5.1.0: - dependencies: - convert-hrtime: 5.0.0 - tinybench@6.2.2: {} tinyexec@1.3.1: {} @@ -4585,8 +4546,6 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-fest@4.41.0: {} - typescript@5.9.3: {} ufo@1.6.3: {} @@ -4628,9 +4587,9 @@ snapshots: universal-user-agent@7.0.3: {} - update-browserslist-db@1.3.3(browserslist@4.28.9): + update-browserslist-db@1.3.4(browserslist@4.29.4): dependencies: - browserslist: 4.28.9 + browserslist: 4.29.4 escalade: 3.2.0 picocolors: 1.1.1 @@ -4642,6 +4601,8 @@ snapshots: verkit@0.3.2: {} + verkit@0.4.1: {} + verkit@0.5.0: {} vite@8.0.13(@types/node@26.5.1)(yaml@2.9.1): @@ -4689,8 +4650,6 @@ snapshots: transitivePeerDependencies: - supports-color - web-worker@1.5.0: {} - which@2.0.2: dependencies: isexe: 2.0.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index d912245..e8c0ee4 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -16,7 +16,7 @@ catalog: '@actions/core': ^3.0.1 '@actions/exec': ^3.0.0 '@actions/github': ^9.1.1 - '@antfu/eslint-config': ^9.5.1 + '@antfu/eslint-config': ^10.0.0 '@octokit/plugin-rest-endpoint-methods': ^18.0.0 '@types/node': ^24.19.2 '@typescript/native-preview': 7.0.0-dev.20260707.2 From 5cfe14f1a411d98771123d8de648c703c96e69e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=8E=E4=BC=9F=E6=9D=B0?= <674416404@qq.com> Date: Tue, 27 Oct 2026 09:54:48 +0800 Subject: [PATCH 2/2] chore: fix lint --- actions/cnb-delete-branch/index.test.ts | 4 +- actions/cnb-delete-branch/index.ts | 8 +- actions/issues-helper/index.ts | 4 +- actions/issues-helper/main.ts | 47 ++++- actions/maintain-one-comment/index.ts | 4 +- actions/maintain-one-comment/main.test.ts | 20 +- actions/maintain-one-comment/main.ts | 4 +- actions/upgrade-deps/src/constants.ts | 15 +- actions/upgrade-deps/src/dependencies.ts | 29 ++- actions/upgrade-deps/src/github.ts | 21 +- actions/upgrade-deps/src/index.ts | 4 +- actions/upgrade-deps/src/main.ts | 21 +- actions/upgrade-deps/src/pull-request.ts | 76 +++++-- actions/upgrade-deps/src/workspace.ts | 97 +++++++-- actions/upgrade-deps/test/main.test.ts | 235 +++++++++++++--------- packages/utils/git-helper.ts | 32 ++- packages/utils/github-helper.ts | 10 +- 17 files changed, 466 insertions(+), 165 deletions(-) diff --git a/actions/cnb-delete-branch/index.test.ts b/actions/cnb-delete-branch/index.test.ts index 2ce8d32..92a393d 100644 --- a/actions/cnb-delete-branch/index.test.ts +++ b/actions/cnb-delete-branch/index.test.ts @@ -94,7 +94,9 @@ describe('删除 CNB 分支', () => { it('分页拉取 Pull Request 列表', async () => { const firstPage = Array.from({ length: 100 }, (_, index) => createPullRequest(String(index + 1))) - const secondPage = [createPullRequest('101')] + const secondPage = [ + createPullRequest('101'), + ] mockFetchOnce(200, JSON.stringify(firstPage)) mockFetchOnce(200, JSON.stringify(secondPage)) diff --git a/actions/cnb-delete-branch/index.ts b/actions/cnb-delete-branch/index.ts index b80eb6d..3cd0f8c 100644 --- a/actions/cnb-delete-branch/index.ts +++ b/actions/cnb-delete-branch/index.ts @@ -172,13 +172,17 @@ export async function main(): Promise { core.info(`Branch "${branch}" does not exist; skip delete`) } catch (error) { - const message = error instanceof Error ? error.message : String(error) + const message = error instanceof Error + ? error.message + : String(error) core.setFailed(message) } } if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) { main().catch((error) => { - core.setFailed(`cnb-delete-branch failed: ${error instanceof Error ? error.message : String(error)}`) + core.setFailed(`cnb-delete-branch failed: ${error instanceof Error + ? error.message + : String(error)}`) }) } diff --git a/actions/issues-helper/index.ts b/actions/issues-helper/index.ts index 36a3592..479261d 100644 --- a/actions/issues-helper/index.ts +++ b/actions/issues-helper/index.ts @@ -2,5 +2,7 @@ import * as core from '@actions/core' import { main } from './main' main().catch((error) => { - core.setFailed(`issues-helper failed: ${error instanceof Error ? error.message : String(error)}`) + core.setFailed(`issues-helper failed: ${error instanceof Error + ? error.message + : String(error)}`) }) diff --git a/actions/issues-helper/main.ts b/actions/issues-helper/main.ts index 92cefc4..38e9854 100644 --- a/actions/issues-helper/main.ts +++ b/actions/issues-helper/main.ts @@ -8,7 +8,16 @@ type IssueState = 'closed' | 'open' type CloseReason = 'completed' | 'not_planned' const actionNames = new Set(['create-comment', 'update-issue', 'mark-duplicate']) -const reactionContents = new Set(['+1', '-1', 'laugh', 'confused', 'heart', 'hooray', 'rocket', 'eyes']) +const reactionContents = new Set([ + '+1', + '-1', + 'laugh', + 'confused', + 'heart', + 'hooray', + 'rocket', + 'eyes', +]) const permissionRanks: Record = { none: 0, read: 1, @@ -52,7 +61,9 @@ function getRepoParams() { function getIssueNumber(): number { const issueNumberInput = core.getInput('issue-number') - const issueNumber = issueNumberInput ? Number.parseInt(issueNumberInput, 10) : github.context.issue.number + const issueNumber = issueNumberInput + ? Number.parseInt(issueNumberInput, 10) + : github.context.issue.number if (!Number.isInteger(issueNumber) || issueNumber <= 0) throw new Error('Missing issue number') @@ -72,16 +83,22 @@ function isReactionContent(value: string): value is ReactionContent { } function getCloseReason(): CloseReason { - return core.getInput('close-reason') === 'completed' ? 'completed' : 'not_planned' + return core.getInput('close-reason') === 'completed' + ? 'completed' + : 'not_planned' } function getIssueState(value: string | undefined): IssueState { - return value === 'closed' ? 'closed' : 'open' + return value === 'closed' + ? 'closed' + : 'open' } function getLabelNames(labels: Array): string[] { return labels - .map(label => (typeof label === 'string' ? label : label.name || '')) + .map(label => (typeof label === 'string' + ? label + : label.name || '')) .filter(Boolean) } @@ -145,7 +162,9 @@ async function updateIssue(octokit: Octokit) { const state = core.getInput('state') const labels = splitInput(core.getInput('labels')) const assignees = splitInput(core.getInput('assignees')) - const updateMode = core.getInput('update-mode') === 'append' ? 'append' : 'replace' + const updateMode = core.getInput('update-mode') === 'append' + ? 'append' + : 'replace' const { data: issue } = await octokit.rest.issues.get(params) const nextBody = body ? updateMode === 'append' @@ -153,13 +172,19 @@ async function updateIssue(octokit: Octokit) { : body : issue.body || '' - const nextState = state === 'closed' || state === 'open' ? state : getIssueState(issue.state) + const nextState = state === 'closed' || state === 'open' + ? state + : getIssueState(issue.state) await octokit.rest.issues.update({ ...params, - assignees: assignees.length ? assignees : getAssigneeNames(issue.assignees), + assignees: assignees.length + ? assignees + : getAssigneeNames(issue.assignees), body: nextBody, - labels: labels.length ? labels : getLabelNames(issue.labels), + labels: labels.length + ? labels + : getLabelNames(issue.labels), state: nextState, title: title || issue.title, }) @@ -168,7 +193,9 @@ async function updateIssue(octokit: Octokit) { async function setIssueLabels(octokit: Octokit, params: ReturnType, labels: string[]) { const { data: issue } = await octokit.rest.issues.get(params) const baseLabels = getLabelNames(issue.labels) - const nextLabels = [...new Set(labels)] + const nextLabels = [ + ...new Set(labels), + ] const removeLabels = baseLabels.filter(label => !nextLabels.includes(label)) const addLabels = nextLabels.filter(label => !baseLabels.includes(label)) diff --git a/actions/maintain-one-comment/index.ts b/actions/maintain-one-comment/index.ts index 8b51b7d..0050404 100644 --- a/actions/maintain-one-comment/index.ts +++ b/actions/maintain-one-comment/index.ts @@ -2,5 +2,7 @@ import * as core from '@actions/core' import { main } from './main' main().catch((error) => { - core.setFailed(`maintain-one-comment failed: ${error instanceof Error ? error.message : String(error)}`) + core.setFailed(`maintain-one-comment failed: ${error instanceof Error + ? error.message + : String(error)}`) }) diff --git a/actions/maintain-one-comment/main.test.ts b/actions/maintain-one-comment/main.test.ts index 0773f3e..e079e7a 100644 --- a/actions/maintain-one-comment/main.test.ts +++ b/actions/maintain-one-comment/main.test.ts @@ -64,7 +64,9 @@ describe('maintain-one-comment', () => { })), }) .mockResolvedValueOnce({ - data: [{ body: 'comment-101', id: 101 }], + data: [ + { body: 'comment-101', id: 101 }, + ], }), updateComment: vi.fn(), } @@ -93,7 +95,9 @@ describe('maintain-one-comment', () => { it('没有匹配评论时创建新评论', async () => { const issues = { - createComment: vi.fn().mockResolvedValue({ data: { body: 'new body', id: 9 } }), + createComment: vi.fn().mockResolvedValue({ + data: { body: 'new body', id: 9 }, + }), deleteComment: vi.fn(), listComments: vi.fn().mockResolvedValue({ data: [] }), updateComment: vi.fn(), @@ -124,7 +128,9 @@ describe('maintain-one-comment', () => { { body: 'old ', id: 3 }, ], }), - updateComment: vi.fn().mockResolvedValue({ data: { body: 'new ', id: 3 } }), + updateComment: vi.fn().mockResolvedValue({ + data: { body: 'new ', id: 3 }, + }), } await expect(maintainOneComment(issues, { @@ -153,7 +159,9 @@ describe('maintain-one-comment', () => { { body: 'duplicate ', id: 5 }, ], }), - updateComment: vi.fn().mockResolvedValue({ data: { body: 'new ', id: 3 } }), + updateComment: vi.fn().mockResolvedValue({ + data: { body: 'new ', id: 3 }, + }), } await expect(maintainOneComment(issues, { @@ -186,7 +194,9 @@ describe('maintain-one-comment', () => { { body: 'old body\n', id: 3 }, ], }), - updateComment: vi.fn().mockResolvedValue({ data: { body: 'new body\n', id: 3 } }), + updateComment: vi.fn().mockResolvedValue({ + data: { body: 'new body\n', id: 3 }, + }), } await expect(maintainOneComment(issues, { diff --git a/actions/maintain-one-comment/main.ts b/actions/maintain-one-comment/main.ts index 37f25f8..0332ec4 100644 --- a/actions/maintain-one-comment/main.ts +++ b/actions/maintain-one-comment/main.ts @@ -37,7 +37,9 @@ export function findMatchingComments(comments: IssueComment[], selector: string) } export function buildCommentBody(body: string, bodyInclude?: string): string { - return bodyInclude && !body.includes(bodyInclude) ? `${body}\n${bodyInclude}` : body + return bodyInclude && !body.includes(bodyInclude) + ? `${body}\n${bodyInclude}` + : body } export async function listIssueComments( diff --git a/actions/upgrade-deps/src/constants.ts b/actions/upgrade-deps/src/constants.ts index 58ece7f..6015a19 100644 --- a/actions/upgrade-deps/src/constants.ts +++ b/actions/upgrade-deps/src/constants.ts @@ -1,7 +1,16 @@ export const PACKAGE_MANAGER_COMMANDS = { - pnpm: { cmd: 'pnpm', args: ['up', '-r'] }, - yarn: { cmd: 'yarn', args: ['upgrade', '--latest'] }, - npm: { cmd: 'npm', args: ['install'] }, + pnpm: { + cmd: 'pnpm', + args: ['up', '-r'], + }, + yarn: { + cmd: 'yarn', + args: ['upgrade', '--latest'], + }, + npm: { + cmd: 'npm', + args: ['install'], + }, } as const export const PR_TEMPLATE_PATHS = [ diff --git a/actions/upgrade-deps/src/dependencies.ts b/actions/upgrade-deps/src/dependencies.ts index 9eb7184..6ee82e9 100644 --- a/actions/upgrade-deps/src/dependencies.ts +++ b/actions/upgrade-deps/src/dependencies.ts @@ -20,7 +20,9 @@ export function parseDependencyName(spec: string): string { const value = spec.trim() if (!value) throw new Error('Empty dependency name') - const separator = value.startsWith('@') ? value.indexOf('@', value.indexOf('/') + 1) : value.lastIndexOf('@') + const separator = value.startsWith('@') + ? value.indexOf('@', value.indexOf('/') + 1) + : value.lastIndexOf('@') if (separator > 0) throw new Error(`Dependency versions are not supported: ${spec}. Please pass package names only.`) return value @@ -71,7 +73,7 @@ export function updatePackageManifestVersions( if (specifier === undefined) continue if (typeof specifier !== 'string') - throw new Error(`Unsupported version specifier for ${manifestPath}#${field}.${dep.name}: expected a string`) + throw new TypeError(`Unsupported version specifier for ${manifestPath}#${field}.${dep.name}: expected a string`) if (specifier.startsWith('catalog:')) continue const nextSpecifier = updateVersionSpecifier(specifier, dep.version, `${manifestPath}#${field}.${dep.name}`) @@ -92,12 +94,27 @@ export async function fetchPackageVersion(pkg: string): Promise const { version, repository } = await response.json() as { repository?: string | { directory?: string, url?: string }, version?: string } if (!version) throw new Error('no version found') - const repositoryUrl = typeof repository === 'string' ? repository : repository?.url - const repositoryDirectory = typeof repository === 'object' ? repository?.directory : undefined - return { name: pkg, version, ...(repositoryUrl ? { repositoryUrl } : {}), ...(repositoryDirectory ? { repositoryDirectory } : {}) } + const repositoryUrl = typeof repository === 'string' + ? repository + : repository?.url + const repositoryDirectory = typeof repository === 'object' + ? repository?.directory + : undefined + return { + name: pkg, + version, + ...(repositoryUrl + ? { repositoryUrl } + : {}), + ...(repositoryDirectory + ? { repositoryDirectory } + : {}), + } } catch (error) { - throw new Error(`Failed to get ${pkg} info from npm registry: ${error instanceof Error ? error.message : String(error)}`) + throw new Error(`Failed to get ${pkg} info from npm registry: ${error instanceof Error + ? error.message + : String(error)}`) } } diff --git a/actions/upgrade-deps/src/github.ts b/actions/upgrade-deps/src/github.ts index 3c9c03d..18204f9 100644 --- a/actions/upgrade-deps/src/github.ts +++ b/actions/upgrade-deps/src/github.ts @@ -13,7 +13,9 @@ export function parseGithubRepository(repositoryUrl?: string): GithubRepository return undefined const [owner, name] = url.pathname.replace(/^\//, '').split('/') const repo = name?.replace(/\.git$/, '') - return owner && repo ? { owner, repo } : undefined + return owner && repo + ? { owner, repo } + : undefined } catch { return undefined @@ -22,7 +24,9 @@ export function parseGithubRepository(repositoryUrl?: string): GithubRepository function getMarkdownHeading(line: string): string | undefined { const prefix = line.match(/^#{1,6}[ \t]+/) - return prefix ? line.slice(prefix[0].length).trim() : undefined + return prefix + ? line.slice(prefix[0].length).trim() + : undefined } export function extractVersionChangelog(content: string, version: string): string | undefined { @@ -38,7 +42,9 @@ export function extractVersionChangelog(content: string, version: string): strin if (!level) return undefined const end = lines.findIndex((line, index) => index > start && (line.match(/^#{1,6}(?=[ \t])/)?.[0].length ?? 7) <= level) - return lines.slice(start, end === -1 ? undefined : end).join('\n').trim() + return lines.slice(start, end === -1 + ? undefined + : end).join('\n').trim() } export async function fetchDependencyRelease(dep: DependencyInfo, token: string): Promise { @@ -51,7 +57,10 @@ export async function fetchDependencyRelease(dep: DependencyInfo, token: string) if (token && token !== 'test') headers.Authorization = `Bearer ${token}` try { - const changelogPath = [...(dep.repositoryDirectory?.split('/').filter(Boolean) ?? []), 'CHANGELOG.md'].map(encodeURIComponent).join('/') + const changelogPath = [ + ...(dep.repositoryDirectory?.split('/').filter(Boolean) ?? []), + 'CHANGELOG.md', + ].map(encodeURIComponent).join('/') const response = await fetch(`https://api.github.com/repos/${repository.owner}/${repository.repo}/contents/${changelogPath}`, { headers }) if (response.status === 404) { core.warning(`No CHANGELOG.md found for ${dep.name}`) @@ -68,7 +77,9 @@ export async function fetchDependencyRelease(dep: DependencyInfo, token: string) return { body, tag: `${dep.name}@${dep.version}`, url } } catch (error) { - core.warning(`Failed to get CHANGELOG.md for ${dep.name}@${dep.version}: ${error instanceof Error ? error.message : String(error)}`) + core.warning(`Failed to get CHANGELOG.md for ${dep.name}@${dep.version}: ${error instanceof Error + ? error.message + : String(error)}`) return undefined } } diff --git a/actions/upgrade-deps/src/index.ts b/actions/upgrade-deps/src/index.ts index b691a8c..946f595 100644 --- a/actions/upgrade-deps/src/index.ts +++ b/actions/upgrade-deps/src/index.ts @@ -2,5 +2,7 @@ import * as core from '@actions/core' import { main } from './main' main().catch((error) => { - core.setFailed(`upgrade-deps failed: ${error instanceof Error ? error.message : String(error)}`) + core.setFailed(`upgrade-deps failed: ${error instanceof Error + ? error.message + : String(error)}`) }) diff --git a/actions/upgrade-deps/src/main.ts b/actions/upgrade-deps/src/main.ts index 77a43af..2f2b62a 100644 --- a/actions/upgrade-deps/src/main.ts +++ b/actions/upgrade-deps/src/main.ts @@ -22,7 +22,12 @@ export async function updateDependencies(context: TriggerContext): Promise let depInfos = await resolveDependencyInfos(deps) if (packageManager !== 'npm') await exec.exec('corepack', ['enable']) - const gitHelper = new GitHelper({ repo: context.repo, owner: context.owner, token: context.token, dryRun: context.dryRun }) + const gitHelper = new GitHelper({ + repo: context.repo, + owner: context.owner, + token: context.token, + dryRun: context.dryRun, + }) const baseBranch = await gitHelper.clone() await gitHelper.initSubmodule() const template = await readPullRequestTemplate(`./${context.repo}`) @@ -39,7 +44,12 @@ export async function updateDependencies(context: TriggerContext): Promise const body = buildPullRequestBody(template, depInfos, context.repo) await gitHelper.commit(title) await gitHelper.push(branchName) - const githubHelper = new GithubHelper({ owner: context.owner, repo: context.repo, token: context.token, dryRun: context.dryRun }) + const githubHelper = new GithubHelper({ + owner: context.owner, + repo: context.repo, + token: context.token, + dryRun: context.dryRun, + }) await githubHelper.createPR(title, branchName, body, baseBranch) } @@ -47,5 +57,10 @@ export async function main(): Promise { const repo = core.getInput('repo') || github.context.repo.repo const owner = core.getInput('owner') || github.context.repo.owner const token = core.getInput('token', { required: true }) - await updateDependencies({ repo, owner, token, dryRun: core.getBooleanInput('dry-run') }) + await updateDependencies({ + repo, + owner, + token, + dryRun: core.getBooleanInput('dry-run'), + }) } diff --git a/actions/upgrade-deps/src/pull-request.ts b/actions/upgrade-deps/src/pull-request.ts index 600b783..d49a7a5 100644 --- a/actions/upgrade-deps/src/pull-request.ts +++ b/actions/upgrade-deps/src/pull-request.ts @@ -3,19 +3,26 @@ import { CHANGELOG_TARGET_SECTIONS, COMPONENT_REPOSITORIES, NO_CHANGELOG_CHECKBO function heading(line: string): string | undefined { const prefix = line.match(/^#{1,6}[ \t]+/) - return prefix ? line.slice(prefix[0].length).trim() : undefined + return prefix + ? line.slice(prefix[0].length).trim() + : undefined } function insertAfter(body: string, target: RegExp | string, content: string): { body: string, inserted: boolean } { const lines = body.split('\n') const index = lines.findIndex((line) => { const value = heading(line) - return value !== undefined && (typeof target === 'string' ? value === target : target.test(value)) + return value !== undefined && (typeof target === 'string' + ? value === target + : target.test(value)) }) if (index === -1) return { body, inserted: false } lines.splice(index + 1, 0, '', content) - return { body: lines.join('\n'), inserted: true } + return { + body: lines.join('\n'), + inserted: true, + } } function formatReleaseBody(body: string): string { @@ -23,7 +30,11 @@ function formatReleaseBody(body: string): string { } export function getDependencySummary(deps: DependencyInfo[]): string { - return ['自动升级以下依赖:', '', ...deps.map(dep => `- \`${dep.name}\` 升级至 \`${dep.version}\``)].join('\n') + return [ + '自动升级以下依赖:', + '', + ...deps.map(dep => `- \`${dep.name}\` 升级至 \`${dep.version}\``), + ].join('\n') } export function getReleaseNotesMarkdown(deps: DependencyInfo[]): string { @@ -85,18 +96,28 @@ export function parseReleaseChangelog(body: string): ChangelogEntry[] { continue while (parents.length && parents[parents.length - 1].indent >= indent) parents.pop() if (text.endsWith(':')) { - parents.push({ indent, text: text.slice(0, -1) }) + parents.push({ + indent, + text: text.slice(0, -1), + }) continue } const parent = parents.map(item => item.text).join(': ') - entries.push({ type, text: parent ? `${parent}: ${text}` : text }) + entries.push({ + type, + text: parent + ? `${parent}: ${text}` + : text, + }) } return entries } function formatType(type: ChangelogType, scoped: boolean): string { const breaking = type.endsWith('!') - const base = breaking ? type.slice(0, -1) : type + const base = breaking + ? type.slice(0, -1) + : type return `${base}${scoped ? '(Icon)' : ''}${breaking ? '!' : ''}` } @@ -107,8 +128,12 @@ function formatCrossRepositoryLinks(text: string): string { export function getChangelogMarkdown(deps: DependencyInfo[], targetRepo: string): string { const scoped = COMPONENT_REPOSITORIES.has(targetRepo) return deps.filter(dep => !NO_CHANGELOG_DEPENDENCIES.has(dep.name)).flatMap((dep) => { - const entries = dep.release ? parseReleaseChangelog(dep.release.body) : [] - return entries.length ? entries.map(entry => `- ${formatType(entry.type, scoped)}: ${formatCrossRepositoryLinks(entry.text)}`) : [`- ${formatType('chore', scoped)}: upgrade ${dep.name} to ${dep.version}`] + const entries = dep.release + ? parseReleaseChangelog(dep.release.body) + : [] + return entries.length + ? entries.map(entry => `- ${formatType(entry.type, scoped)}: ${formatCrossRepositoryLinks(entry.text)}`) + : [`- ${formatType('chore', scoped)}: upgrade ${dep.name} to ${dep.version}`] }).join('\n') } @@ -117,12 +142,22 @@ function buildNoChangelogBody(template?: string): string { return NO_CHANGELOG_CHECKBOX const body = template.trim() const updated = body.replace(/^- \[ \] 本条 PR 不需要纳入 Changelog\r?$/m, NO_CHANGELOG_CHECKBOX) - return updated === body ? `${body}\n\n${NO_CHANGELOG_CHECKBOX}` : updated + return updated === body + ? `${body}\n\n${NO_CHANGELOG_CHECKBOX}` + : updated } function fillCheckboxes(template: string): string { - const labels = ['其他', '文档已补充或无须补充', '代码演示已提供或无须提供', 'TypeScript 定义已补充或无须补充', 'Changelog 已提供或无须提供'] - return template.replace(/^- \[ \] (.+)$/gm, (line, label: string) => labels.includes(label.trim()) ? line.replace('[ ]', '[x]') : line).replace(/^- fix\(组件名称\): 处理问题或特性描述 \.\.\.$/gm, '') + const labels = [ + '其他', + '文档已补充或无须补充', + '代码演示已提供或无须提供', + 'TypeScript 定义已补充或无须补充', + 'Changelog 已提供或无须提供', + ] + return template.replace(/^- \[ \] (.+)$/gm, (line, label: string) => labels.includes(label.trim()) + ? line.replace('[ ]', '[x]') + : line).replace(/^- fix\(组件名称\): 处理问题或特性描述 \.\.\.$/gm, '') } function insertChangelog(body: string, repo: string, changelog: string): { body: string, inserted: boolean } { @@ -133,7 +168,9 @@ function insertChangelog(body: string, repo: string, changelog: string): { body: result = update.body inserted ||= update.inserted } - return inserted ? { body: result, inserted } : insertAfter(result, '📝 更新日志', changelog) + return inserted + ? { body: result, inserted } + : insertAfter(result, '📝 更新日志', changelog) } export function buildPullRequestBody(template: string | undefined, deps: DependencyInfo[], targetRepo: string): string { @@ -151,6 +188,15 @@ export function buildPullRequestBody(template: string | undefined, deps: Depende body = backgroundResult.body const changelogResult = insertChangelog(body, targetRepo, changelog) body = changelogResult.body - const fallback = [!backgroundResult.inserted ? `## 依赖升级\n\n${background}` : '', !changelogResult.inserted ? `## 版本日志\n\n${changelog}` : ''].filter(Boolean) - return fallback.length ? `${fallback.join('\n\n')}\n\n${body}` : body + const fallback = [ + !backgroundResult.inserted + ? `## 依赖升级\n\n${background}` + : '', + !changelogResult.inserted + ? `## 版本日志\n\n${changelog}` + : '', + ].filter(Boolean) + return fallback.length + ? `${fallback.join('\n\n')}\n\n${body}` + : body } diff --git a/actions/upgrade-deps/src/workspace.ts b/actions/upgrade-deps/src/workspace.ts index 31af29d..d9ec961 100644 --- a/actions/upgrade-deps/src/workspace.ts +++ b/actions/upgrade-deps/src/workspace.ts @@ -39,7 +39,11 @@ export function updatePnpmCatalogs(content: string, deps: DependencyInfo[]): Cat if (!isScalar(pair.value) || typeof pair.value.value !== 'string' || !pair.value.range) throw new Error(`Unsupported catalog value for ${location}.${pair.key.value}: expected a version string`) const [start, end] = pair.value.range - edits.push({ start, end, value: formatYamlScalar(content.slice(start, end), updateVersionSpecifier(pair.value.value, version, `${location}.${pair.key.value}`)) }) + edits.push({ + start, + end, + value: formatYamlScalar(content.slice(start, end), updateVersionSpecifier(pair.value.value, version, `${location}.${pair.key.value}`)), + }) found.add(pair.key.value) } } @@ -54,7 +58,10 @@ export function updatePnpmCatalogs(content: string, deps: DependencyInfo[]): Cat } } const updatedContent = edits.sort((a, b) => b.start - a.start).reduce((result, edit) => `${result.slice(0, edit.start)}${edit.value}${result.slice(edit.end)}`, content) - return { catalogDependencies: [...found], content: updatedContent } + return { + catalogDependencies: [...found], + content: updatedContent, + } } export async function findPnpmWorkspaceFile(startDir: string, cloneRoot: string): Promise { @@ -82,14 +89,24 @@ export async function findPnpmWorkspaceFile(startDir: string, cloneRoot: string) } export async function listPnpmWorkspacePackagePaths(workspaceDir: string): Promise { - const { stdout } = await exec.getExecOutput('pnpm', ['-r', 'list', '--depth', '-1', '--json'], { cwd: workspaceDir, silent: true }) + const { stdout } = await exec.getExecOutput('pnpm', [ + '-r', + 'list', + '--depth', + '-1', + '--json', + ], { cwd: workspaceDir, silent: true }) let packages: Array<{ path?: string }> try { packages = JSON.parse(stdout) as Array<{ path?: string }> if (!Array.isArray(packages)) throw new TypeError('expected an array') } - catch (error) { throw new Error(`Failed to read pnpm workspace packages: ${error instanceof Error ? error.message : String(error)}`) } + catch (error) { + throw new Error(`Failed to read pnpm workspace packages: ${error instanceof Error + ? error.message + : String(error)}`) + } const root = await realpath(path.resolve(workspaceDir)) const paths = new Set([root]) for (const pkg of packages) { @@ -107,29 +124,73 @@ export function getPnpmUpdateCommands(deps: DependencyInfo[], catalogDependencie const catalogNames = new Set(catalogDependencies) const regular = deps.filter(dep => !catalogNames.has(dep.name)) return [ - ...(regular.length ? [{ args: ['-r', 'up', ...regular.map(dep => dep.name)], cwd: targetPath }] : []), - ...(catalogDependencies.length ? [{ args: ['install'], cwd: workspaceDir }] : []), + ...(regular.length + ? [ + { + args: [ + '-r', + 'up', + ...regular.map(dep => dep.name), + ], + cwd: targetPath, + }, + ] + : []), + ...(catalogDependencies.length + ? [ + { + args: ['install'], + cwd: workspaceDir, + }, + ] + : []), ] } export function getSnapshotUpdateCommand(packageManager: 'npm' | 'yarn' | 'pnpm', deps: DependencyInfo[], targetRepo: string, repoPath: string): PnpmUpdateCommand | undefined { if (!deps.some(dep => /^tdesign-icons(?:-|$)/.test(dep.name))) return undefined - const scripts: Record = { 'tdesign-mobile-react': 'test:update', 'tdesign-mobile-vue': 'test:update', 'tdesign-react': 'test:update', 'tdesign-vue': 'test:update', 'tdesign-vue-next': 'test:vue:update' } + const scripts: Record = { + 'tdesign-mobile-react': 'test:update', + 'tdesign-mobile-vue': 'test:update', + 'tdesign-react': 'test:update', + 'tdesign-vue': 'test:update', + 'tdesign-vue-next': 'test:vue:update', + } const script = scripts[targetRepo] - return script ? { args: packageManager === 'npm' ? ['run', script] : [script], cwd: repoPath } : undefined + return script + ? { + args: packageManager === 'npm' + ? ['run', script] + : [script], + cwd: repoPath, + } + : undefined } export async function updatePackageDependencies(packageManager: 'npm' | 'yarn' | 'pnpm', deps: DependencyInfo[], repo: string, targetDir: string): Promise { - const targetPath = `./${repo}${targetDir ? `/${targetDir}` : ''}` + const targetPath = `./${repo}${targetDir + ? `/${targetDir}` + : ''}` if (packageManager !== 'pnpm') { - const commands = { yarn: ['upgrade', '--latest'], npm: ['install'] } as const - await exec.exec(packageManager, [...commands[packageManager], ...deps.map(dep => dep.name)], { cwd: targetPath }) + const commands = { + yarn: ['upgrade', '--latest'], + npm: ['install'], + } as const + await exec.exec(packageManager, [ + ...commands[packageManager], + ...deps.map(dep => dep.name), + ], { cwd: targetPath }) } else { const workspaceFile = await findPnpmWorkspaceFile(targetPath, `./${repo}`) if (!workspaceFile) { - await exec.exec('pnpm', ['-r', 'up', '--latest', ...deps.map(dep => dep.name)], { cwd: targetPath }) + await exec.exec('pnpm', [ + '-r', + 'up', + '--latest', + ...deps.map(dep => dep.name), + ], { cwd: targetPath }) } else { const original = await readFile(workspaceFile, 'utf8') @@ -153,8 +214,16 @@ export async function updatePackageDependencies(packageManager: 'npm' | 'yarn' | if (catalog.content !== original) updates.unshift({ filePath: workspaceFile, content: catalog.content }) await Promise.all(updates.map(update => writeFile(update.filePath, update.content, 'utf8'))) - for (const command of getPnpmUpdateCommands(deps, catalog.catalogDependencies, targetPath, path.dirname(workspaceFile))) - await exec.exec('pnpm', command.args, { cwd: command.cwd, ...(command.args[0] === 'install' ? { env: { ...processEnv as Record, CI: 'false' } } : {}) }) + for (const command of getPnpmUpdateCommands(deps, catalog.catalogDependencies, targetPath, path.dirname(workspaceFile))) { + await exec.exec('pnpm', command.args, { + cwd: command.cwd, + ...(command.args[0] === 'install' + ? { + env: { ...processEnv as Record, CI: 'false' }, + } + : {}), + }) + } } } const snapshot = getSnapshotUpdateCommand(packageManager, deps, repo, `./${repo}`) diff --git a/actions/upgrade-deps/test/main.test.ts b/actions/upgrade-deps/test/main.test.ts index 3c181e4..a5556e8 100644 --- a/actions/upgrade-deps/test/main.test.ts +++ b/actions/upgrade-deps/test/main.test.ts @@ -142,17 +142,23 @@ describe('升级依赖', () => { }) it('按包管理器执行升级命令', async () => { - await updatePackageDependencies('npm', [{ name: 'vite', version: '7.0.0' }], 'tdesign-vue-next', '') + await updatePackageDependencies('npm', [ + { name: 'vite', version: '7.0.0' }, + ], 'tdesign-vue-next', '') expect(exec.exec).toHaveBeenLastCalledWith('npm', ['install', 'vite'], { cwd: './tdesign-vue-next' }) }) it('按 yarn 执行升级命令', async () => { - await updatePackageDependencies('yarn', [{ name: 'vite', version: '7.0.0' }], 'tdesign-vue-next', 'packages/site') + await updatePackageDependencies('yarn', [ + { name: 'vite', version: '7.0.0' }, + ], 'tdesign-vue-next', 'packages/site') expect(exec.exec).toHaveBeenLastCalledWith('yarn', ['upgrade', '--latest', 'vite'], { cwd: './tdesign-vue-next/packages/site' }) }) it('icons 依赖升级后执行快照更新命令', async () => { - await updatePackageDependencies('npm', [{ name: 'tdesign-icons-vue-next', version: '0.4.6' }], 'tdesign-vue-next', '') + await updatePackageDependencies('npm', [ + { name: 'tdesign-icons-vue-next', version: '0.4.6' }, + ], 'tdesign-vue-next', '') expect(exec.exec).toHaveBeenLastCalledWith('npm', ['run', 'test:vue:update'], { cwd: './tdesign-vue-next' }) }) @@ -194,24 +200,38 @@ describe('升级依赖', () => { try { await mkdir(path.join(tempDir, 'packages', 'site'), { recursive: true }) await mkdir(outsideDir) - vi.mocked(exec.getExecOutput).mockResolvedValueOnce({ stdout: JSON.stringify([ - { path: 'packages/site' }, - { path: `../${path.basename(outsideDir)}` }, - {}, - ]), stderr: '', exitCode: 0 }) + vi.mocked(exec.getExecOutput).mockResolvedValueOnce({ + stdout: JSON.stringify([ + { path: 'packages/site' }, + { path: `../${path.basename(outsideDir)}` }, + {}, + ]), + stderr: '', + exitCode: 0, + }) await expect(listPnpmWorkspacePackagePaths(tempDir)).rejects.toThrow('outside the workspace') - vi.mocked(exec.getExecOutput).mockResolvedValueOnce({ stdout: JSON.stringify([ - { path: 'packages/site' }, - { path: 'packages/site' }, - {}, - ]), stderr: '', exitCode: 0 }) + vi.mocked(exec.getExecOutput).mockResolvedValueOnce({ + stdout: JSON.stringify([ + { path: 'packages/site' }, + { path: 'packages/site' }, + {}, + ]), + stderr: '', + exitCode: 0, + }) await expect(listPnpmWorkspacePackagePaths(tempDir)).resolves.toEqual([ await realpath(tempDir), await realpath(path.join(tempDir, 'packages', 'site')), ]) - expect(exec.getExecOutput).toHaveBeenLastCalledWith('pnpm', ['-r', 'list', '--depth', '-1', '--json'], { cwd: tempDir, silent: true }) + expect(exec.getExecOutput).toHaveBeenLastCalledWith('pnpm', [ + '-r', + 'list', + '--depth', + '-1', + '--json', + ], { cwd: tempDir, silent: true }) } finally { await rm(tempDir, { force: true, recursive: true }) @@ -261,7 +281,9 @@ catalogs: } } ` - const result = updatePackageManifestVersions(content, [{ name: 'vite', version: '7.0.0' }]) + const result = updatePackageManifestVersions(content, [ + { name: 'vite', version: '7.0.0' }, + ]) expect(result.updated).toBe(true) expect(result.content).toContain('// catalog and direct declarations can coexist') @@ -279,7 +301,9 @@ catalogs: "dependencies": { "vite": "workspace:^6.0.0" } -}`, [{ name: 'vite', version: '7.0.0' }])).toThrow('Unsupported version specifier "workspace:^6.0.0"') +}`, [ + { name: 'vite', version: '7.0.0' }, + ])).toThrow('Unsupported version specifier "workspace:^6.0.0"') expect(() => updateVersionSpecifier('=6.0.0', '7.0.0', 'catalog.vite')).toThrow('Unsupported version specifier "=6.0.0"') expect(() => updateVersionSpecifier('^01.2.3', '7.0.0', 'catalog.vite')).toThrow('Unsupported version specifier "^01.2.3"') @@ -303,16 +327,24 @@ catalogs: }) it('升级 icons 依赖后更新对应仓库快照', () => { - expect(getSnapshotUpdateCommand('pnpm', [{ name: 'tdesign-icons-vue-next', version: '0.4.6' }], 'tdesign-vue-next', './tdesign-vue-next')).toEqual({ + expect(getSnapshotUpdateCommand('pnpm', [ + { name: 'tdesign-icons-vue-next', version: '0.4.6' }, + ], 'tdesign-vue-next', './tdesign-vue-next')).toEqual({ args: ['test:vue:update'], cwd: './tdesign-vue-next', }) - expect(getSnapshotUpdateCommand('npm', [{ name: 'tdesign-icons-react', version: '0.6.6' }], 'tdesign-react', './tdesign-react')).toEqual({ + expect(getSnapshotUpdateCommand('npm', [ + { name: 'tdesign-icons-react', version: '0.6.6' }, + ], 'tdesign-react', './tdesign-react')).toEqual({ args: ['run', 'test:update'], cwd: './tdesign-react', }) - expect(getSnapshotUpdateCommand('pnpm', [{ name: 'vite', version: '7.0.0' }], 'tdesign-vue-next', './tdesign-vue-next')).toBeUndefined() - expect(getSnapshotUpdateCommand('pnpm', [{ name: 'tdesign-icons-view', version: '0.5.7' }], 'tdesign', './tdesign')).toBeUndefined() + expect(getSnapshotUpdateCommand('pnpm', [ + { name: 'vite', version: '7.0.0' }, + ], 'tdesign-vue-next', './tdesign-vue-next')).toBeUndefined() + expect(getSnapshotUpdateCommand('pnpm', [ + { name: 'tdesign-icons-view', version: '0.5.7' }, + ], 'tdesign', './tdesign')).toBeUndefined() }) it('解析 npm 常见的 GitHub 仓库地址', () => { @@ -422,7 +454,9 @@ catalogs: }) it('无 release 时生成 npm 链接和提示', () => { - expect(getReleaseNotesMarkdown([{ name: 'vite', version: '7.0.0' }])).toBe( + expect(getReleaseNotesMarkdown([ + { name: 'vite', version: '7.0.0' }, + ])).toBe( '#### [`vite@7.0.0`](https://www.npmjs.com/package/vite/v/7.0.0)\n\n未在仓库的 CHANGELOG.md 中找到对应版本日志。', ) }) @@ -467,15 +501,17 @@ catalogs: - [ ] 代码演示已提供或无须提供 - [ ] TypeScript 定义已补充或无须补充 - [ ] Changelog 已提供或无须提供` - const body = buildPullRequestBody(template, [{ - name: 'tdesign-icons-view', - version: '0.5.7', - release: { - body: '## 🌈 0.5.7 `2026-07-15`\n\n### 🐞 Bug Fixes\n\n- 修复 fullscreen、logo-wecom-filled、no-result-filled、tree-list、wifi-no-filled 5 个图标搜索缺失 @liweijie0812 ([#264](https://github.com/Tencent/tdesign-icons/pull/264))', - tag: 'tdesign-icons-view@0.5.7', - url: 'https://github.com/Tencent/tdesign-icons/releases/tag/tdesign-icons-view%400.5.7', + const body = buildPullRequestBody(template, [ + { + name: 'tdesign-icons-view', + version: '0.5.7', + release: { + body: '## 🌈 0.5.7 `2026-07-15`\n\n### 🐞 Bug Fixes\n\n- 修复 fullscreen、logo-wecom-filled、no-result-filled、tree-list、wifi-no-filled 5 个图标搜索缺失 @liweijie0812 ([#264](https://github.com/Tencent/tdesign-icons/pull/264))', + tag: 'tdesign-icons-view@0.5.7', + url: 'https://github.com/Tencent/tdesign-icons/releases/tag/tdesign-icons-view%400.5.7', + }, }, - }], 'tdesign') + ], 'tdesign') expect(body).toContain('### 💡 需求背景和解决方案\n\n自动升级以下依赖:') expect(body).toContain('### 🔗 相关 Issue\n\n无') @@ -506,15 +542,17 @@ catalogs: - [ ] Changelog 已提供或无须提供` const changelog = '- fix(Icon): 修复 usb 原始图标的图层 ID 错误 @uyarn ([icons#298](https://github.com/Tencent/tdesign-icons/pull/298))' - const body = buildPullRequestBody(template, [{ - name: 'tdesign-icons-vue-next', - version: '0.4.11', - release: { - body: '## 🌈 0.4.11 `2026-08-28`\n\n### 🐞 Bug Fixes\n\n- 修复 usb 原始图标的图层 ID 错误 @uyarn ([#298](https://github.com/Tencent/tdesign-icons/pull/298))', - tag: 'tdesign-icons-vue-next@0.4.11', - url: 'https://github.com/Tencent/tdesign-icons/blob/HEAD/packages/vue-next/CHANGELOG.md', + const body = buildPullRequestBody(template, [ + { + name: 'tdesign-icons-vue-next', + version: '0.4.11', + release: { + body: '## 🌈 0.4.11 `2026-08-28`\n\n### 🐞 Bug Fixes\n\n- 修复 usb 原始图标的图层 ID 错误 @uyarn ([#298](https://github.com/Tencent/tdesign-icons/pull/298))', + tag: 'tdesign-icons-vue-next@0.4.11', + url: 'https://github.com/Tencent/tdesign-icons/blob/HEAD/packages/vue-next/CHANGELOG.md', + }, }, - }], 'tdesign-mobile-vue') + ], 'tdesign-mobile-vue') expect(body).toContain(`### 📝 更新日志\n\n${changelog}`) expect(body).not.toContain(`CHANGELOG.md)\n\n${changelog}`) @@ -565,7 +603,9 @@ catalogs: ])('单独升级 %s 时无需 Changelog', (name) => { expect(buildPullRequestBody( '- [ ] 本条 PR 不需要纳入 Changelog', - [{ name, version: '1.0.0' }], + [ + { name, version: '1.0.0' }, + ], 'tdesign-vue-next', )).toBe('- [x] 本条 PR 不需要纳入 Changelog') }) @@ -585,23 +625,26 @@ catalogs: #### tdesign-vue-next ` - const body = buildPullRequestBody(template, [{ - name: '@tdesign/site-components', - version: '0.19.1', - release: { - body: '## 0.19.1\n\n### Features\n\n- Update site navigation', - tag: '@tdesign/site-components@0.19.1', - url: 'https://github.com/Tencent/tdesign/releases/tag/site-components', + const body = buildPullRequestBody(template, [ + { + name: '@tdesign/site-components', + version: '0.19.1', + release: { + body: '## 0.19.1\n\n### Features\n\n- Update site navigation', + tag: '@tdesign/site-components@0.19.1', + url: 'https://github.com/Tencent/tdesign/releases/tag/site-components', + }, }, - }, { - name: 'tdesign-icons-view', - version: '0.5.7', - release: { - body: '## 0.5.7\n\n### Bug Fixes\n\n- Fix missing icons', - tag: 'tdesign-icons-view@0.5.7', - url: 'https://github.com/Tencent/tdesign-icons/releases/tag/tdesign-icons-view%400.5.7', + { + name: 'tdesign-icons-view', + version: '0.5.7', + release: { + body: '## 0.5.7\n\n### Bug Fixes\n\n- Fix missing icons', + tag: 'tdesign-icons-view@0.5.7', + url: 'https://github.com/Tencent/tdesign-icons/releases/tag/tdesign-icons-view%400.5.7', + }, }, - }], 'tdesign-vue-next') + ], 'tdesign-vue-next') expect(body).toContain('- `@tdesign/site-components` 升级至 `0.19.1`') expect(body).toContain('Update site navigation') @@ -611,11 +654,12 @@ catalogs: }) it('将 release 分类转换成 Conventional Changelog', () => { - const changelog = getChangelogMarkdown([{ - name: 'tdesign-icons-view', - version: '0.5.7', - release: { - body: `## 0.5.7 + const changelog = getChangelogMarkdown([ + { + name: 'tdesign-icons-view', + version: '0.5.7', + release: { + body: `## 0.5.7 ### Breaking Changes - Remove legacy icon @@ -638,10 +682,11 @@ catalogs: ### Others - Update tooling`, - tag: 'tdesign-icons-view@0.5.7', - url: 'https://github.com/Tencent/tdesign-icons/releases/tag/tdesign-icons-view%400.5.7', + tag: 'tdesign-icons-view@0.5.7', + url: 'https://github.com/Tencent/tdesign-icons/releases/tag/tdesign-icons-view%400.5.7', + }, }, - }], 'tdesign-vue-next') + ], 'tdesign-vue-next') expect(changelog).toBe(`- feat(Icon)!: Remove legacy icon - feat(Icon): Add new icon @@ -662,15 +707,17 @@ catalogs: #### @tdesign-vue-next/chat ` - const body = buildPullRequestBody(template, [{ - name: 'tdesign-icons-view', - version: '0.5.7', - release: { - body: '## 0.5.7\n\n### Bug Fixes\n\n- Fix missing icons', - tag: 'tdesign-icons-view@0.5.7', - url: 'https://github.com/Tencent/tdesign-icons/releases/tag/tdesign-icons-view%400.5.7', + const body = buildPullRequestBody(template, [ + { + name: 'tdesign-icons-view', + version: '0.5.7', + release: { + body: '## 0.5.7\n\n### Bug Fixes\n\n- Fix missing icons', + tag: 'tdesign-icons-view@0.5.7', + url: 'https://github.com/Tencent/tdesign-icons/releases/tag/tdesign-icons-view%400.5.7', + }, }, - }], 'tdesign-vue-next') + ], 'tdesign-vue-next') expect(body).toContain('#### tdesign-vue-next\n\n- fix(Icon): Fix missing icons\n') expect(body).not.toContain('#### @tdesign-vue-next/chat\n\n- fix(Icon)') @@ -689,15 +736,17 @@ catalogs: #### @tdesign/uniapp-chat ` - const body = buildPullRequestBody(template, [{ - name: 'tdesign-icons-view', - version: '0.5.7', - release: { - body: '## 0.5.7\n\n### Features\n\n- Add new icon', - tag: 'tdesign-icons-view@0.5.7', - url: 'https://github.com/Tencent/tdesign-icons/releases/tag/tdesign-icons-view%400.5.7', + const body = buildPullRequestBody(template, [ + { + name: 'tdesign-icons-view', + version: '0.5.7', + release: { + body: '## 0.5.7\n\n### Features\n\n- Add new icon', + tag: 'tdesign-icons-view@0.5.7', + url: 'https://github.com/Tencent/tdesign-icons/releases/tag/tdesign-icons-view%400.5.7', + }, }, - }], 'tdesign-miniprogram') + ], 'tdesign-miniprogram') expect(body.match(/- feat\(Icon\): Add new icon/g)).toHaveLength(2) expect(body).toContain('#### tdesign-miniprogram\n\n- feat(Icon): Add new icon') @@ -706,7 +755,9 @@ catalogs: }) it('release 缺失时根据目标仓库生成 chore 日志', () => { - const deps = [{ name: 'vite', version: '7.0.0' }] + const deps = [ + { name: 'vite', version: '7.0.0' }, + ] expect(getChangelogMarkdown(deps, 'tdesign-mobile-vue')).toBe('- chore(Icon): upgrade vite to 7.0.0') expect(getChangelogMarkdown(deps, 'tdesign')).toBe('- chore: upgrade vite to 7.0.0') }) @@ -720,22 +771,26 @@ catalogs: 'tdesign-vue', 'tdesign-vue-next', ])('%s 使用 Icon scope', (repo) => { - expect(getChangelogMarkdown([{ - name: 'vite', - version: '7.0.0', - release: { - body: '## 7.0.0\n\n### Bug Fixes\n\n- Fix issue', - tag: 'v7.0.0', - url: 'https://github.com/vitejs/vite/releases/tag/v7.0.0', + expect(getChangelogMarkdown([ + { + name: 'vite', + version: '7.0.0', + release: { + body: '## 7.0.0\n\n### Bug Fixes\n\n- Fix issue', + tag: 'v7.0.0', + url: 'https://github.com/vitejs/vite/releases/tag/v7.0.0', + }, }, - }], repo)).toBe('- fix(Icon): Fix issue') + ], repo)).toBe('- fix(Icon): Fix issue') }) it('模板没有已知区块时在模板前添加升级内容', () => { - const body = buildPullRequestBody('## Checklist\n\n- [ ] Reviewed', [{ - name: 'vite', - version: '7.0.0', - }], 'unknown-repo') + const body = buildPullRequestBody('## Checklist\n\n- [ ] Reviewed', [ + { + name: 'vite', + version: '7.0.0', + }, + ], 'unknown-repo') expect(body).toMatch(/^## 依赖升级/) expect(body).toContain('## 版本日志') diff --git a/packages/utils/git-helper.ts b/packages/utils/git-helper.ts index 998c29c..6365565 100644 --- a/packages/utils/git-helper.ts +++ b/packages/utils/git-helper.ts @@ -31,18 +31,35 @@ export class GitHelper { private logDryRunInfo(action: string, details?: Record): void { if (this.isDryRun()) { - const message = details ? `${action}: ${JSON.stringify(details)}` : action + const message = details + ? `${action}: ${JSON.stringify(details)}` + : action info(`[DRY-RUN] ${message}`) } } private async initConfig(): Promise { - await exec('git', ['config', '--global', 'user.name', GIT_CONFIG.USER_NAME]) - await exec('git', ['config', '--global', 'user.email', GIT_CONFIG.USER_EMAIL]) + await exec('git', [ + 'config', + '--global', + 'user.name', + GIT_CONFIG.USER_NAME, + ]) + await exec('git', [ + 'config', + '--global', + 'user.email', + GIT_CONFIG.USER_EMAIL, + ]) if (this.token === 'test') { return } - await exec('git', ['config', '--global', `url.https://${this.token}@github.com/.insteadOf`, 'https://github.com/']) + await exec('git', [ + 'config', + '--global', + `url.https://${this.token}@github.com/.insteadOf`, + 'https://github.com/', + ]) } async getConflictFiles(): Promise { @@ -110,7 +127,12 @@ export class GitHelper { } async initSubmodule(): Promise { - await exec('git', ['submodule', 'update', '--init', '--recursive'], { cwd: this.repoPath }) + await exec('git', [ + 'submodule', + 'update', + '--init', + '--recursive', + ], { cwd: this.repoPath }) } async updateSubmodule(): Promise { diff --git a/packages/utils/github-helper.ts b/packages/utils/github-helper.ts index a1f015e..567d4f9 100644 --- a/packages/utils/github-helper.ts +++ b/packages/utils/github-helper.ts @@ -23,7 +23,9 @@ export class GithubHelper { core.startGroup(`dry-run模式, 不运行${methodName}`) for (const [key, value] of Object.entries(params)) { - core.info(`${key}: ${typeof value === 'string' ? value : JSON.stringify(value)}`) + core.info(`${key}: ${typeof value === 'string' + ? value + : JSON.stringify(value)}`) } core.endGroup() return true @@ -134,8 +136,12 @@ export class GithubHelper { } async addLabels(issueNumber: number, labels: string[]) { - if (await this.dryRunLog('addLabels', { issueNumber, labels: labels.join(', ') })) + if (await this.dryRunLog('addLabels', { + issueNumber, + labels: labels.join(', '), + })) { return + } try { const { data } = await this.octokit.rest.issues.addLabels({