diff --git a/eslint.config.js b/eslint.config.js index 5bf25112d..9151142b9 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -3,13 +3,13 @@ import tsEslint from 'typescript-eslint' export default tsEslint.config({ ignores: [ - '**/build/**/*', 'eslint.config.js', 'vite.config.ts', '**/generated/**/*', '**/$generated-clients/**/*', - '**/website/**/*', - '**/website/.vitepress/**/*', + 'legacy/**/*', + 'build/**/*', + 'website/**/*', ], extends: configPrisma, languageOptions: { diff --git a/examples/transport-http_RequestInput.output.txt b/examples/transport-http_RequestInput.output.txt index c1eacad1e..fd2d8bf2c 100644 --- a/examples/transport-http_RequestInput.output.txt +++ b/examples/transport-http_RequestInput.output.txt @@ -3,9 +3,9 @@ body: '{"query":"{ languages { code } }"}', method: 'POST', headers: Headers { - authorization: 'Bearer MY_TOKEN', - accept: 'application/graphql-response+json', - 'content-type': 'application/json' + accept: 'application/graphql-response+json; charset=utf-8, application/json; charset=utf-8', + 'content-type': 'application/json', + authorization: 'Bearer MY_TOKEN' }, mode: 'cors' } \ No newline at end of file diff --git a/package.json b/package.json index 08c822886..c880c1f6a 100644 --- a/package.json +++ b/package.json @@ -114,12 +114,12 @@ "@types/body-parser": "^1.19.5", "@types/express": "^4.17.21", "@types/json-bigint": "^1.0.4", - "@types/node": "^22.5.1", - "@typescript-eslint/eslint-plugin": "^8.3.0", - "@typescript-eslint/parser": "^8.3.0", + "@types/node": "^22.5.4", + "@typescript-eslint/eslint-plugin": "^8.4.0", + "@typescript-eslint/parser": "^8.4.0", "doctoc": "^2.2.1", "dripip": "^0.10.0", - "es-toolkit": "^1.16.0", + "es-toolkit": "^1.17.0", "eslint": "^9.9.1", "eslint-config-prisma": "^0.6.0", "eslint-plugin-deprecation": "^3.0.0", @@ -143,7 +143,7 @@ "tsx": "^4.19.0", "type-fest": "^4.26.0", "typescript": "^5.5.4", - "typescript-eslint": "^8.3.0", + "typescript-eslint": "^8.4.0", "vitepress": "^1.3.4", "vitest": "^2.0.5" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 757c320b3..4d7ea2488 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -55,13 +55,13 @@ importers: specifier: ^1.0.4 version: 1.0.4 '@types/node': - specifier: ^22.5.1 - version: 22.5.2 + specifier: ^22.5.4 + version: 22.5.4 '@typescript-eslint/eslint-plugin': - specifier: ^8.3.0 - version: 8.3.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) + specifier: ^8.4.0 + version: 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/parser': - specifier: ^8.3.0 + specifier: ^8.4.0 version: 8.4.0(eslint@9.9.1)(typescript@5.5.4) doctoc: specifier: ^2.2.1 @@ -70,14 +70,14 @@ importers: specifier: ^0.10.0 version: 0.10.0 es-toolkit: - specifier: ^1.16.0 + specifier: ^1.17.0 version: 1.17.0 eslint: specifier: ^9.9.1 version: 9.9.1 eslint-config-prisma: specifier: ^0.6.0 - version: 0.6.0(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-deprecation@3.0.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-only-warn@1.1.0)(eslint-plugin-prefer-arrow@1.2.3(eslint@9.9.1))(eslint-plugin-tsdoc@0.3.0)(eslint@9.9.1)(typescript@5.5.4) + version: 0.6.0(@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-deprecation@3.0.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-only-warn@1.1.0)(eslint-plugin-prefer-arrow@1.2.3(eslint@9.9.1))(eslint-plugin-tsdoc@0.3.0)(eslint@9.9.1)(typescript@5.5.4) eslint-plugin-deprecation: specifier: ^3.0.0 version: 3.0.0(eslint@9.9.1)(typescript@5.5.4) @@ -142,14 +142,14 @@ importers: specifier: ^5.5.4 version: 5.5.4 typescript-eslint: - specifier: ^8.3.0 - version: 8.3.0(eslint@9.9.1)(typescript@5.5.4) + specifier: ^8.4.0 + version: 8.4.0(eslint@9.9.1)(typescript@5.5.4) vitepress: specifier: ^1.3.4 - version: 1.3.4(@algolia/client-search@4.24.0)(@types/node@22.5.2)(postcss@8.4.41)(search-insights@2.17.0)(typescript@5.5.4) + version: 1.3.4(@algolia/client-search@5.2.5)(@types/node@22.5.4)(postcss@8.4.45)(search-insights@2.17.1)(typescript@5.5.4) vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@22.5.2)(happy-dom@15.7.0)(jsdom@25.0.0) + version: 2.0.5(@types/node@22.5.4)(happy-dom@15.7.3)(jsdom@25.0.0) packages: @@ -191,12 +191,20 @@ packages: '@algolia/client-common@4.24.0': resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} + '@algolia/client-common@5.2.5': + resolution: {integrity: sha512-ITE85veJWwClnoNyv7Zydh9U0eKA82cDy8pLw+2hzL+zlzFIvV68ihGOEQ/kXt8N4v+R4MFzvsxnIpMruQzEug==} + engines: {node: '>= 14.0.0'} + '@algolia/client-personalization@4.24.0': resolution: {integrity: sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==} '@algolia/client-search@4.24.0': resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} + '@algolia/client-search@5.2.5': + resolution: {integrity: sha512-OVDLzm5BEUbJmjfMm7b0Xx8vkK+NyEh7whPHuap2qy0x7RxQDLMXjiKsBbt1WNq+9nfX6+M/f2t0CJ8ENVuyYQ==} + engines: {node: '>= 14.0.0'} + '@algolia/logger-common@4.24.0': resolution: {integrity: sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==} @@ -209,12 +217,20 @@ packages: '@algolia/requester-browser-xhr@4.24.0': resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==} + '@algolia/requester-browser-xhr@5.2.5': + resolution: {integrity: sha512-Ri73PphNy1ceig94xJW9bPdN7uIYFAjpsABpp2Fsun4DmeZD5a4rMCNwwOXXsbC8h+lUzW34zpUf+h4Nk+eaqA==} + engines: {node: '>= 14.0.0'} + '@algolia/requester-common@4.24.0': resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==} '@algolia/requester-node-http@4.24.0': resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==} + '@algolia/requester-node-http@5.2.5': + resolution: {integrity: sha512-/tTdEuWcWHSe/mGMomWkuaFDoRcpfl/jvGISVTPRq3pJvM1FPAzxlh2MXge6C30aUS9bxh3V0aWwgKFCilzyMQ==} + engines: {node: '>= 14.0.0'} + '@algolia/transporter@4.24.0': resolution: {integrity: sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==} @@ -928,11 +944,14 @@ packages: '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} - '@shikijs/core@1.15.2': - resolution: {integrity: sha512-hi6XZuwHYn6bU4wtXZxST8ynM55aiU2+rVU9aPIrSxqKmEKl4d65puwGsggwcZWTET+7zGXKe7AUj46iQ8Aq8w==} + '@shikijs/core@1.16.2': + resolution: {integrity: sha512-XSVH5OZCvE4WLMgdoBqfPMYmGHGmCC3OgZhw0S7KcSi2XKZ+5oHGe71GFnTljgdOxvxx5WrRks6QoTLKrl1eAA==} + + '@shikijs/transformers@1.16.2': + resolution: {integrity: sha512-AR6ANiKwi1dJr5g/W0L+Su4PoHurkHLgtNmesbOFOPGKNQC2BeGU/Z2Ghkl+cUF5PfE+UeLkxUwzpE6H37hTSg==} - '@shikijs/transformers@1.15.2': - resolution: {integrity: sha512-J+3kFFXb4hN3esMzdDBGb2GhBsMPX8UC3o/U9G4Jognb8k0ADQAzZkShTARwS76O0g2VFoMu4vnIchiVE6x/uw==} + '@shikijs/vscode-textmate@9.2.0': + resolution: {integrity: sha512-5FinaOp6Vdh/dl4/yaOTh0ZeKch+rYS8DUb38V3GMKYVkdqzxw53lViRKUYkVILRiVQT7dcPC7VvAKOR73zVtQ==} '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} @@ -1018,8 +1037,8 @@ packages: '@types/ms@0.7.34': resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@types/node@22.5.2': - resolution: {integrity: sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==} + '@types/node@22.5.4': + resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} '@types/parse-git-config@3.0.4': resolution: {integrity: sha512-jz5eGdk9lBgAd4rMbXTP7MRG7AsGQ8DrXsRumDcXDLClHcpKluislylPVMP/qp90J/LlIrrPZRZIQUflHfrDnQ==} @@ -1042,6 +1061,9 @@ packages: '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} @@ -1067,8 +1089,8 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.3.0': - resolution: {integrity: sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==} + '@typescript-eslint/eslint-plugin@8.4.0': + resolution: {integrity: sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -1104,16 +1126,6 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.3.0': - resolution: {integrity: sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/parser@8.4.0': resolution: {integrity: sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1132,10 +1144,6 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.3.0': - resolution: {integrity: sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.4.0': resolution: {integrity: sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1150,8 +1158,8 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.3.0': - resolution: {integrity: sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==} + '@typescript-eslint/type-utils@8.4.0': + resolution: {integrity: sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1167,10 +1175,6 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.3.0': - resolution: {integrity: sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.4.0': resolution: {integrity: sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1193,15 +1197,6 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.3.0': - resolution: {integrity: sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@8.4.0': resolution: {integrity: sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1217,8 +1212,8 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.3.0': - resolution: {integrity: sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==} + '@typescript-eslint/utils@8.4.0': + resolution: {integrity: sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1231,10 +1226,6 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.3.0': - resolution: {integrity: sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.4.0': resolution: {integrity: sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1264,43 +1255,43 @@ packages: '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} - '@vue/compiler-core@3.4.38': - resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==} + '@vue/compiler-core@3.5.2': + resolution: {integrity: sha512-1aP7FL2GkqfcskHWGg3lfWQpJnrmewKc+rNJ/hq9WNaAw4BEyJ5QbNChnqmbw+tJ409zdy1XWmUeXXMrCKJcQQ==} - '@vue/compiler-dom@3.4.38': - resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==} + '@vue/compiler-dom@3.5.2': + resolution: {integrity: sha512-QY4DpT8ZIUyu/ZA5gErpSEDocGNEbHmpkZIC/d5jbp/rUF0iOJNigAy3HCCKc0PMMhDlrcysO3ufQ6Ab4MpEcQ==} - '@vue/compiler-sfc@3.4.38': - resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==} + '@vue/compiler-sfc@3.5.2': + resolution: {integrity: sha512-vErEtybSU290LbMW+ChYllI9tNJEdTW1oU+8cZWINZyjlWeTSa9YqDl4/pZJSnozOI+HmcaC1Vz2eFKmXNSXZA==} - '@vue/compiler-ssr@3.4.38': - resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==} + '@vue/compiler-ssr@3.5.2': + resolution: {integrity: sha512-vMtA4tQK/AM3UAYJsmouQzQpgG+h9TKiD5BV+Zt+ZyAMdicxzSEEFGWf/CykRnDpqj9fMfIHPhOezJVNxiXe2A==} - '@vue/devtools-api@7.3.9': - resolution: {integrity: sha512-D+GTYtFg68bqSu66EugQUydsOqaDlPLNmYw5oYk8k81uBu9/bVTUrqlAJrAA9Am7MXhKz2gWdDkopY6sOBf/Bg==} + '@vue/devtools-api@7.4.4': + resolution: {integrity: sha512-Iqqy9yBFWBbPb/jHlJzU/OrU+iHSJ/e9p/v5pZhm/L5pUCX26z32bvvjPa28vMXxRehbAZTgX8zovOeqBTnhdg==} - '@vue/devtools-kit@7.3.9': - resolution: {integrity: sha512-Gr17nA+DaQzqyhNx1DUJr1CJRzTRfbIuuC80ZgU8MD/qNO302tv9la+ROi+Uaw+ULVwU9T71GnwLy4n8m9Lspg==} + '@vue/devtools-kit@7.4.4': + resolution: {integrity: sha512-awK/4NfsUG0nQ7qnTM37m7ZkEUMREyPh8taFCX+uQYps/MTFEum0AD05VeGDRMXwWvMmGIcWX9xp8ZiBddY0jw==} - '@vue/devtools-shared@7.3.9': - resolution: {integrity: sha512-CdfMRZKXyI8vw+hqOcQIiLihB6Hbbi7WNZGp7LsuH1Qe4aYAFmTaKjSciRZ301oTnwmU/knC/s5OGuV6UNiNoA==} + '@vue/devtools-shared@7.4.4': + resolution: {integrity: sha512-yeJULXFHOKIm8yL2JFO050a9ztTVqOCKTqN9JHFxGTJN0b+gjtfn6zC+FfyHUgjwCwf6E3hfKrlohtthcqoYqw==} - '@vue/reactivity@3.4.38': - resolution: {integrity: sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==} + '@vue/reactivity@3.5.2': + resolution: {integrity: sha512-lJwWL5bNht+2vIwU/+lnGdH+FKFxzz6z8WkoIJityPLiasWU+HDUvEsC7gm3JFwbTf7Kk+Nr9kJMaPy0HXwwxQ==} - '@vue/runtime-core@3.4.38': - resolution: {integrity: sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==} + '@vue/runtime-core@3.5.2': + resolution: {integrity: sha512-oU+i9sJjGEMfEhlrJ7SZv7CdSIgUNyBHnWHa0SqU2RF48V3/ATajzpWq1/DkiVJ1mtx+cQFAMKs8s/3cB3YlLQ==} - '@vue/runtime-dom@3.4.38': - resolution: {integrity: sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==} + '@vue/runtime-dom@3.5.2': + resolution: {integrity: sha512-2qvysn+oR0QnFKaWZxQ90iVpWAK/WPpYmODHCv24IDXjsBrdHbjLBj9s6YBdPaMuQhs0LNsmhsgZYZBkszLg6g==} - '@vue/server-renderer@3.4.38': - resolution: {integrity: sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==} + '@vue/server-renderer@3.5.2': + resolution: {integrity: sha512-3POhYCA8KfbmuDuUiNbMXnpdh9pwE4SvAqo7VvACjklLkf3AaMkY3TvV7APeEa/WQezrnL+E4X2ASpJsKeS4cQ==} peerDependencies: - vue: 3.4.38 + vue: 3.5.2 - '@vue/shared@3.4.38': - resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} + '@vue/shared@3.5.2': + resolution: {integrity: sha512-Ce89WNFBzcDca/AgFTxgX4/K4iAyF7oFIp8Z5aBbFBNbtpwnQr+5pZOoHndxnjE2h+YFcipVMzs9UL11XB6dwA==} '@vueuse/core@11.0.3': resolution: {integrity: sha512-RENlh64+SYA9XMExmmH1a3TPqeIuJBNNB/63GT35MZI+zpru3oMRUA6cEFr9HmGqEgUisurwGwnIieF6qu3aXw==} @@ -1360,8 +1351,8 @@ packages: resolution: {integrity: sha512-Wt0jPb+04JjobK0pAAN7mEHxVHcGA9HoP3OyCsZtyAecNQeADXCZ1MihFwVwjsgaRYuGVmNlsCmLxlG6mor8Gw==} engines: {node: '>=18.0.0'} - '@whatwg-node/node-fetch@0.5.25': - resolution: {integrity: sha512-m6TrxcJlS8ptYLTQL+Ex931RFJsoCQtBQWBNHi5b0xHS0C7FJGUJl1asYZ7MdOhZqdiMVcs1lNJeHsfzyUNjOg==} + '@whatwg-node/node-fetch@0.5.26': + resolution: {integrity: sha512-4jXDeZ4IH4bylZ6wu14VEx0aDXXhrN4TC279v9rPmn08g4EYekcYf8wdcOOnS9STjDkb6x77/6xBUTqxGgjr8g==} engines: {node: '>=18.0.0'} '@whatwg-node/server@0.9.49': @@ -1839,8 +1830,8 @@ packages: eslint: '*' eslint-plugin-import: '*' - eslint-module-utils@2.8.2: - resolution: {integrity: sha512-3XnC5fDyc8M4J2E8pt8pmSVRX2M+5yWMCfI/kDZwauQeFgzQOuhcRBFKjTeJagqgk4sFKxe1mvNVnaWwImx/Tg==} + eslint-module-utils@2.9.0: + resolution: {integrity: sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -2247,8 +2238,8 @@ packages: resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} - happy-dom@15.7.0: - resolution: {integrity: sha512-tH48xarc37FLrtpNWuA89xw4IS1dxNrfzI8ehiafkj3kM3JSCMknuigKv2unDPRzd2C9Hv7ZDPkqPiBCvIz2Dg==} + happy-dom@15.7.3: + resolution: {integrity: sha512-w3RUaYNXFJX5LiNVhOJLK4GqCB1bFj1FvELtpon3HrN8gUpS09V0Vvm4/BBRRj7mLUE1+ch8PKv1JxEp/0IHjA==} engines: {node: '>=18.0.0'} har-schema@2.0.0: @@ -2932,8 +2923,8 @@ packages: performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -2955,8 +2946,8 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + postcss@8.4.45: + resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} engines: {node: ^10 || ^12 || >=14} preact@10.23.2: @@ -3125,8 +3116,8 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - search-insights@2.17.0: - resolution: {integrity: sha512-AskayU3QNsXQzSL6v4LTYST7NNfs2HWyHHB+sdORP9chsytAhro5XRfToAMI/LAVYgNbzowVZTMfBRodgbUHKg==} + search-insights@2.17.1: + resolution: {integrity: sha512-HHFjYH/0AqXacETlIbe9EYc3UNlQYGNNTY0fZ/sWl6SweX+GDxq9NB5+RVoPLgEFuOtCz7M9dhYxqDnhbbF0eQ==} semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} @@ -3161,8 +3152,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.15.2: - resolution: {integrity: sha512-M+7QZQZiZw/cZeizrC/yryG3eeG8pTUhu7ZaHxVyzPNFIRIlN46YBciquoNPCiXiwLnx6JB62f3lSuSYQrus1w==} + shiki@1.16.2: + resolution: {integrity: sha512-gSym0hZf5a1U0iDPsdoOAZbvoi+e0c6c3NKAi03FoSLTm7oG20tum29+gk0wzzivOasn3loxfGUPT+jZXIUbWg==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -3423,8 +3414,8 @@ packages: typescript: optional: true - typescript-eslint@8.3.0: - resolution: {integrity: sha512-EvWjwWLwwKDIJuBjk2I6UkV8KEQcwZ0VM10nR1rIunRDIP67QJTZAHBXTX0HW/oI1H10YESF8yWie8fRQxjvFA==} + typescript-eslint@8.4.0: + resolution: {integrity: sha512-67qoc3zQZe3CAkO0ua17+7aCLI0dU+sSQd1eKPGq06QE4rfQjstVXR6woHO5qQvGUa550NfGckT4tzh3b3c8Pw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -3533,8 +3524,8 @@ packages: engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite@5.4.2: - resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==} + vite@5.4.3: + resolution: {integrity: sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3612,8 +3603,8 @@ packages: '@vue/composition-api': optional: true - vue@3.4.38: - resolution: {integrity: sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==} + vue@3.5.2: + resolution: {integrity: sha512-w1YB4lAwC9ByH6AnFY0JvZF+y70Usul9jDfKIKtM5xA97q/JPS5R7mqq0fhA6D2PQxYPZdgb5jzFKLyOga5pnw==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -3725,32 +3716,32 @@ packages: snapshots: - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.0)': + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0)(search-insights@2.17.1)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0)(search-insights@2.17.1) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.0)': + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0)(search-insights@2.17.1)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - search-insights: 2.17.0 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0) + search-insights: 2.17.1 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': + '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) - '@algolia/client-search': 4.24.0 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0) + '@algolia/client-search': 5.2.5 algoliasearch: 4.24.0 - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': + '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0)': dependencies: - '@algolia/client-search': 4.24.0 + '@algolia/client-search': 5.2.5 algoliasearch: 4.24.0 '@algolia/cache-browser-local-storage@4.24.0': @@ -3781,6 +3772,8 @@ snapshots: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 + '@algolia/client-common@5.2.5': {} + '@algolia/client-personalization@4.24.0': dependencies: '@algolia/client-common': 4.24.0 @@ -3793,6 +3786,12 @@ snapshots: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 + '@algolia/client-search@5.2.5': + dependencies: + '@algolia/client-common': 5.2.5 + '@algolia/requester-browser-xhr': 5.2.5 + '@algolia/requester-node-http': 5.2.5 + '@algolia/logger-common@4.24.0': {} '@algolia/logger-console@4.24.0': @@ -3817,12 +3816,20 @@ snapshots: dependencies: '@algolia/requester-common': 4.24.0 + '@algolia/requester-browser-xhr@5.2.5': + dependencies: + '@algolia/client-common': 5.2.5 + '@algolia/requester-common@4.24.0': {} '@algolia/requester-node-http@4.24.0': dependencies: '@algolia/requester-common': 4.24.0 + '@algolia/requester-node-http@5.2.5': + dependencies: + '@algolia/client-common': 5.2.5 + '@algolia/transporter@4.24.0': dependencies: '@algolia/cache-common': 4.24.0 @@ -3875,9 +3882,9 @@ snapshots: '@docsearch/css@3.6.1': {} - '@docsearch/js@3.6.1(@algolia/client-search@4.24.0)(search-insights@2.17.0)': + '@docsearch/js@3.6.1(@algolia/client-search@5.2.5)(search-insights@2.17.1)': dependencies: - '@docsearch/react': 3.6.1(@algolia/client-search@4.24.0)(search-insights@2.17.0) + '@docsearch/react': 3.6.1(@algolia/client-search@5.2.5)(search-insights@2.17.1) preact: 10.23.2 transitivePeerDependencies: - '@algolia/client-search' @@ -3886,14 +3893,14 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.6.1(@algolia/client-search@4.24.0)(search-insights@2.17.0)': + '@docsearch/react@3.6.1(@algolia/client-search@5.2.5)(search-insights@2.17.1)': dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0)(search-insights@2.17.1) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0) '@docsearch/css': 3.6.1 algoliasearch: 4.24.0 optionalDependencies: - search-insights: 2.17.0 + search-insights: 2.17.1 transitivePeerDependencies: - '@algolia/client-search' @@ -4480,13 +4487,16 @@ snapshots: '@sec-ant/readable-stream@0.4.1': {} - '@shikijs/core@1.15.2': + '@shikijs/core@1.16.2': dependencies: + '@shikijs/vscode-textmate': 9.2.0 '@types/hast': 3.0.4 - '@shikijs/transformers@1.15.2': + '@shikijs/transformers@1.16.2': dependencies: - shiki: 1.15.2 + shiki: 1.16.2 + + '@shikijs/vscode-textmate@9.2.0': {} '@sindresorhus/is@4.6.0': {} @@ -4517,11 +4527,11 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.5.2 + '@types/node': 22.5.4 '@types/connect@3.4.38': dependencies: - '@types/node': 22.5.2 + '@types/node': 22.5.4 '@types/debug@4.1.12': dependencies: @@ -4542,7 +4552,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.5.2 + '@types/node': 22.5.4 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -4556,7 +4566,7 @@ snapshots: '@types/hast@3.0.4': dependencies: - '@types/unist': 2.0.11 + '@types/unist': 3.0.3 '@types/http-errors@2.0.4': {} @@ -4583,7 +4593,7 @@ snapshots: '@types/ms@0.7.34': {} - '@types/node@22.5.2': + '@types/node@22.5.4': dependencies: undici-types: 6.19.8 @@ -4591,7 +4601,7 @@ snapshots: '@types/parse-github-url@1.0.3': dependencies: - '@types/node': 22.5.2 + '@types/node': 22.5.4 '@types/qs@6.9.15': {} @@ -4600,16 +4610,18 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.5.2 + '@types/node': 22.5.4 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.5.2 + '@types/node': 22.5.4 '@types/send': 0.17.4 '@types/unist@2.0.11': {} + '@types/unist@3.0.3': {} + '@types/web-bluetooth@0.0.20': {} '@typescript-eslint/eslint-plugin@5.0.0(@typescript-eslint/parser@5.0.0(eslint@9.9.1)(typescript@4.4.3))(eslint@9.9.1)(typescript@4.4.3)': @@ -4647,32 +4659,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)': - dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.3.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.3.0 - '@typescript-eslint/type-utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.3.0 - eslint: 9.9.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 '@typescript-eslint/parser': 8.4.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.3.0 - '@typescript-eslint/type-utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.3.0 + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/type-utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.4.0 eslint: 9.9.1 graphemer: 1.4.0 ignore: 5.3.2 @@ -4721,19 +4715,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4)': - dependencies: - '@typescript-eslint/scope-manager': 8.3.0 - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.3.0 - debug: 4.3.6 - eslint: 9.9.1 - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4)': dependencies: '@typescript-eslint/scope-manager': 8.4.0 @@ -4757,11 +4738,6 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.3.0': - dependencies: - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/visitor-keys': 8.3.0 - '@typescript-eslint/scope-manager@8.4.0': dependencies: '@typescript-eslint/types': 8.4.0 @@ -4779,10 +4755,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.3.0(eslint@9.9.1)(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.4.0(eslint@9.9.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) debug: 4.3.6 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -4795,8 +4771,6 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.3.0': {} - '@typescript-eslint/types@8.4.0': {} '@typescript-eslint/typescript-estree@5.0.0(typescript@4.4.3)': @@ -4828,21 +4802,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.3.0(typescript@5.5.4)': - dependencies: - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/visitor-keys': 8.3.0 - debug: 4.3.6 - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.4.0(typescript@5.5.4)': dependencies: '@typescript-eslint/types': 8.4.0 @@ -4869,12 +4828,12 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.3.0(eslint@9.9.1)(typescript@5.5.4)': + '@typescript-eslint/utils@8.4.0(eslint@9.9.1)(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) - '@typescript-eslint/scope-manager': 8.3.0 - '@typescript-eslint/types': 8.3.0 - '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.4.0 + '@typescript-eslint/types': 8.4.0 + '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) eslint: 9.9.1 transitivePeerDependencies: - supports-color @@ -4890,20 +4849,15 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.3.0': - dependencies: - '@typescript-eslint/types': 8.3.0 - eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.4.0': dependencies: '@typescript-eslint/types': 8.4.0 eslint-visitor-keys: 3.4.3 - '@vitejs/plugin-vue@5.1.3(vite@5.4.2(@types/node@22.5.2))(vue@3.4.38(typescript@5.5.4))': + '@vitejs/plugin-vue@5.1.3(vite@5.4.3(@types/node@22.5.4))(vue@3.5.2(typescript@5.5.4))': dependencies: - vite: 5.4.2(@types/node@22.5.2) - vue: 3.4.38(typescript@5.5.4) + vite: 5.4.3(@types/node@22.5.4) + vue: 3.5.2(typescript@5.5.4) '@vitest/expect@2.0.5': dependencies: @@ -4938,43 +4892,43 @@ snapshots: loupe: 3.1.1 tinyrainbow: 1.2.0 - '@vue/compiler-core@3.4.38': + '@vue/compiler-core@3.5.2': dependencies: '@babel/parser': 7.25.6 - '@vue/shared': 3.4.38 + '@vue/shared': 3.5.2 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-dom@3.4.38': + '@vue/compiler-dom@3.5.2': dependencies: - '@vue/compiler-core': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-core': 3.5.2 + '@vue/shared': 3.5.2 - '@vue/compiler-sfc@3.4.38': + '@vue/compiler-sfc@3.5.2': dependencies: '@babel/parser': 7.25.6 - '@vue/compiler-core': 3.4.38 - '@vue/compiler-dom': 3.4.38 - '@vue/compiler-ssr': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-core': 3.5.2 + '@vue/compiler-dom': 3.5.2 + '@vue/compiler-ssr': 3.5.2 + '@vue/shared': 3.5.2 estree-walker: 2.0.2 magic-string: 0.30.11 - postcss: 8.4.41 + postcss: 8.4.45 source-map-js: 1.2.0 - '@vue/compiler-ssr@3.4.38': + '@vue/compiler-ssr@3.5.2': dependencies: - '@vue/compiler-dom': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-dom': 3.5.2 + '@vue/shared': 3.5.2 - '@vue/devtools-api@7.3.9': + '@vue/devtools-api@7.4.4': dependencies: - '@vue/devtools-kit': 7.3.9 + '@vue/devtools-kit': 7.4.4 - '@vue/devtools-kit@7.3.9': + '@vue/devtools-kit@7.4.4': dependencies: - '@vue/devtools-shared': 7.3.9 + '@vue/devtools-shared': 7.4.4 birpc: 0.2.17 hookable: 5.5.3 mitt: 3.0.1 @@ -4982,49 +4936,49 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.1 - '@vue/devtools-shared@7.3.9': + '@vue/devtools-shared@7.4.4': dependencies: rfdc: 1.4.1 - '@vue/reactivity@3.4.38': + '@vue/reactivity@3.5.2': dependencies: - '@vue/shared': 3.4.38 + '@vue/shared': 3.5.2 - '@vue/runtime-core@3.4.38': + '@vue/runtime-core@3.5.2': dependencies: - '@vue/reactivity': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/reactivity': 3.5.2 + '@vue/shared': 3.5.2 - '@vue/runtime-dom@3.4.38': + '@vue/runtime-dom@3.5.2': dependencies: - '@vue/reactivity': 3.4.38 - '@vue/runtime-core': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/reactivity': 3.5.2 + '@vue/runtime-core': 3.5.2 + '@vue/shared': 3.5.2 csstype: 3.1.3 - '@vue/server-renderer@3.4.38(vue@3.4.38(typescript@5.5.4))': + '@vue/server-renderer@3.5.2(vue@3.5.2(typescript@5.5.4))': dependencies: - '@vue/compiler-ssr': 3.4.38 - '@vue/shared': 3.4.38 - vue: 3.4.38(typescript@5.5.4) + '@vue/compiler-ssr': 3.5.2 + '@vue/shared': 3.5.2 + vue: 3.5.2(typescript@5.5.4) - '@vue/shared@3.4.38': {} + '@vue/shared@3.5.2': {} - '@vueuse/core@11.0.3(vue@3.4.38(typescript@5.5.4))': + '@vueuse/core@11.0.3(vue@3.5.2(typescript@5.5.4))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 11.0.3 - '@vueuse/shared': 11.0.3(vue@3.4.38(typescript@5.5.4)) - vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.4)) + '@vueuse/shared': 11.0.3(vue@3.5.2(typescript@5.5.4)) + vue-demi: 0.14.10(vue@3.5.2(typescript@5.5.4)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/integrations@11.0.3(focus-trap@7.5.4)(vue@3.4.38(typescript@5.5.4))': + '@vueuse/integrations@11.0.3(focus-trap@7.5.4)(vue@3.5.2(typescript@5.5.4))': dependencies: - '@vueuse/core': 11.0.3(vue@3.4.38(typescript@5.5.4)) - '@vueuse/shared': 11.0.3(vue@3.4.38(typescript@5.5.4)) - vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.4)) + '@vueuse/core': 11.0.3(vue@3.5.2(typescript@5.5.4)) + '@vueuse/shared': 11.0.3(vue@3.5.2(typescript@5.5.4)) + vue-demi: 0.14.10(vue@3.5.2(typescript@5.5.4)) optionalDependencies: focus-trap: 7.5.4 transitivePeerDependencies: @@ -5033,9 +4987,9 @@ snapshots: '@vueuse/metadata@11.0.3': {} - '@vueuse/shared@11.0.3(vue@3.4.38(typescript@5.5.4))': + '@vueuse/shared@11.0.3(vue@3.5.2(typescript@5.5.4))': dependencies: - vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.4)) + vue-demi: 0.14.10(vue@3.5.2(typescript@5.5.4)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -5046,10 +5000,10 @@ snapshots: '@whatwg-node/fetch@0.9.21': dependencies: - '@whatwg-node/node-fetch': 0.5.25 + '@whatwg-node/node-fetch': 0.5.26 urlpattern-polyfill: 10.0.0 - '@whatwg-node/node-fetch@0.5.25': + '@whatwg-node/node-fetch@0.5.26': dependencies: '@kamilkisiela/fast-url-parser': 1.1.4 busboy: 1.6.0 @@ -5616,12 +5570,12 @@ snapshots: dependencies: eslint: 9.9.1 - eslint-config-prisma@0.6.0(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-deprecation@3.0.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-only-warn@1.1.0)(eslint-plugin-prefer-arrow@1.2.3(eslint@9.9.1))(eslint-plugin-tsdoc@0.3.0)(eslint@9.9.1)(typescript@5.5.4): + eslint-config-prisma@0.6.0(@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4))(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-deprecation@3.0.0(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-only-warn@1.1.0)(eslint-plugin-prefer-arrow@1.2.3(eslint@9.9.1))(eslint-plugin-tsdoc@0.3.0)(eslint@9.9.1)(typescript@5.5.4): dependencies: '@eslint/js': 9.9.1 '@types/eslint-config-prettier': 6.11.3 '@types/eslint__js': 8.42.3 - '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/parser': 8.4.0(eslint@9.9.1)(typescript@5.5.4) '@typescript-eslint/utils': 7.18.0(eslint@9.9.1)(typescript@5.5.4) eslint: 9.9.1 @@ -5663,7 +5617,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.2(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.9.1): + eslint-module-utils@2.9.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.9.1): dependencies: debug: 3.2.7 optionalDependencies: @@ -5697,7 +5651,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.9.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.2(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.9.1) + eslint-module-utils: 2.9.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@9.9.1) find-up: 2.1.0 has: 1.0.4 is-core-module: 2.15.1 @@ -6158,7 +6112,7 @@ snapshots: graphql@16.9.0: {} - happy-dom@15.7.0: + happy-dom@15.7.3: dependencies: entities: 4.5.0 webidl-conversions: 7.0.0 @@ -6861,7 +6815,7 @@ snapshots: performance-now@2.1.0: {} - picocolors@1.0.1: {} + picocolors@1.1.0: {} picomatch@2.3.1: {} @@ -6875,10 +6829,10 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss@8.4.41: + postcss@8.4.45: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 + picocolors: 1.1.0 source-map-js: 1.2.0 preact@10.23.2: {} @@ -6900,7 +6854,7 @@ snapshots: publint@0.2.10: dependencies: npm-packlist: 5.1.3 - picocolors: 1.0.1 + picocolors: 1.1.0 sade: 1.8.1 punycode@2.3.1: {} @@ -7076,7 +7030,7 @@ snapshots: dependencies: xmlchars: 2.2.0 - search-insights@2.17.0: {} + search-insights@2.17.1: {} semver@5.7.2: {} @@ -7111,9 +7065,10 @@ snapshots: shebang-regex@3.0.0: {} - shiki@1.15.2: + shiki@1.16.2: dependencies: - '@shikijs/core': 1.15.2 + '@shikijs/core': 1.16.2 + '@shikijs/vscode-textmate': 9.2.0 '@types/hast': 3.0.4 side-channel@1.0.6: @@ -7392,11 +7347,11 @@ snapshots: transitivePeerDependencies: - supports-color - typescript-eslint@8.3.0(eslint@9.9.1)(typescript@5.5.4): + typescript-eslint@8.4.0(eslint@9.9.1)(typescript@5.5.4): dependencies: - '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/parser': 8.3.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/utils': 8.3.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4))(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/parser': 8.4.0(eslint@9.9.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -7495,13 +7450,13 @@ snapshots: unist-util-stringify-position: 2.0.3 vfile-message: 2.0.4 - vite-node@2.0.5(@types/node@22.5.2): + vite-node@2.0.5(@types/node@22.5.4): dependencies: cac: 6.7.14 debug: 4.3.6 pathe: 1.1.2 tinyrainbow: 1.2.0 - vite: 5.4.2(@types/node@22.5.2) + vite: 5.4.3(@types/node@22.5.4) transitivePeerDependencies: - '@types/node' - less @@ -7513,35 +7468,35 @@ snapshots: - supports-color - terser - vite@5.4.2(@types/node@22.5.2): + vite@5.4.3(@types/node@22.5.4): dependencies: esbuild: 0.21.5 - postcss: 8.4.41 + postcss: 8.4.45 rollup: 4.21.2 optionalDependencies: - '@types/node': 22.5.2 + '@types/node': 22.5.4 fsevents: 2.3.3 - vitepress@1.3.4(@algolia/client-search@4.24.0)(@types/node@22.5.2)(postcss@8.4.41)(search-insights@2.17.0)(typescript@5.5.4): + vitepress@1.3.4(@algolia/client-search@5.2.5)(@types/node@22.5.4)(postcss@8.4.45)(search-insights@2.17.1)(typescript@5.5.4): dependencies: '@docsearch/css': 3.6.1 - '@docsearch/js': 3.6.1(@algolia/client-search@4.24.0)(search-insights@2.17.0) - '@shikijs/core': 1.15.2 - '@shikijs/transformers': 1.15.2 + '@docsearch/js': 3.6.1(@algolia/client-search@5.2.5)(search-insights@2.17.1) + '@shikijs/core': 1.16.2 + '@shikijs/transformers': 1.16.2 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.1.3(vite@5.4.2(@types/node@22.5.2))(vue@3.4.38(typescript@5.5.4)) - '@vue/devtools-api': 7.3.9 - '@vue/shared': 3.4.38 - '@vueuse/core': 11.0.3(vue@3.4.38(typescript@5.5.4)) - '@vueuse/integrations': 11.0.3(focus-trap@7.5.4)(vue@3.4.38(typescript@5.5.4)) + '@vitejs/plugin-vue': 5.1.3(vite@5.4.3(@types/node@22.5.4))(vue@3.5.2(typescript@5.5.4)) + '@vue/devtools-api': 7.4.4 + '@vue/shared': 3.5.2 + '@vueuse/core': 11.0.3(vue@3.5.2(typescript@5.5.4)) + '@vueuse/integrations': 11.0.3(focus-trap@7.5.4)(vue@3.5.2(typescript@5.5.4)) focus-trap: 7.5.4 mark.js: 8.11.1 minisearch: 7.1.0 - shiki: 1.15.2 - vite: 5.4.2(@types/node@22.5.2) - vue: 3.4.38(typescript@5.5.4) + shiki: 1.16.2 + vite: 5.4.3(@types/node@22.5.4) + vue: 3.5.2(typescript@5.5.4) optionalDependencies: - postcss: 8.4.41 + postcss: 8.4.45 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -7570,7 +7525,7 @@ snapshots: - typescript - universal-cookie - vitest@2.0.5(@types/node@22.5.2)(happy-dom@15.7.0)(jsdom@25.0.0): + vitest@2.0.5(@types/node@22.5.4)(happy-dom@15.7.3)(jsdom@25.0.0): dependencies: '@ampproject/remapping': 2.3.0 '@vitest/expect': 2.0.5 @@ -7588,12 +7543,12 @@ snapshots: tinybench: 2.9.0 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.2(@types/node@22.5.2) - vite-node: 2.0.5(@types/node@22.5.2) + vite: 5.4.3(@types/node@22.5.4) + vite-node: 2.0.5(@types/node@22.5.4) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.5.2 - happy-dom: 15.7.0 + '@types/node': 22.5.4 + happy-dom: 15.7.3 jsdom: 25.0.0 transitivePeerDependencies: - less @@ -7605,17 +7560,17 @@ snapshots: - supports-color - terser - vue-demi@0.14.10(vue@3.4.38(typescript@5.5.4)): + vue-demi@0.14.10(vue@3.5.2(typescript@5.5.4)): dependencies: - vue: 3.4.38(typescript@5.5.4) + vue: 3.5.2(typescript@5.5.4) - vue@3.4.38(typescript@5.5.4): + vue@3.5.2(typescript@5.5.4): dependencies: - '@vue/compiler-dom': 3.4.38 - '@vue/compiler-sfc': 3.4.38 - '@vue/runtime-dom': 3.4.38 - '@vue/server-renderer': 3.4.38(vue@3.4.38(typescript@5.5.4)) - '@vue/shared': 3.4.38 + '@vue/compiler-dom': 3.5.2 + '@vue/compiler-sfc': 3.5.2 + '@vue/runtime-dom': 3.5.2 + '@vue/server-renderer': 3.5.2(vue@3.5.2(typescript@5.5.4)) + '@vue/shared': 3.5.2 optionalDependencies: typescript: 5.5.4 diff --git a/src/layers/5_core/core.ts b/src/layers/5_core/core.ts index dee8214e5..dcec0eb95 100644 --- a/src/layers/5_core/core.ts +++ b/src/layers/5_core/core.ts @@ -2,8 +2,7 @@ import type { DocumentNode, ExecutionResult, GraphQLSchema } from 'graphql' import { print } from 'graphql' import { Anyware } from '../../lib/anyware/__.js' import { type StandardScalarVariables } from '../../lib/graphql.js' -import { CONTENT_TYPE_GQL_OVER_HTTP_REC, parseExecutionResult } from '../../lib/graphqlHTTP.js' -import { CONTENT_TYPE_JSON, mergeHeadersInit } from '../../lib/http.js' +import { ACCEPT_REC, CONTENT_TYPE_REC, parseExecutionResult } from '../../lib/graphqlHTTP.js' import { casesExhausted } from '../../lib/prelude.js' import { execute } from '../0_functions/execute.js' import type { Schema } from '../1_Schema/__.js' @@ -213,16 +212,20 @@ export const anyware = Anyware.create({ body: input.body, // @see https://graphql.github.io/graphql-over-http/draft/#sec-POST method: `POST`, - ...mergeRequestInputOptions(input.context.config.requestInputOptions, { - headers: mergeHeadersInit(input.headers, { - accept: CONTENT_TYPE_GQL_OVER_HTTP_REC, - // todo if body is something else, say upload extension turns it into a FormData, then fetch will automatically set the content-type header. - // ... however we should not rely on that behavior, and instead error here if there is no content type header and we cannot infer it here? - ...(typeof input.body === `string` - ? { 'content-type': CONTENT_TYPE_JSON } - : {}), - }), - }), + ...mergeRequestInputOptions( + mergeRequestInputOptions( + { + headers: { + accept: ACCEPT_REC, + 'content-type': CONTENT_TYPE_REC, + }, + }, + input.context.config.requestInputOptions, + ), + { + headers: input.headers, + }, + ), } return { ...input, @@ -243,7 +246,9 @@ export const anyware = Anyware.create({ switch (input.transport) { case `http`: { const request = new Request(input.request.url, input.request) + // console.log(request) const response = await slots.fetch(request) + // console.log(response) return { ...input, response, @@ -270,7 +275,7 @@ export const anyware = Anyware.create({ switch (input.transport) { case `http`: { // todo 1 if response is missing header of content length then .json() hangs forever. - // todo 1 firstly consider a timeout, secondly, if response is malformed, then don't even run .json() + // firstly consider a timeout, secondly, if response is malformed, then don't even run .json() // todo 2 if response is e.g. 404 with no json body, then an error is thrown because json parse cannot work, not gracefully handled here const json = await input.response.json() as object const result = parseExecutionResult(json) diff --git a/src/layers/6_client/client.test.ts b/src/layers/6_client/client.test.ts index 7e8e57bce..1818f8fc0 100644 --- a/src/layers/6_client/client.test.ts +++ b/src/layers/6_client/client.test.ts @@ -3,9 +3,6 @@ import { createResponse, test } from '../../../tests/_/helpers.js' import { Graffle as Graffle2 } from '../../../tests/_/schema/generated/__.js' import { schema } from '../../../tests/_/schema/schema.js' import { Graffle } from '../../entrypoints/main.js' -import { CONTENT_TYPE_GQL, CONTENT_TYPE_JSON } from '../../lib/http.js' -import { Transport } from '../5_core/types.js' -import type { RequestInput } from './Settings/inputIncrementable/request.js' const endpoint = new URL(`https://foo.io/api/graphql`) @@ -29,107 +26,6 @@ describe(`without schemaIndex only raw is available`, () => { }) }) -describe(`transport`, () => { - describe(`http`, () => { - test(`anyware hooks are typed to http transport`, () => { - Graffle.create({ schema: endpoint }).use(async ({ encode }) => { - expectTypeOf(encode.input.transport).toEqualTypeOf(Transport.http) - const { pack } = await encode() - expectTypeOf(pack.input.transport).toEqualTypeOf(Transport.http) - const { exchange } = await pack() - expectTypeOf(exchange.input.transport).toEqualTypeOf(Transport.http) - expectTypeOf(exchange.input.request).toEqualTypeOf() - const { unpack } = await exchange() - expectTypeOf(unpack.input.transport).toEqualTypeOf(Transport.http) - expectTypeOf(unpack.input.response).toEqualTypeOf() - const { decode } = await unpack() - expectTypeOf(decode.input.transport).toEqualTypeOf(Transport.http) - expectTypeOf(decode.input.response).toEqualTypeOf() - const result = await decode() - if (!(result instanceof Error)) { - expectTypeOf(result.response).toEqualTypeOf() - } - return result - }) - }) - test(`can set headers in constructor`, async ({ fetch }) => { - fetch.mockImplementationOnce(() => Promise.resolve(createResponse({ data: { id: `abc` } }))) - const graffle = Graffle.create({ schema: endpoint, request: { headers: { 'x-foo': `bar` } } }) - await graffle.rawString({ document: `query { id }` }) - const request = fetch.mock.calls[0]?.[0] - expect(request?.headers.get(`x-foo`)).toEqual(`bar`) - }) - test(`sends spec compliant request`, async ({ fetch, graffle }) => { - fetch.mockImplementationOnce(() => Promise.resolve(createResponse({ data: { greetings: `Hello World` } }))) - await graffle.rawString({ document: `query { greetings }` }) - const request = fetch.mock.calls[0]?.[0] - expect(request?.headers.get(`content-type`)).toEqual(CONTENT_TYPE_JSON) - expect(request?.headers.get(`accept`)).toEqual(CONTENT_TYPE_GQL) - }) - describe(`signal`, () => { - // JSDom and Node result in different errors. JSDom is a plain Error type. Presumably an artifact of JSDom and now in actual browsers. - const abortErrorMessagePattern = /This operation was aborted|AbortError: The operation was aborted/ - test(`AbortController at instance level works`, async () => { - const abortController = new AbortController() - const graffle = Graffle.create({ - schema: endpoint, - request: { signal: abortController.signal }, - }) - const resultPromise = graffle.rawString({ document: `query { id }` }) - abortController.abort() - const { caughtError } = await resultPromise.catch((caughtError: unknown) => ({ caughtError })) as any as { - caughtError: Error - } - expect(caughtError.message).toMatch(abortErrorMessagePattern) - }) - test(`AbortController at method level works`, async () => { - const abortController = new AbortController() - const graffle = Graffle.create({ - schema: endpoint, - }).with({ request: { signal: abortController.signal } }) - const resultPromise = graffle.rawString({ document: `query { id }` }) - abortController.abort() - const { caughtError } = await resultPromise.catch((caughtError: unknown) => ({ caughtError })) as any as { - caughtError: Error - } - expect(caughtError.message).toMatch(abortErrorMessagePattern) - }) - }) - }) - describe(`memory`, () => { - test(`anyware hooks are typed to memory transport`, () => { - Graffle.create({ schema }).use(async ({ encode }) => { - expectTypeOf(encode.input.transport).toEqualTypeOf(Transport.memory) - const { pack } = await encode() - expectTypeOf(pack.input.transport).toEqualTypeOf(Transport.memory) - const { exchange } = await pack() - expectTypeOf(exchange.input.transport).toEqualTypeOf(Transport.memory) - // @ts-expect-error any - exchange.input.request - const { unpack } = await exchange() - expectTypeOf(unpack.input.transport).toEqualTypeOf(Transport.memory) - // @ts-expect-error any - unpack.input.response - const { decode } = await unpack() - expectTypeOf(decode.input.transport).toEqualTypeOf(Transport.memory) - // @ts-expect-error any - decode.input.response - const result = await decode() - if (!(result instanceof Error)) { - // @ts-expect-error any - result.response - } - return result - }) - }) - test(`cannot set headers in constructor`, () => { - // todo: This error is poor for the user. It refers to schema not being a URL. The better message would be that headers is not allowed with memory transport. - // @ts-expect-error headers not allowed with GraphQL schema - Graffle.create({ schema, request: { headers: { 'x-foo': `bar` } } }) - }) - }) -}) - describe(`output`, () => { test(`when using envelope and transport is http, response property is available`, async ({ fetch }) => { fetch.mockImplementationOnce(() => Promise.resolve(createResponse({ data: { id: `abc` } }))) diff --git a/src/layers/6_client/client.transport-http.test.ts b/src/layers/6_client/client.transport-http.test.ts new file mode 100644 index 000000000..e7a3eb0d2 --- /dev/null +++ b/src/layers/6_client/client.transport-http.test.ts @@ -0,0 +1,76 @@ +import { describe, expect, expectTypeOf } from 'vitest' +import { createResponse, test } from '../../../tests/_/helpers.js' +import { Graffle } from '../../entrypoints/main.js' +import { ACCEPT_REC, CONTENT_TYPE_REC } from '../../lib/graphqlHTTP.js' +import { Transport } from '../5_core/types.js' +import type { RequestInput } from './Settings/inputIncrementable/request.js' + +const endpoint = new URL(`https://foo.io/api/graphql`) + +test(`anyware hooks are typed to http transport`, () => { + Graffle.create({ schema: endpoint }).use(async ({ encode }) => { + expectTypeOf(encode.input.transport).toEqualTypeOf(Transport.http) + const { pack } = await encode() + expectTypeOf(pack.input.transport).toEqualTypeOf(Transport.http) + const { exchange } = await pack() + expectTypeOf(exchange.input.transport).toEqualTypeOf(Transport.http) + expectTypeOf(exchange.input.request).toEqualTypeOf() + const { unpack } = await exchange() + expectTypeOf(unpack.input.transport).toEqualTypeOf(Transport.http) + expectTypeOf(unpack.input.response).toEqualTypeOf() + const { decode } = await unpack() + expectTypeOf(decode.input.transport).toEqualTypeOf(Transport.http) + expectTypeOf(decode.input.response).toEqualTypeOf() + const result = await decode() + if (!(result instanceof Error)) { + expectTypeOf(result.response).toEqualTypeOf() + } + return result + }) +}) + +test(`can set headers in constructor`, async ({ fetch }) => { + fetch.mockImplementationOnce(() => Promise.resolve(createResponse({ data: { id: `abc` } }))) + const graffle = Graffle.create({ schema: endpoint, request: { headers: { 'x-foo': `bar` } } }) + await graffle.rawString({ document: `query { id }` }) + const request = fetch.mock.calls[0]?.[0] + expect(request?.headers.get(`x-foo`)).toEqual(`bar`) +}) + +test(`sends spec compliant request`, async ({ fetch, graffle }) => { + fetch.mockImplementationOnce(() => Promise.resolve(createResponse({ data: { greetings: `Hello World` } }))) + await graffle.rawString({ document: `query { greetings }` }) + const request = fetch.mock.calls[0]?.[0] + expect(request?.headers.get(`content-type`)).toEqual(CONTENT_TYPE_REC) + expect(request?.headers.get(`accept`)).toEqual(ACCEPT_REC) +}) + +describe(`signal`, () => { + // JSDom and Node result in different errors. JSDom is a plain Error type. Presumably an artifact of JSDom and now in actual browsers. + const abortErrorMessagePattern = /This operation was aborted|AbortError: The operation was aborted/ + test(`AbortController at instance level works`, async () => { + const abortController = new AbortController() + const graffle = Graffle.create({ + schema: endpoint, + request: { signal: abortController.signal }, + }) + const resultPromise = graffle.rawString({ document: `query { id }` }) + abortController.abort() + const { caughtError } = await resultPromise.catch((caughtError: unknown) => ({ caughtError })) as any as { + caughtError: Error + } + expect(caughtError.message).toMatch(abortErrorMessagePattern) + }) + test(`AbortController at method level works`, async () => { + const abortController = new AbortController() + const graffle = Graffle.create({ + schema: endpoint, + }).with({ request: { signal: abortController.signal } }) + const resultPromise = graffle.rawString({ document: `query { id }` }) + abortController.abort() + const { caughtError } = await resultPromise.catch((caughtError: unknown) => ({ caughtError })) as any as { + caughtError: Error + } + expect(caughtError.message).toMatch(abortErrorMessagePattern) + }) +}) diff --git a/src/layers/6_client/client.transport-memory.test.ts b/src/layers/6_client/client.transport-memory.test.ts new file mode 100644 index 000000000..21e1c07d5 --- /dev/null +++ b/src/layers/6_client/client.transport-memory.test.ts @@ -0,0 +1,37 @@ +import { expectTypeOf } from 'vitest' +import { test } from '../../../tests/_/helpers.js' +import { schema } from '../../../tests/_/schema/schema.js' +import { Graffle } from '../../entrypoints/main.js' +import { Transport } from '../5_core/types.js' + +test(`anyware hooks are typed to memory transport`, () => { + Graffle.create({ schema }).use(async ({ encode }) => { + expectTypeOf(encode.input.transport).toEqualTypeOf(Transport.memory) + const { pack } = await encode() + expectTypeOf(pack.input.transport).toEqualTypeOf(Transport.memory) + const { exchange } = await pack() + expectTypeOf(exchange.input.transport).toEqualTypeOf(Transport.memory) + // @ts-expect-error any + exchange.input.request + const { unpack } = await exchange() + expectTypeOf(unpack.input.transport).toEqualTypeOf(Transport.memory) + // @ts-expect-error any + unpack.input.response + const { decode } = await unpack() + expectTypeOf(decode.input.transport).toEqualTypeOf(Transport.memory) + // @ts-expect-error any + decode.input.response + const result = await decode() + if (!(result instanceof Error)) { + // @ts-expect-error any + result.response + } + return result + }) +}) + +test(`cannot set headers in constructor`, () => { + // todo: This error is poor for the user. It refers to schema not being a URL. The better message would be that headers is not allowed with memory transport. + // @ts-expect-error headers not allowed with GraphQL schema + Graffle.create({ schema, request: { headers: { 'x-foo': `bar` } } }) +}) diff --git a/src/layers/7_extensions/Upload/Upload.ts b/src/layers/7_extensions/Upload/Upload.ts index 39d5d6004..81571265f 100644 --- a/src/layers/7_extensions/Upload/Upload.ts +++ b/src/layers/7_extensions/Upload/Upload.ts @@ -1,7 +1,6 @@ import type { StandardScalarVariables } from '../../../lib/graphql.js' -import type { ExecutionInput } from '../../../lib/graphqlHTTP.js' import { createExtension } from '../../5_createExtension/createExtension.js' -import extractFiles from './extractFiles.js' +import { createBody } from './createBody.js' /** * @see https://github.com/jaydenseric/graphql-multipart-request-spec @@ -9,53 +8,37 @@ import extractFiles from './extractFiles.js' export const Upload = createExtension({ name: `Upload`, anyware: async ({ encode }) => { - return await encode({ + const { pack } = await encode({ using: { body: (input) => { - if (!(input.variables && isUsingUploadScalar(input.variables))) return + const hasUploadScalarVariable = input.variables && isUsingUploadScalar(input.variables) + if (!hasUploadScalarVariable) return // TODO we can probably get file upload working for in-memory schemas too :) - if (encode.input.transport !== `http`) throw new Error(`Must use http transport for uploads.`) + if (encode.input.transport !== `http`) throw new Error(`Must be using http transport to use "Upload" scalar.`) - return createUploadBody({ + return createBody({ query: input.query, - variables: input.variables, + variables: input.variables!, }) }, }, }) + // Remove the content-type header so that fetch sets it automatically upon seeing the body is a FormData instance. + // @see https://muffinman.io/blog/uploading-files-using-fetch-multipart-form-data/ + // @see https://stackoverflow.com/questions/3508338/what-is-the-boundary-in-multipart-form-data + // @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition + return await pack({ + input: { + ...pack.input, + headers: { + 'content-type': ``, + }, + }, + }) }, }) -const createUploadBody = (input: ExecutionInput): FormData => { - const { clone, files } = extractFiles( - { query: input.query, variables: input.variables }, - (value: unknown) => value instanceof Blob, - ``, - ) - const operationJSON = JSON.stringify(clone) - - if (files.size === 0) throw new Error(`Not an upload request.`) - - const form = new FormData() - - form.append(`operations`, operationJSON) - - const map: Record = {} - let i = 0 - for (const paths of files.values()) { - map[++i] = paths - } - form.append(`map`, JSON.stringify(map)) - - i = 0 - for (const file of files.keys()) { - form.append(String(++i), file) - } - - return form -} - const isUsingUploadScalar = (_variables: StandardScalarVariables) => { return Object.values(_variables).some(_ => _ instanceof Blob) } diff --git a/src/layers/7_extensions/Upload/createBody.ts b/src/layers/7_extensions/Upload/createBody.ts new file mode 100644 index 000000000..5c4c74642 --- /dev/null +++ b/src/layers/7_extensions/Upload/createBody.ts @@ -0,0 +1,31 @@ +import type { ExecutionInput } from '../../../lib/graphqlHTTP.js' +import extractFiles from './extractFiles.js' + +export const createBody = (input: ExecutionInput): FormData => { + const { clone, files } = extractFiles( + { query: input.query, variables: input.variables }, + (value: unknown) => value instanceof Blob, + ``, + ) + const operationJSON = JSON.stringify(clone) + + if (files.size === 0) throw new Error(`Not an upload request.`) + + const form = new FormData() + + form.append(`operations`, operationJSON) + + const map: Record = {} + let i = 0 + for (const paths of files.values()) { + map[++i] = paths + } + form.append(`map`, JSON.stringify(map)) + + i = 0 + for (const file of files.keys()) { + form.append(String(++i), file) + } + + return form +} diff --git a/src/lib/graphqlHTTP.ts b/src/lib/graphqlHTTP.ts index af052ed8e..af58a03b7 100644 --- a/src/lib/graphqlHTTP.ts +++ b/src/lib/graphqlHTTP.ts @@ -54,6 +54,12 @@ export const parseExecutionResult = (result: unknown): ExecutionResult => { } /** + * @see https://graphql.github.io/graphql-over-http/draft/#sec-Media-Types + */ +export const CONTENT_TYPE_REC = CONTENT_TYPE_JSON + +/** + * @see https://graphql.github.io/graphql-over-http/draft/#sec-Accept * @see https://graphql.github.io/graphql-over-http/draft/#sec-Legacy-Watershed */ -export const CONTENT_TYPE_GQL_OVER_HTTP_REC = `${CONTENT_TYPE_GQL}; charset=utf-8, ${CONTENT_TYPE_JSON}; charset=utf-8` +export const ACCEPT_REC = `${CONTENT_TYPE_GQL}; charset=utf-8, ${CONTENT_TYPE_JSON}; charset=utf-8` diff --git a/src/lib/http.ts b/src/lib/http.ts index be3b22ff2..08bb05b4b 100644 --- a/src/lib/http.ts +++ b/src/lib/http.ts @@ -2,6 +2,7 @@ export const ACCEPT_HEADER = `Accept` export const CONTENT_TYPE_HEADER = `Content-Type` export const CONTENT_TYPE_JSON = `application/json` export const CONTENT_TYPE_GQL = `application/graphql-response+json` +export const CONTENT_TYPE_MULTIPART_FORM_DATA = `multipart/form-data` export const statusCodes = { success: 200, @@ -11,7 +12,13 @@ export const mergeHeadersInit = (headers?: HeadersInit, additionalHeaders?: Head const base = new Headers(headers) const additional = new Headers(additionalHeaders) for (const [key, value] of additional.entries()) { - base.set(key, value) + if (value === UnsetValue) { + base.delete(key) + } else { + base.set(key, value) + } } return base } + +const UnsetValue = `` diff --git a/tests/_/helpers.ts b/tests/_/helpers.ts index 55dee6b22..84ef4d31d 100644 --- a/tests/_/helpers.ts +++ b/tests/_/helpers.ts @@ -1,18 +1,17 @@ import type { Mock } from 'vitest' import { test as testBase, vi } from 'vitest' -import { CONTENT_TYPE_JSON } from '../../src/lib/http.js' +import { Graffle } from '../../src/entrypoints/main.js' +import type { Client } from '../../src/layers/6_client/client.js' +import { CONTENT_TYPE_REC } from '../../src/lib/graphqlHTTP.js' export const createResponse = (body: object) => - new Response(JSON.stringify(body), { status: 200, headers: { 'content-type': CONTENT_TYPE_JSON } }) + new Response(JSON.stringify(body), { status: 200, headers: { 'content-type': CONTENT_TYPE_REC } }) interface Fixtures { fetch: Mock<(request: Request) => Promise> graffle: Client } -import { Graffle } from '../../src/entrypoints/main.js' -import type { Client } from '../../src/layers/6_client/client.js' - export const test = testBase.extend({ // eslint-disable-next-line fetch: async ({}, use) => { diff --git a/website/package.json b/website/package.json index 14e498bd8..63d9ac8e8 100644 --- a/website/package.json +++ b/website/package.json @@ -7,16 +7,16 @@ "gen:graffle:default": "graffle --schema https://countries.trevorblades.com/graphql" }, "devDependencies": { - "vitepress": "^1.3.3" + "vitepress": "^1.3.4" }, "dependencies": { - "@shikijs/twoslash": "^1.14.1", - "@shikijs/vitepress-twoslash": "^1.14.1", - "es-toolkit": "^1.16.0", + "@shikijs/twoslash": "^1.16.2", + "@shikijs/vitepress-twoslash": "^1.16.2", + "es-toolkit": "^1.17.0", "floating-vue": "^5.2.2", "globby": "^14.0.2", "graffle": "file:..", - "tsx": "^4.17.0", + "tsx": "^4.19.0", "typescript": "^5.5.4" } } diff --git a/website/pnpm-lock.yaml b/website/pnpm-lock.yaml index cf0f1f510..c1d736423 100644 --- a/website/pnpm-lock.yaml +++ b/website/pnpm-lock.yaml @@ -9,17 +9,17 @@ importers: .: dependencies: '@shikijs/twoslash': - specifier: ^1.14.1 - version: 1.16.1(typescript@5.5.4) + specifier: ^1.16.2 + version: 1.16.2(typescript@5.5.4) '@shikijs/vitepress-twoslash': - specifier: ^1.14.1 - version: 1.16.1(typescript@5.5.4) + specifier: ^1.16.2 + version: 1.16.2(typescript@5.5.4) es-toolkit: - specifier: ^1.16.0 + specifier: ^1.17.0 version: 1.17.0 floating-vue: specifier: ^5.2.2 - version: 5.2.2(vue@3.4.38(typescript@5.5.4)) + version: 5.2.2(vue@3.5.2(typescript@5.5.4)) globby: specifier: ^14.0.2 version: 14.0.2 @@ -27,15 +27,15 @@ importers: specifier: file:.. version: file:..(graphql@16.9.0) tsx: - specifier: ^4.17.0 + specifier: ^4.19.0 version: 4.19.0 typescript: specifier: ^5.5.4 version: 5.5.4 devDependencies: vitepress: - specifier: ^1.3.3 - version: 1.3.3(@algolia/client-search@5.1.1)(postcss@8.4.44)(search-insights@2.17.0)(typescript@5.5.4) + specifier: ^1.3.4 + version: 1.3.4(@algolia/client-search@5.2.5)(postcss@8.4.45)(search-insights@2.17.1)(typescript@5.5.4) packages: @@ -77,8 +77,8 @@ packages: '@algolia/client-common@4.24.0': resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} - '@algolia/client-common@5.1.1': - resolution: {integrity: sha512-jkQNQbGY+XQB3Eln7wqqdUZKBzG8lETcsaUk5gcMc6iIwyN/qW0v0fhpKPH+Kli+BImLxo0CWk12CvVvx2exWA==} + '@algolia/client-common@5.2.5': + resolution: {integrity: sha512-ITE85veJWwClnoNyv7Zydh9U0eKA82cDy8pLw+2hzL+zlzFIvV68ihGOEQ/kXt8N4v+R4MFzvsxnIpMruQzEug==} engines: {node: '>= 14.0.0'} '@algolia/client-personalization@4.24.0': @@ -87,8 +87,8 @@ packages: '@algolia/client-search@4.24.0': resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} - '@algolia/client-search@5.1.1': - resolution: {integrity: sha512-SFpb3FI/VouGou/vpuS7qeCA5Y/KpV42P6CEA/1MZQtl/xJkl6PVjikb+Q9YadeHi2jtDV/aQ6PyiVDnX4PQcw==} + '@algolia/client-search@5.2.5': + resolution: {integrity: sha512-OVDLzm5BEUbJmjfMm7b0Xx8vkK+NyEh7whPHuap2qy0x7RxQDLMXjiKsBbt1WNq+9nfX6+M/f2t0CJ8ENVuyYQ==} engines: {node: '>= 14.0.0'} '@algolia/logger-common@4.24.0': @@ -103,8 +103,8 @@ packages: '@algolia/requester-browser-xhr@4.24.0': resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==} - '@algolia/requester-browser-xhr@5.1.1': - resolution: {integrity: sha512-NXmN1ujJCj5GlJQaMK6DbdiXdcf6nhRef/X40lu9TYi71q9xTo/5RPMI0K2iOp6g07S26BrXFOz6RSV3Ny4LLw==} + '@algolia/requester-browser-xhr@5.2.5': + resolution: {integrity: sha512-Ri73PphNy1ceig94xJW9bPdN7uIYFAjpsABpp2Fsun4DmeZD5a4rMCNwwOXXsbC8h+lUzW34zpUf+h4Nk+eaqA==} engines: {node: '>= 14.0.0'} '@algolia/requester-common@4.24.0': @@ -113,8 +113,8 @@ packages: '@algolia/requester-node-http@4.24.0': resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==} - '@algolia/requester-node-http@5.1.1': - resolution: {integrity: sha512-xwrgnNTIzgxDEx6zuCKSKTPzQLA8fL/WZiVB6fRpIu5agLMjoAi0cWA5YSDbo+2FFxqVgLqKY/Jz6mKmWtY15Q==} + '@algolia/requester-node-http@5.2.5': + resolution: {integrity: sha512-/tTdEuWcWHSe/mGMomWkuaFDoRcpfl/jvGISVTPRq3pJvM1FPAzxlh2MXge6C30aUS9bxh3V0aWwgKFCilzyMQ==} engines: {node: '>= 14.0.0'} '@algolia/transporter@4.24.0': @@ -477,100 +477,97 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - '@rollup/rollup-android-arm-eabi@4.21.0': - resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==} + '@rollup/rollup-android-arm-eabi@4.21.2': + resolution: {integrity: sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.21.0': - resolution: {integrity: sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==} + '@rollup/rollup-android-arm64@4.21.2': + resolution: {integrity: sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.21.0': - resolution: {integrity: sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==} + '@rollup/rollup-darwin-arm64@4.21.2': + resolution: {integrity: sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.21.0': - resolution: {integrity: sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==} + '@rollup/rollup-darwin-x64@4.21.2': + resolution: {integrity: sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.21.0': - resolution: {integrity: sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==} + '@rollup/rollup-linux-arm-gnueabihf@4.21.2': + resolution: {integrity: sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.21.0': - resolution: {integrity: sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==} + '@rollup/rollup-linux-arm-musleabihf@4.21.2': + resolution: {integrity: sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.21.0': - resolution: {integrity: sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==} + '@rollup/rollup-linux-arm64-gnu@4.21.2': + resolution: {integrity: sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.21.0': - resolution: {integrity: sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==} + '@rollup/rollup-linux-arm64-musl@4.21.2': + resolution: {integrity: sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': - resolution: {integrity: sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==} + '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': + resolution: {integrity: sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.21.0': - resolution: {integrity: sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==} + '@rollup/rollup-linux-riscv64-gnu@4.21.2': + resolution: {integrity: sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.21.0': - resolution: {integrity: sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==} + '@rollup/rollup-linux-s390x-gnu@4.21.2': + resolution: {integrity: sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.21.0': - resolution: {integrity: sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==} + '@rollup/rollup-linux-x64-gnu@4.21.2': + resolution: {integrity: sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.21.0': - resolution: {integrity: sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==} + '@rollup/rollup-linux-x64-musl@4.21.2': + resolution: {integrity: sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.21.0': - resolution: {integrity: sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==} + '@rollup/rollup-win32-arm64-msvc@4.21.2': + resolution: {integrity: sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.21.0': - resolution: {integrity: sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==} + '@rollup/rollup-win32-ia32-msvc@4.21.2': + resolution: {integrity: sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.21.0': - resolution: {integrity: sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==} + '@rollup/rollup-win32-x64-msvc@4.21.2': + resolution: {integrity: sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==} cpu: [x64] os: [win32] - '@shikijs/core@1.14.1': - resolution: {integrity: sha512-KyHIIpKNaT20FtFPFjCQB5WVSTpLR/n+jQXhWHWVUMm9MaOaG9BGOG0MSyt7yA4+Lm+4c9rTc03tt3nYzeYSfw==} + '@shikijs/core@1.16.2': + resolution: {integrity: sha512-XSVH5OZCvE4WLMgdoBqfPMYmGHGmCC3OgZhw0S7KcSi2XKZ+5oHGe71GFnTljgdOxvxx5WrRks6QoTLKrl1eAA==} - '@shikijs/core@1.16.1': - resolution: {integrity: sha512-aI0hBtw+a6KsJp2jcD4YuQqKpeCbURMZbhHVozDknJpm+KJqeMRkEnfBC8BaKE/5XC+uofPgCLsa/TkTk0Ba0w==} + '@shikijs/transformers@1.16.2': + resolution: {integrity: sha512-AR6ANiKwi1dJr5g/W0L+Su4PoHurkHLgtNmesbOFOPGKNQC2BeGU/Z2Ghkl+cUF5PfE+UeLkxUwzpE6H37hTSg==} - '@shikijs/transformers@1.14.1': - resolution: {integrity: sha512-JJqL8QBVCJh3L61jqqEXgFq1cTycwjcGj7aSmqOEsbxnETM9hRlaB74QuXvY/fVJNjbNt8nvWo0VwAXKvMSLRg==} + '@shikijs/twoslash@1.16.2': + resolution: {integrity: sha512-WzlCd7KnyfhBvGYb7tAbrxK1a9Rn2tQvAyv36RcggT418O3K5JRygiYAtf11qQjV1Q25TicczaosjPUVStFW0A==} - '@shikijs/twoslash@1.16.1': - resolution: {integrity: sha512-//zj64hG+JmgBizgbwUO7gLQRClHfAhND1taq5K5gcfMk1J2XJ3OGAvWKEuSpKEaIk5qmrM4CVVgo68GBseABg==} - - '@shikijs/vitepress-twoslash@1.16.1': - resolution: {integrity: sha512-ivBeiDFRGLDcYr38RL6FEm2oPyvVVV5ryAX1emuAh61nkZ1a3WnyZtbz2Qk4H70XOIIGNAdtj+nRbcP4qzFuvg==} + '@shikijs/vitepress-twoslash@1.16.2': + resolution: {integrity: sha512-3b4JYm+PfuKgdMGdfoW1LEpECmeGNu8pAJgoT/CUc+VtOt6w1HQjlKTefzzHrPl/69qVt5ol0b88CbeEQcFRqA==} '@shikijs/vscode-textmate@9.2.0': resolution: {integrity: sha512-5FinaOp6Vdh/dl4/yaOTh0ZeKch+rYS8DUb38V3GMKYVkdqzxw53lViRKUYkVILRiVQT7dcPC7VvAKOR73zVtQ==} @@ -617,54 +614,42 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vitejs/plugin-vue@5.1.2': - resolution: {integrity: sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A==} + '@vitejs/plugin-vue@5.1.3': + resolution: {integrity: sha512-3xbWsKEKXYlmX82aOHufFQVnkbMC/v8fLpWwh6hWOUrK5fbbtBh9Q/WWse27BFgSy2/e2c0fz5Scgya9h2GLhw==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 vue: ^3.2.25 - '@volar/language-core@2.4.1': - resolution: {integrity: sha512-9AKhC7Qn2mQYxj7Dz3bVxeOk7gGJladhWixUYKef/o0o7Bm4an+A3XvmcTHVqZ8stE6lBVH++g050tBtJ4TZPQ==} - - '@volar/source-map@2.4.1': - resolution: {integrity: sha512-Xq6ep3OZg9xUqN90jEgB9ztX5SsTz1yiV8wiQbcYNjWkek+Ie3dc8l7AVt3EhDm9mSIR58oWczHkzM2H6HIsmQ==} - - '@vue/compiler-core@3.4.38': - resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==} - - '@vue/compiler-core@3.5.0': - resolution: {integrity: sha512-ja7cpqAOfw4tyFAxgBz70Z42miNDeaqTxExTsnXDLomRpqfyCgyvZvFp482fmsElpfvsoMJUsvzULhvxUTW6Iw==} - - '@vue/compiler-dom@3.4.38': - resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==} + '@volar/language-core@2.4.2': + resolution: {integrity: sha512-sONt5RLvLL1SlBdhyUSthZzuKePbJ7DwFFB9zT0eyWpDl+v7GXGh/RkPxxWaR22bIhYtTzp4Ka1MWatl/53Riw==} - '@vue/compiler-dom@3.5.0': - resolution: {integrity: sha512-xYjUybWZXl+1R/toDy815i4PbeehL2hThiSGkcpmIOCy2HoYyeeC/gAWK/Y/xsoK+GSw198/T5O31bYuQx5uvQ==} + '@volar/source-map@2.4.2': + resolution: {integrity: sha512-qiGfGgeZ5DEarPX3S+HcFktFCjfDrFPCXKeXNbrlB7v8cvtPRm8YVwoXOdGG1NhaL5rMlv5BZPVQyu4EdWWIvA==} - '@vue/compiler-sfc@3.4.38': - resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==} + '@vue/compiler-core@3.5.2': + resolution: {integrity: sha512-1aP7FL2GkqfcskHWGg3lfWQpJnrmewKc+rNJ/hq9WNaAw4BEyJ5QbNChnqmbw+tJ409zdy1XWmUeXXMrCKJcQQ==} - '@vue/compiler-sfc@3.5.0': - resolution: {integrity: sha512-B9DgLtrqok2GLuaFjLlSL15ZG3ZDBiitUH1ecex9guh/ZcA5MCdwuVE6nsfQxktuZY/QY0awJ35/ripIviCQTQ==} + '@vue/compiler-dom@3.5.2': + resolution: {integrity: sha512-QY4DpT8ZIUyu/ZA5gErpSEDocGNEbHmpkZIC/d5jbp/rUF0iOJNigAy3HCCKc0PMMhDlrcysO3ufQ6Ab4MpEcQ==} - '@vue/compiler-ssr@3.4.38': - resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==} + '@vue/compiler-sfc@3.5.2': + resolution: {integrity: sha512-vErEtybSU290LbMW+ChYllI9tNJEdTW1oU+8cZWINZyjlWeTSa9YqDl4/pZJSnozOI+HmcaC1Vz2eFKmXNSXZA==} - '@vue/compiler-ssr@3.5.0': - resolution: {integrity: sha512-E263QZmA1dqRd7c3u/sWTLRMpQOT0aZ8av/L9SoD/v/BVMZaWFHPUUBswS+bzrfvG2suJF8vSLKx6k6ba5SUdA==} + '@vue/compiler-ssr@3.5.2': + resolution: {integrity: sha512-vMtA4tQK/AM3UAYJsmouQzQpgG+h9TKiD5BV+Zt+ZyAMdicxzSEEFGWf/CykRnDpqj9fMfIHPhOezJVNxiXe2A==} '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} - '@vue/devtools-api@7.3.8': - resolution: {integrity: sha512-NURFwmxz4WukFU54IHgyGI2KSejdgHG5JC4xTcWmTWEBIc8aelj9fBy4qsboObGHFp3JIdRxxANO9s2wZA/pVQ==} + '@vue/devtools-api@7.4.4': + resolution: {integrity: sha512-Iqqy9yBFWBbPb/jHlJzU/OrU+iHSJ/e9p/v5pZhm/L5pUCX26z32bvvjPa28vMXxRehbAZTgX8zovOeqBTnhdg==} - '@vue/devtools-kit@7.3.8': - resolution: {integrity: sha512-HYy3MQP1nZ6GbE4vrgJ/UB+MvZnhYmEwCa/UafrEpdpwa+jNCkz1ZdUrC5I7LpkH1ShREEV2/pZlAQdBj+ncLQ==} + '@vue/devtools-kit@7.4.4': + resolution: {integrity: sha512-awK/4NfsUG0nQ7qnTM37m7ZkEUMREyPh8taFCX+uQYps/MTFEum0AD05VeGDRMXwWvMmGIcWX9xp8ZiBddY0jw==} - '@vue/devtools-shared@7.3.8': - resolution: {integrity: sha512-1NiJbn7Yp47nPDWhFZyEKpB2+5/+7JYv8IQnU0ccMrgslPR2dL7u1DIyI7mLqy4HN1ll36gQy0k8GqBYSFgZJw==} + '@vue/devtools-shared@7.4.4': + resolution: {integrity: sha512-yeJULXFHOKIm8yL2JFO050a9ztTVqOCKTqN9JHFxGTJN0b+gjtfn6zC+FfyHUgjwCwf6E3hfKrlohtthcqoYqw==} '@vue/language-core@2.0.29': resolution: {integrity: sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ==} @@ -674,45 +659,28 @@ packages: typescript: optional: true - '@vue/reactivity@3.4.38': - resolution: {integrity: sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==} + '@vue/reactivity@3.5.2': + resolution: {integrity: sha512-lJwWL5bNht+2vIwU/+lnGdH+FKFxzz6z8WkoIJityPLiasWU+HDUvEsC7gm3JFwbTf7Kk+Nr9kJMaPy0HXwwxQ==} - '@vue/reactivity@3.5.0': - resolution: {integrity: sha512-Ew3F5riP3B3ZDGjD3ZKb9uZylTTPSqt8hAf4sGbvbjrjDjrFb3Jm15Tk1/w7WwTE5GbQ2Qhwxx1moc9hr8A/OQ==} + '@vue/runtime-core@3.5.2': + resolution: {integrity: sha512-oU+i9sJjGEMfEhlrJ7SZv7CdSIgUNyBHnWHa0SqU2RF48V3/ATajzpWq1/DkiVJ1mtx+cQFAMKs8s/3cB3YlLQ==} - '@vue/runtime-core@3.4.38': - resolution: {integrity: sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==} + '@vue/runtime-dom@3.5.2': + resolution: {integrity: sha512-2qvysn+oR0QnFKaWZxQ90iVpWAK/WPpYmODHCv24IDXjsBrdHbjLBj9s6YBdPaMuQhs0LNsmhsgZYZBkszLg6g==} - '@vue/runtime-core@3.5.0': - resolution: {integrity: sha512-mQyW0F9FaNRdt8ghkAs+BMG3iQ7LGgWKOpkzUzR5AI5swPNydHGL5hvVTqFaeMzwecF1g0c86H4yFQsSxJhH1w==} - - '@vue/runtime-dom@3.4.38': - resolution: {integrity: sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==} - - '@vue/runtime-dom@3.5.0': - resolution: {integrity: sha512-NQQXjpdXgyYVJ2M56FJ+lSJgZiecgQ2HhxhnQBN95FymXegRNY/N2htI7vOTwpP75pfxhIeYOJ8mE8sW8KAW6A==} - - '@vue/server-renderer@3.4.38': - resolution: {integrity: sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==} + '@vue/server-renderer@3.5.2': + resolution: {integrity: sha512-3POhYCA8KfbmuDuUiNbMXnpdh9pwE4SvAqo7VvACjklLkf3AaMkY3TvV7APeEa/WQezrnL+E4X2ASpJsKeS4cQ==} peerDependencies: - vue: 3.4.38 + vue: 3.5.2 - '@vue/server-renderer@3.5.0': - resolution: {integrity: sha512-HyDIFUg+l7L4PKrEnJlCYWHUOlm6NxZhmSxIefZ5MTYjkIPfDfkwhX7hqxAQHfgIAE1uLMLQZwuNR/ozI0NhZg==} - peerDependencies: - vue: 3.5.0 + '@vue/shared@3.5.2': + resolution: {integrity: sha512-Ce89WNFBzcDca/AgFTxgX4/K4iAyF7oFIp8Z5aBbFBNbtpwnQr+5pZOoHndxnjE2h+YFcipVMzs9UL11XB6dwA==} - '@vue/shared@3.4.38': - resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} + '@vueuse/core@11.0.3': + resolution: {integrity: sha512-RENlh64+SYA9XMExmmH1a3TPqeIuJBNNB/63GT35MZI+zpru3oMRUA6cEFr9HmGqEgUisurwGwnIieF6qu3aXw==} - '@vue/shared@3.5.0': - resolution: {integrity: sha512-m9IgiteBpCkFaMNwCOBkFksA7z8QiKc30ooRuoXWUFRDu0mGyNPlFHmbncF0/Kra1RlX8QrmBbRaIxVvikaR0Q==} - - '@vueuse/core@11.0.1': - resolution: {integrity: sha512-YTrekI18WwEyP3h168Fir94G/HNC27wvXJI21Alm0sPOwvhihfkrvHIe+5PNJq+MpgWdRcsjvE/38JaoKrgZhQ==} - - '@vueuse/integrations@11.0.1': - resolution: {integrity: sha512-V/FQTS/aiV6RTFXOj8cXgqhtNJBvxvbHeLElOUR7N7F3Kr0btS+dkymLB54mFd0Or6uEGpgwwb41cs/q2/rdOg==} + '@vueuse/integrations@11.0.3': + resolution: {integrity: sha512-w6CDisaxs19S5Fd+NPPLFaA3GoX5gxuxrbTTBu0EYap7oH13w75L6C/+7e9mcoF9akhcR6GyYajwVMQEjdapJg==} peerDependencies: async-validator: ^4 axios: ^1 @@ -752,11 +720,11 @@ packages: universal-cookie: optional: true - '@vueuse/metadata@11.0.1': - resolution: {integrity: sha512-dTFvuHFAjLYOiSd+t9Sk7xUiuL6jbfay/eX+g+jaipXXlwKur2VCqBCZX+jfu+2vROUGcUsdn3fJR9KkpadIOg==} + '@vueuse/metadata@11.0.3': + resolution: {integrity: sha512-+FtbO4SD5WpsOcQTcC0hAhNlOid6QNLzqedtquTtQ+CRNBoAt9GuV07c6KNHK1wCmlq8DFPwgiLF2rXwgSHX5Q==} - '@vueuse/shared@11.0.1': - resolution: {integrity: sha512-eAPf5CQB3HR0S76HqrhjBqFYstZfiHWZq8xF9EQmobGBkrhPfErJEhr8aMNQMqd6MkENIx2pblIEfJGlHpClug==} + '@vueuse/shared@11.0.3': + resolution: {integrity: sha512-0rY2m6HS5t27n/Vp5cTDsKTlNnimCqsbh/fmT2LgE+aaU42EMfXo8+bNX91W9I7DDmxfuACXMmrd7d79JxkqWA==} alge@0.8.1: resolution: {integrity: sha512-kiV9nTt+XIauAXsowVygDxMZLplZxDWt0W8plE/nB32/V2ziM/P/TxDbSVK7FYIUt2Xo16h3/htDh199LNPCKQ==} @@ -1096,9 +1064,6 @@ packages: perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} @@ -1106,12 +1071,8 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.4.44: - resolution: {integrity: sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw==} + postcss@8.4.45: + resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} engines: {node: ^10 || ^12 || >=14} preact@10.23.2: @@ -1137,22 +1098,19 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rollup@4.21.0: - resolution: {integrity: sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==} + rollup@4.21.2: + resolution: {integrity: sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - search-insights@2.17.0: - resolution: {integrity: sha512-AskayU3QNsXQzSL6v4LTYST7NNfs2HWyHHB+sdORP9chsytAhro5XRfToAMI/LAVYgNbzowVZTMfBRodgbUHKg==} - - shiki@1.14.1: - resolution: {integrity: sha512-FujAN40NEejeXdzPt+3sZ3F2dx1U24BY2XTY01+MG8mbxCiA2XukXdcbyMyLAHJ/1AUUnQd1tZlvIjefWWEJeA==} + search-insights@2.17.1: + resolution: {integrity: sha512-HHFjYH/0AqXacETlIbe9EYc3UNlQYGNNTY0fZ/sWl6SweX+GDxq9NB5+RVoPLgEFuOtCz7M9dhYxqDnhbbF0eQ==} - shiki@1.16.1: - resolution: {integrity: sha512-tCJIMaxDVB1mEIJ5TvfZU7kCPB5eo9fli5+21Olc/bmyv+w8kye3JOp+LZRmGkAyT71hrkefQhTiY+o9mBikRQ==} + shiki@1.16.2: + resolution: {integrity: sha512-gSym0hZf5a1U0iDPsdoOAZbvoi+e0c6c3NKAi03FoSLTm7oG20tum29+gk0wzzivOasn3loxfGUPT+jZXIUbWg==} slash@5.1.0: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} @@ -1213,8 +1171,8 @@ packages: peerDependencies: typescript: '*' - type-fest@4.25.0: - resolution: {integrity: sha512-bRkIGlXsnGBRBQRAY56UXBm//9qH4bmJfFvq83gSz41N282df+fjy8ofcEgc1sM8geNt5cl6mC2g9Fht1cs8Aw==} + type-fest@4.26.0: + resolution: {integrity: sha512-OduNjVJsFbifKb57UqZ2EMP1i4u64Xwow3NYXUtBbD4vIwJdQd4+xl8YDou1dlm4DVrtwT/7Ky8z8WyCULVfxw==} engines: {node: '>=16'} typescript@5.5.4: @@ -1247,8 +1205,8 @@ packages: vfile@6.0.3: resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - vite@5.4.2: - resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==} + vite@5.4.3: + resolution: {integrity: sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -1278,8 +1236,8 @@ packages: terser: optional: true - vitepress@1.3.3: - resolution: {integrity: sha512-6UzEw/wZ41S/CATby7ea7UlffvRER/uekxgN6hbEvSys9ukmLOKsz87Ehq9yOx1Rwiw+Sj97yjpivP8w1sUmng==} + vitepress@1.3.4: + resolution: {integrity: sha512-I1/F6OW1xl3kW4PaIMC6snxjWgf3qfziq2aqsDoFc/Gt41WbcRv++z8zjw8qGRIJ+I4bUW7ZcKFDHHN/jkH9DQ==} hasBin: true peerDependencies: markdown-it-mathjax3: ^4 @@ -1306,16 +1264,8 @@ packages: peerDependencies: vue: ^3.0.0 - vue@3.4.38: - resolution: {integrity: sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - vue@3.5.0: - resolution: {integrity: sha512-1t70favYoFijwfWJ7g81aTd32obGaAnKYE9FNyMgnEzn3F4YncRi/kqAHHKloG0VXTD8vBYMhbgLKCA+Sk6QDw==} + vue@3.5.2: + resolution: {integrity: sha512-w1YB4lAwC9ByH6AnFY0JvZF+y70Usul9jDfKIKtM5xA97q/JPS5R7mqq0fhA6D2PQxYPZdgb5jzFKLyOga5pnw==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -1330,32 +1280,32 @@ packages: snapshots: - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@5.1.1)(algoliasearch@4.24.0)(search-insights@2.17.0)': + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0)(search-insights@2.17.1)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@5.1.1)(algoliasearch@4.24.0)(search-insights@2.17.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.1.1)(algoliasearch@4.24.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0)(search-insights@2.17.1) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@5.1.1)(algoliasearch@4.24.0)(search-insights@2.17.0)': + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0)(search-insights@2.17.1)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.1.1)(algoliasearch@4.24.0) - search-insights: 2.17.0 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0) + search-insights: 2.17.1 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@5.1.1)(algoliasearch@4.24.0)': + '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.1.1)(algoliasearch@4.24.0) - '@algolia/client-search': 5.1.1 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0) + '@algolia/client-search': 5.2.5 algoliasearch: 4.24.0 - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@5.1.1)(algoliasearch@4.24.0)': + '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0)': dependencies: - '@algolia/client-search': 5.1.1 + '@algolia/client-search': 5.2.5 algoliasearch: 4.24.0 '@algolia/cache-browser-local-storage@4.24.0': @@ -1386,7 +1336,7 @@ snapshots: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-common@5.1.1': {} + '@algolia/client-common@5.2.5': {} '@algolia/client-personalization@4.24.0': dependencies: @@ -1400,11 +1350,11 @@ snapshots: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-search@5.1.1': + '@algolia/client-search@5.2.5': dependencies: - '@algolia/client-common': 5.1.1 - '@algolia/requester-browser-xhr': 5.1.1 - '@algolia/requester-node-http': 5.1.1 + '@algolia/client-common': 5.2.5 + '@algolia/requester-browser-xhr': 5.2.5 + '@algolia/requester-node-http': 5.2.5 '@algolia/logger-common@4.24.0': {} @@ -1430,9 +1380,9 @@ snapshots: dependencies: '@algolia/requester-common': 4.24.0 - '@algolia/requester-browser-xhr@5.1.1': + '@algolia/requester-browser-xhr@5.2.5': dependencies: - '@algolia/client-common': 5.1.1 + '@algolia/client-common': 5.2.5 '@algolia/requester-common@4.24.0': {} @@ -1440,9 +1390,9 @@ snapshots: dependencies: '@algolia/requester-common': 4.24.0 - '@algolia/requester-node-http@5.1.1': + '@algolia/requester-node-http@5.2.5': dependencies: - '@algolia/client-common': 5.1.1 + '@algolia/client-common': 5.2.5 '@algolia/transporter@4.24.0': dependencies: @@ -1466,9 +1416,9 @@ snapshots: '@docsearch/css@3.6.1': {} - '@docsearch/js@3.6.1(@algolia/client-search@5.1.1)(search-insights@2.17.0)': + '@docsearch/js@3.6.1(@algolia/client-search@5.2.5)(search-insights@2.17.1)': dependencies: - '@docsearch/react': 3.6.1(@algolia/client-search@5.1.1)(search-insights@2.17.0) + '@docsearch/react': 3.6.1(@algolia/client-search@5.2.5)(search-insights@2.17.1) preact: 10.23.2 transitivePeerDependencies: - '@algolia/client-search' @@ -1477,14 +1427,14 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.6.1(@algolia/client-search@5.1.1)(search-insights@2.17.0)': + '@docsearch/react@3.6.1(@algolia/client-search@5.2.5)(search-insights@2.17.1)': dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@5.1.1)(algoliasearch@4.24.0)(search-insights@2.17.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@5.1.1)(algoliasearch@4.24.0) + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0)(search-insights@2.17.1) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@5.2.5)(algoliasearch@4.24.0) '@docsearch/css': 3.6.1 algoliasearch: 4.24.0 optionalDependencies: - search-insights: 2.17.0 + search-insights: 2.17.1 transitivePeerDependencies: - '@algolia/client-search' @@ -1656,7 +1606,7 @@ snapshots: string-length: 6.0.0 strip-ansi: 7.1.0 ts-toolbelt: 9.6.0 - type-fest: 4.25.0 + type-fest: 4.26.0 zod: 3.23.8 '@molt/types@0.2.0': @@ -1675,86 +1625,82 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 - '@rollup/rollup-android-arm-eabi@4.21.0': + '@rollup/rollup-android-arm-eabi@4.21.2': optional: true - '@rollup/rollup-android-arm64@4.21.0': + '@rollup/rollup-android-arm64@4.21.2': optional: true - '@rollup/rollup-darwin-arm64@4.21.0': + '@rollup/rollup-darwin-arm64@4.21.2': optional: true - '@rollup/rollup-darwin-x64@4.21.0': + '@rollup/rollup-darwin-x64@4.21.2': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.21.0': + '@rollup/rollup-linux-arm-gnueabihf@4.21.2': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.21.0': + '@rollup/rollup-linux-arm-musleabihf@4.21.2': optional: true - '@rollup/rollup-linux-arm64-gnu@4.21.0': + '@rollup/rollup-linux-arm64-gnu@4.21.2': optional: true - '@rollup/rollup-linux-arm64-musl@4.21.0': + '@rollup/rollup-linux-arm64-musl@4.21.2': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.21.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.21.0': + '@rollup/rollup-linux-riscv64-gnu@4.21.2': optional: true - '@rollup/rollup-linux-s390x-gnu@4.21.0': + '@rollup/rollup-linux-s390x-gnu@4.21.2': optional: true - '@rollup/rollup-linux-x64-gnu@4.21.0': + '@rollup/rollup-linux-x64-gnu@4.21.2': optional: true - '@rollup/rollup-linux-x64-musl@4.21.0': + '@rollup/rollup-linux-x64-musl@4.21.2': optional: true - '@rollup/rollup-win32-arm64-msvc@4.21.0': + '@rollup/rollup-win32-arm64-msvc@4.21.2': optional: true - '@rollup/rollup-win32-ia32-msvc@4.21.0': + '@rollup/rollup-win32-ia32-msvc@4.21.2': optional: true - '@rollup/rollup-win32-x64-msvc@4.21.0': + '@rollup/rollup-win32-x64-msvc@4.21.2': optional: true - '@shikijs/core@1.14.1': - dependencies: - '@types/hast': 3.0.4 - - '@shikijs/core@1.16.1': + '@shikijs/core@1.16.2': dependencies: '@shikijs/vscode-textmate': 9.2.0 '@types/hast': 3.0.4 - '@shikijs/transformers@1.14.1': + '@shikijs/transformers@1.16.2': dependencies: - shiki: 1.14.1 + shiki: 1.16.2 - '@shikijs/twoslash@1.16.1(typescript@5.5.4)': + '@shikijs/twoslash@1.16.2(typescript@5.5.4)': dependencies: - '@shikijs/core': 1.16.1 + '@shikijs/core': 1.16.2 twoslash: 0.2.10(typescript@5.5.4) transitivePeerDependencies: - supports-color - typescript - '@shikijs/vitepress-twoslash@1.16.1(typescript@5.5.4)': + '@shikijs/vitepress-twoslash@1.16.2(typescript@5.5.4)': dependencies: - '@shikijs/twoslash': 1.16.1(typescript@5.5.4) - floating-vue: 5.2.2(vue@3.5.0(typescript@5.5.4)) + '@shikijs/twoslash': 1.16.2(typescript@5.5.4) + floating-vue: 5.2.2(vue@3.5.2(typescript@5.5.4)) mdast-util-from-markdown: 2.0.1 mdast-util-gfm: 3.0.0 mdast-util-to-hast: 13.2.0 - shiki: 1.16.1 + shiki: 1.16.2 twoslash: 0.2.10(typescript@5.5.4) twoslash-vue: 0.2.10(typescript@5.5.4) - vue: 3.5.0(typescript@5.5.4) + vue: 3.5.2(typescript@5.5.4) transitivePeerDependencies: - '@nuxt/kit' - supports-color @@ -1802,89 +1748,59 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.1.2(vite@5.4.2)(vue@3.4.38(typescript@5.5.4))': + '@vitejs/plugin-vue@5.1.3(vite@5.4.3)(vue@3.5.2(typescript@5.5.4))': dependencies: - vite: 5.4.2 - vue: 3.4.38(typescript@5.5.4) + vite: 5.4.3 + vue: 3.5.2(typescript@5.5.4) - '@volar/language-core@2.4.1': + '@volar/language-core@2.4.2': dependencies: - '@volar/source-map': 2.4.1 + '@volar/source-map': 2.4.2 - '@volar/source-map@2.4.1': {} + '@volar/source-map@2.4.2': {} - '@vue/compiler-core@3.4.38': + '@vue/compiler-core@3.5.2': dependencies: '@babel/parser': 7.25.6 - '@vue/shared': 3.4.38 + '@vue/shared': 3.5.2 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-core@3.5.0': + '@vue/compiler-dom@3.5.2': dependencies: - '@babel/parser': 7.25.6 - '@vue/shared': 3.5.0 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.0 - - '@vue/compiler-dom@3.4.38': - dependencies: - '@vue/compiler-core': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-core': 3.5.2 + '@vue/shared': 3.5.2 - '@vue/compiler-dom@3.5.0': - dependencies: - '@vue/compiler-core': 3.5.0 - '@vue/shared': 3.5.0 - - '@vue/compiler-sfc@3.4.38': + '@vue/compiler-sfc@3.5.2': dependencies: '@babel/parser': 7.25.6 - '@vue/compiler-core': 3.4.38 - '@vue/compiler-dom': 3.4.38 - '@vue/compiler-ssr': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-core': 3.5.2 + '@vue/compiler-dom': 3.5.2 + '@vue/compiler-ssr': 3.5.2 + '@vue/shared': 3.5.2 estree-walker: 2.0.2 magic-string: 0.30.11 - postcss: 8.4.41 + postcss: 8.4.45 source-map-js: 1.2.0 - '@vue/compiler-sfc@3.5.0': + '@vue/compiler-ssr@3.5.2': dependencies: - '@babel/parser': 7.25.6 - '@vue/compiler-core': 3.5.0 - '@vue/compiler-dom': 3.5.0 - '@vue/compiler-ssr': 3.5.0 - '@vue/shared': 3.5.0 - estree-walker: 2.0.2 - magic-string: 0.30.11 - postcss: 8.4.44 - source-map-js: 1.2.0 - - '@vue/compiler-ssr@3.4.38': - dependencies: - '@vue/compiler-dom': 3.4.38 - '@vue/shared': 3.4.38 - - '@vue/compiler-ssr@3.5.0': - dependencies: - '@vue/compiler-dom': 3.5.0 - '@vue/shared': 3.5.0 + '@vue/compiler-dom': 3.5.2 + '@vue/shared': 3.5.2 '@vue/compiler-vue2@2.7.16': dependencies: de-indent: 1.0.2 he: 1.2.0 - '@vue/devtools-api@7.3.8': + '@vue/devtools-api@7.4.4': dependencies: - '@vue/devtools-kit': 7.3.8 + '@vue/devtools-kit': 7.4.4 - '@vue/devtools-kit@7.3.8': + '@vue/devtools-kit@7.4.4': dependencies: - '@vue/devtools-shared': 7.3.8 + '@vue/devtools-shared': 7.4.4 birpc: 0.2.17 hookable: 5.5.3 mitt: 3.0.1 @@ -1892,16 +1808,16 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.1 - '@vue/devtools-shared@7.3.8': + '@vue/devtools-shared@7.4.4': dependencies: rfdc: 1.4.1 '@vue/language-core@2.0.29(typescript@5.5.4)': dependencies: - '@volar/language-core': 2.4.1 - '@vue/compiler-dom': 3.5.0 + '@volar/language-core': 2.4.2 + '@vue/compiler-dom': 3.5.2 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.0 + '@vue/shared': 3.5.2 computeds: 0.0.1 minimatch: 9.0.5 muggle-string: 0.4.1 @@ -1909,80 +1825,56 @@ snapshots: optionalDependencies: typescript: 5.5.4 - '@vue/reactivity@3.4.38': - dependencies: - '@vue/shared': 3.4.38 - - '@vue/reactivity@3.5.0': + '@vue/reactivity@3.5.2': dependencies: - '@vue/shared': 3.5.0 + '@vue/shared': 3.5.2 - '@vue/runtime-core@3.4.38': + '@vue/runtime-core@3.5.2': dependencies: - '@vue/reactivity': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/reactivity': 3.5.2 + '@vue/shared': 3.5.2 - '@vue/runtime-core@3.5.0': + '@vue/runtime-dom@3.5.2': dependencies: - '@vue/reactivity': 3.5.0 - '@vue/shared': 3.5.0 - - '@vue/runtime-dom@3.4.38': - dependencies: - '@vue/reactivity': 3.4.38 - '@vue/runtime-core': 3.4.38 - '@vue/shared': 3.4.38 - csstype: 3.1.3 - - '@vue/runtime-dom@3.5.0': - dependencies: - '@vue/reactivity': 3.5.0 - '@vue/runtime-core': 3.5.0 - '@vue/shared': 3.5.0 + '@vue/reactivity': 3.5.2 + '@vue/runtime-core': 3.5.2 + '@vue/shared': 3.5.2 csstype: 3.1.3 - '@vue/server-renderer@3.4.38(vue@3.4.38(typescript@5.5.4))': + '@vue/server-renderer@3.5.2(vue@3.5.2(typescript@5.5.4))': dependencies: - '@vue/compiler-ssr': 3.4.38 - '@vue/shared': 3.4.38 - vue: 3.4.38(typescript@5.5.4) + '@vue/compiler-ssr': 3.5.2 + '@vue/shared': 3.5.2 + vue: 3.5.2(typescript@5.5.4) - '@vue/server-renderer@3.5.0(vue@3.5.0(typescript@5.5.4))': - dependencies: - '@vue/compiler-ssr': 3.5.0 - '@vue/shared': 3.5.0 - vue: 3.5.0(typescript@5.5.4) - - '@vue/shared@3.4.38': {} + '@vue/shared@3.5.2': {} - '@vue/shared@3.5.0': {} - - '@vueuse/core@11.0.1(vue@3.4.38(typescript@5.5.4))': + '@vueuse/core@11.0.3(vue@3.5.2(typescript@5.5.4))': dependencies: '@types/web-bluetooth': 0.0.20 - '@vueuse/metadata': 11.0.1 - '@vueuse/shared': 11.0.1(vue@3.4.38(typescript@5.5.4)) - vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.4)) + '@vueuse/metadata': 11.0.3 + '@vueuse/shared': 11.0.3(vue@3.5.2(typescript@5.5.4)) + vue-demi: 0.14.10(vue@3.5.2(typescript@5.5.4)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/integrations@11.0.1(focus-trap@7.5.4)(vue@3.4.38(typescript@5.5.4))': + '@vueuse/integrations@11.0.3(focus-trap@7.5.4)(vue@3.5.2(typescript@5.5.4))': dependencies: - '@vueuse/core': 11.0.1(vue@3.4.38(typescript@5.5.4)) - '@vueuse/shared': 11.0.1(vue@3.4.38(typescript@5.5.4)) - vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.4)) + '@vueuse/core': 11.0.3(vue@3.5.2(typescript@5.5.4)) + '@vueuse/shared': 11.0.3(vue@3.5.2(typescript@5.5.4)) + vue-demi: 0.14.10(vue@3.5.2(typescript@5.5.4)) optionalDependencies: focus-trap: 7.5.4 transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/metadata@11.0.1': {} + '@vueuse/metadata@11.0.3': {} - '@vueuse/shared@11.0.1(vue@3.4.38(typescript@5.5.4))': + '@vueuse/shared@11.0.3(vue@3.5.2(typescript@5.5.4))': dependencies: - vue-demi: 0.14.10(vue@3.4.38(typescript@5.5.4)) + vue-demi: 0.14.10(vue@3.5.2(typescript@5.5.4)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -2133,17 +2025,11 @@ snapshots: dependencies: to-regex-range: 5.0.1 - floating-vue@5.2.2(vue@3.4.38(typescript@5.5.4)): + floating-vue@5.2.2(vue@3.5.2(typescript@5.5.4)): dependencies: '@floating-ui/dom': 1.1.1 - vue: 3.4.38(typescript@5.5.4) - vue-resize: 2.0.0-alpha.1(vue@3.4.38(typescript@5.5.4)) - - floating-vue@5.2.2(vue@3.5.0(typescript@5.5.4)): - dependencies: - '@floating-ui/dom': 1.1.1 - vue: 3.5.0(typescript@5.5.4) - vue-resize: 2.0.0-alpha.1(vue@3.5.0(typescript@5.5.4)) + vue: 3.5.2(typescript@5.5.4) + vue-resize: 2.0.0-alpha.1(vue@3.5.2(typescript@5.5.4)) focus-trap@7.5.4: dependencies: @@ -2486,19 +2372,11 @@ snapshots: perfect-debounce@1.0.0: {} - picocolors@1.0.1: {} - picocolors@1.1.0: {} picomatch@2.3.1: {} - postcss@8.4.41: - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - postcss@8.4.44: + postcss@8.4.45: dependencies: nanoid: 3.3.7 picocolors: 1.1.0 @@ -2518,42 +2396,37 @@ snapshots: rfdc@1.4.1: {} - rollup@4.21.0: + rollup@4.21.2: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.21.0 - '@rollup/rollup-android-arm64': 4.21.0 - '@rollup/rollup-darwin-arm64': 4.21.0 - '@rollup/rollup-darwin-x64': 4.21.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.21.0 - '@rollup/rollup-linux-arm-musleabihf': 4.21.0 - '@rollup/rollup-linux-arm64-gnu': 4.21.0 - '@rollup/rollup-linux-arm64-musl': 4.21.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.21.0 - '@rollup/rollup-linux-riscv64-gnu': 4.21.0 - '@rollup/rollup-linux-s390x-gnu': 4.21.0 - '@rollup/rollup-linux-x64-gnu': 4.21.0 - '@rollup/rollup-linux-x64-musl': 4.21.0 - '@rollup/rollup-win32-arm64-msvc': 4.21.0 - '@rollup/rollup-win32-ia32-msvc': 4.21.0 - '@rollup/rollup-win32-x64-msvc': 4.21.0 + '@rollup/rollup-android-arm-eabi': 4.21.2 + '@rollup/rollup-android-arm64': 4.21.2 + '@rollup/rollup-darwin-arm64': 4.21.2 + '@rollup/rollup-darwin-x64': 4.21.2 + '@rollup/rollup-linux-arm-gnueabihf': 4.21.2 + '@rollup/rollup-linux-arm-musleabihf': 4.21.2 + '@rollup/rollup-linux-arm64-gnu': 4.21.2 + '@rollup/rollup-linux-arm64-musl': 4.21.2 + '@rollup/rollup-linux-powerpc64le-gnu': 4.21.2 + '@rollup/rollup-linux-riscv64-gnu': 4.21.2 + '@rollup/rollup-linux-s390x-gnu': 4.21.2 + '@rollup/rollup-linux-x64-gnu': 4.21.2 + '@rollup/rollup-linux-x64-musl': 4.21.2 + '@rollup/rollup-win32-arm64-msvc': 4.21.2 + '@rollup/rollup-win32-ia32-msvc': 4.21.2 + '@rollup/rollup-win32-x64-msvc': 4.21.2 fsevents: 2.3.3 run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - search-insights@2.17.0: {} - - shiki@1.14.1: - dependencies: - '@shikijs/core': 1.14.1 - '@types/hast': 3.0.4 + search-insights@2.17.1: {} - shiki@1.16.1: + shiki@1.16.2: dependencies: - '@shikijs/core': 1.16.1 + '@shikijs/core': 1.16.2 '@shikijs/vscode-textmate': 9.2.0 '@types/hast': 3.0.4 @@ -2613,7 +2486,7 @@ snapshots: transitivePeerDependencies: - supports-color - type-fest@4.25.0: {} + type-fest@4.26.0: {} typescript@5.5.4: {} @@ -2652,34 +2525,34 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite@5.4.2: + vite@5.4.3: dependencies: esbuild: 0.21.5 - postcss: 8.4.41 - rollup: 4.21.0 + postcss: 8.4.45 + rollup: 4.21.2 optionalDependencies: fsevents: 2.3.3 - vitepress@1.3.3(@algolia/client-search@5.1.1)(postcss@8.4.44)(search-insights@2.17.0)(typescript@5.5.4): + vitepress@1.3.4(@algolia/client-search@5.2.5)(postcss@8.4.45)(search-insights@2.17.1)(typescript@5.5.4): dependencies: '@docsearch/css': 3.6.1 - '@docsearch/js': 3.6.1(@algolia/client-search@5.1.1)(search-insights@2.17.0) - '@shikijs/core': 1.14.1 - '@shikijs/transformers': 1.14.1 + '@docsearch/js': 3.6.1(@algolia/client-search@5.2.5)(search-insights@2.17.1) + '@shikijs/core': 1.16.2 + '@shikijs/transformers': 1.16.2 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.1.2(vite@5.4.2)(vue@3.4.38(typescript@5.5.4)) - '@vue/devtools-api': 7.3.8 - '@vue/shared': 3.4.38 - '@vueuse/core': 11.0.1(vue@3.4.38(typescript@5.5.4)) - '@vueuse/integrations': 11.0.1(focus-trap@7.5.4)(vue@3.4.38(typescript@5.5.4)) + '@vitejs/plugin-vue': 5.1.3(vite@5.4.3)(vue@3.5.2(typescript@5.5.4)) + '@vue/devtools-api': 7.4.4 + '@vue/shared': 3.5.2 + '@vueuse/core': 11.0.3(vue@3.5.2(typescript@5.5.4)) + '@vueuse/integrations': 11.0.3(focus-trap@7.5.4)(vue@3.5.2(typescript@5.5.4)) focus-trap: 7.5.4 mark.js: 8.11.1 minisearch: 7.1.0 - shiki: 1.14.1 - vite: 5.4.2 - vue: 3.4.38(typescript@5.5.4) + shiki: 1.16.2 + vite: 5.4.3 + vue: 3.5.2(typescript@5.5.4) optionalDependencies: - postcss: 8.4.44 + postcss: 8.4.45 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -2708,35 +2581,21 @@ snapshots: - typescript - universal-cookie - vue-demi@0.14.10(vue@3.4.38(typescript@5.5.4)): - dependencies: - vue: 3.4.38(typescript@5.5.4) - - vue-resize@2.0.0-alpha.1(vue@3.4.38(typescript@5.5.4)): + vue-demi@0.14.10(vue@3.5.2(typescript@5.5.4)): dependencies: - vue: 3.4.38(typescript@5.5.4) + vue: 3.5.2(typescript@5.5.4) - vue-resize@2.0.0-alpha.1(vue@3.5.0(typescript@5.5.4)): + vue-resize@2.0.0-alpha.1(vue@3.5.2(typescript@5.5.4)): dependencies: - vue: 3.5.0(typescript@5.5.4) - - vue@3.4.38(typescript@5.5.4): - dependencies: - '@vue/compiler-dom': 3.4.38 - '@vue/compiler-sfc': 3.4.38 - '@vue/runtime-dom': 3.4.38 - '@vue/server-renderer': 3.4.38(vue@3.4.38(typescript@5.5.4)) - '@vue/shared': 3.4.38 - optionalDependencies: - typescript: 5.5.4 + vue: 3.5.2(typescript@5.5.4) - vue@3.5.0(typescript@5.5.4): + vue@3.5.2(typescript@5.5.4): dependencies: - '@vue/compiler-dom': 3.5.0 - '@vue/compiler-sfc': 3.5.0 - '@vue/runtime-dom': 3.5.0 - '@vue/server-renderer': 3.5.0(vue@3.5.0(typescript@5.5.4)) - '@vue/shared': 3.5.0 + '@vue/compiler-dom': 3.5.2 + '@vue/compiler-sfc': 3.5.2 + '@vue/runtime-dom': 3.5.2 + '@vue/server-renderer': 3.5.2(vue@3.5.2(typescript@5.5.4)) + '@vue/shared': 3.5.2 optionalDependencies: typescript: 5.5.4