From 08e88c3dc2563d565558adb50d8f9b242600230a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=97=A5=E5=A4=A9?= Date: Thu, 6 Aug 2026 16:18:03 +0800 Subject: [PATCH 01/11] fix(readme): update icon alignment and source --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0ed7999b..b982cd1a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ # memory-sync -![rat](/.attachments/rat.svg) +

+ memory-sync icon +

A rat carries even its own memories when moving. `memory-sync` is that kind of tool-rat: expecting no platform charity, relying on no single IDE's privileged interface — it搬运-fetches, disassembles, and reassembles every config, prompt, and memory file it can read. From e242844ab181d662911e3a0254cf4918f1481649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=97=A5=E5=A4=A9?= Date: Thu, 6 Aug 2026 16:19:36 +0800 Subject: [PATCH 02/11] fix(readme): add width to memory-sync icon for better alignment --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b982cd1a..384855e1 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # memory-sync

- memory-sync icon + memory-sync icon

A rat carries even its own memories when moving. `memory-sync` is that kind of tool-rat: expecting no platform charity, relying on no single IDE's privileged interface — it搬运-fetches, disassembles, and reassembles every config, prompt, and memory file it can read. From 21b0209bd2fd08c69b8afbcfe0c3914c78cd75e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=97=A5=E5=A4=A9?= Date: Thu, 6 Aug 2026 18:51:55 +0800 Subject: [PATCH 03/11] fix(.gitignore): add .test_write to ignore list --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 08927e5a..03ef9b49 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ libraries/**/dist/*.node !**/Cargo.lock output/ .idea/ +.test_write From 21f70525ffdcb34ce6f42b6cfda07c1ee39b3a71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=97=A5=E5=A4=A9?= Date: Thu, 6 Aug 2026 18:52:27 +0800 Subject: [PATCH 04/11] chore: update dependencies in pnpm-workspace.yaml - Bump @tanstack/react-router from ^1.170.18 to ^1.170.19 - Bump @tanstack/router-generator from ^1.167.21 to ^1.167.22 - Bump @tanstack/router-plugin from ^1.168.23 to ^1.168.24 - Bump mermaid from ^11.16.0 to ^11.16.1 - Bump next from ^16.2.12 to ^16.3.0 - Bump tsx from ^4.23.1 to ^4.23.7 - Bump typescript from 6.0.3 to 7.0.2 --- doc/pnpm-lock.yaml | 793 ++++++++++++++++++++----------- doc/pnpm-workspace.yaml | 9 +- pnpm-lock.yaml | 999 +++++++++++++++++++++++++--------------- pnpm-workspace.yaml | 15 +- 4 files changed, 1142 insertions(+), 674 deletions(-) diff --git a/doc/pnpm-lock.yaml b/doc/pnpm-lock.yaml index 4b90d52a..6c3a5e38 100644 --- a/doc/pnpm-lock.yaml +++ b/doc/pnpm-lock.yaml @@ -28,11 +28,11 @@ catalogs: specifier: ^3.3.3 version: 3.3.3 mermaid: - specifier: ^11.16.0 - version: 11.16.0 + specifier: ^11.16.1 + version: 11.16.1 next: - specifier: ^16.2.12 - version: 16.2.12 + specifier: ^16.3.0 + version: 16.3.0 nextra: specifier: ^4.6.1 version: 4.6.1 @@ -55,11 +55,11 @@ catalogs: specifier: ^1.102.0 version: 1.102.0 tsx: - specifier: ^4.23.1 - version: 4.23.1 + specifier: ^4.23.7 + version: 4.23.7 typescript: - specifier: 6.0.3 - version: 6.0.3 + specifier: 7.0.2 + version: 7.0.2 yaml: specifier: ^2.9.0 version: 2.9.0 @@ -73,16 +73,16 @@ importers: version: 0.3.0(react@19.2.8) mermaid: specifier: 'catalog:' - version: 11.16.0 + version: 11.16.1 next: specifier: 'catalog:' - version: 16.2.12(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0) + version: 16.3.0(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0) nextra: specifier: 'catalog:' - version: 4.6.1(next@16.2.12(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3) + version: 4.6.1(next@16.3.0(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@7.0.2) nextra-theme-docs: specifier: 'catalog:' - version: 4.6.1(@types/react@19.2.18)(next@16.2.12(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(nextra@4.6.1(next@16.2.12(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)) + version: 4.6.1(@types/react@19.2.18)(next@16.3.0(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(nextra@4.6.1(next@16.3.0(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@7.0.2))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)) react: specifier: 'catalog:' version: 19.2.8 @@ -95,7 +95,7 @@ importers: devDependencies: '@truenine/eslint10-config': specifier: 'catalog:' - version: 2026.10411.10025(d60e1649150c49727dc041a505c7581a) + version: 2026.10411.10025(eb4dea19068c26305f99e10f0f4f421e) '@types/node': specifier: 'catalog:' version: 26.1.2 @@ -119,10 +119,10 @@ importers: version: 1.5.2 tsx: specifier: 'catalog:' - version: 4.23.1 + version: 4.23.7 typescript: specifier: 'catalog:' - version: 6.0.3 + version: 7.0.2 yaml: specifier: 'catalog:' version: 2.9.0 @@ -538,152 +538,161 @@ packages: resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} - '@img/sharp-darwin-arm64@0.34.5': - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-darwin-arm64@0.35.3': + resolution: {integrity: sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.34.5': - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-darwin-x64@0.35.3': + resolution: {integrity: sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.2.4': - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} + '@img/sharp-freebsd-wasm32@0.35.3': + resolution: {integrity: sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==} + engines: {node: '>=20.9.0'} + os: [freebsd] + + '@img/sharp-libvips-darwin-arm64@1.3.2': + resolution: {integrity: sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.4': - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} + '@img/sharp-libvips-darwin-x64@1.3.2': + resolution: {integrity: sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.2.4': - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} + '@img/sharp-libvips-linux-arm64@1.3.2': + resolution: {integrity: sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-arm@1.2.4': - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} + '@img/sharp-libvips-linux-arm@1.3.2': + resolution: {integrity: sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==} cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-ppc64@1.2.4': - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} + '@img/sharp-libvips-linux-ppc64@1.3.2': + resolution: {integrity: sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==} cpu: [ppc64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-riscv64@1.2.4': - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + '@img/sharp-libvips-linux-riscv64@1.3.2': + resolution: {integrity: sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==} cpu: [riscv64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-s390x@1.2.4': - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} + '@img/sharp-libvips-linux-s390x@1.3.2': + resolution: {integrity: sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-x64@1.2.4': - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} + '@img/sharp-libvips-linux-x64@1.3.2': + resolution: {integrity: sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} + '@img/sharp-libvips-linuxmusl-arm64@1.3.2': + resolution: {integrity: sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} + '@img/sharp-libvips-linuxmusl-x64@1.3.2': + resolution: {integrity: sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==} cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-linux-arm64@0.34.5': - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-arm64@0.35.3': + resolution: {integrity: sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-linux-arm@0.34.5': - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-arm@0.35.3': + resolution: {integrity: sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==} + engines: {node: '>=20.9.0'} cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-linux-ppc64@0.34.5': - resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-ppc64@0.35.3': + resolution: {integrity: sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==} + engines: {node: '>=20.9.0'} cpu: [ppc64] os: [linux] libc: [glibc] - '@img/sharp-linux-riscv64@0.34.5': - resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-riscv64@0.35.3': + resolution: {integrity: sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==} + engines: {node: '>=20.9.0'} cpu: [riscv64] os: [linux] libc: [glibc] - '@img/sharp-linux-s390x@0.34.5': - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-s390x@0.35.3': + resolution: {integrity: sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==} + engines: {node: '>=20.9.0'} cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-linux-x64@0.34.5': - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-x64@0.35.3': + resolution: {integrity: sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-linuxmusl-arm64@0.34.5': - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linuxmusl-arm64@0.35.3': + resolution: {integrity: sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-linuxmusl-x64@0.34.5': - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linuxmusl-x64@0.35.3': + resolution: {integrity: sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-wasm32@0.34.5': - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-wasm32@0.35.3': + resolution: {integrity: sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==} + engines: {node: '>=20.9.0'} + + '@img/sharp-webcontainers-wasm32@0.35.3': + resolution: {integrity: sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==} + engines: {node: '>=20.9.0'} cpu: [wasm32] - '@img/sharp-win32-arm64@0.34.5': - resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-arm64@0.35.3': + resolution: {integrity: sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [win32] - '@img/sharp-win32-ia32@0.34.5': - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-ia32@0.35.3': + resolution: {integrity: sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==} + engines: {node: ^20.9.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.34.5': - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-x64@0.35.3': + resolution: {integrity: sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [win32] @@ -805,60 +814,60 @@ packages: resolution: {integrity: sha512-bMVoAKhpjTOPHkW/lprDPwv5aD4R4C3Irt8vn+SKA9wudLe9COLxOhurrKRsxmZccUbWXRF7vukNeGUAj5P8kA==} engines: {node: '>= 10'} - '@next/env@16.2.12': - resolution: {integrity: sha512-d0Z5Bc13Fa4nR8pFAKx2jay2yhJM16vlfHbTzYnUQAxlNb6B6lmn4hjt69lYNt4kRtyYP6gEM49lPRHNbIyneg==} + '@next/env@16.3.0': + resolution: {integrity: sha512-o9r1S0BNiNreHP9Vs+Qnqd9kviDkJh8xIACY7UFZSmiGbbQRzPBBosvHzAU4TULHOIuOj/18RSsyz2qrREmIFw==} '@next/eslint-plugin-next@16.2.12': resolution: {integrity: sha512-uF2z/qAK2q7B5/6CpnFcBRX6jOq5iCO+Uqh1UkJhXljX1JwLarLYhhoJadO6dPb6moTprOKewMXheBcbIoSbug==} - '@next/swc-darwin-arm64@16.2.12': - resolution: {integrity: sha512-0W1R0teHWJrqKX0FH20IzzIWAOuGtBxPGuObrxy1lE8hQvCFj49KE8a3WUg0D7sq6rn6zkM4c7YGUnhudBS6oA==} + '@next/swc-darwin-arm64@16.3.0': + resolution: {integrity: sha512-55hpqq18bEVAlxedlTt3tFqZmKg2nUXT1kn1G/BGEy0R13h3LwtwHPVzzjG6P4LLeOHE32PFDQUVaJEWvBEZBw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.2.12': - resolution: {integrity: sha512-Hy5Ls099+aFUmOLmIgPfLqNi6iCwhL3uQCssz5rWk+5Nkc6TUKCE83DY5BbNylfm3+mfwcSFnLRfrZDJhVxdtw==} + '@next/swc-darwin-x64@16.3.0': + resolution: {integrity: sha512-SOi96kSaF5T+0wW4koiM1bWzSPwjzTesC1p3df+FjdOi5LIQkBK/blxh7HdoKnNuI4PURF1OO7TZqtfnbWDSgw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.2.12': - resolution: {integrity: sha512-+YqU2h1cQkHsGfvjAsrSmst8UIFBibBGm5x3Xgel8NLMiDQtNOM4sM2GOEMvG5YiOBNeN/Ykk8cQC2S0Xrqljg==} + '@next/swc-linux-arm64-gnu@16.3.0': + resolution: {integrity: sha512-P0gZAoPMF4dyTRzhmkV4PrqVzSOB6t4mC1oI3c4dqijJ+OVEVx5clIXAKR4/uQpsqw2KKM/0D5tVumcR2r5blg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@16.2.12': - resolution: {integrity: sha512-0qjhiYBaKAqF63LA1ZWAAnKTzFUguAaZiRa5etMLGGPj/B6uEVjtIZldIzFEp3wHlB0koK6aTzqPtSdplTCjoA==} + '@next/swc-linux-arm64-musl@16.3.0': + resolution: {integrity: sha512-tXXGKJw0m37O0eKJARVTX/TheKPhz0QFVtVVZXmOig+9YKLQOSP6hvf2pxv5DO7CLEJyTHx3Pg043CDQkv1G4Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@16.2.12': - resolution: {integrity: sha512-7A3q26W+h7gnA15uqBToNuDqBEFZZcqh0mW2mn4AJh/G5pdg2RVE3n4slzLEliASZFG3NmsbEzng/x2Sh09mBg==} + '@next/swc-linux-x64-gnu@16.3.0': + resolution: {integrity: sha512-pjGxK5EY7yWml78ALejFkWmgHsU7wbFQrISiugpH6FbUJhgEvw3xFZ/EBAtLl7QtL0WdQKiG9eWJ3mOKGTukHw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@16.2.12': - resolution: {integrity: sha512-qSjL/uppm+cbh21s72Ss8gkiOhQ4dExWHNGOWy6eZV7STj5WsKehgxT61beSsOj+YYQuTplL376lOCdMQU5T8w==} + '@next/swc-linux-x64-musl@16.3.0': + resolution: {integrity: sha512-sjo++Xx+lomlPs3HRsHWhVDyGG6ms1kGW5EtHLERdII8AyG1i+f6aq68xHREO6AEMlhjTNEWBSmfJfqm9orf7g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@16.2.12': - resolution: {integrity: sha512-X6hzsOUJac/e7AWSbn9gQ9nzHld1xWP5iyjHpYWvud8pufB679O1xg4JDyKr8Xd69Jvd+kM2Der6uftiZCmjYA==} + '@next/swc-win32-arm64-msvc@16.3.0': + resolution: {integrity: sha512-C5JSgiO54wURdaxdEUIXqkz04uMqC9UmPX1gtDrV/5Tf1UowdWYI8uA5hfFbPolTlp0q4KZ60xlHePNibf0VIw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.2.12': - resolution: {integrity: sha512-F6fakeHuFTLOPt0bslQJdf+xtT+WIP9DVn/m4y1w1mRnVPyh3D/cNvzlRkxM444xfm+IvvYNSOrKiA2CDJ0Uxw==} + '@next/swc-win32-x64-msvc@16.3.0': + resolution: {integrity: sha512-fDOggsweNb5SSw0ZKVk6U+gxSyGFFlIBY/LBc1r8GUj4u/6t6oArL+Pmkg0MBnsgR+KkdsURilVH4F3GXUGepA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1428,6 +1437,126 @@ packages: resolution: {integrity: sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + '@typescript/vfs@1.6.4': resolution: {integrity: sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==} peerDependencies: @@ -2634,8 +2763,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.16.0: - resolution: {integrity: sha512-Zvm3kbstgdpvIJPPItlL7fppIZ3kibvc1oZIGxdvk9t6UFz6flv+Jw7FtRGKwfcI8OckmH04LqG6LlS6X4B1pA==} + mermaid@11.16.1: + resolution: {integrity: sha512-TQsq6u22fAn3rek5VOubrhKPo1g5hwC3FXUN9hiyupTckcYiGuuKGkNQrKYwGJkXUxZdojwRG46gsSCFZMDp4g==} mhchemparser@4.2.1: resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} @@ -2797,8 +2926,8 @@ packages: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - next@16.2.12: - resolution: {integrity: sha512-iD59eYQWmbFcEbX7v/acG5DRym9iw1DdaPoD0WTA920naWsE25wShzJW4+UvAs8MK9EC2kBfIH6vtto1H1PHGw==} + next@16.3.0: + resolution: {integrity: sha512-NEdGOzH+08eTXMUp9UYkA99Nhi5N6Thrhc1jgFOQgfgnGK/dA2hRwBpXep+exdFQrnwlRf/3Wixyp8lLBUpE2A==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -2986,8 +3115,8 @@ packages: resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} engines: {node: '>=4'} - postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + postcss@8.5.23: + resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} engines: {node: ^10 || ^12 || >=14} postcss@8.5.25: @@ -3211,9 +3340,14 @@ packages: server-only@0.0.1: resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} - sharp@0.34.5: - resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.35.3: + resolution: {integrity: sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==} + engines: {node: '>=20.9.0'} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -3363,8 +3497,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.23.1: - resolution: {integrity: sha512-GQHnkIfxyx1wYCOS/wonik5MVRZU9hi1TEZmzGZSCJB1y9YgoZ8H6itNE/u4suE+yLmOzuE4E5S4TZ/ZX2wcWQ==} + tsx@4.23.7: + resolution: {integrity: sha512-3f/u/+UDCNQ7iwUZW9FCMnNGIHzElGJYh0S/yy8IvWSsn5O7fEO/897FaG7FA2W8yryiRyuwXZ1PYLAKYaqSuQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -3392,6 +3526,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} + hasBin: true + ufo@1.6.4: resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} @@ -3539,7 +3678,7 @@ packages: snapshots: - '@antfu/eslint-config@8.3.0(@next/eslint-plugin-next@16.2.12)(@typescript-eslint/typescript-estree@8.65.0(typescript@6.0.3))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(@unocss/eslint-plugin@66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(@vue/compiler-sfc@3.5.40)(eslint-plugin-format@2.0.1(eslint@10.8.0(jiti@2.7.0)))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + '@antfu/eslint-config@8.3.0(@next/eslint-plugin-next@16.2.12)(@typescript-eslint/typescript-estree@8.65.0(typescript@7.0.2))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(@unocss/eslint-plugin@66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(@vue/compiler-sfc@3.5.40)(eslint-plugin-format@2.0.1(eslint@10.8.0(jiti@2.7.0)))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 1.7.0 @@ -3547,9 +3686,9 @@ snapshots: '@eslint-community/eslint-plugin-eslint-comments': 4.7.2(eslint@10.8.0(jiti@2.7.0)) '@eslint/markdown': 8.0.3 '@stylistic/eslint-plugin': 5.10.0(eslint@10.8.0(jiti@2.7.0)) - '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) - '@vitest/eslint-plugin': 1.6.24(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) + '@vitest/eslint-plugin': 1.6.24(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) ansis: 4.3.1 cac: 7.0.0 eslint: 10.8.0(jiti@2.7.0) @@ -3557,19 +3696,19 @@ snapshots: eslint-flat-config-utils: 3.2.0 eslint-merge-processors: 2.0.0(eslint@10.8.0(jiti@2.7.0)) eslint-plugin-antfu: 3.2.3(eslint@10.8.0(jiti@2.7.0)) - eslint-plugin-command: 3.5.3(@typescript-eslint/typescript-estree@8.65.0(typescript@6.0.3))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)) + eslint-plugin-command: 3.5.3(@typescript-eslint/typescript-estree@8.65.0(typescript@7.0.2))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)) eslint-plugin-import-lite: 0.6.0(eslint@10.8.0(jiti@2.7.0)) eslint-plugin-jsdoc: 62.9.0(eslint@10.8.0(jiti@2.7.0)) eslint-plugin-jsonc: 3.3.0(eslint@10.8.0(jiti@2.7.0)) - eslint-plugin-n: 18.2.2(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + eslint-plugin-n: 18.2.2(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) eslint-plugin-no-only-tests: 3.4.0 - eslint-plugin-perfectionist: 5.10.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + eslint-plugin-perfectionist: 5.10.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) eslint-plugin-pnpm: 1.7.0(eslint@10.8.0(jiti@2.7.0)) eslint-plugin-regexp: 3.1.1(eslint@10.8.0(jiti@2.7.0)) eslint-plugin-toml: 1.5.0(eslint@10.8.0(jiti@2.7.0)) eslint-plugin-unicorn: 64.0.0(eslint@10.8.0(jiti@2.7.0)) - eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)) - eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.7.0))) + eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)) + eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.7.0))) eslint-plugin-yml: 3.6.0(eslint@10.8.0(jiti@2.7.0)) eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.40)(eslint@10.8.0(jiti@2.7.0)) globals: 17.8.0 @@ -3580,7 +3719,7 @@ snapshots: yaml-eslint-parser: 2.1.0 optionalDependencies: '@next/eslint-plugin-next': 16.2.12 - '@unocss/eslint-plugin': 66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@unocss/eslint-plugin': 66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) eslint-plugin-format: 2.0.1(eslint@10.8.0(jiti@2.7.0)) transitivePeerDependencies: - '@eslint/json' @@ -3874,98 +4013,108 @@ snapshots: '@img/colour@1.1.0': optional: true - '@img/sharp-darwin-arm64@0.34.5': + '@img/sharp-darwin-arm64@0.35.3': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.4 + '@img/sharp-libvips-darwin-arm64': 1.3.2 optional: true - '@img/sharp-darwin-x64@0.34.5': + '@img/sharp-darwin-x64@0.35.3': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.4 + '@img/sharp-libvips-darwin-x64': 1.3.2 optional: true - '@img/sharp-libvips-darwin-arm64@1.2.4': + '@img/sharp-freebsd-wasm32@0.35.3': + dependencies: + '@img/sharp-wasm32': 0.35.3 optional: true - '@img/sharp-libvips-darwin-x64@1.2.4': + '@img/sharp-libvips-darwin-arm64@1.3.2': optional: true - '@img/sharp-libvips-linux-arm64@1.2.4': + '@img/sharp-libvips-darwin-x64@1.3.2': optional: true - '@img/sharp-libvips-linux-arm@1.2.4': + '@img/sharp-libvips-linux-arm64@1.3.2': optional: true - '@img/sharp-libvips-linux-ppc64@1.2.4': + '@img/sharp-libvips-linux-arm@1.3.2': optional: true - '@img/sharp-libvips-linux-riscv64@1.2.4': + '@img/sharp-libvips-linux-ppc64@1.3.2': optional: true - '@img/sharp-libvips-linux-s390x@1.2.4': + '@img/sharp-libvips-linux-riscv64@1.3.2': optional: true - '@img/sharp-libvips-linux-x64@1.2.4': + '@img/sharp-libvips-linux-s390x@1.3.2': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + '@img/sharp-libvips-linux-x64@1.3.2': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.4': + '@img/sharp-libvips-linuxmusl-arm64@1.3.2': optional: true - '@img/sharp-linux-arm64@0.34.5': + '@img/sharp-libvips-linuxmusl-x64@1.3.2': + optional: true + + '@img/sharp-linux-arm64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.4 + '@img/sharp-libvips-linux-arm64': 1.3.2 optional: true - '@img/sharp-linux-arm@0.34.5': + '@img/sharp-linux-arm@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.4 + '@img/sharp-libvips-linux-arm': 1.3.2 optional: true - '@img/sharp-linux-ppc64@0.34.5': + '@img/sharp-linux-ppc64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.4 + '@img/sharp-libvips-linux-ppc64': 1.3.2 optional: true - '@img/sharp-linux-riscv64@0.34.5': + '@img/sharp-linux-riscv64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.2.4 + '@img/sharp-libvips-linux-riscv64': 1.3.2 optional: true - '@img/sharp-linux-s390x@0.34.5': + '@img/sharp-linux-s390x@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.4 + '@img/sharp-libvips-linux-s390x': 1.3.2 optional: true - '@img/sharp-linux-x64@0.34.5': + '@img/sharp-linux-x64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.4 + '@img/sharp-libvips-linux-x64': 1.3.2 optional: true - '@img/sharp-linuxmusl-arm64@0.34.5': + '@img/sharp-linuxmusl-arm64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.2 optional: true - '@img/sharp-linuxmusl-x64@0.34.5': + '@img/sharp-linuxmusl-x64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + '@img/sharp-libvips-linuxmusl-x64': 1.3.2 optional: true - '@img/sharp-wasm32@0.34.5': + '@img/sharp-wasm32@0.35.3': dependencies: '@emnapi/runtime': 1.11.3 optional: true - '@img/sharp-win32-arm64@0.34.5': + '@img/sharp-webcontainers-wasm32@0.35.3': + dependencies: + '@img/sharp-wasm32': 0.35.3 optional: true - '@img/sharp-win32-ia32@0.34.5': + '@img/sharp-win32-arm64@0.35.3': optional: true - '@img/sharp-win32-x64@0.34.5': + '@img/sharp-win32-ia32@0.35.3': + optional: true + + '@img/sharp-win32-x64@0.35.3': optional: true '@internationalized/date@3.12.2': @@ -4079,34 +4228,34 @@ snapshots: '@napi-rs/simple-git-win32-ia32-msvc': 0.1.22 '@napi-rs/simple-git-win32-x64-msvc': 0.1.22 - '@next/env@16.2.12': {} + '@next/env@16.3.0': {} '@next/eslint-plugin-next@16.2.12': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@16.2.12': + '@next/swc-darwin-arm64@16.3.0': optional: true - '@next/swc-darwin-x64@16.2.12': + '@next/swc-darwin-x64@16.3.0': optional: true - '@next/swc-linux-arm64-gnu@16.2.12': + '@next/swc-linux-arm64-gnu@16.3.0': optional: true - '@next/swc-linux-arm64-musl@16.2.12': + '@next/swc-linux-arm64-musl@16.3.0': optional: true - '@next/swc-linux-x64-gnu@16.2.12': + '@next/swc-linux-x64-gnu@16.3.0': optional: true - '@next/swc-linux-x64-musl@16.2.12': + '@next/swc-linux-x64-musl@16.3.0': optional: true - '@next/swc-win32-arm64-msvc@16.2.12': + '@next/swc-win32-arm64-msvc@16.3.0': optional: true - '@next/swc-win32-x64-msvc@16.2.12': + '@next/swc-win32-x64-msvc@16.3.0': optional: true '@nodelib/fs.scandir@2.1.5': @@ -4309,12 +4458,12 @@ snapshots: dependencies: '@shikijs/types': 3.23.0 - '@shikijs/twoslash@3.23.0(typescript@6.0.3)': + '@shikijs/twoslash@3.23.0(typescript@7.0.2)': dependencies: '@shikijs/core': 3.23.0 '@shikijs/types': 3.23.0 - twoslash: 0.3.9(typescript@6.0.3) - typescript: 6.0.3 + twoslash: 0.3.9(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -4355,7 +4504,7 @@ snapshots: '@theguild/remark-mermaid@0.3.0(react@19.2.8)': dependencies: - mermaid: 11.16.0 + mermaid: 11.16.1 react: 19.2.8 unist-util-visit: 5.1.0 @@ -4364,21 +4513,21 @@ snapshots: npm-to-yarn: 3.2.0 unist-util-visit: 5.1.0 - '@truenine/eslint10-config@2026.10411.10025(d60e1649150c49727dc041a505c7581a)': + '@truenine/eslint10-config@2026.10411.10025(eb4dea19068c26305f99e10f0f4f421e)': dependencies: - '@antfu/eslint-config': 8.3.0(@next/eslint-plugin-next@16.2.12)(@typescript-eslint/typescript-estree@8.65.0(typescript@6.0.3))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(@unocss/eslint-plugin@66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(@vue/compiler-sfc@3.5.40)(eslint-plugin-format@2.0.1(eslint@10.8.0(jiti@2.7.0)))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@antfu/eslint-config': 8.3.0(@next/eslint-plugin-next@16.2.12)(@typescript-eslint/typescript-estree@8.65.0(typescript@7.0.2))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(@unocss/eslint-plugin@66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(@vue/compiler-sfc@3.5.40)(eslint-plugin-format@2.0.1(eslint@10.8.0(jiti@2.7.0)))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) '@eslint/js': 10.0.1(eslint@10.8.0(jiti@2.7.0)) '@next/eslint-plugin-next': 16.2.12 - '@unocss/eslint-config': 66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@unocss/eslint-config': 66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) '@vue/eslint-config-prettier': 10.2.0(eslint@10.8.0(jiti@2.7.0))(prettier@3.9.6) - '@vue/eslint-config-typescript': 14.9.0(eslint-plugin-vue@10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.7.0))))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@vue/eslint-config-typescript': 14.9.0(eslint-plugin-vue@10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.7.0))))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0) eslint-plugin-format: 2.0.1(eslint@10.8.0(jiti@2.7.0)) eslint-plugin-prettier: 5.5.6(eslint-config-prettier@10.1.8(eslint@10.8.0(jiti@2.7.0)))(eslint@10.8.0(jiti@2.7.0))(prettier@3.9.6) - eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.7.0))) + eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.7.0))) prettier: 3.9.6 typescript: 6.0.3 - typescript-eslint: 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + typescript-eslint: 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) '@ts-morph/common@0.28.1': dependencies: @@ -4556,40 +4705,40 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) '@typescript-eslint/scope-manager': 8.65.0 - '@typescript-eslint/type-utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/type-utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) '@typescript-eslint/visitor-keys': 8.65.0 eslint: 10.8.0(jiti@2.7.0) ignore: 7.0.6 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: '@typescript-eslint/scope-manager': 8.65.0 '@typescript-eslint/types': 8.65.0 - '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.65.0(typescript@7.0.2) '@typescript-eslint/visitor-keys': 8.65.0 debug: 4.4.3 eslint: 10.8.0(jiti@2.7.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.65.0(typescript@6.0.3)': + '@typescript-eslint/project-service@8.65.0(typescript@7.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@7.0.2) '@typescript-eslint/types': 8.65.0 debug: 4.4.3 - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -4598,47 +4747,47 @@ snapshots: '@typescript-eslint/types': 8.65.0 '@typescript-eslint/visitor-keys': 8.65.0 - '@typescript-eslint/tsconfig-utils@8.65.0(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.65.0(typescript@7.0.2)': dependencies: - typescript: 6.0.3 + typescript: 7.0.2 - '@typescript-eslint/type-utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: '@typescript-eslint/types': 8.65.0 - '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.65.0(typescript@7.0.2) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) debug: 4.4.3 eslint: 10.8.0(jiti@2.7.0) - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.65.0': {} - '@typescript-eslint/typescript-estree@8.65.0(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.65.0(typescript@7.0.2)': dependencies: - '@typescript-eslint/project-service': 8.65.0(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@6.0.3) + '@typescript-eslint/project-service': 8.65.0(typescript@7.0.2) + '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@7.0.2) '@typescript-eslint/types': 8.65.0 '@typescript-eslint/visitor-keys': 8.65.0 debug: 4.4.3 minimatch: 10.2.6 semver: 7.8.5 tinyglobby: 0.2.17 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + '@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.0(jiti@2.7.0)) '@typescript-eslint/scope-manager': 8.65.0 '@typescript-eslint/types': 8.65.0 - '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.65.0(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -4647,10 +4796,70 @@ snapshots: '@typescript-eslint/types': 8.65.0 eslint-visitor-keys: 5.0.1 - '@typescript/vfs@1.6.4(typescript@6.0.3)': + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true + + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true + + '@typescript/typescript-darwin-x64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm@7.0.2': + optional: true + + '@typescript/typescript-linux-loong64@7.0.2': + optional: true + + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true + + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true + + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true + + '@typescript/typescript-linux-s390x@7.0.2': + optional: true + + '@typescript/typescript-linux-x64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-sunos-x64@7.0.2': + optional: true + + '@typescript/typescript-win32-arm64@7.0.2': + optional: true + + '@typescript/typescript-win32-x64@7.0.2': + optional: true + + '@typescript/vfs@1.6.4(typescript@7.0.2)': dependencies: debug: 4.4.3 - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -4665,17 +4874,17 @@ snapshots: '@unocss/core@66.7.5': {} - '@unocss/eslint-config@66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + '@unocss/eslint-config@66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: - '@unocss/eslint-plugin': 66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@unocss/eslint-plugin': 66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) transitivePeerDependencies: - eslint - supports-color - typescript - '@unocss/eslint-plugin@66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + '@unocss/eslint-plugin@66.7.5(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: - '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) '@unocss/config': 66.7.5 '@unocss/core': 66.7.5 '@unocss/rule-utils': 66.7.5 @@ -4696,14 +4905,14 @@ snapshots: d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) - '@vitest/eslint-plugin@1.6.24(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + '@vitest/eslint-plugin@1.6.24(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: '@typescript-eslint/scope-manager': 8.65.0 - '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) - typescript: 6.0.3 + '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -4746,16 +4955,16 @@ snapshots: transitivePeerDependencies: - '@types/eslint' - '@vue/eslint-config-typescript@14.9.0(eslint-plugin-vue@10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.7.0))))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3)': + '@vue/eslint-config-typescript@14.9.0(eslint-plugin-vue@10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.7.0))))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2)': dependencies: - '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0) - eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.7.0))) + eslint-plugin-vue: 10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.7.0))) fast-glob: 3.3.3 - typescript-eslint: 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + typescript-eslint: 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) vue-eslint-parser: 10.4.1(eslint@10.8.0(jiti@2.7.0)) optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -5232,11 +5441,11 @@ snapshots: dependencies: eslint: 10.8.0(jiti@2.7.0) - eslint-plugin-command@3.5.3(@typescript-eslint/typescript-estree@8.65.0(typescript@6.0.3))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)): + eslint-plugin-command@3.5.3(@typescript-eslint/typescript-estree@8.65.0(typescript@7.0.2))(@typescript-eslint/utils@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)): dependencies: '@es-joy/jsdoccomment': 0.88.0 - '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.65.0(typescript@7.0.2) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0) eslint-plugin-es-x@7.8.0(eslint@10.8.0(jiti@2.7.0)): @@ -5298,7 +5507,7 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-n@18.2.2(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3): + eslint-plugin-n@18.2.2(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2): dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.0(jiti@2.7.0)) enhanced-resolve: 5.24.5 @@ -5310,13 +5519,13 @@ snapshots: ignore: 5.3.2 semver: 7.8.5 optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 eslint-plugin-no-only-tests@3.4.0: {} - eslint-plugin-perfectionist@5.10.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3): + eslint-plugin-perfectionist@5.10.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2): dependencies: - '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0) natural-orderby: 5.0.0 transitivePeerDependencies: @@ -5385,13 +5594,13 @@ snapshots: semver: 7.8.5 strip-indent: 4.1.1 - eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)): + eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)): dependencies: eslint: 10.8.0(jiti@2.7.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) - eslint-plugin-vue@10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.7.0))): + eslint-plugin-vue@10.10.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)))(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(vue-eslint-parser@10.4.1(eslint@10.8.0(jiti@2.7.0))): dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.0(jiti@2.7.0)) eslint: 10.8.0(jiti@2.7.0) @@ -5403,7 +5612,7 @@ snapshots: xml-name-validator: 5.0.0 optionalDependencies: '@stylistic/eslint-plugin': 5.10.0(eslint@10.8.0(jiti@2.7.0)) - '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) eslint-plugin-yml@3.6.0(eslint@10.8.0(jiti@2.7.0)): dependencies: @@ -6133,7 +6342,7 @@ snapshots: merge2@1.4.1: {} - mermaid@11.16.0: + mermaid@11.16.1: dependencies: '@braintree/sanitize-url': 7.1.2 '@iconify/utils': 3.1.4 @@ -6477,38 +6686,39 @@ snapshots: react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - next@16.2.12(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0): + next@16.3.0(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0): dependencies: - '@next/env': 16.2.12 + '@next/env': 16.3.0 '@swc/helpers': 0.5.15 baseline-browser-mapping: 2.11.8 caniuse-lite: 1.0.30001806 - postcss: 8.4.31 + postcss: 8.5.23 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) styled-jsx: 5.1.6(react@19.2.8) optionalDependencies: - '@next/swc-darwin-arm64': 16.2.12 - '@next/swc-darwin-x64': 16.2.12 - '@next/swc-linux-arm64-gnu': 16.2.12 - '@next/swc-linux-arm64-musl': 16.2.12 - '@next/swc-linux-x64-gnu': 16.2.12 - '@next/swc-linux-x64-musl': 16.2.12 - '@next/swc-win32-arm64-msvc': 16.2.12 - '@next/swc-win32-x64-msvc': 16.2.12 + '@next/swc-darwin-arm64': 16.3.0 + '@next/swc-darwin-x64': 16.3.0 + '@next/swc-linux-arm64-gnu': 16.3.0 + '@next/swc-linux-arm64-musl': 16.3.0 + '@next/swc-linux-x64-gnu': 16.3.0 + '@next/swc-linux-x64-musl': 16.3.0 + '@next/swc-win32-arm64-msvc': 16.3.0 + '@next/swc-win32-x64-msvc': 16.3.0 sass: 1.102.0 - sharp: 0.34.5 + sharp: 0.35.3(@types/node@26.1.2) transitivePeerDependencies: - '@babel/core' + - '@types/node' - babel-plugin-macros - nextra-theme-docs@4.6.1(@types/react@19.2.18)(next@16.2.12(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(nextra@4.6.1(next@16.2.12(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)): + nextra-theme-docs@4.6.1(@types/react@19.2.18)(next@16.3.0(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(nextra@4.6.1(next@16.3.0(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@7.0.2))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)): dependencies: '@headlessui/react': 2.2.10(react-dom@19.2.8(react@19.2.8))(react@19.2.8) clsx: 2.1.1 - next: 16.2.12(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0) + next: 16.3.0(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0) next-themes: 0.4.6(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - nextra: 4.6.1(next@16.2.12(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3) + nextra: 4.6.1(next@16.3.0(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@7.0.2) react: 19.2.8 react-compiler-runtime: 19.1.0-rc.3(react@19.2.8) react-dom: 19.2.8(react@19.2.8) @@ -6520,13 +6730,13 @@ snapshots: - immer - use-sync-external-store - nextra@4.6.1(next@16.2.12(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@6.0.3): + nextra@4.6.1(next@16.3.0(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@7.0.2): dependencies: '@formatjs/intl-localematcher': 0.6.2 '@headlessui/react': 2.2.10(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@mdx-js/mdx': 3.1.1 '@napi-rs/simple-git': 0.1.22 - '@shikijs/twoslash': 3.23.0(typescript@6.0.3) + '@shikijs/twoslash': 3.23.0(typescript@7.0.2) '@theguild/remark-mermaid': 0.3.0(react@19.2.8) '@theguild/remark-npm2yarn': 0.3.3 better-react-mathjax: 2.3.0(react@19.2.8) @@ -6541,7 +6751,7 @@ snapshots: mdast-util-gfm: 3.1.0 mdast-util-to-hast: 13.2.1 negotiator: 1.0.0 - next: 16.2.12(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0) + next: 16.3.0(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0) react: 19.2.8 react-compiler-runtime: 19.1.0-rc.3(react@19.2.8) react-dom: 19.2.8(react@19.2.8) @@ -6752,7 +6962,7 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss@8.4.31: + postcss@8.5.23: dependencies: nanoid: 3.3.16 picocolors: 1.1.1 @@ -7070,36 +7280,38 @@ snapshots: server-only@0.0.1: {} - sharp@0.34.5: + sharp@0.35.3(@types/node@26.1.2): dependencies: '@img/colour': 1.1.0 detect-libc: 2.1.2 semver: 7.8.5 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.5 - '@img/sharp-darwin-x64': 0.34.5 - '@img/sharp-libvips-darwin-arm64': 1.2.4 - '@img/sharp-libvips-darwin-x64': 1.2.4 - '@img/sharp-libvips-linux-arm': 1.2.4 - '@img/sharp-libvips-linux-arm64': 1.2.4 - '@img/sharp-libvips-linux-ppc64': 1.2.4 - '@img/sharp-libvips-linux-riscv64': 1.2.4 - '@img/sharp-libvips-linux-s390x': 1.2.4 - '@img/sharp-libvips-linux-x64': 1.2.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - '@img/sharp-linux-arm': 0.34.5 - '@img/sharp-linux-arm64': 0.34.5 - '@img/sharp-linux-ppc64': 0.34.5 - '@img/sharp-linux-riscv64': 0.34.5 - '@img/sharp-linux-s390x': 0.34.5 - '@img/sharp-linux-x64': 0.34.5 - '@img/sharp-linuxmusl-arm64': 0.34.5 - '@img/sharp-linuxmusl-x64': 0.34.5 - '@img/sharp-wasm32': 0.34.5 - '@img/sharp-win32-arm64': 0.34.5 - '@img/sharp-win32-ia32': 0.34.5 - '@img/sharp-win32-x64': 0.34.5 + '@img/sharp-darwin-arm64': 0.35.3 + '@img/sharp-darwin-x64': 0.35.3 + '@img/sharp-freebsd-wasm32': 0.35.3 + '@img/sharp-libvips-darwin-arm64': 1.3.2 + '@img/sharp-libvips-darwin-x64': 1.3.2 + '@img/sharp-libvips-linux-arm': 1.3.2 + '@img/sharp-libvips-linux-arm64': 1.3.2 + '@img/sharp-libvips-linux-ppc64': 1.3.2 + '@img/sharp-libvips-linux-riscv64': 1.3.2 + '@img/sharp-libvips-linux-s390x': 1.3.2 + '@img/sharp-libvips-linux-x64': 1.3.2 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.2 + '@img/sharp-libvips-linuxmusl-x64': 1.3.2 + '@img/sharp-linux-arm': 0.35.3 + '@img/sharp-linux-arm64': 0.35.3 + '@img/sharp-linux-ppc64': 0.35.3 + '@img/sharp-linux-riscv64': 0.35.3 + '@img/sharp-linux-s390x': 0.35.3 + '@img/sharp-linux-x64': 0.35.3 + '@img/sharp-linuxmusl-arm64': 0.35.3 + '@img/sharp-linuxmusl-x64': 0.35.3 + '@img/sharp-webcontainers-wasm32': 0.35.3 + '@img/sharp-win32-arm64': 0.35.3 + '@img/sharp-win32-ia32': 0.35.3 + '@img/sharp-win32-x64': 0.35.3 + '@types/node': 26.1.2 optional: true shebang-command@2.0.0: @@ -7214,9 +7426,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.5.0(typescript@6.0.3): + ts-api-utils@2.5.0(typescript@7.0.2): dependencies: - typescript: 6.0.3 + typescript: 7.0.2 ts-dedent@2.3.0: {} @@ -7227,7 +7439,7 @@ snapshots: tslib@2.8.1: {} - tsx@4.23.1: + tsx@4.23.7: dependencies: esbuild: 0.28.1 optionalDependencies: @@ -7235,11 +7447,11 @@ snapshots: twoslash-protocol@0.3.9: {} - twoslash@0.3.9(typescript@6.0.3): + twoslash@0.3.9(typescript@7.0.2): dependencies: - '@typescript/vfs': 1.6.4(typescript@6.0.3) + '@typescript/vfs': 1.6.4(typescript@7.0.2) twoslash-protocol: 0.3.9 - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -7247,19 +7459,42 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3): + typescript-eslint@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.65.0(typescript@6.0.3) - '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@6.0.3) + '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/parser': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) + '@typescript-eslint/typescript-estree': 8.65.0(typescript@7.0.2) + '@typescript-eslint/utils': 8.65.0(eslint@10.8.0(jiti@2.7.0))(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color typescript@6.0.3: {} + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 + ufo@1.6.4: {} unconfig-core@7.5.0: diff --git a/doc/pnpm-workspace.yaml b/doc/pnpm-workspace.yaml index 5afbe3d4..db74fec5 100644 --- a/doc/pnpm-workspace.yaml +++ b/doc/pnpm-workspace.yaml @@ -17,8 +17,8 @@ catalog: '@types/react-dom': ^19.2.4 eslint: ^10.8.0 fast-glob: ^3.3.3 - mermaid: ^11.16.0 - next: ^16.2.12 + mermaid: ^11.16.1 + next: ^16.3.0 nextra: ^4.6.1 nextra-theme-docs: ^4.6.1 npm-run-all2: ^9.0.3 @@ -26,7 +26,6 @@ catalog: react: ^19.2.8 react-dom: ^19.2.8 sass: ^1.102.0 - tsx: ^4.23.1 - # typescript-eslint@8 仍要求 typescript <6.1;7.x 暂不可用 - typescript: 6.0.3 + tsx: ^4.23.7 + typescript: 7.0.2 yaml: ^2.9.0 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77d6ef72..2e2866ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,14 +13,14 @@ catalogs: specifier: ^4.3.3 version: 4.3.3 '@tanstack/react-router': - specifier: ^1.170.18 - version: 1.170.18 + specifier: ^1.170.19 + version: 1.170.19 '@tanstack/router-generator': - specifier: ^1.167.21 - version: 1.167.21 + specifier: ^1.167.22 + version: 1.167.22 '@tanstack/router-plugin': - specifier: ^1.168.23 - version: 1.168.23 + specifier: ^1.168.24 + version: 1.168.24 '@tauri-apps/api': specifier: ~2.11.1 version: 2.11.1 @@ -73,14 +73,14 @@ catalogs: specifier: ^5.37.0 version: 5.37.0 mermaid: - specifier: ^11.16.0 - version: 11.16.0 + specifier: ^11.16.1 + version: 11.16.1 monaco-editor: specifier: ^0.56.0 version: 0.56.0 next: - specifier: ^16.2.12 - version: 16.2.12 + specifier: ^16.3.0 + version: 16.3.0 nextra: specifier: ^4.6.1 version: 4.6.1 @@ -112,14 +112,14 @@ catalogs: specifier: ^4.3.3 version: 4.3.3 tsx: - specifier: ^4.23.1 - version: 4.23.1 + specifier: ^4.23.7 + version: 4.23.7 tw-animate-css: specifier: ^1.4.0 version: 1.4.0 typescript: - specifier: 6.0.3 - version: 6.0.3 + specifier: 7.0.2 + version: 7.0.2 vite: specifier: ^8.2.0 version: 8.2.0 @@ -136,10 +136,10 @@ importers: devDependencies: tsx: specifier: 'catalog:' - version: 4.23.1 + version: 4.23.7 typescript: specifier: 'catalog:' - version: 6.0.3 + version: 7.0.2 doc: dependencies: @@ -148,16 +148,16 @@ importers: version: 0.3.0(react@19.2.8) mermaid: specifier: 'catalog:' - version: 11.16.0 + version: 11.16.1 next: specifier: 'catalog:' - version: 16.2.12(@babel/core@7.29.7(supports-color@2.0.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0) + version: 16.3.0(@babel/core@7.29.7(supports-color@2.0.0))(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0) nextra: specifier: 'catalog:' - version: 4.6.1(next@16.2.12(@babel/core@7.29.7(supports-color@2.0.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(supports-color@2.0.0)(typescript@6.0.3) + version: 4.6.1(next@16.3.0(@babel/core@7.29.7(supports-color@2.0.0))(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(supports-color@2.0.0)(typescript@7.0.2) nextra-theme-docs: specifier: 'catalog:' - version: 4.6.1(@types/react@19.2.18)(immer@11.1.15)(next@16.2.12(@babel/core@7.29.7(supports-color@2.0.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(nextra@4.6.1(next@16.2.12(@babel/core@7.29.7(supports-color@2.0.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(supports-color@2.0.0)(typescript@6.0.3))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)) + version: 4.6.1(@types/react@19.2.18)(immer@11.1.15)(next@16.3.0(@babel/core@7.29.7(supports-color@2.0.0))(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(nextra@4.6.1(next@16.3.0(@babel/core@7.29.7(supports-color@2.0.0))(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(supports-color@2.0.0)(typescript@7.0.2))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)) react: specifier: 'catalog:' version: 19.2.8 @@ -170,7 +170,7 @@ importers: devDependencies: '@truenine/eslint10-config': specifier: 'catalog:' - version: 2026.10411.10025(1a6336108ec6472c7aeeccb9ed3af0a3) + version: 2026.10411.10025(3ef6d0676cd57ac0b3ad528fd31a18c0) '@types/node': specifier: 'catalog:' version: 26.1.2 @@ -194,10 +194,10 @@ importers: version: 1.5.2 tsx: specifier: 'catalog:' - version: 4.23.1 + version: 4.23.7 typescript: specifier: 'catalog:' - version: 6.0.3 + version: 7.0.2 yaml: specifier: 'catalog:' version: 2.9.0 @@ -209,16 +209,16 @@ importers: version: 4.7.0(monaco-editor@0.56.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@tailwindcss/vite': specifier: 'catalog:' - version: 4.3.3(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0)) + version: 4.3.3(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) '@tanstack/react-router': specifier: 'catalog:' - version: 1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + version: 1.170.19(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@tanstack/router-generator': specifier: 'catalog:' - version: 1.167.21(supports-color@2.0.0) + version: 1.167.22(supports-color@2.0.0) '@tanstack/router-plugin': specifier: 'catalog:' - version: 1.168.23(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(esbuild@0.28.1)(rolldown@1.2.1)(supports-color@2.0.0)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0)) + version: 1.168.24(@tanstack/react-router@1.170.19(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(esbuild@0.28.1)(rolldown@1.2.1)(supports-color@2.0.0)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) '@tauri-apps/api': specifier: 'catalog:' version: 2.11.1 @@ -242,7 +242,7 @@ importers: version: 19.2.4(@types/react@19.2.18) '@vitejs/plugin-react': specifier: 'catalog:' - version: 6.0.5(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0)) + version: 6.0.5(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) class-variance-authority: specifier: 'catalog:' version: 0.7.1 @@ -278,19 +278,19 @@ importers: version: 4.3.3 tsx: specifier: 'catalog:' - version: 4.23.1 + version: 4.23.7 tw-animate-css: specifier: 'catalog:' version: 1.4.0 typescript: specifier: 'catalog:' - version: 6.0.3 + version: 7.0.2 vite: specifier: 'catalog:' - version: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0) + version: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0)) + version: 4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) packages: @@ -766,152 +766,161 @@ packages: resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} - '@img/sharp-darwin-arm64@0.34.5': - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-darwin-arm64@0.35.3': + resolution: {integrity: sha512-RMnFX7YQsMoh7lWfcM4NEHHymBX/rLuKNPVM84XE9ONPcaSCDgE7CHIHpSgPcO2xcRthgBy1HfNO319mwhIAkg==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.34.5': - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-darwin-x64@0.35.3': + resolution: {integrity: sha512-Xo+5uFBtLN0BKqieTxiFzFPQAUlBbbH5iBKyRX/z1JrbnYsHTfKJnUfL8+p2TPXr1pXqao4eeL4Rl144uDpK9w==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.2.4': - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} + '@img/sharp-freebsd-wasm32@0.35.3': + resolution: {integrity: sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==} + engines: {node: '>=20.9.0'} + os: [freebsd] + + '@img/sharp-libvips-darwin-arm64@1.3.2': + resolution: {integrity: sha512-9J6ypZFpQBj4YnePGoq/S38w6nz+vqg5WZLrLGY4YuSemdMq47GMLBPO42MzwdGwpg/agZ7xzZcFHa48xlywfg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.4': - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} + '@img/sharp-libvips-darwin-x64@1.3.2': + resolution: {integrity: sha512-m2pW1n6cns9VaubNwsZ+c3CRYjxNQWgJ5gPlnL1nbBcpkBvFm6SCFN5o0psFHI8w9n11NKhFkeEDns98tiqbEw==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.2.4': - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} + '@img/sharp-libvips-linux-arm64@1.3.2': + resolution: {integrity: sha512-dqVSFynCox4C/J8kT16V7SIFAns0IjgLwkvYT7p8LQVmJ5OS5b6tI9IGflxTeuBS//zXeFIUbwt5dwxyZ17cnA==} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-arm@1.2.4': - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} + '@img/sharp-libvips-linux-arm@1.3.2': + resolution: {integrity: sha512-1eMLzy92I4J6rmi4mAT8yC3HxOtniyGELlzGbNMLLeqe052ahFQ0h6LFq+lh5DsDIdYViIDst08abvSbcEdLXQ==} cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-ppc64@1.2.4': - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} + '@img/sharp-libvips-linux-ppc64@1.3.2': + resolution: {integrity: sha512-3z0NHDxD6n5I9gc05U1eW1AyRm+Gznzq3naMrthPNqE6oYykcogW0l/jfpJdjYnuNl8R7yI9pNbE1XiUeyq0Aw==} cpu: [ppc64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-riscv64@1.2.4': - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + '@img/sharp-libvips-linux-riscv64@1.3.2': + resolution: {integrity: sha512-bsb4rI+NldGOsXuej2r8OdSS8+zXDVaCWxyWrcv6kneTOlgAHtZABRzBBCwdsPiD90J4myNJuHpg6kA20ImW/w==} cpu: [riscv64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-s390x@1.2.4': - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} + '@img/sharp-libvips-linux-s390x@1.3.2': + resolution: {integrity: sha512-/ABshyj8gCpyIrNXnHn4LorDJ0HHm1VhXPBlxZ8zAtfVPAaSafXPGn+sUSIRiwaSBy0mmFjSjiXI5mkcwdChKQ==} cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-libvips-linux-x64@1.2.4': - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} + '@img/sharp-libvips-linux-x64@1.3.2': + resolution: {integrity: sha512-ITPEtgffGJ0S6G9dRyw/366tJQqFRcHWPHhC+Stpg3Z8AEMrDrTr2lhdz4f/Y/HMbRh//7Z5mBzEpVdi62Oc3w==} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} + '@img/sharp-libvips-linuxmusl-arm64@1.3.2': + resolution: {integrity: sha512-zE9EdiUzUmg5mDT5a1rk5fYJ6GWPloTwWBYDS14naqHsL+EaMpDj1AWnpLgh3u0YCORv2Tt50wrcrpYqkP97Kw==} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-libvips-linuxmusl-x64@1.2.4': - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} + '@img/sharp-libvips-linuxmusl-x64@1.3.2': + resolution: {integrity: sha512-m0lrLiUt+lBYnCFr8qV/65yMR4E/c7/wf78I5eKTdkEakFAlZ9QlzEM3QIhhAwVeUhLAHLcCq7a7Vszq/oFNZQ==} cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-linux-arm64@0.34.5': - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-arm64@0.35.3': + resolution: {integrity: sha512-QgKDspHPnrU+GQ55XPhGwyhC8acLVOOSyAvo1oVfFmrIXLkDNmGWzAfDZ4xK8oSA1qBQrALcHX0G5UZni/SuFQ==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] libc: [glibc] - '@img/sharp-linux-arm@0.34.5': - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-arm@0.35.3': + resolution: {integrity: sha512-affVWCTLooy8TSxbDx2qkzuDeaWLNVBA+P//FNBirHsXpP2fuBhk5AuboYUnrDnzoXes8GFjpTx0SBFOCRg+FA==} + engines: {node: '>=20.9.0'} cpu: [arm] os: [linux] libc: [glibc] - '@img/sharp-linux-ppc64@0.34.5': - resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-ppc64@0.35.3': + resolution: {integrity: sha512-sMd8rDxmpLOwv/7N44klFjOD5DUO7FLdjiXDI0hoxYaf7Ar262dQIEkosE98bps+5HPLtp/EvNqeqQtOycP/IA==} + engines: {node: '>=20.9.0'} cpu: [ppc64] os: [linux] libc: [glibc] - '@img/sharp-linux-riscv64@0.34.5': - resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-riscv64@0.35.3': + resolution: {integrity: sha512-0Eob78yjlYPfL5vMNWAW55l3R9Y6BQS/gOfe0ZcP9mEz9ohhKSt4im1hayiknXgf8AWrFqMvJcKIdmLmEe7yeQ==} + engines: {node: '>=20.9.0'} cpu: [riscv64] os: [linux] libc: [glibc] - '@img/sharp-linux-s390x@0.34.5': - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-s390x@0.35.3': + resolution: {integrity: sha512-KgAxQ0DxpNOq1rG2t5cgTgShJFGSuU7XO45cqC+1NVOuZnP6tlgZRuSYOfNupGkHID0o3cJOsw4DVeJpMovcGw==} + engines: {node: '>=20.9.0'} cpu: [s390x] os: [linux] libc: [glibc] - '@img/sharp-linux-x64@0.34.5': - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linux-x64@0.35.3': + resolution: {integrity: sha512-8pqvxubL2PGdhlPy6GLqzDYMUjyRmKAwKHYKixpdJYBUK7PJ0C029XdsnpFIdgRZG68fZiGdHVWcKPvtiPB4cA==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] libc: [glibc] - '@img/sharp-linuxmusl-arm64@0.34.5': - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linuxmusl-arm64@0.35.3': + resolution: {integrity: sha512-Vz0iQjzzcSX3HCbfwFfCSG/9SCIqyO0mH2sXyiHaAYfBk0cRsCWXRyQYX0ovCK/PAQBbTzQ0dsPQHh5MAFL59w==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [linux] libc: [musl] - '@img/sharp-linuxmusl-x64@0.34.5': - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-linuxmusl-x64@0.35.3': + resolution: {integrity: sha512-6O1NPKcDVj9QEdg7Hx549EX8U0rp6yXQERqru6yRN7fGBn32UvIRJUlWnk+8xDCiG76hXVBbX82NZ/ZKr0euIg==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [linux] libc: [musl] - '@img/sharp-wasm32@0.34.5': - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-wasm32@0.35.3': + resolution: {integrity: sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==} + engines: {node: '>=20.9.0'} + + '@img/sharp-webcontainers-wasm32@0.35.3': + resolution: {integrity: sha512-2rnq7bX3NzeR2T4YWgz8qiG4h3TSdMe+vN1iQXpJleSJ3SM5zQ8Fy2SyyXAWlbxpEZ2Y+Z4u1BePgJEYbSy80Q==} + engines: {node: '>=20.9.0'} cpu: [wasm32] - '@img/sharp-win32-arm64@0.34.5': - resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-arm64@0.35.3': + resolution: {integrity: sha512-4bPwFdMbeC4JQ8L8LOyWp6nsHcboP5fxkp6iPOXz2Vg49R42TuMs2whkJ5OAP4/Ul035qOzy0AecOF9VOscn4w==} + engines: {node: '>=20.9.0'} cpu: [arm64] os: [win32] - '@img/sharp-win32-ia32@0.34.5': - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-ia32@0.35.3': + resolution: {integrity: sha512-r53mXsBN6lFUDiST764SvgwUdHAqM4rPAiDzAmf4fLoB6X/rkfyTrLCg6+g17wJJiCmB3JYgHuUldCWUIRFSXw==} + engines: {node: ^20.9.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.34.5': - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + '@img/sharp-win32-x64@0.35.3': + resolution: {integrity: sha512-D4y1vNeZrIIJCN+uHaWVtH86B+aCrdMYYjicy9pXHvbGZeGYLLSd3wdVuC37FxVXlU1ARsk84eKWfWMXGYEqvA==} + engines: {node: '>=20.9.0'} cpu: [x64] os: [win32] @@ -1063,60 +1072,60 @@ packages: '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.3 '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.3 - '@next/env@16.2.12': - resolution: {integrity: sha512-d0Z5Bc13Fa4nR8pFAKx2jay2yhJM16vlfHbTzYnUQAxlNb6B6lmn4hjt69lYNt4kRtyYP6gEM49lPRHNbIyneg==} + '@next/env@16.3.0': + resolution: {integrity: sha512-o9r1S0BNiNreHP9Vs+Qnqd9kviDkJh8xIACY7UFZSmiGbbQRzPBBosvHzAU4TULHOIuOj/18RSsyz2qrREmIFw==} '@next/eslint-plugin-next@16.2.4': resolution: {integrity: sha512-tOX826JJ96gYK/go18sPUgMq9FK1tqxBFfUCEufJb5XIkWFFmpgU7mahJANKGkHs7F41ir3tReJ3Lv5La0RvhA==} - '@next/swc-darwin-arm64@16.2.12': - resolution: {integrity: sha512-0W1R0teHWJrqKX0FH20IzzIWAOuGtBxPGuObrxy1lE8hQvCFj49KE8a3WUg0D7sq6rn6zkM4c7YGUnhudBS6oA==} + '@next/swc-darwin-arm64@16.3.0': + resolution: {integrity: sha512-55hpqq18bEVAlxedlTt3tFqZmKg2nUXT1kn1G/BGEy0R13h3LwtwHPVzzjG6P4LLeOHE32PFDQUVaJEWvBEZBw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@16.2.12': - resolution: {integrity: sha512-Hy5Ls099+aFUmOLmIgPfLqNi6iCwhL3uQCssz5rWk+5Nkc6TUKCE83DY5BbNylfm3+mfwcSFnLRfrZDJhVxdtw==} + '@next/swc-darwin-x64@16.3.0': + resolution: {integrity: sha512-SOi96kSaF5T+0wW4koiM1bWzSPwjzTesC1p3df+FjdOi5LIQkBK/blxh7HdoKnNuI4PURF1OO7TZqtfnbWDSgw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@16.2.12': - resolution: {integrity: sha512-+YqU2h1cQkHsGfvjAsrSmst8UIFBibBGm5x3Xgel8NLMiDQtNOM4sM2GOEMvG5YiOBNeN/Ykk8cQC2S0Xrqljg==} + '@next/swc-linux-arm64-gnu@16.3.0': + resolution: {integrity: sha512-P0gZAoPMF4dyTRzhmkV4PrqVzSOB6t4mC1oI3c4dqijJ+OVEVx5clIXAKR4/uQpsqw2KKM/0D5tVumcR2r5blg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] - '@next/swc-linux-arm64-musl@16.2.12': - resolution: {integrity: sha512-0qjhiYBaKAqF63LA1ZWAAnKTzFUguAaZiRa5etMLGGPj/B6uEVjtIZldIzFEp3wHlB0koK6aTzqPtSdplTCjoA==} + '@next/swc-linux-arm64-musl@16.3.0': + resolution: {integrity: sha512-tXXGKJw0m37O0eKJARVTX/TheKPhz0QFVtVVZXmOig+9YKLQOSP6hvf2pxv5DO7CLEJyTHx3Pg043CDQkv1G4Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] - '@next/swc-linux-x64-gnu@16.2.12': - resolution: {integrity: sha512-7A3q26W+h7gnA15uqBToNuDqBEFZZcqh0mW2mn4AJh/G5pdg2RVE3n4slzLEliASZFG3NmsbEzng/x2Sh09mBg==} + '@next/swc-linux-x64-gnu@16.3.0': + resolution: {integrity: sha512-pjGxK5EY7yWml78ALejFkWmgHsU7wbFQrISiugpH6FbUJhgEvw3xFZ/EBAtLl7QtL0WdQKiG9eWJ3mOKGTukHw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] - '@next/swc-linux-x64-musl@16.2.12': - resolution: {integrity: sha512-qSjL/uppm+cbh21s72Ss8gkiOhQ4dExWHNGOWy6eZV7STj5WsKehgxT61beSsOj+YYQuTplL376lOCdMQU5T8w==} + '@next/swc-linux-x64-musl@16.3.0': + resolution: {integrity: sha512-sjo++Xx+lomlPs3HRsHWhVDyGG6ms1kGW5EtHLERdII8AyG1i+f6aq68xHREO6AEMlhjTNEWBSmfJfqm9orf7g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] - '@next/swc-win32-arm64-msvc@16.2.12': - resolution: {integrity: sha512-X6hzsOUJac/e7AWSbn9gQ9nzHld1xWP5iyjHpYWvud8pufB679O1xg4JDyKr8Xd69Jvd+kM2Der6uftiZCmjYA==} + '@next/swc-win32-arm64-msvc@16.3.0': + resolution: {integrity: sha512-C5JSgiO54wURdaxdEUIXqkz04uMqC9UmPX1gtDrV/5Tf1UowdWYI8uA5hfFbPolTlp0q4KZ60xlHePNibf0VIw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@16.2.12': - resolution: {integrity: sha512-F6fakeHuFTLOPt0bslQJdf+xtT+WIP9DVn/m4y1w1mRnVPyh3D/cNvzlRkxM444xfm+IvvYNSOrKiA2CDJ0Uxw==} + '@next/swc-win32-x64-msvc@16.3.0': + resolution: {integrity: sha512-fDOggsweNb5SSw0ZKVk6U+gxSyGFFlIBY/LBc1r8GUj4u/6t6oArL+Pmkg0MBnsgR+KkdsURilVH4F3GXUGepA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -1657,8 +1666,8 @@ packages: resolution: {integrity: sha512-79pf/RkhteYZTRgcR4F9kbk84P2N8rugQJswxfIqovlbRiT3yI7eBE+5QorIrZaOKktsgzRlXh1l/du/xpl4iA==} engines: {node: '>=20.19'} - '@tanstack/react-router@1.170.18': - resolution: {integrity: sha512-wpbGYZEp/fmz1q4bn7BD8VZ+/VZ7GBqSJv5V969pU+chP8y7dquWDmKTFMohvUegb9lg12m1uPVvD6kB2wORvQ==} + '@tanstack/react-router@1.170.19': + resolution: {integrity: sha512-cK7VUsc9+8gYZMqwJjCAhrmL9wPhkwxEcZ7cxlHdBjjmqHbZyNxXAml/KfLmSuxRDQGVk2iofpoHclDTSrkmmg==} engines: {node: '>=20.19'} peerDependencies: react: '>=18.0.0 || >=19.0.0' @@ -1676,20 +1685,20 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/router-core@1.171.15': - resolution: {integrity: sha512-IILCDcLaItMZQ2jEmCABHY1Nhjjn5XUvwpQp3e4Nmu+vfg0BgYFuu/QASz2SwE2ZNbVMrvt8X/wxa+Gg5aErxA==} + '@tanstack/router-core@1.171.16': + resolution: {integrity: sha512-/qwawP5a45puA9DQtG8syrChWCV7uGMYs1p5rwgrICgiS/0pHo7zNOFyfVI02J1azWhCfFc6w6+SuiivPESYAA==} engines: {node: '>=20.19'} - '@tanstack/router-generator@1.167.21': - resolution: {integrity: sha512-m3oXZyienj8owialdyoZ0txHQrnEx/Ra+D9kWtar5fC2cWZr5Pvxl86VY2mX5RRLC5QLKLeRGT1x4HV95wHVDQ==} + '@tanstack/router-generator@1.167.22': + resolution: {integrity: sha512-tiKrH6xuCdTfmm4UuHSpLsZ5q2pwmhNbGpExp5u/CCRObjQM5nxz8Dce/X3w86ST6VSZFQMBNjLcsUMnVlJw/Q==} engines: {node: '>=20.19'} - '@tanstack/router-plugin@1.168.23': - resolution: {integrity: sha512-0+PIcvnaAimFwjoEIeV3h7LKjzC8zNnp7pH2UamdKwQ9QlY99WU9V0Xl0zbM0i9hrUa/mKgWPDAzELmPUu5fMA==} + '@tanstack/router-plugin@1.168.24': + resolution: {integrity: sha512-FfPW45gfZHDC25AHo4MJB3ZljXEKFJenEgIDTELwnI6FtS90vXTQXjOjdTVNs/7B4R8+wLf7nWVrPSvBMp7zWw==} engines: {node: '>=20.19'} peerDependencies: '@rsbuild/core': '>=1.0.2 || ^2.0.0' - '@tanstack/react-router': ^1.170.18 + '@tanstack/react-router': ^1.170.19 vite: '>=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0' vite-plugin-solid: ^2.11.10 || ^3.0.0-0 webpack: '>=5.92.0' @@ -2160,6 +2169,126 @@ packages: resolution: {integrity: sha512-9WI52t8ZGLVGrPMBet25yAftqY/n95+zmoUUtJBBQTKDSKUu7OsPTroT2op7U9JatkoRccL0YkWDNMFfC4Sjxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] + + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] + + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [freebsd] + + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] + os: [linux] + + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] + os: [linux] + + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [linux] + + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} + cpu: [riscv64] + os: [linux] + + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} + cpu: [s390x] + os: [linux] + + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] + + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] + + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [openbsd] + + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + '@typescript/vfs@1.6.4': resolution: {integrity: sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==} peerDependencies: @@ -3648,8 +3777,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.16.0: - resolution: {integrity: sha512-Zvm3kbstgdpvIJPPItlL7fppIZ3kibvc1oZIGxdvk9t6UFz6flv+Jw7FtRGKwfcI8OckmH04LqG6LlS6X4B1pA==} + mermaid@11.16.1: + resolution: {integrity: sha512-TQsq6u22fAn3rek5VOubrhKPo1g5hwC3FXUN9hiyupTckcYiGuuKGkNQrKYwGJkXUxZdojwRG46gsSCFZMDp4g==} mhchemparser@4.2.1: resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} @@ -3814,8 +3943,8 @@ packages: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - next@16.2.12: - resolution: {integrity: sha512-iD59eYQWmbFcEbX7v/acG5DRym9iw1DdaPoD0WTA920naWsE25wShzJW4+UvAs8MK9EC2kBfIH6vtto1H1PHGw==} + next@16.3.0: + resolution: {integrity: sha512-NEdGOzH+08eTXMUp9UYkA99Nhi5N6Thrhc1jgFOQgfgnGK/dA2hRwBpXep+exdFQrnwlRf/3Wixyp8lLBUpE2A==} engines: {node: '>=20.9.0'} hasBin: true peerDependencies: @@ -4006,8 +4135,8 @@ packages: resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} - postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + postcss@8.5.23: + resolution: {integrity: sha512-g50586zr4bZmwFiTlflMu8E0bDTb5I5gertgwAKmsdUlTQIhZtunzUlD1WSzwcVWPoAVpsrA6vlfCD7oXvRwgg==} engines: {node: ^10 || ^12 || >=14} postcss@8.5.25: @@ -4287,9 +4416,14 @@ packages: server-only@0.0.1: resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} - sharp@0.34.5: - resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.35.3: + resolution: {integrity: sha512-ej0zVHuZGHCiABXcNxeYhpRnPNPAcvbG8RMdBAhDAxLKkCRVSpK3Iyu7qbqw3JMzoj0REeM6f3tJLtVwl0023Q==} + engines: {node: '>=20.9.0'} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -4476,8 +4610,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.23.1: - resolution: {integrity: sha512-GQHnkIfxyx1wYCOS/wonik5MVRZU9hi1TEZmzGZSCJB1y9YgoZ8H6itNE/u4suE+yLmOzuE4E5S4TZ/ZX2wcWQ==} + tsx@4.23.7: + resolution: {integrity: sha512-3f/u/+UDCNQ7iwUZW9FCMnNGIHzElGJYh0S/yy8IvWSsn5O7fEO/897FaG7FA2W8yryiRyuwXZ1PYLAKYaqSuQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -4508,6 +4642,11 @@ packages: engines: {node: '>=14.17'} hasBin: true + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} + hasBin: true + ufo@1.6.4: resolution: {integrity: sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==} @@ -4786,7 +4925,7 @@ packages: snapshots: - '@antfu/eslint-config@8.2.0(@next/eslint-plugin-next@16.2.4)(@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@6.0.3))(@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(@unocss/eslint-plugin@66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(@vue/compiler-sfc@3.5.26)(eslint-plugin-format@2.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0)))': + '@antfu/eslint-config@8.2.0(@next/eslint-plugin-next@16.2.4)(@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@unocss/eslint-plugin@66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@vue/compiler-sfc@3.5.26)(eslint-plugin-format@2.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)))': dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 1.4.0 @@ -4794,9 +4933,9 @@ snapshots: '@eslint-community/eslint-plugin-eslint-comments': 4.7.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) '@eslint/markdown': 8.0.2(supports-color@2.0.0) '@stylistic/eslint-plugin': 5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) - '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/parser': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) - '@vitest/eslint-plugin': 1.6.18(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0))) + '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/parser': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) + '@vitest/eslint-plugin': 1.6.18(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0))) ansis: 4.3.1 cac: 7.0.0 eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) @@ -4804,19 +4943,19 @@ snapshots: eslint-flat-config-utils: 3.2.0 eslint-merge-processors: 2.0.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) eslint-plugin-antfu: 3.2.3(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) - eslint-plugin-command: 3.5.2(@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@6.0.3))(@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) + eslint-plugin-command: 3.5.2(@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) eslint-plugin-import-lite: 0.6.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) eslint-plugin-jsdoc: 62.9.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0) eslint-plugin-jsonc: 3.1.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) - eslint-plugin-n: 17.24.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(typescript@6.0.3) + eslint-plugin-n: 17.24.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(typescript@7.0.2) eslint-plugin-no-only-tests: 3.4.0 - eslint-plugin-perfectionist: 5.9.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + eslint-plugin-perfectionist: 5.9.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) eslint-plugin-pnpm: 1.6.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) eslint-plugin-regexp: 3.1.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) eslint-plugin-toml: 1.3.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0) eslint-plugin-unicorn: 64.0.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) - eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) - eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)) + eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) + eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)) eslint-plugin-yml: 3.3.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.26)(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) globals: 17.6.0 @@ -4827,7 +4966,7 @@ snapshots: yaml-eslint-parser: 2.0.0 optionalDependencies: '@next/eslint-plugin-next': 16.2.4 - '@unocss/eslint-plugin': 66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@unocss/eslint-plugin': 66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) eslint-plugin-format: 2.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) transitivePeerDependencies: - '@eslint/json' @@ -5227,98 +5366,108 @@ snapshots: '@img/colour@1.1.0': optional: true - '@img/sharp-darwin-arm64@0.34.5': + '@img/sharp-darwin-arm64@0.35.3': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.4 + '@img/sharp-libvips-darwin-arm64': 1.3.2 optional: true - '@img/sharp-darwin-x64@0.34.5': + '@img/sharp-darwin-x64@0.35.3': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.4 + '@img/sharp-libvips-darwin-x64': 1.3.2 + optional: true + + '@img/sharp-freebsd-wasm32@0.35.3': + dependencies: + '@img/sharp-wasm32': 0.35.3 optional: true - '@img/sharp-libvips-darwin-arm64@1.2.4': + '@img/sharp-libvips-darwin-arm64@1.3.2': optional: true - '@img/sharp-libvips-darwin-x64@1.2.4': + '@img/sharp-libvips-darwin-x64@1.3.2': optional: true - '@img/sharp-libvips-linux-arm64@1.2.4': + '@img/sharp-libvips-linux-arm64@1.3.2': optional: true - '@img/sharp-libvips-linux-arm@1.2.4': + '@img/sharp-libvips-linux-arm@1.3.2': optional: true - '@img/sharp-libvips-linux-ppc64@1.2.4': + '@img/sharp-libvips-linux-ppc64@1.3.2': optional: true - '@img/sharp-libvips-linux-riscv64@1.2.4': + '@img/sharp-libvips-linux-riscv64@1.3.2': optional: true - '@img/sharp-libvips-linux-s390x@1.2.4': + '@img/sharp-libvips-linux-s390x@1.3.2': optional: true - '@img/sharp-libvips-linux-x64@1.2.4': + '@img/sharp-libvips-linux-x64@1.3.2': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + '@img/sharp-libvips-linuxmusl-arm64@1.3.2': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.4': + '@img/sharp-libvips-linuxmusl-x64@1.3.2': optional: true - '@img/sharp-linux-arm64@0.34.5': + '@img/sharp-linux-arm64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.4 + '@img/sharp-libvips-linux-arm64': 1.3.2 optional: true - '@img/sharp-linux-arm@0.34.5': + '@img/sharp-linux-arm@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.4 + '@img/sharp-libvips-linux-arm': 1.3.2 optional: true - '@img/sharp-linux-ppc64@0.34.5': + '@img/sharp-linux-ppc64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.4 + '@img/sharp-libvips-linux-ppc64': 1.3.2 optional: true - '@img/sharp-linux-riscv64@0.34.5': + '@img/sharp-linux-riscv64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.2.4 + '@img/sharp-libvips-linux-riscv64': 1.3.2 optional: true - '@img/sharp-linux-s390x@0.34.5': + '@img/sharp-linux-s390x@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.4 + '@img/sharp-libvips-linux-s390x': 1.3.2 optional: true - '@img/sharp-linux-x64@0.34.5': + '@img/sharp-linux-x64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.4 + '@img/sharp-libvips-linux-x64': 1.3.2 optional: true - '@img/sharp-linuxmusl-arm64@0.34.5': + '@img/sharp-linuxmusl-arm64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.2 optional: true - '@img/sharp-linuxmusl-x64@0.34.5': + '@img/sharp-linuxmusl-x64@0.35.3': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + '@img/sharp-libvips-linuxmusl-x64': 1.3.2 optional: true - '@img/sharp-wasm32@0.34.5': + '@img/sharp-wasm32@0.35.3': dependencies: '@emnapi/runtime': 1.11.3 optional: true - '@img/sharp-win32-arm64@0.34.5': + '@img/sharp-webcontainers-wasm32@0.35.3': + dependencies: + '@img/sharp-wasm32': 0.35.3 + optional: true + + '@img/sharp-win32-arm64@0.35.3': optional: true - '@img/sharp-win32-ia32@0.34.5': + '@img/sharp-win32-ia32@0.35.3': optional: true - '@img/sharp-win32-x64@0.34.5': + '@img/sharp-win32-x64@0.35.3': optional: true '@internationalized/date@3.12.2': @@ -5467,34 +5616,34 @@ snapshots: '@tybys/wasm-util': 0.10.3 optional: true - '@next/env@16.2.12': {} + '@next/env@16.3.0': {} '@next/eslint-plugin-next@16.2.4': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@16.2.12': + '@next/swc-darwin-arm64@16.3.0': optional: true - '@next/swc-darwin-x64@16.2.12': + '@next/swc-darwin-x64@16.3.0': optional: true - '@next/swc-linux-arm64-gnu@16.2.12': + '@next/swc-linux-arm64-gnu@16.3.0': optional: true - '@next/swc-linux-arm64-musl@16.2.12': + '@next/swc-linux-arm64-musl@16.3.0': optional: true - '@next/swc-linux-x64-gnu@16.2.12': + '@next/swc-linux-x64-gnu@16.3.0': optional: true - '@next/swc-linux-x64-musl@16.2.12': + '@next/swc-linux-x64-musl@16.3.0': optional: true - '@next/swc-win32-arm64-msvc@16.2.12': + '@next/swc-win32-arm64-msvc@16.3.0': optional: true - '@next/swc-win32-x64-msvc@16.2.12': + '@next/swc-win32-x64-msvc@16.3.0': optional: true '@nodelib/fs.scandir@2.1.5': @@ -5762,12 +5911,12 @@ snapshots: dependencies: '@shikijs/types': 3.23.0 - '@shikijs/twoslash@3.23.0(supports-color@2.0.0)(typescript@6.0.3)': + '@shikijs/twoslash@3.23.0(supports-color@2.0.0)(typescript@7.0.2)': dependencies: '@shikijs/core': 3.23.0 '@shikijs/types': 3.23.0 - twoslash: 0.3.9(supports-color@2.0.0)(typescript@6.0.3) - typescript: 6.0.3 + twoslash: 0.3.9(supports-color@2.0.0)(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -5863,20 +6012,20 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3 '@tailwindcss/oxide-win32-x64-msvc': 4.3.3 - '@tailwindcss/vite@4.3.3(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0))': + '@tailwindcss/vite@4.3.3(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0))': dependencies: '@tailwindcss/node': 4.3.3 '@tailwindcss/oxide': 4.3.3 tailwindcss: 4.3.3 - vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) '@tanstack/history@1.162.0': {} - '@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@tanstack/react-router@1.170.19(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: '@tanstack/history': 1.162.0 '@tanstack/react-store': 0.9.3(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@tanstack/router-core': 1.171.15 + '@tanstack/router-core': 1.171.16 isbot: 5.2.1 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) @@ -5894,17 +6043,17 @@ snapshots: react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - '@tanstack/router-core@1.171.15': + '@tanstack/router-core@1.171.16': dependencies: '@tanstack/history': 1.162.0 cookie-es: 3.1.1 seroval: 1.6.0 seroval-plugins: 1.6.0(seroval@1.6.0) - '@tanstack/router-generator@1.167.21(supports-color@2.0.0)': + '@tanstack/router-generator@1.167.22(supports-color@2.0.0)': dependencies: '@babel/types': 7.29.7 - '@tanstack/router-core': 1.171.15 + '@tanstack/router-core': 1.171.16 '@tanstack/router-utils': 1.162.2(supports-color@2.0.0) '@tanstack/virtual-file-routes': 1.162.0 jiti: 2.7.0 @@ -5914,20 +6063,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.168.23(@tanstack/react-router@1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(esbuild@0.28.1)(rolldown@1.2.1)(supports-color@2.0.0)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0))': + '@tanstack/router-plugin@1.168.24(@tanstack/react-router@1.170.19(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(esbuild@0.28.1)(rolldown@1.2.1)(supports-color@2.0.0)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.7(supports-color@2.0.0) '@babel/template': 7.29.7 '@babel/types': 7.29.7 - '@tanstack/router-core': 1.171.15 - '@tanstack/router-generator': 1.167.21(supports-color@2.0.0) + '@tanstack/router-core': 1.171.16 + '@tanstack/router-generator': 1.167.22(supports-color@2.0.0) '@tanstack/router-utils': 1.162.2(supports-color@2.0.0) chokidar: 5.0.0 - unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.1)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.1)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) zod: 4.4.3 optionalDependencies: - '@tanstack/react-router': 1.170.18(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0) + '@tanstack/react-router': 1.170.19(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -6016,7 +6165,7 @@ snapshots: '@theguild/remark-mermaid@0.3.0(react@19.2.8)': dependencies: - mermaid: 11.16.0 + mermaid: 11.16.1 react: 19.2.8 unist-util-visit: 5.1.0 @@ -6025,21 +6174,21 @@ snapshots: npm-to-yarn: 3.2.0 unist-util-visit: 5.1.0 - '@truenine/eslint10-config@2026.10411.10025(1a6336108ec6472c7aeeccb9ed3af0a3)': + '@truenine/eslint10-config@2026.10411.10025(3ef6d0676cd57ac0b3ad528fd31a18c0)': dependencies: - '@antfu/eslint-config': 8.2.0(@next/eslint-plugin-next@16.2.4)(@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@6.0.3))(@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(@unocss/eslint-plugin@66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(@vue/compiler-sfc@3.5.26)(eslint-plugin-format@2.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0))) + '@antfu/eslint-config': 8.2.0(@next/eslint-plugin-next@16.2.4)(@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@unocss/eslint-plugin@66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@vue/compiler-sfc@3.5.26)(eslint-plugin-format@2.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0))) '@eslint/js': 10.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) '@next/eslint-plugin-next': 16.2.4 - '@unocss/eslint-config': 66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@unocss/eslint-config': 66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) '@vue/eslint-config-prettier': 10.2.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(prettier@3.9.6) - '@vue/eslint-config-typescript': 14.7.0(eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@vue/eslint-config-typescript': 14.7.0(eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) eslint-plugin-format: 2.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) eslint-plugin-prettier: 5.5.5(eslint-config-prettier@10.1.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(prettier@3.9.6) - eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)) + eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)) prettier: 3.9.6 typescript: 6.0.3 - typescript-eslint: 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + typescript-eslint: 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) '@ts-morph/common@0.28.1': dependencies: @@ -6231,106 +6380,106 @@ snapshots: '@types/use-sync-external-store@0.0.6': {} - '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/parser': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) '@typescript-eslint/scope-manager': 8.58.2 - '@typescript-eslint/type-utils': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/type-utils': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/utils': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) '@typescript-eslint/visitor-keys': 8.58.2 eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/parser': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/type-utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/type-utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) '@typescript-eslint/visitor-keys': 8.60.0 eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/parser@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.56.1(supports-color@2.0.0)(typescript@7.0.2) '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3(supports-color@2.0.0) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: '@typescript-eslint/scope-manager': 8.58.2 '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.58.2(supports-color@2.0.0)(typescript@7.0.2) '@typescript-eslint/visitor-keys': 8.58.2 debug: 4.4.3(supports-color@2.0.0) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: '@typescript-eslint/scope-manager': 8.60.0 '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.60.0(supports-color@2.0.0)(typescript@7.0.2) '@typescript-eslint/visitor-keys': 8.60.0 debug: 4.4.3(supports-color@2.0.0) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.56.1(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/project-service@8.56.1(supports-color@2.0.0)(typescript@7.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@7.0.2) '@typescript-eslint/types': 8.60.0 debug: 4.4.3(supports-color@2.0.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.58.2(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/project-service@8.58.2(supports-color@2.0.0)(typescript@7.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@7.0.2) '@typescript-eslint/types': 8.60.0 debug: 4.4.3(supports-color@2.0.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.60.0(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/project-service@8.60.0(supports-color@2.0.0)(typescript@7.0.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@7.0.2) '@typescript-eslint/types': 8.60.0 debug: 4.4.3(supports-color@2.0.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: - '@typescript-eslint/parser': 8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.56.1(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/utils': 8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/parser': 8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/typescript-estree': 8.56.1(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/utils': 8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) ajv: 6.15.0 eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) json-stable-stringify-without-jsonify: 1.0.1 @@ -6355,39 +6504,39 @@ snapshots: '@typescript-eslint/types': 8.60.0 '@typescript-eslint/visitor-keys': 8.60.0 - '@typescript-eslint/tsconfig-utils@8.56.1(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.56.1(typescript@7.0.2)': dependencies: - typescript: 6.0.3 + typescript: 7.0.2 - '@typescript-eslint/tsconfig-utils@8.58.2(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.58.2(typescript@7.0.2)': dependencies: - typescript: 6.0.3 + typescript: 7.0.2 - '@typescript-eslint/tsconfig-utils@8.60.0(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.60.0(typescript@7.0.2)': dependencies: - typescript: 6.0.3 + typescript: 7.0.2 - '@typescript-eslint/type-utils@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.58.2(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/utils': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) debug: 4.4.3(supports-color@2.0.0) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.60.0(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) debug: 4.4.3(supports-color@2.0.0) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -6397,81 +6546,81 @@ snapshots: '@typescript-eslint/types@8.60.0': {} - '@typescript-eslint/typescript-estree@8.56.1(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.56.1(supports-color@2.0.0)(typescript@7.0.2)': dependencies: - '@typescript-eslint/project-service': 8.56.1(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@6.0.3) + '@typescript-eslint/project-service': 8.56.1(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@7.0.2) '@typescript-eslint/types': 8.56.1 '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3(supports-color@2.0.0) minimatch: 10.2.6 semver: 7.8.5 tinyglobby: 0.2.17 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.58.2(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.58.2(supports-color@2.0.0)(typescript@7.0.2)': dependencies: - '@typescript-eslint/project-service': 8.58.2(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@6.0.3) + '@typescript-eslint/project-service': 8.58.2(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/tsconfig-utils': 8.58.2(typescript@7.0.2) '@typescript-eslint/types': 8.58.2 '@typescript-eslint/visitor-keys': 8.58.2 debug: 4.4.3(supports-color@2.0.0) minimatch: 10.2.6 semver: 7.8.5 tinyglobby: 0.2.17 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@7.0.2)': dependencies: - '@typescript-eslint/project-service': 8.60.0(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@6.0.3) + '@typescript-eslint/project-service': 8.60.0(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/tsconfig-utils': 8.60.0(typescript@7.0.2) '@typescript-eslint/types': 8.60.0 '@typescript-eslint/visitor-keys': 8.60.0 debug: 4.4.3(supports-color@2.0.0) minimatch: 10.2.6 semver: 7.8.5 tinyglobby: 0.2.17 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 + ts-api-utils: 2.5.0(typescript@7.0.2) + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/utils@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) '@typescript-eslint/scope-manager': 8.56.1 '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.56.1(supports-color@2.0.0)(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/utils@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) '@typescript-eslint/scope-manager': 8.58.2 '@typescript-eslint/types': 8.58.2 - '@typescript-eslint/typescript-estree': 8.58.2(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.58.2(supports-color@2.0.0)(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) '@typescript-eslint/scope-manager': 8.60.0 '@typescript-eslint/types': 8.60.0 - '@typescript-eslint/typescript-estree': 8.60.0(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/typescript-estree': 8.60.0(supports-color@2.0.0)(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -6490,10 +6639,70 @@ snapshots: '@typescript-eslint/types': 8.60.0 eslint-visitor-keys: 5.0.1 - '@typescript/vfs@1.6.4(supports-color@2.0.0)(typescript@6.0.3)': + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true + + '@typescript/typescript-darwin-arm64@7.0.2': + optional: true + + '@typescript/typescript-darwin-x64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-freebsd-x64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm64@7.0.2': + optional: true + + '@typescript/typescript-linux-arm@7.0.2': + optional: true + + '@typescript/typescript-linux-loong64@7.0.2': + optional: true + + '@typescript/typescript-linux-mips64el@7.0.2': + optional: true + + '@typescript/typescript-linux-ppc64@7.0.2': + optional: true + + '@typescript/typescript-linux-riscv64@7.0.2': + optional: true + + '@typescript/typescript-linux-s390x@7.0.2': + optional: true + + '@typescript/typescript-linux-x64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-netbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-arm64@7.0.2': + optional: true + + '@typescript/typescript-openbsd-x64@7.0.2': + optional: true + + '@typescript/typescript-sunos-x64@7.0.2': + optional: true + + '@typescript/typescript-win32-arm64@7.0.2': + optional: true + + '@typescript/typescript-win32-x64@7.0.2': + optional: true + + '@typescript/vfs@1.6.4(supports-color@2.0.0)(typescript@7.0.2)': dependencies: debug: 4.4.3(supports-color@2.0.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -6508,17 +6717,17 @@ snapshots: '@unocss/core@66.6.8': {} - '@unocss/eslint-config@66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@unocss/eslint-config@66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: - '@unocss/eslint-plugin': 66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@unocss/eslint-plugin': 66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) transitivePeerDependencies: - eslint - supports-color - typescript - '@unocss/eslint-plugin@66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@unocss/eslint-plugin@66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: - '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) '@unocss/config': 66.6.8 '@unocss/core': 66.6.8 '@unocss/rule-utils': 66.6.8 @@ -6539,20 +6748,20 @@ snapshots: d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) - '@vitejs/plugin-react@6.0.5(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0))': + '@vitejs/plugin-react@6.0.5(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) - '@vitest/eslint-plugin@1.6.18(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0)))': + '@vitest/eslint-plugin@1.6.18(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)))': dependencies: '@typescript-eslint/scope-manager': 8.60.0 - '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) - typescript: 6.0.3 - vitest: 4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0)) + '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) + typescript: 7.0.2 + vitest: 4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) transitivePeerDependencies: - supports-color @@ -6565,13 +6774,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.10(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0))': + '@vitest/mocker@4.1.10(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) '@vitest/pretty-format@4.1.10': dependencies: @@ -6636,16 +6845,16 @@ snapshots: transitivePeerDependencies: - '@types/eslint' - '@vue/eslint-config-typescript@14.7.0(eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3)': + '@vue/eslint-config-typescript@14.7.0(eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)': dependencies: - '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) - eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)) + eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)) fast-glob: 3.3.3 - typescript-eslint: 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + typescript-eslint: 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) vue-eslint-parser: 10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0) optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -7158,12 +7367,12 @@ snapshots: dependencies: eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) - eslint-plugin-command@3.5.2(@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@6.0.3))(@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)): + eslint-plugin-command@3.5.2(@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)): dependencies: '@es-joy/jsdoccomment': 0.84.0 - '@typescript-eslint/rule-tester': 8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.60.0(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/rule-tester': 8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/typescript-estree': 8.60.0(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) eslint-plugin-depend@1.5.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)): @@ -7232,7 +7441,7 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-n@17.24.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(typescript@6.0.3): + eslint-plugin-n@17.24.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(typescript@7.0.2): dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) enhanced-resolve: 5.24.5 @@ -7243,15 +7452,15 @@ snapshots: globrex: 0.1.2 ignore: 5.3.2 semver: 7.8.5 - ts-declaration-location: 1.0.7(typescript@6.0.3) + ts-declaration-location: 1.0.7(typescript@7.0.2) transitivePeerDependencies: - typescript eslint-plugin-no-only-tests@3.4.0: {} - eslint-plugin-perfectionist@5.9.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3): + eslint-plugin-perfectionist@5.9.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2): dependencies: - '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) natural-orderby: 5.0.0 transitivePeerDependencies: @@ -7320,13 +7529,13 @@ snapshots: semver: 7.8.5 strip-indent: 4.1.1 - eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)): + eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)): dependencies: eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) - eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)): + eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)): dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) @@ -7338,9 +7547,9 @@ snapshots: xml-name-validator: 4.0.0 optionalDependencies: '@stylistic/eslint-plugin': 5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) - '@typescript-eslint/parser': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/parser': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) - eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)): + eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(vue-eslint-parser@10.4.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)): dependencies: '@eslint-community/eslint-utils': 4.10.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) @@ -7352,7 +7561,7 @@ snapshots: xml-name-validator: 4.0.0 optionalDependencies: '@stylistic/eslint-plugin': 5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) - '@typescript-eslint/parser': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/parser': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) eslint-plugin-yml@3.3.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)): dependencies: @@ -8215,7 +8424,7 @@ snapshots: merge2@1.4.1: {} - mermaid@11.16.0: + mermaid@11.16.1: dependencies: '@braintree/sanitize-url': 7.1.2 '@iconify/utils': 3.1.4 @@ -8564,38 +8773,39 @@ snapshots: react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - next@16.2.12(@babel/core@7.29.7(supports-color@2.0.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0): + next@16.3.0(@babel/core@7.29.7(supports-color@2.0.0))(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0): dependencies: - '@next/env': 16.2.12 + '@next/env': 16.3.0 '@swc/helpers': 0.5.15 baseline-browser-mapping: 2.11.8 caniuse-lite: 1.0.30001806 - postcss: 8.4.31 + postcss: 8.5.23 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) styled-jsx: 5.1.6(@babel/core@7.29.7(supports-color@2.0.0))(react@19.2.8) optionalDependencies: - '@next/swc-darwin-arm64': 16.2.12 - '@next/swc-darwin-x64': 16.2.12 - '@next/swc-linux-arm64-gnu': 16.2.12 - '@next/swc-linux-arm64-musl': 16.2.12 - '@next/swc-linux-x64-gnu': 16.2.12 - '@next/swc-linux-x64-musl': 16.2.12 - '@next/swc-win32-arm64-msvc': 16.2.12 - '@next/swc-win32-x64-msvc': 16.2.12 + '@next/swc-darwin-arm64': 16.3.0 + '@next/swc-darwin-x64': 16.3.0 + '@next/swc-linux-arm64-gnu': 16.3.0 + '@next/swc-linux-arm64-musl': 16.3.0 + '@next/swc-linux-x64-gnu': 16.3.0 + '@next/swc-linux-x64-musl': 16.3.0 + '@next/swc-win32-arm64-msvc': 16.3.0 + '@next/swc-win32-x64-msvc': 16.3.0 sass: 1.102.0 - sharp: 0.34.5 + sharp: 0.35.3(@types/node@26.1.2) transitivePeerDependencies: - '@babel/core' + - '@types/node' - babel-plugin-macros - nextra-theme-docs@4.6.1(@types/react@19.2.18)(immer@11.1.15)(next@16.2.12(@babel/core@7.29.7(supports-color@2.0.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(nextra@4.6.1(next@16.2.12(@babel/core@7.29.7(supports-color@2.0.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(supports-color@2.0.0)(typescript@6.0.3))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)): + nextra-theme-docs@4.6.1(@types/react@19.2.18)(immer@11.1.15)(next@16.3.0(@babel/core@7.29.7(supports-color@2.0.0))(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(nextra@4.6.1(next@16.3.0(@babel/core@7.29.7(supports-color@2.0.0))(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(supports-color@2.0.0)(typescript@7.0.2))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(use-sync-external-store@1.6.0(react@19.2.8)): dependencies: '@headlessui/react': 2.2.10(react-dom@19.2.8(react@19.2.8))(react@19.2.8) clsx: 2.1.1 - next: 16.2.12(@babel/core@7.29.7(supports-color@2.0.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0) + next: 16.3.0(@babel/core@7.29.7(supports-color@2.0.0))(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0) next-themes: 0.4.6(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - nextra: 4.6.1(next@16.2.12(@babel/core@7.29.7(supports-color@2.0.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(supports-color@2.0.0)(typescript@6.0.3) + nextra: 4.6.1(next@16.3.0(@babel/core@7.29.7(supports-color@2.0.0))(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(supports-color@2.0.0)(typescript@7.0.2) react: 19.2.8 react-compiler-runtime: 19.1.0-rc.3(react@19.2.8) react-dom: 19.2.8(react@19.2.8) @@ -8607,13 +8817,13 @@ snapshots: - immer - use-sync-external-store - nextra@4.6.1(next@16.2.12(@babel/core@7.29.7(supports-color@2.0.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(supports-color@2.0.0)(typescript@6.0.3): + nextra@4.6.1(next@16.3.0(@babel/core@7.29.7(supports-color@2.0.0))(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(supports-color@2.0.0)(typescript@7.0.2): dependencies: '@formatjs/intl-localematcher': 0.6.2 '@headlessui/react': 2.2.10(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@mdx-js/mdx': 3.1.1(supports-color@2.0.0) '@napi-rs/simple-git': 0.1.22 - '@shikijs/twoslash': 3.23.0(supports-color@2.0.0)(typescript@6.0.3) + '@shikijs/twoslash': 3.23.0(supports-color@2.0.0)(typescript@7.0.2) '@theguild/remark-mermaid': 0.3.0(react@19.2.8) '@theguild/remark-npm2yarn': 0.3.3 better-react-mathjax: 2.3.0(react@19.2.8) @@ -8628,7 +8838,7 @@ snapshots: mdast-util-gfm: 3.1.0(supports-color@2.0.0) mdast-util-to-hast: 13.2.1 negotiator: 1.0.0 - next: 16.2.12(@babel/core@7.29.7(supports-color@2.0.0))(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0) + next: 16.3.0(@babel/core@7.29.7(supports-color@2.0.0))(@types/node@26.1.2)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(sass@1.102.0) react: 19.2.8 react-compiler-runtime: 19.1.0-rc.3(react@19.2.8) react-dom: 19.2.8(react@19.2.8) @@ -8841,7 +9051,7 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss@8.4.31: + postcss@8.5.23: dependencies: nanoid: 3.3.16 picocolors: 1.1.1 @@ -9229,36 +9439,38 @@ snapshots: server-only@0.0.1: {} - sharp@0.34.5: + sharp@0.35.3(@types/node@26.1.2): dependencies: '@img/colour': 1.1.0 detect-libc: 2.1.2 semver: 7.8.5 optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.5 - '@img/sharp-darwin-x64': 0.34.5 - '@img/sharp-libvips-darwin-arm64': 1.2.4 - '@img/sharp-libvips-darwin-x64': 1.2.4 - '@img/sharp-libvips-linux-arm': 1.2.4 - '@img/sharp-libvips-linux-arm64': 1.2.4 - '@img/sharp-libvips-linux-ppc64': 1.2.4 - '@img/sharp-libvips-linux-riscv64': 1.2.4 - '@img/sharp-libvips-linux-s390x': 1.2.4 - '@img/sharp-libvips-linux-x64': 1.2.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - '@img/sharp-linux-arm': 0.34.5 - '@img/sharp-linux-arm64': 0.34.5 - '@img/sharp-linux-ppc64': 0.34.5 - '@img/sharp-linux-riscv64': 0.34.5 - '@img/sharp-linux-s390x': 0.34.5 - '@img/sharp-linux-x64': 0.34.5 - '@img/sharp-linuxmusl-arm64': 0.34.5 - '@img/sharp-linuxmusl-x64': 0.34.5 - '@img/sharp-wasm32': 0.34.5 - '@img/sharp-win32-arm64': 0.34.5 - '@img/sharp-win32-ia32': 0.34.5 - '@img/sharp-win32-x64': 0.34.5 + '@img/sharp-darwin-arm64': 0.35.3 + '@img/sharp-darwin-x64': 0.35.3 + '@img/sharp-freebsd-wasm32': 0.35.3 + '@img/sharp-libvips-darwin-arm64': 1.3.2 + '@img/sharp-libvips-darwin-x64': 1.3.2 + '@img/sharp-libvips-linux-arm': 1.3.2 + '@img/sharp-libvips-linux-arm64': 1.3.2 + '@img/sharp-libvips-linux-ppc64': 1.3.2 + '@img/sharp-libvips-linux-riscv64': 1.3.2 + '@img/sharp-libvips-linux-s390x': 1.3.2 + '@img/sharp-libvips-linux-x64': 1.3.2 + '@img/sharp-libvips-linuxmusl-arm64': 1.3.2 + '@img/sharp-libvips-linuxmusl-x64': 1.3.2 + '@img/sharp-linux-arm': 0.35.3 + '@img/sharp-linux-arm64': 0.35.3 + '@img/sharp-linux-ppc64': 0.35.3 + '@img/sharp-linux-riscv64': 0.35.3 + '@img/sharp-linux-s390x': 0.35.3 + '@img/sharp-linux-x64': 0.35.3 + '@img/sharp-linuxmusl-arm64': 0.35.3 + '@img/sharp-linuxmusl-x64': 0.35.3 + '@img/sharp-webcontainers-wasm32': 0.35.3 + '@img/sharp-win32-arm64': 0.35.3 + '@img/sharp-win32-ia32': 0.35.3 + '@img/sharp-win32-x64': 0.35.3 + '@types/node': 26.1.2 optional: true shebang-command@2.0.0: @@ -9396,14 +9608,14 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.5.0(typescript@6.0.3): + ts-api-utils@2.5.0(typescript@7.0.2): dependencies: - typescript: 6.0.3 + typescript: 7.0.2 - ts-declaration-location@1.0.7(typescript@6.0.3): + ts-declaration-location@1.0.7(typescript@7.0.2): dependencies: picomatch: 4.0.5 - typescript: 6.0.3 + typescript: 7.0.2 ts-dedent@2.3.0: {} @@ -9414,7 +9626,7 @@ snapshots: tslib@2.8.1: {} - tsx@4.23.1: + tsx@4.23.7: dependencies: esbuild: 0.28.1 optionalDependencies: @@ -9424,11 +9636,11 @@ snapshots: twoslash-protocol@0.3.9: {} - twoslash@0.3.9(supports-color@2.0.0)(typescript@6.0.3): + twoslash@0.3.9(supports-color@2.0.0)(typescript@7.0.2): dependencies: - '@typescript/vfs': 1.6.4(supports-color@2.0.0)(typescript@6.0.3) + '@typescript/vfs': 1.6.4(supports-color@2.0.0)(typescript@7.0.2) twoslash-protocol: 0.3.9 - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color @@ -9436,19 +9648,42 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3): + typescript-eslint@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/parser': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.58.2(supports-color@2.0.0)(typescript@6.0.3) - '@typescript-eslint/utils': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@6.0.3) + '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/parser': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/typescript-estree': 8.58.2(supports-color@2.0.0)(typescript@7.0.2) + '@typescript-eslint/utils': 8.58.2(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) - typescript: 6.0.3 + typescript: 7.0.2 transitivePeerDependencies: - supports-color typescript@6.0.3: {} + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 + ufo@1.6.4: {} unconfig-core@7.5.0: @@ -9528,7 +9763,7 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.1)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0)): + unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.1)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)): dependencies: '@jridgewell/remapping': 2.3.5 picomatch: 4.0.5 @@ -9536,7 +9771,7 @@ snapshots: optionalDependencies: esbuild: 0.28.1 rolldown: 1.2.1 - vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: @@ -9588,7 +9823,7 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0): + vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 picomatch: 4.0.5 @@ -9601,13 +9836,13 @@ snapshots: fsevents: 2.3.3 jiti: 2.7.0 sass: 1.102.0 - tsx: 4.23.1 + tsx: 4.23.7 yaml: 2.9.0 - vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0)): + vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0)) + '@vitest/mocker': 4.1.10(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.10 '@vitest/runner': 4.1.10 '@vitest/snapshot': 4.1.10 @@ -9624,7 +9859,7 @@ snapshots: tinyexec: 1.2.2 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.1)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 26.1.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index d8fef215..363433ce 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -21,9 +21,9 @@ catalog: "@next/eslint-plugin-next": ^16.2.12 "@next/mdx": ^16.2.12 "@tailwindcss/vite": ^4.3.3 - "@tanstack/react-router": ^1.170.18 - "@tanstack/router-generator": ^1.167.21 - "@tanstack/router-plugin": ^1.168.23 + "@tanstack/react-router": ^1.170.19 + "@tanstack/router-generator": ^1.167.22 + "@tanstack/router-plugin": ^1.168.24 "@tauri-apps/api": ~2.11.1 "@tauri-apps/cli": ~2.11.4 "@tauri-apps/plugin-shell": ~2.3.5 @@ -58,9 +58,9 @@ catalog: lucide-react: ^1.28.0 material-icon-theme: ^5.37.0 mdast-util-mdx: ^3.0.0 - mermaid: ^11.16.0 + mermaid: ^11.16.1 monaco-editor: ^0.56.0 - next: ^16.2.12 + next: ^16.3.0 nextra: ^4.6.1 nextra-theme-docs: ^4.6.1 npm-run-all2: ^9.0.3 @@ -81,11 +81,10 @@ catalog: tailwindcss: ^4.3.3 testcontainers: ^12.0.4 tsdown: ^0.22.14 - tsx: ^4.23.1 + tsx: ^4.23.7 turbo: ^2.10.8 tw-animate-css: ^1.4.0 - # typescript-eslint@8 仍要求 typescript <6.1;7.x 暂不可用 - typescript: 6.0.3 + typescript: 7.0.2 typescript-eslint: ^8.65.0 unified: ^11.0.5 vite: ^8.2.0 From cc3a3e82773d1d7ba953f73cfe539614e843c0d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=97=A5=E5=A4=A9?= Date: Thu, 6 Aug 2026 18:52:49 +0800 Subject: [PATCH 05/11] fix(tsconfig): remove baseUrl option for clarity fix(next-env): add missing root-params type import --- doc/next-env.d.ts | 1 + doc/tsconfig.json | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/next-env.d.ts b/doc/next-env.d.ts index 9edff1c7..ce4e94a6 100644 --- a/doc/next-env.d.ts +++ b/doc/next-env.d.ts @@ -1,6 +1,7 @@ /// /// import "./.next/types/routes.d.ts"; +import "./.next/types/root-params.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/doc/tsconfig.json b/doc/tsconfig.json index 639a06c9..4cb8440b 100644 --- a/doc/tsconfig.json +++ b/doc/tsconfig.json @@ -4,7 +4,6 @@ "target": "ES2022", "jsx": "react-jsx", "lib": ["DOM", "DOM.Iterable", "ES2022"], - "baseUrl": ".", "module": "ESNext", "moduleResolution": "Bundler", "paths": { From cf56833b30fdffb724f7d717d5a99f7b84ca1010 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=97=A5=E5=A4=A9?= Date: Thu, 6 Aug 2026 18:53:22 +0800 Subject: [PATCH 06/11] fix: update packageExtensionsChecksum and add TypeScript dependency for twoslash --- doc/pnpm-lock.yaml | 2 ++ doc/pnpm-workspace.yaml | 5 +++++ pnpm-lock.yaml | 2 ++ pnpm-workspace.yaml | 5 +++++ 4 files changed, 14 insertions(+) diff --git a/doc/pnpm-lock.yaml b/doc/pnpm-lock.yaml index 6c3a5e38..6489d3f4 100644 --- a/doc/pnpm-lock.yaml +++ b/doc/pnpm-lock.yaml @@ -64,6 +64,8 @@ catalogs: specifier: ^2.9.0 version: 2.9.0 +packageExtensionsChecksum: sha256-kqDyViMUwG0vkQh5Ds2sKQEOZl/8617HyUtl7jgUPNo= + importers: .: diff --git a/doc/pnpm-workspace.yaml b/doc/pnpm-workspace.yaml index db74fec5..dffcdfff 100644 --- a/doc/pnpm-workspace.yaml +++ b/doc/pnpm-workspace.yaml @@ -9,6 +9,11 @@ allowBuilds: verifyDepsBeforeRun: false strictDepBuilds: false +packageExtensions: + twoslash@0.3.9: + dependencies: + typescript: 6.0.3 + catalog: '@theguild/remark-mermaid': ^0.3.0 '@truenine/eslint10-config': ^2026.10411.10025 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2e2866ce..a4429c18 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -130,6 +130,8 @@ catalogs: specifier: ^2.9.0 version: 2.9.0 +packageExtensionsChecksum: sha256-kqDyViMUwG0vkQh5Ds2sKQEOZl/8617HyUtl7jgUPNo= + importers: .: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 363433ce..4ef263e6 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -11,6 +11,11 @@ allowBuilds: verifyDepsBeforeRun: false strictDepBuilds: false +packageExtensions: + twoslash@0.3.9: + dependencies: + typescript: 6.0.3 + catalog: "@antfu/eslint-config": ^9.2.0 "@clack/prompts": ^1.7.0 From b57243e3e925b81122fe3e7d8682ba6603c3000b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=97=A5=E5=A4=A9?= Date: Thu, 6 Aug 2026 19:49:17 +0800 Subject: [PATCH 07/11] chore: update package versions and remove deprecated package extensions - Removed package extension for `twoslash@0.3.9`. - Updated `tsx` from `4.23.7` to `4.23.9`. - Updated `@tanstack/react-router` from `1.170.19` to `1.170.20`. - Updated `@tanstack/router-generator` from `1.167.22` to `1.167.23`. - Updated `@tanstack/router-plugin` from `1.168.24` to `1.168.25`. - Added minimum release age exclusions for updated packages. --- doc/pnpm-lock.yaml | 14 ++-- doc/pnpm-workspace.yaml | 10 ++- pnpm-lock.yaml | 142 ++++++++++++++++++++-------------------- pnpm-workspace.yaml | 20 +++--- 4 files changed, 91 insertions(+), 95 deletions(-) diff --git a/doc/pnpm-lock.yaml b/doc/pnpm-lock.yaml index 6489d3f4..031216b3 100644 --- a/doc/pnpm-lock.yaml +++ b/doc/pnpm-lock.yaml @@ -55,8 +55,8 @@ catalogs: specifier: ^1.102.0 version: 1.102.0 tsx: - specifier: ^4.23.7 - version: 4.23.7 + specifier: ^4.23.9 + version: 4.23.9 typescript: specifier: 7.0.2 version: 7.0.2 @@ -64,8 +64,6 @@ catalogs: specifier: ^2.9.0 version: 2.9.0 -packageExtensionsChecksum: sha256-kqDyViMUwG0vkQh5Ds2sKQEOZl/8617HyUtl7jgUPNo= - importers: .: @@ -121,7 +119,7 @@ importers: version: 1.5.2 tsx: specifier: 'catalog:' - version: 4.23.7 + version: 4.23.9 typescript: specifier: 'catalog:' version: 7.0.2 @@ -3499,8 +3497,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.23.7: - resolution: {integrity: sha512-3f/u/+UDCNQ7iwUZW9FCMnNGIHzElGJYh0S/yy8IvWSsn5O7fEO/897FaG7FA2W8yryiRyuwXZ1PYLAKYaqSuQ==} + tsx@4.23.9: + resolution: {integrity: sha512-6q8uTORRGauQVjqMQnKUucLFoeXZAfw6zKvG35GLbdKWbLdeOtZ3H4mhyA5mxuUd2o2cRTskhj59nLLQseUvUw==} engines: {node: '>=18.0.0'} hasBin: true @@ -7441,7 +7439,7 @@ snapshots: tslib@2.8.1: {} - tsx@4.23.7: + tsx@4.23.9: dependencies: esbuild: 0.28.1 optionalDependencies: diff --git a/doc/pnpm-workspace.yaml b/doc/pnpm-workspace.yaml index dffcdfff..74d02975 100644 --- a/doc/pnpm-workspace.yaml +++ b/doc/pnpm-workspace.yaml @@ -9,11 +9,6 @@ allowBuilds: verifyDepsBeforeRun: false strictDepBuilds: false -packageExtensions: - twoslash@0.3.9: - dependencies: - typescript: 6.0.3 - catalog: '@theguild/remark-mermaid': ^0.3.0 '@truenine/eslint10-config': ^2026.10411.10025 @@ -31,6 +26,9 @@ catalog: react: ^19.2.8 react-dom: ^19.2.8 sass: ^1.102.0 - tsx: ^4.23.7 + tsx: ^4.23.9 typescript: 7.0.2 yaml: ^2.9.0 + +minimumReleaseAgeExclude: + - tsx@4.23.9 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a4429c18..b4d143b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,14 +13,14 @@ catalogs: specifier: ^4.3.3 version: 4.3.3 '@tanstack/react-router': - specifier: ^1.170.19 - version: 1.170.19 + specifier: ^1.170.20 + version: 1.170.20 '@tanstack/router-generator': - specifier: ^1.167.22 - version: 1.167.22 + specifier: ^1.167.23 + version: 1.167.23 '@tanstack/router-plugin': - specifier: ^1.168.24 - version: 1.168.24 + specifier: ^1.168.25 + version: 1.168.25 '@tauri-apps/api': specifier: ~2.11.1 version: 2.11.1 @@ -112,8 +112,8 @@ catalogs: specifier: ^4.3.3 version: 4.3.3 tsx: - specifier: ^4.23.7 - version: 4.23.7 + specifier: ^4.23.9 + version: 4.23.9 tw-animate-css: specifier: ^1.4.0 version: 1.4.0 @@ -130,15 +130,13 @@ catalogs: specifier: ^2.9.0 version: 2.9.0 -packageExtensionsChecksum: sha256-kqDyViMUwG0vkQh5Ds2sKQEOZl/8617HyUtl7jgUPNo= - importers: .: devDependencies: tsx: specifier: 'catalog:' - version: 4.23.7 + version: 4.23.9 typescript: specifier: 'catalog:' version: 7.0.2 @@ -172,7 +170,7 @@ importers: devDependencies: '@truenine/eslint10-config': specifier: 'catalog:' - version: 2026.10411.10025(3ef6d0676cd57ac0b3ad528fd31a18c0) + version: 2026.10411.10025(6ab79107b3d314e738b29f333dbf3665) '@types/node': specifier: 'catalog:' version: 26.1.2 @@ -196,7 +194,7 @@ importers: version: 1.5.2 tsx: specifier: 'catalog:' - version: 4.23.7 + version: 4.23.9 typescript: specifier: 'catalog:' version: 7.0.2 @@ -211,16 +209,16 @@ importers: version: 4.7.0(monaco-editor@0.56.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@tailwindcss/vite': specifier: 'catalog:' - version: 4.3.3(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) + version: 4.3.3(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0)) '@tanstack/react-router': specifier: 'catalog:' - version: 1.170.19(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + version: 1.170.20(react-dom@19.2.8(react@19.2.8))(react@19.2.8) '@tanstack/router-generator': specifier: 'catalog:' - version: 1.167.22(supports-color@2.0.0) + version: 1.167.23(supports-color@2.0.0) '@tanstack/router-plugin': specifier: 'catalog:' - version: 1.168.24(@tanstack/react-router@1.170.19(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(esbuild@0.28.1)(rolldown@1.2.1)(supports-color@2.0.0)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) + version: 1.168.25(@tanstack/react-router@1.170.20(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(esbuild@0.28.1)(rolldown@1.2.1)(supports-color@2.0.0)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0)) '@tauri-apps/api': specifier: 'catalog:' version: 2.11.1 @@ -244,7 +242,7 @@ importers: version: 19.2.4(@types/react@19.2.18) '@vitejs/plugin-react': specifier: 'catalog:' - version: 6.0.5(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) + version: 6.0.5(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0)) class-variance-authority: specifier: 'catalog:' version: 0.7.1 @@ -280,7 +278,7 @@ importers: version: 4.3.3 tsx: specifier: 'catalog:' - version: 4.23.7 + version: 4.23.9 tw-animate-css: specifier: 'catalog:' version: 1.4.0 @@ -289,10 +287,10 @@ importers: version: 7.0.2 vite: specifier: 'catalog:' - version: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) + version: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0) vitest: specifier: 'catalog:' - version: 4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) + version: 4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0)) packages: @@ -1668,8 +1666,8 @@ packages: resolution: {integrity: sha512-79pf/RkhteYZTRgcR4F9kbk84P2N8rugQJswxfIqovlbRiT3yI7eBE+5QorIrZaOKktsgzRlXh1l/du/xpl4iA==} engines: {node: '>=20.19'} - '@tanstack/react-router@1.170.19': - resolution: {integrity: sha512-cK7VUsc9+8gYZMqwJjCAhrmL9wPhkwxEcZ7cxlHdBjjmqHbZyNxXAml/KfLmSuxRDQGVk2iofpoHclDTSrkmmg==} + '@tanstack/react-router@1.170.20': + resolution: {integrity: sha512-ptdksUzLqYJQcbA1XTIjIXwkQ2hJx/71SyOm2PVYqU30zrbj5c4bCimdJWx4qGYj1lb30mx3A58XIOz3zMzO3Q==} engines: {node: '>=20.19'} peerDependencies: react: '>=18.0.0 || >=19.0.0' @@ -1687,20 +1685,20 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/router-core@1.171.16': - resolution: {integrity: sha512-/qwawP5a45puA9DQtG8syrChWCV7uGMYs1p5rwgrICgiS/0pHo7zNOFyfVI02J1azWhCfFc6w6+SuiivPESYAA==} + '@tanstack/router-core@1.171.17': + resolution: {integrity: sha512-jaW4vGn+S0Txcz4HgARz9VN2BlgcyGJwIrZ2Vzo9FoJje8wzIiRSX+BMts6KGANXB/jWr+vLXJ3fen50ge2ZcA==} engines: {node: '>=20.19'} - '@tanstack/router-generator@1.167.22': - resolution: {integrity: sha512-tiKrH6xuCdTfmm4UuHSpLsZ5q2pwmhNbGpExp5u/CCRObjQM5nxz8Dce/X3w86ST6VSZFQMBNjLcsUMnVlJw/Q==} + '@tanstack/router-generator@1.167.23': + resolution: {integrity: sha512-VXCGdsFMBJ1eRVpdDGXmuYUB7+AsqG0YcdATKCareTXrIbsBo/ox8Df5KsssoWV1jYVYlPUSpihpaiJXzJ1Kfw==} engines: {node: '>=20.19'} - '@tanstack/router-plugin@1.168.24': - resolution: {integrity: sha512-FfPW45gfZHDC25AHo4MJB3ZljXEKFJenEgIDTELwnI6FtS90vXTQXjOjdTVNs/7B4R8+wLf7nWVrPSvBMp7zWw==} + '@tanstack/router-plugin@1.168.25': + resolution: {integrity: sha512-Kj/mhjJlUa9wWyXacWd6DQ/axWrQGmxhOnRKlgHK6/A/eGeCU5Vwetbvi4S6FlMOjIJm514XPXYkEXqjXp7+4w==} engines: {node: '>=20.19'} peerDependencies: '@rsbuild/core': '>=1.0.2 || ^2.0.0' - '@tanstack/react-router': ^1.170.19 + '@tanstack/react-router': ^1.170.20 vite: '>=5.0.0 || >=6.0.0 || >=7.0.0 || >=8.0.0' vite-plugin-solid: ^2.11.10 || ^3.0.0-0 webpack: '>=5.92.0' @@ -4405,14 +4403,14 @@ packages: engines: {node: '>=10'} hasBin: true - seroval-plugins@1.6.0: - resolution: {integrity: sha512-CbR5DP5DPicpd9RwRUzka7hi4x1577eGFXJVBW409LXqqJNst99JSUTZ8CXcnskQX7laPOWpmzliq0gBZEGlrQ==} + seroval-plugins@1.6.2: + resolution: {integrity: sha512-TfxuUjlbBESzUOWdTkTKqvSmav0ABym+itetDXLK6mDz8SmrpdI30aF8RTXE8Bvq+tH/1yIDkvy3W0lfQb1ipQ==} engines: {node: '>=10'} peerDependencies: seroval: ^1.0 - seroval@1.6.0: - resolution: {integrity: sha512-TBwwKfscTEgnBEWmYKKeCcmCGmrJi0LV6qNUY//WBA3MDesh/zfn+KOMq/ckpxM4gZ0ouAE706A1eenekM2sug==} + seroval@1.6.2: + resolution: {integrity: sha512-mPT+SD2TrlB6wvte1KkYOYUkubaTbd6pZ/6Kk3C9nxzrHmCZyhxOO7XGAeL7f+yLKZglzGtM9odUVvg/EhO+vQ==} engines: {node: '>=10'} server-only@0.0.1: @@ -4612,8 +4610,8 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsx@4.23.7: - resolution: {integrity: sha512-3f/u/+UDCNQ7iwUZW9FCMnNGIHzElGJYh0S/yy8IvWSsn5O7fEO/897FaG7FA2W8yryiRyuwXZ1PYLAKYaqSuQ==} + tsx@4.23.9: + resolution: {integrity: sha512-6q8uTORRGauQVjqMQnKUucLFoeXZAfw6zKvG35GLbdKWbLdeOtZ3H4mhyA5mxuUd2o2cRTskhj59nLLQseUvUw==} engines: {node: '>=18.0.0'} hasBin: true @@ -4927,7 +4925,7 @@ packages: snapshots: - '@antfu/eslint-config@8.2.0(@next/eslint-plugin-next@16.2.4)(@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@unocss/eslint-plugin@66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@vue/compiler-sfc@3.5.26)(eslint-plugin-format@2.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)))': + '@antfu/eslint-config@8.2.0(@next/eslint-plugin-next@16.2.4)(@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@unocss/eslint-plugin@66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@vue/compiler-sfc@3.5.26)(eslint-plugin-format@2.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0)))': dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 1.4.0 @@ -4937,7 +4935,7 @@ snapshots: '@stylistic/eslint-plugin': 5.10.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) '@typescript-eslint/parser': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) - '@vitest/eslint-plugin': 1.6.18(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0))) + '@vitest/eslint-plugin': 1.6.18(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0))) ansis: 4.3.1 cac: 7.0.0 eslint: 10.8.0(jiti@2.7.0)(supports-color@2.0.0) @@ -6014,20 +6012,20 @@ snapshots: '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3 '@tailwindcss/oxide-win32-x64-msvc': 4.3.3 - '@tailwindcss/vite@4.3.3(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0))': + '@tailwindcss/vite@4.3.3(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0))': dependencies: '@tailwindcss/node': 4.3.3 '@tailwindcss/oxide': 4.3.3 tailwindcss: 4.3.3 - vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0) '@tanstack/history@1.162.0': {} - '@tanstack/react-router@1.170.19(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': + '@tanstack/react-router@1.170.20(react-dom@19.2.8(react@19.2.8))(react@19.2.8)': dependencies: '@tanstack/history': 1.162.0 '@tanstack/react-store': 0.9.3(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - '@tanstack/router-core': 1.171.16 + '@tanstack/router-core': 1.171.17 isbot: 5.2.1 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) @@ -6045,17 +6043,17 @@ snapshots: react: 19.2.8 react-dom: 19.2.8(react@19.2.8) - '@tanstack/router-core@1.171.16': + '@tanstack/router-core@1.171.17': dependencies: '@tanstack/history': 1.162.0 cookie-es: 3.1.1 - seroval: 1.6.0 - seroval-plugins: 1.6.0(seroval@1.6.0) + seroval: 1.6.2 + seroval-plugins: 1.6.2(seroval@1.6.2) - '@tanstack/router-generator@1.167.22(supports-color@2.0.0)': + '@tanstack/router-generator@1.167.23(supports-color@2.0.0)': dependencies: '@babel/types': 7.29.7 - '@tanstack/router-core': 1.171.16 + '@tanstack/router-core': 1.171.17 '@tanstack/router-utils': 1.162.2(supports-color@2.0.0) '@tanstack/virtual-file-routes': 1.162.0 jiti: 2.7.0 @@ -6065,20 +6063,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@tanstack/router-plugin@1.168.24(@tanstack/react-router@1.170.19(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(esbuild@0.28.1)(rolldown@1.2.1)(supports-color@2.0.0)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0))': + '@tanstack/router-plugin@1.168.25(@tanstack/react-router@1.170.20(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(esbuild@0.28.1)(rolldown@1.2.1)(supports-color@2.0.0)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0))': dependencies: '@babel/core': 7.29.7(supports-color@2.0.0) '@babel/template': 7.29.7 '@babel/types': 7.29.7 - '@tanstack/router-core': 1.171.16 - '@tanstack/router-generator': 1.167.22(supports-color@2.0.0) + '@tanstack/router-core': 1.171.17 + '@tanstack/router-generator': 1.167.23(supports-color@2.0.0) '@tanstack/router-utils': 1.162.2(supports-color@2.0.0) chokidar: 5.0.0 - unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.1)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) + unplugin: 3.3.0(esbuild@0.28.1)(rolldown@1.2.1)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0)) zod: 4.4.3 optionalDependencies: - '@tanstack/react-router': 1.170.19(react-dom@19.2.8(react@19.2.8))(react@19.2.8) - vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) + '@tanstack/react-router': 1.170.20(react-dom@19.2.8(react@19.2.8))(react@19.2.8) + vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0) transitivePeerDependencies: - '@farmfe/core' - '@rspack/core' @@ -6176,9 +6174,9 @@ snapshots: npm-to-yarn: 3.2.0 unist-util-visit: 5.1.0 - '@truenine/eslint10-config@2026.10411.10025(3ef6d0676cd57ac0b3ad528fd31a18c0)': + '@truenine/eslint10-config@2026.10411.10025(6ab79107b3d314e738b29f333dbf3665)': dependencies: - '@antfu/eslint-config': 8.2.0(@next/eslint-plugin-next@16.2.4)(@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@unocss/eslint-plugin@66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@vue/compiler-sfc@3.5.26)(eslint-plugin-format@2.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0))) + '@antfu/eslint-config': 8.2.0(@next/eslint-plugin-next@16.2.4)(@typescript-eslint/rule-tester@8.56.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/typescript-estree@8.60.0(supports-color@2.0.0)(typescript@7.0.2))(@typescript-eslint/utils@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@unocss/eslint-plugin@66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(@vue/compiler-sfc@3.5.26)(eslint-plugin-format@2.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0))) '@eslint/js': 10.0.1(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0)) '@next/eslint-plugin-next': 16.2.4 '@unocss/eslint-config': 66.6.8(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) @@ -6750,12 +6748,12 @@ snapshots: d3-selection: 3.0.0 d3-transition: 3.0.1(d3-selection@3.0.0) - '@vitejs/plugin-react@6.0.5(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0))': + '@vitejs/plugin-react@6.0.5(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0) - '@vitest/eslint-plugin@1.6.18(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)))': + '@vitest/eslint-plugin@1.6.18(@typescript-eslint/eslint-plugin@8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2)(vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0)))': dependencies: '@typescript-eslint/scope-manager': 8.60.0 '@typescript-eslint/utils': 8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) @@ -6763,7 +6761,7 @@ snapshots: optionalDependencies: '@typescript-eslint/eslint-plugin': 8.60.0(@typescript-eslint/parser@8.60.0(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2))(eslint@10.8.0(jiti@2.7.0)(supports-color@2.0.0))(supports-color@2.0.0)(typescript@7.0.2) typescript: 7.0.2 - vitest: 4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) + vitest: 4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0)) transitivePeerDependencies: - supports-color @@ -6776,13 +6774,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.10(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0))': + '@vitest/mocker@4.1.10(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0))': dependencies: '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0) '@vitest/pretty-format@4.1.10': dependencies: @@ -9433,11 +9431,11 @@ snapshots: semver@7.8.5: {} - seroval-plugins@1.6.0(seroval@1.6.0): + seroval-plugins@1.6.2(seroval@1.6.2): dependencies: - seroval: 1.6.0 + seroval: 1.6.2 - seroval@1.6.0: {} + seroval@1.6.2: {} server-only@0.0.1: {} @@ -9628,7 +9626,7 @@ snapshots: tslib@2.8.1: {} - tsx@4.23.7: + tsx@4.23.9: dependencies: esbuild: 0.28.1 optionalDependencies: @@ -9765,7 +9763,7 @@ snapshots: unist-util-is: 6.0.1 unist-util-visit-parents: 6.0.2 - unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.1)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)): + unplugin@3.3.0(esbuild@0.28.1)(rolldown@1.2.1)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0)): dependencies: '@jridgewell/remapping': 2.3.5 picomatch: 4.0.5 @@ -9773,7 +9771,7 @@ snapshots: optionalDependencies: esbuild: 0.28.1 rolldown: 1.2.1 - vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0) update-browserslist-db@1.2.3(browserslist@4.28.2): dependencies: @@ -9825,7 +9823,7 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0): + vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0): dependencies: lightningcss: 1.33.0 picomatch: 4.0.5 @@ -9838,13 +9836,13 @@ snapshots: fsevents: 2.3.3 jiti: 2.7.0 sass: 1.102.0 - tsx: 4.23.7 + tsx: 4.23.9 yaml: 2.9.0 - vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)): + vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0)): dependencies: '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0)) + '@vitest/mocker': 4.1.10(vite@8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0)) '@vitest/pretty-format': 4.1.10 '@vitest/runner': 4.1.10 '@vitest/snapshot': 4.1.10 @@ -9861,7 +9859,7 @@ snapshots: tinyexec: 1.2.2 tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.7)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.1.2)(esbuild@0.28.1)(jiti@2.7.0)(sass@1.102.0)(tsx@4.23.9)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 26.1.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4ef263e6..6bf76597 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -11,11 +11,6 @@ allowBuilds: verifyDepsBeforeRun: false strictDepBuilds: false -packageExtensions: - twoslash@0.3.9: - dependencies: - typescript: 6.0.3 - catalog: "@antfu/eslint-config": ^9.2.0 "@clack/prompts": ^1.7.0 @@ -26,9 +21,9 @@ catalog: "@next/eslint-plugin-next": ^16.2.12 "@next/mdx": ^16.2.12 "@tailwindcss/vite": ^4.3.3 - "@tanstack/react-router": ^1.170.19 - "@tanstack/router-generator": ^1.167.22 - "@tanstack/router-plugin": ^1.168.24 + "@tanstack/react-router": ^1.170.20 + "@tanstack/router-generator": ^1.167.23 + "@tanstack/router-plugin": ^1.168.25 "@tauri-apps/api": ~2.11.1 "@tauri-apps/cli": ~2.11.4 "@tauri-apps/plugin-shell": ~2.3.5 @@ -86,7 +81,7 @@ catalog: tailwindcss: ^4.3.3 testcontainers: ^12.0.4 tsdown: ^0.22.14 - tsx: ^4.23.7 + tsx: ^4.23.9 turbo: ^2.10.8 tw-animate-css: ^1.4.0 typescript: 7.0.2 @@ -98,3 +93,10 @@ catalog: zod: ^4.4.3 zod-to-json-schema: ^3.25.2 zx: ^8.8.5 + +minimumReleaseAgeExclude: + - '@tanstack/react-router@1.170.20' + - '@tanstack/router-core@1.171.17' + - '@tanstack/router-generator@1.167.23' + - '@tanstack/router-plugin@1.168.25' + - tsx@4.23.9 From ed44b8e4472afe20016a8f0b1da86b2b6ea8a22a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=97=A5=E5=A4=A9?= Date: Thu, 6 Aug 2026 20:06:59 +0800 Subject: [PATCH 08/11] chore: update version to 2026.10806.0 across all packages and dependencies --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- cli/npm/darwin-arm64/package.json | 2 +- cli/npm/darwin-x64/package.json | 2 +- cli/npm/linux-arm64-gnu/package.json | 2 +- cli/npm/linux-x64-gnu/package.json | 2 +- cli/npm/win32-x64-msvc/package.json | 2 +- cli/package.json | 12 ++++++------ doc/package.json | 2 +- gui/package.json | 2 +- gui/src-tauri/Cargo.toml | 2 +- gui/src-tauri/tauri.conf.json | 2 +- manifest.json | 2 +- mcp/npm/darwin-arm64/package.json | 2 +- mcp/npm/darwin-x64/package.json | 2 +- mcp/npm/linux-arm64-gnu/package.json | 2 +- mcp/npm/linux-x64-gnu/package.json | 2 +- mcp/npm/win32-x64-msvc/package.json | 2 +- mcp/package.json | 12 ++++++------ obsidian-plugin | 2 +- package.json | 2 +- versions.json | 3 ++- 22 files changed, 39 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f0d7053b..fdd4c0c9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2835,7 +2835,7 @@ dependencies = [ [[package]] name = "memory-sync" -version = "2026.10805.0" +version = "2026.10806.0" dependencies = [ "tnmsc", ] @@ -5893,7 +5893,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tnmsc" -version = "2026.10805.0" +version = "2026.10806.0" dependencies = [ "clap", "serde_json", @@ -5902,7 +5902,7 @@ dependencies = [ [[package]] name = "tnmsc-local-tests" -version = "2026.10805.0" +version = "2026.10806.0" dependencies = [ "dirs", "json5", @@ -5911,7 +5911,7 @@ dependencies = [ [[package]] name = "tnmsd" -version = "2026.10805.0" +version = "2026.10806.0" dependencies = [ "base64 0.23.0", "chrono", @@ -5940,7 +5940,7 @@ dependencies = [ [[package]] name = "tnmsg" -version = "2026.10805.0" +version = "2026.10806.0" dependencies = [ "dirs", "proptest", @@ -5955,7 +5955,7 @@ dependencies = [ [[package]] name = "tnmsm" -version = "2026.10805.0" +version = "2026.10806.0" dependencies = [ "assert_cmd", "clap", @@ -7286,7 +7286,7 @@ dependencies = [ [[package]] name = "xtask" -version = "2026.10805.0" +version = "2026.10806.0" dependencies = [ "clap", "serde", diff --git a/Cargo.toml b/Cargo.toml index 947f9013..167f7f52 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,7 +27,7 @@ members = [ ] [workspace.package] -version = "2026.10805.0" +version = "2026.10806.0" edition = "2024" rust-version = "1.88" license = "AGPL-3.0-only" diff --git a/cli/npm/darwin-arm64/package.json b/cli/npm/darwin-arm64/package.json index 1337da3c..6bb18c7a 100644 --- a/cli/npm/darwin-arm64/package.json +++ b/cli/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-cli-darwin-arm64", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "tnmsc native binary for macOS arm64", "author": "TrueNine", "license": "AGPL-3.0-only", diff --git a/cli/npm/darwin-x64/package.json b/cli/npm/darwin-x64/package.json index 2c31f097..8d210c9f 100644 --- a/cli/npm/darwin-x64/package.json +++ b/cli/npm/darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-cli-darwin-x64", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "tnmsc native binary for macOS x64", "author": "TrueNine", "license": "AGPL-3.0-only", diff --git a/cli/npm/linux-arm64-gnu/package.json b/cli/npm/linux-arm64-gnu/package.json index 0bb2f61b..ae4edb3b 100644 --- a/cli/npm/linux-arm64-gnu/package.json +++ b/cli/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-cli-linux-arm64-gnu", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "tnmsc native binary for Linux arm64 (glibc)", "author": "TrueNine", "license": "AGPL-3.0-only", diff --git a/cli/npm/linux-x64-gnu/package.json b/cli/npm/linux-x64-gnu/package.json index f1949660..91650d58 100644 --- a/cli/npm/linux-x64-gnu/package.json +++ b/cli/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-cli-linux-x64-gnu", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "tnmsc native binary for Linux x64 (glibc)", "author": "TrueNine", "license": "AGPL-3.0-only", diff --git a/cli/npm/win32-x64-msvc/package.json b/cli/npm/win32-x64-msvc/package.json index 48459f51..9a671088 100644 --- a/cli/npm/win32-x64-msvc/package.json +++ b/cli/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-cli-win32-x64-msvc", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "tnmsc native binary for Windows x64", "author": "TrueNine", "license": "AGPL-3.0-only", diff --git a/cli/package.json b/cli/package.json index 41494e5f..debac0a0 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-cli", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "TrueNine Memory Synchronization CLI metadata package", "author": "TrueNine", "license": "AGPL-3.0-only", @@ -34,10 +34,10 @@ "test": "cargo test --manifest-path Cargo.toml" }, "optionalDependencies": { - "@truenine/memory-sync-cli-darwin-arm64": "2026.10805.0", - "@truenine/memory-sync-cli-darwin-x64": "2026.10805.0", - "@truenine/memory-sync-cli-linux-arm64-gnu": "2026.10805.0", - "@truenine/memory-sync-cli-linux-x64-gnu": "2026.10805.0", - "@truenine/memory-sync-cli-win32-x64-msvc": "2026.10805.0" + "@truenine/memory-sync-cli-darwin-arm64": "2026.10806.0", + "@truenine/memory-sync-cli-darwin-x64": "2026.10806.0", + "@truenine/memory-sync-cli-linux-arm64-gnu": "2026.10806.0", + "@truenine/memory-sync-cli-linux-x64-gnu": "2026.10806.0", + "@truenine/memory-sync-cli-win32-x64-msvc": "2026.10806.0" } } diff --git a/doc/package.json b/doc/package.json index 6485d257..30dbd1cb 100644 --- a/doc/package.json +++ b/doc/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-docs", - "version": "2026.10805.0", + "version": "2026.10806.0", "private": true, "packageManager": "pnpm@11.18.0", "description": "Chinese-first manifesto-led documentation site for @truenine/memory-sync.", diff --git a/gui/package.json b/gui/package.json index dd2c8e71..f9cbcb80 100644 --- a/gui/package.json +++ b/gui/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-gui", - "version": "2026.10805.0", + "version": "2026.10806.0", "private": true, "engines": { "node": ">= 22" diff --git a/gui/src-tauri/Cargo.toml b/gui/src-tauri/Cargo.toml index ab605dd7..f159e868 100644 --- a/gui/src-tauri/Cargo.toml +++ b/gui/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tnmsg" -version = "2026.10805.0" +version = "2026.10806.0" description = "Memory Sync desktop GUI application" authors.workspace = true edition.workspace = true diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index b2858396..27423af0 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -1,6 +1,6 @@ { "$schema": "https://schema.tauri.app/config/2", - "version": "2026.10805.0", + "version": "2026.10806.0", "productName": "Memory Sync", "identifier": "org.truenine.memory-sync", "build": { diff --git a/manifest.json b/manifest.json index 27b0d49d..868315a7 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "tnmsop", "name": "TNMSOP", - "version": "2026.10805.0", + "version": "2026.10806.0", "minAppVersion": "1.13.4", "description": "Preview prompt-focused MDX files safely as Markdown.", "author": "TrueNine", diff --git a/mcp/npm/darwin-arm64/package.json b/mcp/npm/darwin-arm64/package.json index 9eb7c0da..c216c0bd 100644 --- a/mcp/npm/darwin-arm64/package.json +++ b/mcp/npm/darwin-arm64/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-mcp-darwin-arm64", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "tnmsm native binary for macOS arm64", "author": "TrueNine", "license": "AGPL-3.0-only", diff --git a/mcp/npm/darwin-x64/package.json b/mcp/npm/darwin-x64/package.json index 035d38da..d57bb305 100644 --- a/mcp/npm/darwin-x64/package.json +++ b/mcp/npm/darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-mcp-darwin-x64", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "tnmsm native binary for macOS x64", "author": "TrueNine", "license": "AGPL-3.0-only", diff --git a/mcp/npm/linux-arm64-gnu/package.json b/mcp/npm/linux-arm64-gnu/package.json index 2074b969..d73017e7 100644 --- a/mcp/npm/linux-arm64-gnu/package.json +++ b/mcp/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-mcp-linux-arm64-gnu", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "tnmsm native binary for Linux arm64 (glibc)", "author": "TrueNine", "license": "AGPL-3.0-only", diff --git a/mcp/npm/linux-x64-gnu/package.json b/mcp/npm/linux-x64-gnu/package.json index dae748e3..9e86dc6e 100644 --- a/mcp/npm/linux-x64-gnu/package.json +++ b/mcp/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-mcp-linux-x64-gnu", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "tnmsm native binary for Linux x64 (glibc)", "author": "TrueNine", "license": "AGPL-3.0-only", diff --git a/mcp/npm/win32-x64-msvc/package.json b/mcp/npm/win32-x64-msvc/package.json index a1c42179..2dad886f 100644 --- a/mcp/npm/win32-x64-msvc/package.json +++ b/mcp/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-mcp-win32-x64-msvc", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "tnmsm native binary for Windows x64", "author": "TrueNine", "license": "AGPL-3.0-only", diff --git a/mcp/package.json b/mcp/package.json index 92c577fa..486001b6 100644 --- a/mcp/package.json +++ b/mcp/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync-mcp", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "TrueNine Memory Sync MCP metadata package", "author": "TrueNine", "license": "AGPL-3.0-only", @@ -32,10 +32,10 @@ "test": "cargo test --manifest-path Cargo.toml" }, "optionalDependencies": { - "@truenine/memory-sync-mcp-darwin-arm64": "2026.10805.0", - "@truenine/memory-sync-mcp-darwin-x64": "2026.10805.0", - "@truenine/memory-sync-mcp-linux-arm64-gnu": "2026.10805.0", - "@truenine/memory-sync-mcp-linux-x64-gnu": "2026.10805.0", - "@truenine/memory-sync-mcp-win32-x64-msvc": "2026.10805.0" + "@truenine/memory-sync-mcp-darwin-arm64": "2026.10806.0", + "@truenine/memory-sync-mcp-darwin-x64": "2026.10806.0", + "@truenine/memory-sync-mcp-linux-arm64-gnu": "2026.10806.0", + "@truenine/memory-sync-mcp-linux-x64-gnu": "2026.10806.0", + "@truenine/memory-sync-mcp-win32-x64-msvc": "2026.10806.0" } } diff --git a/obsidian-plugin b/obsidian-plugin index 30ef61d4..b307a495 160000 --- a/obsidian-plugin +++ b/obsidian-plugin @@ -1 +1 @@ -Subproject commit 30ef61d4ef82e5befb295d6474b37f862bab452a +Subproject commit b307a4956ae1c819a6776c47048c3970aa16caca diff --git a/package.json b/package.json index a642d91a..cdb231ba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@truenine/memory-sync", - "version": "2026.10805.0", + "version": "2026.10806.0", "description": "Cross-AI-tool prompt synchronisation toolkit (CLI + Tauri desktop GUI) — one ruleset, multi-target adaptation. Monorepo powered by pnpm + Turbo.", "license": "AGPL-3.0-only", "keywords": [ diff --git a/versions.json b/versions.json index 01b874bb..8786d084 100644 --- a/versions.json +++ b/versions.json @@ -1,4 +1,5 @@ { "2026.10801.0": "1.13.4", - "2026.10805.0": "1.13.4" + "2026.10805.0": "1.13.4", + "2026.10806.0": "1.13.4" } From f6b5fcbd17f7db10287c2084479c814e7f4fce7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=97=A5=E5=A4=A9?= Date: Thu, 6 Aug 2026 20:51:27 +0800 Subject: [PATCH 09/11] refactor: rename obsidian-plugin to tnmsop across the repository --- .githooks/sync-versions.test.ts | 20 ++++++++++---------- .githooks/sync-versions.ts | 8 ++++---- .github/actions/setup-bun/action.yml | 4 ++-- .github/workflows/ci.yml | 22 +++++++++++----------- .github/workflows/release.yml | 24 ++++++++++++------------ .gitmodules | 5 +++-- README.md | 4 ++-- obsidian-plugin | 1 - scripts/shared/check-version-surfaces.ts | 12 ++++++------ tnmsop | 1 + 10 files changed, 51 insertions(+), 50 deletions(-) delete mode 160000 obsidian-plugin create mode 160000 tnmsop diff --git a/.githooks/sync-versions.test.ts b/.githooks/sync-versions.test.ts index bb554ded..9b0e75bd 100644 --- a/.githooks/sync-versions.test.ts +++ b/.githooks/sync-versions.test.ts @@ -56,7 +56,7 @@ function createFixtureRepo(): string { version: initialVersion, private: true }) - writeJson(join(rootDir, 'obsidian-plugin', 'package.json'), { + writeJson(join(rootDir, 'tnmsop', 'package.json'), { name: 'tnmsop', version: initialVersion, private: true @@ -68,9 +68,9 @@ function createFixtureRepo(): string { minAppVersion: '1.0.0', isDesktopOnly: false } - writeJson(join(rootDir, 'obsidian-plugin', 'manifest.json'), manifest) + writeJson(join(rootDir, 'tnmsop', 'manifest.json'), manifest) writeJson(join(rootDir, 'manifest.json'), manifest) - writeJson(join(rootDir, 'obsidian-plugin', 'versions.json'), {[initialVersion]: '1.0.0'}) + writeJson(join(rootDir, 'tnmsop', 'versions.json'), {[initialVersion]: '1.0.0'}) writeJson(join(rootDir, 'versions.json'), {[initialVersion]: '1.0.0'}) writeJson(join(rootDir, 'cli', 'npm', 'darwin-arm64', 'package.json'), { name: '@truenine/memory-sync-cli-darwin-arm64', @@ -148,19 +148,19 @@ function createFixtureRepo(): string { } function preparePluginRelease(rootDir: string, nextVersion: string): void { - writeJson(join(rootDir, 'obsidian-plugin', 'package.json'), { + writeJson(join(rootDir, 'tnmsop', 'package.json'), { name: 'tnmsop', version: nextVersion, private: true }) - writeJson(join(rootDir, 'obsidian-plugin', 'manifest.json'), { + writeJson(join(rootDir, 'tnmsop', 'manifest.json'), { id: 'tnmsop', name: 'TNMSOP', version: nextVersion, minAppVersion: '1.0.0', isDesktopOnly: false }) - writeJson(join(rootDir, 'obsidian-plugin', 'versions.json'), { + writeJson(join(rootDir, 'tnmsop', 'versions.json'), { '2026.10324.10015': '1.0.0', [nextVersion]: '1.0.0' }) @@ -184,13 +184,13 @@ function expectSharedVersionSurfaces(rootDir: string, nextVersion: string): void }) expect(JSON.parse(readFileSync(join(rootDir, 'gui', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) expect(JSON.parse(readFileSync(join(rootDir, 'doc', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) - expect(JSON.parse(readFileSync(join(rootDir, 'obsidian-plugin', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) - const pluginManifest = JSON.parse(readFileSync(join(rootDir, 'obsidian-plugin', 'manifest.json'), 'utf-8')) as {version: string, minAppVersion: string} + expect(JSON.parse(readFileSync(join(rootDir, 'tnmsop', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) + const pluginManifest = JSON.parse(readFileSync(join(rootDir, 'tnmsop', 'manifest.json'), 'utf-8')) as {version: string, minAppVersion: string} expect(pluginManifest).toMatchObject({version: nextVersion, minAppVersion: '1.0.0'}) expect(JSON.parse(readFileSync(join(rootDir, 'manifest.json'), 'utf-8'))).toEqual(pluginManifest) - expect(JSON.parse(readFileSync(join(rootDir, 'obsidian-plugin', 'versions.json'), 'utf-8'))).toMatchObject({[nextVersion]: '1.0.0'}) + expect(JSON.parse(readFileSync(join(rootDir, 'tnmsop', 'versions.json'), 'utf-8'))).toMatchObject({[nextVersion]: '1.0.0'}) expect(JSON.parse(readFileSync(join(rootDir, 'versions.json'), 'utf-8'))).toEqual( - JSON.parse(readFileSync(join(rootDir, 'obsidian-plugin', 'versions.json'), 'utf-8')) + JSON.parse(readFileSync(join(rootDir, 'tnmsop', 'versions.json'), 'utf-8')) ) expect(JSON.parse(readFileSync(join(rootDir, 'cli', 'npm', 'darwin-arm64', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) expect(JSON.parse(readFileSync(join(rootDir, 'cli', 'npm', 'linux-x64-gnu', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) diff --git a/.githooks/sync-versions.ts b/.githooks/sync-versions.ts index 9d5b7fef..868bc130 100644 --- a/.githooks/sync-versions.ts +++ b/.githooks/sync-versions.ts @@ -33,7 +33,7 @@ const IGNORED_DIRECTORIES = new Set([ 'coverage', 'dist', 'node_modules', - 'obsidian-plugin', + 'tnmsop', 'target', ]) const CALVER_VERSION_REGEX = /^\d{4}\.(?:0|1\d{2}(?:\d{2})?)\.(?:0|1\d{2}(?:\d{2}(?:\d{2})?)?)$/u @@ -71,9 +71,9 @@ function syncObsidianReleaseMetadata( targetVersion: string, changedPaths: Set, ): void { - const pluginManifestPath = resolve(rootDir, 'obsidian-plugin', 'manifest.json') + const pluginManifestPath = resolve(rootDir, 'tnmsop', 'manifest.json') const rootManifestPath = resolve(rootDir, 'manifest.json') - const pluginVersionsPath = resolve(rootDir, 'obsidian-plugin', 'versions.json') + const pluginVersionsPath = resolve(rootDir, 'tnmsop', 'versions.json') const rootVersionsPath = resolve(rootDir, 'versions.json') const manifest = readJsonFile(pluginManifestPath) const minAppVersion = manifest.minAppVersion @@ -374,7 +374,7 @@ function getStagedVersionCandidates(rootDir: string, rootVersion: string): Map line.trim()) .filter(line => line.length > 0) .filter(filePath => { - if (filePath.startsWith('obsidian-plugin/')) return false + if (filePath.startsWith('tnmsop/')) return false const name = basename(filePath) return name === 'package.json' || name === 'Cargo.toml' || name === 'tauri.conf.json' }) diff --git a/.github/actions/setup-bun/action.yml b/.github/actions/setup-bun/action.yml index 5a026536..3e9e2af2 100644 --- a/.github/actions/setup-bun/action.yml +++ b/.github/actions/setup-bun/action.yml @@ -1,5 +1,5 @@ name: Setup Bun -description: Setup the pinned Bun runtime and optionally install TNMSO dependencies +description: Setup the pinned Bun runtime and optionally install TNMSOP dependencies inputs: bun-version: @@ -13,7 +13,7 @@ inputs: working-directory: description: Directory containing bun.lock required: false - default: obsidian-plugin + default: tnmsop runs: using: composite diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f8851b2..acdb5e82 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,8 +41,8 @@ jobs: - 'pnpm-workspace.yaml' - 'xtask/**' obsidian: - - 'obsidian-plugin' - - 'obsidian-plugin/**' + - 'tnmsop' + - 'tnmsop/**' - 'manifest.json' - 'versions.json' - '.githooks/sync-versions.ts' @@ -179,7 +179,7 @@ jobs: - name: Build docs run: pnpm -C doc run build - obsidian-plugin-check: + tnmsop-check: needs: changes if: | (github.event_name != 'pull_request' || github.event.pull_request.draft == false) && @@ -193,21 +193,21 @@ jobs: - uses: ./.github/actions/setup-bun - - name: Test TNMSO + - name: Test TNMSOP run: bun test - working-directory: obsidian-plugin + working-directory: tnmsop - - name: Typecheck TNMSO + - name: Typecheck TNMSOP run: bun run check:type - working-directory: obsidian-plugin + working-directory: tnmsop - - name: Lint TNMSO + - name: Lint TNMSOP run: bun run lint - working-directory: obsidian-plugin + working-directory: tnmsop - - name: Build and package TNMSO + - name: Build and package TNMSOP run: | bun run build bun run package:release bun run verify:dist - working-directory: obsidian-plugin + working-directory: tnmsop diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 15416358..6659244e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -438,7 +438,7 @@ jobs: registry-url: ${{ env.NPM_REGISTRY_URL }} package-dir: mcp - build-obsidian-plugin: + build-tnmsop: needs: validate-version runs-on: ubuntu-24.04 timeout-minutes: 20 @@ -449,29 +449,29 @@ jobs: - uses: ./.github/actions/setup-bun - - name: Test and validate TNMSO - working-directory: obsidian-plugin + - name: Test and validate TNMSOP + working-directory: tnmsop run: | bun test bun run check:type bun run lint - - name: Build and package TNMSO - working-directory: obsidian-plugin + - name: Build and package TNMSOP + working-directory: tnmsop run: | bun run build bun run package:release bun run verify:dist - - name: Upload TNMSO release artifact + - name: Upload TNMSOP release artifact uses: actions/upload-artifact@v7 with: - name: obsidian-plugin-release - path: obsidian-plugin/dist/ + name: tnmsop-release + path: tnmsop/dist/ if-no-files-found: error create-github-release: - needs: [validate-version, build-cli-binaries, publish-cli-npm, build-mcp-binaries, publish-mcp-npm, build-obsidian-plugin] + needs: [validate-version, build-cli-binaries, publish-cli-npm, build-mcp-binaries, publish-mcp-npm, build-tnmsop] runs-on: ubuntu-24.04 timeout-minutes: 20 steps: @@ -489,10 +489,10 @@ jobs: pattern: mcp-archive-* merge-multiple: true - - name: Download TNMSO artifacts + - name: Download TNMSOP artifacts uses: actions/download-artifact@v8 with: - name: obsidian-plugin-release + name: tnmsop-release path: artifacts/obsidian - name: Verify release artifacts @@ -515,7 +515,7 @@ jobs: fi if [[ "$obsidian_archive_count" -ne 1 ]]; then - echo "::error::Expected one TNMSO archive, found ${obsidian_archive_count}." + echo "::error::Expected one TNMSOP archive, found ${obsidian_archive_count}." exit 1 fi diff --git a/.gitmodules b/.gitmodules index ebb377ee..e99fb177 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,4 @@ -[submodule "obsidian-plugin"] - path = obsidian-plugin +[submodule "tnmsop"] + path = tnmsop + branch = main url = https://github.com/TrueNine/tnmsop.git diff --git a/README.md b/README.md index 384855e1..14b40457 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ A rat carries even its own memories when moving. `memory-sync` is that kind of t - Auto-write configs for each tool: AGENTS.md, Claude Code, Codex CLI, Cursor, Windsurf, Qoder, Trae, Warp, JetBrains AI, etc. - Manage derived artifacts: prompt outputs, skills exports organized as `skills///`, README-class outputs - Multiple entry points: `tnmsc` CLI, private SDK, MCP stdio server, Tauri GUI -- Obsidian integration: TNMSO opens `.mdx` as native Markdown and safely previews static prompt syntax +- Obsidian integration: TNMSOP opens `.mdx` as native Markdown and safely previews static prompt syntax - Fine-grained write-scope control (`outputScopes`, `cleanupProtection`) - Source and derivations are auditable — no silent source mutations, no hidden residuals - Memories follow the person, not the project — no leakage @@ -31,7 +31,7 @@ npm install -g @truenine/memory-sync-mcp ### TNMSOP for Obsidian -TNMSOP is maintained in the [`obsidian-plugin/`](obsidian-plugin/README.md) submodule. Install it from the Obsidian community directory or download `main.js`, `manifest.json`, and `styles.css` from the matching [TNMSOP Release](https://github.com/TrueNine/tnmsop/releases). BRAT users should install `TrueNine/tnmsop`. +TNMSOP is maintained in the [`tnmsop/`](tnmsop/README.md) submodule. Install it from the Obsidian community directory or download `main.js`, `manifest.json`, and `styles.css` from the matching [TNMSOP Release](https://github.com/TrueNine/tnmsop/releases). BRAT users should install `TrueNine/tnmsop`. TNMSOP shares the memory-sync CalVer version. The plugin is released first with the exact plain `` tag, then memory-sync pins that release through the submodule and publishes its `v` system release. diff --git a/obsidian-plugin b/obsidian-plugin deleted file mode 160000 index b307a495..00000000 --- a/obsidian-plugin +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b307a4956ae1c819a6776c47048c3970aa16caca diff --git a/scripts/shared/check-version-surfaces.ts b/scripts/shared/check-version-surfaces.ts index 9fb8fcf3..3e45d66e 100644 --- a/scripts/shared/check-version-surfaces.ts +++ b/scripts/shared/check-version-surfaces.ts @@ -63,17 +63,17 @@ function checkJsonVersion(relativePath: string): void { } function checkObsidianReleaseMetadata(): void { - const pluginManifest = readJson('obsidian-plugin/manifest.json') + const pluginManifest = readJson('tnmsop/manifest.json') const rootManifest = readJson('manifest.json') - const pluginVersions = readJson('obsidian-plugin/versions.json') + const pluginVersions = readJson('tnmsop/versions.json') const rootVersions = readJson('versions.json') const minAppVersion = pluginManifest.minAppVersion - ensure(pluginManifest.id === 'tnmsop', 'obsidian-plugin/manifest.json must use id=tnmsop') - ensure(pluginManifest.version === expectedVersion, `obsidian-plugin/manifest.json expected version ${expectedVersion}`) + ensure(pluginManifest.id === 'tnmsop', 'tnmsop/manifest.json must use id=tnmsop') + ensure(pluginManifest.version === expectedVersion, `tnmsop/manifest.json expected version ${expectedVersion}`) ensure(typeof minAppVersion === 'string' && minAppVersion !== '', 'TNMSOP minAppVersion is required') ensure(JSON.stringify(rootManifest) === JSON.stringify(pluginManifest), 'Root manifest.json must mirror the TNMSOP manifest') - ensure(pluginVersions[expectedVersion] === minAppVersion, `obsidian-plugin/versions.json must map ${expectedVersion} to ${String(minAppVersion)}`) + ensure(pluginVersions[expectedVersion] === minAppVersion, `tnmsop/versions.json must map ${expectedVersion} to ${String(minAppVersion)}`) ensure(JSON.stringify(rootVersions) === JSON.stringify(pluginVersions), 'Root versions.json must mirror TNMSOP versions.json') } @@ -115,7 +115,7 @@ try { checkJsonVersion('mcp/package.json') checkJsonVersion('gui/package.json') checkJsonVersion('doc/package.json') - checkJsonVersion('obsidian-plugin/package.json') + checkJsonVersion('tnmsop/package.json') checkJsonVersion('gui/src-tauri/tauri.conf.json') checkObsidianReleaseMetadata() diff --git a/tnmsop b/tnmsop new file mode 160000 index 00000000..7fc6f111 --- /dev/null +++ b/tnmsop @@ -0,0 +1 @@ +Subproject commit 7fc6f111521829745c7653fb3b9f6bb61b54b398 From bffa762facb6050bd9ef0b1067aa8d37ccf1ba04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=97=A5=E5=A4=A9?= Date: Sun, 16 Aug 2026 02:46:32 +0800 Subject: [PATCH 10/11] refactor: rename memory-sync to croessweave across the codebase - Updated documentation components to reflect the new project name. - Changed references in libraries and source of truth documentation. - Modified site configuration and environment variables for croessweave. - Renamed GUI application and its related files to croessweave. - Adjusted MCP server and its dependencies to use the new naming convention. - Updated SDK endpoints and services to align with the new project name. - Refactored CLI and xtask commands to reflect the change from memory-sync to croessweave. --- .githooks/sync-versions.test.ts | 48 +++++++++---------- .githooks/sync-versions.ts | 2 +- .github/ISSUE_TEMPLATE/bug_report.yml | 8 ++-- .github/ISSUE_TEMPLATE/config.yml | 4 +- .github/ISSUE_TEMPLATE/feature_request.yml | 4 +- .github/actions/setup-tauri/action.yml | 4 +- .github/workflows/ci.yml | 10 ++-- .github/workflows/docs.yml | 4 +- .github/workflows/release.yml | 10 ++-- CODE_OF_CONDUCT.md | 2 +- Cargo.lock | 14 +++--- Cargo.toml | 6 +-- README.md | 22 ++++----- cli/bin/tnmsc.js | 12 ++--- cli/local-tests/src/lib.rs | 10 ++-- cli/local-tests/tests/agents_md_smoke.rs | 4 +- cli/local-tests/tests/claude_smoke.rs | 4 +- cli/local-tests/tests/clean_blackbox.rs | 48 +++++++++---------- cli/local-tests/tests/codex_smoke.rs | 4 +- cli/local-tests/tests/dry_run_smoke.rs | 4 +- cli/local-tests/tests/install_smoke.rs | 4 +- cli/local-tests/tests/logging_clean.rs | 4 +- .../tests/logging_install_observability.rs | 4 +- cli/local-tests/tests/logging_levels.rs | 4 +- cli/local-tests/tests/rules_source_smoke.rs | 4 +- cli/local-tests/tests/support/opencode.rs | 4 +- cli/local-tests/tests/trae_smoke.rs | 4 +- cli/npm/darwin-arm64/package.json | 2 +- cli/npm/darwin-x64/package.json | 2 +- cli/npm/linux-arm64-gnu/package.json | 2 +- cli/npm/linux-x64-gnu/package.json | 2 +- cli/npm/win32-x64-msvc/package.json | 2 +- cli/package.json | 18 +++---- cli/src/cli.rs | 2 +- cli/src/commands/help.rs | 2 +- cli/src/commands/pipeline.rs | 28 +++++------ doc/app/docs/[[...mdxPath]]/layout.tsx | 2 +- doc/app/manifest.ts | 6 +-- doc/app/opengraph-image.tsx | 4 +- doc/components/home-version-note.tsx | 2 +- doc/content/cli/install.mdx | 6 +-- doc/content/cli/workspace-setup.mdx | 2 +- doc/content/design-rationale/manifesto.mdx | 6 +-- doc/content/index.mdx | 6 +-- doc/content/mcp/index.mdx | 6 +-- doc/content/mcp/server-tools.mdx | 6 +-- doc/content/quick-guide/aindex-and-config.mdx | 2 +- doc/content/quick-guide/index.mdx | 4 +- doc/content/quick-guide/quick-install.mdx | 4 +- doc/content/sdk/architecture.mdx | 44 ++++++++--------- doc/content/sdk/index.mdx | 12 ++--- doc/content/sdk/logger/index.mdx | 12 ++--- doc/content/sdk/md-compiler/index.mdx | 22 ++++----- doc/content/sdk/script-runtime/index.mdx | 28 +++++------ .../documentation-components.mdx | 6 +-- doc/content/technical-details/libraries.mdx | 2 +- .../technical-details/source-of-truth.mdx | 2 +- doc/content/technical-details/subagents.mdx | 2 +- doc/lib/site.ts | 14 +++--- doc/next.config.ts | 2 +- doc/package.json | 4 +- doc/scripts/validate-content.ts | 2 +- gui/index.html | 2 +- gui/package.json | 2 +- gui/src-tauri/Cargo.lock | 2 +- gui/src-tauri/Cargo.toml | 2 +- gui/src-tauri/capabilities/default.json | 2 +- gui/src-tauri/src/commands.rs | 8 ++-- gui/src-tauri/src/lib.rs | 2 +- gui/src-tauri/src/tray.rs | 2 +- gui/src-tauri/tauri.conf.json | 8 ++-- gui/src/i18n/en-US.json | 2 +- gui/src/i18n/zh-CN.json | 2 +- mcp/Cargo.toml | 2 +- mcp/bin/tnmsm.js | 12 ++--- mcp/integrate-tests/tests/packaging_smoke.rs | 6 +-- mcp/npm/darwin-arm64/package.json | 2 +- mcp/npm/darwin-x64/package.json | 2 +- mcp/npm/linux-arm64-gnu/package.json | 2 +- mcp/npm/linux-x64-gnu/package.json | 2 +- mcp/npm/win32-x64-msvc/package.json | 2 +- mcp/package.json | 18 +++---- mcp/src/cli.rs | 2 +- mcp/src/main.rs | 2 +- package.json | 2 +- sdk/src/domain/base_output_plans.rs | 20 ++++---- sdk/src/endpoint/clean.rs | 4 +- sdk/src/endpoint/dry_run.rs | 4 +- sdk/src/endpoint/install.rs | 4 +- sdk/src/endpoint/mod.rs | 4 +- sdk/src/lib.rs | 2 +- sdk/src/services/clean_service.rs | 16 +++---- .../services/command_diagnostics_service.rs | 12 ++--- sdk/src/services/dry_run_service.rs | 10 ++-- sdk/src/services/install_service.rs | 8 ++-- xtask/src/main.rs | 6 +-- 96 files changed, 349 insertions(+), 349 deletions(-) diff --git a/.githooks/sync-versions.test.ts b/.githooks/sync-versions.test.ts index 9b0e75bd..8c96b585 100644 --- a/.githooks/sync-versions.test.ts +++ b/.githooks/sync-versions.test.ts @@ -28,31 +28,31 @@ function createFixtureRepo(): string { const initialVersion = '2026.10324.10015' writeJson(join(rootDir, 'package.json'), { - name: '@truenine/memory-sync', + name: '@truenine/croessweave', version: initialVersion }) writeJson(join(rootDir, 'cli', 'package.json'), { - name: '@truenine/memory-sync-cli', + name: '@truenine/croessweave-cli', version: initialVersion, optionalDependencies: { - '@truenine/memory-sync-cli-darwin-arm64': initialVersion, - '@truenine/memory-sync-cli-linux-x64-gnu': initialVersion + '@truenine/croessweave-cli-darwin-arm64': initialVersion, + '@truenine/croessweave-cli-linux-x64-gnu': initialVersion } }) writeJson(join(rootDir, 'mcp', 'package.json'), { - name: '@truenine/memory-sync-mcp', + name: '@truenine/croessweave-mcp', version: initialVersion, optionalDependencies: { - '@truenine/memory-sync-mcp-darwin-arm64': initialVersion, - '@truenine/memory-sync-mcp-linux-x64-gnu': initialVersion + '@truenine/croessweave-mcp-darwin-arm64': initialVersion, + '@truenine/croessweave-mcp-linux-x64-gnu': initialVersion } }) writeJson(join(rootDir, 'gui', 'package.json'), { - name: '@truenine/memory-sync-gui', + name: '@truenine/croessweave-gui', version: initialVersion }) writeJson(join(rootDir, 'doc', 'package.json'), { - name: '@truenine/memory-sync-docs', + name: '@truenine/croessweave-docs', version: initialVersion, private: true }) @@ -73,11 +73,11 @@ function createFixtureRepo(): string { writeJson(join(rootDir, 'tnmsop', 'versions.json'), {[initialVersion]: '1.0.0'}) writeJson(join(rootDir, 'versions.json'), {[initialVersion]: '1.0.0'}) writeJson(join(rootDir, 'cli', 'npm', 'darwin-arm64', 'package.json'), { - name: '@truenine/memory-sync-cli-darwin-arm64', + name: '@truenine/croessweave-cli-darwin-arm64', version: initialVersion }) writeJson(join(rootDir, 'cli', 'npm', 'linux-x64-gnu', 'package.json'), { - name: '@truenine/memory-sync-cli-linux-x64-gnu', + name: '@truenine/croessweave-cli-linux-x64-gnu', version: initialVersion }) @@ -109,13 +109,13 @@ function createFixtureRepo(): string { ].join('\n')) writeText(join(rootDir, 'gui', 'src-tauri', 'Cargo.toml'), [ '[package]', - 'name = "memory-sync-gui"', + 'name = "croessweave-gui"', `version = "${initialVersion}"`, '' ].join('\n')) writeJson(join(rootDir, 'gui', 'src-tauri', 'tauri.conf.json'), { version: initialVersion, - productName: 'Memory Sync' + productName: 'Croessweave' }) writeText(join(rootDir, 'Cargo.lock'), [ 'version = 4', @@ -133,7 +133,7 @@ function createFixtureRepo(): string { `version = "${initialVersion}"`, '', '[[package]]', - 'name = "memory-sync-gui"', + 'name = "croessweave-gui"', `version = "${initialVersion}"`, '' ].join('\n')) @@ -171,15 +171,15 @@ function expectSharedVersionSurfaces(rootDir: string, nextVersion: string): void expect(JSON.parse(readFileSync(join(rootDir, 'cli', 'package.json'), 'utf-8')) as {version: string, optionalDependencies: Record}).toMatchObject({ version: nextVersion, optionalDependencies: { - '@truenine/memory-sync-cli-darwin-arm64': nextVersion, - '@truenine/memory-sync-cli-linux-x64-gnu': nextVersion + '@truenine/croessweave-cli-darwin-arm64': nextVersion, + '@truenine/croessweave-cli-linux-x64-gnu': nextVersion } }) expect(JSON.parse(readFileSync(join(rootDir, 'mcp', 'package.json'), 'utf-8')) as {version: string, optionalDependencies: Record}).toMatchObject({ version: nextVersion, optionalDependencies: { - '@truenine/memory-sync-mcp-darwin-arm64': nextVersion, - '@truenine/memory-sync-mcp-linux-x64-gnu': nextVersion + '@truenine/croessweave-mcp-darwin-arm64': nextVersion, + '@truenine/croessweave-mcp-linux-x64-gnu': nextVersion } }) expect(JSON.parse(readFileSync(join(rootDir, 'gui', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) @@ -219,7 +219,7 @@ describe('sync-versions hook', () => { const nextVersion = '2026.10324.10314' preparePluginRelease(rootDir, nextVersion) writeJson(join(rootDir, 'cli', 'npm', 'darwin-arm64', 'package.json'), { - name: '@truenine/memory-sync-cli-darwin-arm64', + name: '@truenine/croessweave-cli-darwin-arm64', version: nextVersion }) runGit(rootDir, ['add', 'cli/npm/darwin-arm64/package.json']) @@ -254,7 +254,7 @@ describe('sync-versions hook', () => { const nextVersion = '2026.10324.10316' preparePluginRelease(rootDir, nextVersion) writeJson(join(rootDir, 'gui', 'package.json'), { - name: '@truenine/memory-sync-gui', + name: '@truenine/croessweave-gui', version: nextVersion }) runGit(rootDir, ['add', 'gui/package.json']) @@ -289,7 +289,7 @@ describe('sync-versions hook', () => { const nextVersion = '2026.10324.10318' preparePluginRelease(rootDir, nextVersion) writeJson(join(rootDir, 'doc', 'package.json'), { - name: '@truenine/memory-sync-docs', + name: '@truenine/croessweave-docs', version: nextVersion, private: true }) @@ -308,7 +308,7 @@ describe('sync-versions hook', () => { const nextVersion = '2026.10324.10319' writeJson(join(rootDir, 'doc', 'package.json'), { - name: '@truenine/memory-sync-docs', + name: '@truenine/croessweave-docs', version: nextVersion, private: true }) @@ -322,11 +322,11 @@ describe('sync-versions hook', () => { tempDirs.push(rootDir) writeJson(join(rootDir, 'cli', 'npm', 'darwin-arm64', 'package.json'), { - name: '@truenine/memory-sync-cli-darwin-arm64', + name: '@truenine/croessweave-cli-darwin-arm64', version: '2026.10324.10314' }) writeJson(join(rootDir, 'doc', 'package.json'), { - name: '@truenine/memory-sync-docs', + name: '@truenine/croessweave-docs', version: '2026.10324.10315', private: true }) diff --git a/.githooks/sync-versions.ts b/.githooks/sync-versions.ts index 868bc130..9c24a86c 100644 --- a/.githooks/sync-versions.ts +++ b/.githooks/sync-versions.ts @@ -267,7 +267,7 @@ function syncInternalDependencyVersions(json: VersionedJson, targetVersion: stri } for (const [name, value] of Object.entries(deps as Record)) { - if (!name.startsWith('@truenine/memory-sync-')) { + if (!name.startsWith('@truenine/croessweave-')) { continue } diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 03407006..f686a0c2 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,5 +1,5 @@ name: Bug Report -description: File a bug report for memory-sync (tnmsc CLI / GUI) +description: File a bug report for croessweave (tnmsc CLI / GUI) labels: ["pending-triage"] body: - type: markdown @@ -7,9 +7,9 @@ body: value: | ## Before you open this issue - **Please ensure you're using the latest version of memory-sync.** Run `tnmsc --version` (CLI) or check the GUI about screen. + **Please ensure you're using the latest version of croessweave.** Run `tnmsc --version` (CLI) or check the GUI about screen. - **Check if your issue is already known.** [Search existing issues](https://github.com/TrueNine/memory-sync/issues?q=is%3Aissue) before opening a new one. If found, subscribe and comment there for updates. + **Check if your issue is already known.** [Search existing issues](https://github.com/TrueNine/croessweave/issues?q=is%3Aissue) before opening a new one. If found, subscribe and comment there for updates. Thank you for helping keep the issue tracker organized. @@ -34,7 +34,7 @@ body: - type: input id: version attributes: - label: memory-sync version + label: croessweave version description: CLI run `tnmsc --version`; GUI check About placeholder: "e.g., 2026.10125.0" validations: diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index c20f1387..824316c4 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,8 +1,8 @@ blank_issues_enabled: false contact_links: - name: Documentation and setup guide - url: https://memory-sync-docs.vercel.app/docs + url: https://croessweave-docs.vercel.app/docs about: Read the docs and setup references before opening a support issue. - name: Security policy - url: https://github.com/TrueNine/memory-sync/security/policy + url: https://github.com/TrueNine/croessweave/security/policy about: Report vulnerabilities through the security policy instead of opening a public issue. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 9ec0d26d..3d4640ad 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,11 +1,11 @@ name: Feature Request -description: Suggest an idea for memory-sync (tnmsc CLI / GUI) +description: Suggest an idea for croessweave (tnmsc CLI / GUI) labels: ["pending-triage"] body: - type: markdown attributes: value: | - Before submitting, please [search and confirm](https://github.com/TrueNine/memory-sync/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) that the idea does not yet exist. Duplicate requests may be closed. + Before submitting, please [search and confirm](https://github.com/TrueNine/croessweave/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) that the idea does not yet exist. Duplicate requests may be closed. --- - type: checkboxes diff --git a/.github/actions/setup-tauri/action.yml b/.github/actions/setup-tauri/action.yml index 00dab6e2..ed91843b 100644 --- a/.github/actions/setup-tauri/action.yml +++ b/.github/actions/setup-tauri/action.yml @@ -99,7 +99,7 @@ runs: id: cargo-deps-hash shell: bash run: | - HASH=$(awk '/^name = "memory-sync-gui"$/{print; getline; sub(/version = ".*"/, "version = \"0.0.0\""); print; next} 1' gui/src-tauri/Cargo.lock | openssl dgst -sha256 2>&1 | awk '{print $NF}') + HASH=$(awk '/^name = "croessweave-gui"$/{print; getline; sub(/version = ".*"/, "version = \"0.0.0\""); print; next} 1' gui/src-tauri/Cargo.lock | openssl dgst -sha256 2>&1 | awk '{print $NF}') echo "hash=$HASH" >> $GITHUB_OUTPUT - name: Cache cargo + tauri target @@ -125,7 +125,7 @@ runs: - name: Generate route tree shell: bash - run: pnpm -F @truenine/memory-sync-gui run generate:routes + run: pnpm -F @truenine/croessweave-gui run generate:routes - name: Clean old bundle artifacts shell: bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index acdb5e82..cab51f2c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -128,8 +128,8 @@ jobs: pnpm -C cli/npm/linux-x64-gnu pack --pack-destination "$pack_dir" pnpm -C cli pack --pack-destination "$pack_dir" - platform_tarballs=("$pack_dir"/truenine-memory-sync-cli-linux-x64-gnu-*.tgz) - main_tarballs=("$pack_dir"/truenine-memory-sync-cli-[0-9]*.tgz) + platform_tarballs=("$pack_dir"/truenine-croessweave-cli-linux-x64-gnu-*.tgz) + main_tarballs=("$pack_dir"/truenine-croessweave-cli-[0-9]*.tgz) npm install --global --prefix "$prefix_dir" "${platform_tarballs[0]}" "${main_tarballs[0]}" --ignore-scripts "$prefix_dir/bin/tnmsc" help >"$pack_dir/tnmsc-help.txt" grep -q 'install' "$pack_dir/tnmsc-help.txt" @@ -146,8 +146,8 @@ jobs: pnpm -C mcp/npm/linux-x64-gnu pack --pack-destination "$pack_dir" pnpm -C mcp pack --pack-destination "$pack_dir" - platform_tarballs=("$pack_dir"/truenine-memory-sync-mcp-linux-x64-gnu-*.tgz) - main_tarballs=("$pack_dir"/truenine-memory-sync-mcp-[0-9]*.tgz) + platform_tarballs=("$pack_dir"/truenine-croessweave-mcp-linux-x64-gnu-*.tgz) + main_tarballs=("$pack_dir"/truenine-croessweave-mcp-[0-9]*.tgz) npm install --global --prefix "$prefix_dir" "${platform_tarballs[0]}" "${main_tarballs[0]}" --ignore-scripts printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}' \ | "$prefix_dir/bin/tnmsm" >"$pack_dir/tnmsm-initialize.json" @@ -165,7 +165,7 @@ jobs: - uses: ./.github/actions/setup-node-pnpm with: - install-filter: "@truenine/memory-sync-docs..." + install-filter: "@truenine/croessweave-docs..." - name: Validate docs content run: pnpm -C doc run validate:content diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 05626a87..4e633c56 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -46,7 +46,7 @@ jobs: - uses: ./.github/actions/setup-node-pnpm with: - install-filter: "@truenine/memory-sync-docs..." + install-filter: "@truenine/croessweave-docs..." - name: Validate docs content run: pnpm -C doc run validate:content @@ -74,7 +74,7 @@ jobs: - uses: ./.github/actions/setup-node-pnpm with: - install-filter: "@truenine/memory-sync-docs..." + install-filter: "@truenine/croessweave-docs..." - name: Preflight Vercel secrets shell: bash diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6659244e..34a579f8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -179,28 +179,28 @@ jobs: rust_target: x86_64-unknown-linux-gnu suffix: linux-x64-gnu binary: tnmsm - archive: memory-sync-mcp-linux-x86_64.tar.gz + archive: croessweave-mcp-linux-x86_64.tar.gz - os: ubuntu-24.04 rust_target: aarch64-unknown-linux-gnu suffix: linux-arm64-gnu binary: tnmsm - archive: memory-sync-mcp-linux-aarch64.tar.gz + archive: croessweave-mcp-linux-aarch64.tar.gz cross: true - os: macos-14 rust_target: aarch64-apple-darwin suffix: darwin-arm64 binary: tnmsm - archive: memory-sync-mcp-darwin-aarch64.tar.gz + archive: croessweave-mcp-darwin-aarch64.tar.gz - os: macos-14 rust_target: x86_64-apple-darwin suffix: darwin-x64 binary: tnmsm - archive: memory-sync-mcp-darwin-x86_64.tar.gz + archive: croessweave-mcp-darwin-x86_64.tar.gz - os: windows-latest rust_target: x86_64-pc-windows-msvc suffix: win32-x64-msvc binary: tnmsm.exe - archive: memory-sync-mcp-windows-x86_64.zip + archive: croessweave-mcp-windows-x86_64.zip runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v6 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 7377eb2a..f5a55e59 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -2,7 +2,7 @@ ## Who We Are -The `memory-sync` community is made up of developers surviving in environments of extreme resource inequality. We are rats. We accept that. +The `croessweave` community is made up of developers surviving in environments of extreme resource inequality. We are rats. We accept that. ## What We Welcome diff --git a/Cargo.lock b/Cargo.lock index fdd4c0c9..c0e2f994 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -833,6 +833,13 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "croessweave" +version = "2026.10806.0" +dependencies = [ + "tnmsc", +] + [[package]] name = "crossbeam-channel" version = "0.5.16" @@ -2833,13 +2840,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "memory-sync" -version = "2026.10806.0" -dependencies = [ - "tnmsc", -] - [[package]] name = "mime" version = "0.3.17" diff --git a/Cargo.toml b/Cargo.toml index 167f7f52..994180ed 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "memory-sync" +name = "croessweave" description = "Cross-AI-tool prompt synchronisation" version.workspace = true edition.workspace = true @@ -9,7 +9,7 @@ authors.workspace = true repository.workspace = true [[bin]] -name = "memory-sync" +name = "croessweave" path = "src/main.rs" [dependencies] @@ -32,7 +32,7 @@ edition = "2024" rust-version = "1.88" license = "AGPL-3.0-only" authors = ["TrueNine"] -repository = "https://github.com/TrueNine/memory-sync" +repository = "https://github.com/TrueNine/croessweave" [workspace.dependencies] # Internal crates diff --git a/README.md b/README.md index 14b40457..38c17912 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# memory-sync +# croessweave

- memory-sync icon + croessweave icon

-A rat carries even its own memories when moving. `memory-sync` is that kind of tool-rat: expecting no platform charity, relying on no single IDE's privileged interface — it搬运-fetches, disassembles, and reassembles every config, prompt, and memory file it can read. +A rat carries even its own memories when moving. `croessweave` is that kind of tool-rat: expecting no platform charity, relying on no single IDE's privileged interface — it搬运-fetches, disassembles, and reassembles every config, prompt, and memory file it can read. ## What It Does @@ -20,20 +20,20 @@ A rat carries even its own memories when moving. `memory-sync` is that kind of t ## Install ```sh -npm install -g @truenine/memory-sync-cli +npm install -g @truenine/croessweave-cli ``` MCP server: ```sh -npm install -g @truenine/memory-sync-mcp +npm install -g @truenine/croessweave-mcp ``` ### TNMSOP for Obsidian TNMSOP is maintained in the [`tnmsop/`](tnmsop/README.md) submodule. Install it from the Obsidian community directory or download `main.js`, `manifest.json`, and `styles.css` from the matching [TNMSOP Release](https://github.com/TrueNine/tnmsop/releases). BRAT users should install `TrueNine/tnmsop`. -TNMSOP shares the memory-sync CalVer version. The plugin is released first with the exact plain `` tag, then memory-sync pins that release through the submodule and publishes its `v` system release. +TNMSOP shares the croessweave CalVer version. The plugin is released first with the exact plain `` tag, then croessweave pins that release through the submodule and publishes its `v` system release. ## Supported Tools @@ -45,15 +45,15 @@ TNMSOP shares the memory-sync CalVer version. The plugin is released first with ## Architecture -- **SDK** (`tnmsd` crate / `@truenine/memory-sync-sdk`): private mixed core -- **CLI** (`tnmsc` / `@truenine/memory-sync-cli`): public command entry -- **MCP** (`tnmsm` / `@truenine/memory-sync-mcp`): stdio server +- **SDK** (`tnmsd` crate / `@truenine/croessweave-sdk`): private mixed core +- **CLI** (`tnmsc` / `@truenine/croessweave-cli`): public command entry +- **MCP** (`tnmsm` / `@truenine/croessweave-mcp`): stdio server - **GUI** (Tauri): desktop entry ## FAQ **If AI tools adopt a unified standard, is this project still needed?** Then it has fulfilled its historical mission. -**We already have AGENTS.md and MCP standards — why still need this?** Native targets differ; conditional prompts still need concrete landing points. `AGENTS.md` is a spec; `memory-sync` is the porter and assembler. +**We already have AGENTS.md and MCP standards — why still need this?** Native targets differ; conditional prompts still need concrete landing points. `AGENTS.md` is a spec; `croessweave` is the porter and assembler. **Are there things in prompts you don't want to leave behind?** Yes. Hence the cleanup and protection boundaries. @@ -61,7 +61,7 @@ TNMSOP shares the memory-sync CalVer version. The plugin is released first with You need dev experience, Git fluency, and terminal comfort. -If you're scraping by in a world of profoundly unequal resources — free tiers, trial quotas, third-party scripts — `memory-sync` is for you. +If you're scraping by in a world of profoundly unequal resources — free tiers, trial quotas, third-party scripts — `croessweave` is for you. ## Who It's Not For diff --git a/cli/bin/tnmsc.js b/cli/bin/tnmsc.js index 6f301616..fafbbc80 100644 --- a/cli/bin/tnmsc.js +++ b/cli/bin/tnmsc.js @@ -5,7 +5,7 @@ const {spawnSync} = require('node:child_process'); const fs = require('node:fs'); const path = require('node:path'); -const PACKAGE_NAME = '@truenine/memory-sync-cli'; +const PACKAGE_NAME = '@truenine/croessweave-cli'; const BINARY_NAME = 'tnmsc'; const SUPPORTED_TARGETS = [ 'linux-x64-gnu', @@ -17,15 +17,15 @@ const SUPPORTED_TARGETS = [ const PLATFORM_PACKAGES = { darwin: { - arm64: '@truenine/memory-sync-cli-darwin-arm64', - x64: '@truenine/memory-sync-cli-darwin-x64', + arm64: '@truenine/croessweave-cli-darwin-arm64', + x64: '@truenine/croessweave-cli-darwin-x64', }, linux: { - arm64: '@truenine/memory-sync-cli-linux-arm64-gnu', - x64: '@truenine/memory-sync-cli-linux-x64-gnu', + arm64: '@truenine/croessweave-cli-linux-arm64-gnu', + x64: '@truenine/croessweave-cli-linux-x64-gnu', }, win32: { - x64: '@truenine/memory-sync-cli-win32-x64-msvc', + x64: '@truenine/croessweave-cli-win32-x64-msvc', }, }; diff --git a/cli/local-tests/src/lib.rs b/cli/local-tests/src/lib.rs index 92ba8ba1..af5129db 100644 --- a/cli/local-tests/src/lib.rs +++ b/cli/local-tests/src/lib.rs @@ -1,7 +1,7 @@ //! Black-box test infrastructure for the tnmsc CLI. //! //! Provides `LocalTestRunner` — a test harness that invokes the real compiled -//! `tnmsc` binary against the actual project directory (`~/workspace/memory-sync/`). +//! `tnmsc` binary against the actual project directory (`~/workspace/croessweave/`). //! Uses cross-process file locking and in-process mutex to serialise access to //! the shared project, ensuring test isolation. //! @@ -60,7 +60,7 @@ pub struct LocalTestRunner { } impl LocalTestRunner { - /// 默认在 ~/workspace/memory-sync/ 下运行测试。 + /// 默认在 ~/workspace/croessweave/ 下运行测试。 /// 若该目录不存在,则回退到当前目录。 pub fn new() -> Self { ensure_binary(); @@ -71,7 +71,7 @@ impl LocalTestRunner { .get_or_init(|| Mutex::new(())) .lock() .unwrap_or_else(|e| e.into_inner()); - let default_project = home_dir().join("workspace").join("memory-sync"); + let default_project = home_dir().join("workspace").join("croessweave"); let cwd = if default_project.is_dir() { default_project } else { @@ -215,7 +215,7 @@ impl LocalTestRunner { } /// 在指定的真实项目目录下检查文件是否存在。 - /// 默认使用当前 cwd(~/workspace/memory-sync/)。 + /// 默认使用当前 cwd(~/workspace/croessweave/)。 pub fn file_exists(&self, relative: impl AsRef) -> bool { self.cwd.join(relative).is_file() } @@ -546,7 +546,7 @@ pub fn binary_path() -> PathBuf { .join(binary_name) } -/// Resolve the workspace root (the memory-sync Cargo workspace directory). +/// Resolve the workspace root (the croessweave Cargo workspace directory). pub fn workspace_root() -> PathBuf { PathBuf::from(env!("CARGO_MANIFEST_DIR")) .parent() diff --git a/cli/local-tests/tests/agents_md_smoke.rs b/cli/local-tests/tests/agents_md_smoke.rs index 452396d5..af64474c 100644 --- a/cli/local-tests/tests/agents_md_smoke.rs +++ b/cli/local-tests/tests/agents_md_smoke.rs @@ -28,8 +28,8 @@ impl IsolatedAgentsFixture { )); let temp_home = temp_root.join("home"); let workspace_dir = temp_root.join("workspace"); - let project_dir = workspace_dir.join("memory-sync"); - let aindex_project_dir = workspace_dir.join("aindex").join("app").join("memory-sync"); + let project_dir = workspace_dir.join("croessweave"); + let aindex_project_dir = workspace_dir.join("aindex").join("app").join("croessweave"); fs::create_dir_all(temp_home.join(".aindex")).unwrap(); fs::create_dir_all(project_dir.join(".github")).unwrap(); diff --git a/cli/local-tests/tests/claude_smoke.rs b/cli/local-tests/tests/claude_smoke.rs index 353e6f25..0c5c0676 100644 --- a/cli/local-tests/tests/claude_smoke.rs +++ b/cli/local-tests/tests/claude_smoke.rs @@ -27,8 +27,8 @@ impl IsolatedClaudeFixture { )); let temp_home = temp_root.join("home"); let workspace_dir = temp_root.join("workspace"); - let project_dir = workspace_dir.join("memory-sync"); - let aindex_project_dir = workspace_dir.join("aindex").join("app").join("memory-sync"); + let project_dir = workspace_dir.join("croessweave"); + let aindex_project_dir = workspace_dir.join("aindex").join("app").join("croessweave"); fs::create_dir_all(temp_home.join(".aindex")).unwrap(); fs::create_dir_all(project_dir.join(".github")).unwrap(); diff --git a/cli/local-tests/tests/clean_blackbox.rs b/cli/local-tests/tests/clean_blackbox.rs index 874b7d8c..620a18be 100644 --- a/cli/local-tests/tests/clean_blackbox.rs +++ b/cli/local-tests/tests/clean_blackbox.rs @@ -12,7 +12,7 @@ struct IsolatedCleanFixture { runner: LocalTestRunner, temp_home: PathBuf, home_dir: PathBuf, - memory_sync_dir: PathBuf, + croessweave_dir: PathBuf, aindex_dir: PathBuf, knowladge_dir: PathBuf, } @@ -29,16 +29,16 @@ impl IsolatedCleanFixture { )); let home_dir = temp_root.join("home"); let workspace_dir = temp_root.join("workspace"); - let memory_sync_dir = workspace_dir.join("memory-sync"); + let croessweave_dir = workspace_dir.join("croessweave"); let aindex_dir = workspace_dir.join("aindex"); let knowladge_dir = workspace_dir.join("knowladge"); - let aindex_project_dir = aindex_dir.join("app").join("memory-sync"); + let aindex_project_dir = aindex_dir.join("app").join("croessweave"); fs::create_dir_all(home_dir.join(".aindex")).unwrap(); - fs::create_dir_all(memory_sync_dir.join(".github")).unwrap(); + fs::create_dir_all(croessweave_dir.join(".github")).unwrap(); fs::create_dir_all(&knowladge_dir).unwrap(); fs::create_dir_all(aindex_project_dir.join(".github")).unwrap(); - init_git_repo(&memory_sync_dir); + init_git_repo(&croessweave_dir); init_git_repo(&knowladge_dir); // issue local-tests-clean-isolation: clean black-box tests must own their @@ -47,10 +47,10 @@ impl IsolatedCleanFixture { write_prompt_sources(&aindex_dir, &aindex_project_dir); Self { - runner: LocalTestRunner::with_cwd(&memory_sync_dir), + runner: LocalTestRunner::with_cwd(&croessweave_dir), temp_home: home_dir.clone(), home_dir, - memory_sync_dir, + croessweave_dir, aindex_dir, knowladge_dir, } @@ -68,7 +68,7 @@ impl IsolatedCleanFixture { } fn install(&self) -> tnmsc_local_tests::CommandResult { - self.run_at(&self.memory_sync_dir, &["install"]) + self.run_at(&self.croessweave_dir, &["install"]) } fn clean_at(&self, cwd: &Path) -> tnmsc_local_tests::CommandResult { @@ -80,11 +80,11 @@ impl IsolatedCleanFixture { } fn project_claude_path(&self) -> PathBuf { - self.memory_sync_dir.join("CLAUDE.md") + self.croessweave_dir.join("CLAUDE.md") } fn project_agents_path(&self) -> PathBuf { - self.memory_sync_dir.join("AGENTS.md") + self.croessweave_dir.join("AGENTS.md") } fn knowladge_agents_path(&self) -> PathBuf { @@ -183,7 +183,7 @@ fn local_clean_removes_project_claude_md() { let fixture = IsolatedCleanFixture::new(true, false); fixture - .clean_at(&fixture.memory_sync_dir) + .clean_at(&fixture.croessweave_dir) .assert_success("isolated tnmsc clean before install"); let install = fixture.install(); @@ -194,7 +194,7 @@ fn local_clean_removes_project_claude_md() { ); fixture - .clean_at(&fixture.memory_sync_dir) + .clean_at(&fixture.croessweave_dir) .assert_success("isolated tnmsc clean"); assert!( @@ -209,7 +209,7 @@ fn local_clean_dry_run_does_not_remove_files() { let fixture = IsolatedCleanFixture::new(true, false); fixture - .clean_at(&fixture.memory_sync_dir) + .clean_at(&fixture.croessweave_dir) .assert_success("isolated tnmsc clean before install"); let install = fixture.install(); @@ -217,7 +217,7 @@ fn local_clean_dry_run_does_not_remove_files() { assert!(fixture.project_claude_path().is_file()); fixture - .dry_run_at(&fixture.memory_sync_dir) + .dry_run_at(&fixture.croessweave_dir) .assert_success("isolated tnmsc clean --dry-run"); assert!( @@ -226,9 +226,9 @@ fn local_clean_dry_run_does_not_remove_files() { ); } -/// Verify that running `tnmsc clean` inside memory-sync only cleans that project. +/// Verify that running `tnmsc clean` inside croessweave only cleans that project. #[test] -fn local_clean_from_memory_sync_does_not_clean_other_projects() { +fn local_clean_from_croessweave_does_not_clean_other_projects() { let fixture = IsolatedCleanFixture::new(false, true); fixture @@ -246,7 +246,7 @@ fn local_clean_from_memory_sync_does_not_clean_other_projects() { assert!( fixture.project_agents_path().is_file(), - "memory-sync/AGENTS.md should exist after install" + "croessweave/AGENTS.md should exist after install" ); assert!( fixture.knowladge_agents_path().is_file(), @@ -258,12 +258,12 @@ fn local_clean_from_memory_sync_does_not_clean_other_projects() { ); fixture - .clean_at(&fixture.memory_sync_dir) - .assert_success("isolated tnmsc clean from memory-sync"); + .clean_at(&fixture.croessweave_dir) + .assert_success("isolated tnmsc clean from croessweave"); assert!( !fixture.project_agents_path().exists(), - "memory-sync/AGENTS.md should be removed after scoped clean" + "croessweave/AGENTS.md should be removed after scoped clean" ); assert!( fixture.knowladge_agents_path().is_file(), @@ -275,12 +275,12 @@ fn local_clean_from_memory_sync_does_not_clean_other_projects() { ); } -/// Verify the reverse: running clean inside aindex does not affect memory-sync outputs. +/// Verify the reverse: running clean inside aindex does not affect croessweave outputs. /// /// The prompt-source root is reserved workspace state, so this scoped clean is a /// no-op for the manually created root-level `aindex/AGENTS.md`. #[test] -fn local_clean_from_aindex_does_not_clean_memory_sync() { +fn local_clean_from_aindex_does_not_clean_croessweave() { let fixture = IsolatedCleanFixture::new(false, true); fixture @@ -307,7 +307,7 @@ fn local_clean_from_aindex_does_not_clean_memory_sync() { ); assert!( fixture.project_agents_path().is_file(), - "memory-sync/AGENTS.md should still exist after scoped clean from aindex" + "croessweave/AGENTS.md should still exist after scoped clean from aindex" ); assert!( fixture.knowladge_agents_path().is_file(), @@ -340,7 +340,7 @@ fn local_clean_from_home_cleans_all_projects() { assert!( !fixture.project_agents_path().exists(), - "memory-sync/AGENTS.md should be removed after global clean" + "croessweave/AGENTS.md should be removed after global clean" ); assert!( !fixture.knowladge_agents_path().exists(), diff --git a/cli/local-tests/tests/codex_smoke.rs b/cli/local-tests/tests/codex_smoke.rs index ba2cf3fd..b3a5d142 100644 --- a/cli/local-tests/tests/codex_smoke.rs +++ b/cli/local-tests/tests/codex_smoke.rs @@ -28,9 +28,9 @@ impl IsolatedCodexFixture { )); let temp_home = temp_root.join("home"); let workspace_dir = temp_root.join("workspace"); - let project_dir = workspace_dir.join("memory-sync"); + let project_dir = workspace_dir.join("croessweave"); let aindex_dir = workspace_dir.join("aindex"); - let aindex_project_dir = aindex_dir.join("app").join("memory-sync"); + let aindex_project_dir = aindex_dir.join("app").join("croessweave"); fs::create_dir_all(temp_home.join(".aindex")).unwrap(); fs::create_dir_all(project_dir.join(".github")).unwrap(); diff --git a/cli/local-tests/tests/dry_run_smoke.rs b/cli/local-tests/tests/dry_run_smoke.rs index 4a14644b..26e38cf0 100644 --- a/cli/local-tests/tests/dry_run_smoke.rs +++ b/cli/local-tests/tests/dry_run_smoke.rs @@ -17,7 +17,7 @@ fn local_dry_run_does_not_write_project_files() { assert!( !runner.file_exists("CLAUDE.md"), - "~/workspace/memory-sync/CLAUDE.md should not exist before dry-run" + "~/workspace/croessweave/CLAUDE.md should not exist before dry-run" ); // dry-run 不应写入文件 @@ -26,6 +26,6 @@ fn local_dry_run_does_not_write_project_files() { assert!( !runner.file_exists("CLAUDE.md"), - "~/workspace/memory-sync/CLAUDE.md should not be created by dry-run" + "~/workspace/croessweave/CLAUDE.md should not be created by dry-run" ); } diff --git a/cli/local-tests/tests/install_smoke.rs b/cli/local-tests/tests/install_smoke.rs index 5b0a76d5..0c6be73c 100644 --- a/cli/local-tests/tests/install_smoke.rs +++ b/cli/local-tests/tests/install_smoke.rs @@ -27,8 +27,8 @@ impl IsolatedInstallFixture { )); let temp_home = temp_root.join("home"); let workspace_dir = temp_root.join("workspace"); - let project_dir = workspace_dir.join("memory-sync"); - let aindex_project_dir = workspace_dir.join("aindex").join("app").join("memory-sync"); + let project_dir = workspace_dir.join("croessweave"); + let aindex_project_dir = workspace_dir.join("aindex").join("app").join("croessweave"); let commands_dir = workspace_dir.join("aindex").join("commands"); let subagents_dir = workspace_dir.join("aindex").join("subagents"); let skills_dir = workspace_dir.join("aindex").join("skills"); diff --git a/cli/local-tests/tests/logging_clean.rs b/cli/local-tests/tests/logging_clean.rs index bc127695..eaf8d98b 100644 --- a/cli/local-tests/tests/logging_clean.rs +++ b/cli/local-tests/tests/logging_clean.rs @@ -23,8 +23,8 @@ impl IsolatedLoggingCleanFixture { )); let temp_home = temp_root.join("home"); let workspace_dir = temp_root.join("workspace"); - let project_dir = workspace_dir.join("memory-sync"); - let aindex_project_dir = workspace_dir.join("aindex").join("app").join("memory-sync"); + let project_dir = workspace_dir.join("croessweave"); + let aindex_project_dir = workspace_dir.join("aindex").join("app").join("croessweave"); fs::create_dir_all(temp_home.join(".aindex")).unwrap(); fs::create_dir_all(project_dir.join(".github")).unwrap(); diff --git a/cli/local-tests/tests/logging_install_observability.rs b/cli/local-tests/tests/logging_install_observability.rs index 79364ea4..43f11626 100644 --- a/cli/local-tests/tests/logging_install_observability.rs +++ b/cli/local-tests/tests/logging_install_observability.rs @@ -23,8 +23,8 @@ impl IsolatedLoggingInstallFixture { )); let temp_home = temp_root.join("home"); let workspace_dir = temp_root.join("workspace"); - let project_dir = workspace_dir.join("memory-sync"); - let aindex_project_dir = workspace_dir.join("aindex").join("app").join("memory-sync"); + let project_dir = workspace_dir.join("croessweave"); + let aindex_project_dir = workspace_dir.join("aindex").join("app").join("croessweave"); fs::create_dir_all(temp_home.join(".aindex")).unwrap(); fs::create_dir_all(project_dir.join(".github")).unwrap(); diff --git a/cli/local-tests/tests/logging_levels.rs b/cli/local-tests/tests/logging_levels.rs index fe076dc3..c90bbc28 100644 --- a/cli/local-tests/tests/logging_levels.rs +++ b/cli/local-tests/tests/logging_levels.rs @@ -23,8 +23,8 @@ impl IsolatedLoggingLevelsFixture { )); let temp_home = temp_root.join("home"); let workspace_dir = temp_root.join("workspace"); - let project_dir = workspace_dir.join("memory-sync"); - let aindex_project_dir = workspace_dir.join("aindex").join("app").join("memory-sync"); + let project_dir = workspace_dir.join("croessweave"); + let aindex_project_dir = workspace_dir.join("aindex").join("app").join("croessweave"); fs::create_dir_all(temp_home.join(".aindex")).unwrap(); fs::create_dir_all(project_dir.join(".github")).unwrap(); diff --git a/cli/local-tests/tests/rules_source_smoke.rs b/cli/local-tests/tests/rules_source_smoke.rs index b26378e9..c1fffd22 100644 --- a/cli/local-tests/tests/rules_source_smoke.rs +++ b/cli/local-tests/tests/rules_source_smoke.rs @@ -29,10 +29,10 @@ impl IsolatedRulesFixture { )); let temp_home = temp_root.join("home"); let workspace_dir = temp_root.join("workspace"); - let project_dir = workspace_dir.join("memory-sync"); + let project_dir = workspace_dir.join("croessweave"); let aindex_dir = workspace_dir.join("aindex"); let rules_dir = aindex_dir.join("rules").join("qa"); - let aindex_project_dir = aindex_dir.join("app").join("memory-sync"); + let aindex_project_dir = aindex_dir.join("app").join("croessweave"); fs::create_dir_all(temp_home.join(".aindex")).unwrap(); fs::create_dir_all(&project_dir).unwrap(); diff --git a/cli/local-tests/tests/support/opencode.rs b/cli/local-tests/tests/support/opencode.rs index 836fa873..ae59ce53 100644 --- a/cli/local-tests/tests/support/opencode.rs +++ b/cli/local-tests/tests/support/opencode.rs @@ -24,9 +24,9 @@ impl IsolatedOpencodeFixture { )); let temp_home = temp_root.join("home"); let workspace_dir = temp_root.join("workspace"); - let project_dir = workspace_dir.join("memory-sync"); + let project_dir = workspace_dir.join("croessweave"); let aindex_dir = workspace_dir.join("aindex"); - let aindex_project_dir = aindex_dir.join("app").join("memory-sync"); + let aindex_project_dir = aindex_dir.join("app").join("croessweave"); fs::create_dir_all(temp_home.join(".aindex")).unwrap(); fs::create_dir_all(project_dir.join(".github")).unwrap(); diff --git a/cli/local-tests/tests/trae_smoke.rs b/cli/local-tests/tests/trae_smoke.rs index c84b9672..772d3354 100644 --- a/cli/local-tests/tests/trae_smoke.rs +++ b/cli/local-tests/tests/trae_smoke.rs @@ -26,9 +26,9 @@ impl IsolatedTraeFixture { )); let temp_home = temp_root.join("home"); let workspace_dir = temp_root.join("workspace"); - let project_dir = workspace_dir.join("memory-sync"); + let project_dir = workspace_dir.join("croessweave"); let aindex_dir = workspace_dir.join("aindex"); - let aindex_project_dir = aindex_dir.join("app").join("memory-sync"); + let aindex_project_dir = aindex_dir.join("app").join("croessweave"); fs::create_dir_all(temp_home.join(".aindex")).unwrap(); fs::create_dir_all(&project_dir).unwrap(); diff --git a/cli/npm/darwin-arm64/package.json b/cli/npm/darwin-arm64/package.json index 6bb18c7a..0e3f7dd3 100644 --- a/cli/npm/darwin-arm64/package.json +++ b/cli/npm/darwin-arm64/package.json @@ -1,5 +1,5 @@ { - "name": "@truenine/memory-sync-cli-darwin-arm64", + "name": "@truenine/croessweave-cli-darwin-arm64", "version": "2026.10806.0", "description": "tnmsc native binary for macOS arm64", "author": "TrueNine", diff --git a/cli/npm/darwin-x64/package.json b/cli/npm/darwin-x64/package.json index 8d210c9f..e8042938 100644 --- a/cli/npm/darwin-x64/package.json +++ b/cli/npm/darwin-x64/package.json @@ -1,5 +1,5 @@ { - "name": "@truenine/memory-sync-cli-darwin-x64", + "name": "@truenine/croessweave-cli-darwin-x64", "version": "2026.10806.0", "description": "tnmsc native binary for macOS x64", "author": "TrueNine", diff --git a/cli/npm/linux-arm64-gnu/package.json b/cli/npm/linux-arm64-gnu/package.json index ae4edb3b..4f483bab 100644 --- a/cli/npm/linux-arm64-gnu/package.json +++ b/cli/npm/linux-arm64-gnu/package.json @@ -1,5 +1,5 @@ { - "name": "@truenine/memory-sync-cli-linux-arm64-gnu", + "name": "@truenine/croessweave-cli-linux-arm64-gnu", "version": "2026.10806.0", "description": "tnmsc native binary for Linux arm64 (glibc)", "author": "TrueNine", diff --git a/cli/npm/linux-x64-gnu/package.json b/cli/npm/linux-x64-gnu/package.json index 91650d58..122d70a8 100644 --- a/cli/npm/linux-x64-gnu/package.json +++ b/cli/npm/linux-x64-gnu/package.json @@ -1,5 +1,5 @@ { - "name": "@truenine/memory-sync-cli-linux-x64-gnu", + "name": "@truenine/croessweave-cli-linux-x64-gnu", "version": "2026.10806.0", "description": "tnmsc native binary for Linux x64 (glibc)", "author": "TrueNine", diff --git a/cli/npm/win32-x64-msvc/package.json b/cli/npm/win32-x64-msvc/package.json index 9a671088..a5dd670e 100644 --- a/cli/npm/win32-x64-msvc/package.json +++ b/cli/npm/win32-x64-msvc/package.json @@ -1,5 +1,5 @@ { - "name": "@truenine/memory-sync-cli-win32-x64-msvc", + "name": "@truenine/croessweave-cli-win32-x64-msvc", "version": "2026.10806.0", "description": "tnmsc native binary for Windows x64", "author": "TrueNine", diff --git a/cli/package.json b/cli/package.json index debac0a0..c59c64a8 100644 --- a/cli/package.json +++ b/cli/package.json @@ -1,13 +1,13 @@ { - "name": "@truenine/memory-sync-cli", + "name": "@truenine/croessweave-cli", "version": "2026.10806.0", - "description": "TrueNine Memory Synchronization CLI metadata package", + "description": "TrueNine Croessweave CLI metadata package", "author": "TrueNine", "license": "AGPL-3.0-only", - "homepage": "https://github.com/TrueNine/memory-sync", + "homepage": "https://github.com/TrueNine/croessweave", "repository": { "type": "git", - "url": "git+https://github.com/TrueNine/memory-sync.git", + "url": "git+https://github.com/TrueNine/croessweave.git", "directory": "cli" }, "bin": { @@ -34,10 +34,10 @@ "test": "cargo test --manifest-path Cargo.toml" }, "optionalDependencies": { - "@truenine/memory-sync-cli-darwin-arm64": "2026.10806.0", - "@truenine/memory-sync-cli-darwin-x64": "2026.10806.0", - "@truenine/memory-sync-cli-linux-arm64-gnu": "2026.10806.0", - "@truenine/memory-sync-cli-linux-x64-gnu": "2026.10806.0", - "@truenine/memory-sync-cli-win32-x64-msvc": "2026.10806.0" + "@truenine/croessweave-cli-darwin-arm64": "2026.10806.0", + "@truenine/croessweave-cli-darwin-x64": "2026.10806.0", + "@truenine/croessweave-cli-linux-arm64-gnu": "2026.10806.0", + "@truenine/croessweave-cli-linux-x64-gnu": "2026.10806.0", + "@truenine/croessweave-cli-win32-x64-msvc": "2026.10806.0" } } diff --git a/cli/src/cli.rs b/cli/src/cli.rs index 22794c9c..41060779 100644 --- a/cli/src/cli.rs +++ b/cli/src/cli.rs @@ -11,7 +11,7 @@ use clap::{Args, Parser, Subcommand}; #[command( name = "tnmsc", version = env!("CARGO_PKG_VERSION"), - about = "Memory Sync CLI — Synchronize AI memory and configuration files across projects.", + about = "Croessweave CLI — Synchronize AI memory and configuration files across projects.", disable_help_subcommand = true, )] pub struct Cli { diff --git a/cli/src/commands/help.rs b/cli/src/commands/help.rs index a9a87368..125077d6 100644 --- a/cli/src/commands/help.rs +++ b/cli/src/commands/help.rs @@ -1,7 +1,7 @@ use std::process::ExitCode; pub fn execute() -> ExitCode { - println!("tnmsc — Memory Sync CLI"); + println!("tnmsc — Croessweave CLI"); println!(); println!("USAGE:"); println!(" tnmsc [OPTIONS] [COMMAND]"); diff --git a/cli/src/commands/pipeline.rs b/cli/src/commands/pipeline.rs index af282096..551598e2 100644 --- a/cli/src/commands/pipeline.rs +++ b/cli/src/commands/pipeline.rs @@ -12,7 +12,7 @@ struct RenderedCommandResult { } fn render_result( - result: Result, + result: Result, ) -> RenderedCommandResult { match result { Ok(r) => { @@ -168,7 +168,7 @@ fn log_command_start(logger: &Logger, command_name: &str) { fn log_command_finish( logger: &Logger, command_name: &str, - result: &Result, + result: &Result, ) { match result { Ok(command_result) => { @@ -200,9 +200,9 @@ fn log_command_finish( fn run_command( command_name: &str, operation: impl FnOnce( - tnmsd::MemorySyncCommandOptions, - ) -> Result, - options: tnmsd::MemorySyncCommandOptions, + tnmsd::CroessweaveCommandOptions, + ) -> Result, + options: tnmsd::CroessweaveCommandOptions, ) -> ExitCode { let logger = create_logger("pipeline", None); log_command_start(&logger, command_name); @@ -230,7 +230,7 @@ pub fn install() -> ExitCode { run_command( "install", tnmsd::install, - tnmsd::MemorySyncCommandOptions::default(), + tnmsd::CroessweaveCommandOptions::default(), ) } @@ -238,7 +238,7 @@ pub fn dry_run() -> ExitCode { run_command( "dry-run", tnmsd::dry_run, - tnmsd::MemorySyncCommandOptions::default(), + tnmsd::CroessweaveCommandOptions::default(), ) } @@ -246,12 +246,12 @@ pub fn clean() -> ExitCode { run_command( "clean", tnmsd::clean, - tnmsd::MemorySyncCommandOptions::default(), + tnmsd::CroessweaveCommandOptions::default(), ) } pub fn dry_run_clean() -> ExitCode { - let options = tnmsd::MemorySyncCommandOptions { + let options = tnmsd::CroessweaveCommandOptions { dry_run: Some(true), ..Default::default() }; @@ -266,7 +266,7 @@ mod tests { #[test] fn render_result_prints_success_message_to_stdout() { - let rendered = render_result(Ok(tnmsd::MemorySyncCommandResult { + let rendered = render_result(Ok(tnmsd::CroessweaveCommandResult { success: true, files_affected: 1, dirs_affected: 0, @@ -287,7 +287,7 @@ mod tests { #[test] fn render_result_formats_workspace_mismatch_warning() { - let rendered = render_result(Ok(tnmsd::MemorySyncCommandResult { + let rendered = render_result(Ok(tnmsd::CroessweaveCommandResult { success: true, files_affected: 0, dirs_affected: 0, @@ -295,7 +295,7 @@ mod tests { warnings: vec![json!({ "type": "workspace_mismatch", "message": "Current directory is outside configured workspaceDir. tnmsc will operate on the configured workspace instead of the current directory.", - "currentDir": "C:/workspace/memory-sync", + "currentDir": "C:/workspace/croessweave", "workspaceDir": "C:/temp/demo", "configSources": ["C:/Users/truen/.aindex/.tnmsc.json"] })], @@ -306,7 +306,7 @@ mod tests { rendered.stderr_lines, vec![ "Warning: Current directory is outside configured workspaceDir. tnmsc will operate on the configured workspace instead of the current directory.".to_string(), - " currentDir: C:/workspace/memory-sync".to_string(), + " currentDir: C:/workspace/croessweave".to_string(), " workspaceDir: C:/temp/demo".to_string(), " configSources: C:/Users/truen/.aindex/.tnmsc.json".to_string(), ] @@ -315,7 +315,7 @@ mod tests { #[test] fn render_result_formats_path_errors() { - let rendered = render_result(Ok(tnmsd::MemorySyncCommandResult { + let rendered = render_result(Ok(tnmsd::CroessweaveCommandResult { success: false, files_affected: 0, dirs_affected: 0, diff --git a/doc/app/docs/[[...mdxPath]]/layout.tsx b/doc/app/docs/[[...mdxPath]]/layout.tsx index ee369d1f..476e6d57 100644 --- a/doc/app/docs/[[...mdxPath]]/layout.tsx +++ b/doc/app/docs/[[...mdxPath]]/layout.tsx @@ -48,7 +48,7 @@ export default async function DocsLayout({
Docs - memory-sync + croessweave
diff --git a/doc/app/manifest.ts b/doc/app/manifest.ts index dd0aa773..486fe286 100644 --- a/doc/app/manifest.ts +++ b/doc/app/manifest.ts @@ -3,9 +3,9 @@ import {withBasePath} from '@/lib/site' export default function manifest(): MetadataRoute.Manifest { return { - name: 'memory-sync 文档', - short_name: 'memory-sync', - description: 'Chinese-first manifesto-led docs for memory-sync.', + name: 'croessweave 文档', + short_name: 'croessweave', + description: 'Chinese-first manifesto-led docs for croessweave.', start_url: withBasePath('/'), display: 'standalone', background_color: '#090909', diff --git a/doc/app/opengraph-image.tsx b/doc/app/opengraph-image.tsx index b235e1ff..114c611c 100644 --- a/doc/app/opengraph-image.tsx +++ b/doc/app/opengraph-image.tsx @@ -1,6 +1,6 @@ import {ImageResponse} from 'next/og' -export const alt = 'memory-sync 文档' +export const alt = 'croessweave 文档' export const size = { width: 1200, height: 630 @@ -34,7 +34,7 @@ export default function OpenGraphImage() { >
RUST-FIRST / TOOL-RAT DOCS
-
memory-sync
+
croessweave
为多 AI 工具同步规则、命令、技能与记忆的中文优先文档站
diff --git a/doc/components/home-version-note.tsx b/doc/components/home-version-note.tsx index c7c1c376..f4b43bcb 100644 --- a/doc/components/home-version-note.tsx +++ b/doc/components/home-version-note.tsx @@ -1,7 +1,7 @@ import process from 'node:process' export function HomeVersionNote() { - const version = process.env.NEXT_PUBLIC_MEMORY_SYNC_VERSION + const version = process.env.NEXT_PUBLIC_CROESSWEAVE_VERSION if (version == null || version === '') { return null diff --git a/doc/content/cli/install.mdx b/doc/content/cli/install.mdx index 2e86528d..10bc31b8 100644 --- a/doc/content/cli/install.mdx +++ b/doc/content/cli/install.mdx @@ -1,6 +1,6 @@ --- title: 安装与要求 -description: 说明 memory-sync 当前对 Node、pnpm、Rust 和 CLI 安装的要求。 +description: 说明 croessweave 当前对 Node、pnpm、Rust 和 CLI 安装的要求。 sidebarTitle: 安装与要求 status: stable keywords: @@ -25,10 +25,10 @@ keywords: ## 安装 CLI -`@truenine/memory-sync-cli` 现在会自动为当前受支持的平台安装对应的 native 子包,并直接暴露 `tnmsc`。全局安装时优先使用主包: +`@truenine/croessweave-cli` 现在会自动为当前受支持的平台安装对应的 native 子包,并直接暴露 `tnmsc`。全局安装时优先使用主包: ```sh -npm install -g @truenine/memory-sync-cli +npm install -g @truenine/croessweave-cli ``` 当前发布的 npm native 子包仍然覆盖下面这些平台组合: diff --git a/doc/content/cli/workspace-setup.mdx b/doc/content/cli/workspace-setup.mdx index 0b4be35a..574a7c29 100644 --- a/doc/content/cli/workspace-setup.mdx +++ b/doc/content/cli/workspace-setup.mdx @@ -19,7 +19,7 @@ status: stable ## 这里仍然负责什么 -`memory-sync` 不会把目标工具的配置文件当作事实来源。它会根据 aindex 源目录和项目配置入口生成输出。 +`croessweave` 不会把目标工具的配置文件当作事实来源。它会根据 aindex 源目录和项目配置入口生成输出。 ## 源内容通常如何拆分 diff --git a/doc/content/design-rationale/manifesto.mdx b/doc/content/design-rationale/manifesto.mdx index f6f489b4..9f9633d5 100644 --- a/doc/content/design-rationale/manifesto.mdx +++ b/doc/content/design-rationale/manifesto.mdx @@ -1,13 +1,13 @@ --- title: 为什么会有这个工具 -description: 从 README 里“tool-rat”的定位出发,解释 memory-sync 真正想解决的问题。 +description: 从 README 里“tool-rat”的定位出发,解释 croessweave 真正想解决的问题。 sidebarTitle: 为什么会有这个工具 status: stable --- # 为什么会有这个工具 -README 对 `memory-sync` 的核心定位说得很直接:这不是一个等着平台最终收敛到统一标准的工具。它是一个在工具割裂、接口私有、访问机会分配不均的现实世界里依然能工作的 “tool-rat”。 +README 对 `croessweave` 的核心定位说得很直接:这不是一个等着平台最终收敛到统一标准的工具。它是一个在工具割裂、接口私有、访问机会分配不均的现实世界里依然能工作的 “tool-rat”。 ## 这个项目不承诺什么 @@ -34,7 +34,7 @@ README 对 `memory-sync` 的核心定位说得很直接:这不是一个等着 - 决定如何移除旧产物 - 决定如何避免多套配置互相踩踏 -`memory-sync` 的意义,就在于把这些决策前移到声明式配置和 source 文件结构中。 +`croessweave` 的意义,就在于把这些决策前移到声明式配置和 source 文件结构中。 ## 为什么文档也必须一起重写 diff --git a/doc/content/index.mdx b/doc/content/index.mdx index bc159140..53561729 100644 --- a/doc/content/index.mdx +++ b/doc/content/index.mdx @@ -1,10 +1,10 @@ --- title: 概览 -description: memory-sync 文档站入口,按快速指南、CLI、SDK、MCP、GUI、技术细节与设计缘由组织。 +description: croessweave 文档站入口,按快速指南、CLI、SDK、MCP、GUI、技术细节与设计缘由组织。 sidebarTitle: 概览 status: stable keywords: - - memory-sync + - croessweave - 文档 - 概览 --- @@ -28,7 +28,7 @@ keywords: ## 从哪里开始 - 如果你是第一次打开这个文档站,先看 [快速指南](/docs/quick-guide),判断自己需要走 CLI、GUI 还是 MCP 路径。 -- 如果你想立刻把 `memory-sync` 用起来,继续进入 [CLI](/docs/cli),先把安装、项目准备和第一次安装流程跑通。 +- 如果你想立刻把 `croessweave` 用起来,继续进入 [CLI](/docs/cli),先把安装、项目准备和第一次安装流程跑通。 - 如果你需要理解内部核心是如何拆分的,以及为什么 `sdk/` 现在成了共享中心,就看 [SDK](/docs/sdk)。 - 如果你想把 `tnmsm` 集成到支持 MCP 的宿主里,直接跳到 [MCP](/docs/mcp)。 - 如果你更关心桌面应用而不是终端界面,就打开 [GUI](/docs/gui)。 diff --git a/doc/content/mcp/index.mdx b/doc/content/mcp/index.mdx index 0ca62629..37aade0a 100644 --- a/doc/content/mcp/index.mdx +++ b/doc/content/mcp/index.mdx @@ -7,12 +7,12 @@ status: stable # MCP -`mcp/` 是当前仓库中的独立包。它以 `@truenine/memory-sync-mcp` 的形式发布,主包会自动解析并安装匹配的平台 native 子包,命令名是 `tnmsm`。它不是文档里的抽象概念,而是一个真实的 stdio server。 +`mcp/` 是当前仓库中的独立包。它以 `@truenine/croessweave-mcp` 的形式发布,主包会自动解析并安装匹配的平台 native 子包,命令名是 `tnmsm`。它不是文档里的抽象概念,而是一个真实的 stdio server。 ## 它负责什么 -- 它把 `memory-sync` 的 prompt 管理能力以 MCP stdio server 的形式暴露出来 -- 它通过 `@truenine/memory-sync-sdk` 的最小 binding 访问 prompt 管理能力,而不是重新实现一套独立逻辑 +- 它把 `croessweave` 的 prompt 管理能力以 MCP stdio server 的形式暴露出来 +- 它通过 `@truenine/croessweave-sdk` 的最小 binding 访问 prompt 管理能力,而不是重新实现一套独立逻辑 - 它让支持 MCP 的宿主可以通过 tool call 读取、更新并回写 prompt 资产 ## 它不负责什么 diff --git a/doc/content/mcp/server-tools.mdx b/doc/content/mcp/server-tools.mdx index b67c616e..055e24c2 100644 --- a/doc/content/mcp/server-tools.mdx +++ b/doc/content/mcp/server-tools.mdx @@ -11,14 +11,14 @@ status: stable 当前公开入口是 Rust 二进制 `tnmsm`: -- npm 主包:`@truenine/memory-sync-mcp` -- 平台二进制子包:`@truenine/memory-sync-mcp-` +- npm 主包:`@truenine/croessweave-mcp` +- 平台二进制子包:`@truenine/croessweave-mcp-` - stdio 命令入口:`tnmsm` 推荐安装方式是直接安装主包: ```sh -npm install -g @truenine/memory-sync-mcp +npm install -g @truenine/croessweave-mcp ``` 当前 npm 二进制仍然只覆盖 glibc Linux、macOS 和 Windows x64;Linux musl/Alpine 还不在发布范围内。 diff --git a/doc/content/quick-guide/aindex-and-config.mdx b/doc/content/quick-guide/aindex-and-config.mdx index 8a5bfa46..656da72b 100644 --- a/doc/content/quick-guide/aindex-and-config.mdx +++ b/doc/content/quick-guide/aindex-and-config.mdx @@ -11,7 +11,7 @@ status: stable ## 需要分开的两件事 -`memory-sync` 把下面两项视为不同层: +`croessweave` 把下面两项视为不同层: - 工作区 aindex 目录下的源内容树 - 位于 `~/.aindex/.tnmsc.json` 的规范全局用户配置文件 diff --git a/doc/content/quick-guide/index.mdx b/doc/content/quick-guide/index.mdx index 663b8b41..aac73ea7 100644 --- a/doc/content/quick-guide/index.mdx +++ b/doc/content/quick-guide/index.mdx @@ -1,10 +1,10 @@ --- title: 快速指南 -description: 用最短路径判断应从 CLI、GUI 还是 MCP 进入 memory-sync 文档。 +description: 用最短路径判断应从 CLI、GUI 还是 MCP 进入 croessweave 文档。 sidebarTitle: 概览 status: stable keywords: - - memory-sync + - croessweave - 快速指南 - 上手 --- diff --git a/doc/content/quick-guide/quick-install.mdx b/doc/content/quick-guide/quick-install.mdx index 97c47604..939bbaaa 100644 --- a/doc/content/quick-guide/quick-install.mdx +++ b/doc/content/quick-guide/quick-install.mdx @@ -1,6 +1,6 @@ --- title: 快速安装 -description: 用最短命令安装 memory-sync CLI,并确认你使用的是当前命令集。 +description: 用最短命令安装 croessweave CLI,并确认你使用的是当前命令集。 sidebarTitle: 快速安装 status: stable keywords: @@ -15,7 +15,7 @@ keywords: 如果你只是想先把 CLI 装上,直接安装主包: ```sh -npm install -g @truenine/memory-sync-cli +npm install -g @truenine/croessweave-cli ``` 当前主包会自动为受支持的平台拉取对应的 native 子包。已覆盖的平台组合是 Linux x64/arm64 (glibc)、macOS x64/arm64 和 Windows x64。Linux musl 或 Alpine 目前还不在 npm 二进制支持范围内。 diff --git a/doc/content/sdk/architecture.mdx b/doc/content/sdk/architecture.mdx index a5316791..e672f729 100644 --- a/doc/content/sdk/architecture.mdx +++ b/doc/content/sdk/architecture.mdx @@ -1,6 +1,6 @@ --- title: SDK 架构总览 -description: memory-sync SDK 的全局架构视角,整合 Logger、MDX-Compiler、Script-Runtime 三库的角色定位、依赖关系、数据流和构建流程,为架构师和技术负责人提供完整的系统蓝图。 +description: croessweave SDK 的全局架构视角,整合 Logger、MDX-Compiler、Script-Runtime 三库的角色定位、依赖关系、数据流和构建流程,为架构师和技术负责人提供完整的系统蓝图。 sidebarTitle: 架构总览 status: stable --- @@ -13,12 +13,12 @@ import { Callout, Cards, Steps, Tabs } from 'nextra/components' ## SDK 整体定位 -`sdk/` 是整个 memory-sync monorepo 的 **私有混合核心(Private Mixed Core)**,也是共享内部能力的唯一事实来源。它不是一个供外部直接安装的独立 npm 包——它的存在是为了将 memory-sync 工具链的核心逻辑从 `cli/` 命令入口层中抽离出来,形成清晰的分层架构。 +`sdk/` 是整个 croessweave monorepo 的 **私有混合核心(Private Mixed Core)**,也是共享内部能力的唯一事实来源。它不是一个供外部直接安装的独立 npm 包——它的存在是为了将 croessweave 工具链的核心逻辑从 `cli/` 命令入口层中抽离出来,形成清晰的分层架构。 在当前仓库结构中,`sdk/` 承担以下核心职责: - 拥有 Rust crate `tnmsd` 的实际 workspace 路径和 facade 定义 -- 提供 npm 包 `@truenine/memory-sync-sdk` 作为内部消费者(`cli/`、`mcp/`、`gui/`)的统一依赖入口 +- 提供 npm 包 `@truenine/croessweave-sdk` 作为内部消费者(`cli/`、`mcp/`、`gui/`)的统一依赖入口 - 负责 Prompt Service 的实现(基于 MDX-Compiler)、Schema 生成以及最小化的 TypeScript loader 入口 - 编排 Logger、MDX-Compiler、Script-Runtime 三类基础能力;其中 Logger / Script-Runtime 的 TypeScript facade 已内联到 `sdk/src/libraries/*`,`sdk/*` 保留 Rust crate 与发布壳层 @@ -26,7 +26,7 @@ import { Callout, Cards, Steps, Tabs } from 'nextra/components' ## 为什么还保留 Libraries 层 -`sdk/` 仍然有存在价值,但它现在主要承载 **Rust-first** 的 crate、本地 NAPI 制品和对外发布 wrapper,而不再默认承担全部 TypeScript 事实来源。它们覆盖了 memory-sync 工具链中性能最关键的路径: +`sdk/` 仍然有存在价值,但它现在主要承载 **Rust-first** 的 crate、本地 NAPI 制品和对外发布 wrapper,而不再默认承担全部 TypeScript 事实来源。它们覆盖了 croessweave 工具链中性能最关键的路径: | 性能关键路径 | 对应 Library | Rust 提供的优势 | | --- | --- | --- | @@ -48,7 +48,7 @@ graph TB GUI["GUI (Tauri)
桌面应用"] end - subgraph SDK["@truenine/memory-sync-sdk
私有混合核心"] + subgraph SDK["@truenine/croessweave-sdk
私有混合核心"] SDKCore["SDK Core
Prompt Service / Schema / Bridge"] LOG_TS["sdk/src/libraries/logger.ts
(Logger TS facade)"] MDC_TS["sdk/src/md-compiler/src/index.ts
(MDX-Compiler TS API)"] @@ -59,7 +59,7 @@ graph TB direction LR subgraph L1["Logger
基础设施层"] LOG_R["tnmsd / logger
(Rust crate)"] - LOG_PKG["@truenine/memory-sync-sdk
(Logger wrapper)"] + LOG_PKG["@truenine/croessweave-sdk
(Logger wrapper)"] end subgraph L2["MDX-Compiler
编译层"] @@ -68,7 +68,7 @@ graph TB subgraph L3["Script-Runtime
运行时层"] SR_R["tnmsd / script-runtime
(Rust crate)"] - SR_PKG["@truenine/memory-sync-sdk
(SR wrapper)"] + SR_PKG["@truenine/croessweave-sdk
(SR wrapper)"] end end @@ -117,8 +117,8 @@ Logger 是整个依赖树的 **叶子节点之一**(另一个是 Script-Runtim ```mermaid graph LR - SDK["@truenine/memory-sync-sdk"] --> LOGGER["Logger facade"] - MDC["@truenine/memory-sync-sdk"] --> LOGGER + SDK["@truenine/croessweave-sdk"] --> LOGGER["Logger facade"] + MDC["@truenine/croessweave-sdk"] --> LOGGER subgraph Logger["tnmsd / Logger"] L_CORE["Rust 核心
lib.rs"] @@ -156,10 +156,10 @@ MDX-Compiler 位于依赖树的中层,**仅依赖 Logger**,被 SDK 的 Promp ```mermaid graph LR - SDK["@truenine/memory-sync-sdk"] --> MDC["@truenine/memory-sync-sdk"] - MDC --> LOGGER["@truenine/memory-sync-sdk"] + SDK["@truenine/croessweave-sdk"] --> MDC["@truenine/croessweave-sdk"] + MDC --> LOGGER["@truenine/croessweave-sdk"] - subgraph MDXCompiler["tnmsd / @truenine/memory-sync-sdk"] + subgraph MDXCompiler["tnmsd / @truenine/croessweave-sdk"] direction TB MC_PARSER["Parser
unified + remark 插件链"] MC_EXPR["Expression Eval
简单引用 / Function 构造器"] @@ -201,9 +201,9 @@ Script-Runtime 是依赖树中的 **另一个叶子节点**,与其他两个 li ```mermaid graph LR - SDK["@truenine/memory-sync-sdk"] --> SR["@truenine/memory-sync-sdk"] + SDK["@truenine/croessweave-sdk"] --> SR["@truenine/croessweave-sdk"] - subgraph ScriptRuntime["tnmsd / @truenine/memory-sync-sdk"] + subgraph ScriptRuntime["tnmsd / @truenine/croessweave-sdk"] direction TB SR_LOADER["Module Loader
Jiti Runtime"] SR_PATH["Path Validator
Rust 原生绑定"] @@ -321,23 +321,23 @@ SDK 的构建是一个多阶段的有序流水线,从 Rust 源码到最终的 pnpm run bootstrap # Rust workspace 构建 - cargo build --workspace --exclude memory-sync-gui --release + cargo build --workspace --exclude croessweave-gui --release # CLI schema 与 npm 包装层 - pnpm -F @truenine/memory-sync-cli run build + pnpm -F @truenine/croessweave-cli run build ``` 此阶段产出: - - `sdk/src/native_logger.rs` → `dist/index.js` + `napi-memory-sync-cli.*.node` - - `sdk/src/md-compiler/dist/index.js` + `napi-memory-sync-cli.*.node` - - `sdk/src/libraries/script-runtime/dist/index.js` + `napi-memory-sync-cli.*.node` + - `sdk/src/native_logger.rs` → `dist/index.js` + `napi-croessweave-cli.*.node` + - `sdk/src/md-compiler/dist/index.js` + `napi-croessweave-cli.*.node` + - `sdk/src/libraries/script-runtime/dist/index.js` + `napi-croessweave-cli.*.node` ### Step 2: Rust Workspace 编译 编译 `tnmsd`、CLI、MCP server 与 GUI 对应的 Rust crate: ```bash - cargo build --workspace --exclude memory-sync-gui --release + cargo build --workspace --exclude croessweave-gui --release ``` 此步骤会: @@ -349,7 +349,7 @@ SDK 的构建是一个多阶段的有序流水线,从 Rust 源码到最终的 由 CLI crate 负责 schema 导出与 npm 子包装配: ```bash - pnpm -F @truenine/memory-sync-cli run build + pnpm -F @truenine/croessweave-cli run build ``` ### Step 4: GUI / Docs 前端构建 @@ -375,7 +375,7 @@ SDK 的构建是一个多阶段的有序流水线,从 Rust 源码到最终的 ### 目录树 ``` -memory-sync/ +croessweave/ ├── sdk/ # 私有混合核心 │ ├── src/ │ │ ├── index.ts # 公共 API 入口 diff --git a/doc/content/sdk/index.mdx b/doc/content/sdk/index.mdx index 3c27f4ee..61101b9f 100644 --- a/doc/content/sdk/index.mdx +++ b/doc/content/sdk/index.mdx @@ -13,7 +13,7 @@ import { Callout, Cards } from 'nextra/components' ## 这一层负责什么 -- 它包含私有 npm 包 `@truenine/memory-sync-sdk` +- 它包含私有 npm 包 `@truenine/croessweave-sdk` - 它包含 Rust crate `tnmsd` 的实际 workspace 路径 - 它负责 Rust crate `tnmsd` 的 facade、NAPI 构建、prompt service、schema 生成,以及最小化的 TypeScript loader 入口 - 它仍然承接少量过渡期 bridge 逻辑,但这些 bridge 路径已经退回到 `sdk/` 内部实现,不再是 `cli/` 的公共组合中心 @@ -23,7 +23,7 @@ import { Callout, Cards } from 'nextra/components' ## 这一层不负责什么 - 它不直接负责公共 npm CLI 的发布入口 -- 它不负责 `@truenine/memory-sync-cli-` 这类平台 shim 包的分发标识 +- 它不负责 `@truenine/croessweave-cli-` 这类平台 shim 包的分发标识 - 它不会把共享内部 API 再塞回 `cli/`,从而形成第二个事实来源 ## 保持不变的公共标识 @@ -31,8 +31,8 @@ import { Callout, Cards } from 'nextra/components' 这次分层调整没有改变下面这些公共标识: - CLI 二进制仍然是 `tnmsc` -- 公共 npm CLI 包仍然是 `@truenine/memory-sync-cli` -- 公共平台包仍然是 `@truenine/memory-sync-cli-` +- 公共 npm CLI 包仍然是 `@truenine/croessweave-cli` +- 公共平台包仍然是 `@truenine/croessweave-cli-` - Rust crate 名称现在是 `tnmsd` 变化的是路径和归属关系,而不是这些对外标识本身。 @@ -84,7 +84,7 @@ import { Callout, Cards } from 'nextra/components' | 消费者 | 依赖方式 | | --- | --- | | `cli/` | 一个对 `sdk/` 导出能力做轻量封装的 shell 和兼容层 | -| `mcp/` | 通过 `@truenine/memory-sync-sdk` 的最小 binding 访问 prompt 管理能力 | +| `mcp/` | 通过 `@truenine/croessweave-sdk` 的最小 binding 访问 prompt 管理能力 | | `gui/src-tauri` | 继续依赖 crate `tnmsd`,其实际路径现在位于 `sdk/` 下 | 消费者依赖方向是**单向**的:`cli/`、`mcp/`、`gui/` 都依赖 `sdk/`。在 `sdk/` 下游,MDX-Compiler 仍完整保留在 `sdk/`,而 Logger / Script-Runtime 已形成"`sdk/src/libraries/*` 作为 TypeScript 事实来源 + `sdk/*` 作为 Rust crate / wrapper 发布层"的边界。Library 之间的依赖为:MDX-Compiler → Logger;Logger 和 Script-Runtime 互不依赖。 @@ -99,7 +99,7 @@ import { Callout, Cards } from 'nextra/components' **最近更新** — 本次重构的主要成果: - **统一的 NAPI Binding 加载器**:将平台映射、候选路径探测、CLI 平台包扫描和错误聚合收敛到 `sdk/src/core/native-binding-loader.ts` -- **Logger / Script-Runtime 内联**:TypeScript facade 已迁入 `sdk/src/libraries/*`,公共包 `@truenine/memory-sync-sdk` 仅保留 wrapper 入口 +- **Logger / Script-Runtime 内联**:TypeScript facade 已迁入 `sdk/src/libraries/*`,公共包 `@truenine/croessweave-sdk` 仅保留 wrapper 入口 - **完整的技术文档体系**:新增 4 个文档页面(Logger、MDX-Compiler、Script-Runtime、架构总览),覆盖 API 参考、架构图、使用示例和最佳实践 - **标准化的包配置和构建流程**:三个 library 统一收敛到共享加载器 + 包级验证/适配层的职责分工,构建脚本支持增量缓存 diff --git a/doc/content/sdk/logger/index.mdx b/doc/content/sdk/logger/index.mdx index b0272b57..433b7bf9 100644 --- a/doc/content/sdk/logger/index.mdx +++ b/doc/content/sdk/logger/index.mdx @@ -11,14 +11,14 @@ import { Callout, Cards, Tabs } from 'nextra/components' **包信息** -- **npm 包名**: `@truenine/memory-sync-sdk` +- **npm 包名**: `@truenine/croessweave-sdk` - **Rust crate**: `tnmsd` - **Rust 源码位置**: `sdk/src/native_logger.rs` - **TypeScript facade**: `sdk/src/libraries/logger.ts` - **核心文件**: `sdk/src/native_logger.rs` (Rust 核心) · `sdk/src/libraries/logger.ts` (TypeScript facade) -Logger 是一个 **Rust 驱动的 AI 友好型 Markdown 日志库**,专为 memory-sync 运行时设计。它将日志输出格式化为结构化 Markdown(`###` 标题 + 列表),使终端输出对人类可读的同时也能被 AI 工具高效解析。 +Logger 是一个 **Rust 驱动的 AI 友好型 Markdown 日志库**,专为 croessweave 运行时设计。它将日志输出格式化为结构化 Markdown(`###` 标题 + 列表),使终端输出对人类可读的同时也能被 AI 工具高效解析。 ## 核心特性 @@ -91,7 +91,7 @@ graph TB ```ts -import { createLogger } from '@truenine/memory-sync-sdk' +import { createLogger } from '@truenine/croessweave-sdk' const logger = createLogger('my-namespace') const debugLogger = createLogger('my-namespace', 'debug') @@ -347,7 +347,7 @@ Logger 的 TypeScript facade 已迁到 `sdk/src/libraries/logger.ts`,该文件 演示 info、debug、trace 三种普通日志的使用方式: ```ts -import { createLogger } from '@truenine/memory-sync-sdk' +import { createLogger } from '@truenine/croessweave-sdk' const logger = createLogger('example-app') @@ -376,7 +376,7 @@ logger.trace('进入函数', { fn: 'processRequest', args: ['req', 'res'] }) 演示 error、warn、fatal 三种结构化诊断日志: ```ts -import { createLogger } from '@truenine/memory-sync-sdk' +import { createLogger } from '@truenine/croessweave-sdk' const logger = createLogger('config-loader') @@ -452,7 +452,7 @@ import { clearBufferedDiagnostics, drainBufferedDiagnostics, flushOutput -} from '@truenine/memory-sync-sdk' +} from '@truenine/croessweave-sdk' // 1. 设置全局级别为 warn — 只显示 error/warn/fatal setGlobalLogLevel('warn') diff --git a/doc/content/sdk/md-compiler/index.mdx b/doc/content/sdk/md-compiler/index.mdx index 3002334f..9c79f701 100644 --- a/doc/content/sdk/md-compiler/index.mdx +++ b/doc/content/sdk/md-compiler/index.mdx @@ -10,14 +10,14 @@ import { Callout, Cards, Steps, Tabs } from 'nextra/components' # MDX-Compiler 编译器 - **包标识**: `@truenine/memory-sync-sdk` (npm) / `tnmsd` (Rust crate) + **包标识**: `@truenine/croessweave-sdk` (npm) / `tnmsd` (Rust crate) **源码位置**: `sdk/src/md-compiler/` **导出入口**: `src/index.ts` ## 概述 -MDX-Compiler 是 memory-sync monorepo 中的 **Rust-first MDX/Markdown 编译与转换引擎**。它负责将 MDX 源码编译为纯 Markdown 文本,同时提供表达式求值、JSX 组件处理、导出元数据提取以及 TOML artifact 构建等核心能力。 +MDX-Compiler 是 croessweave monorepo 中的 **Rust-first MDX/Markdown 编译与转换引擎**。它负责将 MDX 源码编译为纯 Markdown 文本,同时提供表达式求值、JSX 组件处理、导出元数据提取以及 TOML artifact 构建等核心能力。 ### 核心能力 @@ -39,7 +39,7 @@ MDX-Compiler 当前采用 **Native-first 入口 + TypeScript 参考实现** 的 运行时入口通过 `native-binding.ts` 中的 `getNapiMdCompilerBinding()` 接入 `sdk/src/core/native-binding-loader.ts`: - 优先加载平台匹配的 `.node` 二进制文件 -- 支持从 CLI binary package (`@truenine/memory-sync-cli-`) 中提取 binding +- 支持从 CLI binary package (`@truenine/croessweave-cli-`) 中提取 binding - `TNMSC_DISABLE_NATIVE_BINDING=1` 会让公共入口快速失败,用于验证缺失 native binding 的错误路径 @@ -421,7 +421,7 @@ interface MdxGlobalScope { 库提供了三组工具名称预设,适配不同的 AI 工具环境: ```typescript -import { ToolPresets } from '@truenine/memory-sync-sdk/globals' +import { ToolPresets } from '@truenine/croessweave-sdk/globals' // 默认预设 (snake_case) ToolPresets.default @@ -443,7 +443,7 @@ ToolPresets.kiro 最简单的用法——传入 MDX 字符串,获取编译后的 Markdown: ```typescript -import { mdxToMd } from '@truenine/memory-sync-sdk' +import { mdxToMd } from '@truenine/croessweave-sdk' const mdxSource = ` # Hello MDX @@ -477,7 +477,7 @@ console.log(markdown) 使用自定义作用域、全局作用域和文件路径进行编译: ```typescript -import { mdxToMd, MdxToMdOptions } from '@truenine/memory-sync-sdk' +import { mdxToMd, MdxToMdOptions } from '@truenine/croessweave-sdk' const mdxSource = ` # Profile Page @@ -526,7 +526,7 @@ console.log(result.metadata) 构建用于 AI Prompt 的结构化 TOML 文档: ```typescript -import { mdxToMd, buildPromptTomlArtifact } from '@truenine/memory-sync-sdk' +import { mdxToMd, buildPromptTomlArtifact } from '@truenine/croessweave-sdk' const promptContent = ` # System Prompt @@ -587,7 +587,7 @@ console.log(tomlOutput) 从 MDX 的 `export` 语句中提取结构化元数据: ```typescript -import { mdxToMd } from '@truenine/memory-sync-sdk' +import { mdxToMd } from '@truenine/croessweave-sdk' const mdxWithExports = ` --- @@ -649,7 +649,7 @@ import { type MdxJsxFlowElement, type ProcessingContext, type RootContent -} from '@truenine/memory-sync-sdk' +} from '@truenine/croessweave-sdk' // 定义一个 组件 const alertHandler: ComponentHandler = async ( @@ -852,7 +852,7 @@ import { ExportParseError, MetadataValidationError, formatCompilerDiagnostic -} from '@truenine/memory-sync-sdk' +} from '@truenine/croessweave-sdk' try { const result = await mdxToMd(mdxSource, { filePath: '/path/to/file.mdx', extractMetadata: true }) @@ -878,7 +878,7 @@ try { ### 类型导出速查 -以下是 `@truenine/memory-sync-sdk` 的完整公共类型导出清单: +以下是 `@truenine/croessweave-sdk` 的完整公共类型导出清单: ```typescript // ===== 核心类型 (来自 types.ts) ===== diff --git a/doc/content/sdk/script-runtime/index.mdx b/doc/content/sdk/script-runtime/index.mdx index 0f9a5892..9f8d595b 100644 --- a/doc/content/sdk/script-runtime/index.mdx +++ b/doc/content/sdk/script-runtime/index.mdx @@ -10,7 +10,7 @@ import { Callout, Cards, Steps, Tabs } from 'nextra/components' # Script-Runtime -**包名**: `@truenine/memory-sync-sdk`  |  **Rust Crate**: `tnmsc`  |  **Rust 源码位置**: `sdk/src/native_script_runtime.rs`  |  **TypeScript facade**: `sdk/src/libraries/script-runtime/` +**包名**: `@truenine/croessweave-sdk`  |  **Rust Crate**: `tnmsc`  |  **Rust 源码位置**: `sdk/src/native_script_runtime.rs`  |  **TypeScript facade**: `sdk/src/libraries/script-runtime/` Script-Runtime 是一个 **Rust 支持的 TypeScript 代理模块加载器和路径验证运行时**,为 `tnmsc` 核心系统提供安全的动态模块代理与公共路径解析能力。它通过 NAPI 将 Rust 原生的高性能路径验证逻辑暴露给 Node.js 层,同时利用 Jiti 运行时实现灵活的代理模块加载与执行。 @@ -89,7 +89,7 @@ import { resolvePublicPath, resolvePublicPathUnchecked, getProxyModuleConfig -} from '@truenine/memory-sync-sdk' +} from '@truenine/croessweave-sdk' ``` --- @@ -354,7 +354,7 @@ Script-Runtime 支持两种代理定义方式: ```typescript // proxy.ts - 函数式定义 -import {defineProxy} from '@truenine/memory-sync-sdk' +import {defineProxy} from '@truenine/croessweave-sdk' import {join} from 'node:path' export default defineProxy((logicalPath: string, ctx: ProxyContext) => { @@ -365,7 +365,7 @@ export default defineProxy((logicalPath: string, ctx: ProxyContext) => { ```typescript // proxy.ts - 对象式定义 -import {defineProxy, type ProxyDefinition} from '@truenine/memory-sync-sdk' +import {defineProxy, type ProxyDefinition} from '@truenine/croessweave-sdk' import {join} from 'node:path' const proxy: ProxyDefinition = { @@ -644,7 +644,7 @@ LR ```typescript // project/proxy.ts -import {defineProxy, type ProxyRouteHandler} from '@truenine/memory-sync-sdk' +import {defineProxy, type ProxyRouteHandler} from '@truenine/croessweave-sdk' const handler: ProxyRouteHandler = (logicalPath) => { // 简单的前缀映射 @@ -657,7 +657,7 @@ export default defineProxy(handler) ### 示例 2: 加载和使用外部代理 ```typescript -import {loadProxyModule, getProxyModuleConfig} from '@truenine/memory-sync-sdk' +import {loadProxyModule, getProxyModuleConfig} from '@truenine/croessweave-sdk' async function useExternalProxy(proxyPath: string) { // 加载代理模块 @@ -686,7 +686,7 @@ useExternalProxy('./project/proxy.ts') ### 示例 3: 公共路径验证 ```typescript -import {validatePublicPath} from '@truenine/memory-sync-sdk' +import {validatePublicPath} from '@truenine/croessweave-sdk' const options = {aindexPublicDir: '/workspace/.aindex/public'} @@ -719,7 +719,7 @@ try { ### 示例 4: 带上下文的路径解析 ```typescript -import {resolvePublicPath} from '@truenine/memory-sync-sdk' +import {resolvePublicPath} from '@truenine/croessweave-sdk' const ctx = { cwd: '/home/user/project', @@ -757,7 +757,7 @@ import { type ProxyRouteHandler, type ProxyContext, type ProxyModuleConfig -} from '@truenine/memory-sync-sdk' +} from '@truenine/croessweave-sdk' import {join, extname} from 'node:path' /** @@ -813,7 +813,7 @@ export const config: ProxyModuleConfig = { **消费端使用:** ```typescript -import {resolvePublicPath, loadProxyModule, getProxyModuleConfig} from '@truenine/memory-sync-sdk' +import {resolvePublicPath, loadProxyModule, getProxyModuleConfig} from '@truenine/croessweave-sdk' async function demonstrateFullProxy() { const ctx = { @@ -864,7 +864,7 @@ project/ ### 错误处理和超时配置 ```typescript -import {resolvePublicPath, loadProxyModule} from '@truenine/memory-sync-sdk' +import {resolvePublicPath, loadProxyModule} from '@truenine/croessweave-sdk' class ProxyResolutionError extends Error { constructor( @@ -933,13 +933,13 @@ async function safeResolve( ```typescript // ❌ 错误:直接使用 unchecked 结果访问文件系统 import {readFile} from 'node:fs/promises' -import {resolvePublicPathUnchecked} from '@truenine/memory-sync-sdk' +import {resolvePublicPathUnchecked} from '@truenine/croessweave-sdk' const unsafePath = await resolvePublicPathUnchecked(proxyPath, ctx, userInput) const content = await readFile(unsafePath, 'utf8') // 危险!未经验证 // ✅ 正确:始终经过验证 -import {resolvePublicPath} from '@truenine/memory-sync-sdk' +import {resolvePublicPath} from '@truenine/croessweave-sdk' import {readFile} from 'node:fs/promises' const safePath = resolvePublicPath(proxyPath, ctx, userInput) // 含 Rust 验证 @@ -991,7 +991,7 @@ graph TB ProxyTS["proxy.ts
(用户编写)"] end - subgraph ScriptRuntimeAPI["@truenine/memory-sync-sdk"] + subgraph ScriptRuntimeAPI["@truenine/croessweave-sdk"] direction TB PublicAPI["公开 API
defineProxy / loadProxyModule
validatePublicPath / resolvePublicPath"] diff --git a/doc/content/technical-details/documentation-components.mdx b/doc/content/technical-details/documentation-components.mdx index 80d2a17d..c916fbef 100644 --- a/doc/content/technical-details/documentation-components.mdx +++ b/doc/content/technical-details/documentation-components.mdx @@ -12,7 +12,7 @@ status: stable ## 1. 多工具能力矩阵 Linux musl / Alpine is not covered by the published npm native binaries yet. ``` diff --git a/doc/content/technical-details/libraries.mdx b/doc/content/technical-details/libraries.mdx index aedf347b..8961b98d 100644 --- a/doc/content/technical-details/libraries.mdx +++ b/doc/content/technical-details/libraries.mdx @@ -24,7 +24,7 @@ import { Callout, Cards } from 'nextra/components' - `sdk/src/sdk/logger.ts` 与 `sdk/src/sdk/src/sdk/script-runtime/` 已成为对应 TypeScript facade 的事实来源 - `sdk/src/md-compiler/` 仍保留完整的 Rust + TypeScript 实现 -这三个 Rust-first / NAPI-first 基础能力继续作为 memory-sync 工具链的共享基础设施,被 `sdk/` 核心层编排后统一暴露给 `cli/`、`mcp/` 和 `gui/` 消费。 +这三个 Rust-first / NAPI-first 基础能力继续作为 croessweave 工具链的共享基础设施,被 `sdk/` 核心层编排后统一暴露给 `cli/`、`mcp/` 和 `gui/` 消费。 最近的优化工作包括:统一 NAPI 加载器实现、将 Logger / Script-Runtime 的 TypeScript facade 内联回 `sdk/`、标准化配置接口,以及将分散的技术文档收敛到 [SDK 文档体系](/docs/sdk) 以提升可维护性。 diff --git a/doc/content/technical-details/source-of-truth.mdx b/doc/content/technical-details/source-of-truth.mdx index ff8aa9e8..0192ff40 100644 --- a/doc/content/technical-details/source-of-truth.mdx +++ b/doc/content/technical-details/source-of-truth.mdx @@ -7,7 +7,7 @@ status: stable # 单一事实来源 -`memory-sync` 的核心前提是:事实来源应该是你维护的输入资产,而不是目标工具消费的派生文件。 +`croessweave` 的核心前提是:事实来源应该是你维护的输入资产,而不是目标工具消费的派生文件。 ## 通常什么是事实来源 diff --git a/doc/content/technical-details/subagents.mdx b/doc/content/technical-details/subagents.mdx index cb0d0ea5..80f57ee1 100644 --- a/doc/content/technical-details/subagents.mdx +++ b/doc/content/technical-details/subagents.mdx @@ -1,6 +1,6 @@ --- title: 子代理 -description: 说明 subagents 作为 memory-sync 输入资产时所承担的角色,以及它们的命名约束。 +description: 说明 subagents 作为 croessweave 输入资产时所承担的角色,以及它们的命名约束。 sidebarTitle: 子代理 status: stable --- diff --git a/doc/lib/site.ts b/doc/lib/site.ts index d57ba501..6df75910 100644 --- a/doc/lib/site.ts +++ b/doc/lib/site.ts @@ -1,14 +1,14 @@ import process from 'node:process' export const siteConfig = { - productName: 'memory-sync', - shortName: 'memory-sync Docs', - title: 'memory-sync Docs', + productName: 'croessweave', + shortName: 'croessweave Docs', + title: 'croessweave Docs', description: - 'Documentation for memory-sync: prompts, rules, skills, commands, and project memory sync across multiple AI tools.', - repoUrl: 'https://github.com/TrueNine/memory-sync', - docsRepositoryBase: 'https://github.com/TrueNine/memory-sync/blob/main/doc', - issueUrl: 'https://github.com/TrueNine/memory-sync/issues/new/choose' + 'Documentation for croessweave: prompts, rules, skills, commands, and project croessweave across multiple AI tools.', + repoUrl: 'https://github.com/TrueNine/croessweave', + docsRepositoryBase: 'https://github.com/TrueNine/croessweave/blob/main/doc', + issueUrl: 'https://github.com/TrueNine/croessweave/issues/new/choose' } as const function normalizeBasePath(rawBasePath: string | undefined): string { diff --git a/doc/next.config.ts b/doc/next.config.ts index 850b3307..13053032 100644 --- a/doc/next.config.ts +++ b/doc/next.config.ts @@ -80,7 +80,7 @@ const nextConfig: NextConfig = { basePath: docsBasePath }, env: { - NEXT_PUBLIC_MEMORY_SYNC_VERSION: docsVersion, + NEXT_PUBLIC_CROESSWEAVE_VERSION: docsVersion, NEXT_PUBLIC_DOCS_BASE_PATH: docsBasePath }, reactStrictMode: true, diff --git a/doc/package.json b/doc/package.json index 30dbd1cb..e60451e7 100644 --- a/doc/package.json +++ b/doc/package.json @@ -1,9 +1,9 @@ { - "name": "@truenine/memory-sync-docs", + "name": "@truenine/croessweave-docs", "version": "2026.10806.0", "private": true, "packageManager": "pnpm@11.18.0", - "description": "Chinese-first manifesto-led documentation site for @truenine/memory-sync.", + "description": "Chinese-first manifesto-led documentation site for @truenine/croessweave.", "engines": { "node": ">=22" }, diff --git a/doc/scripts/validate-content.ts b/doc/scripts/validate-content.ts index 3ec4b406..73672d90 100644 --- a/doc/scripts/validate-content.ts +++ b/doc/scripts/validate-content.ts @@ -87,7 +87,7 @@ function resolveLinkTarget(currentRoute: string, href: string): string | null { if (href.startsWith('/')) return normalizeRoute(href) const base = currentRoute.endsWith('/') ? currentRoute : `${currentRoute}/` - return normalizeRoute(new URL(href, `https://memory-sync.local${base}`).pathname) + return normalizeRoute(new URL(href, `https://croessweave.local${base}`).pathname) } function extractYamlFrontMatter(content: string): Record | null { diff --git a/gui/index.html b/gui/index.html index ed59c912..566526d9 100644 --- a/gui/index.html +++ b/gui/index.html @@ -3,7 +3,7 @@ - Memory Sync + Croessweave
diff --git a/gui/package.json b/gui/package.json index f9cbcb80..4563af62 100644 --- a/gui/package.json +++ b/gui/package.json @@ -1,5 +1,5 @@ { - "name": "@truenine/memory-sync-gui", + "name": "@truenine/croessweave-gui", "version": "2026.10806.0", "private": true, "engines": { diff --git a/gui/src-tauri/Cargo.lock b/gui/src-tauri/Cargo.lock index 608b34e9..2135feb3 100644 --- a/gui/src-tauri/Cargo.lock +++ b/gui/src-tauri/Cargo.lock @@ -1773,7 +1773,7 @@ dependencies = [ ] [[package]] -name = "memory-sync-gui" +name = "croessweave-gui" version = "2026.10412.11551" dependencies = [ "dirs", diff --git a/gui/src-tauri/Cargo.toml b/gui/src-tauri/Cargo.toml index f159e868..feeae3d0 100644 --- a/gui/src-tauri/Cargo.toml +++ b/gui/src-tauri/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "tnmsg" version = "2026.10806.0" -description = "Memory Sync desktop GUI application" +description = "Croessweave desktop GUI application" authors.workspace = true edition.workspace = true rust-version = "1.93.1" diff --git a/gui/src-tauri/capabilities/default.json b/gui/src-tauri/capabilities/default.json index d021e604..42662ae5 100644 --- a/gui/src-tauri/capabilities/default.json +++ b/gui/src-tauri/capabilities/default.json @@ -1,7 +1,7 @@ { "$schema": "../gen/schemas/desktop-schema.json", "identifier": "default", - "description": "Capability for the main window of Memory Sync", + "description": "Capability for the main window of Croessweave", "windows": ["main"], "permissions": [ "core:default", diff --git a/gui/src-tauri/src/commands.rs b/gui/src-tauri/src/commands.rs index d2fe2c3c..32dcf2c3 100644 --- a/gui/src-tauri/src/commands.rs +++ b/gui/src-tauri/src/commands.rs @@ -78,7 +78,7 @@ pub struct LogEntry { #[tauri::command] pub fn install_pipeline(cwd: String, dry_run: bool) -> Result { let command_name = if dry_run { "dry-run" } else { "install" }; - let options = tnmsd::MemorySyncCommandOptions { + let options = tnmsd::CroessweaveCommandOptions { cwd: Some(cwd), ..Default::default() }; @@ -103,7 +103,7 @@ pub fn load_config(cwd: String) -> Result { #[tauri::command] pub fn clean_outputs(cwd: String, dry_run: bool) -> Result { let command_name = if dry_run { "dry-run-clean" } else { "clean" }; - let result = tnmsd::clean(tnmsd::MemorySyncCommandOptions { + let result = tnmsd::clean(tnmsd::CroessweaveCommandOptions { cwd: Some(cwd), dry_run: Some(dry_run), ..Default::default() @@ -123,7 +123,7 @@ pub fn get_logs(_cwd: String, _command: String) -> Result, String> } fn to_pipeline_result( - result: &tnmsd::MemorySyncCommandResult, + result: &tnmsd::CroessweaveCommandResult, command: &str, dry_run: bool, ) -> PipelineResult { @@ -139,7 +139,7 @@ fn to_pipeline_result( } } -fn collect_result_errors(result: &tnmsd::MemorySyncCommandResult) -> Vec { +fn collect_result_errors(result: &tnmsd::CroessweaveCommandResult) -> Vec { let mut messages = Vec::new(); if let Some(message) = result.message.as_ref() diff --git a/gui/src-tauri/src/lib.rs b/gui/src-tauri/src/lib.rs index 9b662cc6..c07a42bb 100644 --- a/gui/src-tauri/src/lib.rs +++ b/gui/src-tauri/src/lib.rs @@ -1,4 +1,4 @@ -/// Memory Sync Tauri application entry point. +/// Croessweave Tauri application entry point. pub mod commands; mod tray; diff --git a/gui/src-tauri/src/tray.rs b/gui/src-tauri/src/tray.rs index 8c9267c4..0ee709fc 100644 --- a/gui/src-tauri/src/tray.rs +++ b/gui/src-tauri/src/tray.rs @@ -1,4 +1,4 @@ -/// System tray integration for the Memory Sync desktop application. +/// System tray integration for the Croessweave desktop application. /// /// Creates a tray icon with a context menu containing three actions: /// - **Install** (`install`): Triggers pipeline execution. Currently shows diff --git a/gui/src-tauri/tauri.conf.json b/gui/src-tauri/tauri.conf.json index 27423af0..d3c4ef04 100644 --- a/gui/src-tauri/tauri.conf.json +++ b/gui/src-tauri/tauri.conf.json @@ -1,8 +1,8 @@ { "$schema": "https://schema.tauri.app/config/2", "version": "2026.10806.0", - "productName": "Memory Sync", - "identifier": "org.truenine.memory-sync", + "productName": "Croessweave", + "identifier": "org.truenine.croessweave", "build": { "frontendDist": "../dist", "devUrl": "http://localhost:5173", @@ -13,7 +13,7 @@ "withGlobalTauri": false, "windows": [ { - "title": "Memory Sync", + "title": "Croessweave", "width": 1024, "height": 768, "resizable": true, @@ -48,7 +48,7 @@ "updater": { "active": true, "endpoints": [ - "https://releases.truenine.org/memory-sync/{{target}}/{{arch}}/{{current_version}}" + "https://releases.truenine.org/croessweave/{{target}}/{{arch}}/{{current_version}}" ], "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDNFQzM2Qjc0MEVCNUY2ODAKUldTQTlyVU9kR3ZEUGpRUDQ3OUF4VE1XcjZGYjJwNjhwYmYwQVZmTmgzQjRKMjVrUExmOVdsd2YK" } diff --git a/gui/src/i18n/en-US.json b/gui/src/i18n/en-US.json index 44a18c95..7df1d4c6 100644 --- a/gui/src/i18n/en-US.json +++ b/gui/src/i18n/en-US.json @@ -1,5 +1,5 @@ { - "app.title": "Memory Sync", + "app.title": "Croessweave", "nav.dashboard": "Dashboard", "nav.pipeline": "Pipeline", "nav.config": "Configuration", diff --git a/gui/src/i18n/zh-CN.json b/gui/src/i18n/zh-CN.json index 3bee9bc2..91fa6429 100644 --- a/gui/src/i18n/zh-CN.json +++ b/gui/src/i18n/zh-CN.json @@ -1,5 +1,5 @@ { - "app.title": "Memory Sync", + "app.title": "Croessweave", "nav.dashboard": "仪表盘", "nav.pipeline": "管道执行", "nav.config": "配置管理", diff --git a/mcp/Cargo.toml b/mcp/Cargo.toml index 7b4c3365..7b24ba00 100644 --- a/mcp/Cargo.toml +++ b/mcp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tnmsm" -description = "MCP stdio server for managing memory-sync prompt sources and translation artifacts" +description = "MCP stdio server for managing croessweave prompt sources and translation artifacts" version.workspace = true edition.workspace = true rust-version.workspace = true diff --git a/mcp/bin/tnmsm.js b/mcp/bin/tnmsm.js index 8f6bb584..d26ee92e 100644 --- a/mcp/bin/tnmsm.js +++ b/mcp/bin/tnmsm.js @@ -5,7 +5,7 @@ const {spawnSync} = require('node:child_process'); const fs = require('node:fs'); const path = require('node:path'); -const PACKAGE_NAME = '@truenine/memory-sync-mcp'; +const PACKAGE_NAME = '@truenine/croessweave-mcp'; const BINARY_NAME = 'tnmsm'; const SUPPORTED_TARGETS = [ 'linux-x64-gnu', @@ -17,15 +17,15 @@ const SUPPORTED_TARGETS = [ const PLATFORM_PACKAGES = { darwin: { - arm64: '@truenine/memory-sync-mcp-darwin-arm64', - x64: '@truenine/memory-sync-mcp-darwin-x64', + arm64: '@truenine/croessweave-mcp-darwin-arm64', + x64: '@truenine/croessweave-mcp-darwin-x64', }, linux: { - arm64: '@truenine/memory-sync-mcp-linux-arm64-gnu', - x64: '@truenine/memory-sync-mcp-linux-x64-gnu', + arm64: '@truenine/croessweave-mcp-linux-arm64-gnu', + x64: '@truenine/croessweave-mcp-linux-x64-gnu', }, win32: { - x64: '@truenine/memory-sync-mcp-win32-x64-msvc', + x64: '@truenine/croessweave-mcp-win32-x64-msvc', }, }; diff --git a/mcp/integrate-tests/tests/packaging_smoke.rs b/mcp/integrate-tests/tests/packaging_smoke.rs index bad8059b..ead0c81a 100644 --- a/mcp/integrate-tests/tests/packaging_smoke.rs +++ b/mcp/integrate-tests/tests/packaging_smoke.rs @@ -57,7 +57,7 @@ fn packaging_smoke_covers_release_binary_and_global_install() { for expected in [ "\"jsonrpc\":\"2.0\"", "\"protocolVersion\":\"2024-11-05\"", - "\"name\":\"@truenine/memory-sync-mcp\"", + "\"name\":\"@truenine/croessweave-mcp\"", ] { assert!( initialize.stdout.contains(expected), @@ -68,8 +68,8 @@ fn packaging_smoke_covers_release_binary_and_global_install() { container.exec_success( r#" -MAIN_PACKAGE_JSON="$(find -L /pnpm/global -path '*/@truenine/memory-sync-mcp/package.json' -print -quit)" -PLATFORM_PACKAGE_JSON="$(find -L /pnpm/global -path '*/@truenine/memory-sync-mcp-linux-x64-gnu/package.json' -print -quit)" +MAIN_PACKAGE_JSON="$(find -L /pnpm/global -path '*/@truenine/croessweave-mcp/package.json' -print -quit)" +PLATFORM_PACKAGE_JSON="$(find -L /pnpm/global -path '*/@truenine/croessweave-mcp-linux-x64-gnu/package.json' -print -quit)" test -n "$MAIN_PACKAGE_JSON" test -n "$PLATFORM_PACKAGE_JSON" test -f "$(dirname "$MAIN_PACKAGE_JSON")/bin/tnmsm.js" diff --git a/mcp/npm/darwin-arm64/package.json b/mcp/npm/darwin-arm64/package.json index c216c0bd..72d989f0 100644 --- a/mcp/npm/darwin-arm64/package.json +++ b/mcp/npm/darwin-arm64/package.json @@ -1,5 +1,5 @@ { - "name": "@truenine/memory-sync-mcp-darwin-arm64", + "name": "@truenine/croessweave-mcp-darwin-arm64", "version": "2026.10806.0", "description": "tnmsm native binary for macOS arm64", "author": "TrueNine", diff --git a/mcp/npm/darwin-x64/package.json b/mcp/npm/darwin-x64/package.json index d57bb305..416cfcf6 100644 --- a/mcp/npm/darwin-x64/package.json +++ b/mcp/npm/darwin-x64/package.json @@ -1,5 +1,5 @@ { - "name": "@truenine/memory-sync-mcp-darwin-x64", + "name": "@truenine/croessweave-mcp-darwin-x64", "version": "2026.10806.0", "description": "tnmsm native binary for macOS x64", "author": "TrueNine", diff --git a/mcp/npm/linux-arm64-gnu/package.json b/mcp/npm/linux-arm64-gnu/package.json index d73017e7..53beb6a8 100644 --- a/mcp/npm/linux-arm64-gnu/package.json +++ b/mcp/npm/linux-arm64-gnu/package.json @@ -1,5 +1,5 @@ { - "name": "@truenine/memory-sync-mcp-linux-arm64-gnu", + "name": "@truenine/croessweave-mcp-linux-arm64-gnu", "version": "2026.10806.0", "description": "tnmsm native binary for Linux arm64 (glibc)", "author": "TrueNine", diff --git a/mcp/npm/linux-x64-gnu/package.json b/mcp/npm/linux-x64-gnu/package.json index 9e86dc6e..78f43c42 100644 --- a/mcp/npm/linux-x64-gnu/package.json +++ b/mcp/npm/linux-x64-gnu/package.json @@ -1,5 +1,5 @@ { - "name": "@truenine/memory-sync-mcp-linux-x64-gnu", + "name": "@truenine/croessweave-mcp-linux-x64-gnu", "version": "2026.10806.0", "description": "tnmsm native binary for Linux x64 (glibc)", "author": "TrueNine", diff --git a/mcp/npm/win32-x64-msvc/package.json b/mcp/npm/win32-x64-msvc/package.json index 2dad886f..47c66ce7 100644 --- a/mcp/npm/win32-x64-msvc/package.json +++ b/mcp/npm/win32-x64-msvc/package.json @@ -1,5 +1,5 @@ { - "name": "@truenine/memory-sync-mcp-win32-x64-msvc", + "name": "@truenine/croessweave-mcp-win32-x64-msvc", "version": "2026.10806.0", "description": "tnmsm native binary for Windows x64", "author": "TrueNine", diff --git a/mcp/package.json b/mcp/package.json index 486001b6..c744aab0 100644 --- a/mcp/package.json +++ b/mcp/package.json @@ -1,13 +1,13 @@ { - "name": "@truenine/memory-sync-mcp", + "name": "@truenine/croessweave-mcp", "version": "2026.10806.0", - "description": "TrueNine Memory Sync MCP metadata package", + "description": "TrueNine Croessweave MCP metadata package", "author": "TrueNine", "license": "AGPL-3.0-only", - "homepage": "https://github.com/TrueNine/memory-sync", + "homepage": "https://github.com/TrueNine/croessweave", "repository": { "type": "git", - "url": "git+https://github.com/TrueNine/memory-sync.git", + "url": "git+https://github.com/TrueNine/croessweave.git", "directory": "mcp" }, "bin": { @@ -32,10 +32,10 @@ "test": "cargo test --manifest-path Cargo.toml" }, "optionalDependencies": { - "@truenine/memory-sync-mcp-darwin-arm64": "2026.10806.0", - "@truenine/memory-sync-mcp-darwin-x64": "2026.10806.0", - "@truenine/memory-sync-mcp-linux-arm64-gnu": "2026.10806.0", - "@truenine/memory-sync-mcp-linux-x64-gnu": "2026.10806.0", - "@truenine/memory-sync-mcp-win32-x64-msvc": "2026.10806.0" + "@truenine/croessweave-mcp-darwin-arm64": "2026.10806.0", + "@truenine/croessweave-mcp-darwin-x64": "2026.10806.0", + "@truenine/croessweave-mcp-linux-arm64-gnu": "2026.10806.0", + "@truenine/croessweave-mcp-linux-x64-gnu": "2026.10806.0", + "@truenine/croessweave-mcp-win32-x64-msvc": "2026.10806.0" } } diff --git a/mcp/src/cli.rs b/mcp/src/cli.rs index 1e8c9e89..46982152 100644 --- a/mcp/src/cli.rs +++ b/mcp/src/cli.rs @@ -6,7 +6,7 @@ use clap::{Args, Parser, Subcommand}; #[command( name = "tnmsm", version = env!("CARGO_PKG_VERSION"), - about = "Memory Sync MCP stdio server", + about = "Croessweave MCP stdio server", disable_help_subcommand = true, )] pub struct Cli { diff --git a/mcp/src/main.rs b/mcp/src/main.rs index a660f4fd..9baf4458 100644 --- a/mcp/src/main.rs +++ b/mcp/src/main.rs @@ -13,7 +13,7 @@ use tnmsd::{ use cli::{Cli, ResolvedCommand, resolve_command}; -const SERVER_NAME: &str = "@truenine/memory-sync-mcp"; +const SERVER_NAME: &str = "@truenine/croessweave-mcp"; const PROTOCOL_VERSION: &str = "2024-11-05"; fn build_service_options(args: &Value) -> PromptServiceOptions { diff --git a/package.json b/package.json index cdb231ba..96061019 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "@truenine/memory-sync", + "name": "@truenine/croessweave", "version": "2026.10806.0", "description": "Cross-AI-tool prompt synchronisation toolkit (CLI + Tauri desktop GUI) — one ruleset, multi-target adaptation. Monorepo powered by pnpm + Turbo.", "license": "AGPL-3.0-only", diff --git a/sdk/src/domain/base_output_plans.rs b/sdk/src/domain/base_output_plans.rs index 3407ee13..a87d76f7 100644 --- a/sdk/src/domain/base_output_plans.rs +++ b/sdk/src/domain/base_output_plans.rs @@ -736,7 +736,7 @@ mod tests { content: content.to_string(), length: content.len(), dir: create_relative_path(target_root, relative_dir), - project_name: "memory-sync".to_string(), + project_name: "croessweave".to_string(), target_dir: create_relative_path(target_root, relative_dir), is_root: relative_dir == ".", file_kind: file_kind.to_string(), @@ -956,7 +956,7 @@ mod tests { }; let workspace_dir = workspace_root(&temp_dir); let aindex_public = Path::new(&workspace_dir).join("aindex").join("public"); - let memory_sync_root = Path::new(&workspace_dir).join("memory-sync"); + let croessweave_root = Path::new(&workspace_dir).join("croessweave"); let context = OutputContext { workspace: Some(Workspace { @@ -966,7 +966,7 @@ mod tests { is_prompt_source_project: Some(true), ..create_project(&workspace_dir, "aindex") }, - create_project(&workspace_dir, "memory-sync"), + create_project(&workspace_dir, "croessweave"), ], }), editor_config_files: Some(vec![create_ide_config( @@ -1021,13 +1021,13 @@ mod tests { ]), readme_prompts: Some(vec![ create_readme_prompt( - &memory_sync_root.to_string_lossy(), + &croessweave_root.to_string_lossy(), ".", "Readme", "# README\n", ), create_readme_prompt( - &memory_sync_root.to_string_lossy(), + &croessweave_root.to_string_lossy(), ".", "CodeOfConduct", "# COC\n", @@ -1053,7 +1053,7 @@ mod tests { assert!(vscode_plan.output_files.iter().any(|entry| { entry.path == Path::new(&workspace_dir) - .join("memory-sync") + .join("croessweave") .join(".vscode") .join("extensions.json") .to_string_lossy() @@ -1073,7 +1073,7 @@ mod tests { assert!(jetbrains_plan.output_files.iter().any(|entry| { entry.path == Path::new(&workspace_dir) - .join("memory-sync") + .join("croessweave") .join(".idea") .join("codeStyles") .join("Project.xml") @@ -1089,18 +1089,18 @@ mod tests { let readme_plan = find_plan(&plans, README_PLUGIN_NAME); assert!(readme_plan.output_files.iter().any(|entry| { - entry.path == memory_sync_root.join("README.md").to_string_lossy() + entry.path == croessweave_root.join("README.md").to_string_lossy() && entry.content == "# README\n" })); assert!(readme_plan.output_files.iter().any(|entry| { entry.path - == memory_sync_root + == croessweave_root .join("CODE_OF_CONDUCT.md") .to_string_lossy() && entry.content == "# COC\n" })); assert!(readme_plan.output_files.iter().any(|entry| { - entry.path == memory_sync_root.join(".editorconfig").to_string_lossy() + entry.path == croessweave_root.join(".editorconfig").to_string_lossy() && entry.content == "root = true\n" })); } diff --git a/sdk/src/endpoint/clean.rs b/sdk/src/endpoint/clean.rs index 36086067..41f1dabc 100644 --- a/sdk/src/endpoint/clean.rs +++ b/sdk/src/endpoint/clean.rs @@ -1,6 +1,6 @@ -use super::{MemorySyncCommandOptions, MemorySyncCommandResult, SdkError}; +use super::{CroessweaveCommandOptions, CroessweaveCommandResult, SdkError}; use crate::services::clean_service::clean as svc_clean; -pub fn clean(options: MemorySyncCommandOptions) -> Result { +pub fn clean(options: CroessweaveCommandOptions) -> Result { svc_clean(options) } diff --git a/sdk/src/endpoint/dry_run.rs b/sdk/src/endpoint/dry_run.rs index 9cc98d4d..f7497404 100644 --- a/sdk/src/endpoint/dry_run.rs +++ b/sdk/src/endpoint/dry_run.rs @@ -1,6 +1,6 @@ -use super::{MemorySyncCommandOptions, MemorySyncCommandResult, SdkError}; +use super::{CroessweaveCommandOptions, CroessweaveCommandResult, SdkError}; use crate::services::dry_run_service::dry_run as svc_dry_run; -pub fn dry_run(options: MemorySyncCommandOptions) -> Result { +pub fn dry_run(options: CroessweaveCommandOptions) -> Result { svc_dry_run(options) } diff --git a/sdk/src/endpoint/install.rs b/sdk/src/endpoint/install.rs index dc8cbabe..21250b13 100644 --- a/sdk/src/endpoint/install.rs +++ b/sdk/src/endpoint/install.rs @@ -1,6 +1,6 @@ -use super::{MemorySyncCommandOptions, MemorySyncCommandResult, SdkError}; +use super::{CroessweaveCommandOptions, CroessweaveCommandResult, SdkError}; use crate::services::install_service::install as svc_install; -pub fn install(options: MemorySyncCommandOptions) -> Result { +pub fn install(options: CroessweaveCommandOptions) -> Result { svc_install(options) } diff --git a/sdk/src/endpoint/mod.rs b/sdk/src/endpoint/mod.rs index a823254c..f19a8e24 100644 --- a/sdk/src/endpoint/mod.rs +++ b/sdk/src/endpoint/mod.rs @@ -40,7 +40,7 @@ pub fn load_config(cwd: &Path) -> Result { #[derive(Debug, Clone, Default, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] -pub struct MemorySyncCommandOptions { +pub struct CroessweaveCommandOptions { #[serde(default, skip_serializing_if = "Option::is_none")] pub cwd: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -55,7 +55,7 @@ pub struct MemorySyncCommandOptions { #[derive(Debug, Clone, Default, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] -pub struct MemorySyncCommandResult { +pub struct CroessweaveCommandResult { pub success: bool, pub files_affected: i32, pub dirs_affected: i32, diff --git a/sdk/src/lib.rs b/sdk/src/lib.rs index 72e2ed10..d121c33d 100644 --- a/sdk/src/lib.rs +++ b/sdk/src/lib.rs @@ -7,7 +7,7 @@ pub mod repositories; pub mod services; pub use endpoint::{ - MemorySyncCommandOptions, MemorySyncCommandResult, SdkError, clean, dry_run, install, + CroessweaveCommandOptions, CroessweaveCommandResult, SdkError, clean, dry_run, install, load_config, version, }; diff --git a/sdk/src/services/clean_service.rs b/sdk/src/services/clean_service.rs index 0ef5b67e..7fc9eecb 100644 --- a/sdk/src/services/clean_service.rs +++ b/sdk/src/services/clean_service.rs @@ -14,12 +14,12 @@ use crate::services::common::{ DefaultPluginKind, EnabledPlugins, collect_context, load_config, resolve_cwd, resolve_workspace_dir, strip_unc_prefix, }; -use crate::{CliError, MemorySyncCommandOptions, MemorySyncCommandResult}; +use crate::{CliError, CroessweaveCommandOptions, CroessweaveCommandResult}; type CleanupOutputMap = HashMap>; type CleanupDeclarationMap = HashMap; -pub fn clean(options: MemorySyncCommandOptions) -> Result { +pub fn clean(options: CroessweaveCommandOptions) -> Result { let logger = create_logger( "clean", options @@ -131,7 +131,7 @@ pub fn clean(options: MemorySyncCommandOptions) -> Result Result Result { +pub fn dry_run(options: CroessweaveCommandOptions) -> Result { let logger = create_logger( "dry_run", options @@ -115,7 +115,7 @@ pub fn dry_run(options: MemorySyncCommandOptions) -> Result Result { + options: CroessweaveCommandOptions, +) -> Result { let logger = create_logger( "install", options @@ -119,7 +119,7 @@ pub(crate) fn install( })), ); - Ok(MemorySyncCommandResult { + Ok(CroessweaveCommandResult { success: execution.errors.is_empty(), files_affected: execution.files_affected as i32, dirs_affected: execution.dirs_affected as i32, diff --git a/xtask/src/main.rs b/xtask/src/main.rs index da8af99f..1ad9244a 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -2,9 +2,9 @@ use clap::{Parser, Subcommand}; use std::process::{Command as ProcCommand, Stdio}; #[derive(Parser)] -#[command(name = "memory-sync-xtask")] +#[command(name = "croessweave-xtask")] #[command(version = env!("CARGO_PKG_VERSION"))] -#[command(about = "Unified build entry for memory-sync workspace")] +#[command(about = "Unified build entry for croessweave workspace")] struct Cli { #[command(subcommand)] command: Command, @@ -111,7 +111,7 @@ fn run_hook_creation() -> Result<(), String> { let hooks_dir = format!("{}/hooks", git_dir_path); let hook_content = r#"#!/bin/sh -# Version sync hook - auto-installed by memory-sync-xtask +# Version sync hook - auto-installed by croessweave-xtask exec bun "$PWD/.githooks/sync-versions.ts" "$1" "#; From d05da3ffeb87b648bc243b20a4e61ab39d61011f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=97=A5=E5=A4=A9?= Date: Sun, 16 Aug 2026 02:54:30 +0800 Subject: [PATCH 11/11] refactor: rename tnmsop to croessweave-obsidian-plugin across the codebase --- .githooks/sync-versions.test.ts | 20 ++++++++++---------- .githooks/sync-versions.ts | 8 ++++---- .github/actions/setup-bun/action.yml | 2 +- .github/workflows/ci.yml | 10 +++++----- .github/workflows/release.yml | 6 +++--- .gitmodules | 6 +++--- README.md | 2 +- croessweave-obsidian-plugin | 1 + scripts/shared/check-version-surfaces.ts | 12 ++++++------ tnmsop | 1 - 10 files changed, 34 insertions(+), 34 deletions(-) create mode 160000 croessweave-obsidian-plugin delete mode 160000 tnmsop diff --git a/.githooks/sync-versions.test.ts b/.githooks/sync-versions.test.ts index 8c96b585..062ca2b6 100644 --- a/.githooks/sync-versions.test.ts +++ b/.githooks/sync-versions.test.ts @@ -56,7 +56,7 @@ function createFixtureRepo(): string { version: initialVersion, private: true }) - writeJson(join(rootDir, 'tnmsop', 'package.json'), { + writeJson(join(rootDir, 'croessweave-obsidian-plugin', 'package.json'), { name: 'tnmsop', version: initialVersion, private: true @@ -68,9 +68,9 @@ function createFixtureRepo(): string { minAppVersion: '1.0.0', isDesktopOnly: false } - writeJson(join(rootDir, 'tnmsop', 'manifest.json'), manifest) + writeJson(join(rootDir, 'croessweave-obsidian-plugin', 'manifest.json'), manifest) writeJson(join(rootDir, 'manifest.json'), manifest) - writeJson(join(rootDir, 'tnmsop', 'versions.json'), {[initialVersion]: '1.0.0'}) + writeJson(join(rootDir, 'croessweave-obsidian-plugin', 'versions.json'), {[initialVersion]: '1.0.0'}) writeJson(join(rootDir, 'versions.json'), {[initialVersion]: '1.0.0'}) writeJson(join(rootDir, 'cli', 'npm', 'darwin-arm64', 'package.json'), { name: '@truenine/croessweave-cli-darwin-arm64', @@ -148,19 +148,19 @@ function createFixtureRepo(): string { } function preparePluginRelease(rootDir: string, nextVersion: string): void { - writeJson(join(rootDir, 'tnmsop', 'package.json'), { + writeJson(join(rootDir, 'croessweave-obsidian-plugin', 'package.json'), { name: 'tnmsop', version: nextVersion, private: true }) - writeJson(join(rootDir, 'tnmsop', 'manifest.json'), { + writeJson(join(rootDir, 'croessweave-obsidian-plugin', 'manifest.json'), { id: 'tnmsop', name: 'TNMSOP', version: nextVersion, minAppVersion: '1.0.0', isDesktopOnly: false }) - writeJson(join(rootDir, 'tnmsop', 'versions.json'), { + writeJson(join(rootDir, 'croessweave-obsidian-plugin', 'versions.json'), { '2026.10324.10015': '1.0.0', [nextVersion]: '1.0.0' }) @@ -184,13 +184,13 @@ function expectSharedVersionSurfaces(rootDir: string, nextVersion: string): void }) expect(JSON.parse(readFileSync(join(rootDir, 'gui', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) expect(JSON.parse(readFileSync(join(rootDir, 'doc', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) - expect(JSON.parse(readFileSync(join(rootDir, 'tnmsop', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) - const pluginManifest = JSON.parse(readFileSync(join(rootDir, 'tnmsop', 'manifest.json'), 'utf-8')) as {version: string, minAppVersion: string} + expect(JSON.parse(readFileSync(join(rootDir, 'croessweave-obsidian-plugin', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) + const pluginManifest = JSON.parse(readFileSync(join(rootDir, 'croessweave-obsidian-plugin', 'manifest.json'), 'utf-8')) as {version: string, minAppVersion: string} expect(pluginManifest).toMatchObject({version: nextVersion, minAppVersion: '1.0.0'}) expect(JSON.parse(readFileSync(join(rootDir, 'manifest.json'), 'utf-8'))).toEqual(pluginManifest) - expect(JSON.parse(readFileSync(join(rootDir, 'tnmsop', 'versions.json'), 'utf-8'))).toMatchObject({[nextVersion]: '1.0.0'}) + expect(JSON.parse(readFileSync(join(rootDir, 'croessweave-obsidian-plugin', 'versions.json'), 'utf-8'))).toMatchObject({[nextVersion]: '1.0.0'}) expect(JSON.parse(readFileSync(join(rootDir, 'versions.json'), 'utf-8'))).toEqual( - JSON.parse(readFileSync(join(rootDir, 'tnmsop', 'versions.json'), 'utf-8')) + JSON.parse(readFileSync(join(rootDir, 'croessweave-obsidian-plugin', 'versions.json'), 'utf-8')) ) expect(JSON.parse(readFileSync(join(rootDir, 'cli', 'npm', 'darwin-arm64', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) expect(JSON.parse(readFileSync(join(rootDir, 'cli', 'npm', 'linux-x64-gnu', 'package.json'), 'utf-8')) as {version: string}).toMatchObject({version: nextVersion}) diff --git a/.githooks/sync-versions.ts b/.githooks/sync-versions.ts index 9c24a86c..50c2bc34 100644 --- a/.githooks/sync-versions.ts +++ b/.githooks/sync-versions.ts @@ -33,7 +33,7 @@ const IGNORED_DIRECTORIES = new Set([ 'coverage', 'dist', 'node_modules', - 'tnmsop', + 'croessweave-obsidian-plugin', 'target', ]) const CALVER_VERSION_REGEX = /^\d{4}\.(?:0|1\d{2}(?:\d{2})?)\.(?:0|1\d{2}(?:\d{2}(?:\d{2})?)?)$/u @@ -71,9 +71,9 @@ function syncObsidianReleaseMetadata( targetVersion: string, changedPaths: Set, ): void { - const pluginManifestPath = resolve(rootDir, 'tnmsop', 'manifest.json') + const pluginManifestPath = resolve(rootDir, 'croessweave-obsidian-plugin', 'manifest.json') const rootManifestPath = resolve(rootDir, 'manifest.json') - const pluginVersionsPath = resolve(rootDir, 'tnmsop', 'versions.json') + const pluginVersionsPath = resolve(rootDir, 'croessweave-obsidian-plugin', 'versions.json') const rootVersionsPath = resolve(rootDir, 'versions.json') const manifest = readJsonFile(pluginManifestPath) const minAppVersion = manifest.minAppVersion @@ -374,7 +374,7 @@ function getStagedVersionCandidates(rootDir: string, rootVersion: string): Map line.trim()) .filter(line => line.length > 0) .filter(filePath => { - if (filePath.startsWith('tnmsop/')) return false + if (filePath.startsWith('croessweave-obsidian-plugin/')) return false const name = basename(filePath) return name === 'package.json' || name === 'Cargo.toml' || name === 'tauri.conf.json' }) diff --git a/.github/actions/setup-bun/action.yml b/.github/actions/setup-bun/action.yml index 3e9e2af2..19c88be9 100644 --- a/.github/actions/setup-bun/action.yml +++ b/.github/actions/setup-bun/action.yml @@ -13,7 +13,7 @@ inputs: working-directory: description: Directory containing bun.lock required: false - default: tnmsop + default: croessweave-obsidian-plugin runs: using: composite diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cab51f2c..ed991139 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,7 +42,7 @@ jobs: - 'xtask/**' obsidian: - 'tnmsop' - - 'tnmsop/**' + - 'croessweave-obsidian-plugin/**' - 'manifest.json' - 'versions.json' - '.githooks/sync-versions.ts' @@ -195,19 +195,19 @@ jobs: - name: Test TNMSOP run: bun test - working-directory: tnmsop + working-directory: croessweave-obsidian-plugin - name: Typecheck TNMSOP run: bun run check:type - working-directory: tnmsop + working-directory: croessweave-obsidian-plugin - name: Lint TNMSOP run: bun run lint - working-directory: tnmsop + working-directory: croessweave-obsidian-plugin - name: Build and package TNMSOP run: | bun run build bun run package:release bun run verify:dist - working-directory: tnmsop + working-directory: croessweave-obsidian-plugin diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 34a579f8..6865513d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -450,14 +450,14 @@ jobs: - uses: ./.github/actions/setup-bun - name: Test and validate TNMSOP - working-directory: tnmsop + working-directory: croessweave-obsidian-plugin run: | bun test bun run check:type bun run lint - name: Build and package TNMSOP - working-directory: tnmsop + working-directory: croessweave-obsidian-plugin run: | bun run build bun run package:release @@ -467,7 +467,7 @@ jobs: uses: actions/upload-artifact@v7 with: name: tnmsop-release - path: tnmsop/dist/ + path: croessweave-obsidian-plugin/dist/ if-no-files-found: error create-github-release: diff --git a/.gitmodules b/.gitmodules index e99fb177..74a29416 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ -[submodule "tnmsop"] - path = tnmsop +[submodule "croessweave-obsidian-plugin"] + path = croessweave-obsidian-plugin branch = main - url = https://github.com/TrueNine/tnmsop.git + url = https://github.com/TrueNine/croessweave-obsidian-plugin.git diff --git a/README.md b/README.md index 38c17912..c50ab26d 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ npm install -g @truenine/croessweave-mcp ### TNMSOP for Obsidian -TNMSOP is maintained in the [`tnmsop/`](tnmsop/README.md) submodule. Install it from the Obsidian community directory or download `main.js`, `manifest.json`, and `styles.css` from the matching [TNMSOP Release](https://github.com/TrueNine/tnmsop/releases). BRAT users should install `TrueNine/tnmsop`. +TNMSOP is maintained in the [`croessweave-obsidian-plugin/`](croessweave-obsidian-plugin/README.md) submodule. Install it from the Obsidian community directory or download `main.js`, `manifest.json`, and `styles.css` from the matching [TNMSOP Release](https://github.com/TrueNine/croessweave-obsidian-plugin/releases). BRAT users should install `TrueNine/croessweave-obsidian-plugin`. TNMSOP shares the croessweave CalVer version. The plugin is released first with the exact plain `` tag, then croessweave pins that release through the submodule and publishes its `v` system release. diff --git a/croessweave-obsidian-plugin b/croessweave-obsidian-plugin new file mode 160000 index 00000000..e4790a3d --- /dev/null +++ b/croessweave-obsidian-plugin @@ -0,0 +1 @@ +Subproject commit e4790a3dfd79571d3ddafdcf596afabe9d66e396 diff --git a/scripts/shared/check-version-surfaces.ts b/scripts/shared/check-version-surfaces.ts index 3e45d66e..58c995ac 100644 --- a/scripts/shared/check-version-surfaces.ts +++ b/scripts/shared/check-version-surfaces.ts @@ -63,17 +63,17 @@ function checkJsonVersion(relativePath: string): void { } function checkObsidianReleaseMetadata(): void { - const pluginManifest = readJson('tnmsop/manifest.json') + const pluginManifest = readJson('croessweave-obsidian-plugin/manifest.json') const rootManifest = readJson('manifest.json') - const pluginVersions = readJson('tnmsop/versions.json') + const pluginVersions = readJson('croessweave-obsidian-plugin/versions.json') const rootVersions = readJson('versions.json') const minAppVersion = pluginManifest.minAppVersion - ensure(pluginManifest.id === 'tnmsop', 'tnmsop/manifest.json must use id=tnmsop') - ensure(pluginManifest.version === expectedVersion, `tnmsop/manifest.json expected version ${expectedVersion}`) + ensure(pluginManifest.id === 'tnmsop', 'croessweave-obsidian-plugin/manifest.json must use id=tnmsop') + ensure(pluginManifest.version === expectedVersion, `croessweave-obsidian-plugin/manifest.json expected version ${expectedVersion}`) ensure(typeof minAppVersion === 'string' && minAppVersion !== '', 'TNMSOP minAppVersion is required') ensure(JSON.stringify(rootManifest) === JSON.stringify(pluginManifest), 'Root manifest.json must mirror the TNMSOP manifest') - ensure(pluginVersions[expectedVersion] === minAppVersion, `tnmsop/versions.json must map ${expectedVersion} to ${String(minAppVersion)}`) + ensure(pluginVersions[expectedVersion] === minAppVersion, `croessweave-obsidian-plugin/versions.json must map ${expectedVersion} to ${String(minAppVersion)}`) ensure(JSON.stringify(rootVersions) === JSON.stringify(pluginVersions), 'Root versions.json must mirror TNMSOP versions.json') } @@ -115,7 +115,7 @@ try { checkJsonVersion('mcp/package.json') checkJsonVersion('gui/package.json') checkJsonVersion('doc/package.json') - checkJsonVersion('tnmsop/package.json') + checkJsonVersion('croessweave-obsidian-plugin/package.json') checkJsonVersion('gui/src-tauri/tauri.conf.json') checkObsidianReleaseMetadata() diff --git a/tnmsop b/tnmsop deleted file mode 160000 index 7fc6f111..00000000 --- a/tnmsop +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7fc6f111521829745c7653fb3b9f6bb61b54b398