From 40e6933fa52eb4a6477e99bec9e18509d7935b20 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Apr 2023 07:54:38 +0100 Subject: [PATCH 001/912] chore(deps): update all non-major dependencies (main) (#20151) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 8 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- pnpm-lock.yaml | 179 +++++++++++++++++++------------ 4 files changed, 116 insertions(+), 75 deletions(-) diff --git a/package.json b/package.json index 79f02b87ab..9df57740f5 100644 --- a/package.json +++ b/package.json @@ -53,12 +53,12 @@ "@types/node": "^18.15.11", "@types/rimraf": "^3.0.2", "@types/semver": "^7.3.13", - "@unocss/reset": "^0.50.8", + "@unocss/reset": "^0.51.2", "case-police": "^0.5.14", "changelogen": "^0.5.2", "crawler": "^1.4.0", "eslint": "^8.38.0", - "eslint-plugin-jsdoc": "^40.1.1", + "eslint-plugin-jsdoc": "^40.1.2", "execa": "^7.1.1", "expect-type": "^0.15.0", "globby": "^13.1.3", @@ -75,10 +75,10 @@ "ufo": "^1.1.1", "unbuild": "^1.2.0", "vite": "^4.2.1", - "vitest": "^0.29.8", + "vitest": "^0.30.0", "vue-tsc": "^1.2.0" }, - "packageManager": "pnpm@8.1.1", + "packageManager": "pnpm@8.2.0", "engines": { "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index acf40c6a93..ba62cb2284 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -36,7 +36,7 @@ "devDependencies": { "playwright": "^1.32.2", "unbuild": "latest", - "vitest": "^0.29.8" + "vitest": "^0.30.0" }, "peerDependencies": { "vue": "^3.2.47" diff --git a/packages/vite/package.json b/packages/vite/package.json index 8cd45476f0..18f70fe156 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -55,7 +55,7 @@ "ufo": "^1.1.1", "unplugin": "^1.3.1", "vite": "~4.2.1", - "vite-node": "^0.29.8", + "vite-node": "^0.30.0", "vite-plugin-checker": "^0.5.6", "vue-bundle-renderer": "^1.0.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 96d7a3f17b..92d68e41a5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ importers: specifier: ^7.3.13 version: 7.3.13 '@unocss/reset': - specifier: ^0.50.8 - version: 0.50.8 + specifier: ^0.51.2 + version: 0.51.2 case-police: specifier: ^0.5.14 version: 0.5.14 @@ -67,8 +67,8 @@ importers: specifier: ^8.38.0 version: 8.38.0 eslint-plugin-jsdoc: - specifier: ^40.1.1 - version: 40.1.1(eslint@8.38.0) + specifier: ^40.1.2 + version: 40.1.2(eslint@8.38.0) execa: specifier: ^7.1.1 version: 7.1.1 @@ -118,8 +118,8 @@ importers: specifier: ^4.2.1 version: 4.2.1(@types/node@18.15.11) vitest: - specifier: ^0.29.8 - version: 0.29.8(playwright@1.32.2) + specifier: ^0.30.0 + version: 0.30.0(playwright@1.32.2) vue-tsc: specifier: ^1.2.0 version: 1.2.0(typescript@5.0.4) @@ -161,7 +161,7 @@ importers: version: link:../../../packages/nuxt vitest: specifier: latest - version: 0.29.8(playwright@1.32.2) + version: 0.30.0(playwright@1.32.2) examples/app-config: devDependencies: @@ -786,8 +786,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 vitest: - specifier: ^0.29.8 - version: 0.29.8(playwright@1.32.2) + specifier: ^0.30.0 + version: 0.30.0(playwright@1.32.2) packages/vite: dependencies: @@ -888,8 +888,8 @@ importers: specifier: ^4.2.1 version: 4.2.1(@types/node@18.15.11) vite-node: - specifier: ^0.29.8 - version: 0.29.8(@types/node@18.15.11) + specifier: ^0.30.0 + version: 0.30.0(@types/node@18.15.11) vite-plugin-checker: specifier: ^0.5.6 version: 0.5.6(eslint@8.38.0)(typescript@5.0.3)(vite@4.2.1)(vue-tsc@1.2.0) @@ -2611,8 +2611,8 @@ packages: resolution: {integrity: sha512-m6+M3E2cTPhX+2aKocRfDqQt7ebEtjJHH8sVYpX8xJoN0vOqjSNmUYc6AIkwUYljx4QbEC3thcQSbqel82RbXQ==} dev: true - /@unocss/reset@0.50.8: - resolution: {integrity: sha512-2WoM6O9VyuHDPAnvCXr7LBJQ8ZRHDnuQAFsL1dWXp561Iq2l9whdNtPuMcozLGJGUUrFfVBXIrHY4sfxxScgWg==} + /@unocss/reset@0.51.2: + resolution: {integrity: sha512-HWn3qSdYT+VE1IiMgsXz5bE9pQF5SXWr7EIjFj2seb+YQkaf266vaUNUM5ln/uD6mWWwuo3TZSrA5+Vz4darkw==} dev: true /@unocss/scope@0.45.30: @@ -2724,33 +2724,41 @@ packages: vite: 4.2.1(@types/node@18.15.11) vue: 3.2.47 - /@vitest/expect@0.29.8: - resolution: {integrity: sha512-xlcVXn5I5oTq6NiZSY3ykyWixBxr5mG8HYtjvpgg6KaqHm0mvhX18xuwl5YGxIRNt/A5jidd7CWcNHrSvgaQqQ==} + /@vitest/expect@0.30.0: + resolution: {integrity: sha512-b/jLWBqi6WQHfezWm8VjgXdIyfejAurtxqdyCdDqoToCim5W/nDxKjFAADitEHPz80oz+IP+c+wmkGKBucSpiw==} dependencies: - '@vitest/spy': 0.29.8 - '@vitest/utils': 0.29.8 + '@vitest/spy': 0.30.0 + '@vitest/utils': 0.30.0 chai: 4.3.7 dev: true - /@vitest/runner@0.29.8: - resolution: {integrity: sha512-FzdhnRDwEr/A3Oo1jtIk/B952BBvP32n1ObMEb23oEJNO+qO5cBet6M2XWIDQmA7BDKGKvmhUf2naXyp/2JEwQ==} + /@vitest/runner@0.30.0: + resolution: {integrity: sha512-Xh4xkdRcymdeRNrSwjhgarCTSgnQu2J59wsFI6i4UhKrL5whzo5+vWyq7iWK1ht3fppPeNAtvkbqUDf+OJSCbQ==} dependencies: - '@vitest/utils': 0.29.8 + '@vitest/utils': 0.30.0 + concordance: 5.0.4 p-limit: 4.0.0 pathe: 1.1.0 dev: true - /@vitest/spy@0.29.8: - resolution: {integrity: sha512-VdjBe9w34vOMl5I5mYEzNX8inTxrZ+tYUVk9jxaZJmHFwmDFC/GV3KBFTA/JKswr3XHvZL+FE/yq5EVhb6pSAw==} + /@vitest/snapshot@0.30.0: + resolution: {integrity: sha512-e4eSGCy36Bw3/Tkir9qYJDlFsUz3NALFPNJSxzlY8CFl901TV9iZdKgpqXpyG1sAhLO0tPHThBAMHRi8hRA8cg==} dependencies: - tinyspy: 1.1.1 + magic-string: 0.30.0 + pathe: 1.1.0 + pretty-format: 27.5.1 dev: true - /@vitest/utils@0.29.8: - resolution: {integrity: sha512-qGzuf3vrTbnoY+RjjVVIBYfuWMjn3UMUqyQtdGNZ6ZIIyte7B37exj6LaVkrZiUTvzSadVvO/tJm8AEgbGCBPg==} + /@vitest/spy@0.30.0: + resolution: {integrity: sha512-olTWyG5gVWdfhCrdgxWQb2K3JYtj1/ZwInFFOb4GZ2HFI91PUWHWHhLRPORxwRwVvoXD1MS1162vPJZuHlKJkg==} dependencies: - cli-truncate: 3.1.0 - diff: 5.1.0 + tinyspy: 2.1.0 + dev: true + + /@vitest/utils@0.30.0: + resolution: {integrity: sha512-qFZgoOKQ+rJV9xG4BBxgOSilnLQ2gkfG4I+z1wBuuQ3AD33zQrnB88kMFfzsot1E1AbF3dNK1e4CU7q3ojahRA==} + dependencies: + concordance: 5.0.4 loupe: 2.3.6 pretty-format: 27.5.1 dev: true @@ -3175,6 +3183,7 @@ packages: /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} + dev: false /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} @@ -3196,6 +3205,7 @@ packages: /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + dev: false /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} @@ -3393,6 +3403,10 @@ packages: readable-stream: 3.6.2 dev: false + /blueimp-md5@2.19.0: + resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} + dev: true + /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -3663,14 +3677,6 @@ packages: engines: {node: '>=6'} dev: false - /cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - slice-ansi: 5.0.0 - string-width: 5.1.2 - dev: true - /cli-width@4.0.0: resolution: {integrity: sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==} engines: {node: '>= 12'} @@ -3774,6 +3780,20 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + /concordance@5.0.4: + resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} + engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} + dependencies: + date-time: 3.1.0 + esutils: 2.0.3 + fast-diff: 1.2.0 + js-string-escape: 1.0.1 + lodash: 4.17.21 + md5-hex: 3.0.1 + semver: 7.3.8 + well-known-symbols: 2.0.0 + dev: true + /consola@2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} @@ -4064,6 +4084,13 @@ packages: engines: {node: '>= 12'} dev: false + /date-time@3.1.0: + resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} + engines: {node: '>=6'} + dependencies: + time-zone: 1.0.0 + dev: true + /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -4202,11 +4229,6 @@ packages: engines: {node: '>=0.3.1'} dev: false - /diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} - engines: {node: '>=0.3.1'} - dev: true - /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -4299,6 +4321,7 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: false /ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} @@ -4318,6 +4341,7 @@ packages: /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: false /emojis-list@3.0.0: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} @@ -4847,8 +4871,8 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc@40.1.1(eslint@8.38.0): - resolution: {integrity: sha512-KxrQCq9pPt7LNeDBlLlnuJMpDFZnEQTs4e25NrT4u5cWmPw2P7F03F2qwPz0GMdlRZTyMOofuPAdiWytvPubvA==} + /eslint-plugin-jsdoc@40.1.2(eslint@8.38.0): + resolution: {integrity: sha512-U4Kt42OVjF0EXOWPEc8pjanT8O1ULvILwgA5k87CnhrCKG4xaJ8Sjsb6CWgDtaemOywN06u86duKU1yMaBp7IQ==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -5154,6 +5178,10 @@ packages: /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + /fast-diff@1.2.0: + resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} + dev: true + /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} @@ -5931,11 +5959,6 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - /is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - dev: true - /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -6111,6 +6134,11 @@ packages: /js-sdsl@4.3.0: resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==} + /js-string-escape@1.0.1: + resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} + engines: {node: '>= 0.8'} + dev: true + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -6439,6 +6467,13 @@ packages: markdown-it: 13.0.1 dev: true + /md5-hex@3.0.1: + resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} + engines: {node: '>=8'} + dependencies: + blueimp-md5: 2.19.0 + dev: true + /mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} dev: false @@ -8054,14 +8089,6 @@ packages: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} - /slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - dev: true - /smob@0.0.6: resolution: {integrity: sha512-V21+XeNni+tTyiST1MHsa84AQhT1aFZipzPpOFAVB8DkHzwJyjjAmt9bgwnuZiZWnIbMo2duE29wybxv/7HWUw==} @@ -8163,6 +8190,7 @@ packages: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.0.1 + dev: false /string.prototype.trim@1.2.7: resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} @@ -8210,6 +8238,7 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 + dev: false /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} @@ -8392,6 +8421,11 @@ packages: webpack: 5.78.0 dev: false + /time-zone@1.0.0: + resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==} + engines: {node: '>=4'} + dev: true + /tiny-glob@0.2.9: resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} dependencies: @@ -8412,8 +8446,8 @@ packages: engines: {node: '>=14.0.0'} dev: true - /tinyspy@1.1.1: - resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==} + /tinyspy@2.1.0: + resolution: {integrity: sha512-7eORpyqImoOvkQJCSkL0d0mB4NHHIFAy4b1u8PHdDa7SjGS2njzl6/lyGoZLm+eyYEtlUmFGE0rFj66SWxZgQQ==} engines: {node: '>=14.0.0'} dev: true @@ -8895,9 +8929,9 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.29.8(@types/node@18.15.11): - resolution: {integrity: sha512-b6OtCXfk65L6SElVM20q5G546yu10/kNrhg08afEoWlFRJXFq9/6glsvSVY+aI6YeC1tu2TtAqI2jHEQmOmsFw==} - engines: {node: '>=v14.16.0'} + /vite-node@0.30.0(@types/node@18.15.11): + resolution: {integrity: sha512-23X5Ggylx0kU/bMf8MCcEEl55d/gsTtU81mMZjm7Z0FSpgKZexUqmX3mJtgglP9SySQQs9ydYg/GEahi/cKHaA==} + engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 @@ -9035,9 +9069,9 @@ packages: optionalDependencies: fsevents: 2.3.2 - /vitest@0.29.8(playwright@1.32.2): - resolution: {integrity: sha512-JIAVi2GK5cvA6awGpH0HvH/gEG9PZ0a/WoxdiV3PmqK+3CjQMf8c+J/Vhv4mdZ2nRyXFw66sAg6qz7VNkaHfDQ==} - engines: {node: '>=v14.16.0'} + /vitest@0.30.0(playwright@1.32.2): + resolution: {integrity: sha512-2WW4WeTHtrLFeoiuotWvEW6khozx1NvMGYoGsNz2btdddEbqvEdPJIouIdoiC5i61Rl1ctZvm9cn2R9TcPQlzw==} + engines: {node: '>=v14.18.0'} hasBin: true peerDependencies: '@edge-runtime/vm': '*' @@ -9069,16 +9103,19 @@ packages: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 '@types/node': 18.15.11 - '@vitest/expect': 0.29.8 - '@vitest/runner': 0.29.8 - '@vitest/spy': 0.29.8 - '@vitest/utils': 0.29.8 + '@vitest/expect': 0.30.0 + '@vitest/runner': 0.30.0 + '@vitest/snapshot': 0.30.0 + '@vitest/spy': 0.30.0 + '@vitest/utils': 0.30.0 acorn: 8.8.2 acorn-walk: 8.2.0 cac: 6.7.14 chai: 4.3.7 + concordance: 5.0.4 debug: 4.3.4 local-pkg: 0.4.3 + magic-string: 0.30.0 pathe: 1.1.0 picocolors: 1.0.0 playwright: 1.32.2 @@ -9087,9 +9124,8 @@ packages: strip-literal: 1.0.1 tinybench: 2.4.0 tinypool: 0.4.0 - tinyspy: 1.1.1 vite: 4.2.1(@types/node@18.15.11) - vite-node: 0.29.8(@types/node@18.15.11) + vite-node: 0.30.0(@types/node@18.15.11) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -9372,6 +9408,11 @@ packages: webpack: 5.78.0 dev: false + /well-known-symbols@2.0.0: + resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==} + engines: {node: '>=6'} + dev: true + /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: From 3af37e9482c6346fb5f708a6575a8a3a778d5810 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Apr 2023 01:49:36 -0700 Subject: [PATCH 002/912] chore(deps): update devdependency rimraf to v5 (main) (#20163) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 56 +++++++++++++++++++++++++++++--------------------- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 9df57740f5..ae143ec76e 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "nuxt": "workspace:*", "ofetch": "^1.0.1", "pathe": "^1.1.0", - "rimraf": "^4.4.1", + "rimraf": "^5.0.0", "semver": "^7.3.8", "std-env": "^3.3.2", "typescript": "^5.0.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92d68e41a5..a221b9f39c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -97,8 +97,8 @@ importers: specifier: ^1.1.0 version: 1.1.0 rimraf: - specifier: ^4.4.1 - version: 4.4.1 + specifier: ^5.0.0 + version: 5.0.0 semver: specifier: ^7.3.8 version: 7.3.8 @@ -5513,6 +5513,16 @@ packages: /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + /glob@10.0.0: + resolution: {integrity: sha512-zmp9ZDC6NpDNLujV2W2n+3lH+BafIVZ4/ct+Yj3BMZTH/+bgm/eVjHzeFLwxJrrIGgjjS2eiQLlpurHsNlEAtQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + fs.realpath: 1.0.0 + minimatch: 9.0.0 + minipass: 5.0.0 + path-scurry: 1.6.4 + dev: true + /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -5544,16 +5554,6 @@ packages: minimatch: 5.1.6 once: 1.4.0 - /glob@9.2.1: - resolution: {integrity: sha512-Pxxgq3W0HyA3XUvSXcFhRSs+43Jsx0ddxcFrbjxNGkL2Ak5BAUBxLqI5G6ADDeCHLfzzXFhe0b1yYcctGmytMA==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - fs.realpath: 1.0.0 - minimatch: 7.4.2 - minipass: 4.2.5 - path-scurry: 1.6.1 - dev: true - /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -6417,6 +6417,11 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + /lru-cache@9.0.0: + resolution: {integrity: sha512-9AEKXzvOZc4BMacFnYiTOlDH/197LNnQIK9wZ6iMB5NXPzuv4bWR/Msv7iUMplkiMQ1qQL+KSv/JF1mZAB5Lrg==} + engines: {node: '>=16.14'} + dev: true + /magic-string@0.30.0: resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} engines: {node: '>=12'} @@ -6591,9 +6596,9 @@ packages: dependencies: brace-expansion: 2.0.1 - /minimatch@7.4.2: - resolution: {integrity: sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==} - engines: {node: '>=10'} + /minimatch@9.0.0: + resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 dev: true @@ -6612,6 +6617,11 @@ packages: resolution: {integrity: sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==} engines: {node: '>=8'} + /minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + dev: true + /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -7116,12 +7126,12 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-scurry@1.6.1: - resolution: {integrity: sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==} - engines: {node: '>=14'} + /path-scurry@1.6.4: + resolution: {integrity: sha512-Qp/9IHkdNiXJ3/Kon++At2nVpnhRiPq/aSvQN+H3U1WZbvNRK0RIQK/o4HMqPoXjpuGJUEWpHSs6Mnjxqh3TQg==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 7.18.3 - minipass: 4.2.5 + lru-cache: 9.0.0 + minipass: 5.0.0 dev: true /path-type@4.0.0: @@ -7825,12 +7835,12 @@ packages: dependencies: glob: 7.2.3 - /rimraf@4.4.1: - resolution: {integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==} + /rimraf@5.0.0: + resolution: {integrity: sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==} engines: {node: '>=14'} hasBin: true dependencies: - glob: 9.2.1 + glob: 10.0.0 dev: true /rollup-plugin-dts@5.3.0(rollup@3.20.2)(typescript@5.0.3): From e99f923aa50d49cff71bea945e893c8373e7dec1 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Apr 2023 12:33:14 +0100 Subject: [PATCH 003/912] feat(nuxt): add experimental View Transitions API support (#20092) --- docs/1.getting-started/5.transitions.md | 32 +++++++++++ packages/nuxt/src/app/nuxt.ts | 1 + .../app/plugins/view-transitions.client.ts | 55 +++++++++++++++++++ packages/nuxt/src/core/nuxt.ts | 6 ++ packages/schema/src/config/experimental.ts | 7 +++ 5 files changed, 101 insertions(+) create mode 100644 packages/nuxt/src/app/plugins/view-transitions.client.ts diff --git a/docs/1.getting-started/5.transitions.md b/docs/1.getting-started/5.transitions.md index 2696b7dbcd..082ad63cdc 100644 --- a/docs/1.getting-started/5.transitions.md +++ b/docs/1.getting-started/5.transitions.md @@ -408,3 +408,35 @@ When `` is used in `app.vue`, transition-props can be passed directl ::alert{type="warning"} Remember, this page transition cannot be overridden with `definePageMeta` on individual pages. :: + +## View Transitions API (experimental) + +Nuxt ships with an experimental implementation of the [**View Transitions API**](https://developer.chrome.com/docs/web-platform/view-transitions/) (see [MDN](https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API)). This is an exciting new way to implement native browser transitions which (among other things) have the ability to transition between unrelated elements on different pages. + +The Nuxt integration is under active development, but can be enabled with the `experimental.viewTransition` option in your configuration file: + +```ts [nuxt.config.ts] +export default defineNuxtConfig({ + experimental: { + viewTransition: true + } +}) +``` + +If you are also using Vue transitions like `pageTransition` and `layoutTransition` (see above) to achieve the same result as the new View Transitions API, then you may wish to _disable_ Vue transitions if the user's browser supports the newer, native web API. You can do this by creating `~/middleware/disable-vue-transitions.global.ts` with the following contents: + +```js +export default defineNuxtRouteMiddleware(to => { + if (!document.startViewTransition) { return } + + // Disable built-in Vue transitions + to.meta.pageTransition = false + to.meta.layoutTransition = false +}) +``` + +### Known issues + +- View transitions may not work as expected with nested pages/layouts/async components owing to this upstream Vue bug: . If you make use of this pattern, you may need to delay adopting this experimental feature or implement it yourself. Feedback is very welcome. + +- If you perform data fetching within your page setup functions, that you may wish to reconsider using this feature for the moment. (By design, View Transitions completely freeze DOM updates whilst they are taking place.) We're looking at restrict the View Transition to the final moments before `` resolves, but in the interim you may want to consider carefully whether to adopt this feature if this describes you. diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index 35751ffe20..41812dd231 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -42,6 +42,7 @@ export interface RuntimeNuxtHooks { 'link:prefetch': (link: string) => HookResult 'page:start': (Component?: VNode) => HookResult 'page:finish': (Component?: VNode) => HookResult + 'page:transition:start': () => HookResult 'page:transition:finish': (Component?: VNode) => HookResult 'vue:setup': () => void 'vue:error': (...args: Parameters[0]>) => HookResult diff --git a/packages/nuxt/src/app/plugins/view-transitions.client.ts b/packages/nuxt/src/app/plugins/view-transitions.client.ts new file mode 100644 index 0000000000..7489f585da --- /dev/null +++ b/packages/nuxt/src/app/plugins/view-transitions.client.ts @@ -0,0 +1,55 @@ +import { useRouter } from '#app/composables/router' +import { defineNuxtPlugin } from '#app/nuxt' + +export default defineNuxtPlugin((nuxtApp) => { + if (!document.startViewTransition) { return } + + let finishTransition: undefined | (() => void) + let abortTransition: undefined | (() => void) + + const router = useRouter() + + router.beforeResolve((to) => { + if (to.meta.pageTransition === false) { return } + + const promise = new Promise((resolve, reject) => { + finishTransition = resolve + abortTransition = reject + }) + + let changeRoute: () => void + const ready = new Promise(resolve => (changeRoute = resolve)) + + const transition = document.startViewTransition!(() => { + changeRoute() + return promise + }) + + transition.finished.then(() => { + abortTransition = undefined + finishTransition = undefined + }) + + return ready + }) + + nuxtApp.hook('vue:error', () => { + abortTransition?.() + abortTransition = undefined + }) + + nuxtApp.hook('page:finish', () => { + finishTransition?.() + finishTransition = undefined + }) +}) + +declare global { + interface Document { + startViewTransition?: (callback: () => Promise | void) => { + finished: Promise + updateCallbackDone: Promise + ready: Promise + } + } +} diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index e281c241eb..45405aa0f9 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -281,6 +281,12 @@ async function initNuxt (nuxt: Nuxt) { addPlugin(resolve(nuxt.options.appDir, 'plugins/restore-state.client')) } + // Add experimental automatic view transition api support + if (nuxt.options.experimental.viewTransition) { + addPlugin(resolve(nuxt.options.appDir, 'plugins/view-transitions.client')) + } + + // Add experimental support for custom types in JSON payload if (nuxt.options.experimental.renderJsonPayloads) { nuxt.hook('modules:done', () => { nuxt.options.plugins.unshift(resolve(nuxt.options.appDir, 'plugins/revive-payload.client')) diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index 36162e53cd..70326c2e45 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -121,6 +121,13 @@ export default defineUntypedSchema({ /** Enable cross-origin prefetch using the Speculation Rules API. */ crossOriginPrefetch: false, + /** + * Enable View Transition API integration with client-side router. + * + * @see https://developer.chrome.com/docs/web-platform/view-transitions + */ + viewTransition: false, + /** * Write early hints when using node server. * From b33b84d57ed98f5ffefd32d06226160f22dc02f7 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Apr 2023 12:36:07 +0100 Subject: [PATCH 004/912] chore: use workspace ref --- test/fixtures/basic/package.json | 2 +- test/fixtures/minimal/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/fixtures/basic/package.json b/test/fixtures/basic/package.json index 550891cd18..d4090519f1 100644 --- a/test/fixtures/basic/package.json +++ b/test/fixtures/basic/package.json @@ -5,6 +5,6 @@ "build": "nuxi build" }, "dependencies": { - "nuxt": "latest" + "nuxt": "workspace:*" } } diff --git a/test/fixtures/minimal/package.json b/test/fixtures/minimal/package.json index cbe087ad79..b3c2d82157 100644 --- a/test/fixtures/minimal/package.json +++ b/test/fixtures/minimal/package.json @@ -5,6 +5,6 @@ "build": "nuxi build" }, "dependencies": { - "nuxt": "latest" + "nuxt": "workspace:*" } } From 4a6f85277d55243264a99f59f52c8f877e268277 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Apr 2023 12:36:36 +0100 Subject: [PATCH 005/912] chore: use `overrides` --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae143ec76e..ad9b5a7e51 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "test:unit": "JITI_ESM_RESOLVE=1 vitest run --dir packages", "typecheck": "tsc --noEmit" }, - "resolutions": { + "overrides": { "@nuxt/kit": "workspace:*", "@nuxt/schema": "workspace:*", "@nuxt/test-utils": "workspace:*", From a15a9b66fa4e30c2ff1b9a97247dae7c13f36b2f Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Apr 2023 12:41:19 +0100 Subject: [PATCH 006/912] chore: correctly nest `overrides` --- package.json | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index ad9b5a7e51..0ca298604f 100644 --- a/package.json +++ b/package.json @@ -27,19 +27,21 @@ "test:unit": "JITI_ESM_RESOLVE=1 vitest run --dir packages", "typecheck": "tsc --noEmit" }, - "overrides": { - "@nuxt/kit": "workspace:*", - "@nuxt/schema": "workspace:*", - "@nuxt/test-utils": "workspace:*", - "@nuxt/vite-builder": "workspace:*", - "@nuxt/webpack-builder": "workspace:*", - "nuxi": "workspace:*", - "nuxt": "workspace:*", - "nuxt3": "workspace:nuxt@*", - "unbuild": "^1.2.0", - "vite": "^4.2.1", - "vue": "3.2.47", - "magic-string": "^0.30.0" + "pnpm": { + "overrides": { + "@nuxt/kit": "workspace:*", + "@nuxt/schema": "workspace:*", + "@nuxt/test-utils": "workspace:*", + "@nuxt/vite-builder": "workspace:*", + "@nuxt/webpack-builder": "workspace:*", + "nuxi": "workspace:*", + "nuxt": "workspace:*", + "nuxt3": "workspace:nuxt@*", + "unbuild": "^1.2.0", + "vite": "^4.2.1", + "vue": "3.2.47", + "magic-string": "^0.30.0" + } }, "devDependencies": { "@actions/core": "^1.10.0", From ae5df72c56a3bfac50f019dc0e5460aa9b292cf1 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Apr 2023 13:17:17 +0100 Subject: [PATCH 007/912] ci: use `head_ref` for dependency deduping --- .github/workflows/autofix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index 3c47e98c69..e062b5a8e4 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -24,7 +24,7 @@ jobs: run: pnpm install - name: Dedupe dependencies - if: ${{ contains(github.ref_name, 'renovate') }} + if: ${{ contains(github.head_ref, 'renovate') }} run: pnpm dedupe - name: Build (stub) From 8e00026d4aed18a7c8e208c9069547c34e6fd1f9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Apr 2023 05:28:51 -0700 Subject: [PATCH 008/912] chore(deps): update dependency esbuild to ^0.17.16 (main) (#20165) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- packages/vite/package.json | 2 +- pnpm-lock.yaml | 175 ++++++++++++++++++------------------- 2 files changed, 86 insertions(+), 91 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 18f70fe156..63ad91ad63 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -32,7 +32,7 @@ "clear": "^0.1.0", "cssnano": "^6.0.0", "defu": "^6.1.2", - "esbuild": "^0.17.15", + "esbuild": "^0.17.16", "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", "externality": "^1.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a221b9f39c..ba545f752f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -819,8 +819,8 @@ importers: specifier: ^6.1.2 version: 6.1.2 esbuild: - specifier: ^0.17.15 - version: 0.17.15 + specifier: ^0.17.16 + version: 0.17.16 escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -892,7 +892,7 @@ importers: version: 0.30.0(@types/node@18.15.11) vite-plugin-checker: specifier: ^0.5.6 - version: 0.5.6(eslint@8.38.0)(typescript@5.0.3)(vite@4.2.1)(vue-tsc@1.2.0) + version: 0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.2.1)(vue-tsc@1.2.0) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 @@ -1389,8 +1389,8 @@ packages: jsdoc-type-pratt-parser: 4.0.0 dev: true - /@esbuild/android-arm64@0.17.15: - resolution: {integrity: sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA==} + /@esbuild/android-arm64@0.17.16: + resolution: {integrity: sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -1406,72 +1406,72 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.17.15: - resolution: {integrity: sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg==} + /@esbuild/android-arm@0.17.16: + resolution: {integrity: sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw==} engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true optional: true - /@esbuild/android-x64@0.17.15: - resolution: {integrity: sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ==} + /@esbuild/android-x64@0.17.16: + resolution: {integrity: sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.17.15: - resolution: {integrity: sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA==} + /@esbuild/darwin-arm64@0.17.16: + resolution: {integrity: sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@esbuild/darwin-x64@0.17.15: - resolution: {integrity: sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg==} + /@esbuild/darwin-x64@0.17.16: + resolution: {integrity: sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.17.15: - resolution: {integrity: sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg==} + /@esbuild/freebsd-arm64@0.17.16: + resolution: {integrity: sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.17.15: - resolution: {integrity: sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ==} + /@esbuild/freebsd-x64@0.17.16: + resolution: {integrity: sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/linux-arm64@0.17.15: - resolution: {integrity: sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA==} + /@esbuild/linux-arm64@0.17.16: + resolution: {integrity: sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-arm@0.17.15: - resolution: {integrity: sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw==} + /@esbuild/linux-arm@0.17.16: + resolution: {integrity: sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ia32@0.17.15: - resolution: {integrity: sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q==} + /@esbuild/linux-ia32@0.17.16: + resolution: {integrity: sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1487,96 +1487,96 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.17.15: - resolution: {integrity: sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ==} + /@esbuild/linux-loong64@0.17.16: + resolution: {integrity: sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.17.15: - resolution: {integrity: sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ==} + /@esbuild/linux-mips64el@0.17.16: + resolution: {integrity: sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.17.15: - resolution: {integrity: sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg==} + /@esbuild/linux-ppc64@0.17.16: + resolution: {integrity: sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.17.15: - resolution: {integrity: sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA==} + /@esbuild/linux-riscv64@0.17.16: + resolution: {integrity: sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-s390x@0.17.15: - resolution: {integrity: sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg==} + /@esbuild/linux-s390x@0.17.16: + resolution: {integrity: sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-x64@0.17.15: - resolution: {integrity: sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg==} + /@esbuild/linux-x64@0.17.16: + resolution: {integrity: sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.17.15: - resolution: {integrity: sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA==} + /@esbuild/netbsd-x64@0.17.16: + resolution: {integrity: sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.17.15: - resolution: {integrity: sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w==} + /@esbuild/openbsd-x64@0.17.16: + resolution: {integrity: sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true optional: true - /@esbuild/sunos-x64@0.17.15: - resolution: {integrity: sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ==} + /@esbuild/sunos-x64@0.17.16: + resolution: {integrity: sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true optional: true - /@esbuild/win32-arm64@0.17.15: - resolution: {integrity: sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q==} + /@esbuild/win32-arm64@0.17.16: + resolution: {integrity: sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-ia32@0.17.15: - resolution: {integrity: sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w==} + /@esbuild/win32-ia32@0.17.16: + resolution: {integrity: sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-x64@0.17.15: - resolution: {integrity: sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA==} + /@esbuild/win32-x64@0.17.16: + resolution: {integrity: sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -4603,7 +4603,7 @@ packages: peerDependencies: webpack: ^4.40.0 || ^5.0.0 dependencies: - esbuild: 0.17.15 + esbuild: 0.17.16 get-tsconfig: 4.4.0 loader-utils: 2.0.4 webpack: 5.78.0 @@ -4694,34 +4694,34 @@ packages: esbuild-windows-arm64: 0.15.18 dev: true - /esbuild@0.17.15: - resolution: {integrity: sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw==} + /esbuild@0.17.16: + resolution: {integrity: sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.17.15 - '@esbuild/android-arm64': 0.17.15 - '@esbuild/android-x64': 0.17.15 - '@esbuild/darwin-arm64': 0.17.15 - '@esbuild/darwin-x64': 0.17.15 - '@esbuild/freebsd-arm64': 0.17.15 - '@esbuild/freebsd-x64': 0.17.15 - '@esbuild/linux-arm': 0.17.15 - '@esbuild/linux-arm64': 0.17.15 - '@esbuild/linux-ia32': 0.17.15 - '@esbuild/linux-loong64': 0.17.15 - '@esbuild/linux-mips64el': 0.17.15 - '@esbuild/linux-ppc64': 0.17.15 - '@esbuild/linux-riscv64': 0.17.15 - '@esbuild/linux-s390x': 0.17.15 - '@esbuild/linux-x64': 0.17.15 - '@esbuild/netbsd-x64': 0.17.15 - '@esbuild/openbsd-x64': 0.17.15 - '@esbuild/sunos-x64': 0.17.15 - '@esbuild/win32-arm64': 0.17.15 - '@esbuild/win32-ia32': 0.17.15 - '@esbuild/win32-x64': 0.17.15 + '@esbuild/android-arm': 0.17.16 + '@esbuild/android-arm64': 0.17.16 + '@esbuild/android-x64': 0.17.16 + '@esbuild/darwin-arm64': 0.17.16 + '@esbuild/darwin-x64': 0.17.16 + '@esbuild/freebsd-arm64': 0.17.16 + '@esbuild/freebsd-x64': 0.17.16 + '@esbuild/linux-arm': 0.17.16 + '@esbuild/linux-arm64': 0.17.16 + '@esbuild/linux-ia32': 0.17.16 + '@esbuild/linux-loong64': 0.17.16 + '@esbuild/linux-mips64el': 0.17.16 + '@esbuild/linux-ppc64': 0.17.16 + '@esbuild/linux-riscv64': 0.17.16 + '@esbuild/linux-s390x': 0.17.16 + '@esbuild/linux-x64': 0.17.16 + '@esbuild/netbsd-x64': 0.17.16 + '@esbuild/openbsd-x64': 0.17.16 + '@esbuild/sunos-x64': 0.17.16 + '@esbuild/win32-arm64': 0.17.16 + '@esbuild/win32-ia32': 0.17.16 + '@esbuild/win32-x64': 0.17.16 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -6634,7 +6634,7 @@ packages: engines: {node: '>=10'} hasBin: true - /mkdist@1.2.0(typescript@5.0.3): + /mkdist@1.2.0(typescript@5.0.4): resolution: {integrity: sha512-UTqu/bXmIk/+VKNVgufAeMyjUcNy1dn9Bl7wL1zZlCKVrpDgj/VllmZBeh3ZCC/2HWqUrt6frNFTKt9TRZbNvQ==} hasBin: true peerDependencies: @@ -6647,14 +6647,14 @@ packages: optional: true dependencies: defu: 6.1.2 - esbuild: 0.17.15 + esbuild: 0.17.16 fs-extra: 11.1.1 globby: 13.1.3 jiti: 1.18.2 mlly: 1.2.0 mri: 1.2.0 pathe: 1.1.0 - typescript: 5.0.3 + typescript: 5.0.4 dev: true /mlly@1.2.0: @@ -6736,7 +6736,7 @@ packages: defu: 6.1.2 destr: 1.2.2 dot-prop: 7.2.0 - esbuild: 0.17.15 + esbuild: 0.17.16 escape-string-regexp: 5.0.0 etag: 1.8.1 fs-extra: 11.1.1 @@ -7843,7 +7843,7 @@ packages: glob: 10.0.0 dev: true - /rollup-plugin-dts@5.3.0(rollup@3.20.2)(typescript@5.0.3): + /rollup-plugin-dts@5.3.0(rollup@3.20.2)(typescript@5.0.4): resolution: {integrity: sha512-8FXp0ZkyZj1iU5klkIJYLjIq/YZSwBoERu33QBDxm/1yw5UU4txrEtcmMkrq+ZiKu3Q4qvPCNqc3ovX6rjqzbQ==} engines: {node: '>=v14'} peerDependencies: @@ -7852,7 +7852,7 @@ packages: dependencies: magic-string: 0.30.0 rollup: 3.20.2 - typescript: 5.0.3 + typescript: 5.0.4 optionalDependencies: '@babel/code-frame': 7.21.4 dev: true @@ -8635,11 +8635,6 @@ packages: is-typed-array: 1.1.10 dev: true - /typescript@5.0.3: - resolution: {integrity: sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==} - engines: {node: '>=12.20'} - hasBin: true - /typescript@5.0.4: resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} engines: {node: '>=12.20'} @@ -8678,21 +8673,21 @@ packages: chalk: 5.2.0 consola: 2.15.3 defu: 6.1.2 - esbuild: 0.17.15 + esbuild: 0.17.16 globby: 13.1.3 hookable: 5.5.3 jiti: 1.18.2 magic-string: 0.30.0 - mkdist: 1.2.0(typescript@5.0.3) + mkdist: 1.2.0(typescript@5.0.4) mlly: 1.2.0 mri: 1.2.0 pathe: 1.1.0 pkg-types: 1.0.2 pretty-bytes: 6.1.0 rollup: 3.20.2 - rollup-plugin-dts: 5.3.0(rollup@3.20.2)(typescript@5.0.3) + rollup-plugin-dts: 5.3.0(rollup@3.20.2)(typescript@5.0.4) scule: 1.0.0 - typescript: 5.0.3 + typescript: 5.0.4 untyped: 1.3.2 transitivePeerDependencies: - sass @@ -8959,7 +8954,7 @@ packages: - supports-color - terser - /vite-plugin-checker@0.5.6(eslint@8.38.0)(typescript@5.0.3)(vite@4.2.1)(vue-tsc@1.2.0): + /vite-plugin-checker@0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.2.1)(vue-tsc@1.2.0): resolution: {integrity: sha512-ftRyON0gORUHDxcDt2BErmsikKSkfvl1i2DoP6Jt2zDO9InfvM6tqO1RkXhSjkaXEhKPea6YOnhFaZxW3BzudQ==} engines: {node: '>=14.16'} peerDependencies: @@ -9003,7 +8998,7 @@ packages: npm-run-path: 4.0.1 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 - typescript: 5.0.3 + typescript: 5.0.4 vite: 4.2.1(@types/node@18.15.11) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 @@ -9072,7 +9067,7 @@ packages: optional: true dependencies: '@types/node': 18.15.11 - esbuild: 0.17.15 + esbuild: 0.17.16 postcss: 8.4.21 resolve: 1.22.1 rollup: 3.20.2 From ee0b366b4417c2baa598e5b85d7104c48dc3e4ec Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Apr 2023 17:53:36 +0100 Subject: [PATCH 009/912] chore: remove `JITI_ESM_RESOLVE` (#20172) --- package.json | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 0ca298604f..dfb6b0e1ae 100644 --- a/package.json +++ b/package.json @@ -15,16 +15,14 @@ "lint:fix": "eslint --ext .vue,.ts,.js,.mjs . --fix", "lint:docs": "markdownlint ./docs && case-police 'docs/**/*.md'", "lint:docs:fix": "markdownlint ./docs --fix && case-police 'docs/**/*.md' --fix", - "nuxi": "JITI_ESM_RESOLVE=1 nuxi", - "nuxt": "JITI_ESM_RESOLVE=1 nuxi", - "play": "pnpm nuxi dev playground", - "play:build": "pnpm nuxi build playground", - "play:preview": "pnpm nuxi preview playground", - "test:fixtures": "pnpm nuxi prepare test/fixtures/basic && nuxi prepare test/fixtures/runtime-compiler && JITI_ESM_RESOLVE=1 vitest run --dir test", + "play": "nuxi dev playground", + "play:build": "nuxi build playground", + "play:preview": "nuxi preview playground", + "test:fixtures": "nuxi prepare test/fixtures/basic && nuxi prepare test/fixtures/runtime-compiler && vitest run --dir test", "test:fixtures:dev": "TEST_ENV=dev pnpm test:fixtures", "test:fixtures:webpack": "TEST_BUILDER=webpack pnpm test:fixtures", - "test:types": "pnpm nuxi prepare test/fixtures/basic && cd test/fixtures/basic && npx vue-tsc --noEmit", - "test:unit": "JITI_ESM_RESOLVE=1 vitest run --dir packages", + "test:types": "nuxi prepare test/fixtures/basic && cd test/fixtures/basic && npx vue-tsc --noEmit", + "test:unit": "vitest run --dir packages", "typecheck": "tsc --noEmit" }, "pnpm": { From 33f3ae49632d31aeaa25f390be396fbd2f513fbd Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Tue, 11 Apr 2023 01:11:07 +0700 Subject: [PATCH 010/912] fix(nuxt): default nitro autoImports to `imports.autoImport` (#20180) --- packages/nuxt/src/core/nitro.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index 5a9aae5bbf..964263b6dd 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -37,6 +37,7 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { dev: nuxt.options.dev, buildDir: nuxt.options.buildDir, imports: { + autoImports: nuxt.options.imports.autoImport, imports: [ { as: '__buildAssetsURL', From 98d1c0e82797b370f6bc9b2cd4b80e987941b64d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 10 Apr 2023 14:46:12 -0700 Subject: [PATCH 011/912] chore(deps): update all non-major dependencies (main) (#20184) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- packages/kit/package.json | 2 +- packages/nuxt/package.json | 4 ++-- pnpm-lock.yaml | 46 +++++++++++++++++++------------------- test/bundle.test.ts | 2 +- 5 files changed, 28 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index dfb6b0e1ae..43eada0aac 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "changelogen": "^0.5.2", "crawler": "^1.4.0", "eslint": "^8.38.0", - "eslint-plugin-jsdoc": "^40.1.2", + "eslint-plugin-jsdoc": "^40.2.1", "execa": "^7.1.1", "expect-type": "^0.15.0", "globby": "^13.1.3", diff --git a/packages/kit/package.json b/packages/kit/package.json index 866707f141..66397bfa8b 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -35,7 +35,7 @@ "pkg-types": "^1.0.2", "scule": "^1.0.0", "semver": "^7.3.8", - "unctx": "^2.1.2", + "unctx": "^2.2.0", "unimport": "^3.0.6", "untyped": "^1.3.2" }, diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index cc1ddc19e4..e5ff4d874f 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -94,8 +94,8 @@ "scule": "^1.0.0", "strip-literal": "^1.0.1", "ufo": "^1.1.1", - "unctx": "^2.1.2", - "unenv": "^1.2.2", + "unctx": "^2.2.0", + "unenv": "^1.3.0", "unimport": "^3.0.6", "unplugin": "^1.3.1", "untyped": "^1.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba545f752f..bd3297a745 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,8 +67,8 @@ importers: specifier: ^8.38.0 version: 8.38.0 eslint-plugin-jsdoc: - specifier: ^40.1.2 - version: 40.1.2(eslint@8.38.0) + specifier: ^40.2.1 + version: 40.2.1(eslint@8.38.0) execa: specifier: ^7.1.1 version: 7.1.1 @@ -406,8 +406,8 @@ importers: specifier: ^7.3.8 version: 7.3.8 unctx: - specifier: ^2.1.2 - version: 2.1.2 + specifier: ^2.2.0 + version: 2.2.0 unimport: specifier: ^3.0.6 version: 3.0.6(rollup@3.20.2) @@ -636,11 +636,11 @@ importers: specifier: ^1.1.1 version: 1.1.1 unctx: - specifier: ^2.1.2 - version: 2.1.2 + specifier: ^2.2.0 + version: 2.2.0 unenv: - specifier: ^1.2.2 - version: 1.2.2 + specifier: ^1.3.0 + version: 1.3.0 unimport: specifier: ^3.0.6 version: 3.0.6(rollup@3.20.2) @@ -3587,7 +3587,7 @@ packages: convert-gitmoji: 0.1.3 execa: 7.1.1 mri: 1.2.0 - node-fetch-native: 1.0.2 + node-fetch-native: 1.1.0 ofetch: 1.0.1 open: 9.1.0 pathe: 1.1.0 @@ -4871,8 +4871,8 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc@40.1.2(eslint@8.38.0): - resolution: {integrity: sha512-U4Kt42OVjF0EXOWPEc8pjanT8O1ULvILwgA5k87CnhrCKG4xaJ8Sjsb6CWgDtaemOywN06u86duKU1yMaBp7IQ==} + /eslint-plugin-jsdoc@40.2.1(eslint@8.38.0): + resolution: {integrity: sha512-d7PsUMNqrbCROSAeJd2dhTS/DapYEJ7vo27g12u4nh/bLQHHcqXNbXwhANf/D5/gUDNwinU3ZmmM4f2alQ1ncA==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -5474,7 +5474,7 @@ packages: defu: 6.1.2 https-proxy-agent: 5.0.1 mri: 1.2.0 - node-fetch-native: 1.0.2 + node-fetch-native: 1.1.0 pathe: 1.1.0 tar: 6.1.13 transitivePeerDependencies: @@ -6753,7 +6753,7 @@ packages: mime: 3.0.0 mlly: 1.2.0 mri: 1.2.0 - node-fetch-native: 1.0.2 + node-fetch-native: 1.1.0 ofetch: 1.0.1 ohash: 1.0.0 pathe: 1.1.0 @@ -6770,7 +6770,7 @@ packages: source-map-support: 0.5.21 std-env: 3.3.2 ufo: 1.1.1 - unenv: 1.2.2 + unenv: 1.3.0 unimport: 3.0.6(rollup@3.20.2) unstorage: 1.4.1 transitivePeerDependencies: @@ -6798,8 +6798,8 @@ packages: resolution: {integrity: sha512-ZNaury9r0NxaT2oL65GvdGDy+5PlSaHTovT6JV5tOW07k1TQmgC0olZETa4C9KZg0+6zBr99ctTYa3Utqj9P/Q==} dev: true - /node-fetch-native@1.0.2: - resolution: {integrity: sha512-KIkvH1jl6b3O7es/0ShyCgWLcfXxlBrLBbP3rOr23WArC66IMcU4DeZEeYEOwnopYhawLTn7/y+YtmASe8DFVQ==} + /node-fetch-native@1.1.0: + resolution: {integrity: sha512-nl5goFCig93JZ9FIV8GHT9xpNqXbxQUzkOmKIMKmncsBH9jhg7qKex8hirpymkBFmNQ114chEEG5lS4wgK2I+Q==} /node-fetch@2.6.9: resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} @@ -6938,7 +6938,7 @@ packages: resolution: {integrity: sha512-icBz2JYfEpt+wZz1FRoGcrMigjNKjzvufE26m9+yUiacRQRHwnNlGRPiDnW4op7WX/MR6aniwS8xw8jyVelF2g==} dependencies: destr: 1.2.2 - node-fetch-native: 1.0.2 + node-fetch-native: 1.1.0 ufo: 1.1.1 /ohash@1.0.0: @@ -8705,8 +8705,8 @@ packages: /uncrypto@0.1.2: resolution: {integrity: sha512-kuZwRKV615lEw/Xx3Iz56FKk3nOeOVGaVmw0eg+x4Mne28lCotNFbBhDW7dEBCBKyKbRQiCadEZeNAFPVC5cgw==} - /unctx@2.1.2: - resolution: {integrity: sha512-KK18aLRKe3OlbPyHbXAkIWSU3xK8GInomXfA7fzDMGFXQ1crX1UWrCzKesVXeUyHIayHUrnTvf87IPCKMyeKTg==} + /unctx@2.2.0: + resolution: {integrity: sha512-th8S0zg9m35lirV7FYI6AYMKHfmLoEGC87yjuS4MGLS/OZ3Pv1Qx+HyXtnlwteL2YL47xN1ADDKoFWYw3VZoEA==} dependencies: acorn: 8.8.2 estree-walker: 3.0.3 @@ -8721,12 +8721,12 @@ packages: busboy: 1.6.0 dev: true - /unenv@1.2.2: - resolution: {integrity: sha512-SYqIFLFC4wYtLyxD6RyAfoK/dkgvW85BfNdiYvroyfrL4cyLkoigSldSBBiUTgtxwb4pcE0zexw502DghVWeuA==} + /unenv@1.3.0: + resolution: {integrity: sha512-NTAVceoRPD5brWx6ej+zVCP6aw1LXsx6VjmpaJKE3nZqrycZ6nB1MrKOVZ65hcSVlzCb8QdZAEY162awdD5juA==} dependencies: defu: 6.1.2 mime: 3.0.0 - node-fetch-native: 1.0.2 + node-fetch-native: 1.1.0 pathe: 1.1.0 /unhead@1.1.25: @@ -8843,7 +8843,7 @@ packages: listhen: 1.0.4 lru-cache: 7.18.3 mri: 1.2.0 - node-fetch-native: 1.0.2 + node-fetch-native: 1.1.0 ofetch: 1.0.1 ufo: 1.1.1 transitivePeerDependencies: diff --git a/test/bundle.test.ts b/test/bundle.test.ts index e82235b8aa..a6603d6629 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -43,7 +43,7 @@ describe.skipIf(isWindows || process.env.ECOSYSTEM_CI)('minimal nuxt application expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"91k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2649k"') + expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2650k"') const packages = modules.files .filter(m => m.endsWith('package.json')) From d6c3c2439a4c1e233e0f81e07d1b592c7e0520a6 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 10 Apr 2023 22:57:13 +0100 Subject: [PATCH 012/912] feat(nuxt): support async transform of object properties (#20182) --- docs/1.getting-started/6.data-fetching.md | 2 +- docs/2.guide/1.concepts/1.auto-imports.md | 2 +- .../nuxt/src/app/composables/component.ts | 7 +-- packages/nuxt/src/core/nuxt.ts | 8 +++- packages/nuxt/src/core/plugins/unctx.ts | 44 ++++++++++++------- packages/nuxt/src/pages/module.ts | 6 ++- packages/schema/build.config.ts | 1 + packages/schema/package.json | 1 + packages/schema/src/config/build.ts | 14 ++++++ pnpm-lock.yaml | 5 ++- test/fixtures/basic/pages/chunk-error.vue | 5 ++- .../basic/pages/legacy/async-data.vue | 5 +++ .../basic/pages/navigate-to-redirect.vue | 4 +- 13 files changed, 73 insertions(+), 31 deletions(-) diff --git a/docs/1.getting-started/6.data-fetching.md b/docs/1.getting-started/6.data-fetching.md index 7b091c6679..089f61b40a 100644 --- a/docs/1.getting-started/6.data-fetching.md +++ b/docs/1.getting-started/6.data-fetching.md @@ -356,7 +356,7 @@ const { data } = await useFetch('/api/price') ## Using Async Setup -If you are using `async setup()`, the current component instance will be lost after the first `await`. (This is a Vue 3 limitation.) If you want to use multiple async operations, such as multiple calls to `useFetch`, you will need to use ` diff --git a/test/fixtures/basic/pages/legacy/async-data.vue b/test/fixtures/basic/pages/legacy/async-data.vue index 3ca56e0798..8b36739185 100644 --- a/test/fixtures/basic/pages/legacy/async-data.vue +++ b/test/fixtures/basic/pages/legacy/async-data.vue @@ -6,7 +6,12 @@ From f951a15232a297e43544df5078cce04bbc204f6e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Apr 2023 11:07:39 +0100 Subject: [PATCH 013/912] chore: upgrade to consola v3 (#20194) --- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxi/src/cli.ts | 10 +++++----- packages/test-utils/package.json | 2 +- pnpm-lock.yaml | 16 ++++++++-------- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 66397bfa8b..8994d9d6c5 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -22,7 +22,7 @@ "dependencies": { "@nuxt/schema": "workspace:../schema", "c12": "^1.2.0", - "consola": "^3.0.0-3", + "consola": "^3.0.1", "defu": "^6.1.2", "globby": "^13.1.3", "hash-sum": "^2.0.0", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 559e3721ee..1da97dc25d 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -29,7 +29,7 @@ "clear": "^0.1.0", "clipboardy": "^3.0.0", "colorette": "^2.0.19", - "consola": "^3.0.0-3", + "consola": "^3.0.1", "deep-object-diff": "^1.1.9", "destr": "^1.2.2", "execa": "^7.1.1", diff --git a/packages/nuxi/src/cli.ts b/packages/nuxi/src/cli.ts index ea56732bcb..0118ade73d 100755 --- a/packages/nuxi/src/cli.ts +++ b/packages/nuxi/src/cli.ts @@ -1,6 +1,6 @@ import mri from 'mri' import { red } from 'colorette' -import type { Consola } from 'consola' +import type { ConsolaReporter } from 'consola' import { consola } from 'consola' import { checkEngines } from './utils/engines' import type { Command, NuxtCommand } from './commands' @@ -45,8 +45,7 @@ consola.wrapAll() // Filter out unwanted logs // TODO: Use better API from consola for intercepting logs -// TODO: export type from Consola -const wrapReporter = (reporter: Consola['_reporters'][0]) => { +const wrapReporter = (reporter: ConsolaReporter) => ({ log (logObj, ctx) { if (!logObj.args || !logObj.args.length) { return } const msg = logObj.args[0] @@ -62,8 +61,9 @@ const wrapReporter = (reporter: Consola['_reporters'][0]) => consola.error('[unhandledRejection]', err)) process.on('uncaughtException', err => consola.error('[uncaughtException]', err)) diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index ba62cb2284..ed7e555c4f 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -24,7 +24,7 @@ "dependencies": { "@nuxt/kit": "workspace:../kit", "@nuxt/schema": "workspace:../schema", - "consola": "^3.0.0-3", + "consola": "^3.0.1", "defu": "^6.1.2", "execa": "^7.1.1", "get-port-please": "^3.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0fe492507b..b61298d565 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -367,8 +367,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 consola: - specifier: ^3.0.0-3 - version: 3.0.0-3 + specifier: ^3.0.1 + version: 3.0.1 defu: specifier: ^6.1.2 version: 6.1.2 @@ -465,8 +465,8 @@ importers: specifier: ^2.0.19 version: 2.0.19 consola: - specifier: ^3.0.0-3 - version: 3.0.0-3 + specifier: ^3.0.1 + version: 3.0.1 deep-object-diff: specifier: ^1.1.9 version: 1.1.9 @@ -755,8 +755,8 @@ importers: specifier: workspace:* version: link:../schema consola: - specifier: ^3.0.0-3 - version: 3.0.0-3 + specifier: ^3.0.1 + version: 3.0.1 defu: specifier: ^6.1.2 version: 6.1.2 @@ -3800,8 +3800,8 @@ packages: /consola@2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - /consola@3.0.0-3: - resolution: {integrity: sha512-3vhBx7Qw5LlF1/QnaeoQSSA5fOohGr9xtHkQ1RFbNlr6kOTwtVz0FvUPx6CdobrDDSP19cj0uWwPtf+/+VBKQA==} + /consola@3.0.1: + resolution: {integrity: sha512-08E7bC2N6gaFdzPU/qtBi4ulVvJitYnfrDdxEiwElC3jSNICbOvkcE+8N56EfIrBoxp37O9Qnn5ZZPElov83UQ==} /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} From 42850928794e1f05216e7c9502cf7f64d54f9d54 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Apr 2023 12:58:43 +0100 Subject: [PATCH 014/912] feat(nuxt): support object-syntax plugins (#20003) --- .../2.directory-structure/1.plugins.md | 25 ++ docs/3.api/1.composables/use-nuxt-app.md | 22 +- packages/nuxt/src/app/nuxt.ts | 104 +++++- .../src/app/plugins/chunk-reload.client.ts | 29 +- .../plugins/cross-origin-prefetch.client.ts | 57 ++-- packages/nuxt/src/app/plugins/debug.ts | 8 +- .../nuxt/src/app/plugins/payload.client.ts | 41 +-- .../nuxt/src/app/plugins/preload.server.ts | 19 +- .../src/app/plugins/restore-state.client.ts | 26 +- .../src/app/plugins/revive-payload.client.ts | 16 +- .../src/app/plugins/revive-payload.server.ts | 9 +- packages/nuxt/src/app/plugins/router.ts | 316 +++++++++--------- packages/nuxt/src/components/templates.ts | 11 +- packages/nuxt/src/core/nuxt.ts | 6 +- .../nuxt/src/head/runtime/plugins/unhead.ts | 57 ++-- .../runtime/plugins/vueuse-head-polyfill.ts | 9 +- packages/nuxt/src/imports/presets.ts | 1 + .../pages/runtime/plugins/prefetch.client.ts | 60 ++-- .../nuxt/src/pages/runtime/plugins/router.ts | 278 +++++++-------- packages/schema/src/config/build.ts | 1 + test/bundle.test.ts | 4 +- test/fixtures/basic/nuxt.config.ts | 6 - .../basic/plugins/custom-type-registration.ts | 2 +- 23 files changed, 621 insertions(+), 486 deletions(-) diff --git a/docs/2.guide/2.directory-structure/1.plugins.md b/docs/2.guide/2.directory-structure/1.plugins.md index e5147b23d1..091b3e68a4 100644 --- a/docs/2.guide/2.directory-structure/1.plugins.md +++ b/docs/2.guide/2.directory-structure/1.plugins.md @@ -40,6 +40,31 @@ export default defineNuxtPlugin(nuxtApp => { }) ``` +### Object Syntax Plugins + +It is also possible to define a plugin using an object syntax, for more advanced use cases. For example: + +```ts +export default defineNuxtPlugin({ + name: 'my-plugin', + enforce: 'pre', // or 'post' + async setup (nuxtApp) { + // this is the equivalent of a normal functional plugin + }, + hooks: { + // You can directly register Nuxt app hooks here + 'app:created'() { + const nuxtApp = useNuxtApp() + // + } + } +}) +``` + +::alert +If you are using an object-syntax plugin, the properties may be statically analyzed in future to produce a more optimized build. So you should not define them at runtime. For example, setting `enforce: process.server ? 'pre' : 'post'` would defeat any future optimization Nuxt is able to do for your plugins. +:: + ## Plugin Registration Order You can control the order in which plugins are registered by prefixing a number to the file names. diff --git a/docs/3.api/1.composables/use-nuxt-app.md b/docs/3.api/1.composables/use-nuxt-app.md index d962cca4d0..70d4777d43 100644 --- a/docs/3.api/1.composables/use-nuxt-app.md +++ b/docs/3.api/1.composables/use-nuxt-app.md @@ -116,19 +116,19 @@ export default defineNuxtPlugin((nuxtApp) => { ::alert Normally `payload` must contain only plain JavaScript objects. But by setting `experimental.renderJsonPayloads`, it is possible to use more advanced types, such as `ref`, `reactive`, `shallowRef`, `shallowReactive` and `NuxtError`. -You can also add your own types. In future you will be able to add your own types easily with [object-syntax plugins](https://github.com/nuxt/nuxt/issues/14628). For now, you must add your plugin which calls both `definePayloadReducer` and `definePayloadReviver` via a custom module: +You can also add your own types, with a special plugin helper: -```ts -export default defineNuxtConfig({ - modules: [ - function (_options, nuxt) { - // TODO: support directly via object syntax plugins: https://github.com/nuxt/nuxt/issues/14628 - nuxt.hook('modules:done', () => { - nuxt.options.plugins.unshift('~/plugins/custom-type-plugin') - }) - }, - ] +```ts [plugins/custom-payload.ts] + /** + * This kind of plugin runs very early in the Nuxt lifecycle, before we revive the payload. + * You will not have access to the router or other Nuxt-injected properties. + */ +export default definePayloadPlugin((nuxtApp) => { + definePayloadReducer('BlinkingText', data => data === '' && '_') + definePayloadReviver('BlinkingText', () => '') }) +``` + :: ### `isHydrating` diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index 41812dd231..1fa4c2ab88 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -139,9 +139,31 @@ interface _NuxtApp { export interface NuxtApp extends _NuxtApp {} export const NuxtPluginIndicator = '__nuxt_plugin' + +export interface PluginMeta { + name?: string + enforce?: 'pre' | 'default' | 'post' + /** + * This allows more granular control over plugin order and should only be used by advanced users. + * It overrides the value of `enforce` and is used to sort plugins. + */ + order?: number +} + +export interface ResolvedPluginMeta { + name?: string + order: number +} + export interface Plugin = Record> { (nuxt: _NuxtApp): Promise | Promise<{ provide?: Injections }> | void | { provide?: Injections } [NuxtPluginIndicator]?: true + meta?: ResolvedPluginMeta +} + +export interface ObjectPluginInput = Record> extends PluginMeta { + hooks?: Partial + setup?: Plugin } export interface CreateOptions { @@ -306,25 +328,30 @@ export function normalizePlugins (_plugins: Plugin[]) { const legacyInjectPlugins: Plugin[] = [] const invalidPlugins: Plugin[] = [] - const plugins = _plugins.map((plugin) => { + const plugins: Plugin[] = [] + + for (const plugin of _plugins) { if (typeof plugin !== 'function') { - invalidPlugins.push(plugin) - return null + if (process.dev) { invalidPlugins.push(plugin) } + continue } + + // TODO: Skip invalid plugins in next releases + let _plugin = plugin if (plugin.length > 1) { - legacyInjectPlugins.push(plugin) // Allow usage without wrapper but warn - // TODO: Skip invalid in next releases - // @ts-ignore - return (nuxtApp: NuxtApp) => plugin(nuxtApp, nuxtApp.provide) - // return null + if (process.dev) { legacyInjectPlugins.push(plugin) } + // @ts-expect-error deliberate invalid second argument + _plugin = (nuxtApp: NuxtApp) => plugin(nuxtApp, nuxtApp.provide) } - if (!isNuxtPlugin(plugin)) { - unwrappedPlugins.push(plugin) - // Allow usage without wrapper but warn - } - return plugin - }).filter(Boolean) + + // Allow usage without wrapper but warn + if (process.dev && !isNuxtPlugin(_plugin)) { unwrappedPlugins.push(_plugin) } + + plugins.push(_plugin) + } + + plugins.sort((a, b) => (a.meta?.order || orderMap.default) - (b.meta?.order || orderMap.default)) if (process.dev && legacyInjectPlugins.length) { console.warn('[warn] [nuxt] You are using a plugin with legacy Nuxt 2 format (context, inject) which is likely to be broken. In the future they will be ignored:', legacyInjectPlugins.map(p => p.name || p).join(',')) @@ -336,12 +363,53 @@ export function normalizePlugins (_plugins: Plugin[]) { console.warn('[warn] [nuxt] You are using a plugin that has not been wrapped in `defineNuxtPlugin`. It is advised to wrap your plugins as in the future this may enable enhancements:', unwrappedPlugins.map(p => p.name || p).join(',')) } - return plugins as Plugin[] + return plugins } -export function defineNuxtPlugin> (plugin: Plugin) { - plugin[NuxtPluginIndicator] = true - return plugin +// -50: pre-all (nuxt) +// -40: custom payload revivers (user) +// -30: payload reviving (nuxt) +// -20: pre (user) <-- pre mapped to this +// -10: default (nuxt) +// 0: default (user) <-- default behavior +// +10: post (nuxt) +// +20: post (user) <-- post mapped to this +// +30: post-all (nuxt) + +const orderMap: Record, number> = { + pre: -20, + default: 0, + post: 20 +} + +export function definePayloadPlugin> (plugin: Plugin | ObjectPluginInput) { + return defineNuxtPlugin(plugin, { order: -40 }) +} + +export function defineNuxtPlugin> (plugin: Plugin | ObjectPluginInput, meta?: PluginMeta): Plugin { + if (typeof plugin === 'function') { return defineNuxtPlugin({ setup: plugin }, meta) } + + const wrapper: Plugin = (nuxtApp) => { + if (plugin.hooks) { + nuxtApp.hooks.addHooks(plugin.hooks) + } + if (plugin.setup) { + return plugin.setup(nuxtApp) + } + } + + wrapper.meta = { + name: meta?.name || plugin.name || plugin.setup?.name, + order: + meta?.order || + plugin.order || + orderMap[plugin.enforce || 'default'] || + orderMap.default + } + + wrapper[NuxtPluginIndicator] = true + + return wrapper } export function isNuxtPlugin (plugin: unknown) { diff --git a/packages/nuxt/src/app/plugins/chunk-reload.client.ts b/packages/nuxt/src/app/plugins/chunk-reload.client.ts index 55a1211e3f..d90677688e 100644 --- a/packages/nuxt/src/app/plugins/chunk-reload.client.ts +++ b/packages/nuxt/src/app/plugins/chunk-reload.client.ts @@ -3,20 +3,23 @@ import { defineNuxtPlugin, useRuntimeConfig } from '#app/nuxt' import { useRouter } from '#app/composables/router' import { reloadNuxtApp } from '#app/composables/chunk' -export default defineNuxtPlugin((nuxtApp) => { - const router = useRouter() - const config = useRuntimeConfig() +export default defineNuxtPlugin({ + name: 'nuxt:chunk-reload', + setup (nuxtApp) { + const router = useRouter() + const config = useRuntimeConfig() - const chunkErrors = new Set() + const chunkErrors = new Set() - router.beforeEach(() => { chunkErrors.clear() }) - nuxtApp.hook('app:chunkError', ({ error }) => { chunkErrors.add(error) }) + router.beforeEach(() => { chunkErrors.clear() }) + nuxtApp.hook('app:chunkError', ({ error }) => { chunkErrors.add(error) }) - router.onError((error, to) => { - if (chunkErrors.has(error)) { - const isHash = 'href' in to && (to.href as string).startsWith('#') - const path = isHash ? config.app.baseURL + (to as any).href : joinURL(config.app.baseURL, to.fullPath) - reloadNuxtApp({ path, persistState: true }) - } - }) + router.onError((error, to) => { + if (chunkErrors.has(error)) { + const isHash = 'href' in to && (to.href as string).startsWith('#') + const path = isHash ? config.app.baseURL + (to as any).href : joinURL(config.app.baseURL, to.fullPath) + reloadNuxtApp({ path, persistState: true }) + } + }) + } }) diff --git a/packages/nuxt/src/app/plugins/cross-origin-prefetch.client.ts b/packages/nuxt/src/app/plugins/cross-origin-prefetch.client.ts index 08e58dd695..191f69133b 100644 --- a/packages/nuxt/src/app/plugins/cross-origin-prefetch.client.ts +++ b/packages/nuxt/src/app/plugins/cross-origin-prefetch.client.ts @@ -3,33 +3,36 @@ import { parseURL } from 'ufo' import { useHead } from '@unhead/vue' import { defineNuxtPlugin } from '#app/nuxt' -export default defineNuxtPlugin((nuxtApp) => { - const externalURLs = ref(new Set()) - function generateRules () { - return { - type: 'speculationrules', - key: 'speculationrules', - innerHTML: JSON.stringify({ - prefetch: [ - { - source: 'list', - urls: [...externalURLs.value], - requires: ['anonymous-client-ip-when-cross-origin'] - } - ] - }) +export default defineNuxtPlugin({ + name: 'nuxt:cross-origin-prefetch', + setup (nuxtApp) { + const externalURLs = ref(new Set()) + function generateRules () { + return { + type: 'speculationrules', + key: 'speculationrules', + innerHTML: JSON.stringify({ + prefetch: [ + { + source: 'list', + urls: [...externalURLs.value], + requires: ['anonymous-client-ip-when-cross-origin'] + } + ] + }) + } } + const head = useHead({ + script: [generateRules()] + }) + nuxtApp.hook('link:prefetch', (url) => { + const { protocol } = parseURL(url) + if (protocol && ['http:', 'https:'].includes(protocol)) { + externalURLs.value.add(url) + head?.patch({ + script: [generateRules()] + }) + } + }) } - const head = useHead({ - script: [generateRules()] - }) - nuxtApp.hook('link:prefetch', (url) => { - const { protocol } = parseURL(url) - if (protocol && ['http:', 'https:'].includes(protocol)) { - externalURLs.value.add(url) - head?.patch({ - script: [generateRules()] - }) - } - }) }) diff --git a/packages/nuxt/src/app/plugins/debug.ts b/packages/nuxt/src/app/plugins/debug.ts index f2909d069e..5479a84d45 100644 --- a/packages/nuxt/src/app/plugins/debug.ts +++ b/packages/nuxt/src/app/plugins/debug.ts @@ -1,6 +1,10 @@ import { createDebugger } from 'hookable' import { defineNuxtPlugin } from '#app/nuxt' -export default defineNuxtPlugin((nuxtApp) => { - createDebugger(nuxtApp.hooks, { tag: 'nuxt-app' }) +export default defineNuxtPlugin({ + name: 'nuxt:debug', + enforce: 'pre', + setup (nuxtApp) { + createDebugger(nuxtApp.hooks, { tag: 'nuxt-app' }) + } }) diff --git a/packages/nuxt/src/app/plugins/payload.client.ts b/packages/nuxt/src/app/plugins/payload.client.ts index 55d6417c31..d080ea944d 100644 --- a/packages/nuxt/src/app/plugins/payload.client.ts +++ b/packages/nuxt/src/app/plugins/payload.client.ts @@ -3,25 +3,28 @@ import { defineNuxtPlugin } from '#app/nuxt' import { isPrerendered, loadPayload } from '#app/composables/payload' import { useRouter } from '#app/composables/router' -export default defineNuxtPlugin((nuxtApp) => { - // Only enable behavior if initial page is prerendered - // TODO: Support hybrid and dev - if (!isPrerendered()) { - return - } - - // Load payload into cache - nuxtApp.hooks.hook('link:prefetch', async (url) => { - if (!parseURL(url).protocol) { - await loadPayload(url) +export default defineNuxtPlugin({ + name: 'nuxt:payload', + setup (nuxtApp) { + // Only enable behavior if initial page is prerendered + // TODO: Support hybrid and dev + if (!isPrerendered()) { + return } - }) - // Load payload after middleware & once final route is resolved - useRouter().beforeResolve(async (to, from) => { - if (to.path === from.path) { return } - const payload = await loadPayload(to.path) - if (!payload) { return } - Object.assign(nuxtApp.static.data, payload.data) - }) + // Load payload into cache + nuxtApp.hooks.hook('link:prefetch', async (url) => { + if (!parseURL(url).protocol) { + await loadPayload(url) + } + }) + + // Load payload after middleware & once final route is resolved + useRouter().beforeResolve(async (to, from) => { + if (to.path === from.path) { return } + const payload = await loadPayload(to.path) + if (!payload) { return } + Object.assign(nuxtApp.static.data, payload.data) + }) + } }) diff --git a/packages/nuxt/src/app/plugins/preload.server.ts b/packages/nuxt/src/app/plugins/preload.server.ts index 9f6b25d62d..ec9501988b 100644 --- a/packages/nuxt/src/app/plugins/preload.server.ts +++ b/packages/nuxt/src/app/plugins/preload.server.ts @@ -1,11 +1,14 @@ import { defineNuxtPlugin } from '#app/nuxt' -export default defineNuxtPlugin((nuxtApp) => { - nuxtApp.vueApp.mixin({ - beforeCreate () { - const { _registeredComponents } = this.$nuxt.ssrContext - const { __moduleIdentifier } = this.$options - _registeredComponents.add(__moduleIdentifier) - } - }) +export default defineNuxtPlugin({ + name: 'nuxt:webpack-preload', + setup (nuxtApp) { + nuxtApp.vueApp.mixin({ + beforeCreate () { + const { _registeredComponents } = this.$nuxt.ssrContext + const { __moduleIdentifier } = this.$options + _registeredComponents.add(__moduleIdentifier) + } + }) + } }) diff --git a/packages/nuxt/src/app/plugins/restore-state.client.ts b/packages/nuxt/src/app/plugins/restore-state.client.ts index 6533650ce9..e6786e8cea 100644 --- a/packages/nuxt/src/app/plugins/restore-state.client.ts +++ b/packages/nuxt/src/app/plugins/restore-state.client.ts @@ -1,13 +1,17 @@ -import { defineNuxtPlugin } from '#app/nuxt' +import { defineNuxtPlugin, useNuxtApp } from '#app/nuxt' -export default defineNuxtPlugin((nuxtApp) => { - nuxtApp.hook('app:mounted', () => { - try { - const state = sessionStorage.getItem('nuxt:reload:state') - if (state) { - sessionStorage.removeItem('nuxt:reload:state') - Object.assign(nuxtApp.payload.state, JSON.parse(state)?.state) - } - } catch {} - }) +export default defineNuxtPlugin({ + name: 'nuxt:restore-state', + hooks: { + 'app:mounted' () { + const nuxtApp = useNuxtApp() + try { + const state = sessionStorage.getItem('nuxt:reload:state') + if (state) { + sessionStorage.removeItem('nuxt:reload:state') + Object.assign(nuxtApp.payload.state, JSON.parse(state)?.state) + } + } catch {} + } + } }) diff --git a/packages/nuxt/src/app/plugins/revive-payload.client.ts b/packages/nuxt/src/app/plugins/revive-payload.client.ts index e7fa0eaa4c..ae58308cc2 100644 --- a/packages/nuxt/src/app/plugins/revive-payload.client.ts +++ b/packages/nuxt/src/app/plugins/revive-payload.client.ts @@ -13,11 +13,15 @@ const revivers = { Reactive: (data: any) => reactive(data) } -export default defineNuxtPlugin(async (nuxtApp) => { - for (const reviver in revivers) { - definePayloadReviver(reviver, revivers[reviver as keyof typeof revivers]) +export default defineNuxtPlugin({ + name: 'nuxt:revive-payload:client', + order: -30, + async setup (nuxtApp) { + for (const reviver in revivers) { + definePayloadReviver(reviver, revivers[reviver as keyof typeof revivers]) + } + Object.assign(nuxtApp.payload, await callWithNuxt(nuxtApp, getNuxtClientPayload, [])) + // For backwards compatibility - TODO: remove later + window.__NUXT__ = nuxtApp.payload } - Object.assign(nuxtApp.payload, await callWithNuxt(nuxtApp, getNuxtClientPayload, [])) - // For backwards compatibility - TODO: remove later - window.__NUXT__ = nuxtApp.payload }) diff --git a/packages/nuxt/src/app/plugins/revive-payload.server.ts b/packages/nuxt/src/app/plugins/revive-payload.server.ts index d04c4ac4b0..b8e54569f6 100644 --- a/packages/nuxt/src/app/plugins/revive-payload.server.ts +++ b/packages/nuxt/src/app/plugins/revive-payload.server.ts @@ -14,8 +14,11 @@ const reducers = { Reactive: (data: any) => isReactive(data) && toRaw(data) } -export default defineNuxtPlugin(() => { - for (const reducer in reducers) { - definePayloadReducer(reducer, reducers[reducer as keyof typeof reducers]) +export default defineNuxtPlugin({ + name: 'nuxt:revive-payload:server', + setup () { + for (const reducer in reducers) { + definePayloadReducer(reducer, reducers[reducer as keyof typeof reducers]) + } } }) diff --git a/packages/nuxt/src/app/plugins/router.ts b/packages/nuxt/src/app/plugins/router.ts index 8b61b0f245..0863c5d5d7 100644 --- a/packages/nuxt/src/app/plugins/router.ts +++ b/packages/nuxt/src/app/plugins/router.ts @@ -96,176 +96,180 @@ interface Router { removeRoute: (name: string) => void } -export default defineNuxtPlugin<{ route: Route, router: Router }>((nuxtApp) => { - const initialURL = process.client - ? withoutBase(window.location.pathname, useRuntimeConfig().app.baseURL) + window.location.search + window.location.hash - : nuxtApp.ssrContext!.url +export default defineNuxtPlugin<{ route: Route, router: Router }>({ + name: 'nuxt:router', + enforce: 'pre', + setup (nuxtApp) { + const initialURL = process.client + ? withoutBase(window.location.pathname, useRuntimeConfig().app.baseURL) + window.location.search + window.location.hash + : nuxtApp.ssrContext!.url - const routes: Route[] = [] + const routes: Route[] = [] - const hooks: { [key in keyof RouterHooks]: RouterHooks[key][] } = { - 'navigate:before': [], - 'resolve:before': [], - 'navigate:after': [], - error: [] - } + const hooks: { [key in keyof RouterHooks]: RouterHooks[key][] } = { + 'navigate:before': [], + 'resolve:before': [], + 'navigate:after': [], + error: [] + } - const registerHook = (hook: T, guard: RouterHooks[T]) => { - hooks[hook].push(guard) - return () => hooks[hook].splice(hooks[hook].indexOf(guard), 1) - } - const baseURL = useRuntimeConfig().app.baseURL + const registerHook = (hook: T, guard: RouterHooks[T]) => { + hooks[hook].push(guard) + return () => hooks[hook].splice(hooks[hook].indexOf(guard), 1) + } + const baseURL = useRuntimeConfig().app.baseURL - const route: Route = reactive(getRouteFromPath(initialURL)) - async function handleNavigation (url: string | Partial, replace?: boolean): Promise { - try { - // Resolve route - const to = getRouteFromPath(url) + const route: Route = reactive(getRouteFromPath(initialURL)) + async function handleNavigation (url: string | Partial, replace?: boolean): Promise { + try { + // Resolve route + const to = getRouteFromPath(url) - // Run beforeEach hooks - for (const middleware of hooks['navigate:before']) { - const result = await middleware(to, route) - // Cancel navigation - if (result === false || result instanceof Error) { return } - // Redirect - if (result) { return handleNavigation(result, true) } - } - - for (const handler of hooks['resolve:before']) { - await handler(to, route) - } - // Perform navigation - Object.assign(route, to) - if (process.client) { - window.history[replace ? 'replaceState' : 'pushState']({}, '', joinURL(baseURL, to.fullPath)) - if (!nuxtApp.isHydrating) { - // Clear any existing errors - await callWithNuxt(nuxtApp, clearError) + // Run beforeEach hooks + for (const middleware of hooks['navigate:before']) { + const result = await middleware(to, route) + // Cancel navigation + if (result === false || result instanceof Error) { return } + // Redirect + if (result) { return handleNavigation(result, true) } } - } - // Run afterEach hooks - for (const middleware of hooks['navigate:after']) { - await middleware(to, route) - } - } catch (err) { - if (process.dev && !hooks.error.length) { - console.warn('No error handlers registered to handle middleware errors. You can register an error handler with `router.onError()`', err) - } - for (const handler of hooks.error) { - await handler(err) - } - } - } - const router: Router = { - currentRoute: route, - isReady: () => Promise.resolve(), - // These options provide a similar API to vue-router but have no effect - options: {}, - install: () => Promise.resolve(), - // Navigation - push: (url: string) => handleNavigation(url, false), - replace: (url: string) => handleNavigation(url, true), - back: () => window.history.go(-1), - go: (delta: number) => window.history.go(delta), - forward: () => window.history.go(1), - // Guards - beforeResolve: (guard: RouterHooks['resolve:before']) => registerHook('resolve:before', guard), - beforeEach: (guard: RouterHooks['navigate:before']) => registerHook('navigate:before', guard), - afterEach: (guard: RouterHooks['navigate:after']) => registerHook('navigate:after', guard), - onError: (handler: RouterHooks['error']) => registerHook('error', handler), - // Routes - resolve: getRouteFromPath, - addRoute: (parentName: string, route: Route) => { routes.push(route) }, - getRoutes: () => routes, - hasRoute: (name: string) => routes.some(route => route.name === name), - removeRoute: (name: string) => { - const index = routes.findIndex(route => route.name === name) - if (index !== -1) { - routes.splice(index, 1) - } - } - } - - nuxtApp.vueApp.component('RouterLink', { - functional: true, - props: { - to: String, - custom: Boolean, - replace: Boolean, - // Not implemented - activeClass: String, - exactActiveClass: String, - ariaCurrentValue: String - }, - setup: (props, { slots }) => { - const navigate = () => handleNavigation(props.to, props.replace) - return () => { - const route = router.resolve(props.to) - return props.custom - ? slots.default?.({ href: props.to, navigate, route }) - : h('a', { href: props.to, onClick: (e: MouseEvent) => { e.preventDefault(); return navigate() } }, slots) - } - } - }) - - if (process.client) { - window.addEventListener('popstate', (event) => { - const location = (event.target as Window).location - router.replace(location.href.replace(location.origin, '')) - }) - } - - nuxtApp._route = route - - // Handle middleware - nuxtApp._middleware = nuxtApp._middleware || { - global: [], - named: {} - } - - const initialLayout = useState('_layout') - nuxtApp.hooks.hookOnce('app:created', async () => { - router.beforeEach(async (to, from) => { - to.meta = reactive(to.meta || {}) - if (nuxtApp.isHydrating && initialLayout.value && !isReadonly(to.meta.layout)) { - to.meta.layout = initialLayout.value - } - nuxtApp._processingMiddleware = true - - const middlewareEntries = new Set([...globalMiddleware, ...nuxtApp._middleware.global]) - - for (const middleware of middlewareEntries) { - const result = await callWithNuxt(nuxtApp, middleware, [to, from]) - if (process.server) { - if (result === false || result instanceof Error) { - const error = result || createError({ - statusCode: 404, - statusMessage: `Page Not Found: ${initialURL}` - }) - return callWithNuxt(nuxtApp, showError, [error]) + for (const handler of hooks['resolve:before']) { + await handler(to, route) + } + // Perform navigation + Object.assign(route, to) + if (process.client) { + window.history[replace ? 'replaceState' : 'pushState']({}, '', joinURL(baseURL, to.fullPath)) + if (!nuxtApp.isHydrating) { + // Clear any existing errors + await callWithNuxt(nuxtApp, clearError) } } - if (result || result === false) { return result } + // Run afterEach hooks + for (const middleware of hooks['navigate:after']) { + await middleware(to, route) + } + } catch (err) { + if (process.dev && !hooks.error.length) { + console.warn('No error handlers registered to handle middleware errors. You can register an error handler with `router.onError()`', err) + } + for (const handler of hooks.error) { + await handler(err) + } + } + } + + const router: Router = { + currentRoute: route, + isReady: () => Promise.resolve(), + // These options provide a similar API to vue-router but have no effect + options: {}, + install: () => Promise.resolve(), + // Navigation + push: (url: string) => handleNavigation(url, false), + replace: (url: string) => handleNavigation(url, true), + back: () => window.history.go(-1), + go: (delta: number) => window.history.go(delta), + forward: () => window.history.go(1), + // Guards + beforeResolve: (guard: RouterHooks['resolve:before']) => registerHook('resolve:before', guard), + beforeEach: (guard: RouterHooks['navigate:before']) => registerHook('navigate:before', guard), + afterEach: (guard: RouterHooks['navigate:after']) => registerHook('navigate:after', guard), + onError: (handler: RouterHooks['error']) => registerHook('error', handler), + // Routes + resolve: getRouteFromPath, + addRoute: (parentName: string, route: Route) => { routes.push(route) }, + getRoutes: () => routes, + hasRoute: (name: string) => routes.some(route => route.name === name), + removeRoute: (name: string) => { + const index = routes.findIndex(route => route.name === name) + if (index !== -1) { + routes.splice(index, 1) + } + } + } + + nuxtApp.vueApp.component('RouterLink', { + functional: true, + props: { + to: String, + custom: Boolean, + replace: Boolean, + // Not implemented + activeClass: String, + exactActiveClass: String, + ariaCurrentValue: String + }, + setup: (props, { slots }) => { + const navigate = () => handleNavigation(props.to, props.replace) + return () => { + const route = router.resolve(props.to) + return props.custom + ? slots.default?.({ href: props.to, navigate, route }) + : h('a', { href: props.to, onClick: (e: MouseEvent) => { e.preventDefault(); return navigate() } }, slots) + } } }) - router.afterEach(() => { - delete nuxtApp._processingMiddleware + if (process.client) { + window.addEventListener('popstate', (event) => { + const location = (event.target as Window).location + router.replace(location.href.replace(location.origin, '')) + }) + } + + nuxtApp._route = route + + // Handle middleware + nuxtApp._middleware = nuxtApp._middleware || { + global: [], + named: {} + } + + const initialLayout = useState('_layout') + nuxtApp.hooks.hookOnce('app:created', async () => { + router.beforeEach(async (to, from) => { + to.meta = reactive(to.meta || {}) + if (nuxtApp.isHydrating && initialLayout.value && !isReadonly(to.meta.layout)) { + to.meta.layout = initialLayout.value + } + nuxtApp._processingMiddleware = true + + const middlewareEntries = new Set([...globalMiddleware, ...nuxtApp._middleware.global]) + + for (const middleware of middlewareEntries) { + const result = await callWithNuxt(nuxtApp, middleware, [to, from]) + if (process.server) { + if (result === false || result instanceof Error) { + const error = result || createError({ + statusCode: 404, + statusMessage: `Page Not Found: ${initialURL}` + }) + return callWithNuxt(nuxtApp, showError, [error]) + } + } + if (result || result === false) { return result } + } + }) + + router.afterEach(() => { + delete nuxtApp._processingMiddleware + }) + + await router.replace(initialURL) + if (!isEqual(route.fullPath, initialURL)) { + const event = await callWithNuxt(nuxtApp, useRequestEvent) + const options = { redirectCode: event.node.res.statusCode !== 200 ? event.node.res.statusCode || 302 : 302 } + await callWithNuxt(nuxtApp, navigateTo, [route.fullPath, options]) + } }) - await router.replace(initialURL) - if (!isEqual(route.fullPath, initialURL)) { - const event = await callWithNuxt(nuxtApp, useRequestEvent) - const options = { redirectCode: event.node.res.statusCode !== 200 ? event.node.res.statusCode || 302 : 302 } - await callWithNuxt(nuxtApp, navigateTo, [route.fullPath, options]) - } - }) - - return { - provide: { - route, - router + return { + provide: { + route, + router + } } } }) diff --git a/packages/nuxt/src/components/templates.ts b/packages/nuxt/src/components/templates.ts index 3d1705cf72..19dd42eb24 100644 --- a/packages/nuxt/src/components/templates.ts +++ b/packages/nuxt/src/components/templates.ts @@ -40,10 +40,13 @@ const components = ${genObjectFromRawEntries(globalComponents.map((c) => { return [c.pascalName, `defineAsyncComponent(${genDynamicImport(c.filePath, { comment })}.then(c => ${exp}))`] }))} -export default defineNuxtPlugin(nuxtApp => { - for (const name in components) { - nuxtApp.vueApp.component(name, components[name]) - nuxtApp.vueApp.component('Lazy' + name, components[name]) +export default defineNuxtPlugin({ + name: 'nuxt:global-components', + setup (nuxtApp) { + for (const name in components) { + nuxtApp.vueApp.component(name, components[name]) + nuxtApp.vueApp.component('Lazy' + name, components[name]) + } } }) ` diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index 6659fab06f..638fd6a29b 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -292,9 +292,9 @@ async function initNuxt (nuxt: Nuxt) { // Add experimental support for custom types in JSON payload if (nuxt.options.experimental.renderJsonPayloads) { - nuxt.hook('modules:done', () => { - nuxt.options.plugins.unshift(resolve(nuxt.options.appDir, 'plugins/revive-payload.client')) - nuxt.options.plugins.unshift(resolve(nuxt.options.appDir, 'plugins/revive-payload.server')) + nuxt.hooks.hook('modules:done', () => { + addPlugin(resolve(nuxt.options.appDir, 'plugins/revive-payload.client')) + addPlugin(resolve(nuxt.options.appDir, 'plugins/revive-payload.server')) }) } diff --git a/packages/nuxt/src/head/runtime/plugins/unhead.ts b/packages/nuxt/src/head/runtime/plugins/unhead.ts index 527be0586f..3fd5e0c330 100644 --- a/packages/nuxt/src/head/runtime/plugins/unhead.ts +++ b/packages/nuxt/src/head/runtime/plugins/unhead.ts @@ -4,37 +4,40 @@ import { defineNuxtPlugin } from '#app/nuxt' // @ts-expect-error untyped import { appHead } from '#build/nuxt.config.mjs' -export default defineNuxtPlugin((nuxtApp) => { - const createHead = process.server ? createServerHead : createClientHead - const head = createHead() - head.push(appHead) +export default defineNuxtPlugin({ + name: 'nuxt:head', + setup (nuxtApp) { + const createHead = process.server ? createServerHead : createClientHead + const head = createHead() + head.push(appHead) - nuxtApp.vueApp.use(head) + nuxtApp.vueApp.use(head) - if (process.client) { - // pause dom updates until page is ready and between page transitions - let pauseDOMUpdates = true - const unpauseDom = () => { - pauseDOMUpdates = false - // trigger the debounced DOM update - head.hooks.callHook('entries:updated', head) + if (process.client) { + // pause dom updates until page is ready and between page transitions + let pauseDOMUpdates = true + const unpauseDom = () => { + pauseDOMUpdates = false + // trigger the debounced DOM update + head.hooks.callHook('entries:updated', head) + } + head.hooks.hook('dom:beforeRender', (context) => { context.shouldRender = !pauseDOMUpdates }) + nuxtApp.hooks.hook('page:start', () => { pauseDOMUpdates = true }) + // wait for new page before unpausing dom updates (triggered after suspense resolved) + nuxtApp.hooks.hook('page:finish', unpauseDom) + // unpause the DOM once the mount suspense is resolved + nuxtApp.hooks.hook('app:suspense:resolve', unpauseDom) } - head.hooks.hook('dom:beforeRender', (context) => { context.shouldRender = !pauseDOMUpdates }) - nuxtApp.hooks.hook('page:start', () => { pauseDOMUpdates = true }) - // wait for new page before unpausing dom updates (triggered after suspense resolved) - nuxtApp.hooks.hook('page:finish', unpauseDom) - // unpause the DOM once the mount suspense is resolved - nuxtApp.hooks.hook('app:suspense:resolve', unpauseDom) - } - if (process.server) { - nuxtApp.ssrContext!.renderMeta = async () => { - const meta = await renderSSRHead(head) - return { - ...meta, - bodyScriptsPrepend: meta.bodyTagsOpen, - // resolves naming difference with NuxtMeta and Unhead - bodyScripts: meta.bodyTags + if (process.server) { + nuxtApp.ssrContext!.renderMeta = async () => { + const meta = await renderSSRHead(head) + return { + ...meta, + bodyScriptsPrepend: meta.bodyTagsOpen, + // resolves naming difference with NuxtMeta and Unhead + bodyScripts: meta.bodyTags + } } } } diff --git a/packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts b/packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts index 57d1a15bc4..d3dfb3be67 100644 --- a/packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts +++ b/packages/nuxt/src/head/runtime/plugins/vueuse-head-polyfill.ts @@ -2,7 +2,10 @@ import { polyfillAsVueUseHead } from '@unhead/vue/polyfill' import { defineNuxtPlugin } from '#app/nuxt' -export default defineNuxtPlugin((nuxtApp) => { - // avoid breaking ecosystem dependencies using low-level @vueuse/head APIs - polyfillAsVueUseHead(nuxtApp.vueApp._context.provides.usehead) +export default defineNuxtPlugin({ + name: 'nuxt:vueuse-head-polyfill', + setup (nuxtApp) { + // avoid breaking ecosystem dependencies using low-level @vueuse/head APIs + polyfillAsVueUseHead(nuxtApp.vueApp._context.provides.usehead) + } }) diff --git a/packages/nuxt/src/imports/presets.ts b/packages/nuxt/src/imports/presets.ts index c8fb0c7368..89518467eb 100644 --- a/packages/nuxt/src/imports/presets.ts +++ b/packages/nuxt/src/imports/presets.ts @@ -23,6 +23,7 @@ const appPreset = defineUnimportPreset({ 'defineNuxtComponent', 'useNuxtApp', 'defineNuxtPlugin', + 'definePayloadPlugin', 'reloadNuxtApp', 'useRuntimeConfig', 'useState', diff --git a/packages/nuxt/src/pages/runtime/plugins/prefetch.client.ts b/packages/nuxt/src/pages/runtime/plugins/prefetch.client.ts index b258812103..d946f14ea8 100644 --- a/packages/nuxt/src/pages/runtime/plugins/prefetch.client.ts +++ b/packages/nuxt/src/pages/runtime/plugins/prefetch.client.ts @@ -1,41 +1,43 @@ import { hasProtocol } from 'ufo' -import { defineNuxtPlugin, useNuxtApp } from '#app/nuxt' +import { defineNuxtPlugin } from '#app/nuxt' import { useRouter } from '#app/composables/router' // @ts-ignore import layouts from '#build/layouts' // @ts-ignore import { namedMiddleware } from '#build/middleware' -export default defineNuxtPlugin(() => { - const nuxtApp = useNuxtApp() - const router = useRouter() +export default defineNuxtPlugin({ + name: 'nuxt:prefetch', + setup (nuxtApp) { + const router = useRouter() + + // Force layout prefetch on route changes + nuxtApp.hooks.hook('app:mounted', () => { + router.beforeEach(async (to) => { + const layout = to?.meta?.layout + if (layout && typeof layouts[layout] === 'function') { + await layouts[layout]() + } + }) + }) + // Prefetch layouts & middleware + nuxtApp.hooks.hook('link:prefetch', (url) => { + if (hasProtocol(url)) { return } + const route = router.resolve(url) + if (!route) { return } + const layout = route?.meta?.layout + let middleware = Array.isArray(route?.meta?.middleware) ? route?.meta?.middleware : [route?.meta?.middleware] + middleware = middleware.filter(m => typeof m === 'string') + + for (const name of middleware) { + if (typeof namedMiddleware[name] === 'function') { + namedMiddleware[name]() + } + } - // Force layout prefetch on route changes - nuxtApp.hooks.hook('app:mounted', () => { - router.beforeEach(async (to) => { - const layout = to?.meta?.layout if (layout && typeof layouts[layout] === 'function') { - await layouts[layout]() + layouts[layout]() } }) - }) - // Prefetch layouts & middleware - nuxtApp.hooks.hook('link:prefetch', (url) => { - if (hasProtocol(url)) { return } - const route = router.resolve(url) - if (!route) { return } - const layout = route?.meta?.layout - let middleware = Array.isArray(route?.meta?.middleware) ? route?.meta?.middleware : [route?.meta?.middleware] - middleware = middleware.filter(m => typeof m === 'string') - - for (const name of middleware) { - if (typeof namedMiddleware[name] === 'function') { - namedMiddleware[name]() - } - } - - if (layout && typeof layouts[layout] === 'function') { - layouts[layout]() - } - }) + } }) diff --git a/packages/nuxt/src/pages/runtime/plugins/router.ts b/packages/nuxt/src/pages/runtime/plugins/router.ts index c76405d4d2..5e48553154 100644 --- a/packages/nuxt/src/pages/runtime/plugins/router.ts +++ b/packages/nuxt/src/pages/runtime/plugins/router.ts @@ -45,157 +45,161 @@ function createCurrentLocation ( return path + search + hash } -export default defineNuxtPlugin(async (nuxtApp) => { - let routerBase = useRuntimeConfig().app.baseURL - if (routerOptions.hashMode && !routerBase.includes('#')) { - // allow the user to provide a `#` in the middle: `/base/#/app` - routerBase += '#' - } - - const history = routerOptions.history?.(routerBase) ?? (process.client - ? (routerOptions.hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase)) - : createMemoryHistory(routerBase) - ) - - const routes = routerOptions.routes?.(_routes) ?? _routes - - const initialURL = process.server ? nuxtApp.ssrContext!.url : createCurrentLocation(routerBase, window.location) - const router = createRouter({ - ...routerOptions, - history, - routes - }) - nuxtApp.vueApp.use(router) - - const previousRoute = shallowRef(router.currentRoute.value) - router.afterEach((_to, from) => { - previousRoute.value = from - }) - - Object.defineProperty(nuxtApp.vueApp.config.globalProperties, 'previousRoute', { - get: () => previousRoute.value - }) - - // Allows suspending the route object until page navigation completes - const _route = shallowRef(router.resolve(initialURL) as RouteLocation) - const syncCurrentRoute = () => { _route.value = router.currentRoute.value } - nuxtApp.hook('page:finish', syncCurrentRoute) - router.afterEach((to, from) => { - // We won't trigger suspense if the component is reused between routes - // so we need to update the route manually - if (to.matched[0]?.components?.default === from.matched[0]?.components?.default) { - syncCurrentRoute() - } - }) - - // https://github.com/vuejs/router/blob/main/packages/router/src/router.ts#L1225-L1233 - const route = {} as RouteLocation - for (const key in _route.value) { - (route as any)[key] = computed(() => _route.value[key as keyof RouteLocation]) - } - - nuxtApp._route = reactive(route) - - nuxtApp._middleware = nuxtApp._middleware || { - global: [], - named: {} - } - - const error = useError() - - try { - if (process.server) { - await router.push(initialURL) +export default defineNuxtPlugin({ + name: 'nuxt:router', + enforce: 'pre', + async setup (nuxtApp) { + let routerBase = useRuntimeConfig().app.baseURL + if (routerOptions.hashMode && !routerBase.includes('#')) { + // allow the user to provide a `#` in the middle: `/base/#/app` + routerBase += '#' } - await router.isReady() - } catch (error: any) { - // We'll catch 404s here - await callWithNuxt(nuxtApp, showError, [error]) - } + const history = routerOptions.history?.(routerBase) ?? (process.client + ? (routerOptions.hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase)) + : createMemoryHistory(routerBase) + ) - const initialLayout = useState('_layout') - router.beforeEach(async (to, from) => { - to.meta = reactive(to.meta) - if (nuxtApp.isHydrating && initialLayout.value && !isReadonly(to.meta.layout)) { - to.meta.layout = initialLayout.value as Exclude - } - nuxtApp._processingMiddleware = true + const routes = routerOptions.routes?.(_routes) ?? _routes - type MiddlewareDef = string | RouteMiddleware - const middlewareEntries = new Set([...globalMiddleware, ...nuxtApp._middleware.global]) - for (const component of to.matched) { - const componentMiddleware = component.meta.middleware as MiddlewareDef | MiddlewareDef[] - if (!componentMiddleware) { continue } - if (Array.isArray(componentMiddleware)) { - for (const entry of componentMiddleware) { - middlewareEntries.add(entry) - } - } else { - middlewareEntries.add(componentMiddleware) + const initialURL = process.server ? nuxtApp.ssrContext!.url : createCurrentLocation(routerBase, window.location) + const router = createRouter({ + ...routerOptions, + history, + routes + }) + nuxtApp.vueApp.use(router) + + const previousRoute = shallowRef(router.currentRoute.value) + router.afterEach((_to, from) => { + previousRoute.value = from + }) + + Object.defineProperty(nuxtApp.vueApp.config.globalProperties, 'previousRoute', { + get: () => previousRoute.value + }) + + // Allows suspending the route object until page navigation completes + const _route = shallowRef(router.resolve(initialURL) as RouteLocation) + const syncCurrentRoute = () => { _route.value = router.currentRoute.value } + nuxtApp.hook('page:finish', syncCurrentRoute) + router.afterEach((to, from) => { + // We won't trigger suspense if the component is reused between routes + // so we need to update the route manually + if (to.matched[0]?.components?.default === from.matched[0]?.components?.default) { + syncCurrentRoute() } + }) + + // https://github.com/vuejs/router/blob/main/packages/router/src/router.ts#L1225-L1233 + const route = {} as RouteLocation + for (const key in _route.value) { + (route as any)[key] = computed(() => _route.value[key as keyof RouteLocation]) } - for (const entry of middlewareEntries) { - const middleware = typeof entry === 'string' ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r: any) => r.default || r) : entry + nuxtApp._route = reactive(route) - if (!middleware) { - if (process.dev) { - throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map(mw => `'${mw}'`).join(', ')}.`) - } - throw new Error(`Unknown route middleware: '${entry}'.`) - } - - const result = await callWithNuxt(nuxtApp, middleware, [to, from]) - if (process.server || (!nuxtApp.payload.serverRendered && nuxtApp.isHydrating)) { - if (result === false || result instanceof Error) { - const error = result || createError({ - statusCode: 404, - statusMessage: `Page Not Found: ${initialURL}` - }) - await callWithNuxt(nuxtApp, showError, [error]) - return false - } - } - if (result || result === false) { return result } + nuxtApp._middleware = nuxtApp._middleware || { + global: [], + named: {} } - }) - router.afterEach(async (to) => { - delete nuxtApp._processingMiddleware + const error = useError() - if (process.client && !nuxtApp.isHydrating && error.value) { - // Clear any existing errors - await callWithNuxt(nuxtApp, clearError) - } - if (to.matched.length === 0) { - await callWithNuxt(nuxtApp, showError, [createError({ - statusCode: 404, - fatal: false, - statusMessage: `Page not found: ${to.fullPath}` - })]) - } else if (process.server) { - const currentURL = to.fullPath || '/' - if (!isEqual(currentURL, initialURL, { trailingSlash: true })) { - const event = await callWithNuxt(nuxtApp, useRequestEvent) - const options = { redirectCode: event.node.res.statusCode !== 200 ? event.node.res.statusCode || 302 : 302 } - await callWithNuxt(nuxtApp, navigateTo, [currentURL, options]) - } - } - }) - - nuxtApp.hooks.hookOnce('app:created', async () => { try { - await router.replace({ - ...router.resolve(initialURL), - name: undefined, // #4920, #$4982 - force: true - }) + if (process.server) { + await router.push(initialURL) + } + + await router.isReady() } catch (error: any) { - // We'll catch middleware errors or deliberate exceptions here + // We'll catch 404s here await callWithNuxt(nuxtApp, showError, [error]) } - }) - return { provide: { router } } + const initialLayout = useState('_layout') + router.beforeEach(async (to, from) => { + to.meta = reactive(to.meta) + if (nuxtApp.isHydrating && initialLayout.value && !isReadonly(to.meta.layout)) { + to.meta.layout = initialLayout.value as Exclude + } + nuxtApp._processingMiddleware = true + + type MiddlewareDef = string | RouteMiddleware + const middlewareEntries = new Set([...globalMiddleware, ...nuxtApp._middleware.global]) + for (const component of to.matched) { + const componentMiddleware = component.meta.middleware as MiddlewareDef | MiddlewareDef[] + if (!componentMiddleware) { continue } + if (Array.isArray(componentMiddleware)) { + for (const entry of componentMiddleware) { + middlewareEntries.add(entry) + } + } else { + middlewareEntries.add(componentMiddleware) + } + } + + for (const entry of middlewareEntries) { + const middleware = typeof entry === 'string' ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r: any) => r.default || r) : entry + + if (!middleware) { + if (process.dev) { + throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map(mw => `'${mw}'`).join(', ')}.`) + } + throw new Error(`Unknown route middleware: '${entry}'.`) + } + + const result = await callWithNuxt(nuxtApp, middleware, [to, from]) + if (process.server || (!nuxtApp.payload.serverRendered && nuxtApp.isHydrating)) { + if (result === false || result instanceof Error) { + const error = result || createError({ + statusCode: 404, + statusMessage: `Page Not Found: ${initialURL}` + }) + await callWithNuxt(nuxtApp, showError, [error]) + return false + } + } + if (result || result === false) { return result } + } + }) + + router.afterEach(async (to) => { + delete nuxtApp._processingMiddleware + + if (process.client && !nuxtApp.isHydrating && error.value) { + // Clear any existing errors + await callWithNuxt(nuxtApp, clearError) + } + if (to.matched.length === 0) { + await callWithNuxt(nuxtApp, showError, [createError({ + statusCode: 404, + fatal: false, + statusMessage: `Page not found: ${to.fullPath}` + })]) + } else if (process.server) { + const currentURL = to.fullPath || '/' + if (!isEqual(currentURL, initialURL, { trailingSlash: true })) { + const event = await callWithNuxt(nuxtApp, useRequestEvent) + const options = { redirectCode: event.node.res.statusCode !== 200 ? event.node.res.statusCode || 302 : 302 } + await callWithNuxt(nuxtApp, navigateTo, [currentURL, options]) + } + } + }) + + nuxtApp.hooks.hookOnce('app:created', async () => { + try { + await router.replace({ + ...router.resolve(initialURL), + name: undefined, // #4920, #$4982 + force: true + }) + } catch (error: any) { + // We'll catch middleware errors or deliberate exceptions here + await callWithNuxt(nuxtApp, showError, [error]) + } + }) + + return { provide: { router } } + } }) as Plugin<{ router: Router }> diff --git a/packages/schema/src/config/build.ts b/packages/schema/src/config/build.ts index 076146b50a..c905fae4ce 100644 --- a/packages/schema/src/config/build.ts +++ b/packages/schema/src/config/build.ts @@ -195,6 +195,7 @@ export default defineUntypedSchema({ asyncFunctions: ['defineNuxtPlugin', 'defineNuxtRouteMiddleware'], objectDefinitions: { defineNuxtComponent: ['asyncData', 'setup'], + defineNuxtPlugin: ['setup'], definePageMeta: ['middleware', 'validate'] } } diff --git a/test/bundle.test.ts b/test/bundle.test.ts index a6603d6629..cf9cd47f5e 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -26,7 +26,7 @@ describe.skipIf(isWindows || process.env.ECOSYSTEM_CI)('minimal nuxt application it('default client bundle size', async () => { stats.client = await analyzeSizes('**/*.js', publicDir) - expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"104k"') + expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"105k"') expect(stats.client.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/_plugin-vue_export-helper.js", @@ -40,7 +40,7 @@ describe.skipIf(isWindows || process.env.ECOSYSTEM_CI)('minimal nuxt application it('default server bundle size', async () => { stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"91k"') + expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"92k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2650k"') diff --git a/test/fixtures/basic/nuxt.config.ts b/test/fixtures/basic/nuxt.config.ts index a1e40b709d..e625264c02 100644 --- a/test/fixtures/basic/nuxt.config.ts +++ b/test/fixtures/basic/nuxt.config.ts @@ -108,12 +108,6 @@ export default defineNuxtConfig({ addVitePlugin(plugin.vite()) addWebpackPlugin(plugin.webpack()) }, - function (_options, nuxt) { - // TODO: support directly via object syntax plugins: https://github.com/nuxt/nuxt/issues/14628 - nuxt.hook('modules:done', () => { - nuxt.options.plugins.unshift('~/plugins/custom-type-registration') - }) - }, function (_options, nuxt) { const routesToDuplicate = ['/async-parent', '/fixed-keyed-child-parent', '/keyed-child-parent', '/with-layout', '/with-layout2'] const stripLayout = (page: NuxtPage): NuxtPage => ({ diff --git a/test/fixtures/basic/plugins/custom-type-registration.ts b/test/fixtures/basic/plugins/custom-type-registration.ts index b7ef9b110f..ec37ab6ce9 100644 --- a/test/fixtures/basic/plugins/custom-type-registration.ts +++ b/test/fixtures/basic/plugins/custom-type-registration.ts @@ -1,4 +1,4 @@ -export default defineNuxtPlugin((nuxtApp) => { +export default definePayloadPlugin((nuxtApp) => { definePayloadReducer('BlinkingText', data => data === '' && '_') definePayloadReviver('BlinkingText', () => '') if (process.server) { From 5a0a5f405fc475e82b07edc74c57deac4940b280 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Apr 2023 04:59:08 -0700 Subject: [PATCH 015/912] chore(deps): update all non-major dependencies (main) (#20188) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 6 +-- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/test-utils/package.json | 2 +- pnpm-lock.yaml | 90 ++++++++++++++++---------------- 5 files changed, 51 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index 43eada0aac..6d9d85e820 100644 --- a/package.json +++ b/package.json @@ -53,12 +53,12 @@ "@types/node": "^18.15.11", "@types/rimraf": "^3.0.2", "@types/semver": "^7.3.13", - "@unocss/reset": "^0.51.2", + "@unocss/reset": "^0.51.3", "case-police": "^0.5.14", "changelogen": "^0.5.2", "crawler": "^1.4.0", "eslint": "^8.38.0", - "eslint-plugin-jsdoc": "^40.2.1", + "eslint-plugin-jsdoc": "^40.3.0", "execa": "^7.1.1", "expect-type": "^0.15.0", "globby": "^13.1.3", @@ -69,7 +69,7 @@ "ofetch": "^1.0.1", "pathe": "^1.1.0", "rimraf": "^5.0.0", - "semver": "^7.3.8", + "semver": "^7.4.0", "std-env": "^3.3.2", "typescript": "^5.0.4", "ufo": "^1.1.1", diff --git a/packages/kit/package.json b/packages/kit/package.json index 8994d9d6c5..7361800d1e 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -34,7 +34,7 @@ "pathe": "^1.1.0", "pkg-types": "^1.0.2", "scule": "^1.0.0", - "semver": "^7.3.8", + "semver": "^7.4.0", "unctx": "^2.2.0", "unimport": "^3.0.6", "untyped": "^1.3.2" diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 1da97dc25d..169efa6a82 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -44,7 +44,7 @@ "perfect-debounce": "^0.1.3", "pkg-types": "^1.0.2", "scule": "^1.0.0", - "semver": "^7.3.8", + "semver": "^7.4.0", "unbuild": "latest" }, "optionalDependencies": { diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index ed7e555c4f..980530d579 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -34,7 +34,7 @@ "ufo": "^1.1.1" }, "devDependencies": { - "playwright": "^1.32.2", + "playwright": "^1.32.3", "unbuild": "latest", "vitest": "^0.30.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b61298d565..eb233ea267 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ importers: specifier: ^7.3.13 version: 7.3.13 '@unocss/reset': - specifier: ^0.51.2 - version: 0.51.2 + specifier: ^0.51.3 + version: 0.51.3 case-police: specifier: ^0.5.14 version: 0.5.14 @@ -67,8 +67,8 @@ importers: specifier: ^8.38.0 version: 8.38.0 eslint-plugin-jsdoc: - specifier: ^40.2.1 - version: 40.2.1(eslint@8.38.0) + specifier: ^40.3.0 + version: 40.3.0(eslint@8.38.0) execa: specifier: ^7.1.1 version: 7.1.1 @@ -100,8 +100,8 @@ importers: specifier: ^5.0.0 version: 5.0.0 semver: - specifier: ^7.3.8 - version: 7.3.8 + specifier: ^7.4.0 + version: 7.4.0 std-env: specifier: ^3.3.2 version: 3.3.2 @@ -119,7 +119,7 @@ importers: version: 4.2.1(@types/node@18.15.11) vitest: specifier: ^0.30.0 - version: 0.30.0(playwright@1.32.2) + version: 0.30.0(playwright@1.32.3) vue-tsc: specifier: ^1.2.0 version: 1.2.0(typescript@5.0.4) @@ -161,7 +161,7 @@ importers: version: link:../../../packages/nuxt vitest: specifier: latest - version: 0.30.0(playwright@1.32.2) + version: 0.30.0(playwright@1.32.3) examples/app-config: devDependencies: @@ -403,8 +403,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 semver: - specifier: ^7.3.8 - version: 7.3.8 + specifier: ^7.4.0 + version: 7.4.0 unctx: specifier: ^2.2.0 version: 2.2.0 @@ -510,8 +510,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 semver: - specifier: ^7.3.8 - version: 7.3.8 + specifier: ^7.4.0 + version: 7.4.0 unbuild: specifier: ^1.2.0 version: 1.2.0 @@ -783,14 +783,14 @@ importers: version: 3.2.47 devDependencies: playwright: - specifier: ^1.32.2 - version: 1.32.2 + specifier: ^1.32.3 + version: 1.32.3 unbuild: specifier: ^1.2.0 version: 1.2.0 vitest: specifier: ^0.30.0 - version: 0.30.0(playwright@1.32.2) + version: 0.30.0(playwright@1.32.3) packages/vite: dependencies: @@ -1737,7 +1737,7 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.3.8 + semver: 7.4.0 tar: 6.1.13 transitivePeerDependencies: - encoding @@ -2332,7 +2332,7 @@ packages: ignore: 5.2.4 natural-compare-lite: 1.4.0 regexpp: 3.2.0 - semver: 7.3.8 + semver: 7.4.0 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: @@ -2406,7 +2406,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.8 + semver: 7.4.0 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: @@ -2427,7 +2427,7 @@ packages: eslint: 8.38.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0(eslint@8.38.0) - semver: 7.3.8 + semver: 7.4.0 transitivePeerDependencies: - supports-color - typescript @@ -2614,8 +2614,8 @@ packages: resolution: {integrity: sha512-m6+M3E2cTPhX+2aKocRfDqQt7ebEtjJHH8sVYpX8xJoN0vOqjSNmUYc6AIkwUYljx4QbEC3thcQSbqel82RbXQ==} dev: true - /@unocss/reset@0.51.2: - resolution: {integrity: sha512-HWn3qSdYT+VE1IiMgsXz5bE9pQF5SXWr7EIjFj2seb+YQkaf266vaUNUM5ln/uD6mWWwuo3TZSrA5+Vz4darkw==} + /@unocss/reset@0.51.3: + resolution: {integrity: sha512-hdm9pKj7ih6MLOSjGJisvh0TMnPmyGDMXQDcgGZJATgVuTJtBmXE74nsIgBVRCfjwqDDqmzG2TB0PlpiTFM9mg==} dev: true /@unocss/scope@0.45.30: @@ -3477,7 +3477,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.3.8 + semver: 7.4.0 dev: true /bundle-name@3.0.0: @@ -3596,7 +3596,7 @@ packages: pathe: 1.1.0 pkg-types: 1.0.2 scule: 1.0.0 - semver: 7.3.8 + semver: 7.4.0 yaml: 2.2.1 transitivePeerDependencies: - supports-color @@ -3793,7 +3793,7 @@ packages: js-string-escape: 1.0.1 lodash: 4.17.21 md5-hex: 3.0.1 - semver: 7.3.8 + semver: 7.4.0 well-known-symbols: 2.0.0 dev: true @@ -3917,7 +3917,7 @@ packages: postcss-modules-scope: 3.0.0(postcss@8.4.21) postcss-modules-values: 4.0.0(postcss@8.4.21) postcss-value-parser: 4.2.0 - semver: 7.3.8 + semver: 7.4.0 webpack: 5.78.0 dev: false @@ -4874,8 +4874,8 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc@40.2.1(eslint@8.38.0): - resolution: {integrity: sha512-d7PsUMNqrbCROSAeJd2dhTS/DapYEJ7vo27g12u4nh/bLQHHcqXNbXwhANf/D5/gUDNwinU3ZmmM4f2alQ1ncA==} + /eslint-plugin-jsdoc@40.3.0(eslint@8.38.0): + resolution: {integrity: sha512-EhCqpzRkxoT2DUB4AnrU0ggBYvTh3bWrLZzQTupq6vSVE6XzNwJVKsOHa41GCoevnsWMBNmoDVjXWGqckjuG1g==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -4886,7 +4886,7 @@ packages: escape-string-regexp: 4.0.0 eslint: 8.38.0 esquery: 1.5.0 - semver: 7.3.8 + semver: 7.4.0 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color @@ -4906,7 +4906,7 @@ packages: is-core-module: 2.11.0 minimatch: 3.1.2 resolve: 1.22.1 - semver: 7.3.8 + semver: 7.4.0 dev: true /eslint-plugin-node@11.1.0(eslint@8.38.0): @@ -4952,7 +4952,7 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.24 safe-regex: 2.1.1 - semver: 7.3.8 + semver: 7.4.0 strip-indent: 3.0.0 dev: true @@ -4967,7 +4967,7 @@ packages: natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.11 - semver: 7.3.8 + semver: 7.4.0 vue-eslint-parser: 9.1.0(eslint@8.38.0) xml-name-validator: 4.0.0 transitivePeerDependencies: @@ -5318,7 +5318,7 @@ packages: minimatch: 3.1.2 node-abort-controller: 3.1.1 schema-utils: 3.1.1 - semver: 7.3.8 + semver: 7.4.0 tapable: 2.2.1 typescript: 5.0.4 webpack: 5.78.0 @@ -6766,7 +6766,7 @@ packages: rollup: 3.20.2 rollup-plugin-visualizer: 5.9.0(rollup@3.20.2) scule: 1.0.0 - semver: 7.3.8 + semver: 7.4.0 serve-placeholder: 2.0.1 serve-static: 1.15.0 source-map-support: 0.5.21 @@ -7182,19 +7182,19 @@ packages: mlly: 1.2.0 pathe: 1.1.0 - /playwright-core@1.32.2: - resolution: {integrity: sha512-zD7aonO+07kOTthsrCR3YCVnDcqSHIJpdFUtZEMOb6//1Rc7/6mZDRdw+nlzcQiQltOOsiqI3rrSyn/SlyjnJQ==} + /playwright-core@1.32.3: + resolution: {integrity: sha512-SB+cdrnu74ZIn5Ogh/8278ngEh9NEEV0vR4sJFmK04h2iZpybfbqBY0bX6+BLYWVdV12JLLI+JEFtSnYgR+mWg==} engines: {node: '>=14'} hasBin: true dev: true - /playwright@1.32.2: - resolution: {integrity: sha512-jHVnXJke0PXpuPszKtk9y1zZSlzO5+2a+aockT/AND0oeXx46FiJEFrafthurglLygVZA+1gEbtUM1C7qtTV+Q==} + /playwright@1.32.3: + resolution: {integrity: sha512-h/ylpgoj6l/EjkfUDyx8cdOlfzC96itPpPe8BXacFkqpw/YsuxkpPyVbzEq4jw+bAJh5FLgh31Ljg2cR6HV3uw==} engines: {node: '>=14'} hasBin: true requiresBuild: true dependencies: - playwright-core: 1.32.2 + playwright-core: 1.32.3 dev: true /pluralize@8.0.0: @@ -7308,7 +7308,7 @@ packages: cosmiconfig-typescript-loader: 4.3.0(@types/node@18.15.11)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4) klona: 2.0.6 postcss: 8.4.21 - semver: 7.3.8 + semver: 7.4.0 ts-node: 10.9.1(@types/node@18.15.11)(typescript@5.0.4) typescript: 5.0.4 webpack: 5.78.0 @@ -7991,8 +7991,8 @@ packages: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + /semver@7.4.0: + resolution: {integrity: sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==} engines: {node: '>=10'} hasBin: true dependencies: @@ -9075,7 +9075,7 @@ packages: optionalDependencies: fsevents: 2.3.2 - /vitest@0.30.0(playwright@1.32.2): + /vitest@0.30.0(playwright@1.32.3): resolution: {integrity: sha512-2WW4WeTHtrLFeoiuotWvEW6khozx1NvMGYoGsNz2btdddEbqvEdPJIouIdoiC5i61Rl1ctZvm9cn2R9TcPQlzw==} engines: {node: '>=v14.18.0'} hasBin: true @@ -9124,7 +9124,7 @@ packages: magic-string: 0.30.0 pathe: 1.1.0 picocolors: 1.0.0 - playwright: 1.32.2 + playwright: 1.32.3 source-map: 0.6.1 std-env: 3.3.2 strip-literal: 1.0.1 @@ -9152,7 +9152,7 @@ packages: engines: {vscode: ^1.52.0} dependencies: minimatch: 3.1.2 - semver: 7.3.8 + semver: 7.4.0 vscode-languageserver-protocol: 3.16.0 dev: false @@ -9220,7 +9220,7 @@ packages: espree: 9.5.1 esquery: 1.5.0 lodash: 4.17.21 - semver: 7.3.8 + semver: 7.4.0 transitivePeerDependencies: - supports-color dev: true From bc910f68374f540994b2da4528f08a4186c00930 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Apr 2023 05:38:53 -0700 Subject: [PATCH 016/912] chore(deps): update all non-major dependencies (main) (#20196) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- package.json | 2 +- packages/nuxt/package.json | 4 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- pnpm-lock.yaml | 109 ++++++++++++++++--------------- 5 files changed, 60 insertions(+), 59 deletions(-) diff --git a/package.json b/package.json index 6d9d85e820..5e7074c30f 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "ufo": "^1.1.1", "unbuild": "^1.2.0", "vite": "^4.2.1", - "vitest": "^0.30.0", + "vitest": "^0.30.1", "vue-tsc": "^1.2.0" }, "packageManager": "pnpm@8.2.0", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index e5ff4d874f..b0076f0cec 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -59,7 +59,7 @@ "@nuxt/devalue": "^2.0.0", "@nuxt/kit": "workspace:../kit", "@nuxt/schema": "workspace:../schema", - "@nuxt/telemetry": "^2.1.10", + "@nuxt/telemetry": "^2.2.0", "@nuxt/ui-templates": "^1.1.1", "@nuxt/vite-builder": "workspace:../vite", "@unhead/ssr": "^1.1.25", @@ -95,7 +95,7 @@ "strip-literal": "^1.0.1", "ufo": "^1.1.1", "unctx": "^2.2.0", - "unenv": "^1.3.0", + "unenv": "^1.3.1", "unimport": "^3.0.6", "unplugin": "^1.3.1", "untyped": "^1.3.2", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 980530d579..4d22530b44 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -36,7 +36,7 @@ "devDependencies": { "playwright": "^1.32.3", "unbuild": "latest", - "vitest": "^0.30.0" + "vitest": "^0.30.1" }, "peerDependencies": { "vue": "^3.2.47" diff --git a/packages/vite/package.json b/packages/vite/package.json index 63ad91ad63..0a78daa9e8 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -55,7 +55,7 @@ "ufo": "^1.1.1", "unplugin": "^1.3.1", "vite": "~4.2.1", - "vite-node": "^0.30.0", + "vite-node": "^0.30.1", "vite-plugin-checker": "^0.5.6", "vue-bundle-renderer": "^1.0.3" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index eb233ea267..9b216e8e9b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -118,8 +118,8 @@ importers: specifier: ^4.2.1 version: 4.2.1(@types/node@18.15.11) vitest: - specifier: ^0.30.0 - version: 0.30.0(playwright@1.32.3) + specifier: ^0.30.1 + version: 0.30.1(playwright@1.32.3) vue-tsc: specifier: ^1.2.0 version: 1.2.0(typescript@5.0.4) @@ -161,7 +161,7 @@ importers: version: link:../../../packages/nuxt vitest: specifier: latest - version: 0.30.0(playwright@1.32.3) + version: 0.30.1(playwright@1.32.3) examples/app-config: devDependencies: @@ -528,8 +528,8 @@ importers: specifier: workspace:* version: link:../schema '@nuxt/telemetry': - specifier: ^2.1.10 - version: 2.1.10 + specifier: ^2.2.0 + version: 2.2.0 '@nuxt/ui-templates': specifier: ^1.1.1 version: 1.1.1 @@ -639,8 +639,8 @@ importers: specifier: ^2.2.0 version: 2.2.0 unenv: - specifier: ^1.3.0 - version: 1.3.0 + specifier: ^1.3.1 + version: 1.3.1 unimport: specifier: ^3.0.6 version: 3.0.6(rollup@3.20.2) @@ -789,8 +789,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 vitest: - specifier: ^0.30.0 - version: 0.30.0(playwright@1.32.3) + specifier: ^0.30.1 + version: 0.30.1(playwright@1.32.3) packages/vite: dependencies: @@ -891,8 +891,8 @@ importers: specifier: ^4.2.1 version: 4.2.1(@types/node@18.15.11) vite-node: - specifier: ^0.30.0 - version: 0.30.0(@types/node@18.15.11) + specifier: ^0.30.1 + version: 0.30.1(@types/node@18.15.11) vite-plugin-checker: specifier: ^0.5.6 version: 0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.2.1)(vue-tsc@1.2.0) @@ -1784,29 +1784,29 @@ packages: webpack: 5.78.0 dev: false - /@nuxt/telemetry@2.1.10: - resolution: {integrity: sha512-FOsfC0i6Ix66M/ZlWV/095JIdfnRR9CRbFvBSpojt2CpbwU1pGMbRiicwYg2f1Wf27LXQRNpNn1OczruBfEWag==} + /@nuxt/telemetry@2.2.0: + resolution: {integrity: sha512-Z2UmPkBy5WjxvHKuUcl1X6vKWnIyWSP+9UGde1F+MzzZxYgAQybFud1uL2B3KCowxZdoqT1hd2WklV7EtyCwrQ==} hasBin: true dependencies: '@nuxt/kit': link:packages/kit chalk: 5.2.0 ci-info: 3.8.0 - consola: 2.15.3 + consola: 3.0.1 create-require: 1.1.1 defu: 6.1.2 destr: 1.2.2 dotenv: 16.0.3 fs-extra: 10.1.0 git-url-parse: 13.1.0 - inquirer: 9.1.4 + inquirer: 9.1.5 is-docker: 3.0.0 jiti: 1.18.2 mri: 1.2.0 - nanoid: 4.0.1 + nanoid: 4.0.2 node-fetch: 3.3.1 ofetch: 1.0.1 parse-git-config: 3.0.0 - rc9: 2.0.1 + rc9: 2.1.0 std-env: 3.3.2 dev: false @@ -2727,39 +2727,39 @@ packages: vite: 4.2.1(@types/node@18.15.11) vue: 3.2.47 - /@vitest/expect@0.30.0: - resolution: {integrity: sha512-b/jLWBqi6WQHfezWm8VjgXdIyfejAurtxqdyCdDqoToCim5W/nDxKjFAADitEHPz80oz+IP+c+wmkGKBucSpiw==} + /@vitest/expect@0.30.1: + resolution: {integrity: sha512-c3kbEtN8XXJSeN81iDGq29bUzSjQhjES2WR3aColsS4lPGbivwLtas4DNUe0jD9gg/FYGIteqOenfU95EFituw==} dependencies: - '@vitest/spy': 0.30.0 - '@vitest/utils': 0.30.0 + '@vitest/spy': 0.30.1 + '@vitest/utils': 0.30.1 chai: 4.3.7 dev: true - /@vitest/runner@0.30.0: - resolution: {integrity: sha512-Xh4xkdRcymdeRNrSwjhgarCTSgnQu2J59wsFI6i4UhKrL5whzo5+vWyq7iWK1ht3fppPeNAtvkbqUDf+OJSCbQ==} + /@vitest/runner@0.30.1: + resolution: {integrity: sha512-W62kT/8i0TF1UBCNMRtRMOBWJKRnNyv9RrjIgdUryEe0wNpGZvvwPDLuzYdxvgSckzjp54DSpv1xUbv4BQ0qVA==} dependencies: - '@vitest/utils': 0.30.0 + '@vitest/utils': 0.30.1 concordance: 5.0.4 p-limit: 4.0.0 pathe: 1.1.0 dev: true - /@vitest/snapshot@0.30.0: - resolution: {integrity: sha512-e4eSGCy36Bw3/Tkir9qYJDlFsUz3NALFPNJSxzlY8CFl901TV9iZdKgpqXpyG1sAhLO0tPHThBAMHRi8hRA8cg==} + /@vitest/snapshot@0.30.1: + resolution: {integrity: sha512-fJZqKrE99zo27uoZA/azgWyWbFvM1rw2APS05yB0JaLwUIg9aUtvvnBf4q7JWhEcAHmSwbrxKFgyBUga6tq9Tw==} dependencies: magic-string: 0.30.0 pathe: 1.1.0 pretty-format: 27.5.1 dev: true - /@vitest/spy@0.30.0: - resolution: {integrity: sha512-olTWyG5gVWdfhCrdgxWQb2K3JYtj1/ZwInFFOb4GZ2HFI91PUWHWHhLRPORxwRwVvoXD1MS1162vPJZuHlKJkg==} + /@vitest/spy@0.30.1: + resolution: {integrity: sha512-YfJeIf37GvTZe04ZKxzJfnNNuNSmTEGnla2OdL60C8od16f3zOfv9q9K0nNii0NfjDJRt/CVN/POuY5/zTS+BA==} dependencies: tinyspy: 2.1.0 dev: true - /@vitest/utils@0.30.0: - resolution: {integrity: sha512-qFZgoOKQ+rJV9xG4BBxgOSilnLQ2gkfG4I+z1wBuuQ3AD33zQrnB88kMFfzsot1E1AbF3dNK1e4CU7q3ojahRA==} + /@vitest/utils@0.30.1: + resolution: {integrity: sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==} dependencies: concordance: 5.0.4 loupe: 2.3.6 @@ -3504,7 +3504,7 @@ packages: mlly: 1.2.0 pathe: 1.1.0 pkg-types: 1.0.2 - rc9: 2.0.1 + rc9: 2.1.0 transitivePeerDependencies: - supports-color @@ -5836,9 +5836,9 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} dev: true - /inquirer@9.1.4: - resolution: {integrity: sha512-9hiJxE5gkK/cM2d1mTEnuurGTAoHebbkX0BYl3h7iEg7FYfuNIom+nDfBCSWtvSnoSrWCeBxqqBZu26xdlJlXA==} - engines: {node: '>=12.0.0'} + /inquirer@9.1.5: + resolution: {integrity: sha512-3ygAIh8gcZavV9bj6MTdYddG2zPSYswP808fKS46NOwlF0zZljVpnLCHODDqItWJDbDpLb3aouAxGaJbkxoppA==} + engines: {node: '>=14.18.0'} dependencies: ansi-escapes: 6.0.0 chalk: 5.2.0 @@ -5847,7 +5847,7 @@ packages: external-editor: 3.1.0 figures: 5.0.0 lodash: 4.17.21 - mute-stream: 0.0.8 + mute-stream: 1.0.0 ora: 6.1.2 run-async: 2.4.1 rxjs: 7.8.0 @@ -6687,8 +6687,9 @@ packages: /muggle-string@0.2.2: resolution: {integrity: sha512-YVE1mIJ4VpUMqZObFndk9CJu6DBJR/GB13p3tXuNbwD4XExaI5EOuRl6BHeIDxIqXZVxSfAC+y6U1Z/IxCfKUg==} - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + /mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: false /nanoid@3.3.4: @@ -6696,8 +6697,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /nanoid@4.0.1: - resolution: {integrity: sha512-udKGtCCUafD3nQtJg9wBhRP3KMbPglUsgV5JVsXhvyBs/oefqb4sqMEhKBBgqZncYowu58p1prsZQBYvAj/Gww==} + /nanoid@4.0.2: + resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} engines: {node: ^14 || ^16 || >=18} hasBin: true dev: false @@ -6772,7 +6773,7 @@ packages: source-map-support: 0.5.21 std-env: 3.3.2 ufo: 1.1.1 - unenv: 1.3.0 + unenv: 1.3.1 unimport: 3.0.6(rollup@3.20.2) unstorage: 1.4.1 transitivePeerDependencies: @@ -7669,8 +7670,8 @@ packages: resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} engines: {node: '>= 0.6'} - /rc9@2.0.1: - resolution: {integrity: sha512-9EfjLgNmzP9255YX8bGnILQcmdtOXKtUlFTu8bOZPJVtaUDZ2imswcUdpK51tMjTRQyB7r5RebNijrzuyGXcVA==} + /rc9@2.1.0: + resolution: {integrity: sha512-ROO9bv8PPqngWKoiUZU3JDQ4sugpdRs9DfwHnzDSxK25XtQn6BEHL6EOd/OtKuDT2qodrtNR+0WkPT6l0jxH5Q==} dependencies: defu: 6.1.2 destr: 1.2.2 @@ -8722,8 +8723,8 @@ packages: busboy: 1.6.0 dev: true - /unenv@1.3.0: - resolution: {integrity: sha512-NTAVceoRPD5brWx6ej+zVCP6aw1LXsx6VjmpaJKE3nZqrycZ6nB1MrKOVZ65hcSVlzCb8QdZAEY162awdD5juA==} + /unenv@1.3.1: + resolution: {integrity: sha512-4hTMiJf1TgQNnOsZxaI6XpCpVvOUNYLW3NxEkjdzXf+Dukys4b01AShapcXzKzvgoyoWByP3MLbg/CkzcKx+GA==} dependencies: defu: 6.1.2 mime: 3.0.0 @@ -8935,8 +8936,8 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.30.0(@types/node@18.15.11): - resolution: {integrity: sha512-23X5Ggylx0kU/bMf8MCcEEl55d/gsTtU81mMZjm7Z0FSpgKZexUqmX3mJtgglP9SySQQs9ydYg/GEahi/cKHaA==} + /vite-node@0.30.1(@types/node@18.15.11): + resolution: {integrity: sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==} engines: {node: '>=v14.18.0'} hasBin: true dependencies: @@ -9075,8 +9076,8 @@ packages: optionalDependencies: fsevents: 2.3.2 - /vitest@0.30.0(playwright@1.32.3): - resolution: {integrity: sha512-2WW4WeTHtrLFeoiuotWvEW6khozx1NvMGYoGsNz2btdddEbqvEdPJIouIdoiC5i61Rl1ctZvm9cn2R9TcPQlzw==} + /vitest@0.30.1(playwright@1.32.3): + resolution: {integrity: sha512-y35WTrSTlTxfMLttgQk4rHcaDkbHQwDP++SNwPb+7H8yb13Q3cu2EixrtHzF27iZ8v0XCciSsLg00RkPAzB/aA==} engines: {node: '>=v14.18.0'} hasBin: true peerDependencies: @@ -9109,11 +9110,11 @@ packages: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 '@types/node': 18.15.11 - '@vitest/expect': 0.30.0 - '@vitest/runner': 0.30.0 - '@vitest/snapshot': 0.30.0 - '@vitest/spy': 0.30.0 - '@vitest/utils': 0.30.0 + '@vitest/expect': 0.30.1 + '@vitest/runner': 0.30.1 + '@vitest/snapshot': 0.30.1 + '@vitest/spy': 0.30.1 + '@vitest/utils': 0.30.1 acorn: 8.8.2 acorn-walk: 8.2.0 cac: 6.7.14 @@ -9131,7 +9132,7 @@ packages: tinybench: 2.4.0 tinypool: 0.4.0 vite: 4.2.1(@types/node@18.15.11) - vite-node: 0.30.0(@types/node@18.15.11) + vite-node: 0.30.1(@types/node@18.15.11) why-is-node-running: 2.2.2 transitivePeerDependencies: - less From 1f70cb7219ef8f7f921d92c2a2a8f1a529d1b954 Mon Sep 17 00:00:00 2001 From: Jeremy Graziani Date: Tue, 11 Apr 2023 14:41:22 +0200 Subject: [PATCH 017/912] docs: fix typo in `@pinia/nuxt` module name (#20199) --- docs/7.migration/2.configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/7.migration/2.configuration.md b/docs/7.migration/2.configuration.md index 84c8634e32..d56d218211 100644 --- a/docs/7.migration/2.configuration.md +++ b/docs/7.migration/2.configuration.md @@ -136,7 +136,7 @@ Nuxt no longer provides a Vuex integration. Instead, the official Vue recommenda A simple way to provide global state management with pinia would be: -Install the [@nuxt/pinia](https://nuxt.com/modules/pinia) module: +Install the [@pinia/nuxt](https://nuxt.com/modules/pinia) module: ```bash yarn add pinia @pinia/nuxt From 0443a283d9cbd7686f9f114e3e76eae837a85ac8 Mon Sep 17 00:00:00 2001 From: Nolan <824015+ncphillips@users.noreply.github.com> Date: Tue, 11 Apr 2023 09:41:44 -0300 Subject: [PATCH 018/912] docs: add import to server-side cookies example (#20197) --- docs/1.getting-started/6.data-fetching.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/1.getting-started/6.data-fetching.md b/docs/1.getting-started/6.data-fetching.md index 089f61b40a..f001320633 100644 --- a/docs/1.getting-started/6.data-fetching.md +++ b/docs/1.getting-started/6.data-fetching.md @@ -263,6 +263,8 @@ Be very careful before proxying headers to an external API and just include head If you want to pass on/proxy cookies in the other direction, from an internal request back to the client, you will need to handle this yourself. ```ts [composables/fetch.ts] +import { appendHeader, H3Event } from 'h3' + export const fetchWithCookie = async (event: H3Event, url: string) => { const res = await $fetch.raw(url) const cookies = (res.headers.get('set-cookie') || '').split(',') From 89ab2e522d90a31f49155fc11e7321c2bb879c71 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Apr 2023 13:46:49 +0100 Subject: [PATCH 019/912] fix(nuxi, vite): suppress sourcemap + native fetch warnings (#20198) --- packages/nuxi/src/cli.ts | 5 +++++ packages/vite/src/utils/logger.ts | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/packages/nuxi/src/cli.ts b/packages/nuxi/src/cli.ts index 0118ade73d..5084564dbc 100755 --- a/packages/nuxi/src/cli.ts +++ b/packages/nuxi/src/cli.ts @@ -54,6 +54,11 @@ const wrapReporter = (reporter: ConsolaReporter) => ({ if (msg.startsWith('[Vue Router warn]: No match found for location with path')) { return } + // Suppress warning about native Node.js fetch + if (msg.includes('ExperimentalWarning: The Fetch API is an experimental feature')) { + return + } + // TODO: resolve upstream in Vite // Hide sourcemap warnings related to node_modules if (msg.startsWith('Sourcemap') && msg.includes('node_modules')) { return diff --git a/packages/vite/src/utils/logger.ts b/packages/vite/src/utils/logger.ts index cf7d2452bb..7b25658b2a 100644 --- a/packages/vite/src/utils/logger.ts +++ b/packages/vite/src/utils/logger.ts @@ -27,6 +27,12 @@ export function createViteLogger (config: vite.InlineConfig): vite.Logger { const clearScreen = canClearScreen ? clear : () => {} function output (type: vite.LogType, msg: string, options: vite.LogErrorOptions = {}) { + if (typeof msg === 'string' && !process.env.DEBUG) { + // TODO: resolve upstream in Vite + // Hide sourcemap warnings related to node_modules + if (msg.startsWith('Sourcemap') && msg.includes('node_modules')) { return } + } + const sameAsLast = lastType === type && lastMsg === msg if (sameAsLast) { duplicateCount += 1 From 4da289d150d07cd2a9e129dde9678a0d088b7547 Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Tue, 11 Apr 2023 20:55:25 +0700 Subject: [PATCH 020/912] fix(schema): allow `ignorePrefix` to be changed (#20202) --- packages/schema/src/config/common.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/schema/src/config/common.ts b/packages/schema/src/config/common.ts index cfd29dc9a4..bce40ea5ad 100644 --- a/packages/schema/src/config/common.ts +++ b/packages/schema/src/config/common.ts @@ -331,7 +331,9 @@ export default defineUntypedSchema({ * Any file in `pages/`, `layouts/`, `middleware/` or `store/` will be ignored during * building if its filename starts with the prefix specified by `ignorePrefix`. */ - ignorePrefix: '-', + ignorePrefix: { + $resolve: (val) => val ?? '-', + }, /** * More customizable than `ignorePrefix`: all files matching glob patterns specified From 4fc3e780be00443830566e0b7ca363e14d43574d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Apr 2023 06:55:49 -0700 Subject: [PATCH 021/912] chore(deps): update devdependency @unocss/reset to ^0.51.4 (main) (#20200) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 5e7074c30f..beaae878f5 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "@types/node": "^18.15.11", "@types/rimraf": "^3.0.2", "@types/semver": "^7.3.13", - "@unocss/reset": "^0.51.3", + "@unocss/reset": "^0.51.4", "case-police": "^0.5.14", "changelogen": "^0.5.2", "crawler": "^1.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9b216e8e9b..bae91f0667 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,8 +52,8 @@ importers: specifier: ^7.3.13 version: 7.3.13 '@unocss/reset': - specifier: ^0.51.3 - version: 0.51.3 + specifier: ^0.51.4 + version: 0.51.4 case-police: specifier: ^0.5.14 version: 0.5.14 @@ -2614,8 +2614,8 @@ packages: resolution: {integrity: sha512-m6+M3E2cTPhX+2aKocRfDqQt7ebEtjJHH8sVYpX8xJoN0vOqjSNmUYc6AIkwUYljx4QbEC3thcQSbqel82RbXQ==} dev: true - /@unocss/reset@0.51.3: - resolution: {integrity: sha512-hdm9pKj7ih6MLOSjGJisvh0TMnPmyGDMXQDcgGZJATgVuTJtBmXE74nsIgBVRCfjwqDDqmzG2TB0PlpiTFM9mg==} + /@unocss/reset@0.51.4: + resolution: {integrity: sha512-3FnajZSOrQ4qSbpkY1IGRIFYw8I9E98SBXvjMnHqSl8k4YPbBP29W3YrgSVBMOnPNRL67hRcTaMF3nmbnBuWtQ==} dev: true /@unocss/scope@0.45.30: From 90d9cbbe88ec7c430aeab024940b6911625abcbe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Apr 2023 07:14:46 -0700 Subject: [PATCH 022/912] chore(deps): update devdependency nitropack to ^2.3.3 (main) (#20203) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- pnpm-lock.yaml | 43 +++++++++++++++++++++++------------- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index b0076f0cec..3384e9e84a 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -83,7 +83,7 @@ "local-pkg": "^0.4.3", "magic-string": "^0.30.0", "mlly": "^1.2.0", - "nitropack": "^2.3.2", + "nitropack": "^2.3.3", "nuxi": "workspace:../nuxi", "nypm": "^0.1.0", "ofetch": "^1.0.1", diff --git a/packages/schema/package.json b/packages/schema/package.json index f9bef6b958..3944656fbb 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -26,7 +26,7 @@ "@unhead/schema": "^1.1.25", "@vitejs/plugin-vue": "^4.1.0", "@vitejs/plugin-vue-jsx": "^3.0.1", - "nitropack": "^2.3.2", + "nitropack": "^2.3.3", "unbuild": "latest", "unctx": "^2.2.0", "vite": "~4.2.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bae91f0667..bd01f8b0c3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -603,8 +603,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 nitropack: - specifier: ^2.3.2 - version: 2.3.2 + specifier: ^2.3.3 + version: 2.3.3 nuxi: specifier: workspace:* version: link:../nuxi @@ -734,8 +734,8 @@ importers: specifier: ^3.0.1 version: 3.0.1(vite@4.2.1)(vue@3.2.47) nitropack: - specifier: ^2.3.2 - version: 2.3.2 + specifier: ^2.3.3 + version: 2.3.3 unbuild: specifier: ^1.2.0 version: 1.2.0 @@ -1926,6 +1926,19 @@ packages: dependencies: rollup: 3.20.2 slash: 4.0.0 + dev: true + + /@rollup/plugin-alias@5.0.0(rollup@3.20.2): + resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + rollup: 3.20.2 + slash: 4.0.0 /@rollup/plugin-commonjs@24.0.1(rollup@3.20.2): resolution: {integrity: sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==} @@ -1970,8 +1983,8 @@ packages: '@rollup/pluginutils': 5.0.2(rollup@3.20.2) rollup: 3.20.2 - /@rollup/plugin-node-resolve@15.0.1(rollup@3.20.2): - resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==} + /@rollup/plugin-node-resolve@15.0.2(rollup@3.20.2): + resolution: {integrity: sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0 @@ -2000,8 +2013,8 @@ packages: magic-string: 0.30.0 rollup: 3.20.2 - /@rollup/plugin-terser@0.4.0(rollup@3.20.2): - resolution: {integrity: sha512-Ipcf3LPNerey1q9ZMjiaWHlNPEHNU/B5/uh9zXLltfEQ1lVSLLeZSgAtTPWGyw8Ip1guOeq+mDtdOlEj/wNxQw==} + /@rollup/plugin-terser@0.4.1(rollup@3.20.2): + resolution: {integrity: sha512-aKS32sw5a7hy+fEXVy+5T95aDIwjpGHCTv833HXVtyKMDoVS7pBr5K3L9hEQoNqbJFjfANPrNpIXlTQ7is00eA==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.x || ^3.x @@ -6713,20 +6726,20 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - /nitropack@2.3.2: - resolution: {integrity: sha512-bps3OvC3JocB3Hl6/FUaQpbLw1Xsr6KXV3hTDnh54N0B0uAGWN9aF1LVHKBpWSS5JJvjwd+ZewOUFsPRM2NJ9Q==} + /nitropack@2.3.3: + resolution: {integrity: sha512-1g/4zdwWo+tWSvno57rhRXeGk6jNbG5W1yRNtOywInT1nyoEG1ksOwQ3W3JHGB2E1GNjZwAVi611UVOVL+JgYw==} engines: {node: ^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} hasBin: true dependencies: '@cloudflare/kv-asset-handler': 0.3.0 '@netlify/functions': 1.4.0 - '@rollup/plugin-alias': 4.0.3(rollup@3.20.2) + '@rollup/plugin-alias': 5.0.0(rollup@3.20.2) '@rollup/plugin-commonjs': 24.0.1(rollup@3.20.2) '@rollup/plugin-inject': 5.0.3(rollup@3.20.2) '@rollup/plugin-json': 6.0.0(rollup@3.20.2) - '@rollup/plugin-node-resolve': 15.0.1(rollup@3.20.2) + '@rollup/plugin-node-resolve': 15.0.2(rollup@3.20.2) '@rollup/plugin-replace': 5.0.2(rollup@3.20.2) - '@rollup/plugin-terser': 0.4.0(rollup@3.20.2) + '@rollup/plugin-terser': 0.4.1(rollup@3.20.2) '@rollup/plugin-wasm': 6.1.2(rollup@3.20.2) '@rollup/pluginutils': 5.0.2(rollup@3.20.2) '@vercel/nft': 0.22.6 @@ -6734,7 +6747,7 @@ packages: c12: 1.2.0 chalk: 5.2.0 chokidar: 3.5.3 - consola: 2.15.3 + consola: 3.0.1 cookie-es: 0.5.0 defu: 6.1.2 destr: 1.2.2 @@ -8670,7 +8683,7 @@ packages: '@rollup/plugin-alias': 4.0.3(rollup@3.20.2) '@rollup/plugin-commonjs': 24.0.1(rollup@3.20.2) '@rollup/plugin-json': 6.0.0(rollup@3.20.2) - '@rollup/plugin-node-resolve': 15.0.1(rollup@3.20.2) + '@rollup/plugin-node-resolve': 15.0.2(rollup@3.20.2) '@rollup/plugin-replace': 5.0.2(rollup@3.20.2) '@rollup/pluginutils': 5.0.2(rollup@3.20.2) chalk: 5.2.0 From 163913a7443455397e6fb215be2c813b72b0db63 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Tue, 11 Apr 2023 16:17:44 +0200 Subject: [PATCH 023/912] feat(nuxt): add `experimentalNoScripts` route rule (#19805) --- docs/2.guide/1.concepts/3.rendering.md | 1 + packages/nuxt/src/core/runtime/nitro/renderer.ts | 8 +++++--- packages/nuxt/types.d.ts | 2 ++ packages/schema/src/config/experimental.ts | 1 + test/basic.test.ts | 5 +++++ test/fixtures/basic/nuxt.config.ts | 3 ++- test/fixtures/basic/pages/index.vue | 3 +++ test/fixtures/basic/pages/no-scripts.vue | 12 ++++++++++++ 8 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 test/fixtures/basic/pages/no-scripts.vue diff --git a/docs/2.guide/1.concepts/3.rendering.md b/docs/2.guide/1.concepts/3.rendering.md index cc8503fb10..af31e52a73 100644 --- a/docs/2.guide/1.concepts/3.rendering.md +++ b/docs/2.guide/1.concepts/3.rendering.md @@ -100,6 +100,7 @@ Nuxt 3 includes route rules and hybrid rendering support. Using route rules you - `swr` - Add cache headers to the server response and cache it in the server or reverse proxy for a configurable TTL. The `node-server` preset of Nitro is able to cache the full response. For Netlify and Vercel, the response is also added to the CDN layer. - `static` - The behavior is the same as `swr` except that there is no TTL; the response is cached until the next deployment. On Netlify and Vercel, it enables full incremental static generation. - `prerender` - Prerenders routes at build time and includes them in your build as static assets +- `experimentalNoScripts` - Disables rendering of Nuxt scripts and JS resource hints for sections of your site. **Examples:** diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 78ed13c2e3..86dd6acf1d 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -276,6 +276,8 @@ export default defineRenderHandler(async (event) => { ? await renderInlineStyles(ssrContext.modules ?? ssrContext._registeredComponents ?? []) : '' + const NO_SCRIPTS = process.env.NUXT_NO_SCRIPTS || routeOptions.experimentalNoScripts + // Create render context const htmlContext: NuxtRenderHTMLContext = { island: Boolean(islandContext), @@ -285,7 +287,7 @@ export default defineRenderHandler(async (event) => { process.env.NUXT_JSON_PAYLOADS ? _PAYLOAD_EXTRACTION ? `` : null : _PAYLOAD_EXTRACTION ? `` : null, - _rendered.renderResourceHints(), + NO_SCRIPTS ? null : _rendered.renderResourceHints(), _rendered.renderStyles(), inlinedStyles, ssrContext.styles @@ -297,7 +299,7 @@ export default defineRenderHandler(async (event) => { ]), body: [_rendered.html], bodyAppend: normalizeChunks([ - process.env.NUXT_NO_SCRIPTS + NO_SCRIPTS ? undefined : (_PAYLOAD_EXTRACTION ? process.env.NUXT_JSON_PAYLOADS @@ -307,7 +309,7 @@ export default defineRenderHandler(async (event) => { ? renderPayloadJsonScript({ id: '__NUXT_DATA__', ssrContext, data: ssrContext.payload }) : renderPayloadScript({ ssrContext, data: ssrContext.payload }) ), - _rendered.renderScripts(), + routeOptions.experimentalNoScripts ? undefined : _rendered.renderScripts(), // Note: bodyScripts may contain tags other than From 811bf28068363530b5719bd9cae06cf5fbd6b6ff Mon Sep 17 00:00:00 2001 From: Sacha Stafyniak Date: Tue, 11 Apr 2023 14:19:45 +0000 Subject: [PATCH 024/912] feat(nuxt): add chokidar watcher debug timing (#20176) --- packages/nuxt/src/core/builder.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/nuxt/src/core/builder.ts b/packages/nuxt/src/core/builder.ts index 6c8647c393..76707abc9d 100644 --- a/packages/nuxt/src/core/builder.ts +++ b/packages/nuxt/src/core/builder.ts @@ -44,6 +44,10 @@ export async function build (nuxt: Nuxt) { } function watch (nuxt: Nuxt) { + if (nuxt.options.debug) { + console.time('[nuxt] builder:chokidar:watch') + } + const watcher = chokidar.watch(nuxt.options._layers.map(i => i.config.srcDir as string).filter(Boolean), { ...nuxt.options.watchers.chokidar, cwd: nuxt.options.srcDir, @@ -55,6 +59,10 @@ function watch (nuxt: Nuxt) { ] }) + if (nuxt.options.debug) { + watcher.on('ready', () => console.timeEnd('[nuxt] builder:chokidar:watch')) + } + watcher.on('all', (event, path) => nuxt.callHook('builder:watch', event, normalize(path))) nuxt.hook('close', () => watcher.close()) return watcher From d265abbad779d9559995f21c2423ca384adea858 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Apr 2023 16:05:25 +0100 Subject: [PATCH 025/912] test: update bundle size snapshot --- test/bundle.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/bundle.test.ts b/test/bundle.test.ts index cf9cd47f5e..cd30d6c2ba 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -40,7 +40,7 @@ describe.skipIf(isWindows || process.env.ECOSYSTEM_CI)('minimal nuxt application it('default server bundle size', async () => { stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"92k"') + expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"93k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2650k"') From 25e3a9046cc1b3dd9c1bf2c188a627b0a9446ad2 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Apr 2023 17:17:01 +0100 Subject: [PATCH 026/912] v3.4.0 (#20170) --- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 7361800d1e..b51e21b8d8 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.3.3", + "version": "3.4.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 169efa6a82..33570588c6 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -1,6 +1,6 @@ { "name": "nuxi", - "version": "3.3.3", + "version": "3.4.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 3384e9e84a..bbbf783036 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.3.3", + "version": "3.4.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/schema/package.json b/packages/schema/package.json index 3944656fbb..8f5683edca 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.3.3", + "version": "3.4.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 4d22530b44..55380a69fa 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.3.3", + "version": "3.4.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/vite/package.json b/packages/vite/package.json index 0a78daa9e8..fabc46103c 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.3.3", + "version": "3.4.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index da355257a9..bcc316d702 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.3.3", + "version": "3.4.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", From da21afd5491ecdfa078c206f659d09ddced6accf Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Apr 2023 18:47:28 +0100 Subject: [PATCH 027/912] chore(deps): update devdependency eslint-plugin-jsdoc to v41 (main) (#20207) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index beaae878f5..5ed56a8b8e 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "changelogen": "^0.5.2", "crawler": "^1.4.0", "eslint": "^8.38.0", - "eslint-plugin-jsdoc": "^40.3.0", + "eslint-plugin-jsdoc": "^41.1.0", "execa": "^7.1.1", "expect-type": "^0.15.0", "globby": "^13.1.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bd01f8b0c3..b4cbe82717 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,8 +67,8 @@ importers: specifier: ^8.38.0 version: 8.38.0 eslint-plugin-jsdoc: - specifier: ^40.3.0 - version: 40.3.0(eslint@8.38.0) + specifier: ^41.1.0 + version: 41.1.0(eslint@8.38.0) execa: specifier: ^7.1.1 version: 7.1.1 @@ -3263,6 +3263,11 @@ packages: tar-stream: 2.2.0 zip-stream: 4.1.0 + /are-docs-informative@0.0.1: + resolution: {integrity: sha512-iBN6NxFQTEH0au0K8EOz6BoXXs9Pz6bGOPOgQpstabUHlX7fFx72TXB/wy7hSGZ8QcMI+XalPeM3p8IG5ncGIA==} + engines: {node: '>=18'} + dev: true + /are-we-there-yet@2.0.0: resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} engines: {node: '>=10'} @@ -4887,13 +4892,14 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc@40.3.0(eslint@8.38.0): - resolution: {integrity: sha512-EhCqpzRkxoT2DUB4AnrU0ggBYvTh3bWrLZzQTupq6vSVE6XzNwJVKsOHa41GCoevnsWMBNmoDVjXWGqckjuG1g==} + /eslint-plugin-jsdoc@41.1.0(eslint@8.38.0): + resolution: {integrity: sha512-7nE0soOQfVhRNeV0pXTUz9IhdpBiAFNbRgs1W7TcPIOx+c4Qvy3vgI4848O9UmHrbrVUaYwpVHZvaXDeP0SBeg==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: '@es-joy/jsdoccomment': 0.37.0 + are-docs-informative: 0.0.1 comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 From 8f67d871b8516ebea7ee4ba4287893bda8d50d1e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Apr 2023 18:47:45 +0100 Subject: [PATCH 028/912] chore(deps): update dependency globby to ^13.1.4 (main) (#20206) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- packages/kit/package.json | 2 +- packages/nuxt/package.json | 2 +- pnpm-lock.yaml | 24 ++++++++++++------------ 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 5ed56a8b8e..5b9deaaa37 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "eslint-plugin-jsdoc": "^41.1.0", "execa": "^7.1.1", "expect-type": "^0.15.0", - "globby": "^13.1.3", + "globby": "^13.1.4", "jiti": "^1.18.2", "markdownlint-cli": "^0.33.0", "nuxi": "workspace:*", diff --git a/packages/kit/package.json b/packages/kit/package.json index b51e21b8d8..3a106a4f13 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -24,7 +24,7 @@ "c12": "^1.2.0", "consola": "^3.0.1", "defu": "^6.1.2", - "globby": "^13.1.3", + "globby": "^13.1.4", "hash-sum": "^2.0.0", "ignore": "^5.2.4", "jiti": "^1.18.2", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index bbbf783036..c04ee9ad63 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -74,7 +74,7 @@ "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", "fs-extra": "^11.1.1", - "globby": "^13.1.3", + "globby": "^13.1.4", "h3": "^1.6.4", "hash-sum": "^2.0.0", "hookable": "^5.5.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b4cbe82717..6f1f9ecdb6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -76,8 +76,8 @@ importers: specifier: ^0.15.0 version: 0.15.0 globby: - specifier: ^13.1.3 - version: 13.1.3 + specifier: ^13.1.4 + version: 13.1.4 jiti: specifier: ^1.18.2 version: 1.18.2 @@ -373,8 +373,8 @@ importers: specifier: ^6.1.2 version: 6.1.2 globby: - specifier: ^13.1.3 - version: 13.1.3 + specifier: ^13.1.4 + version: 13.1.4 hash-sum: specifier: ^2.0.0 version: 2.0.0 @@ -576,8 +576,8 @@ importers: specifier: ^11.1.1 version: 11.1.1 globby: - specifier: ^13.1.3 - version: 13.1.3 + specifier: ^13.1.4 + version: 13.1.4 h3: specifier: ^1.6.4 version: 1.6.4 @@ -4799,7 +4799,7 @@ packages: eslint: 8.38.0 eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.3)(eslint@8.38.0) get-tsconfig: 4.4.0 - globby: 13.1.3 + globby: 13.1.4 is-core-module: 2.11.0 is-glob: 4.0.3 synckit: 0.8.5 @@ -5608,8 +5608,8 @@ packages: slash: 3.0.0 dev: true - /globby@13.1.3: - resolution: {integrity: sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==} + /globby@13.1.4: + resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: dir-glob: 3.0.1 @@ -6670,7 +6670,7 @@ packages: defu: 6.1.2 esbuild: 0.17.16 fs-extra: 11.1.1 - globby: 13.1.3 + globby: 13.1.4 jiti: 1.18.2 mlly: 1.2.0 mri: 1.2.0 @@ -6762,7 +6762,7 @@ packages: escape-string-regexp: 5.0.0 etag: 1.8.1 fs-extra: 11.1.1 - globby: 13.1.3 + globby: 13.1.4 gzip-size: 7.0.0 h3: 1.6.4 hookable: 5.5.3 @@ -8696,7 +8696,7 @@ packages: consola: 2.15.3 defu: 6.1.2 esbuild: 0.17.16 - globby: 13.1.3 + globby: 13.1.4 hookable: 5.5.3 jiti: 1.18.2 magic-string: 0.30.0 From fe2800540c9a3c9d921707e17e74b4ea4747853f Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Apr 2023 23:33:21 +0100 Subject: [PATCH 029/912] fix(nuxt): set config on `ssrContext` in spa renderer (#20216) --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 8 ++++---- test/basic.test.ts | 1 + .../basic/plugins/custom-type-assertion.client.ts | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 86dd6acf1d..3427b90b08 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -124,13 +124,13 @@ const getSPARenderer = lazyCachedFunction(async () => { ssrContext!.payload = { _errors: {}, serverRendered: false, - config: { - public: config.public, - app: config.app - }, data: {}, state: {} } + ssrContext.config = { + public: config.public, + app: config.app + } ssrContext!.renderMeta = ssrContext!.renderMeta ?? getStaticRenderedHead return Promise.resolve(result) } diff --git a/test/basic.test.ts b/test/basic.test.ts index 6394819149..18d3577205 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -46,6 +46,7 @@ describe('route rules', () => { const { script, attrs } = parseData(await $fetch('/route-rules/spa')) expect(script.serverRendered).toEqual(false) expect(attrs['data-ssr']).toEqual('false') + await expectNoClientErrors('/route-rules/spa') }) it('test noScript routeRules', async () => { diff --git a/test/fixtures/basic/plugins/custom-type-assertion.client.ts b/test/fixtures/basic/plugins/custom-type-assertion.client.ts index a7294f6159..b5f985d505 100644 --- a/test/fixtures/basic/plugins/custom-type-assertion.client.ts +++ b/test/fixtures/basic/plugins/custom-type-assertion.client.ts @@ -1,5 +1,5 @@ export default defineNuxtPlugin((nuxtApp) => { - if (nuxtApp.payload.blinkable !== '') { + if (nuxtApp.payload.serverRendered && nuxtApp.payload.blinkable !== '') { throw createError({ message: 'Custom type in Nuxt payload was not revived correctly' }) From 67ca0815ac6e36a2580ecefbd4efd029d3d1a270 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 11 Apr 2023 23:57:12 +0100 Subject: [PATCH 030/912] test: add js payload test suite (#20217) --- .github/workflows/ci.yml | 2 ++ package.json | 1 + test/basic.test.ts | 8 +++++--- test/fixtures/basic/nuxt.config.ts | 2 +- .../basic/plugins/custom-type-assertion.client.ts | 2 +- test/utils.ts | 11 +++++++++++ 6 files changed, 21 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9773ce8f5d..5ae9165693 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -121,6 +121,7 @@ jobs: os: [ubuntu-latest, windows-latest] env: ['dev', 'built'] builder: ['vite', 'webpack'] + payload: ['json', 'js'] node: [16] exclude: - env: 'dev' @@ -180,6 +181,7 @@ jobs: env: TEST_ENV: ${{ matrix.env }} TEST_BUILDER: ${{ matrix.builder }} + TEST_PAYLOAD: ${{ matrix.payload }} build-release: if: | diff --git a/package.json b/package.json index 5b9deaaa37..2d71daaa12 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "play:build": "nuxi build playground", "play:preview": "nuxi preview playground", "test:fixtures": "nuxi prepare test/fixtures/basic && nuxi prepare test/fixtures/runtime-compiler && vitest run --dir test", + "text:fixtures:payload": "TEST_PAYLOAD=js pnpm test:fixtures", "test:fixtures:dev": "TEST_ENV=dev pnpm test:fixtures", "test:fixtures:webpack": "TEST_BUILDER=webpack pnpm test:fixtures", "test:types": "nuxi prepare test/fixtures/basic && cd test/fixtures/basic && npx vue-tsc --noEmit", diff --git a/test/basic.test.ts b/test/basic.test.ts index 18d3577205..4fe77b8731 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -7,7 +7,7 @@ import { $fetch, createPage, fetch, isDev, setup, startServer, url } from '@nuxt import { $fetchComponent } from '@nuxt/test-utils/experimental' import type { NuxtIslandResponse } from '../packages/nuxt/src/core/runtime/nitro/renderer' -import { expectNoClientErrors, expectWithPolling, parseData, parsePayload, renderPage, withLogs } from './utils' +import { expectNoClientErrors, expectWithPolling, isRenderingJson, parseData, parsePayload, renderPage, withLogs } from './utils' const isWebpack = process.env.TEST_BUILDER === 'webpack' @@ -45,7 +45,9 @@ describe('route rules', () => { it('should enable spa mode', async () => { const { script, attrs } = parseData(await $fetch('/route-rules/spa')) expect(script.serverRendered).toEqual(false) - expect(attrs['data-ssr']).toEqual('false') + if (isRenderingJson) { + expect(attrs['data-ssr']).toEqual('false') + } await expectNoClientErrors('/route-rules/spa') }) @@ -1229,7 +1231,7 @@ describe.runIf(isDev() && !isWebpack)('vite plugins', () => { }) }) -describe.skipIf(isDev() || isWindows)('payload rendering', () => { +describe.skipIf(isDev() || isWindows || !isRenderingJson)('payload rendering', () => { it('renders a payload', async () => { const payload = await $fetch('/random/a/_payload.json', { responseType: 'text' }) const data = parsePayload(payload) diff --git a/test/fixtures/basic/nuxt.config.ts b/test/fixtures/basic/nuxt.config.ts index cda5773b94..532255b0e4 100644 --- a/test/fixtures/basic/nuxt.config.ts +++ b/test/fixtures/basic/nuxt.config.ts @@ -186,7 +186,7 @@ export default defineNuxtConfig({ }, experimental: { polyfillVueUseHead: true, - renderJsonPayloads: true, + renderJsonPayloads: process.env.TEST_PAYLOAD !== 'js', respectNoSSRHeader: true, clientFallback: true, restoreState: true, diff --git a/test/fixtures/basic/plugins/custom-type-assertion.client.ts b/test/fixtures/basic/plugins/custom-type-assertion.client.ts index b5f985d505..1aeb11c650 100644 --- a/test/fixtures/basic/plugins/custom-type-assertion.client.ts +++ b/test/fixtures/basic/plugins/custom-type-assertion.client.ts @@ -1,5 +1,5 @@ export default defineNuxtPlugin((nuxtApp) => { - if (nuxtApp.payload.serverRendered && nuxtApp.payload.blinkable !== '') { + if (nuxtApp.payload.serverRendered && nuxtApp.payload.blinkable !== '' && document.querySelector('#__NUXT_DATA__')) { throw createError({ message: 'Custom type in Nuxt payload was not revived correctly' }) diff --git a/test/utils.ts b/test/utils.ts index 3d12ad112d..cddfe671f4 100644 --- a/test/utils.ts +++ b/test/utils.ts @@ -1,3 +1,4 @@ +import { Script, createContext } from 'node:vm' import { expect } from 'vitest' import type { Page } from 'playwright' import { parse } from 'devalue' @@ -5,6 +6,8 @@ import { reactive, ref, shallowReactive, shallowRef } from 'vue' import { createError } from 'h3' import { createPage, getBrowser, url, useTestContext } from '@nuxt/test-utils' +export const isRenderingJson = process.env.TEST_PAYLOAD !== 'js' + export async function renderPage (path = '/') { const ctx = useTestContext() if (!ctx.options.browser) { @@ -108,6 +111,14 @@ export function parsePayload (payload: string) { return parse(payload || '', revivers) } export function parseData (html: string) { + if (!isRenderingJson) { + const { script } = html.match(/ diff --git a/test/fixtures/basic/server/plugins/headers.ts b/test/fixtures/basic/server/plugins/headers.ts new file mode 100644 index 0000000000..9e0bf75308 --- /dev/null +++ b/test/fixtures/basic/server/plugins/headers.ts @@ -0,0 +1,13 @@ + +export default defineNitroPlugin((nitroApp) => { + if (!process.dev) { return } + + const onError = nitroApp.h3App.options.onError! + nitroApp.h3App.options.onError = (error, event) => { + // TODO: somehow add error logging assertion to @nuxt/test-utils + if (error.message?.includes('Cannot set headers after they are sent to the client')) { + process.exit(1) + } + return onError(error, event) + } +}) diff --git a/test/fixtures/basic/types.ts b/test/fixtures/basic/types.ts index 7f4de55eeb..e6f5ceb367 100644 --- a/test/fixtures/basic/types.ts +++ b/test/fixtures/basic/types.ts @@ -97,7 +97,7 @@ describe('middleware', () => { addRouteMiddleware('example', (to, from) => { expectTypeOf(to).toEqualTypeOf() expectTypeOf(from).toEqualTypeOf() - expectTypeOf(navigateTo).toEqualTypeOf<(to: RouteLocationRaw | null | undefined, options?: NavigateToOptions) => RouteLocationRaw | Promise>() + expectTypeOf(navigateTo).toEqualTypeOf<(to: RouteLocationRaw | null | undefined, options?: NavigateToOptions) => RouteLocationRaw | Promise>() navigateTo('/') abortNavigation() abortNavigation('error string') @@ -253,7 +253,7 @@ describe('composables', () => { .toEqualTypeOf(useLazyAsyncData(() => Promise.resolve({ foo: Math.random() }), { transform: data => data.foo })) // Default values: #14437 - expectTypeOf(useAsyncData('test', () => Promise.resolve({ foo: { bar: 500 } }), { default: () => ({ bar: 500 }), transform: v => v.foo }).data).toEqualTypeOf>() + expectTypeOf(useAsyncData('test', () => Promise.resolve({ foo: { bar: 500 } }), { default: () => ({ bar: 500 }), transform: v => v.foo }).data).toEqualTypeOf>() expectTypeOf(useLazyAsyncData('test', () => Promise.resolve({ foo: { bar: 500 } }), { default: () => ({ bar: 500 }), transform: v => v.foo })) .toEqualTypeOf(useLazyAsyncData(() => Promise.resolve({ foo: { bar: 500 } }), { default: () => ({ bar: 500 }), transform: v => v.foo })) expectTypeOf(useFetch('/api/hey', { default: () => 'bar', transform: v => v.foo }).data).toEqualTypeOf>() From 295473f9242399b64b20c8d04a97f48b3f50bd5a Mon Sep 17 00:00:00 2001 From: David Kurek Date: Thu, 13 Apr 2023 12:13:42 +0200 Subject: [PATCH 036/912] docs: add a brief description of `transform`/`pick` (#20186) --- docs/1.getting-started/6.data-fetching.md | 51 +++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/docs/1.getting-started/6.data-fetching.md b/docs/1.getting-started/6.data-fetching.md index f001320633..7800cb16d3 100644 --- a/docs/1.getting-started/6.data-fetching.md +++ b/docs/1.getting-started/6.data-fetching.md @@ -127,6 +127,57 @@ watch(count, (newCount) => { ``` +## Transforming Data + +If for some reason you are not satisfied with how the requested data is structured, you may want to use the `transform` option from `useFetch` or `useAsyncData` to alter the data by using a function to perform the necessary transformation after your request has been resolved. + +We very much recommend that you remove any data or properties that you do not need, in order to reduce your page's payload size - see the [Minimize Payload](#minimize-payload) section. + +### Example + +```vue + + + +``` + +If you are dealing with a complex data structure and you are only interested in a few properties, simply make use of the `pick` option to only pick specific properties you are interested in. + +```vue + + + +``` + ## Refreshing Data Sometimes throughout the course of your user's page visit, you may need to refresh the data loaded from the API. This can happen if the user chooses to paginate, filter results, search, etc. From 9110d41628bb7c7e9da2b3a9cf318bcddbc9e1fb Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 13 Apr 2023 11:14:44 +0100 Subject: [PATCH 037/912] fix(nuxt): do not redirect when `vue-router` normalises url (#20247) --- packages/nuxt/src/pages/runtime/plugins/router.ts | 9 +++------ test/basic.test.ts | 5 +++++ test/fixtures/basic/middleware/redirect.global.ts | 4 ++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/nuxt/src/pages/runtime/plugins/router.ts b/packages/nuxt/src/pages/runtime/plugins/router.ts index 98b67f37ef..6a2d550f8d 100644 --- a/packages/nuxt/src/pages/runtime/plugins/router.ts +++ b/packages/nuxt/src/pages/runtime/plugins/router.ts @@ -8,7 +8,7 @@ import { createWebHistory } from 'vue-router' import { createError } from 'h3' -import { isEqual, withoutBase } from 'ufo' +import { withoutBase } from 'ufo' import type { PageMeta, Plugin, RouteMiddleware } from '../../../app/index' import { callWithNuxt, defineNuxtPlugin, useRuntimeConfig } from '#app/nuxt' @@ -181,11 +181,8 @@ export default defineNuxtPlugin({ fatal: false, statusMessage: `Page not found: ${to.fullPath}` })]) - } else if (process.server) { - const currentURL = to.fullPath || '/' - if (!isEqual(currentURL, initialURL, { trailingSlash: true })) { - await callWithNuxt(nuxtApp, navigateTo, [currentURL]) - } + } else if (process.server && to.redirectedFrom) { + await callWithNuxt(nuxtApp, navigateTo, [to.fullPath || '/']) } }) diff --git a/test/basic.test.ts b/test/basic.test.ts index 92cfeaf34f..b2f508fbd8 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -130,6 +130,11 @@ describe('pages', () => { await page.close() }) + it('returns 500 when there is an infinite redirect', async () => { + const { status } = await fetch('/redirect-infinite', { redirect: 'manual' }) + expect(status).toEqual(500) + }) + it('render 404', async () => { const html = await $fetch('/not-found') diff --git a/test/fixtures/basic/middleware/redirect.global.ts b/test/fixtures/basic/middleware/redirect.global.ts index 86ef87c412..abf48b1ebc 100644 --- a/test/fixtures/basic/middleware/redirect.global.ts +++ b/test/fixtures/basic/middleware/redirect.global.ts @@ -9,6 +9,10 @@ export default defineNuxtRouteMiddleware(async (to) => { await new Promise(resolve => setTimeout(resolve, 100)) return navigateTo(to.path.slice('/redirect/'.length - 1)) } + if (to.path === '/redirect-infinite') { + // the path will be the same in this new route and vue-router should send a 500 response + return navigateTo('/redirect-infinite?test=true') + } if (to.path === '/navigate-to-external') { return navigateTo('/', { external: true }) } From 940fb0b7ad73960257f3e5f868186c302308e43b Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 13 Apr 2023 11:31:11 +0100 Subject: [PATCH 038/912] v3.4.1 (#20246) --- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 3a106a4f13..b3cc83cc9a 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.4.0", + "version": "3.4.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 33570588c6..14dee1a802 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -1,6 +1,6 @@ { "name": "nuxi", - "version": "3.4.0", + "version": "3.4.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index f96ca7770d..f55a147e5a 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.4.0", + "version": "3.4.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/schema/package.json b/packages/schema/package.json index 8f5683edca..bff7c597c0 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.4.0", + "version": "3.4.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 55380a69fa..09091dd1b3 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.4.0", + "version": "3.4.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/vite/package.json b/packages/vite/package.json index fabc46103c..a98d7a112c 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.4.0", + "version": "3.4.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 8fb2e143cb..c7efcdbf5f 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.4.0", + "version": "3.4.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", From b0c35291b6e53e78bb3a5b18d5aecca767b7f7f2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 13 Apr 2023 19:28:30 +0100 Subject: [PATCH 039/912] chore(deps): update all non-major dependencies (main) (#20253) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 ++-- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/test-utils/package.json | 2 +- pnpm-lock.yaml | 30 +++++++++++++++--------------- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index fe0dd6670b..705d35ae50 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "@types/semver": "^7.3.13", "@unocss/reset": "^0.51.4", "case-police": "^0.5.14", - "changelogen": "^0.5.2", + "changelogen": "^0.5.3", "crawler": "^1.4.0", "eslint": "^8.38.0", "eslint-plugin-jsdoc": "^41.1.1", @@ -74,7 +74,7 @@ "std-env": "^3.3.2", "typescript": "^5.0.4", "ufo": "^1.1.1", - "unbuild": "^1.2.0", + "unbuild": "^1.2.1", "vite": "^4.2.1", "vitest": "^0.30.1", "vue-tsc": "^1.2.0" diff --git a/packages/kit/package.json b/packages/kit/package.json index b3cc83cc9a..a6fd7d11ab 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -22,7 +22,7 @@ "dependencies": { "@nuxt/schema": "workspace:../schema", "c12": "^1.2.0", - "consola": "^3.0.1", + "consola": "^3.0.2", "defu": "^6.1.2", "globby": "^13.1.4", "hash-sum": "^2.0.0", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 14dee1a802..493d8efa2e 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -29,7 +29,7 @@ "clear": "^0.1.0", "clipboardy": "^3.0.0", "colorette": "^2.0.19", - "consola": "^3.0.1", + "consola": "^3.0.2", "deep-object-diff": "^1.1.9", "destr": "^1.2.2", "execa": "^7.1.1", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 09091dd1b3..72b947e8d4 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -24,7 +24,7 @@ "dependencies": { "@nuxt/kit": "workspace:../kit", "@nuxt/schema": "workspace:../schema", - "consola": "^3.0.1", + "consola": "^3.0.2", "defu": "^6.1.2", "execa": "^7.1.1", "get-port-please": "^3.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9360d1379..3d77ecedbc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: specifier: ^0.5.14 version: 0.5.14 changelogen: - specifier: ^0.5.2 - version: 0.5.2 + specifier: ^0.5.3 + version: 0.5.3 crawler: specifier: ^1.4.0 version: 1.4.0 @@ -367,8 +367,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 consola: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.0.2 + version: 3.0.2 defu: specifier: ^6.1.2 version: 6.1.2 @@ -465,8 +465,8 @@ importers: specifier: ^2.0.19 version: 2.0.19 consola: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.0.2 + version: 3.0.2 deep-object-diff: specifier: ^1.1.9 version: 1.1.9 @@ -755,8 +755,8 @@ importers: specifier: workspace:* version: link:../schema consola: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.0.2 + version: 3.0.2 defu: specifier: ^6.1.2 version: 6.1.2 @@ -1791,7 +1791,7 @@ packages: '@nuxt/kit': link:packages/kit chalk: 5.2.0 ci-info: 3.8.0 - consola: 3.0.1 + consola: 3.0.2 create-require: 1.1.1 defu: 6.1.2 destr: 1.2.2 @@ -3595,13 +3595,13 @@ packages: resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - /changelogen@0.5.2: - resolution: {integrity: sha512-VB/DHuB10kCtRCwKjVyVLBn2nGTCx2hDQeU1WLQHamj2naya09ZmhdzO7LFXxr9O64LBKjZlwpiU4sEzGEdQBQ==} + /changelogen@0.5.3: + resolution: {integrity: sha512-RjTrgJlTHhbGlMo/s73j7uSTspla3ykr0UA5zwRs/HIZvElY6qZHu3X70httgC2Du5poS2wFCS10WLfwZr7ZTQ==} hasBin: true dependencies: c12: 1.2.0 colorette: 2.0.19 - consola: 2.15.3 + consola: 3.0.2 convert-gitmoji: 0.1.3 execa: 7.1.1 mri: 1.2.0 @@ -3815,8 +3815,8 @@ packages: /consola@2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - /consola@3.0.1: - resolution: {integrity: sha512-08E7bC2N6gaFdzPU/qtBi4ulVvJitYnfrDdxEiwElC3jSNICbOvkcE+8N56EfIrBoxp37O9Qnn5ZZPElov83UQ==} + /consola@3.0.2: + resolution: {integrity: sha512-o/Wau2FmZKiQgyp3c3IULgN6J5yc0lwYMnoyiZdEpdGxKGBtt2ACbkulBZ6BUsHy1HlSJqoP4YOyPIJLgRJyKQ==} /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} @@ -6750,7 +6750,7 @@ packages: c12: 1.2.0 chalk: 5.2.0 chokidar: 3.5.3 - consola: 3.0.1 + consola: 3.0.2 cookie-es: 0.5.0 defu: 6.1.2 destr: 1.2.2 From 53db8125f1fed180698510ad132c4c82f8651f5a Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 13 Apr 2023 20:08:08 +0100 Subject: [PATCH 040/912] perf(nuxt): share lazy component definitions (#20259) --- packages/nuxt/src/components/templates.ts | 27 +++++++++-------------- test/bundle.test.ts | 2 +- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/packages/nuxt/src/components/templates.ts b/packages/nuxt/src/components/templates.ts index 19dd42eb24..7fd32f3cb7 100644 --- a/packages/nuxt/src/components/templates.ts +++ b/packages/nuxt/src/components/templates.ts @@ -28,26 +28,20 @@ const createImportMagicComments = (options: ImportMagicCommentsOptions) => { export const componentsPluginTemplate: NuxtPluginTemplate = { filename: 'components.plugin.mjs', getContents ({ options }) { - const globalComponents = options.getComponents().filter(c => c.global === true) - - return `import { defineAsyncComponent } from 'vue' -import { defineNuxtPlugin } from '#app/nuxt' - -const components = ${genObjectFromRawEntries(globalComponents.map((c) => { - const exp = c.export === 'default' ? 'c.default || c' : `c['${c.export}']` - const comment = createImportMagicComments(c) - - return [c.pascalName, `defineAsyncComponent(${genDynamicImport(c.filePath, { comment })}.then(c => ${exp}))`] -}))} + return `import { defineNuxtPlugin } from '#app/nuxt' +import { lazyGlobalComponents } from '#components' export default defineNuxtPlugin({ - name: 'nuxt:global-components', + name: 'nuxt:global-components',` + + (options.getComponents().filter(c => c.global).length + ? ` setup (nuxtApp) { - for (const name in components) { - nuxtApp.vueApp.component(name, components[name]) - nuxtApp.vueApp.component('Lazy' + name, components[name]) + for (const name in lazyGlobalComponents) { + nuxtApp.vueApp.component(name, lazyGlobalComponents[name]) + nuxtApp.vueApp.component('Lazy' + name, lazyGlobalComponents[name]) } - } + }` + : '') + ` }) ` } @@ -81,6 +75,7 @@ export const componentsTemplate: NuxtTemplate = { return [ ...imports, ...components, + `export const lazyGlobalComponents = ${genObjectFromRawEntries(options.getComponents().filter(c => c.global).map(c => [c.pascalName, `Lazy${c.pascalName}`]))}`, `export const componentNames = ${JSON.stringify(options.getComponents().filter(c => !c.island).map(c => c.pascalName))}` ].join('\n') } diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 938dbc37f9..8ff9925618 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -48,7 +48,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e it('default server bundle size', async () => { stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"92.6k"') + expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"92.4k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2650k"') From b602b66a8ea797cef76f71b2f1488fb8ffb81471 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 14 Apr 2023 13:25:33 +0100 Subject: [PATCH 041/912] fix(vite): set different cache dirs for client/server (#20276) --- packages/vite/src/client.ts | 3 +-- packages/vite/src/plugins/cache-dir.ts | 13 ------------- packages/vite/src/server.ts | 3 +-- 3 files changed, 2 insertions(+), 17 deletions(-) delete mode 100644 packages/vite/src/plugins/cache-dir.ts diff --git a/packages/vite/src/client.ts b/packages/vite/src/client.ts index b007f1ce3d..2f2af64eac 100644 --- a/packages/vite/src/client.ts +++ b/packages/vite/src/client.ts @@ -10,7 +10,6 @@ import { joinURL, withoutLeadingSlash } from 'ufo' import { defu } from 'defu' import { defineEventHandler } from 'h3' import type { ViteConfig } from '@nuxt/schema' -import { cacheDirPlugin } from './plugins/cache-dir' import { chunkErrorPlugin } from './plugins/chunk-error' import type { ViteBuildContext } from './vite' import { devStyleSSRPlugin } from './plugins/dev-ssr-css' @@ -51,6 +50,7 @@ export async function buildClient (ctx: ViteBuildContext) { }, dedupe: ['vue'] }, + cacheDir: resolve(ctx.nuxt.options.rootDir, 'node_modules/.cache/vite', 'client'), build: { sourcemap: ctx.nuxt.options.sourcemap.client ? ctx.config.build?.sourcemap ?? true : false, manifest: true, @@ -60,7 +60,6 @@ export async function buildClient (ctx: ViteBuildContext) { } }, plugins: [ - cacheDirPlugin(ctx.nuxt.options.rootDir, 'client'), devStyleSSRPlugin({ srcDir: ctx.nuxt.options.srcDir, buildAssetsURL: joinURL(ctx.nuxt.options.app.baseURL, ctx.nuxt.options.app.buildAssetsDir) diff --git a/packages/vite/src/plugins/cache-dir.ts b/packages/vite/src/plugins/cache-dir.ts deleted file mode 100644 index 8ee8f0df14..0000000000 --- a/packages/vite/src/plugins/cache-dir.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { resolve } from 'pathe' -import type { Plugin } from 'vite' - -export function cacheDirPlugin (rootDir: string, name: string) { - const optimizeCacheDir = resolve(rootDir, 'node_modules/.cache/vite', name) - return { - name: 'nuxt:cache-dir', - configResolved (resolvedConfig) { - // @ts-expect-error - resolvedConfig.optimizeCacheDir = optimizeCacheDir - } - } -} diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts index 75237f5295..6cfaa0e54d 100644 --- a/packages/vite/src/server.ts +++ b/packages/vite/src/server.ts @@ -7,7 +7,6 @@ import { joinURL, withTrailingSlash, withoutLeadingSlash } from 'ufo' import type { ViteConfig } from '@nuxt/schema' import type { ViteBuildContext } from './vite' import { createViteLogger } from './utils/logger' -import { cacheDirPlugin } from './plugins/cache-dir' import { initViteNodeServer } from './vite-node' import { ssrStylesPlugin } from './plugins/ssr-styles' import { pureAnnotationsPlugin } from './plugins/pure-annotations' @@ -82,6 +81,7 @@ export async function buildServer (ctx: ViteBuildContext) { /(nuxt|nuxt3)\/(dist|src|app)/ ] }, + cacheDir: resolve(ctx.nuxt.options.rootDir, 'node_modules/.cache/vite', 'server'), build: { sourcemap: ctx.nuxt.options.sourcemap.server ? ctx.config.build?.sourcemap ?? true : false, outDir: resolve(ctx.nuxt.options.buildDir, 'dist/server'), @@ -110,7 +110,6 @@ export async function buildServer (ctx: ViteBuildContext) { hmr: false }, plugins: [ - cacheDirPlugin(ctx.nuxt.options.rootDir, 'server'), pureAnnotationsPlugin.vite({ sourcemap: ctx.nuxt.options.sourcemap.server, functions: ['defineComponent', 'defineAsyncComponent', 'defineNuxtLink', 'createClientOnly', 'defineNuxtPlugin', 'defineNuxtRouteMiddleware', 'defineNuxtComponent', 'useRuntimeConfig'] From f366ab4eb89c6f270ee1a0ae6e3f64d203a146c4 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 14 Apr 2023 13:53:21 +0100 Subject: [PATCH 042/912] chore: remove `@ts-ignore` and fix some issues (#20273) --- .eslintrc | 7 ++++ examples/experimental/wasm/server/api/sum.ts | 2 +- packages/kit/index.d.ts | 6 +++ packages/kit/src/internal/cjs.ts | 8 ++-- packages/kit/src/module/define.ts | 10 ++--- packages/kit/src/pages.ts | 2 +- packages/nuxi/src/cli-run.ts | 4 +- packages/nuxi/src/cli.ts | 2 - packages/nuxi/src/commands/info.ts | 4 +- packages/nuxi/src/utils/cjs.ts | 4 +- packages/nuxi/src/utils/prepare.ts | 2 +- packages/nuxt/index.d.ts | 4 +- .../src/app/components/island-renderer.ts | 2 +- packages/nuxt/src/app/components/layout.ts | 6 +-- .../nuxt/src/app/composables/asyncData.ts | 4 +- packages/nuxt/src/app/composables/fetch.ts | 2 +- packages/nuxt/src/app/config.ts | 2 +- packages/nuxt/src/app/entry.ts | 18 +++++---- packages/nuxt/src/app/nuxt.ts | 1 - packages/nuxt/src/app/plugins/router.ts | 2 +- packages/nuxt/src/app/types/augments.d.ts | 3 ++ packages/nuxt/src/core/runtime/nitro/error.ts | 4 +- packages/nuxt/src/core/runtime/nitro/paths.ts | 1 - .../nuxt/src/core/runtime/nitro/renderer.ts | 16 ++++---- packages/nuxt/src/core/schema.ts | 7 ++-- packages/nuxt/src/core/templates.ts | 6 +-- packages/nuxt/src/pages/runtime/page.ts | 5 +-- .../pages/runtime/plugins/prefetch.client.ts | 4 +- .../nuxt/src/pages/runtime/plugins/router.ts | 6 +-- .../nuxt/src/pages/runtime/router.options.ts | 2 +- packages/nuxt/test/scan-components.test.ts | 2 +- packages/schema/src/config/webpack.ts | 6 +-- packages/test-utils/src/nuxt.ts | 2 +- .../test-utils/src/runtime/global-setup.ts | 2 +- packages/test-utils/src/server.ts | 2 +- packages/test-utils/src/setup/jest.ts | 2 +- packages/vite/src/plugins/analyze.ts | 8 ++-- packages/webpack/src/presets/base.ts | 38 +++++++++---------- packages/webpack/src/presets/vue.ts | 4 +- packages/webpack/src/utils/config.ts | 4 +- packages/webpack/src/utils/mfs.ts | 2 +- packages/webpack/src/utils/postcss.ts | 4 -- packages/webpack/src/webpack.ts | 2 +- scripts/crawl.mjs | 1 - .../basic/components/BreaksServer.client.ts | 2 +- test/fixtures/basic/types.ts | 6 +-- 46 files changed, 116 insertions(+), 117 deletions(-) create mode 100644 packages/kit/index.d.ts diff --git a/.eslintrc b/.eslintrc index c78df72297..c4a7c5d9b3 100644 --- a/.eslintrc +++ b/.eslintrc @@ -73,6 +73,13 @@ "disallowTypeAnnotations": false } ], + "@typescript-eslint/ban-ts-comment": [ + "error", + { + "ts-expect-error": "allow-with-description", + "ts-ignore": true + } + ], "@typescript-eslint/no-unused-vars": [ "error", { diff --git a/examples/experimental/wasm/server/api/sum.ts b/examples/experimental/wasm/server/api/sum.ts index fbfd774cd8..55bd69c18f 100644 --- a/examples/experimental/wasm/server/api/sum.ts +++ b/examples/experimental/wasm/server/api/sum.ts @@ -2,7 +2,7 @@ import { defineLazyEventHandler } from 'h3' export default defineLazyEventHandler(async () => { const { exports: { sum } } = await loadWasmInstance( - // @ts-ignore + // @ts-expect-error TODO: https://github.com/nuxt/nuxt/issues/14131 () => import('~/server/wasm/sum.wasm') ) diff --git a/packages/kit/index.d.ts b/packages/kit/index.d.ts new file mode 100644 index 0000000000..9b281d5616 --- /dev/null +++ b/packages/kit/index.d.ts @@ -0,0 +1,6 @@ +declare global { + var __NUXT_PREPATHS__: string[] | string | undefined + var __NUXT_PATHS__: string[] | string | undefined +} + +export {} diff --git a/packages/kit/src/internal/cjs.ts b/packages/kit/src/internal/cjs.ts index 23a28a6682..8ead5dc22e 100644 --- a/packages/kit/src/internal/cjs.ts +++ b/packages/kit/src/internal/cjs.ts @@ -85,14 +85,12 @@ export function getRequireCacheItem (id: string) { /** @deprecated Do not use CJS utils */ export function resolveModule (id: string, opts: ResolveModuleOptions = {}) { return normalize(_require.resolve(id, { - paths: ([] as string[]).concat( - // @ts-ignore + paths: ([] as Array).concat( global.__NUXT_PREPATHS__, opts.paths || [], process.cwd(), - // @ts-ignore global.__NUXT_PATHS__ - ).filter(Boolean) + ).filter(Boolean) as string[] })) } @@ -137,7 +135,7 @@ export function importModule (id: string, opts: RequireModuleOptions = {}) { export function tryImportModule (id: string, opts: RequireModuleOptions = {}) { try { return importModule(id, opts).catch(() => undefined) - } catch { } + } catch {} } /** @deprecated Do not use CJS utils */ diff --git a/packages/kit/src/module/define.ts b/packages/kit/src/module/define.ts index 2fd2828d0a..b158a7a229 100644 --- a/packages/kit/src/module/define.ts +++ b/packages/kit/src/module/define.ts @@ -103,10 +103,8 @@ export function defineNuxtModule (definition: Mo const NUXT2_SHIMS_KEY = '__nuxt2_shims_key__' function nuxt2Shims (nuxt: Nuxt) { // Avoid duplicate install and only apply to Nuxt2 - // @ts-ignore - if (!isNuxt2(nuxt) || nuxt[NUXT2_SHIMS_KEY]) { return } - // @ts-ignore - nuxt[NUXT2_SHIMS_KEY] = true + if (!isNuxt2(nuxt) || nuxt[NUXT2_SHIMS_KEY as keyof Nuxt]) { return } + nuxt[NUXT2_SHIMS_KEY as keyof Nuxt] = true // Allow using nuxt.hooks // @ts-expect-error Nuxt 2 extends hookable @@ -120,14 +118,14 @@ function nuxt2Shims (nuxt: Nuxt) { // Support virtual templates with getContents() by writing them to .nuxt directory let virtualTemplates: ResolvedNuxtTemplate[] - // @ts-ignore Nuxt 2 hook + // @ts-expect-error Nuxt 2 hook nuxt.hook('builder:prepared', (_builder, buildOptions) => { virtualTemplates = buildOptions.templates.filter((t: any) => t.getContents) for (const template of virtualTemplates) { buildOptions.templates.splice(buildOptions.templates.indexOf(template), 1) } }) - // @ts-ignore Nuxt 2 hook + // @ts-expect-error Nuxt 2 hook nuxt.hook('build:templates', async (templates) => { const context = { nuxt, diff --git a/packages/kit/src/pages.ts b/packages/kit/src/pages.ts index 685c3b83b5..2e9e346ee4 100644 --- a/packages/kit/src/pages.ts +++ b/packages/kit/src/pages.ts @@ -7,7 +7,7 @@ import { isNuxt2 } from './compatibility' export function extendPages (cb: NuxtHooks['pages:extend']) { const nuxt = useNuxt() if (isNuxt2(nuxt)) { - // @ts-expect-error + // @ts-expect-error TODO: Nuxt 2 hook nuxt.hook('build:extendRoutes', cb) } else { nuxt.hook('pages:extend', cb) diff --git a/packages/nuxi/src/cli-run.ts b/packages/nuxi/src/cli-run.ts index 07aef4afac..bca8a2e7d2 100644 --- a/packages/nuxi/src/cli-run.ts +++ b/packages/nuxi/src/cli-run.ts @@ -1,5 +1,5 @@ -// @ts-ignore +// @ts-expect-error internal property for tracking start time process._startTime = Date.now() -// @ts-ignore +// @ts-expect-error `default` property is not declared import('./cli').then(r => (r.default || r).main()) diff --git a/packages/nuxi/src/cli.ts b/packages/nuxi/src/cli.ts index 5084564dbc..f90c98f72e 100755 --- a/packages/nuxi/src/cli.ts +++ b/packages/nuxi/src/cli.ts @@ -15,7 +15,6 @@ async function _main () { 'no-clear' ] }) - // @ts-ignore const command = args._.shift() || 'usage' showBanner(command === 'dev' && args.clear !== false && !args.help) @@ -30,7 +29,6 @@ async function _main () { // Check Node.js version in background setTimeout(() => { checkEngines().catch(() => {}) }, 1000) - // @ts-ignore default.default is hotfix for #621 const cmd = await commands[command as Command]() as NuxtCommand if (args.h || args.help) { showHelp(cmd.meta) diff --git a/packages/nuxi/src/commands/info.ts b/packages/nuxi/src/commands/info.ts index 4e3dca2cab..72550afabe 100644 --- a/packages/nuxi/src/commands/info.ts +++ b/packages/nuxi/src/commands/info.ts @@ -7,6 +7,7 @@ import destr from 'destr' import { splitByCase } from 'scule' import clipboardy from 'clipboardy' import type { NuxtModule } from '@nuxt/schema' +import type { packageManagerLocks } from '../utils/packageManagers' import { getPackageManager, getPackageManagerVersion } from '../utils/packageManagers' import { findup } from '../utils/fs' import { defineNuxtCommand } from './index' @@ -51,11 +52,10 @@ export default defineNuxtCommand({ ? 'vite' /* nuxt-vite */ : 'webpack') - let packageManager = getPackageManager(rootDir) + let packageManager: keyof typeof packageManagerLocks | 'unknown' | null = getPackageManager(rootDir) if (packageManager) { packageManager += '@' + getPackageManagerVersion(packageManager) } else { - // @ts-expect-error packageManager = 'unknown' } diff --git a/packages/nuxi/src/utils/cjs.ts b/packages/nuxi/src/utils/cjs.ts index b0233b61bc..9f8a049846 100644 --- a/packages/nuxi/src/utils/cjs.ts +++ b/packages/nuxi/src/utils/cjs.ts @@ -4,11 +4,9 @@ import { dirname, normalize } from 'pathe' export function getModulePaths (paths?: string | string[]): string[] { return ([] as Array) .concat( - // @ts-expect-error global object global.__NUXT_PREPATHS__, paths, process.cwd(), - // @ts-expect-error global object global.__NUXT_PATHS__ ) .filter(Boolean) as string[] @@ -30,7 +28,7 @@ export function tryRequireModule (id: string, paths?: string | string[]) { export function getNearestPackage (id: string, paths?: string | string[]) { while (dirname(id) !== id) { - try { return requireModule(id + '/package.json', paths) } catch { } + try { return requireModule(id + '/package.json', paths) } catch {} id = dirname(id) } return null diff --git a/packages/nuxi/src/utils/prepare.ts b/packages/nuxi/src/utils/prepare.ts index 9a72c56d15..30ed3eed3f 100644 --- a/packages/nuxi/src/utils/prepare.ts +++ b/packages/nuxi/src/utils/prepare.ts @@ -104,7 +104,7 @@ export const writeTypes = async (nuxt: Nuxt) => { // This is needed for Nuxt 2 which clears the build directory again before building // https://github.com/nuxt/nuxt/blob/2.x/packages/builder/src/builder.js#L144 - // @ts-expect-error + // @ts-expect-error TODO: Nuxt 2 hook nuxt.hook('builder:prepared', writeFile) await writeFile() diff --git a/packages/nuxt/index.d.ts b/packages/nuxt/index.d.ts index 6b83f9e99c..c059ba1a45 100644 --- a/packages/nuxt/index.d.ts +++ b/packages/nuxt/index.d.ts @@ -1,5 +1,7 @@ declare global { - const __NUXT_VERSION__: string + var __NUXT_VERSION__: string + var __NUXT_PREPATHS__: string[] | string | undefined + var __NUXT_PATHS__: string[] | string | undefined } export {} diff --git a/packages/nuxt/src/app/components/island-renderer.ts b/packages/nuxt/src/app/components/island-renderer.ts index 8e0b929c66..bb4a8e9e65 100644 --- a/packages/nuxt/src/app/components/island-renderer.ts +++ b/packages/nuxt/src/app/components/island-renderer.ts @@ -1,7 +1,7 @@ import type { defineAsyncComponent } from 'vue' import { createVNode, defineComponent } from 'vue' -// @ts-ignore +// @ts-expect-error virtual file import * as islandComponents from '#build/components.islands.mjs' import { createError } from '#app/composables/error' diff --git a/packages/nuxt/src/app/components/layout.ts b/packages/nuxt/src/app/components/layout.ts index 13fbeb923b..5e468875e4 100644 --- a/packages/nuxt/src/app/components/layout.ts +++ b/packages/nuxt/src/app/components/layout.ts @@ -3,11 +3,11 @@ import { Transition, computed, defineComponent, h, inject, nextTick, onMounted, import type { RouteLocationNormalizedLoaded } from 'vue-router' import { _wrapIf } from './utils' import { useRoute } from '#app/composables/router' -// @ts-ignore +// @ts-expect-error virtual file import { useRoute as useVueRouterRoute } from '#build/pages' -// @ts-ignore +// @ts-expect-error virtual file import layouts from '#build/layouts' -// @ts-ignore +// @ts-expect-error virtual file import { appLayoutTransition as defaultLayoutTransition } from '#build/nuxt.config.mjs' // TODO: revert back to defineAsyncComponent when https://github.com/vuejs/core/issues/6638 is resolved diff --git a/packages/nuxt/src/app/composables/asyncData.ts b/packages/nuxt/src/app/composables/asyncData.ts index 38f8b5e387..31f8fd32da 100644 --- a/packages/nuxt/src/app/composables/asyncData.ts +++ b/packages/nuxt/src/app/composables/asyncData.ts @@ -29,7 +29,7 @@ export type MultiWatchSources = (WatchSource | object)[] export interface AsyncDataOptions< ResT, DataT = ResT, - PickKeys extends KeysOf =KeysOf, + PickKeys extends KeysOf = KeysOf, > { server?: boolean lazy?: boolean @@ -270,7 +270,7 @@ export function useLazyAsyncData< const autoKey = typeof args[args.length - 1] === 'string' ? args.pop() : undefined if (typeof args[0] !== 'string') { args.unshift(autoKey) } const [key, handler, options] = args as [string, (ctx?: NuxtApp) => Promise, AsyncDataOptions] - // @ts-ignore + // @ts-expect-error we pass an extra argument to prevent a key being injected return useAsyncData(key, handler, { ...options, lazy: true }, null) } diff --git a/packages/nuxt/src/app/composables/fetch.ts b/packages/nuxt/src/app/composables/fetch.ts index 5e7277966f..fe487dcecd 100644 --- a/packages/nuxt/src/app/composables/fetch.ts +++ b/packages/nuxt/src/app/composables/fetch.ts @@ -151,6 +151,6 @@ export function useLazyFetch< ...opts, lazy: true }, - // @ts-ignore + // @ts-expect-error we pass an extra argument with the resolved auto-key to prevent another from being injected autoKey) } diff --git a/packages/nuxt/src/app/config.ts b/packages/nuxt/src/app/config.ts index 31d598cad1..68633fcf5a 100644 --- a/packages/nuxt/src/app/config.ts +++ b/packages/nuxt/src/app/config.ts @@ -1,7 +1,7 @@ import { reactive } from 'vue' import type { AppConfig } from 'nuxt/schema' import { useNuxtApp } from './nuxt' -// @ts-ignore +// @ts-expect-error virtual file import __appConfig from '#build/app.config.mjs' type DeepPartial = T extends Function ? T : T extends Record ? { [P in keyof T]?: DeepPartial } : T diff --git a/packages/nuxt/src/app/entry.ts b/packages/nuxt/src/app/entry.ts index 6a08a00187..19a6d3b6a2 100644 --- a/packages/nuxt/src/app/entry.ts +++ b/packages/nuxt/src/app/entry.ts @@ -1,23 +1,27 @@ // We set __webpack_public_path via this import with webpack builder import { createApp, createSSRApp, nextTick } from 'vue' import { $fetch } from 'ofetch' -// @ts-ignore +import type { $Fetch, NitroFetchRequest } from 'nitropack' + +// This file must be imported first for webpack as we set __webpack_public_path__ there +// @ts-expect-error virtual file import { baseURL } from '#build/paths.mjs' + import type { CreateOptions } from '#app' import { applyPlugins, createNuxtApp, normalizePlugins } from '#app/nuxt' + import '#build/css' -// @ts-ignore +// @ts-expect-error virtual file import _plugins from '#build/plugins' -// @ts-ignore +// @ts-expect-error virtual file import RootComponent from '#build/root-component.mjs' -// @ts-ignore +// @ts-expect-error virtual file import { appRootId } from '#build/nuxt.config.mjs' if (!globalThis.$fetch) { - // @ts-ignore globalThis.$fetch = $fetch.create({ baseURL: baseURL() - }) + }) as $Fetch } let entry: Function @@ -45,9 +49,7 @@ if (process.server) { if (process.client) { // TODO: temporary webpack 5 HMR fix // https://github.com/webpack-contrib/webpack-hot-middleware/issues/390 - // @ts-ignore if (process.dev && import.meta.webpackHot) { - // @ts-ignore import.meta.webpackHot.accept() } diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index eb4d218f0d..2aa48cc289 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -239,7 +239,6 @@ export function createNuxtApp (options: CreateOptions) { // Inject $nuxt defineGetter(nuxtApp.vueApp, '$nuxt', nuxtApp) - // @ts-expect-error defineGetter(nuxtApp.vueApp.config.globalProperties, '$nuxt', nuxtApp) if (process.server) { diff --git a/packages/nuxt/src/app/plugins/router.ts b/packages/nuxt/src/app/plugins/router.ts index 15600ecd16..1560428b35 100644 --- a/packages/nuxt/src/app/plugins/router.ts +++ b/packages/nuxt/src/app/plugins/router.ts @@ -7,7 +7,7 @@ import { navigateTo } from '../composables/router' import { useState } from '../composables/state' import { useRequestEvent } from '../composables/ssr' -// @ts-ignore +// @ts-expect-error virtual file import { globalMiddleware } from '#build/middleware' interface Route { diff --git a/packages/nuxt/src/app/types/augments.d.ts b/packages/nuxt/src/app/types/augments.d.ts index 675af7443d..48439981a1 100644 --- a/packages/nuxt/src/app/types/augments.d.ts +++ b/packages/nuxt/src/app/types/augments.d.ts @@ -22,6 +22,9 @@ declare module 'vue' { interface App { $nuxt: NuxtApp } + interface ComponentCustomProperties { + $nuxt: NuxtApp + } interface ComponentInternalInstance { _nuxtOnBeforeMountCbs: Function[] } diff --git a/packages/nuxt/src/core/runtime/nitro/error.ts b/packages/nuxt/src/core/runtime/nitro/error.ts index f6c0989505..80ce8c8b1d 100644 --- a/packages/nuxt/src/core/runtime/nitro/error.ts +++ b/packages/nuxt/src/core/runtime/nitro/error.ts @@ -55,9 +55,9 @@ export default async function errorhandler (error: H3Error, // Fallback to static rendered error page if (!res) { const { template } = process.dev - // @ts-ignore + // @ts-expect-error TODO: add legacy type support for subpath imports ? await import('@nuxt/ui-templates/templates/error-dev.mjs') - // @ts-ignore + // @ts-expect-error TODO: add legacy type support for subpath imports : await import('@nuxt/ui-templates/templates/error-500.mjs') if (process.dev) { // TODO: Support `message` in template diff --git a/packages/nuxt/src/core/runtime/nitro/paths.ts b/packages/nuxt/src/core/runtime/nitro/paths.ts index 72d63f91b2..3f809114bf 100644 --- a/packages/nuxt/src/core/runtime/nitro/paths.ts +++ b/packages/nuxt/src/core/runtime/nitro/paths.ts @@ -1,5 +1,4 @@ import { joinURL } from 'ufo' -// @ts-ignore import { useRuntimeConfig } from '#internal/nitro' export function baseURL (): string { diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index a01cf026f5..f4982074fd 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -15,14 +15,14 @@ import { useNitroApp } from '#internal/nitro/app' // eslint-disable-next-line import/no-restricted-paths import type { NuxtApp, NuxtSSRContext } from '#app/nuxt' -// @ts-ignore +// @ts-expect-error virtual file import { appRootId, appRootTag } from '#internal/nuxt.config.mjs' -// @ts-ignore +// @ts-expect-error virtual file import { buildAssetsURL, publicAssetsURL } from '#paths' -// @ts-ignore +// @ts-expect-error private property consumed by vite-generated url helpers globalThis.__buildAssetsURL = buildAssetsURL -// @ts-ignore +// @ts-expect-error private property consumed by vite-generated url helpers globalThis.__publicAssetsURL = publicAssetsURL export interface NuxtRenderHTMLContext { @@ -61,18 +61,18 @@ export interface NuxtRenderResponse { interface ClientManifest {} -// @ts-ignore +// @ts-expect-error file will be produced after app build const getClientManifest: () => Promise = () => import('#build/dist/server/client.manifest.mjs') .then(r => r.default || r) .then(r => typeof r === 'function' ? r() : r) as Promise -// @ts-ignore +// @ts-expect-error virtual file const getStaticRenderedHead = (): Promise => import('#head-static').then(r => r.default || r) -// @ts-ignore +// @ts-expect-error file will be produced after app build const getServerEntry = () => import('#build/dist/server/server.mjs').then(r => r.default || r) -// @ts-ignore +// @ts-expect-error file will be produced after app build const getSSRStyles = lazyCachedFunction((): Promise Promise>> => import('#build/dist/server/styles.mjs').then(r => r.default || r)) // -- SSR Renderer -- diff --git a/packages/nuxt/src/core/schema.ts b/packages/nuxt/src/core/schema.ts index 701936698a..1d77e1e73e 100644 --- a/packages/nuxt/src/core/schema.ts +++ b/packages/nuxt/src/core/schema.ts @@ -10,7 +10,7 @@ import { resolveSchema as resolveUntypedSchema } from 'untyped' import type { Schema, SchemaDefinition } from 'untyped' -// @ts-ignore +// @ts-expect-error TODO: add upstream type import untypedPlugin from 'untyped/babel-plugin' import jiti from 'jiti' @@ -76,7 +76,7 @@ export default defineNuxtModule({ async function resolveSchema () { // Global import - // @ts-ignore + // @ts-expect-error adding to globalThis for 'auto-import' support within nuxt.config file globalThis.defineNuxtSchema = (val: any) => val // Load schema from layers @@ -107,9 +107,8 @@ export default defineNuxtModule({ schemaDefs.map(schemaDef => resolveUntypedSchema(schemaDef)) ) - // @ts-expect-error // Merge after normalization - const schema = defu(...schemas) + const schema = defu(...schemas as [Schema, Schema]) // Allow hooking to extend resolved schema await nuxt.hooks.callHook('schema:resolved', schema) diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index be1e14ac84..a7578a5bec 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -306,12 +306,10 @@ export const nuxtConfigTemplate = { function _resolveId (id: string) { return resolvePath(id, { url: [ - // @ts-ignore - global.__NUXT_PREPATHS__, + ...(typeof global.__NUXT_PREPATHS__ === 'string' ? [global.__NUXT_PREPATHS__] : global.__NUXT_PREPATHS__ || []), import.meta.url, process.cwd(), - // @ts-ignore - global.__NUXT_PATHS__ + ...(typeof global.__NUXT_PATHS__ === 'string' ? [global.__NUXT_PATHS__] : global.__NUXT_PATHS__ || []) ] }) } diff --git a/packages/nuxt/src/pages/runtime/page.ts b/packages/nuxt/src/pages/runtime/page.ts index 34bfe75414..c21663df85 100644 --- a/packages/nuxt/src/pages/runtime/page.ts +++ b/packages/nuxt/src/pages/runtime/page.ts @@ -8,7 +8,7 @@ import type { RouterViewSlotProps } from './utils' import { generateRouteKey, wrapInKeepAlive } from './utils' import { useNuxtApp } from '#app/nuxt' import { _wrapIf } from '#app/components/utils' -// @ts-ignore +// @ts-expect-error virtual file import { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from '#build/nuxt.config.mjs' export default defineComponent({ @@ -73,8 +73,7 @@ function _mergeTransitionProps (routeProps: TransitionProps[]): TransitionProps ...prop, onAfterLeave: _toArray(prop.onAfterLeave) })) - // @ts-ignore - return defu(..._props) + return defu(..._props as [TransitionProps, TransitionProps]) } const RouteProvider = defineComponent({ diff --git a/packages/nuxt/src/pages/runtime/plugins/prefetch.client.ts b/packages/nuxt/src/pages/runtime/plugins/prefetch.client.ts index d946f14ea8..035db54020 100644 --- a/packages/nuxt/src/pages/runtime/plugins/prefetch.client.ts +++ b/packages/nuxt/src/pages/runtime/plugins/prefetch.client.ts @@ -1,9 +1,9 @@ import { hasProtocol } from 'ufo' import { defineNuxtPlugin } from '#app/nuxt' import { useRouter } from '#app/composables/router' -// @ts-ignore +// @ts-expect-error virtual file import layouts from '#build/layouts' -// @ts-ignore +// @ts-expect-error virtual file import { namedMiddleware } from '#build/middleware' export default defineNuxtPlugin({ diff --git a/packages/nuxt/src/pages/runtime/plugins/router.ts b/packages/nuxt/src/pages/runtime/plugins/router.ts index 6a2d550f8d..650e40bf82 100644 --- a/packages/nuxt/src/pages/runtime/plugins/router.ts +++ b/packages/nuxt/src/pages/runtime/plugins/router.ts @@ -16,11 +16,11 @@ import { clearError, showError, useError } from '#app/composables/error' import { useState } from '#app/composables/state' import { navigateTo } from '#app/composables/router' -// @ts-ignore +// @ts-expect-error virtual file import _routes from '#build/routes' -// @ts-ignore +// @ts-expect-error virtual file import routerOptions from '#build/router.options' -// @ts-ignore +// @ts-expect-error virtual file import { globalMiddleware, namedMiddleware } from '#build/middleware' // https://github.com/vuejs/router/blob/4a0cc8b9c1e642cdf47cc007fa5bbebde70afc66/packages/router/src/history/html5.ts#L37 diff --git a/packages/nuxt/src/pages/runtime/router.options.ts b/packages/nuxt/src/pages/runtime/router.options.ts index 459a40412e..3ad1d625d1 100644 --- a/packages/nuxt/src/pages/runtime/router.options.ts +++ b/packages/nuxt/src/pages/runtime/router.options.ts @@ -2,7 +2,7 @@ import type { RouteLocationNormalized, RouterScrollBehavior } from 'vue-router' import { nextTick } from 'vue' import type { RouterConfig } from 'nuxt/schema' import { useNuxtApp } from '#app/nuxt' -// @ts-ignore +// @ts-expect-error virtual file import { appPageTransition as defaultPageTransition } from '#build/nuxt.config.mjs' type ScrollPosition = Awaited> diff --git a/packages/nuxt/test/scan-components.test.ts b/packages/nuxt/test/scan-components.test.ts index cadd26ccd6..5a1a26b05f 100644 --- a/packages/nuxt/test/scan-components.test.ts +++ b/packages/nuxt/test/scan-components.test.ts @@ -225,7 +225,7 @@ const srcDir = rFixture('.') it('components:scanComponents', async () => { const scannedComponents = await scanComponents(dirs, srcDir) for (const c of scannedComponents) { - // @ts-ignore + // @ts-expect-error filePath is not optional but we don't want it to be in the snapshot delete c.filePath } expect(scannedComponents).deep.eq(expectedComponents) diff --git a/packages/schema/src/config/webpack.ts b/packages/schema/src/config/webpack.ts index 12d9ef10cb..edd3cf4689 100644 --- a/packages/schema/src/config/webpack.ts +++ b/packages/schema/src/config/webpack.ts @@ -258,9 +258,10 @@ export default defineUntypedSchema({ /** * Customize PostCSS Loader. * Same options as https://github.com/webpack-contrib/postcss-loader#options + * + * @type {{ execute?: boolean, postcssOptions: typeof import('postcss').ProcessOptions, sourceMap?: boolean, implementation?: any }} */ postcss: { - execute: undefined, postcssOptions: { config: { $resolve: async (val, get) => val ?? (await get('postcss.config')) @@ -269,9 +270,6 @@ export default defineUntypedSchema({ $resolve: async (val, get) => val ?? (await get('postcss.plugins')) } }, - sourceMap: undefined, - implementation: undefined, - order: '' }, /** diff --git a/packages/test-utils/src/nuxt.ts b/packages/test-utils/src/nuxt.ts index 2d2b0b2581..c5f557d5ad 100644 --- a/packages/test-utils/src/nuxt.ts +++ b/packages/test-utils/src/nuxt.ts @@ -4,7 +4,7 @@ import { defu } from 'defu' import * as _kit from '@nuxt/kit' import { useTestContext } from './context' -// @ts-ignore type cast +// @ts-expect-error type cast // eslint-disable-next-line const kit: typeof _kit = _kit.default || _kit diff --git a/packages/test-utils/src/runtime/global-setup.ts b/packages/test-utils/src/runtime/global-setup.ts index 0961f68358..5528dab5ed 100644 --- a/packages/test-utils/src/runtime/global-setup.ts +++ b/packages/test-utils/src/runtime/global-setup.ts @@ -1,7 +1,7 @@ import * as _kit from '@nuxt/kit' import { createTest, exposeContextToEnv } from '@nuxt/test-utils' -// @ts-ignore type cast +// @ts-expect-error type cast // eslint-disable-next-line const kit: typeof _kit = _kit.default || _kit diff --git a/packages/test-utils/src/server.ts b/packages/test-utils/src/server.ts index 01068da30e..78e803b8ba 100644 --- a/packages/test-utils/src/server.ts +++ b/packages/test-utils/src/server.ts @@ -6,7 +6,7 @@ import * as _kit from '@nuxt/kit' import { resolve } from 'pathe' import { useTestContext } from './context' -// @ts-ignore type cast +// @ts-expect-error type cast // eslint-disable-next-line const kit: typeof _kit = _kit.default || _kit diff --git a/packages/test-utils/src/setup/jest.ts b/packages/test-utils/src/setup/jest.ts index b982e95247..3402e80d1b 100644 --- a/packages/test-utils/src/setup/jest.ts +++ b/packages/test-utils/src/setup/jest.ts @@ -1,7 +1,7 @@ import type { TestHooks } from '../types' export default async function setupJest (hooks: TestHooks) { - // @ts-ignore + // @ts-expect-error jest is not a dependency const jest = await import('jest') hooks.ctx.mockFn = jest.fn diff --git a/packages/vite/src/plugins/analyze.ts b/packages/vite/src/plugins/analyze.ts index 632a49c5e6..808e4fc9a2 100644 --- a/packages/vite/src/plugins/analyze.ts +++ b/packages/vite/src/plugins/analyze.ts @@ -4,6 +4,8 @@ import { visualizer } from 'rollup-plugin-visualizer' import type { ViteBuildContext } from '../vite' export function analyzePlugin (ctx: ViteBuildContext): Plugin[] { + if (typeof ctx.nuxt.options.build.analyze === 'boolean') { return [] } + return [ { name: 'nuxt:analyze-minify', @@ -19,11 +21,9 @@ export function analyzePlugin (ctx: ViteBuildContext): Plugin[] { } } }, - // @ts-ignore visualizer({ - ...ctx.nuxt.options.build.analyze as any, - // @ts-ignore - filename: ctx.nuxt.options.build.analyze.filename.replace('{name}', 'client'), + ...ctx.nuxt.options.build.analyze, + filename: 'filename' in ctx.nuxt.options.build.analyze ? ctx.nuxt.options.build.analyze.filename!.replace('{name}', 'client') : undefined, title: 'Client bundle stats', gzipSize: true }) diff --git a/packages/webpack/src/presets/base.ts b/packages/webpack/src/presets/base.ts index ede20babca..e1237b92f0 100644 --- a/packages/webpack/src/presets/base.ts +++ b/packages/webpack/src/presets/base.ts @@ -88,28 +88,28 @@ function basePlugins (ctx: WebpackConfigContext) { name: ctx.name, color: colors[ctx.name as keyof typeof colors], reporters: ['stats'], + // @ts-expect-error TODO: this is a valid option for Webpack.ProgressPlugin and needs to be declared for WebpackBar stats: !ctx.isDev, reporter: { - // @ts-ignore - change: (_, { shortPath }) => { - if (!ctx.isServer) { - nuxt.callHook('webpack:change', shortPath) + reporter: { + change: (_, { shortPath }) => { + if (!ctx.isServer) { + nuxt.callHook('webpack:change', shortPath) + } + }, + done: ({ state }) => { + if (state.hasErrors) { + nuxt.callHook('webpack:error') + } else { + logger.success(`${state.name} ${state.message}`) + } + }, + allDone: () => { + nuxt.callHook('webpack:done') + }, + progress ({ statesArray }) { + nuxt.callHook('webpack:progress', statesArray) } - }, - // @ts-ignore - done: ({ state }) => { - if (state.hasErrors) { - nuxt.callHook('webpack:error') - } else { - logger.success(`${state.name} ${state.message}`) - } - }, - allDone: () => { - nuxt.callHook('webpack:done') - }, - // @ts-ignore - progress ({ statesArray }) { - nuxt.callHook('webpack:progress', statesArray) } } })) diff --git a/packages/webpack/src/presets/vue.ts b/packages/webpack/src/presets/vue.ts index 6d80d687c5..f00fb39943 100644 --- a/packages/webpack/src/presets/vue.ts +++ b/packages/webpack/src/presets/vue.ts @@ -8,8 +8,8 @@ import type { WebpackConfigContext } from '../utils/config' export function vue (ctx: WebpackConfigContext) { const { options, config } = ctx - // @ts-ignore - config.plugins.push(new (VueLoaderPlugin.default || VueLoaderPlugin)()) + // @ts-expect-error de-default vue-loader + config.plugins!.push(new (VueLoaderPlugin.default || VueLoaderPlugin)()) config.module!.rules!.push({ test: /\.vue$/i, diff --git a/packages/webpack/src/utils/config.ts b/packages/webpack/src/utils/config.ts index 1e70520a67..c2bef59985 100644 --- a/packages/webpack/src/utils/config.ts +++ b/packages/webpack/src/utils/config.ts @@ -3,7 +3,7 @@ import type { Configuration } from 'webpack' import type { Nuxt } from '@nuxt/schema' import { logger } from '@nuxt/kit' -export interface WebpackConfigContext extends ReturnType{ } +export interface WebpackConfigContext extends ReturnType {} type WebpackConfigPreset = (ctx: WebpackConfigContext, options?: object) => void type WebpackConfigPresetItem = WebpackConfigPreset | [WebpackConfigPreset, any] @@ -63,7 +63,7 @@ export function getWebpackConfig (ctx: WebpackConfigContext): Configuration { const builder = {} const loaders: any[] = [] - // @ts-ignore + // @ts-expect-error TODO: remove support for `build.extend` in v3.5 const { extend } = options.build if (typeof extend === 'function') { const extendedConfig = extend.call( diff --git a/packages/webpack/src/utils/mfs.ts b/packages/webpack/src/utils/mfs.ts index 5c4cc96a81..027a19a346 100644 --- a/packages/webpack/src/utils/mfs.ts +++ b/packages/webpack/src/utils/mfs.ts @@ -17,7 +17,7 @@ export function createMFS () { // Used by vue-renderer _fs.exists = p => Promise.resolve(_fs.existsSync(p)) - // @ts-ignore + // @ts-expect-error need better types for `pify` _fs.readFile = pify(_fs.readFile) return _fs as IFs & { join?(...paths: string[]): string } diff --git a/packages/webpack/src/utils/postcss.ts b/packages/webpack/src/utils/postcss.ts index da18438180..149e54bf68 100644 --- a/packages/webpack/src/utils/postcss.ts +++ b/packages/webpack/src/utils/postcss.ts @@ -71,11 +71,7 @@ export const getPostcssConfig = (nuxt: Nuxt) => { loadPlugins(postcssOptions) } - // @ts-expect-error - delete nuxt.options.webpack.postcss.order - return { - // @ts-expect-error sourceMap: nuxt.options.webpack.cssSourceMap, ...nuxt.options.webpack.postcss, postcssOptions diff --git a/packages/webpack/src/webpack.ts b/packages/webpack/src/webpack.ts index bf6c502363..af53e5ae4f 100644 --- a/packages/webpack/src/webpack.ts +++ b/packages/webpack/src/webpack.ts @@ -90,7 +90,7 @@ async function createDevMiddleware (compiler: Compiler) { ...nuxt.options.webpack.devMiddleware }) - // @ts-ignore + // @ts-expect-error need better types for `pify` nuxt.hook('close', () => pify(devMiddleware.close.bind(devMiddleware))()) const { client: _client, ...hotMiddlewareOptions } = nuxt.options.webpack.hotMiddleware || {} diff --git a/scripts/crawl.mjs b/scripts/crawl.mjs index 478f8d76e6..14173a007f 100644 --- a/scripts/crawl.mjs +++ b/scripts/crawl.mjs @@ -67,7 +67,6 @@ const crawler = new Crawler({ callback (error, res, done) { const { $ } = res const { uri } = res.options - // @ts-ignore const { statusCode } = res.request.response if (error || ![200, 301, 302].includes(statusCode) || !$) { diff --git a/test/fixtures/basic/components/BreaksServer.client.ts b/test/fixtures/basic/components/BreaksServer.client.ts index 1f5f4374d1..2b70dae2c7 100644 --- a/test/fixtures/basic/components/BreaksServer.client.ts +++ b/test/fixtures/basic/components/BreaksServer.client.ts @@ -1,4 +1,4 @@ -// @ts-ignore +// @ts-expect-error assigning property to window object to break SSR window.test = true export default defineComponent({ diff --git a/test/fixtures/basic/types.ts b/test/fixtures/basic/types.ts index e6f5ceb367..85e7f27089 100644 --- a/test/fixtures/basic/types.ts +++ b/test/fixtures/basic/types.ts @@ -120,9 +120,9 @@ describe('layouts', () => { describe('modules', () => { it('augments schema automatically', () => { defineNuxtConfig({ sampleModule: { enabled: false } }) - // @ts-expect-error + // @ts-expect-error we want to ensure we throw type error on invalid option defineNuxtConfig({ sampleModule: { other: false } }) - // @ts-expect-error + // @ts-expect-error we want to ensure we throw type error on invalid key defineNuxtConfig({ undeclaredKey: { other: false } }) }) }) @@ -158,7 +158,7 @@ describe('runtimeConfig', () => { const val = defineNuxtConfig({ runtimeConfig: { public: { - // @ts-expect-error + // @ts-expect-error this should be a number testConfig: 'test', ids: [1, 2] } From d0c8e7fb4a2c14855cc0a88b950477c7cbe0cdf4 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 14 Apr 2023 18:21:08 +0100 Subject: [PATCH 043/912] fix(nuxt): generate hi-res sourcemaps (#20280) --- packages/nuxt/src/components/client-fallback-auto-id.ts | 2 +- packages/nuxt/src/components/loader.ts | 4 ++-- packages/nuxt/src/components/tree-shake.ts | 6 +++--- packages/nuxt/src/core/plugins/dev-only.ts | 4 ++-- packages/nuxt/src/core/plugins/layer-aliasing.ts | 2 +- packages/nuxt/src/core/plugins/tree-shake.ts | 4 ++-- packages/nuxt/src/core/plugins/unctx.ts | 4 ++-- packages/nuxt/src/imports/transform.ts | 2 +- packages/nuxt/src/pages/page-meta.ts | 2 +- packages/vite/src/plugins/chunk-error.ts | 2 +- packages/vite/src/plugins/composable-keys.ts | 2 +- packages/vite/src/plugins/paths.ts | 2 +- packages/vite/src/plugins/pure-annotations.ts | 4 ++-- packages/webpack/src/plugins/dynamic-base.ts | 2 +- 14 files changed, 21 insertions(+), 21 deletions(-) diff --git a/packages/nuxt/src/components/client-fallback-auto-id.ts b/packages/nuxt/src/components/client-fallback-auto-id.ts index 370122be15..9d642d55f7 100644 --- a/packages/nuxt/src/components/client-fallback-auto-id.ts +++ b/packages/nuxt/src/components/client-fallback-auto-id.ts @@ -44,7 +44,7 @@ export const clientFallbackAutoIdPlugin = createUnplugin((options: LoaderOptions return { code: s.toString(), map: options.sourcemap - ? s.generateMap({ source: id, includeContent: true }) + ? s.generateMap({ hires: true }) : undefined } } diff --git a/packages/nuxt/src/components/loader.ts b/packages/nuxt/src/components/loader.ts index 70043f2e2d..9b01961493 100644 --- a/packages/nuxt/src/components/loader.ts +++ b/packages/nuxt/src/components/loader.ts @@ -33,7 +33,7 @@ export const loaderPlugin = createUnplugin((options: LoaderOptions) => { } return isVueTemplate(id) }, - transform (code, id) { + transform (code) { const components = options.getComponents() let num = 0 @@ -92,7 +92,7 @@ export const loaderPlugin = createUnplugin((options: LoaderOptions) => { return { code: s.toString(), map: options.sourcemap - ? s.generateMap({ source: id, includeContent: true }) + ? s.generateMap({ hires: true }) : undefined } } diff --git a/packages/nuxt/src/components/tree-shake.ts b/packages/nuxt/src/components/tree-shake.ts index 3d6a48fe1d..9136267f4e 100644 --- a/packages/nuxt/src/components/tree-shake.ts +++ b/packages/nuxt/src/components/tree-shake.ts @@ -29,7 +29,7 @@ export const TreeShakeTemplatePlugin = createUnplugin((options: TreeShakeTemplat const { pathname } = parseURL(decodeURIComponent(pathToFileURL(id).href)) return pathname.endsWith('.vue') }, - transform (code, id) { + transform (code) { const components = options.getComponents() if (!regexpMap.has(components)) { @@ -106,7 +106,7 @@ export const TreeShakeTemplatePlugin = createUnplugin((options: TreeShakeTemplat return { code: s.toString(), map: options.sourcemap - ? s.generateMap({ source: id, includeContent: true }) + ? s.generateMap({ hires: true }) : undefined } } @@ -192,7 +192,7 @@ function removeImportDeclaration (ast: Program, importName: string, magicString: * ImportDeclarations and VariableDeclarations are ignored * return the name of the component if is not called */ -function isComponentNotCalledInSetup (codeAst: Node, name: string): string|void { +function isComponentNotCalledInSetup (codeAst: Node, name: string): string | void { if (name) { let found = false walk(codeAst, { diff --git a/packages/nuxt/src/core/plugins/dev-only.ts b/packages/nuxt/src/core/plugins/dev-only.ts index 53e2476e9c..b0c6226cc3 100644 --- a/packages/nuxt/src/core/plugins/dev-only.ts +++ b/packages/nuxt/src/core/plugins/dev-only.ts @@ -23,7 +23,7 @@ export const DevOnlyPlugin = createUnplugin((options: DevOnlyPluginOptions) => { return true } }, - transform (code, id) { + transform (code) { if (!code.match(DEVONLY_COMP_RE)) { return } const s = new MagicString(code) @@ -36,7 +36,7 @@ export const DevOnlyPlugin = createUnplugin((options: DevOnlyPluginOptions) => { return { code: s.toString(), map: options.sourcemap - ? s.generateMap({ source: id, includeContent: true }) + ? s.generateMap({ hires: true }) : undefined } } diff --git a/packages/nuxt/src/core/plugins/layer-aliasing.ts b/packages/nuxt/src/core/plugins/layer-aliasing.ts index 3d72d3a6bf..9c47d65c13 100644 --- a/packages/nuxt/src/core/plugins/layer-aliasing.ts +++ b/packages/nuxt/src/core/plugins/layer-aliasing.ts @@ -60,7 +60,7 @@ export const LayerAliasingPlugin = createUnplugin((options: LayerAliasingOptions if (s.hasChanged()) { return { code: s.toString(), - map: options.sourcemap ? s.generateMap({ source: id, includeContent: true }) : undefined + map: options.sourcemap ? s.generateMap({ hires: true }) : undefined } } } diff --git a/packages/nuxt/src/core/plugins/tree-shake.ts b/packages/nuxt/src/core/plugins/tree-shake.ts index 2539480c37..6b0c3c611b 100644 --- a/packages/nuxt/src/core/plugins/tree-shake.ts +++ b/packages/nuxt/src/core/plugins/tree-shake.ts @@ -35,7 +35,7 @@ export const TreeShakeComposablesPlugin = createUnplugin((options: TreeShakeComp return true } }, - transform (code, id) { + transform (code) { if (!code.match(COMPOSABLE_RE)) { return } const s = new MagicString(code) @@ -48,7 +48,7 @@ export const TreeShakeComposablesPlugin = createUnplugin((options: TreeShakeComp return { code: s.toString(), map: options.sourcemap - ? s.generateMap({ source: id, includeContent: true }) + ? s.generateMap({ hires: true }) : undefined } } diff --git a/packages/nuxt/src/core/plugins/unctx.ts b/packages/nuxt/src/core/plugins/unctx.ts index 042950010c..6a93a72a44 100644 --- a/packages/nuxt/src/core/plugins/unctx.ts +++ b/packages/nuxt/src/core/plugins/unctx.ts @@ -34,7 +34,7 @@ export const UnctxTransformPlugin = createUnplugin((options: UnctxTransformPlugi return true } }, - transform (code, id) { + transform (code) { // TODO: needed for webpack - update transform in unctx/unplugin? if (code.startsWith(TRANSFORM_MARKER) || !transformer.shouldTransform(code)) { return } const result = transformer.transform(code) @@ -42,7 +42,7 @@ export const UnctxTransformPlugin = createUnplugin((options: UnctxTransformPlugi return { code: TRANSFORM_MARKER + result.code, map: options.sourcemap - ? result.magicString.generateMap({ source: id, includeContent: true }) + ? result.magicString.generateMap({ hires: true }) : undefined } } diff --git a/packages/nuxt/src/imports/transform.ts b/packages/nuxt/src/imports/transform.ts index ae353d5605..ab2c08b0af 100644 --- a/packages/nuxt/src/imports/transform.ts +++ b/packages/nuxt/src/imports/transform.ts @@ -49,7 +49,7 @@ export const TransformPlugin = createUnplugin(({ ctx, options, sourcemap }: { ct return { code: s.toString(), map: sourcemap - ? s.generateMap({ source: id, includeContent: true }) + ? s.generateMap({ hires: true }) : undefined } } diff --git a/packages/nuxt/src/pages/page-meta.ts b/packages/nuxt/src/pages/page-meta.ts index 1e2413626c..0852c0198e 100644 --- a/packages/nuxt/src/pages/page-meta.ts +++ b/packages/nuxt/src/pages/page-meta.ts @@ -58,7 +58,7 @@ export const PageMetaPlugin = createUnplugin((options: PageMetaPluginOptions) => return { code: s.toString(), map: options.sourcemap - ? s.generateMap({ source: id, includeContent: true }) + ? s.generateMap({ hires: true }) : undefined } } diff --git a/packages/vite/src/plugins/chunk-error.ts b/packages/vite/src/plugins/chunk-error.ts index a42f19c41d..b63969f53e 100644 --- a/packages/vite/src/plugins/chunk-error.ts +++ b/packages/vite/src/plugins/chunk-error.ts @@ -21,7 +21,7 @@ export const __vitePreload = (...args) => ___vitePreload(...args).catch(err => { return { code: s.toString(), map: options.sourcemap - ? s.generateMap({ source: id, includeContent: true }) + ? s.generateMap({ hires: true }) : undefined } } diff --git a/packages/vite/src/plugins/composable-keys.ts b/packages/vite/src/plugins/composable-keys.ts index 78be8e02a6..70eee4edab 100644 --- a/packages/vite/src/plugins/composable-keys.ts +++ b/packages/vite/src/plugins/composable-keys.ts @@ -86,7 +86,7 @@ export const composableKeysPlugin = createUnplugin((options: ComposableKeysOptio return { code: s.toString(), map: options.sourcemap - ? s.generateMap({ source: id, includeContent: true }) + ? s.generateMap({ hires: true }) : undefined } } diff --git a/packages/vite/src/plugins/paths.ts b/packages/vite/src/plugins/paths.ts index a86667d5c1..f9880b1d44 100644 --- a/packages/vite/src/plugins/paths.ts +++ b/packages/vite/src/plugins/paths.ts @@ -34,7 +34,7 @@ export function runtimePathsPlugin (options: RuntimePathsOptions): Plugin { return { code: s.toString(), map: options.sourcemap - ? s.generateMap({ source: id, includeContent: true }) + ? s.generateMap({ hires: true }) : undefined } } diff --git a/packages/vite/src/plugins/pure-annotations.ts b/packages/vite/src/plugins/pure-annotations.ts index a43b2d8989..3d604dfb8d 100644 --- a/packages/vite/src/plugins/pure-annotations.ts +++ b/packages/vite/src/plugins/pure-annotations.ts @@ -29,7 +29,7 @@ export const pureAnnotationsPlugin = createUnplugin((options: PureAnnotationsOpt return true } }, - transform (code, id) { + transform (code) { if (!FUNCTION_RE_SINGLE.test(code)) { return } const s = new MagicString(code) @@ -43,7 +43,7 @@ export const pureAnnotationsPlugin = createUnplugin((options: PureAnnotationsOpt return { code: s.toString(), map: options.sourcemap - ? s.generateMap({ source: id, includeContent: true }) + ? s.generateMap({ hires: true }) : undefined } } diff --git a/packages/webpack/src/plugins/dynamic-base.ts b/packages/webpack/src/plugins/dynamic-base.ts index eba75dedfe..054afc907e 100644 --- a/packages/webpack/src/plugins/dynamic-base.ts +++ b/packages/webpack/src/plugins/dynamic-base.ts @@ -25,7 +25,7 @@ export const DynamicBasePlugin = createUnplugin((options: DynamicBasePluginOptio return { code: s.toString(), map: options.sourcemap - ? s.generateMap({ source: id, includeContent: true }) + ? s.generateMap({ hires: true }) : undefined } } From 3754591257c3320b179f1128121fc5aac43df3df Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sat, 15 Apr 2023 11:03:09 +0100 Subject: [PATCH 044/912] fix(nuxt): return type directly if not picking asyncData (#20288) --- packages/nuxt/src/app/composables/asyncData.ts | 6 ++++-- test/fixtures/basic/types.ts | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/app/composables/asyncData.ts b/packages/nuxt/src/app/composables/asyncData.ts index 31f8fd32da..d4ac4e49ec 100644 --- a/packages/nuxt/src/app/composables/asyncData.ts +++ b/packages/nuxt/src/app/composables/asyncData.ts @@ -11,14 +11,16 @@ export type PickFrom> = T extends Array : T extends Record ? keyof T extends K[number] ? T // Exact same keys as the target, skip Pick - : Pick + : K[number] extends never + ? T + : Pick : T export type KeysOf = Array< T extends T // Include all keys of union types, not just common keys ? keyof T extends string ? keyof T - : string + : never : never > diff --git a/test/fixtures/basic/types.ts b/test/fixtures/basic/types.ts index 85e7f27089..61eb67d5b4 100644 --- a/test/fixtures/basic/types.ts +++ b/test/fixtures/basic/types.ts @@ -259,6 +259,21 @@ describe('composables', () => { expectTypeOf(useFetch('/api/hey', { default: () => 'bar', transform: v => v.foo }).data).toEqualTypeOf>() expectTypeOf(useLazyFetch('/api/hey', { default: () => 'bar', transform: v => v.foo }).data).toEqualTypeOf>() }) + + it('correctly types returns with key signatures', () => { + interface TestType { + id: string + content: string[] + [x: string]: any + } + + const testFetch = () => Promise.resolve({}) as Promise + + const { data: notTypedData } = useAsyncData('test', testFetch) + expectTypeOf(notTypedData.value!.id).toEqualTypeOf() + expectTypeOf(notTypedData.value!.content).toEqualTypeOf() + expectTypeOf(notTypedData.value!.untypedKey).toEqualTypeOf() + }) }) describe('app config', () => { From d48024e71f0933d97b6e35a986a7be7febb66334 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lehoczky=20Zolt=C3=A1n?= Date: Sat, 15 Apr 2023 12:30:17 +0200 Subject: [PATCH 045/912] docs: update links on hooks page (#20296) --- docs/2.guide/3.going-further/2.hooks.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/2.guide/3.going-further/2.hooks.md b/docs/2.guide/3.going-further/2.hooks.md index 8d0e9f7de8..8a36e33111 100644 --- a/docs/2.guide/3.going-further/2.hooks.md +++ b/docs/2.guide/3.going-further/2.hooks.md @@ -53,7 +53,7 @@ Learn more about [available lifecycle hooks](/docs/api/advanced/hooks) ## Nitro App Hooks (Runtime) -These hooks are available for [Nitro plugins](https://nitro.unjs.io/guide/advanced/plugins) to hook into Nitro's runtime behavior. +These hooks are available for [Nitro plugins](https://nitro.unjs.io/guide/plugins) to hook into Nitro's runtime behavior. ### Usage within a Nitro Plugin @@ -71,5 +71,5 @@ export default defineNitroPlugin((nitroApp) => { ``` ::alert{icon=👉} -Learn more about available [Nitro lifecycle hooks](/docs/api/advanced/hooks#nitro-hooks-runtime-server-side). +Learn more about available [Nitro lifecycle hooks](/docs/api/advanced/hooks#nitro-app-hooks-runtime-server-side). :: From ac2e4661752186ed3cfc850634e963d3f55752eb Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sat, 15 Apr 2023 14:47:34 +0100 Subject: [PATCH 046/912] fix(nuxt): provide more helpful error when instance unavailable (#20289) --- packages/nuxt/src/app/nuxt.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index 2aa48cc289..fc239088b0 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -441,7 +441,11 @@ export function useNuxtApp () { if (!nuxtAppInstance) { const vm = getCurrentInstance() if (!vm) { - throw new Error('nuxt instance unavailable') + if (process.dev) { + throw new Error('[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/guide/concepts/auto-imports#using-vue-and-nuxt-composables`.') + } else { + throw new Error('[nuxt] instance unavailable') + } } return vm.appContext.app.$nuxt as NuxtApp } From 8aa86559c8724dad73485e1ed362313964240947 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sat, 15 Apr 2023 15:43:19 +0100 Subject: [PATCH 047/912] fix(nuxt): mark `useRequestHeaders` keys as optional (#20286) --- packages/nuxt/src/app/composables/ssr.ts | 4 ++-- test/fixtures/basic/types.ts | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/app/composables/ssr.ts b/packages/nuxt/src/app/composables/ssr.ts index f4c30eca8c..9b2e883af4 100644 --- a/packages/nuxt/src/app/composables/ssr.ts +++ b/packages/nuxt/src/app/composables/ssr.ts @@ -4,8 +4,8 @@ import { setResponseStatus as _setResponseStatus } from 'h3' import type { NuxtApp } from '../nuxt' import { useNuxtApp } from '../nuxt' -export function useRequestHeaders (include: K[]): Record, string | undefined> -export function useRequestHeaders (): Readonly> +export function useRequestHeaders (include: K[]): { [key in Lowercase]?: string } +export function useRequestHeaders (): Readonly> export function useRequestHeaders (include?: any[]) { if (process.client) { return {} } const headers = useNuxtApp().ssrContext?.event.node.req.headers ?? {} diff --git a/test/fixtures/basic/types.ts b/test/fixtures/basic/types.ts index 61eb67d5b4..b76f065b0d 100644 --- a/test/fixtures/basic/types.ts +++ b/test/fixtures/basic/types.ts @@ -260,6 +260,17 @@ describe('composables', () => { expectTypeOf(useLazyFetch('/api/hey', { default: () => 'bar', transform: v => v.foo }).data).toEqualTypeOf>() }) + it('uses types compatible between useRequestHeaders and useFetch', () => { + useFetch('/api/hey', { + headers: useRequestHeaders() + }) + useFetch('/api/hey', { + headers: useRequestHeaders(['test']) + }) + const { test } = useRequestHeaders(['test']) + expectTypeOf(test).toEqualTypeOf() + }) + it('correctly types returns with key signatures', () => { interface TestType { id: string From 37e62e4ea1e0695f1d7922519c3e0f05e328a021 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sun, 16 Apr 2023 14:21:55 +0100 Subject: [PATCH 048/912] docs: add brief information on debugging a nuxt app (#20282) --- docs/2.guide/3.going-further/9.debugging.md | 65 +++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 docs/2.guide/3.going-further/9.debugging.md diff --git a/docs/2.guide/3.going-further/9.debugging.md b/docs/2.guide/3.going-further/9.debugging.md new file mode 100644 index 0000000000..533f68396a --- /dev/null +++ b/docs/2.guide/3.going-further/9.debugging.md @@ -0,0 +1,65 @@ +--- +title: "Debugging" +description: "In Nuxt 3, you can get started with debugging your application directly in the browser as well as in your IDE." +--- + +## Sourcemaps + +Sourcemaps are enabled for your server build by default, and for the client build in dev mode, but you can enable them more specifically in your configuration. + +```ts +export default defineNuxtConfig({ + // or sourcemap: true + sourcemap: { + server: true, + client: true + } +}) +``` + +## Debugging in Your IDE + +It is possible to debug your Nuxt app in your IDE while you are developing it. + +### Example VS Code Debug Configuration + +You may need to update the config below with a path to your web browser. For more information, visit the [VS Code documentation about debug configuration](https://go.microsoft.com/fwlink/?linkid=830387). + +```json5 +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + "version": "0.2.0", + "configurations": [ + { + "type": "chrome", + "request": "launch", + "name": "client: chrome", + "url": "http://localhost:3000", + "webRoot": "${workspaceFolder}" + }, + { + "type": "node", + "request": "launch", + "name": "server: nuxt", + "program": "${workspaceFolder}/node_modules/nuxi/bin/nuxi.mjs", + "args": [ + "dev" + ], + } + ], + "compounds": [ + { + "name": "fullstack: nuxt", + "configurations": [ + "server: nuxt", + "client: chrome" + ] + } + ] +} +``` + +### Other IDEs + +If you have another IDE and would like to contribute sample configuration, feel free to [open a PR](https://github.com/nuxt/nuxt/edit/main/docs/2.guide/3.going-further/9.debugging.md)! From 60c90c29480be9ba45fe4d5c3cfc0d012bcd880a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 16 Apr 2023 20:04:53 +0100 Subject: [PATCH 049/912] chore(deps): update all non-major dependencies (main) (#20305) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- packages/nuxt/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 306 +++++++++++++++++----------------- 4 files changed, 156 insertions(+), 156 deletions(-) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index f55a147e5a..6d21ce5e24 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -95,7 +95,7 @@ "strip-literal": "^1.0.1", "ufo": "^1.1.1", "unctx": "^2.2.0", - "unenv": "^1.3.1", + "unenv": "^1.4.1", "unimport": "^3.0.6", "unplugin": "^1.3.1", "untyped": "^1.3.2", diff --git a/packages/vite/package.json b/packages/vite/package.json index a98d7a112c..7b2c4a67eb 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -46,7 +46,7 @@ "pathe": "^1.1.0", "perfect-debounce": "^0.1.3", "pkg-types": "^1.0.2", - "postcss": "^8.4.21", + "postcss": "^8.4.22", "postcss-import": "^15.1.0", "postcss-url": "^10.1.3", "rollup-plugin-visualizer": "^5.9.0", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index c7efcdbf5f..852a094ca6 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -41,7 +41,7 @@ "ohash": "^1.0.0", "pathe": "^1.1.0", "pify": "^6.1.0", - "postcss": "^8.4.21", + "postcss": "^8.4.22", "postcss-import": "^15.1.0", "postcss-loader": "^7.2.4", "postcss-url": "^10.1.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3d77ecedbc..bef53888f7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -639,8 +639,8 @@ importers: specifier: ^2.2.0 version: 2.2.0 unenv: - specifier: ^1.3.1 - version: 1.3.1 + specifier: ^1.4.1 + version: 1.4.1 unimport: specifier: ^3.0.6 version: 3.0.6(rollup@3.20.2) @@ -808,7 +808,7 @@ importers: version: 3.0.1(vite@4.2.1)(vue@3.2.47) autoprefixer: specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.21) + version: 10.4.14(postcss@8.4.22) chokidar: specifier: ^3.5.3 version: 3.5.3 @@ -817,7 +817,7 @@ importers: version: 0.1.0 cssnano: specifier: ^6.0.0 - version: 6.0.0(postcss@8.4.21) + version: 6.0.0(postcss@8.4.22) defu: specifier: ^6.1.2 version: 6.1.2 @@ -864,14 +864,14 @@ importers: specifier: ^1.0.2 version: 1.0.2 postcss: - specifier: ^8.4.21 - version: 8.4.21 + specifier: ^8.4.22 + version: 8.4.22 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.21) + version: 15.1.0(postcss@8.4.22) postcss-url: specifier: ^10.1.3 - version: 10.1.3(postcss@8.4.21) + version: 10.1.3(postcss@8.4.22) rollup-plugin-visualizer: specifier: ^5.9.0 version: 5.9.0(rollup@3.20.2) @@ -923,7 +923,7 @@ importers: version: link:../kit autoprefixer: specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.21) + version: 10.4.14(postcss@8.4.22) css-loader: specifier: ^6.7.3 version: 6.7.3(webpack@5.79.0) @@ -932,7 +932,7 @@ importers: version: 5.0.0(webpack@5.79.0) cssnano: specifier: ^6.0.0 - version: 6.0.0(postcss@8.4.21) + version: 6.0.0(postcss@8.4.22) esbuild-loader: specifier: ^3.0.1 version: 3.0.1(webpack@5.79.0) @@ -979,17 +979,17 @@ importers: specifier: ^6.1.0 version: 6.1.0 postcss: - specifier: ^8.4.21 - version: 8.4.21 + specifier: ^8.4.22 + version: 8.4.22 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.21) + version: 15.1.0(postcss@8.4.22) postcss-loader: specifier: ^7.2.4 - version: 7.2.4(@types/node@18.15.11)(postcss@8.4.21)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.79.0) + version: 7.2.4(@types/node@18.15.11)(postcss@8.4.22)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.79.0) postcss-url: specifier: ^10.1.3 - version: 10.1.3(postcss@8.4.21) + version: 10.1.3(postcss@8.4.22) style-resources-loader: specifier: ^1.5.0 version: 1.5.0(webpack@5.79.0) @@ -2854,7 +2854,7 @@ packages: '@vue/shared': 3.2.47 estree-walker: 2.0.2 magic-string: 0.30.0 - postcss: 8.4.21 + postcss: 8.4.22 source-map: 0.6.1 /@vue/compiler-ssr@3.2.47: @@ -3347,7 +3347,7 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true - /autoprefixer@10.4.14(postcss@8.4.21): + /autoprefixer@10.4.14(postcss@8.4.22): resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -3359,7 +3359,7 @@ packages: fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false @@ -3910,13 +3910,13 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /css-declaration-sorter@6.3.1(postcss@8.4.21): + /css-declaration-sorter@6.3.1(postcss@8.4.22): resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 dev: false /css-loader@6.7.3(webpack@5.79.0): @@ -3925,12 +3925,12 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.21) - postcss: 8.4.21 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.21) - postcss-modules-local-by-default: 4.0.0(postcss@8.4.21) - postcss-modules-scope: 3.0.0(postcss@8.4.21) - postcss-modules-values: 4.0.0(postcss@8.4.21) + icss-utils: 5.1.0(postcss@8.4.22) + postcss: 8.4.22 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.22) + postcss-modules-local-by-default: 4.0.0(postcss@8.4.22) + postcss-modules-scope: 3.0.0(postcss@8.4.22) + postcss-modules-values: 4.0.0(postcss@8.4.22) postcss-value-parser: 4.2.0 semver: 7.4.0 webpack: 5.79.0 @@ -3961,9 +3961,9 @@ packages: lightningcss: optional: true dependencies: - cssnano: 6.0.0(postcss@8.4.21) + cssnano: 6.0.0(postcss@8.4.22) jest-worker: 29.5.0 - postcss: 8.4.21 + postcss: 8.4.22 schema-utils: 4.0.0 serialize-javascript: 6.0.1 source-map: 0.6.1 @@ -4018,62 +4018,62 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-preset-default@6.0.0(postcss@8.4.21): + /cssnano-preset-default@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-BDxlaFzObRDXUiCCBQUNQcI+f1/aX2mgoNtXGjV6PG64POcHoDUoX+LgMWw+Q4609QhxwkcSnS65YFs42RA6qQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.3.1(postcss@8.4.21) - cssnano-utils: 4.0.0(postcss@8.4.21) - postcss: 8.4.21 - postcss-calc: 8.2.4(postcss@8.4.21) - postcss-colormin: 6.0.0(postcss@8.4.21) - postcss-convert-values: 6.0.0(postcss@8.4.21) - postcss-discard-comments: 6.0.0(postcss@8.4.21) - postcss-discard-duplicates: 6.0.0(postcss@8.4.21) - postcss-discard-empty: 6.0.0(postcss@8.4.21) - postcss-discard-overridden: 6.0.0(postcss@8.4.21) - postcss-merge-longhand: 6.0.0(postcss@8.4.21) - postcss-merge-rules: 6.0.0(postcss@8.4.21) - postcss-minify-font-values: 6.0.0(postcss@8.4.21) - postcss-minify-gradients: 6.0.0(postcss@8.4.21) - postcss-minify-params: 6.0.0(postcss@8.4.21) - postcss-minify-selectors: 6.0.0(postcss@8.4.21) - postcss-normalize-charset: 6.0.0(postcss@8.4.21) - postcss-normalize-display-values: 6.0.0(postcss@8.4.21) - postcss-normalize-positions: 6.0.0(postcss@8.4.21) - postcss-normalize-repeat-style: 6.0.0(postcss@8.4.21) - postcss-normalize-string: 6.0.0(postcss@8.4.21) - postcss-normalize-timing-functions: 6.0.0(postcss@8.4.21) - postcss-normalize-unicode: 6.0.0(postcss@8.4.21) - postcss-normalize-url: 6.0.0(postcss@8.4.21) - postcss-normalize-whitespace: 6.0.0(postcss@8.4.21) - postcss-ordered-values: 6.0.0(postcss@8.4.21) - postcss-reduce-initial: 6.0.0(postcss@8.4.21) - postcss-reduce-transforms: 6.0.0(postcss@8.4.21) - postcss-svgo: 6.0.0(postcss@8.4.21) - postcss-unique-selectors: 6.0.0(postcss@8.4.21) + css-declaration-sorter: 6.3.1(postcss@8.4.22) + cssnano-utils: 4.0.0(postcss@8.4.22) + postcss: 8.4.22 + postcss-calc: 8.2.4(postcss@8.4.22) + postcss-colormin: 6.0.0(postcss@8.4.22) + postcss-convert-values: 6.0.0(postcss@8.4.22) + postcss-discard-comments: 6.0.0(postcss@8.4.22) + postcss-discard-duplicates: 6.0.0(postcss@8.4.22) + postcss-discard-empty: 6.0.0(postcss@8.4.22) + postcss-discard-overridden: 6.0.0(postcss@8.4.22) + postcss-merge-longhand: 6.0.0(postcss@8.4.22) + postcss-merge-rules: 6.0.0(postcss@8.4.22) + postcss-minify-font-values: 6.0.0(postcss@8.4.22) + postcss-minify-gradients: 6.0.0(postcss@8.4.22) + postcss-minify-params: 6.0.0(postcss@8.4.22) + postcss-minify-selectors: 6.0.0(postcss@8.4.22) + postcss-normalize-charset: 6.0.0(postcss@8.4.22) + postcss-normalize-display-values: 6.0.0(postcss@8.4.22) + postcss-normalize-positions: 6.0.0(postcss@8.4.22) + postcss-normalize-repeat-style: 6.0.0(postcss@8.4.22) + postcss-normalize-string: 6.0.0(postcss@8.4.22) + postcss-normalize-timing-functions: 6.0.0(postcss@8.4.22) + postcss-normalize-unicode: 6.0.0(postcss@8.4.22) + postcss-normalize-url: 6.0.0(postcss@8.4.22) + postcss-normalize-whitespace: 6.0.0(postcss@8.4.22) + postcss-ordered-values: 6.0.0(postcss@8.4.22) + postcss-reduce-initial: 6.0.0(postcss@8.4.22) + postcss-reduce-transforms: 6.0.0(postcss@8.4.22) + postcss-svgo: 6.0.0(postcss@8.4.22) + postcss-unique-selectors: 6.0.0(postcss@8.4.22) dev: false - /cssnano-utils@4.0.0(postcss@8.4.21): + /cssnano-utils@4.0.0(postcss@8.4.22): resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 dev: false - /cssnano@6.0.0(postcss@8.4.21): + /cssnano@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-RGlcbzGhzEBCHuQe3k+Udyj5M00z0pm9S+VurHXFEOXxH+y0sVrJH2sMzoyz2d8N1EScazg+DVvmgyx0lurwwA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 6.0.0(postcss@8.4.21) + cssnano-preset-default: 6.0.0(postcss@8.4.22) lilconfig: 2.1.0 - postcss: 8.4.21 + postcss: 8.4.22 dev: false /csso@5.0.5: @@ -5802,13 +5802,13 @@ packages: dependencies: safer-buffer: 2.1.2 - /icss-utils@5.1.0(postcss@8.4.21): + /icss-utils@5.1.0(postcss@8.4.22): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 dev: false /ieee754@1.2.1: @@ -6708,8 +6708,8 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: false - /nanoid@3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + /nanoid@3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -6789,7 +6789,7 @@ packages: source-map-support: 0.5.21 std-env: 3.3.2 ufo: 1.1.1 - unenv: 1.3.1 + unenv: 1.4.1 unimport: 3.0.6(rollup@3.20.2) unstorage: 1.4.1 transitivePeerDependencies: @@ -7221,17 +7221,17 @@ packages: engines: {node: '>=4'} dev: true - /postcss-calc@8.2.4(postcss@8.4.21): + /postcss-calc@8.2.4(postcss@8.4.22): resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 dev: false - /postcss-colormin@6.0.0(postcss@8.4.21): + /postcss-colormin@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -7240,55 +7240,55 @@ packages: browserslist: 4.21.5 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-convert-values@6.0.0(postcss@8.4.21): + /postcss-convert-values@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-discard-comments@6.0.0(postcss@8.4.21): + /postcss-discard-comments@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 dev: false - /postcss-discard-duplicates@6.0.0(postcss@8.4.21): + /postcss-discard-duplicates@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 dev: false - /postcss-discard-empty@6.0.0(postcss@8.4.21): + /postcss-discard-empty@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 dev: false - /postcss-discard-overridden@6.0.0(postcss@8.4.21): + /postcss-discard-overridden@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 dev: false /postcss-import-resolver@2.0.0: @@ -7297,19 +7297,19 @@ packages: enhanced-resolve: 4.5.0 dev: false - /postcss-import@15.1.0(postcss@8.4.21): + /postcss-import@15.1.0(postcss@8.4.22): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.1 dev: false - /postcss-loader@7.2.4(@types/node@18.15.11)(postcss@8.4.21)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.79.0): + /postcss-loader@7.2.4(@types/node@18.15.11)(postcss@8.4.22)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.79.0): resolution: {integrity: sha512-F88rpxxNspo5hatIc+orYwZDtHFaVFOSIVAx+fBfJC1GmhWbVmPWtmg2gXKE1OxJbneOSGn8PWdIwsZFcruS+w==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -7326,7 +7326,7 @@ packages: cosmiconfig: 8.1.3 cosmiconfig-typescript-loader: 4.3.0(@types/node@18.15.11)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4) klona: 2.0.6 - postcss: 8.4.21 + postcss: 8.4.22 semver: 7.4.0 ts-node: 10.9.1(@types/node@18.15.11)(typescript@5.0.4) typescript: 5.0.4 @@ -7335,18 +7335,18 @@ packages: - '@types/node' dev: false - /postcss-merge-longhand@6.0.0(postcss@8.4.21): + /postcss-merge-longhand@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 - stylehacks: 6.0.0(postcss@8.4.21) + stylehacks: 6.0.0(postcss@8.4.22) dev: false - /postcss-merge-rules@6.0.0(postcss@8.4.21): + /postcss-merge-rules@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-rCXkklftzEkniyv3f4mRCQzxD6oE4Quyh61uyWTUbCJ26Pv2hoz+fivJSsSBWxDBeScR4fKCfF3HHTcD7Ybqnw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -7354,198 +7354,198 @@ packages: dependencies: browserslist: 4.21.5 caniuse-api: 3.0.0 - cssnano-utils: 4.0.0(postcss@8.4.21) - postcss: 8.4.21 + cssnano-utils: 4.0.0(postcss@8.4.22) + postcss: 8.4.22 postcss-selector-parser: 6.0.11 dev: false - /postcss-minify-font-values@6.0.0(postcss@8.4.21): + /postcss-minify-font-values@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-gradients@6.0.0(postcss@8.4.21): + /postcss-minify-gradients@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 4.0.0(postcss@8.4.21) - postcss: 8.4.21 + cssnano-utils: 4.0.0(postcss@8.4.22) + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-params@6.0.0(postcss@8.4.21): + /postcss-minify-params@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - cssnano-utils: 4.0.0(postcss@8.4.21) - postcss: 8.4.21 + cssnano-utils: 4.0.0(postcss@8.4.22) + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-selectors@6.0.0(postcss@8.4.21): + /postcss-minify-selectors@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-selector-parser: 6.0.11 dev: false - /postcss-modules-extract-imports@3.0.0(postcss@8.4.21): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.22): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 dev: false - /postcss-modules-local-by-default@4.0.0(postcss@8.4.21): + /postcss-modules-local-by-default@4.0.0(postcss@8.4.22): resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.21) - postcss: 8.4.21 + icss-utils: 5.1.0(postcss@8.4.22) + postcss: 8.4.22 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 dev: false - /postcss-modules-scope@3.0.0(postcss@8.4.21): + /postcss-modules-scope@3.0.0(postcss@8.4.22): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-selector-parser: 6.0.11 dev: false - /postcss-modules-values@4.0.0(postcss@8.4.21): + /postcss-modules-values@4.0.0(postcss@8.4.22): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.21) - postcss: 8.4.21 + icss-utils: 5.1.0(postcss@8.4.22) + postcss: 8.4.22 dev: false - /postcss-normalize-charset@6.0.0(postcss@8.4.21): + /postcss-normalize-charset@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 dev: false - /postcss-normalize-display-values@6.0.0(postcss@8.4.21): + /postcss-normalize-display-values@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-positions@6.0.0(postcss@8.4.21): + /postcss-normalize-positions@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-repeat-style@6.0.0(postcss@8.4.21): + /postcss-normalize-repeat-style@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-string@6.0.0(postcss@8.4.21): + /postcss-normalize-string@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-timing-functions@6.0.0(postcss@8.4.21): + /postcss-normalize-timing-functions@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-unicode@6.0.0(postcss@8.4.21): + /postcss-normalize-unicode@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-url@6.0.0(postcss@8.4.21): + /postcss-normalize-url@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-whitespace@6.0.0(postcss@8.4.21): + /postcss-normalize-whitespace@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-ordered-values@6.0.0(postcss@8.4.21): + /postcss-ordered-values@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 4.0.0(postcss@8.4.21) - postcss: 8.4.21 + cssnano-utils: 4.0.0(postcss@8.4.22) + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false - /postcss-reduce-initial@6.0.0(postcss@8.4.21): + /postcss-reduce-initial@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -7553,16 +7553,16 @@ packages: dependencies: browserslist: 4.21.5 caniuse-api: 3.0.0 - postcss: 8.4.21 + postcss: 8.4.22 dev: false - /postcss-reduce-transforms@6.0.0(postcss@8.4.21): + /postcss-reduce-transforms@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 dev: false @@ -7573,28 +7573,28 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-svgo@6.0.0(postcss@8.4.21): + /postcss-svgo@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-value-parser: 4.2.0 svgo: 3.0.2 dev: false - /postcss-unique-selectors@6.0.0(postcss@8.4.21): + /postcss-unique-selectors@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.22 postcss-selector-parser: 6.0.11 dev: false - /postcss-url@10.1.3(postcss@8.4.21): + /postcss-url@10.1.3(postcss@8.4.22): resolution: {integrity: sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==} engines: {node: '>=10'} peerDependencies: @@ -7603,7 +7603,7 @@ packages: make-dir: 3.1.0 mime: 2.5.2 minimatch: 3.0.8 - postcss: 8.4.21 + postcss: 8.4.22 xxhashjs: 0.2.2 dev: false @@ -7611,11 +7611,11 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: false - /postcss@8.4.21: - resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + /postcss@8.4.22: + resolution: {integrity: sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.4 + nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 @@ -8313,14 +8313,14 @@ packages: webpack: 5.79.0 dev: false - /stylehacks@6.0.0(postcss@8.4.21): + /stylehacks@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - postcss: 8.4.21 + postcss: 8.4.22 postcss-selector-parser: 6.0.11 dev: false @@ -8741,8 +8741,8 @@ packages: busboy: 1.6.0 dev: true - /unenv@1.3.1: - resolution: {integrity: sha512-4hTMiJf1TgQNnOsZxaI6XpCpVvOUNYLW3NxEkjdzXf+Dukys4b01AShapcXzKzvgoyoWByP3MLbg/CkzcKx+GA==} + /unenv@1.4.1: + resolution: {integrity: sha512-DuFZUDfaBC92zy3fW7QqKTLdYJIPkpwTN0yGZtaxnpOI7HvIfl41NYh9NVv4zcqhT8CGXJ1ELpvO2tecaB6NfA==} dependencies: defu: 6.1.2 mime: 3.0.0 @@ -9054,7 +9054,7 @@ packages: dependencies: '@types/node': 18.15.11 esbuild: 0.15.18 - postcss: 8.4.21 + postcss: 8.4.22 resolve: 1.22.1 rollup: 2.79.1 optionalDependencies: @@ -9088,7 +9088,7 @@ packages: dependencies: '@types/node': 18.15.11 esbuild: 0.17.16 - postcss: 8.4.21 + postcss: 8.4.22 resolve: 1.22.1 rollup: 3.20.2 optionalDependencies: From 2f89fc02363f2f6b380c3bc1d98d0de64ec7f06e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 17 Apr 2023 09:14:46 +0100 Subject: [PATCH 050/912] chore(deps): update all non-major dependencies (main) (#20313) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- packages/nuxi/package.json | 2 +- packages/vite/package.json | 2 +- pnpm-lock.yaml | 168 ++++++++++++++++++------------------- 3 files changed, 86 insertions(+), 86 deletions(-) diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 493d8efa2e..a05283b8ab 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -28,7 +28,7 @@ "chokidar": "^3.5.3", "clear": "^0.1.0", "clipboardy": "^3.0.0", - "colorette": "^2.0.19", + "colorette": "^2.0.20", "consola": "^3.0.2", "deep-object-diff": "^1.1.9", "destr": "^1.2.2", diff --git a/packages/vite/package.json b/packages/vite/package.json index 7b2c4a67eb..13111c4ec3 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -32,7 +32,7 @@ "clear": "^0.1.0", "cssnano": "^6.0.0", "defu": "^6.1.2", - "esbuild": "^0.17.16", + "esbuild": "^0.17.17", "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", "externality": "^1.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bef53888f7..5fb02ac01a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -462,8 +462,8 @@ importers: specifier: ^3.0.0 version: 3.0.0 colorette: - specifier: ^2.0.19 - version: 2.0.19 + specifier: ^2.0.20 + version: 2.0.20 consola: specifier: ^3.0.2 version: 3.0.2 @@ -822,8 +822,8 @@ importers: specifier: ^6.1.2 version: 6.1.2 esbuild: - specifier: ^0.17.16 - version: 0.17.16 + specifier: ^0.17.17 + version: 0.17.17 escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -1392,8 +1392,8 @@ packages: jsdoc-type-pratt-parser: 4.0.0 dev: true - /@esbuild/android-arm64@0.17.16: - resolution: {integrity: sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q==} + /@esbuild/android-arm64@0.17.17: + resolution: {integrity: sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -1409,72 +1409,72 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.17.16: - resolution: {integrity: sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw==} + /@esbuild/android-arm@0.17.17: + resolution: {integrity: sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==} engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true optional: true - /@esbuild/android-x64@0.17.16: - resolution: {integrity: sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow==} + /@esbuild/android-x64@0.17.17: + resolution: {integrity: sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.17.16: - resolution: {integrity: sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA==} + /@esbuild/darwin-arm64@0.17.17: + resolution: {integrity: sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@esbuild/darwin-x64@0.17.16: - resolution: {integrity: sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ==} + /@esbuild/darwin-x64@0.17.17: + resolution: {integrity: sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.17.16: - resolution: {integrity: sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA==} + /@esbuild/freebsd-arm64@0.17.17: + resolution: {integrity: sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.17.16: - resolution: {integrity: sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g==} + /@esbuild/freebsd-x64@0.17.17: + resolution: {integrity: sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/linux-arm64@0.17.16: - resolution: {integrity: sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA==} + /@esbuild/linux-arm64@0.17.17: + resolution: {integrity: sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-arm@0.17.16: - resolution: {integrity: sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw==} + /@esbuild/linux-arm@0.17.17: + resolution: {integrity: sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ia32@0.17.16: - resolution: {integrity: sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA==} + /@esbuild/linux-ia32@0.17.17: + resolution: {integrity: sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1490,96 +1490,96 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.17.16: - resolution: {integrity: sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ==} + /@esbuild/linux-loong64@0.17.17: + resolution: {integrity: sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.17.16: - resolution: {integrity: sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA==} + /@esbuild/linux-mips64el@0.17.17: + resolution: {integrity: sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.17.16: - resolution: {integrity: sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q==} + /@esbuild/linux-ppc64@0.17.17: + resolution: {integrity: sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.17.16: - resolution: {integrity: sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA==} + /@esbuild/linux-riscv64@0.17.17: + resolution: {integrity: sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-s390x@0.17.16: - resolution: {integrity: sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw==} + /@esbuild/linux-s390x@0.17.17: + resolution: {integrity: sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-x64@0.17.16: - resolution: {integrity: sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g==} + /@esbuild/linux-x64@0.17.17: + resolution: {integrity: sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.17.16: - resolution: {integrity: sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA==} + /@esbuild/netbsd-x64@0.17.17: + resolution: {integrity: sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.17.16: - resolution: {integrity: sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew==} + /@esbuild/openbsd-x64@0.17.17: + resolution: {integrity: sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true optional: true - /@esbuild/sunos-x64@0.17.16: - resolution: {integrity: sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag==} + /@esbuild/sunos-x64@0.17.17: + resolution: {integrity: sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true optional: true - /@esbuild/win32-arm64@0.17.16: - resolution: {integrity: sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg==} + /@esbuild/win32-arm64@0.17.17: + resolution: {integrity: sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-ia32@0.17.16: - resolution: {integrity: sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA==} + /@esbuild/win32-ia32@0.17.17: + resolution: {integrity: sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-x64@0.17.16: - resolution: {integrity: sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg==} + /@esbuild/win32-x64@0.17.17: + resolution: {integrity: sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -2512,7 +2512,7 @@ packages: '@unocss/preset-uno': 0.45.30 cac: 6.7.14 chokidar: 3.5.3 - colorette: 2.0.19 + colorette: 2.0.20 consola: 2.15.3 fast-glob: 3.2.12 magic-string: 0.30.0 @@ -3600,7 +3600,7 @@ packages: hasBin: true dependencies: c12: 1.2.0 - colorette: 2.0.19 + colorette: 2.0.20 consola: 3.0.2 convert-gitmoji: 0.1.3 execa: 7.1.1 @@ -3750,8 +3750,8 @@ packages: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} dev: false - /colorette@2.0.19: - resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} @@ -4621,7 +4621,7 @@ packages: peerDependencies: webpack: ^4.40.0 || ^5.0.0 dependencies: - esbuild: 0.17.16 + esbuild: 0.17.17 get-tsconfig: 4.4.0 loader-utils: 2.0.4 webpack: 5.79.0 @@ -4712,34 +4712,34 @@ packages: esbuild-windows-arm64: 0.15.18 dev: true - /esbuild@0.17.16: - resolution: {integrity: sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg==} + /esbuild@0.17.17: + resolution: {integrity: sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.17.16 - '@esbuild/android-arm64': 0.17.16 - '@esbuild/android-x64': 0.17.16 - '@esbuild/darwin-arm64': 0.17.16 - '@esbuild/darwin-x64': 0.17.16 - '@esbuild/freebsd-arm64': 0.17.16 - '@esbuild/freebsd-x64': 0.17.16 - '@esbuild/linux-arm': 0.17.16 - '@esbuild/linux-arm64': 0.17.16 - '@esbuild/linux-ia32': 0.17.16 - '@esbuild/linux-loong64': 0.17.16 - '@esbuild/linux-mips64el': 0.17.16 - '@esbuild/linux-ppc64': 0.17.16 - '@esbuild/linux-riscv64': 0.17.16 - '@esbuild/linux-s390x': 0.17.16 - '@esbuild/linux-x64': 0.17.16 - '@esbuild/netbsd-x64': 0.17.16 - '@esbuild/openbsd-x64': 0.17.16 - '@esbuild/sunos-x64': 0.17.16 - '@esbuild/win32-arm64': 0.17.16 - '@esbuild/win32-ia32': 0.17.16 - '@esbuild/win32-x64': 0.17.16 + '@esbuild/android-arm': 0.17.17 + '@esbuild/android-arm64': 0.17.17 + '@esbuild/android-x64': 0.17.17 + '@esbuild/darwin-arm64': 0.17.17 + '@esbuild/darwin-x64': 0.17.17 + '@esbuild/freebsd-arm64': 0.17.17 + '@esbuild/freebsd-x64': 0.17.17 + '@esbuild/linux-arm': 0.17.17 + '@esbuild/linux-arm64': 0.17.17 + '@esbuild/linux-ia32': 0.17.17 + '@esbuild/linux-loong64': 0.17.17 + '@esbuild/linux-mips64el': 0.17.17 + '@esbuild/linux-ppc64': 0.17.17 + '@esbuild/linux-riscv64': 0.17.17 + '@esbuild/linux-s390x': 0.17.17 + '@esbuild/linux-x64': 0.17.17 + '@esbuild/netbsd-x64': 0.17.17 + '@esbuild/openbsd-x64': 0.17.17 + '@esbuild/sunos-x64': 0.17.17 + '@esbuild/win32-arm64': 0.17.17 + '@esbuild/win32-ia32': 0.17.17 + '@esbuild/win32-x64': 0.17.17 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -5488,7 +5488,7 @@ packages: resolution: {integrity: sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==} hasBin: true dependencies: - colorette: 2.0.19 + colorette: 2.0.20 defu: 6.1.2 https-proxy-agent: 5.0.1 mri: 1.2.0 @@ -6279,7 +6279,7 @@ packages: resolution: {integrity: sha512-r94k7kmXHb8e8wpv7+UP/qqhhD+j/9TgX19QKim2cEJuWCLwlTw+5BkCFmYyjhQ7Bt8KdVun/2DcD7MF2Fe3+g==} dependencies: clipboardy: 3.0.0 - colorette: 2.0.19 + colorette: 2.0.20 defu: 6.1.2 get-port-please: 3.0.1 http-shutdown: 1.2.2 @@ -6665,7 +6665,7 @@ packages: optional: true dependencies: defu: 6.1.2 - esbuild: 0.17.16 + esbuild: 0.17.17 fs-extra: 11.1.1 globby: 13.1.4 jiti: 1.18.2 @@ -6755,7 +6755,7 @@ packages: defu: 6.1.2 destr: 1.2.2 dot-prop: 7.2.0 - esbuild: 0.17.16 + esbuild: 0.17.17 escape-string-regexp: 5.0.0 etag: 1.8.1 fs-extra: 11.1.1 @@ -8694,7 +8694,7 @@ packages: chalk: 5.2.0 consola: 2.15.3 defu: 6.1.2 - esbuild: 0.17.16 + esbuild: 0.17.17 globby: 13.1.4 hookable: 5.5.3 jiti: 1.18.2 @@ -9087,7 +9087,7 @@ packages: optional: true dependencies: '@types/node': 18.15.11 - esbuild: 0.17.16 + esbuild: 0.17.17 postcss: 8.4.22 resolve: 1.22.1 rollup: 3.20.2 @@ -9347,7 +9347,7 @@ packages: webpack: optional: true dependencies: - colorette: 2.0.19 + colorette: 2.0.20 memfs: 3.5.0 mime-types: 2.1.35 range-parser: 1.2.1 From d7b605f35fa36961ea17b578c8c6bc970e55c343 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 17 Apr 2023 09:51:25 +0100 Subject: [PATCH 051/912] chore(deps): update devdependency eslint-plugin-jsdoc to ^41.1.2 (main) (#20320) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 705d35ae50..6922ef7973 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "changelogen": "^0.5.3", "crawler": "^1.4.0", "eslint": "^8.38.0", - "eslint-plugin-jsdoc": "^41.1.1", + "eslint-plugin-jsdoc": "^41.1.2", "execa": "^7.1.1", "expect-type": "^0.15.0", "globby": "^13.1.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5fb02ac01a..1998757472 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -67,8 +67,8 @@ importers: specifier: ^8.38.0 version: 8.38.0 eslint-plugin-jsdoc: - specifier: ^41.1.1 - version: 41.1.1(eslint@8.38.0) + specifier: ^41.1.2 + version: 41.1.2(eslint@8.38.0) execa: specifier: ^7.1.1 version: 7.1.1 @@ -4889,8 +4889,8 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc@41.1.1(eslint@8.38.0): - resolution: {integrity: sha512-dfH97DKLGtQ5dgEMzd+GSUuY+xX/yyAfjML3O0pEWmMMpylsG6Ro65s4ziYXKmixiENYK9CTQxCVRGqZUFN2Mw==} + /eslint-plugin-jsdoc@41.1.2(eslint@8.38.0): + resolution: {integrity: sha512-MePJXdGiPW7AG06CU5GbKzYtKpoHwTq1lKijjq+RwL/cQkZtBZ59Zbv5Ep0RVxSMnq6242249/n+w4XrTZ1Afg==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: eslint: ^7.0.0 || ^8.0.0 From b9c8c9936ea5d8a795946ce2d42e1e82576ae7e3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 17 Apr 2023 15:16:04 +0100 Subject: [PATCH 052/912] chore(deps): update dependency c12 to ^1.3.0 (main) (#20328) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/schema/package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index a6fd7d11ab..7f1127367f 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -21,7 +21,7 @@ }, "dependencies": { "@nuxt/schema": "workspace:../schema", - "c12": "^1.2.0", + "c12": "^1.3.0", "consola": "^3.0.2", "defu": "^6.1.2", "globby": "^13.1.4", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index a05283b8ab..240b32c54f 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -24,7 +24,7 @@ "@types/flat": "^5.0.2", "@types/mri": "^1.1.1", "@types/semver": "^7.3.13", - "c12": "^1.2.0", + "c12": "^1.3.0", "chokidar": "^3.5.3", "clear": "^0.1.0", "clipboardy": "^3.0.0", diff --git a/packages/schema/package.json b/packages/schema/package.json index bff7c597c0..bf43fa2cf9 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -32,7 +32,7 @@ "vite": "~4.2.1" }, "dependencies": { - "c12": "^1.2.0", + "c12": "^1.3.0", "create-require": "^1.1.1", "defu": "^6.1.2", "hookable": "^5.5.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1998757472..e123f5f10e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -364,8 +364,8 @@ importers: specifier: workspace:* version: link:../schema c12: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.3.0 + version: 1.3.0 consola: specifier: ^3.0.2 version: 3.0.2 @@ -450,8 +450,8 @@ importers: specifier: ^7.3.13 version: 7.3.13 c12: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.3.0 + version: 1.3.0 chokidar: specifier: ^3.5.3 version: 3.5.3 @@ -679,8 +679,8 @@ importers: packages/schema: dependencies: c12: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.3.0 + version: 1.3.0 create-require: specifier: ^1.1.1 version: 1.1.1 @@ -3509,8 +3509,8 @@ packages: streamsearch: 1.1.0 dev: true - /c12@1.2.0: - resolution: {integrity: sha512-CMznkE0LpNEuD8ILp5QvsQVP+YvcpJnrI/zFeFnosU2PyDtx1wT7tXfZ8S3Tl3l9MTTXbKeuhDYKwgvnAPOx3w==} + /c12@1.3.0: + resolution: {integrity: sha512-cYdnZn0y803ByEYHK7+gKmcQK9cqLuGciL3lOwOJnOMAEd9y4604OYAEVK385NkMcgGYltZhLW7eddJrWsFrkg==} dependencies: defu: 6.1.2 dotenv: 16.0.3 @@ -3599,7 +3599,7 @@ packages: resolution: {integrity: sha512-RjTrgJlTHhbGlMo/s73j7uSTspla3ykr0UA5zwRs/HIZvElY6qZHu3X70httgC2Du5poS2wFCS10WLfwZr7ZTQ==} hasBin: true dependencies: - c12: 1.2.0 + c12: 1.3.0 colorette: 2.0.20 consola: 3.0.2 convert-gitmoji: 0.1.3 @@ -6747,7 +6747,7 @@ packages: '@rollup/pluginutils': 5.0.2(rollup@3.20.2) '@vercel/nft': 0.22.6 archiver: 5.3.1 - c12: 1.2.0 + c12: 1.3.0 chalk: 5.2.0 chokidar: 3.5.3 consola: 3.0.2 From dc20b22a5f0d1b0b83c75521d9351a274acd105d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 18 Apr 2023 09:57:25 +0100 Subject: [PATCH 053/912] chore(deps): update all non-major dependencies (main) (#20337) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 4 +- packages/schema/package.json | 2 +- pnpm-lock.yaml | 108 +++++++++++++++++------------------ 6 files changed, 61 insertions(+), 61 deletions(-) diff --git a/package.json b/package.json index 6922ef7973..b4e8ab139b 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "ofetch": "^1.0.1", "pathe": "^1.1.0", "rimraf": "^5.0.0", - "semver": "^7.4.0", + "semver": "^7.5.0", "std-env": "^3.3.2", "typescript": "^5.0.4", "ufo": "^1.1.1", @@ -79,7 +79,7 @@ "vitest": "^0.30.1", "vue-tsc": "^1.2.0" }, - "packageManager": "pnpm@8.2.0", + "packageManager": "pnpm@8.3.0", "engines": { "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } diff --git a/packages/kit/package.json b/packages/kit/package.json index 7f1127367f..5f3fd255ee 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -34,7 +34,7 @@ "pathe": "^1.1.0", "pkg-types": "^1.0.2", "scule": "^1.0.0", - "semver": "^7.4.0", + "semver": "^7.5.0", "unctx": "^2.2.0", "unimport": "^3.0.6", "untyped": "^1.3.2" diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 240b32c54f..cc36bfebfa 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -44,7 +44,7 @@ "perfect-debounce": "^0.1.3", "pkg-types": "^1.0.2", "scule": "^1.0.0", - "semver": "^7.4.0", + "semver": "^7.5.0", "unbuild": "latest" }, "optionalDependencies": { diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 6d21ce5e24..416155b158 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -62,8 +62,8 @@ "@nuxt/telemetry": "^2.2.0", "@nuxt/ui-templates": "^1.1.1", "@nuxt/vite-builder": "workspace:../vite", - "@unhead/ssr": "^1.1.25", - "@unhead/vue": "^1.1.25", + "@unhead/ssr": "^1.1.26", + "@unhead/vue": "^1.1.26", "@vue/reactivity": "^3.2.47", "@vue/shared": "^3.2.47", "chokidar": "^3.5.3", diff --git a/packages/schema/package.json b/packages/schema/package.json index bf43fa2cf9..b20cb99c62 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -23,7 +23,7 @@ "devDependencies": { "@types/lodash.template": "^4.5.1", "@types/semver": "^7.3.13", - "@unhead/schema": "^1.1.25", + "@unhead/schema": "^1.1.26", "@vitejs/plugin-vue": "^4.1.0", "@vitejs/plugin-vue-jsx": "^3.0.1", "nitropack": "^2.3.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e123f5f10e..7fd6b7d6be 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -100,8 +100,8 @@ importers: specifier: ^5.0.0 version: 5.0.0 semver: - specifier: ^7.4.0 - version: 7.4.0 + specifier: ^7.5.0 + version: 7.5.0 std-env: specifier: ^3.3.2 version: 3.3.2 @@ -403,8 +403,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 semver: - specifier: ^7.4.0 - version: 7.4.0 + specifier: ^7.5.0 + version: 7.5.0 unctx: specifier: ^2.2.0 version: 2.2.0 @@ -510,8 +510,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 semver: - specifier: ^7.4.0 - version: 7.4.0 + specifier: ^7.5.0 + version: 7.5.0 unbuild: specifier: ^1.2.0 version: 1.2.0 @@ -540,11 +540,11 @@ importers: specifier: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 version: 18.15.11 '@unhead/ssr': - specifier: ^1.1.25 - version: 1.1.25 + specifier: ^1.1.26 + version: 1.1.26 '@unhead/vue': - specifier: ^1.1.25 - version: 1.1.25(vue@3.2.47) + specifier: ^1.1.26 + version: 1.1.26(vue@3.2.47) '@vue/reactivity': specifier: ^3.2.47 version: 3.2.47 @@ -725,8 +725,8 @@ importers: specifier: ^7.3.13 version: 7.3.13 '@unhead/schema': - specifier: ^1.1.25 - version: 1.1.25 + specifier: ^1.1.26 + version: 1.1.26 '@vitejs/plugin-vue': specifier: ^4.1.0 version: 4.1.0(vite@4.2.1)(vue@3.2.47) @@ -1737,7 +1737,7 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.4.0 + semver: 7.5.0 tar: 6.1.13 transitivePeerDependencies: - encoding @@ -2342,7 +2342,7 @@ packages: ignore: 5.2.4 natural-compare-lite: 1.4.0 regexpp: 3.2.0 - semver: 7.4.0 + semver: 7.5.0 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: @@ -2416,7 +2416,7 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.4.0 + semver: 7.5.0 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: @@ -2437,7 +2437,7 @@ packages: eslint: 8.38.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0(eslint@8.38.0) - semver: 7.4.0 + semver: 7.5.0 transitivePeerDependencies: - supports-color - typescript @@ -2451,41 +2451,41 @@ packages: eslint-visitor-keys: 3.4.0 dev: true - /@unhead/dom@1.1.25: - resolution: {integrity: sha512-kJ5jhJFNQCyNENSw+mtmzgulA0kqUuXS3SRPl1umpofc8PH8tblSzXwqStxTj9r6E4wxJbEuygT/aHFJVioizw==} + /@unhead/dom@1.1.26: + resolution: {integrity: sha512-6I8z170OAO19h/AslASN4Xw0hqItQFMKhRJQtplQs1BZ62LsDmNKuqJiYueX39U+IfIvIV3j/q1mQwt9lgMwTw==} dependencies: - '@unhead/schema': 1.1.25 - '@unhead/shared': 1.1.25 + '@unhead/schema': 1.1.26 + '@unhead/shared': 1.1.26 dev: false - /@unhead/schema@1.1.25: - resolution: {integrity: sha512-ygmaxWgGTAq9CcB6zGY4+0HlGdQt/oMq+CM18tTnvOBY0Og/uPGt7roW8eH717GpTPibKRTpagSYzZYdL0tWeg==} + /@unhead/schema@1.1.26: + resolution: {integrity: sha512-l93zaizm+pu36uMssdtzSC2Y61ncZaBBouZn0pB8rVI14V0hPxeXuSNIuPh2WjAm8wfb8EnCSE3LNguoqTar7g==} dependencies: hookable: 5.5.3 zhead: 2.0.4 - /@unhead/shared@1.1.25: - resolution: {integrity: sha512-KptKbk4py1MFYHYwDJ/0kPOs+95dYMrWIT1fCV9lGcVAwu20wIHh+WX18s+iEWhc66xkGRxgC/xsl4wJJFPE+w==} + /@unhead/shared@1.1.26: + resolution: {integrity: sha512-gnUfNrl8w7hQHke9P0au7klcG9bHVOXqbDvya2uARA/8TyxNz87i0uakraO+P6/+zf484dw3b3MYkXq0thK2eg==} dependencies: - '@unhead/schema': 1.1.25 + '@unhead/schema': 1.1.26 dev: false - /@unhead/ssr@1.1.25: - resolution: {integrity: sha512-2S3tiajy6n3D1WY2pVkRLr74WGaHD08w0+nFaQGNy0LszPlkWUuAmYYqDCXdh03ijEl+Tjwqjn+E9w1e3QakuQ==} + /@unhead/ssr@1.1.26: + resolution: {integrity: sha512-KYJDGgVNtU2i+NHu17o2zFXqsoLukOFEz81XrWQ8nQdY5+VNjy7IiTLp1dlx3umn1ohZjHySz4LXQCT4zUApSw==} dependencies: - '@unhead/schema': 1.1.25 - '@unhead/shared': 1.1.25 + '@unhead/schema': 1.1.26 + '@unhead/shared': 1.1.26 dev: false - /@unhead/vue@1.1.25(vue@3.2.47): - resolution: {integrity: sha512-ujincFHftg2N2i3G/gVkMyJ7CFzVyZ8SMb5cJCWZEnDBQGjgy3uvWT6EaM0d2jnaeXiYbB+iyY0O1o/H+XlpKQ==} + /@unhead/vue@1.1.26(vue@3.2.47): + resolution: {integrity: sha512-UpxQ0KGmOoiN+Dg19zto5KTcnGV5chBmgiVJTDqUF4BPfr24vRrR65sZGdMoNV7weuD3AD/K0osk2ru+vXxRrA==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@unhead/schema': 1.1.25 - '@unhead/shared': 1.1.25 + '@unhead/schema': 1.1.26 + '@unhead/shared': 1.1.26 hookable: 5.5.3 - unhead: 1.1.25 + unhead: 1.1.26 vue: 3.2.47 dev: false @@ -3492,7 +3492,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.4.0 + semver: 7.5.0 dev: true /bundle-name@3.0.0: @@ -3611,7 +3611,7 @@ packages: pathe: 1.1.0 pkg-types: 1.0.2 scule: 1.0.0 - semver: 7.4.0 + semver: 7.5.0 yaml: 2.2.1 transitivePeerDependencies: - supports-color @@ -3808,7 +3808,7 @@ packages: js-string-escape: 1.0.1 lodash: 4.17.21 md5-hex: 3.0.1 - semver: 7.4.0 + semver: 7.5.0 well-known-symbols: 2.0.0 dev: true @@ -3932,7 +3932,7 @@ packages: postcss-modules-scope: 3.0.0(postcss@8.4.22) postcss-modules-values: 4.0.0(postcss@8.4.22) postcss-value-parser: 4.2.0 - semver: 7.4.0 + semver: 7.5.0 webpack: 5.79.0 dev: false @@ -4902,7 +4902,7 @@ packages: escape-string-regexp: 4.0.0 eslint: 8.38.0 esquery: 1.5.0 - semver: 7.4.0 + semver: 7.5.0 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color @@ -4922,7 +4922,7 @@ packages: is-core-module: 2.11.0 minimatch: 3.1.2 resolve: 1.22.1 - semver: 7.4.0 + semver: 7.5.0 dev: true /eslint-plugin-node@11.1.0(eslint@8.38.0): @@ -4968,7 +4968,7 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.24 safe-regex: 2.1.1 - semver: 7.4.0 + semver: 7.5.0 strip-indent: 3.0.0 dev: true @@ -4983,7 +4983,7 @@ packages: natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.11 - semver: 7.4.0 + semver: 7.5.0 vue-eslint-parser: 9.1.0(eslint@8.38.0) xml-name-validator: 4.0.0 transitivePeerDependencies: @@ -5334,7 +5334,7 @@ packages: minimatch: 3.1.2 node-abort-controller: 3.1.1 schema-utils: 3.1.1 - semver: 7.4.0 + semver: 7.5.0 tapable: 2.2.1 typescript: 5.0.4 webpack: 5.79.0 @@ -6783,7 +6783,7 @@ packages: rollup: 3.20.2 rollup-plugin-visualizer: 5.9.0(rollup@3.20.2) scule: 1.0.0 - semver: 7.4.0 + semver: 7.5.0 serve-placeholder: 2.0.1 serve-static: 1.15.0 source-map-support: 0.5.21 @@ -7327,7 +7327,7 @@ packages: cosmiconfig-typescript-loader: 4.3.0(@types/node@18.15.11)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4) klona: 2.0.6 postcss: 8.4.22 - semver: 7.4.0 + semver: 7.5.0 ts-node: 10.9.1(@types/node@18.15.11)(typescript@5.0.4) typescript: 5.0.4 webpack: 5.79.0 @@ -8010,8 +8010,8 @@ packages: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true - /semver@7.4.0: - resolution: {integrity: sha512-RgOxM8Mw+7Zus0+zcLEUn8+JfoLpj/huFTItQy2hsM4khuC1HYRDp0cU482Ewn/Fcy6bCjufD8vAj7voC66KQw==} + /semver@7.5.0: + resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -8749,12 +8749,12 @@ packages: node-fetch-native: 1.1.0 pathe: 1.1.0 - /unhead@1.1.25: - resolution: {integrity: sha512-KtTBgtQjxICoOjA4dyxJfj5fYoYJeYFUt/J8ulaTzbvTsXM9K+ztYjI65nf2CPYYXRCRz/iEt8trqcsGlsB5TQ==} + /unhead@1.1.26: + resolution: {integrity: sha512-MshcPoPLXSGRgYtczddGvMgLUISTbt2pxihqD5kZVXKmY2FZLj1OQIY111aX45Xq47XJxjvYavvoyeUFroKQcg==} dependencies: - '@unhead/dom': 1.1.25 - '@unhead/schema': 1.1.25 - '@unhead/shared': 1.1.25 + '@unhead/dom': 1.1.26 + '@unhead/schema': 1.1.26 + '@unhead/shared': 1.1.26 hookable: 5.5.3 dev: false @@ -9171,7 +9171,7 @@ packages: engines: {vscode: ^1.52.0} dependencies: minimatch: 3.1.2 - semver: 7.4.0 + semver: 7.5.0 vscode-languageserver-protocol: 3.16.0 dev: false @@ -9239,7 +9239,7 @@ packages: espree: 9.5.1 esquery: 1.5.0 lodash: 4.17.21 - semver: 7.4.0 + semver: 7.5.0 transitivePeerDependencies: - supports-color dev: true From 886350a27c6b733ae07dfd5f6b8457214aa83fe6 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 18 Apr 2023 13:30:16 +0200 Subject: [PATCH 054/912] fix(vite): avoid serving arbitrary file in vite-node middleware (#20345) --- packages/vite/src/vite-node.ts | 68 +++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/vite-node.ts b/packages/vite/src/vite-node.ts index cfd3cd9770..5df7a99300 100644 --- a/packages/vite/src/vite-node.ts +++ b/packages/vite/src/vite-node.ts @@ -1,10 +1,11 @@ import { pathToFileURL } from 'node:url' +import os from 'node:os' import { createApp, createError, defineEventHandler, defineLazyEventHandler, eventHandler, toNodeListener } from 'h3' import { ViteNodeServer } from 'vite-node/server' import fse from 'fs-extra' -import { normalize, resolve } from 'pathe' +import { isAbsolute, normalize, resolve } from 'pathe' import { addDevServerHandler } from '@nuxt/kit' -import type { ModuleNode, Plugin as VitePlugin } from 'vite' +import type { ModuleNode, ViteDevServer, Plugin as VitePlugin } from 'vite' import { normalizeViteManifest } from 'vue-bundle-renderer' import { resolve as resolveModule } from 'mlly' import { distDir } from './dirs' @@ -141,6 +142,9 @@ function createViteNodeApp (ctx: ViteBuildContext, invalidates: Set = ne if (moduleId === '/') { throw createError({ statusCode: 400 }) } + if (isAbsolute(moduleId) && !isFileServingAllowed(moduleId, viteServer)) { + throw createError({ statusCode: 403 /* Restricted */ }) + } const module = await node.fetchModule(moduleId).catch((err) => { const errorData = { code: 'VITE_ERROR', @@ -179,3 +183,63 @@ export async function initViteNodeServer (ctx: ViteBuildContext) { `export { default } from ${JSON.stringify(pathToFileURL(manifestResolvedPath).href)}` ) } + +/** + * The following code is ported from vite + * Awaits https://github.com/vitejs/vite/pull/12894 + */ +const VOLUME_RE = /^[A-Z]:/i +const FS_PREFIX = '/@fs/' +const isWindows = os.platform() === 'win32' +const postfixRE = /[?#].*$/s +const windowsSlashRE = /\\/g + +function slash (p: string): string { + return p.replace(windowsSlashRE, '/') +} + +function normalizePath (id: string): string { + return normalize(isWindows ? slash(id) : id) +} +function fsPathFromId (id: string): string { + const fsPath = normalizePath( + id.startsWith(FS_PREFIX) ? id.slice(FS_PREFIX.length) : id + ) + return fsPath[0] === '/' || fsPath.match(VOLUME_RE) ? fsPath : `/${fsPath}` +} + +function fsPathFromUrl (url: string): string { + return fsPathFromId(cleanUrl(url)) +} + +function cleanUrl (url: string): string { + return url.replace(postfixRE, '') +} + +function isFileServingAllowed ( + url: string, + server: ViteDevServer +): boolean { + if (!server.config.server.fs.strict) { return true } + + const file = fsPathFromUrl(url) + + // @ts-expect-error private API + if (server._fsDenyGlob(file)) { return false } + + if (server.moduleGraph.safeModulesPath.has(file)) { return true } + + if (server.config.server.fs.allow.some(dir => isParentDirectory(dir, file))) { return true } + + return false +} + +function isParentDirectory (dir: string, file: string): boolean { + if (dir[dir.length - 1] !== '/') { + dir = `${dir}/` + } + return ( + file.startsWith(dir) || + (file.toLowerCase().startsWith(dir.toLowerCase())) + ) +} From 559013483f1a5f587f7d8320bc7c9b30a451421c Mon Sep 17 00:00:00 2001 From: BD103 <59022059+BD103@users.noreply.github.com> Date: Tue, 18 Apr 2023 09:39:34 -0400 Subject: [PATCH 055/912] docs: fix vue-tsc link (#20350) --- docs/3.api/5.commands/typecheck.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/3.api/5.commands/typecheck.md b/docs/3.api/5.commands/typecheck.md index 7f3c6cd7a7..234ab51021 100644 --- a/docs/3.api/5.commands/typecheck.md +++ b/docs/3.api/5.commands/typecheck.md @@ -9,7 +9,7 @@ description: The typecheck command runs vue-tsc to check types throughout your a npx nuxi typecheck [--log-level] [rootDir] ``` -The `typecheck` command runs [`vue-tsc`](https://github.com/johnsoncodehk/volar/tree/master/vue-language-tools/vue-tsc) to check types throughout your app. +The `typecheck` command runs [`vue-tsc`](https://github.com/vuejs/language-tools/tree/master/packages/vue-tsc) to check types throughout your app. Option | Default | Description -------------------------|-----------------|------------------ From fe441a13649782db88e4f24fe6346560d34a652d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 18 Apr 2023 16:52:31 +0100 Subject: [PATCH 056/912] chore(deps): update all non-major dependencies (main) (#20364) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- package.json | 2 +- packages/kit/package.json | 4 ++-- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 4 ++-- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- pnpm-lock.yaml | 38 ++++++++++++++++---------------- test/bundle.test.ts | 2 +- 9 files changed, 29 insertions(+), 29 deletions(-) diff --git a/package.json b/package.json index b4e8ab139b..523eb21628 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "typescript": "^5.0.4", "ufo": "^1.1.1", "unbuild": "^1.2.1", - "vite": "^4.2.1", + "vite": "^4.2.2", "vitest": "^0.30.1", "vue-tsc": "^1.2.0" }, diff --git a/packages/kit/package.json b/packages/kit/package.json index 5f3fd255ee..647cc1b6a9 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -22,7 +22,7 @@ "dependencies": { "@nuxt/schema": "workspace:../schema", "c12": "^1.3.0", - "consola": "^3.0.2", + "consola": "^3.1.0", "defu": "^6.1.2", "globby": "^13.1.4", "hash-sum": "^2.0.0", @@ -35,7 +35,7 @@ "pkg-types": "^1.0.2", "scule": "^1.0.0", "semver": "^7.5.0", - "unctx": "^2.2.0", + "unctx": "^2.3.0", "unimport": "^3.0.6", "untyped": "^1.3.2" }, diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index cc36bfebfa..b5d8175303 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -29,7 +29,7 @@ "clear": "^0.1.0", "clipboardy": "^3.0.0", "colorette": "^2.0.20", - "consola": "^3.0.2", + "consola": "^3.1.0", "deep-object-diff": "^1.1.9", "destr": "^1.2.2", "execa": "^7.1.1", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 416155b158..45c13547d1 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -94,7 +94,7 @@ "scule": "^1.0.0", "strip-literal": "^1.0.1", "ufo": "^1.1.1", - "unctx": "^2.2.0", + "unctx": "^2.3.0", "unenv": "^1.4.1", "unimport": "^3.0.6", "unplugin": "^1.3.1", diff --git a/packages/schema/package.json b/packages/schema/package.json index b20cb99c62..d457840fbc 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -28,8 +28,8 @@ "@vitejs/plugin-vue-jsx": "^3.0.1", "nitropack": "^2.3.3", "unbuild": "latest", - "unctx": "^2.2.0", - "vite": "~4.2.1" + "unctx": "^2.3.0", + "vite": "~4.2.2" }, "dependencies": { "c12": "^1.3.0", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 72b947e8d4..b3858e5db7 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -24,7 +24,7 @@ "dependencies": { "@nuxt/kit": "workspace:../kit", "@nuxt/schema": "workspace:../schema", - "consola": "^3.0.2", + "consola": "^3.1.0", "defu": "^6.1.2", "execa": "^7.1.1", "get-port-please": "^3.0.1", diff --git a/packages/vite/package.json b/packages/vite/package.json index 13111c4ec3..0bdcfb3f02 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -54,7 +54,7 @@ "strip-literal": "^1.0.1", "ufo": "^1.1.1", "unplugin": "^1.3.1", - "vite": "~4.2.1", + "vite": "~4.2.2", "vite-node": "^0.30.1", "vite-plugin-checker": "^0.5.6", "vue-bundle-renderer": "^1.0.3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7fd6b7d6be..f924e9dd4e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -367,8 +367,8 @@ importers: specifier: ^1.3.0 version: 1.3.0 consola: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^3.1.0 + version: 3.1.0 defu: specifier: ^6.1.2 version: 6.1.2 @@ -406,8 +406,8 @@ importers: specifier: ^7.5.0 version: 7.5.0 unctx: - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^2.3.0 + version: 2.3.0 unimport: specifier: ^3.0.6 version: 3.0.6(rollup@3.20.2) @@ -465,8 +465,8 @@ importers: specifier: ^2.0.20 version: 2.0.20 consola: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^3.1.0 + version: 3.1.0 deep-object-diff: specifier: ^1.1.9 version: 1.1.9 @@ -636,8 +636,8 @@ importers: specifier: ^1.1.1 version: 1.1.1 unctx: - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^2.3.0 + version: 2.3.0 unenv: specifier: ^1.4.1 version: 1.4.1 @@ -740,8 +740,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 unctx: - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^2.3.0 + version: 2.3.0 vite: specifier: ^4.2.1 version: 4.2.1(@types/node@18.15.11) @@ -755,8 +755,8 @@ importers: specifier: workspace:* version: link:../schema consola: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^3.1.0 + version: 3.1.0 defu: specifier: ^6.1.2 version: 6.1.2 @@ -1791,7 +1791,7 @@ packages: '@nuxt/kit': link:packages/kit chalk: 5.2.0 ci-info: 3.8.0 - consola: 3.0.2 + consola: 3.1.0 create-require: 1.1.1 defu: 6.1.2 destr: 1.2.2 @@ -3601,7 +3601,7 @@ packages: dependencies: c12: 1.3.0 colorette: 2.0.20 - consola: 3.0.2 + consola: 3.1.0 convert-gitmoji: 0.1.3 execa: 7.1.1 mri: 1.2.0 @@ -3815,8 +3815,8 @@ packages: /consola@2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - /consola@3.0.2: - resolution: {integrity: sha512-o/Wau2FmZKiQgyp3c3IULgN6J5yc0lwYMnoyiZdEpdGxKGBtt2ACbkulBZ6BUsHy1HlSJqoP4YOyPIJLgRJyKQ==} + /consola@3.1.0: + resolution: {integrity: sha512-rrrJE6rP0qzl/Srg+C9x/AE5Kxfux7reVm1Wh0wCjuXvih6DqZgqDZe8auTD28fzJ9TF0mHlSDrPpWlujQRo1Q==} /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} @@ -6750,7 +6750,7 @@ packages: c12: 1.3.0 chalk: 5.2.0 chokidar: 3.5.3 - consola: 3.0.2 + consola: 3.1.0 cookie-es: 0.5.0 defu: 6.1.2 destr: 1.2.2 @@ -8726,8 +8726,8 @@ packages: /uncrypto@0.1.2: resolution: {integrity: sha512-kuZwRKV615lEw/Xx3Iz56FKk3nOeOVGaVmw0eg+x4Mne28lCotNFbBhDW7dEBCBKyKbRQiCadEZeNAFPVC5cgw==} - /unctx@2.2.0: - resolution: {integrity: sha512-th8S0zg9m35lirV7FYI6AYMKHfmLoEGC87yjuS4MGLS/OZ3Pv1Qx+HyXtnlwteL2YL47xN1ADDKoFWYw3VZoEA==} + /unctx@2.3.0: + resolution: {integrity: sha512-xs79V1T5JEQ/5aQ3j4ipbQEaReMosMz/ktOdsZMEtKv1PfbdRrKY/PaU0CxdspkX3zEink2keQU4nRzAXgui1A==} dependencies: acorn: 8.8.2 estree-walker: 3.0.3 diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 8ff9925618..af73d20ed6 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -51,7 +51,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"92.4k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2650k"') + expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2651k"') const packages = modules.files .filter(m => m.endsWith('package.json')) From 4ab4ac13df0834b89de4c9bb064353e47690ddef Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Apr 2023 10:18:02 +0100 Subject: [PATCH 057/912] fix(nuxt): swap preloads for json/js payloads (#20375) --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index f4982074fd..7ea3a73fd2 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -287,8 +287,8 @@ export default defineRenderHandler(async (event) => { head: normalizeChunks([ renderedMeta.headTags, process.env.NUXT_JSON_PAYLOADS - ? _PAYLOAD_EXTRACTION ? `` : null - : _PAYLOAD_EXTRACTION ? `` : null, + ? _PAYLOAD_EXTRACTION ? `` : null + : _PAYLOAD_EXTRACTION ? `` : null, NO_SCRIPTS ? null : _rendered.renderResourceHints(), _rendered.renderStyles(), inlinedStyles, From 574a5616b43d0caeddd97ddea3abf7703efec295 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Apr 2023 16:45:13 +0100 Subject: [PATCH 058/912] perf: remove unused deps and add implicit deps (#20356) --- package.json | 14 +- packages/kit/package.json | 7 +- packages/nuxi/package.json | 3 + packages/nuxt/build.config.ts | 1 - packages/nuxt/package.json | 14 +- packages/schema/package.json | 14 +- packages/test-utils/package.json | 1 - packages/test-utils/src/setup/jest.ts | 2 +- packages/vite/package.json | 2 +- packages/vite/src/utils/logger.ts | 2 +- packages/webpack/build.config.ts | 4 +- packages/webpack/package.json | 3 +- pnpm-lock.yaml | 240 +++++++++--------- .../basic/extends/bar/app/router.options.ts | 4 +- test/fixtures/basic/nuxt.config.ts | 4 +- test/fixtures/basic/package.json | 8 + test/fixtures/basic/types.ts | 5 +- 17 files changed, 163 insertions(+), 165 deletions(-) diff --git a/package.json b/package.json index 523eb21628..f2821a0f0d 100644 --- a/package.json +++ b/package.json @@ -44,31 +44,31 @@ }, "devDependencies": { "@actions/core": "^1.10.0", - "@nuxt/kit": "workspace:*", - "@nuxt/schema": "workspace:*", "@nuxt/test-utils": "workspace:*", - "@nuxt/vite-builder": "workspace:*", "@nuxt/webpack-builder": "workspace:*", "@nuxtjs/eslint-config-typescript": "^12.0.0", "@types/crawler": "^1.2.2", "@types/node": "^18.15.11", - "@types/rimraf": "^3.0.2", "@types/semver": "^7.3.13", - "@unocss/reset": "^0.51.4", "case-police": "^0.5.14", "changelogen": "^0.5.3", "crawler": "^1.4.0", + "devalue": "^4.3.0", "eslint": "^8.38.0", + "eslint-import-resolver-typescript": "^3.5.5", + "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsdoc": "^41.1.2", "execa": "^7.1.1", - "expect-type": "^0.15.0", + "fs-extra": "^11.1.1", "globby": "^13.1.4", + "h3": "^1.6.4", "jiti": "^1.18.2", "markdownlint-cli": "^0.33.0", "nuxi": "workspace:*", "nuxt": "workspace:*", "ofetch": "^1.0.1", "pathe": "^1.1.0", + "playwright": "^1.32.3", "rimraf": "^5.0.0", "semver": "^7.5.0", "std-env": "^3.3.2", @@ -77,6 +77,8 @@ "unbuild": "^1.2.1", "vite": "^4.2.2", "vitest": "^0.30.1", + "vue": "3.2.47", + "vue-eslint-parser": "^9.1.1", "vue-tsc": "^1.2.0" }, "packageManager": "pnpm@8.3.0", diff --git a/packages/kit/package.json b/packages/kit/package.json index 647cc1b6a9..0fe02c9d33 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -40,9 +40,14 @@ "untyped": "^1.3.2" }, "devDependencies": { + "@types/hash-sum": "^1.0.0", "@types/lodash.template": "^4.5.1", "@types/semver": "^7.3.13", - "unbuild": "latest" + "nitropack": "^2.3.3", + "unbuild": "latest", + "vite": "^4.2.1", + "vitest": "^0.30.1", + "webpack": "^5.79.0" }, "engines": { "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index b5d8175303..bd2e0a78db 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -31,6 +31,7 @@ "colorette": "^2.0.20", "consola": "^3.1.0", "deep-object-diff": "^1.1.9", + "defu": "^6.1.2", "destr": "^1.2.2", "execa": "^7.1.1", "flat": "^5.0.2", @@ -40,11 +41,13 @@ "listhen": "^1.0.4", "mlly": "^1.2.0", "mri": "^1.2.0", + "ohash": "^1.0.0", "pathe": "^1.1.0", "perfect-debounce": "^0.1.3", "pkg-types": "^1.0.2", "scule": "^1.0.0", "semver": "^7.5.0", + "ufo": "^1.1.1", "unbuild": "latest" }, "optionalDependencies": { diff --git a/packages/nuxt/build.config.ts b/packages/nuxt/build.config.ts index 40bdd582a0..dfaf1d97a0 100644 --- a/packages/nuxt/build.config.ts +++ b/packages/nuxt/build.config.ts @@ -29,7 +29,6 @@ export default defineBuildConfig({ externals: [ 'nuxt', 'nuxt/schema', - '@vue/reactivity', '@vue/shared', '@unhead/vue' ] diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 45c13547d1..d9d2b8145b 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -37,10 +37,6 @@ "#app": { "types": "./dist/app/index.d.ts", "import": "./dist/app/index.js" - }, - "#pages": { - "types": "./dist/pages/runtime/index.d.ts", - "import": "./dist/pages/runtime/index.js" } }, "files": [ @@ -64,7 +60,6 @@ "@nuxt/vite-builder": "workspace:../vite", "@unhead/ssr": "^1.1.26", "@unhead/vue": "^1.1.26", - "@vue/reactivity": "^3.2.47", "@vue/shared": "^3.2.47", "chokidar": "^3.5.3", "cookie-es": "^0.5.0", @@ -76,7 +71,6 @@ "fs-extra": "^11.1.1", "globby": "^13.1.4", "h3": "^1.6.4", - "hash-sum": "^2.0.0", "hookable": "^5.5.3", "jiti": "^1.18.2", "knitwork": "^1.0.0", @@ -105,10 +99,14 @@ "vue-router": "^4.1.6" }, "devDependencies": { + "@types/estree": "^1.0.0", "@types/fs-extra": "^11.0.1", - "@types/hash-sum": "^1.0.0", "@types/prompts": "^2.4.4", - "unbuild": "latest" + "@vitejs/plugin-vue": "^4.1.0", + "acorn": "^8.8.2", + "unbuild": "latest", + "vite": "^4.2.1", + "vitest": "^0.30.1" }, "peerDependencies": { "@types/node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" diff --git a/packages/schema/package.json b/packages/schema/package.json index d457840fbc..2be2511b1b 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -21,26 +21,26 @@ "prepack": "unbuild" }, "devDependencies": { - "@types/lodash.template": "^4.5.1", - "@types/semver": "^7.3.13", "@unhead/schema": "^1.1.26", "@vitejs/plugin-vue": "^4.1.0", "@vitejs/plugin-vue-jsx": "^3.0.1", + "h3": "^1.6.4", + "ignore": "^5.2.4", "nitropack": "^2.3.3", "unbuild": "latest", "unctx": "^2.3.0", - "vite": "~4.2.2" + "vite": "~4.2.2", + "vue": "3.2.47", + "vue-bundle-renderer": "^1.0.3", + "vue-router": "^4.1.6", + "webpack": "^5.79.0" }, "dependencies": { - "c12": "^1.3.0", - "create-require": "^1.1.1", "defu": "^6.1.2", "hookable": "^5.5.3", - "jiti": "^1.18.2", "pathe": "^1.1.0", "pkg-types": "^1.0.2", "postcss-import-resolver": "^2.0.0", - "scule": "^1.0.0", "std-env": "^3.3.2", "ufo": "^1.1.1", "unimport": "^3.0.6", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index b3858e5db7..0627d8a8fc 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -28,7 +28,6 @@ "defu": "^6.1.2", "execa": "^7.1.1", "get-port-please": "^3.0.1", - "jiti": "^1.18.2", "ofetch": "^1.0.1", "pathe": "^1.1.0", "ufo": "^1.1.1" diff --git a/packages/test-utils/src/setup/jest.ts b/packages/test-utils/src/setup/jest.ts index 3402e80d1b..32870b7635 100644 --- a/packages/test-utils/src/setup/jest.ts +++ b/packages/test-utils/src/setup/jest.ts @@ -1,7 +1,7 @@ import type { TestHooks } from '../types' export default async function setupJest (hooks: TestHooks) { - // @ts-expect-error jest is not a dependency + // @ts-expect-error TODO: jest is not a dependency const jest = await import('jest') hooks.ctx.mockFn = jest.fn diff --git a/packages/vite/package.json b/packages/vite/package.json index 0bdcfb3f02..21b5d624cc 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -19,6 +19,7 @@ }, "devDependencies": { "@nuxt/schema": "workspace:../schema", + "@types/estree": "^1.0.0", "unbuild": "latest", "vue": "3.2.47" }, @@ -28,7 +29,6 @@ "@vitejs/plugin-vue": "^4.1.0", "@vitejs/plugin-vue-jsx": "^3.0.1", "autoprefixer": "^10.4.14", - "chokidar": "^3.5.3", "clear": "^0.1.0", "cssnano": "^6.0.0", "defu": "^6.1.2", diff --git a/packages/vite/src/utils/logger.ts b/packages/vite/src/utils/logger.ts index 7b25658b2a..600e4ce163 100644 --- a/packages/vite/src/utils/logger.ts +++ b/packages/vite/src/utils/logger.ts @@ -2,7 +2,7 @@ import type * as vite from 'vite' import { logger } from '@nuxt/kit' import { hasTTY, isCI } from 'std-env' import clear from 'clear' -import type { NuxtOptions } from 'nuxt/schema' +import type { NuxtOptions } from '@nuxt/schema' let duplicateCount = 0 let lastType: vite.LogType | null = null diff --git a/packages/webpack/build.config.ts b/packages/webpack/build.config.ts index c6e6021e26..4068746abe 100644 --- a/packages/webpack/build.config.ts +++ b/packages/webpack/build.config.ts @@ -14,12 +14,10 @@ export default defineBuildConfig({ 'vue-loader', 'css-loader', 'file-loader', - 'style-resources-loader', 'url-loader', 'vue' ], externals: [ - '@nuxt/schema', - 'h3' + '@nuxt/schema' ] }) diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 852a094ca6..d2aa37cdea 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -19,7 +19,6 @@ "prepack": "unbuild" }, "dependencies": { - "@babel/core": "^7.21.4", "@nuxt/friendly-errors-webpack-plugin": "^2.5.2", "@nuxt/kit": "workspace:../kit", "autoprefixer": "^10.4.14", @@ -32,6 +31,7 @@ "file-loader": "^6.2.0", "fork-ts-checker-webpack-plugin": "^8.0.0", "fs-extra": "^11.1.1", + "h3": "^1.6.4", "hash-sum": "^2.0.0", "lodash-es": "^4.17.21", "magic-string": "^0.30.0", @@ -45,7 +45,6 @@ "postcss-import": "^15.1.0", "postcss-loader": "^7.2.4", "postcss-url": "^10.1.3", - "style-resources-loader": "^1.5.0", "time-fix-plugin": "^2.0.7", "ufo": "^1.1.1", "unplugin": "^1.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f924e9dd4e..1ad24773d0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,18 +21,9 @@ importers: '@actions/core': specifier: ^1.10.0 version: 1.10.0 - '@nuxt/kit': - specifier: workspace:* - version: link:packages/kit - '@nuxt/schema': - specifier: workspace:* - version: link:packages/schema '@nuxt/test-utils': specifier: workspace:* version: link:packages/test-utils - '@nuxt/vite-builder': - specifier: workspace:* - version: link:packages/vite '@nuxt/webpack-builder': specifier: workspace:* version: link:packages/webpack @@ -45,15 +36,9 @@ importers: '@types/node': specifier: ^18.15.11 version: 18.15.11 - '@types/rimraf': - specifier: ^3.0.2 - version: 3.0.2 '@types/semver': specifier: ^7.3.13 version: 7.3.13 - '@unocss/reset': - specifier: ^0.51.4 - version: 0.51.4 case-police: specifier: ^0.5.14 version: 0.5.14 @@ -63,21 +48,33 @@ importers: crawler: specifier: ^1.4.0 version: 1.4.0 + devalue: + specifier: ^4.3.0 + version: 4.3.0 eslint: specifier: ^8.38.0 version: 8.38.0 + eslint-import-resolver-typescript: + specifier: ^3.5.5 + version: 3.5.5(@typescript-eslint/parser@5.54.1)(eslint-plugin-import@2.27.5)(eslint@8.38.0) + eslint-plugin-import: + specifier: ^2.27.5 + version: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) eslint-plugin-jsdoc: specifier: ^41.1.2 version: 41.1.2(eslint@8.38.0) execa: specifier: ^7.1.1 version: 7.1.1 - expect-type: - specifier: ^0.15.0 - version: 0.15.0 + fs-extra: + specifier: ^11.1.1 + version: 11.1.1 globby: specifier: ^13.1.4 version: 13.1.4 + h3: + specifier: ^1.6.4 + version: 1.6.4 jiti: specifier: ^1.18.2 version: 1.18.2 @@ -96,6 +93,9 @@ importers: pathe: specifier: ^1.1.0 version: 1.1.0 + playwright: + specifier: ^1.32.3 + version: 1.32.3 rimraf: specifier: ^5.0.0 version: 5.0.0 @@ -120,6 +120,12 @@ importers: vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) + vue: + specifier: 3.2.47 + version: 3.2.47 + vue-eslint-parser: + specifier: ^9.1.1 + version: 9.1.1(eslint@8.38.0) vue-tsc: specifier: ^1.2.0 version: 1.2.0(typescript@5.0.4) @@ -415,15 +421,30 @@ importers: specifier: ^1.3.2 version: 1.3.2 devDependencies: + '@types/hash-sum': + specifier: ^1.0.0 + version: 1.0.0 '@types/lodash.template': specifier: ^4.5.1 version: 4.5.1 '@types/semver': specifier: ^7.3.13 version: 7.3.13 + nitropack: + specifier: ^2.3.3 + version: 2.3.3 unbuild: specifier: ^1.2.0 version: 1.2.0 + vite: + specifier: ^4.2.1 + version: 4.2.1(@types/node@18.15.11) + vitest: + specifier: ^0.30.1 + version: 0.30.1(playwright@1.32.3) + webpack: + specifier: ^5.79.0 + version: 5.79.0 packages/nuxi: optionalDependencies: @@ -470,6 +491,9 @@ importers: deep-object-diff: specifier: ^1.1.9 version: 1.1.9 + defu: + specifier: ^6.1.2 + version: 6.1.2 destr: specifier: ^1.2.2 version: 1.2.2 @@ -497,6 +521,9 @@ importers: mri: specifier: ^1.2.0 version: 1.2.0 + ohash: + specifier: ^1.0.0 + version: 1.0.0 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -512,6 +539,9 @@ importers: semver: specifier: ^7.5.0 version: 7.5.0 + ufo: + specifier: ^1.1.1 + version: 1.1.1 unbuild: specifier: ^1.2.0 version: 1.2.0 @@ -545,9 +575,6 @@ importers: '@unhead/vue': specifier: ^1.1.26 version: 1.1.26(vue@3.2.47) - '@vue/reactivity': - specifier: ^3.2.47 - version: 3.2.47 '@vue/shared': specifier: ^3.2.47 version: 3.2.47 @@ -581,9 +608,6 @@ importers: h3: specifier: ^1.6.4 version: 1.6.4 - hash-sum: - specifier: ^2.0.0 - version: 2.0.0 hookable: specifier: ^5.5.3 version: 5.5.3 @@ -663,36 +687,39 @@ importers: specifier: ^4.1.6 version: 4.1.6(vue@3.2.47) devDependencies: + '@types/estree': + specifier: ^1.0.0 + version: 1.0.0 '@types/fs-extra': specifier: ^11.0.1 version: 11.0.1 - '@types/hash-sum': - specifier: ^1.0.0 - version: 1.0.0 '@types/prompts': specifier: ^2.4.4 version: 2.4.4 + '@vitejs/plugin-vue': + specifier: ^4.1.0 + version: 4.1.0(vite@4.2.1)(vue@3.2.47) + acorn: + specifier: ^8.8.2 + version: 8.8.2 unbuild: specifier: ^1.2.0 version: 1.2.0 + vite: + specifier: ^4.2.1 + version: 4.2.1(@types/node@18.15.11) + vitest: + specifier: ^0.30.1 + version: 0.30.1(playwright@1.32.3) packages/schema: dependencies: - c12: - specifier: ^1.3.0 - version: 1.3.0 - create-require: - specifier: ^1.1.1 - version: 1.1.1 defu: specifier: ^6.1.2 version: 6.1.2 hookable: specifier: ^5.5.3 version: 5.5.3 - jiti: - specifier: ^1.18.2 - version: 1.18.2 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -702,9 +729,6 @@ importers: postcss-import-resolver: specifier: ^2.0.0 version: 2.0.0 - scule: - specifier: ^1.0.0 - version: 1.0.0 std-env: specifier: ^3.3.2 version: 3.3.2 @@ -718,12 +742,6 @@ importers: specifier: ^1.3.2 version: 1.3.2 devDependencies: - '@types/lodash.template': - specifier: ^4.5.1 - version: 4.5.1 - '@types/semver': - specifier: ^7.3.13 - version: 7.3.13 '@unhead/schema': specifier: ^1.1.26 version: 1.1.26 @@ -733,6 +751,12 @@ importers: '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 version: 3.0.1(vite@4.2.1)(vue@3.2.47) + h3: + specifier: ^1.6.4 + version: 1.6.4 + ignore: + specifier: ^5.2.4 + version: 5.2.4 nitropack: specifier: ^2.3.3 version: 2.3.3 @@ -745,6 +769,18 @@ importers: vite: specifier: ^4.2.1 version: 4.2.1(@types/node@18.15.11) + vue: + specifier: 3.2.47 + version: 3.2.47 + vue-bundle-renderer: + specifier: ^1.0.3 + version: 1.0.3 + vue-router: + specifier: ^4.1.6 + version: 4.1.6(vue@3.2.47) + webpack: + specifier: ^5.79.0 + version: 5.79.0 packages/test-utils: dependencies: @@ -766,9 +802,6 @@ importers: get-port-please: specifier: ^3.0.1 version: 3.0.1 - jiti: - specifier: ^1.18.2 - version: 1.18.2 ofetch: specifier: ^1.0.1 version: 1.0.1 @@ -809,9 +842,6 @@ importers: autoprefixer: specifier: ^10.4.14 version: 10.4.14(postcss@8.4.22) - chokidar: - specifier: ^3.5.3 - version: 3.5.3 clear: specifier: ^0.1.0 version: 0.1.0 @@ -903,6 +933,9 @@ importers: '@nuxt/schema': specifier: workspace:* version: link:../schema + '@types/estree': + specifier: ^1.0.0 + version: 1.0.0 unbuild: specifier: ^1.2.0 version: 1.2.0 @@ -912,9 +945,6 @@ importers: packages/webpack: dependencies: - '@babel/core': - specifier: ^7.21.4 - version: 7.21.4 '@nuxt/friendly-errors-webpack-plugin': specifier: ^2.5.2 version: 2.5.2(webpack@5.79.0) @@ -951,6 +981,9 @@ importers: fs-extra: specifier: ^11.1.1 version: 11.1.1 + h3: + specifier: ^1.6.4 + version: 1.6.4 hash-sum: specifier: ^2.0.0 version: 2.0.0 @@ -990,9 +1023,6 @@ importers: postcss-url: specifier: ^10.1.3 version: 10.1.3(postcss@8.4.22) - style-resources-loader: - specifier: ^1.5.0 - version: 1.5.0(webpack@5.79.0) time-fix-plugin: specifier: ^2.0.7 version: 2.0.7(webpack@5.79.0) @@ -1866,27 +1896,28 @@ packages: peerDependencies: eslint: ^8.23.0 dependencies: - '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.3)(eslint@8.38.0) + '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) '@typescript-eslint/eslint-plugin': 5.54.1(@typescript-eslint/parser@5.54.1)(eslint@8.38.0)(typescript@5.0.4) '@typescript-eslint/parser': 5.54.1(eslint@8.38.0)(typescript@5.0.4) eslint: 8.38.0 - eslint-import-resolver-typescript: 3.5.3(eslint-plugin-import@2.27.5)(eslint@8.38.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.3)(eslint@8.38.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.54.1)(eslint-plugin-import@2.27.5)(eslint@8.38.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) eslint-plugin-vue: 9.9.0(eslint@8.38.0) transitivePeerDependencies: + - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - typescript dev: true - /@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.3)(eslint@8.38.0): + /@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0): resolution: {integrity: sha512-ewenelo75x0eYEUK+9EBXjc/OopQCvdkmYmlZuoHq5kub/vtiRpyZ/autppwokpHUq8tiVyl2ejMakoiHiDTrg==} peerDependencies: eslint: ^8.23.0 dependencies: eslint: 8.38.0 eslint-config-standard: 17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.38.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.3)(eslint@8.38.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) eslint-plugin-n: 15.6.1(eslint@8.38.0) eslint-plugin-node: 11.1.0(eslint@8.38.0) eslint-plugin-promise: 6.1.1(eslint@8.38.0) @@ -2142,13 +2173,6 @@ packages: '@types/node': 18.15.11 dev: true - /@types/glob@8.1.0: - resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 18.15.11 - dev: true - /@types/hash-sum@1.0.0: resolution: {integrity: sha512-FdLBT93h3kcZ586Aee66HPCVJ6qvxVjBlDWNmxSGSbCZe9hTsjRKdSsl4y1T+3zfujxo9auykQMnFsfyHWD7wg==} dev: true @@ -2198,10 +2222,6 @@ packages: resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==} dev: true - /@types/minimatch@5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - dev: true - /@types/mri@1.1.1: resolution: {integrity: sha512-nJOuiTlsvmClSr3+a/trTSx4DTuY/VURsWGKSf/eeavh0LRMqdsK60ti0TlwM5iHiGOK3/Ibkxsbr7i9rzGreA==} dev: true @@ -2231,13 +2251,6 @@ packages: /@types/resolve@1.20.2: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - /@types/rimraf@3.0.2: - resolution: {integrity: sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==} - dependencies: - '@types/glob': 8.1.0 - '@types/node': 18.15.11 - dev: true - /@types/semver@7.3.13: resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} dev: true @@ -2624,10 +2637,6 @@ packages: resolution: {integrity: sha512-m6+M3E2cTPhX+2aKocRfDqQt7ebEtjJHH8sVYpX8xJoN0vOqjSNmUYc6AIkwUYljx4QbEC3thcQSbqel82RbXQ==} dev: true - /@unocss/reset@0.51.4: - resolution: {integrity: sha512-3FnajZSOrQ4qSbpkY1IGRIFYw8I9E98SBXvjMnHqSl8k4YPbBP29W3YrgSVBMOnPNRL67hRcTaMF3nmbnBuWtQ==} - dev: true - /@unocss/scope@0.45.30: resolution: {integrity: sha512-SBxjMNLGHiZA32hGTGZL1wpPfzegCd3WB8LdrZwAgo85EbMYCq8UEL6YhScjL3+FIwhcZQutenasLoRNcbFHqw==} dev: true @@ -2865,7 +2874,6 @@ packages: /@vue/devtools-api@6.5.0: resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} - dev: false /@vue/reactivity-transform@3.2.47: resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} @@ -4240,7 +4248,6 @@ packages: /devalue@4.3.0: resolution: {integrity: sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==} - dev: false /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} @@ -4769,7 +4776,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.38.0 - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.3)(eslint@8.38.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) eslint-plugin-n: 15.6.1(eslint@8.38.0) eslint-plugin-promise: 6.1.1(eslint@8.38.0) dev: true @@ -4784,8 +4791,8 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.3(eslint-plugin-import@2.27.5)(eslint@8.38.0): - resolution: {integrity: sha512-njRcKYBc3isE42LaTcJNVANR3R99H9bAxBDMNDr2W7yq5gYPxbU3MkdhsQukxZ/Xg9C2vcyLlDsbKfRDg0QvCQ==} + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.54.1)(eslint-plugin-import@2.27.5)(eslint@8.38.0): + resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -4794,17 +4801,21 @@ packages: debug: 4.3.4 enhanced-resolve: 5.12.0 eslint: 8.38.0 - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.3)(eslint@8.38.0) - get-tsconfig: 4.4.0 + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) + get-tsconfig: 4.5.0 globby: 13.1.4 is-core-module: 2.11.0 is-glob: 4.0.3 synckit: 0.8.5 transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack - supports-color dev: true - /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.3)(eslint@8.38.0): + /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0): resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -4829,7 +4840,7 @@ packages: debug: 3.2.7 eslint: 8.38.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.3(eslint-plugin-import@2.27.5)(eslint@8.38.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.54.1)(eslint-plugin-import@2.27.5)(eslint@8.38.0) transitivePeerDependencies: - supports-color dev: true @@ -4856,7 +4867,7 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.3)(eslint@8.38.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -4874,7 +4885,7 @@ packages: doctrine: 2.1.0 eslint: 8.38.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.3)(eslint@8.38.0) + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -4984,7 +4995,7 @@ packages: nth-check: 2.1.1 postcss-selector-parser: 6.0.11 semver: 7.5.0 - vue-eslint-parser: 9.1.0(eslint@8.38.0) + vue-eslint-parser: 9.1.1(eslint@8.38.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -5162,10 +5173,6 @@ packages: signal-exit: 3.0.7 strip-final-newline: 3.0.0 - /expect-type@0.15.0: - resolution: {integrity: sha512-yWnriYB4e8G54M5/fAFj7rCIBiKs1HAACaY13kCz6Ku0dezjS9aMcfcdVK2X8Tv2tEV1BPz/wKfQ7WA4S/d8aA==} - dev: true - /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true @@ -5477,6 +5484,11 @@ packages: /get-tsconfig@4.4.0: resolution: {integrity: sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==} + dev: false + + /get-tsconfig@4.5.0: + resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==} + dev: true /getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} @@ -7965,15 +7977,6 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /schema-utils@2.7.1: - resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} - engines: {node: '>= 8.9.0'} - dependencies: - '@types/json-schema': 7.0.11 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) - dev: false - /schema-utils@3.1.1: resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==} engines: {node: '>= 10.13.0'} @@ -8300,19 +8303,6 @@ packages: dependencies: acorn: 8.8.2 - /style-resources-loader@1.5.0(webpack@5.79.0): - resolution: {integrity: sha512-fIfyvQ+uvXaCBGGAgfh+9v46ARQB1AWdaop2RpQw0PBVuROsTBqGvx8dj0kxwjGOAyq3vepe4AOK3M6+Q/q2jw==} - engines: {node: '>=8.9'} - peerDependencies: - webpack: ^3.0.0 || ^4.0.0 || ^5.0.0 - dependencies: - glob: 7.2.3 - loader-utils: 2.0.4 - schema-utils: 2.7.1 - tslib: 2.5.0 - webpack: 5.79.0 - dev: false - /stylehacks@6.0.0(postcss@8.4.22): resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} engines: {node: ^14 || ^16 || >=18.0} @@ -9205,7 +9195,6 @@ packages: resolution: {integrity: sha512-EfjX+5TTUl70bki9hPuVp+54JiZOvFIfoWBcfXsSwLzKEiDYyHNi5iX8srnqLIv3YRnvxgbntdcG1WPq0MvffQ==} dependencies: ufo: 1.1.1 - dev: false /vue-demi@0.13.11(vue@3.2.47): resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} @@ -9226,8 +9215,8 @@ packages: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} dev: false - /vue-eslint-parser@9.1.0(eslint@8.38.0): - resolution: {integrity: sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==} + /vue-eslint-parser@9.1.1(eslint@8.38.0): + resolution: {integrity: sha512-C2aI/r85Q6tYcz4dpgvrs4wH/MqVrRAVIdpYedrxnATDHHkb+TroeRcDpKWGZCx/OcECMWfz7tVwQ8e+Opy6rA==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' @@ -9270,7 +9259,6 @@ packages: dependencies: '@vue/devtools-api': 6.5.0 vue: 3.2.47 - dev: false /vue-template-compiler@2.7.14: resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} diff --git a/test/fixtures/basic/extends/bar/app/router.options.ts b/test/fixtures/basic/extends/bar/app/router.options.ts index ea8b48b182..51deb4e6e1 100644 --- a/test/fixtures/basic/extends/bar/app/router.options.ts +++ b/test/fixtures/basic/extends/bar/app/router.options.ts @@ -1,5 +1,5 @@ -import type { RouterOptions } from '@nuxt/schema' +import type { RouterOptions } from 'nuxt/schema' -export default { +export default { linkExactActiveClass: 'bar-exact-active-class' } diff --git a/test/fixtures/basic/nuxt.config.ts b/test/fixtures/basic/nuxt.config.ts index 532255b0e4..6d2ab1d996 100644 --- a/test/fixtures/basic/nuxt.config.ts +++ b/test/fixtures/basic/nuxt.config.ts @@ -1,5 +1,5 @@ -import { addComponent, addVitePlugin, addWebpackPlugin } from '@nuxt/kit' -import type { NuxtPage } from '@nuxt/schema' +import { addComponent, addVitePlugin, addWebpackPlugin } from 'nuxt/kit' +import type { NuxtPage } from 'nuxt/schema' import { createUnplugin } from 'unplugin' import { withoutLeadingSlash } from 'ufo' diff --git a/test/fixtures/basic/package.json b/test/fixtures/basic/package.json index d4090519f1..353cf32447 100644 --- a/test/fixtures/basic/package.json +++ b/test/fixtures/basic/package.json @@ -5,6 +5,14 @@ "build": "nuxi build" }, "dependencies": { + "@nuxt/webpack-builder": "workspace:*", "nuxt": "workspace:*" + }, + "devDependencies": { + "ofetch": "^1.0.1", + "ufo": "^1.1.1", + "unplugin": "^1.3.1", + "vitest": "^0.30.1", + "vue-router": "^4.1.6" } } diff --git a/test/fixtures/basic/types.ts b/test/fixtures/basic/types.ts index b76f065b0d..15985c7496 100644 --- a/test/fixtures/basic/types.ts +++ b/test/fixtures/basic/types.ts @@ -1,10 +1,9 @@ -import { expectTypeOf } from 'expect-type' -import { describe, it } from 'vitest' +import { describe, expectTypeOf, it } from 'vitest' import type { Ref } from 'vue' -import type { AppConfig, RuntimeValue } from '@nuxt/schema' import type { FetchError } from 'ofetch' import type { NavigationFailure, RouteLocationNormalizedLoaded, RouteLocationRaw, Router, useRouter as vueUseRouter } from 'vue-router' +import type { AppConfig, RuntimeValue } from 'nuxt/schema' import { defineNuxtConfig } from 'nuxt/config' import { callWithNuxt, isVue3 } from '#app' import type { NavigateToOptions } from '#app/composables/router' From 6b75cceb3d728cbfed0420a52857e5ea46508e24 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Apr 2023 17:03:51 +0100 Subject: [PATCH 059/912] chore(deps): update all non-major dependencies (main) (#20395) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- package.json | 2 +- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 6 ++-- packages/vite/package.json | 4 +-- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 53 ++++++++++++++++------------------- test/bundle.test.ts | 2 +- 8 files changed, 34 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index f2821a0f0d..ae5a5785d3 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "vue-eslint-parser": "^9.1.1", "vue-tsc": "^1.2.0" }, - "packageManager": "pnpm@8.3.0", + "packageManager": "pnpm@8.3.1", "engines": { "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } diff --git a/packages/kit/package.json b/packages/kit/package.json index 0fe02c9d33..aac2fa7519 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -45,7 +45,7 @@ "@types/semver": "^7.3.13", "nitropack": "^2.3.3", "unbuild": "latest", - "vite": "^4.2.1", + "vite": "^4.2.2", "vitest": "^0.30.1", "webpack": "^5.79.0" }, diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index bd2e0a78db..bb538c7cf7 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -41,7 +41,7 @@ "listhen": "^1.0.4", "mlly": "^1.2.0", "mri": "^1.2.0", - "ohash": "^1.0.0", + "ohash": "^1.1.0", "pathe": "^1.1.0", "perfect-debounce": "^0.1.3", "pkg-types": "^1.0.2", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index d9d2b8145b..6a2ba60e03 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -81,7 +81,7 @@ "nuxi": "workspace:../nuxi", "nypm": "^0.2.0", "ofetch": "^1.0.1", - "ohash": "^1.0.0", + "ohash": "^1.1.0", "pathe": "^1.1.0", "perfect-debounce": "^0.1.3", "prompts": "^2.4.2", @@ -99,13 +99,13 @@ "vue-router": "^4.1.6" }, "devDependencies": { - "@types/estree": "^1.0.0", + "@types/estree": "^1.0.1", "@types/fs-extra": "^11.0.1", "@types/prompts": "^2.4.4", "@vitejs/plugin-vue": "^4.1.0", "acorn": "^8.8.2", "unbuild": "latest", - "vite": "^4.2.1", + "vite": "^4.2.2", "vitest": "^0.30.1" }, "peerDependencies": { diff --git a/packages/vite/package.json b/packages/vite/package.json index 21b5d624cc..841bb89bb5 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -19,7 +19,7 @@ }, "devDependencies": { "@nuxt/schema": "workspace:../schema", - "@types/estree": "^1.0.0", + "@types/estree": "^1.0.1", "unbuild": "latest", "vue": "3.2.47" }, @@ -42,7 +42,7 @@ "knitwork": "^1.0.0", "magic-string": "^0.30.0", "mlly": "^1.2.0", - "ohash": "^1.0.0", + "ohash": "^1.1.0", "pathe": "^1.1.0", "perfect-debounce": "^0.1.3", "pkg-types": "^1.0.2", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index d2aa37cdea..df724c6a7e 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -38,7 +38,7 @@ "memfs": "^3.5.0", "mini-css-extract-plugin": "^2.7.5", "mlly": "^1.2.0", - "ohash": "^1.0.0", + "ohash": "^1.1.0", "pathe": "^1.1.0", "pify": "^6.1.0", "postcss": "^8.4.22", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1ad24773d0..aecbbe8863 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -522,8 +522,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 ohash: - specifier: ^1.0.0 - version: 1.0.0 + specifier: ^1.1.0 + version: 1.1.0 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -639,8 +639,8 @@ importers: specifier: ^1.0.1 version: 1.0.1 ohash: - specifier: ^1.0.0 - version: 1.0.0 + specifier: ^1.1.0 + version: 1.1.0 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -688,8 +688,8 @@ importers: version: 4.1.6(vue@3.2.47) devDependencies: '@types/estree': - specifier: ^1.0.0 - version: 1.0.0 + specifier: ^1.0.1 + version: 1.0.1 '@types/fs-extra': specifier: ^11.0.1 version: 11.0.1 @@ -882,8 +882,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 ohash: - specifier: ^1.0.0 - version: 1.0.0 + specifier: ^1.1.0 + version: 1.1.0 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -934,8 +934,8 @@ importers: specifier: workspace:* version: link:../schema '@types/estree': - specifier: ^1.0.0 - version: 1.0.0 + specifier: ^1.0.1 + version: 1.0.1 unbuild: specifier: ^1.2.0 version: 1.2.0 @@ -1003,8 +1003,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 ohash: - specifier: ^1.0.0 - version: 1.0.0 + specifier: ^1.1.0 + version: 1.1.0 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -2085,7 +2085,7 @@ packages: rollup: optional: true dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 rollup: 3.20.2 @@ -2151,16 +2151,16 @@ packages: resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} dependencies: '@types/eslint': 8.21.1 - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 /@types/eslint@8.21.1: resolution: {integrity: sha512-rc9K8ZpVjNcLs8Fp0dkozd5Pt2Apk1glO4Vgz8ix1u6yFByxfqo5Yavpy65o+93TAe24jr7v+eSBtFLvOQtCRQ==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 '@types/json-schema': 7.0.11 - /@types/estree@1.0.0: - resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} /@types/flat@5.0.2: resolution: {integrity: sha512-3zsplnP2djeps5P9OyarTxwRpMLoe5Ash8aL9iprw0JxB+FAHjY+ifn4yZUuW4/9hqtnmor6uvjSRzJhiVbrEQ==} @@ -4629,7 +4629,7 @@ packages: webpack: ^4.40.0 || ^5.0.0 dependencies: esbuild: 0.17.17 - get-tsconfig: 4.4.0 + get-tsconfig: 4.5.0 loader-utils: 2.0.4 webpack: 5.79.0 webpack-sources: 1.4.3 @@ -5128,7 +5128,7 @@ packages: /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} @@ -5482,13 +5482,8 @@ packages: get-intrinsic: 1.2.0 dev: true - /get-tsconfig@4.4.0: - resolution: {integrity: sha512-0Gdjo/9+FzsYhXCEFueo2aY1z1tpXrxWZzP7k8ul9qt1U5o8rYJwTJYmaeHdrVosYIVYkOy2iwCJ9FdpocJhPQ==} - dev: false - /get-tsconfig@4.5.0: resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==} - dev: true /getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} @@ -6041,7 +6036,7 @@ packages: /is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -6786,7 +6781,7 @@ packages: mri: 1.2.0 node-fetch-native: 1.1.0 ofetch: 1.0.1 - ohash: 1.0.0 + ohash: 1.1.0 pathe: 1.1.0 perfect-debounce: 0.1.3 pkg-types: 1.0.2 @@ -6974,8 +6969,8 @@ packages: node-fetch-native: 1.1.0 ufo: 1.1.1 - /ohash@1.0.0: - resolution: {integrity: sha512-kxSyzq6tt+6EE/xCnD1XaFhCCjUNUaz3X30rJp6mnjGLXAAvuPFqohMdv0aScWzajR45C29HyBaXZ8jXBwnh9A==} + /ohash@1.1.0: + resolution: {integrity: sha512-KNKg5q7wmG6YG46AoWvO2tJoNxcVLuhnn+f0UnoTNuBUpH7tPAOES+R3ptnHw4QpEee4zutsMznAvTZj6eQoLg==} /ohmyfetch@0.4.21: resolution: {integrity: sha512-VG7f/JRvqvBOYvL0tHyEIEG7XHWm7OqIfAs6/HqwWwDfjiJ1g0huIpe5sFEmyb+7hpFa1EGNH2aERWR72tlClw==} @@ -9380,7 +9375,7 @@ packages: optional: true dependencies: '@types/eslint-scope': 3.7.4 - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/wasm-edit': 1.11.1 '@webassemblyjs/wasm-parser': 1.11.1 diff --git a/test/bundle.test.ts b/test/bundle.test.ts index af73d20ed6..c4dec4c74f 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -51,7 +51,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"92.4k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2651k"') + expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2654k"') const packages = modules.files .filter(m => m.endsWith('package.json')) From 820fecd9eec50c8f690cbe7477335a68260dbbc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lehoczky=20Zolt=C3=A1n?= Date: Wed, 19 Apr 2023 18:35:39 +0200 Subject: [PATCH 060/912] docs: update lint command for the documentation (#20399) --- docs/5.community/5.framework-contribution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/5.community/5.framework-contribution.md b/docs/5.community/5.framework-contribution.md index e4c25cc756..44872e9e02 100644 --- a/docs/5.community/5.framework-contribution.md +++ b/docs/5.community/5.framework-contribution.md @@ -140,7 +140,7 @@ The Nuxt documentation is currently deployed within [nuxt/nuxt.com](https://gith -- Before opening a PR, run `pnpm docs:lint:fix` to highlight and resolve any lint issues +- Before opening a PR, run `pnpm lint:docs:fix` to highlight and resolve any lint issues ::alert 🚧 This repository will be open-sourced shortly. Until then, you will need to open a pull request to see a preview of your changes. From 48b48dec0059823dbedeb9008e47bdd07be38a91 Mon Sep 17 00:00:00 2001 From: Preet Mishra Date: Wed, 19 Apr 2023 22:28:43 +0530 Subject: [PATCH 061/912] fix(nuxt): handle pages with no content and log warning (#20373) --- packages/nuxt/src/pages/page-meta.ts | 9 ++++++++- test/fixtures/basic/pages/empty.ts | 0 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/basic/pages/empty.ts diff --git a/packages/nuxt/src/pages/page-meta.ts b/packages/nuxt/src/pages/page-meta.ts index 0852c0198e..f970d157bc 100644 --- a/packages/nuxt/src/pages/page-meta.ts +++ b/packages/nuxt/src/pages/page-meta.ts @@ -109,7 +109,14 @@ export const PageMetaPlugin = createUnplugin((options: PageMetaPluginOptions) => } if (!hasMacro && !code.includes('export { default }') && !code.includes('__nuxt_page_meta')) { - s.overwrite(0, code.length, CODE_EMPTY + (options.dev ? CODE_HMR : '')) + if (!code) { + s.append(CODE_EMPTY + (options.dev ? CODE_HMR : '')) + const { pathname } = parseURL(decodeURIComponent(pathToFileURL(id).href)) + console.error(`The file \`${pathname}\` is not a valid page as it has no content.`) + } else { + s.overwrite(0, code.length, CODE_EMPTY + (options.dev ? CODE_HMR : '')) + } + return result() } diff --git a/test/fixtures/basic/pages/empty.ts b/test/fixtures/basic/pages/empty.ts new file mode 100644 index 0000000000..e69de29bb2 From 526852c1f1f0778dc2d70f3c7e89a9945f4dd7a5 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Apr 2023 19:05:01 +0100 Subject: [PATCH 062/912] fix(test-utils): import jest functions from `@jest/globals` (#20360) --- packages/test-utils/build.config.ts | 5 - packages/test-utils/package.json | 15 + packages/test-utils/src/setup/jest.ts | 8 +- pnpm-lock.yaml | 532 +++++++++++++++++++++++++- 4 files changed, 538 insertions(+), 22 deletions(-) diff --git a/packages/test-utils/build.config.ts b/packages/test-utils/build.config.ts index e0f61579a1..8d3b45ff31 100644 --- a/packages/test-utils/build.config.ts +++ b/packages/test-utils/build.config.ts @@ -8,10 +8,5 @@ export default defineBuildConfig({ { input: 'src/runtime/', outDir: 'dist/runtime', format: 'esm' } ], externals: [ - 'vitest', - 'jest', - 'playwright', - 'playwright-core', - 'listhen' ] }) diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 0627d8a8fc..e19d8f174d 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -33,13 +33,28 @@ "ufo": "^1.1.1" }, "devDependencies": { + "@jest/globals": "^29.5.0", "playwright": "^1.32.3", "unbuild": "latest", "vitest": "^0.30.1" }, "peerDependencies": { + "@jest/globals": "^29.5.0", + "playwright": "^1.32.3", + "vitest": "^0.30.1", "vue": "^3.2.47" }, + "peerDependenciesMeta": { + "@jest/globals": { + "optional": true + }, + "playwright": { + "optional": true + }, + "vitest": { + "optional": true + } + }, "engines": { "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } diff --git a/packages/test-utils/src/setup/jest.ts b/packages/test-utils/src/setup/jest.ts index 32870b7635..5ae223d0d0 100644 --- a/packages/test-utils/src/setup/jest.ts +++ b/packages/test-utils/src/setup/jest.ts @@ -1,18 +1,12 @@ import type { TestHooks } from '../types' export default async function setupJest (hooks: TestHooks) { - // @ts-expect-error TODO: jest is not a dependency - const jest = await import('jest') + const { jest, test, beforeEach, afterAll, afterEach } = await import('@jest/globals') hooks.ctx.mockFn = jest.fn - // TODO: add globals existing check to provide better error message - // @ts-expect-error jest types test('setup', hooks.setup, hooks.ctx.options.setupTimeout) - // @ts-expect-error jest types beforeEach(hooks.beforeEach) - // @ts-expect-error jest types afterEach(hooks.afterEach) - // @ts-expect-error jest types afterAll(hooks.afterAll) } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aecbbe8863..f27c82aab6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -815,6 +815,9 @@ importers: specifier: ^3.2.47 version: 3.2.47 devDependencies: + '@jest/globals': + specifier: ^29.5.0 + version: 29.5.0 playwright: specifier: ^1.32.3 version: 1.32.3 @@ -1328,6 +1331,51 @@ packages: dependencies: '@babel/types': 7.21.4 + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.21.4): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.21.4): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.21.4): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.21.4): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.21.4): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.21.4): resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} @@ -1337,6 +1385,70 @@ packages: '@babel/core': 7.21.4 '@babel/helper-plugin-utils': 7.20.2 + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.21.4): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.21.4): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.21.4): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.21.4): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.21.4): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.21.4): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.21.4): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.4 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + /@babel/plugin-syntax-typescript@7.20.0(@babel/core@7.21.4): resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} engines: {node: '>=6.9.0'} @@ -1692,12 +1804,101 @@ packages: /@ioredis/commands@1.2.0: resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} + /@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + dev: true + + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jest/environment@29.5.0: + resolution: {integrity: sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/fake-timers': 29.5.0 + '@jest/types': 29.5.0 + '@types/node': 18.15.11 + jest-mock: 29.5.0 + dev: true + + /@jest/expect-utils@29.5.0: + resolution: {integrity: sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + jest-get-type: 29.4.3 + dev: true + + /@jest/expect@29.5.0: + resolution: {integrity: sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.5.0 + jest-snapshot: 29.5.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@jest/fake-timers@29.5.0: + resolution: {integrity: sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + '@sinonjs/fake-timers': 10.0.2 + '@types/node': 18.15.11 + jest-message-util: 29.5.0 + jest-mock: 29.5.0 + jest-util: 29.5.0 + dev: true + + /@jest/globals@29.5.0: + resolution: {integrity: sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/environment': 29.5.0 + '@jest/expect': 29.5.0 + '@jest/types': 29.5.0 + jest-mock: 29.5.0 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/schemas@29.4.3: resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.25.24 - dev: false + + /@jest/transform@29.5.0: + resolution: {integrity: sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.21.4 + '@jest/types': 29.5.0 + '@jridgewell/trace-mapping': 0.3.17 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.10 + jest-haste-map: 29.5.0 + jest-regex-util: 29.4.3 + jest-util: 29.5.0 + micromatch: 4.0.5 + pirates: 4.0.5 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true /@jest/types@29.5.0: resolution: {integrity: sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==} @@ -1709,7 +1910,6 @@ packages: '@types/node': 18.15.11 '@types/yargs': 17.0.22 chalk: 4.1.2 - dev: false /@jridgewell/gen-mapping@0.1.1: resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} @@ -2092,7 +2292,18 @@ packages: /@sinclair/typebox@0.25.24: resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} - dev: false + + /@sinonjs/commons@2.0.0: + resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} + dependencies: + type-detect: 4.0.8 + dev: true + + /@sinonjs/fake-timers@10.0.2: + resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==} + dependencies: + '@sinonjs/commons': 2.0.0 + dev: true /@trysound/sax@0.2.0: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} @@ -2115,6 +2326,12 @@ packages: resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} dev: false + /@types/babel__traverse@7.18.3: + resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==} + dependencies: + '@babel/types': 7.21.4 + dev: true + /@types/chai-subset@1.3.3: resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} dependencies: @@ -2173,25 +2390,28 @@ packages: '@types/node': 18.15.11 dev: true + /@types/graceful-fs@4.1.6: + resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} + dependencies: + '@types/node': 18.15.11 + dev: true + /@types/hash-sum@1.0.0: resolution: {integrity: sha512-FdLBT93h3kcZ586Aee66HPCVJ6qvxVjBlDWNmxSGSbCZe9hTsjRKdSsl4y1T+3zfujxo9auykQMnFsfyHWD7wg==} dev: true /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} - dev: false /@types/istanbul-lib-report@3.0.0: resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} dependencies: '@types/istanbul-lib-coverage': 2.0.4 - dev: false /@types/istanbul-reports@3.0.1: resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} dependencies: '@types/istanbul-lib-report': 3.0.0 - dev: false /@types/json-schema@7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} @@ -2241,6 +2461,10 @@ packages: resolution: {integrity: sha512-UYcJBAqWLyg+eITXGIu9DR7RXJFvSupz+Hf+RqJYHzDJedvDMTsB1JmDV6Qfna2g62VIxUKvoWqTxGHy6U/bLA==} dev: true + /@types/prettier@2.7.2: + resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==} + dev: true + /@types/prompts@2.4.4: resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} dependencies: @@ -2259,6 +2483,10 @@ packages: resolution: {integrity: sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==} dev: true + /@types/stack-utils@2.0.1: + resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} + dev: true + /@types/tapable@1.0.8: resolution: {integrity: sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==} dev: true @@ -2326,13 +2554,11 @@ packages: /@types/yargs-parser@21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} - dev: false /@types/yargs@17.0.22: resolution: {integrity: sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==} dependencies: '@types/yargs-parser': 21.0.0 - dev: false /@typescript-eslint/eslint-plugin@5.54.1(@typescript-eslint/parser@5.54.1)(eslint@8.38.0)(typescript@5.0.4): resolution: {integrity: sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew==} @@ -3284,6 +3510,12 @@ packages: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: false + /argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -3384,6 +3616,39 @@ packages: resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==} dev: true + /babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': 7.20.2 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.21.4): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.4 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.21.4) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.21.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.21.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.21.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.21.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.21.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.21.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.21.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.21.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.21.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.21.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.21.4) + dev: true + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -3474,6 +3739,12 @@ packages: node-releases: 2.0.10 update-browserslist-db: 1.0.10(browserslist@4.21.5) + /bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + dependencies: + node-int64: 0.4.0 + dev: true + /buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} @@ -3546,6 +3817,11 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + /camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} @@ -3836,6 +4112,10 @@ packages: /convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + /cookie-es@0.5.0: resolution: {integrity: sha512-RyZrFi6PNpBFbIaQjXDlFIhFVqV42QeKSZX1yQIl6ihImq6vcHNGMtqQ/QzY3RMPuYSkvsRwtnt5M9NeYxKt0g==} @@ -4249,6 +4529,11 @@ packages: /devalue@4.3.0: resolution: {integrity: sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==} + /diff-sequences@29.4.3: + resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -4759,6 +5044,11 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + /escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + dev: true + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -5102,6 +5392,12 @@ packages: acorn-jsx: 5.3.2(acorn@8.8.2) eslint-visitor-keys: 3.4.0 + /esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + /esquery@1.5.0: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} @@ -5173,6 +5469,17 @@ packages: signal-exit: 3.0.7 strip-final-newline: 3.0.0 + /expect@29.5.0: + resolution: {integrity: sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.5.0 + jest-get-type: 29.4.3 + jest-matcher-utils: 29.5.0 + jest-message-util: 29.5.0 + jest-util: 29.5.0 + dev: true + /extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: true @@ -5228,6 +5535,12 @@ packages: dependencies: reusify: 1.0.4 + /fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + dependencies: + bser: 2.1.1 + dev: true + /fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} @@ -5462,6 +5775,11 @@ packages: has-symbols: 1.0.3 dev: true + /get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + dev: true + /get-port-please@3.0.1: resolution: {integrity: sha512-R5pcVO8Z1+pVDu8Ml3xaJCEkBiiy1VQN9za0YqH8GIi1nIqD4IzQhzY6dDzMRtdS1lyiGlucRzm8IN8wtLIXng==} @@ -6122,6 +6440,128 @@ packages: resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} dev: true + /istanbul-lib-coverage@3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + dependencies: + '@babel/core': 7.21.4 + '@babel/parser': 7.21.4 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /jest-diff@29.5.0: + resolution: {integrity: sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.4.3 + jest-get-type: 29.4.3 + pretty-format: 29.5.0 + dev: true + + /jest-get-type@29.4.3: + resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-haste-map@29.5.0: + resolution: {integrity: sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + '@types/graceful-fs': 4.1.6 + '@types/node': 18.15.11 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.10 + jest-regex-util: 29.4.3 + jest-util: 29.5.0 + jest-worker: 29.5.0 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /jest-matcher-utils@29.5.0: + resolution: {integrity: sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.5.0 + jest-get-type: 29.4.3 + pretty-format: 29.5.0 + dev: true + + /jest-message-util@29.5.0: + resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/code-frame': 7.21.4 + '@jest/types': 29.5.0 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + micromatch: 4.0.5 + pretty-format: 29.5.0 + slash: 3.0.0 + stack-utils: 2.0.6 + dev: true + + /jest-mock@29.5.0: + resolution: {integrity: sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + '@types/node': 18.15.11 + jest-util: 29.5.0 + dev: true + + /jest-regex-util@29.4.3: + resolution: {integrity: sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-snapshot@29.5.0: + resolution: {integrity: sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.21.4 + '@babel/generator': 7.21.4 + '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.21.4) + '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.21.4) + '@babel/traverse': 7.21.4 + '@babel/types': 7.21.4 + '@jest/expect-utils': 29.5.0 + '@jest/transform': 29.5.0 + '@jest/types': 29.5.0 + '@types/babel__traverse': 7.18.3 + '@types/prettier': 2.7.2 + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.21.4) + chalk: 4.1.2 + expect: 29.5.0 + graceful-fs: 4.2.10 + jest-diff: 29.5.0 + jest-get-type: 29.4.3 + jest-matcher-utils: 29.5.0 + jest-message-util: 29.5.0 + jest-util: 29.5.0 + natural-compare: 1.4.0 + pretty-format: 29.5.0 + semver: 7.5.0 + transitivePeerDependencies: + - supports-color + dev: true + /jest-util@29.5.0: resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6132,7 +6572,6 @@ packages: ci-info: 3.8.0 graceful-fs: 4.2.10 picomatch: 2.3.1 - dev: false /jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} @@ -6150,7 +6589,6 @@ packages: jest-util: 29.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 - dev: false /jiti@1.18.2: resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==} @@ -6167,6 +6605,14 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + /js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -6463,6 +6909,12 @@ packages: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: false + /makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + dependencies: + tmpl: 1.0.5 + dev: true + /markdown-it@13.0.1: resolution: {integrity: sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==} hasBin: true @@ -6855,6 +7307,10 @@ packages: resolution: {integrity: sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==} hasBin: true + /node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true + /node-releases@2.0.10: resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} @@ -7201,6 +7657,11 @@ packages: engines: {node: '>=14.16'} dev: false + /pirates@4.0.5: + resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + engines: {node: '>= 6'} + dev: true + /pkg-types@1.0.2: resolution: {integrity: sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==} dependencies: @@ -7643,6 +8104,15 @@ packages: react-is: 17.0.2 dev: true + /pretty-format@29.5.0: + resolution: {integrity: sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.4.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + /pretty-time@1.1.0: resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} engines: {node: '>=4'} @@ -7706,6 +8176,10 @@ packages: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} dev: true + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: true + /read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: @@ -8165,6 +8639,10 @@ packages: resolution: {integrity: sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==} dev: true + /sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + dev: true + /sshpk@1.17.0: resolution: {integrity: sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==} engines: {node: '>=0.10.0'} @@ -8181,6 +8659,13 @@ packages: tweetnacl: 0.14.5 dev: true + /stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + dependencies: + escape-string-regexp: 2.0.0 + dev: true + /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true @@ -8422,6 +8907,15 @@ packages: commander: 2.20.3 source-map-support: 0.5.21 + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + dev: true + /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -8479,6 +8973,10 @@ packages: os-tmpdir: 1.0.2 dev: false + /tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + dev: true + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -9280,6 +9778,12 @@ packages: '@vue/server-renderer': 3.2.47(vue@3.2.47) '@vue/shared': 3.2.47 + /walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + dependencies: + makeerror: 1.0.12 + dev: true + /watchpack@2.4.0: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} engines: {node: '>=10.13.0'} @@ -9494,6 +9998,14 @@ packages: /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + /write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + /ws@7.5.9: resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} engines: {node: '>=8.3.0'} From 5febd46d239779759148b49761e381743f31954d Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Thu, 20 Apr 2023 01:05:46 +0700 Subject: [PATCH 063/912] fix(core,kit): ensure module transpilation paths are dirs (#20396) --- packages/kit/src/module/install.ts | 15 ++++++++++++++- packages/nuxt/src/core/modules.ts | 4 ++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/kit/src/module/install.ts b/packages/kit/src/module/install.ts index a55f391c13..cd2ebea068 100644 --- a/packages/kit/src/module/install.ts +++ b/packages/kit/src/module/install.ts @@ -1,4 +1,6 @@ +import { lstatSync } from 'node:fs' import type { Nuxt, NuxtModule } from '@nuxt/schema' +import { dirname, isAbsolute } from 'pathe' import { isNuxt2 } from '../compatibility' import { useNuxt } from '../context' import { requireModule, resolveModule } from '../internal/cjs' @@ -22,7 +24,7 @@ export async function installModule (moduleToInstall: string | NuxtModule, _inli } if (typeof moduleToInstall === 'string') { - nuxt.options.build.transpile.push(moduleToInstall) + nuxt.options.build.transpile.push(normalizeModuleTranspilePath(moduleToInstall)) } nuxt.options._installedModules = nuxt.options._installedModules || [] @@ -35,6 +37,17 @@ export async function installModule (moduleToInstall: string | NuxtModule, _inli // --- Internal --- +export const normalizeModuleTranspilePath = (p: string) => { + try { + // we need to target directories instead of module file paths themselves + // /home/user/project/node_modules/module/index.js -> /home/user/project/node_modules/module + p = isAbsolute(p) && lstatSync(p).isFile() ? dirname(p) : p + } catch (e) { + // maybe the path is absolute but does not exist, allow this to bubble up + } + return p.split('node_modules/').pop() as string +} + async function normalizeModule (nuxtModule: string | NuxtModule, inlineOptions?: any) { const nuxt = useNuxt() diff --git a/packages/nuxt/src/core/modules.ts b/packages/nuxt/src/core/modules.ts index 6df928fc7d..928e58edc6 100644 --- a/packages/nuxt/src/core/modules.ts +++ b/packages/nuxt/src/core/modules.ts @@ -1,4 +1,4 @@ -import { useNuxt } from '@nuxt/kit' +import { normalizeModuleTranspilePath, useNuxt } from '@nuxt/kit' export interface AddModuleTranspilesOptions { additionalModules?: string[] @@ -14,7 +14,7 @@ export const addModuleTranspiles = (opts: AddModuleTranspilesOptions = {}) => { ] .map(m => typeof m === 'string' ? m : Array.isArray(m) ? m[0] : m.src) .filter(m => typeof m === 'string') - .map(m => m.split('node_modules/').pop()) + .map(normalizeModuleTranspilePath) // Try to sanitize modules to better match imports nuxt.options.build.transpile = From c7be5b4ec6a3b129c68e892c9f3dad816446bb10 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Apr 2023 19:17:36 +0100 Subject: [PATCH 064/912] refactor(nuxt): rework and use `isJS` and `isVue` utilities consistently (#20344) --- .../src/components/client-fallback-auto-id.ts | 4 +- packages/nuxt/src/components/helpers.ts | 29 -------------- packages/nuxt/src/components/loader.ts | 4 +- packages/nuxt/src/core/plugins/tree-shake.ts | 16 +------- packages/nuxt/src/core/plugins/unctx.ts | 21 ++-------- packages/nuxt/src/core/utils/index.ts | 13 +++++++ .../src/core/{utils.ts => utils/names.ts} | 11 ------ packages/nuxt/src/core/utils/plugins.ts | 38 +++++++++++++++++++ packages/nuxt/src/imports/transform.ts | 16 ++------ packages/vite/src/plugins/pure-annotations.ts | 16 +------- test/fixtures/basic/pages/index.vue | 5 +++ 11 files changed, 70 insertions(+), 103 deletions(-) delete mode 100644 packages/nuxt/src/components/helpers.ts create mode 100644 packages/nuxt/src/core/utils/index.ts rename packages/nuxt/src/core/{utils.ts => utils/names.ts} (65%) create mode 100644 packages/nuxt/src/core/utils/plugins.ts diff --git a/packages/nuxt/src/components/client-fallback-auto-id.ts b/packages/nuxt/src/components/client-fallback-auto-id.ts index 9d642d55f7..5b2d00f059 100644 --- a/packages/nuxt/src/components/client-fallback-auto-id.ts +++ b/packages/nuxt/src/components/client-fallback-auto-id.ts @@ -3,7 +3,7 @@ import type { ComponentsOptions } from '@nuxt/schema' import MagicString from 'magic-string' import { isAbsolute, relative } from 'pathe' import { hash } from 'ohash' -import { isVueTemplate } from './helpers' +import { isVue } from '../core/utils' interface LoaderOptions { sourcemap?: boolean transform?: ComponentsOptions['transform'], @@ -25,7 +25,7 @@ export const clientFallbackAutoIdPlugin = createUnplugin((options: LoaderOptions if (include.some(pattern => id.match(pattern))) { return true } - return isVueTemplate(id) + return isVue(id, { type: ['template'] }) }, transform (code, id) { if (!CLIENT_FALLBACK_RE.test(code)) { return } diff --git a/packages/nuxt/src/components/helpers.ts b/packages/nuxt/src/components/helpers.ts deleted file mode 100644 index ebd4ccf5fe..0000000000 --- a/packages/nuxt/src/components/helpers.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { pathToFileURL } from 'node:url' -import { parseQuery, parseURL } from 'ufo' - -export function isVueTemplate (id: string) { - // Bare `.vue` file (in Vite) - if (id.endsWith('.vue')) { - return true - } - - const { search } = parseURL(decodeURIComponent(pathToFileURL(id).href)) - if (!search) { - return false - } - - const query = parseQuery(search) - - // Macro - if (query.macro) { - return true - } - - // Non-Vue or Styles - if (!('vue' in query) || query.type === 'style') { - return false - } - - // Query `?vue&type=template` (in Webpack or external template) - return true -} diff --git a/packages/nuxt/src/components/loader.ts b/packages/nuxt/src/components/loader.ts index 9b01961493..b496494016 100644 --- a/packages/nuxt/src/components/loader.ts +++ b/packages/nuxt/src/components/loader.ts @@ -6,7 +6,7 @@ import { resolve } from 'pathe' import type { Component, ComponentsOptions } from 'nuxt/schema' import { distDir } from '../dirs' -import { isVueTemplate } from './helpers' +import { isVue } from '../core/utils' interface LoaderOptions { getComponents (): Component[] @@ -31,7 +31,7 @@ export const loaderPlugin = createUnplugin((options: LoaderOptions) => { if (include.some(pattern => id.match(pattern))) { return true } - return isVueTemplate(id) + return isVue(id, { type: ['template', 'script'] }) }, transform (code) { const components = options.getComponents() diff --git a/packages/nuxt/src/core/plugins/tree-shake.ts b/packages/nuxt/src/core/plugins/tree-shake.ts index 6b0c3c611b..2a852e9c43 100644 --- a/packages/nuxt/src/core/plugins/tree-shake.ts +++ b/packages/nuxt/src/core/plugins/tree-shake.ts @@ -1,8 +1,7 @@ -import { pathToFileURL } from 'node:url' import { stripLiteral } from 'strip-literal' -import { parseQuery, parseURL } from 'ufo' import MagicString from 'magic-string' import { createUnplugin } from 'unplugin' +import { isJS, isVue } from '../utils' type ImportPath = string @@ -22,18 +21,7 @@ export const TreeShakeComposablesPlugin = createUnplugin((options: TreeShakeComp name: 'nuxt:tree-shake-composables:transform', enforce: 'post', transformInclude (id) { - const { pathname, search } = parseURL(decodeURIComponent(pathToFileURL(id).href)) - const { type } = parseQuery(search) - - // vue files - if (pathname.endsWith('.vue') && (type === 'script' || !search)) { - return true - } - - // js files - if (pathname.match(/\.((c|m)?j|t)sx?$/g)) { - return true - } + return isVue(id, { type: ['script'] }) || isJS(id) }, transform (code) { if (!code.match(COMPOSABLE_RE)) { return } diff --git a/packages/nuxt/src/core/plugins/unctx.ts b/packages/nuxt/src/core/plugins/unctx.ts index 6a93a72a44..19ce781e94 100644 --- a/packages/nuxt/src/core/plugins/unctx.ts +++ b/packages/nuxt/src/core/plugins/unctx.ts @@ -1,9 +1,9 @@ -import { pathToFileURL } from 'node:url' -import { parseQuery, parseURL } from 'ufo' import type { TransformerOptions } from 'unctx/transform' import { createTransformer } from 'unctx/transform' import { createUnplugin } from 'unplugin' +import { isJS, isVue } from '../utils' + const TRANSFORM_MARKER = '/* _processed_nuxt_unctx_transform */\n' interface UnctxTransformPluginOptions { @@ -17,22 +17,7 @@ export const UnctxTransformPlugin = createUnplugin((options: UnctxTransformPlugi name: 'unctx:transform', enforce: 'post', transformInclude (id) { - const { pathname, search } = parseURL(decodeURIComponent(pathToFileURL(id).href)) - const query = parseQuery(search) - - // Vue files - if ( - pathname.endsWith('.vue') || - 'macro' in query || - ('vue' in query && (query.type === 'template' || query.type === 'script' || 'setup' in query)) - ) { - return true - } - - // JavaScript files - if (pathname.match(/\.((c|m)?j|t)sx?$/g)) { - return true - } + return isVue(id) || isJS(id) }, transform (code) { // TODO: needed for webpack - update transform in unctx/unplugin? diff --git a/packages/nuxt/src/core/utils/index.ts b/packages/nuxt/src/core/utils/index.ts new file mode 100644 index 0000000000..9ce54f0f06 --- /dev/null +++ b/packages/nuxt/src/core/utils/index.ts @@ -0,0 +1,13 @@ +export * from './names' +export * from './plugins' + +export function uniqueBy (arr: T[], key: K) { + const res: T[] = [] + const seen = new Set() + for (const item of arr) { + if (seen.has(item[key])) { continue } + seen.add(item[key]) + res.push(item) + } + return res +} diff --git a/packages/nuxt/src/core/utils.ts b/packages/nuxt/src/core/utils/names.ts similarity index 65% rename from packages/nuxt/src/core/utils.ts rename to packages/nuxt/src/core/utils/names.ts index 46757ec20b..4684e21353 100644 --- a/packages/nuxt/src/core/utils.ts +++ b/packages/nuxt/src/core/utils/names.ts @@ -5,17 +5,6 @@ export function getNameFromPath (path: string) { return kebabCase(basename(path).replace(extname(path), '')).replace(/["']/g, '') } -export function uniqueBy (arr: T[], key: K) { - const res: T[] = [] - const seen = new Set() - for (const item of arr) { - if (seen.has(item[key])) { continue } - seen.add(item[key]) - res.push(item) - } - return res -} - export function hasSuffix (path: string, suffix: string) { return basename(path).replace(extname(path), '').endsWith(suffix) } diff --git a/packages/nuxt/src/core/utils/plugins.ts b/packages/nuxt/src/core/utils/plugins.ts new file mode 100644 index 0000000000..9002a13369 --- /dev/null +++ b/packages/nuxt/src/core/utils/plugins.ts @@ -0,0 +1,38 @@ +import { pathToFileURL } from 'node:url' +import { parseQuery, parseURL } from 'ufo' + +export function isVue (id: string, opts: { type?: Array<'template' | 'script' | 'style'> } = {}) { + // Bare `.vue` file (in Vite) + const { search } = parseURL(decodeURIComponent(pathToFileURL(id).href)) + if (id.endsWith('.vue') && !search) { + return true + } + + if (!search) { + return false + } + + const query = parseQuery(search) + + // Macro + if (query.macro && (!opts.type || opts.type.includes('script'))) { + return true + } + + // Non-Vue or Styles + const type = 'setup' in query ? 'script' : query.type as 'script' | 'template' | 'style' + if (!('vue' in query) || (opts.type && !opts.type.includes(type))) { + return false + } + + // Query `?vue&type=template` (in Webpack or external template) + return true +} + +const JS_RE = /\.((c|m)?j|t)sx?$/ + +export function isJS (id: string) { + // JavaScript files + const { pathname } = parseURL(decodeURIComponent(pathToFileURL(id).href)) + return JS_RE.test(pathname) +} diff --git a/packages/nuxt/src/imports/transform.ts b/packages/nuxt/src/imports/transform.ts index ab2c08b0af..e623d81d49 100644 --- a/packages/nuxt/src/imports/transform.ts +++ b/packages/nuxt/src/imports/transform.ts @@ -1,18 +1,14 @@ -import { pathToFileURL } from 'node:url' import { createUnplugin } from 'unplugin' -import { parseQuery, parseURL } from 'ufo' import type { Unimport } from 'unimport' import { normalize } from 'pathe' import type { ImportsOptions } from 'nuxt/schema' +import { isJS, isVue } from '../core/utils' export const TransformPlugin = createUnplugin(({ ctx, options, sourcemap }: { ctx: Unimport, options: Partial, sourcemap?: boolean }) => { return { name: 'nuxt:imports-transform', enforce: 'post', transformInclude (id) { - const { pathname, search } = parseURL(decodeURIComponent(pathToFileURL(id).href)) - const query = parseQuery(search) - // Included if (options.transform?.include?.some(pattern => id.match(pattern))) { return true @@ -23,18 +19,12 @@ export const TransformPlugin = createUnplugin(({ ctx, options, sourcemap }: { ct } // Vue files - if ( - id.endsWith('.vue') || - 'macro' in query || - ('vue' in query && (query.type === 'template' || query.type === 'script' || 'setup' in query)) - ) { + if (isVue(id, { type: ['script', 'template'] })) { return true } // JavaScript files - if (pathname.match(/\.((c|m)?j|t)sx?$/g)) { - return true - } + return isJS(id) }, async transform (code, id) { id = normalize(id) diff --git a/packages/vite/src/plugins/pure-annotations.ts b/packages/vite/src/plugins/pure-annotations.ts index 3d604dfb8d..6f79b7ffbd 100644 --- a/packages/vite/src/plugins/pure-annotations.ts +++ b/packages/vite/src/plugins/pure-annotations.ts @@ -1,8 +1,7 @@ -import { pathToFileURL } from 'node:url' import MagicString from 'magic-string' -import { parseQuery, parseURL } from 'ufo' import { createUnplugin } from 'unplugin' import { stripLiteral } from 'strip-literal' +import { isJS, isVue } from '../../../nuxt/src/core/utils/plugins' export interface PureAnnotationsOptions { sourcemap: boolean @@ -16,18 +15,7 @@ export const pureAnnotationsPlugin = createUnplugin((options: PureAnnotationsOpt name: 'nuxt:pure-annotations', enforce: 'post', transformInclude (id) { - const { pathname, search } = parseURL(decodeURIComponent(pathToFileURL(id).href)) - const { type } = parseQuery(search) - - // vue files - if (pathname.endsWith('.vue') && (type === 'script' || !search)) { - return true - } - - // js files - if (pathname.match(/\.((c|m)?j|t)sx?$/g)) { - return true - } + return isVue(id, { type: ['script'] }) || isJS(id) }, transform (code) { if (!FUNCTION_RE_SINGLE.test(code)) { return } diff --git a/test/fixtures/basic/pages/index.vue b/test/fixtures/basic/pages/index.vue index b2e39ed571..7b6c4bb734 100644 --- a/test/fixtures/basic/pages/index.vue +++ b/test/fixtures/basic/pages/index.vue @@ -46,6 +46,11 @@ const config = useRuntimeConfig() const someValue = useState('val', () => 1) +const NestedSugarCounter = resolveComponent('NestedSugarCounter') +if (!NestedSugarCounter) { + throw new Error('Component not found') +} + definePageMeta({ alias: '/some-alias', other: ref('test'), From 83f0103a4774886043ed78efced6646cbaecc2e9 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Apr 2023 22:02:15 +0100 Subject: [PATCH 065/912] fix(schema): rely on installed telemetry types (#19640) --- packages/schema/build.config.ts | 1 + packages/schema/package.json | 1 + packages/schema/src/config/adhoc.ts | 2 +- pnpm-lock.yaml | 54 ++--------------------------- test/fixtures/basic/nuxt.config.ts | 1 + 5 files changed, 7 insertions(+), 52 deletions(-) diff --git a/packages/schema/build.config.ts b/packages/schema/build.config.ts index 01f52c4bf6..4c8f3f8516 100644 --- a/packages/schema/build.config.ts +++ b/packages/schema/build.config.ts @@ -20,6 +20,7 @@ export default defineBuildConfig({ externals: [ // Type imports 'vue-router', + '@nuxt/telemetry', 'vue-bundle-renderer', '@unhead/schema', 'vue', diff --git a/packages/schema/package.json b/packages/schema/package.json index 2be2511b1b..d6037e401d 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -21,6 +21,7 @@ "prepack": "unbuild" }, "devDependencies": { + "@nuxt/telemetry": "^2.2.0", "@unhead/schema": "^1.1.26", "@vitejs/plugin-vue": "^4.1.0", "@vitejs/plugin-vue-jsx": "^3.0.1", diff --git a/packages/schema/src/config/adhoc.ts b/packages/schema/src/config/adhoc.ts index 60c454b709..665497a07d 100644 --- a/packages/schema/src/config/adhoc.ts +++ b/packages/schema/src/config/adhoc.ts @@ -58,7 +58,7 @@ export default defineUntypedSchema({ * * @see [Nuxt Telemetry](https://github.com/nuxt/telemetry) for more information. * - * @type {boolean} + * @type {typeof import('@nuxt/telemetry').ModuleOptions} */ telemetry: undefined, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f27c82aab6..39ea6aafd2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -742,6 +742,9 @@ importers: specifier: ^1.3.2 version: 1.3.2 devDependencies: + '@nuxt/telemetry': + specifier: ^2.2.0 + version: 2.2.0 '@unhead/schema': specifier: ^1.1.26 version: 1.1.26 @@ -2038,7 +2041,6 @@ packages: parse-git-config: 3.0.0 rc9: 2.1.0 std-env: 3.3.2 - dev: false /@nuxt/ui-templates@1.1.1: resolution: {integrity: sha512-PjVETP7+iZXAs5Q8O4ivl4t6qjWZMZqwiTVogUXHoHGZZcw7GZW3u3tzfYfE1HbzyYJfr236IXqQ02MeR8Fz2w==} @@ -3415,7 +3417,6 @@ packages: engines: {node: '>=14.16'} dependencies: type-fest: 3.6.1 - dev: false /ansi-html-community@0.0.8: resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} @@ -3430,7 +3431,6 @@ packages: /ansi-regex@6.0.1: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - dev: false /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} @@ -3452,7 +3452,6 @@ packages: /ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - dev: false /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} @@ -3692,7 +3691,6 @@ packages: buffer: 6.0.3 inherits: 2.0.4 readable-stream: 3.6.2 - dev: false /blueimp-md5@2.19.0: resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} @@ -3762,7 +3760,6 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: false /builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} @@ -3903,7 +3900,6 @@ packages: /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: false /check-error@1.0.2: resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} @@ -3972,17 +3968,14 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: restore-cursor: 4.0.0 - dev: false /cli-spinners@2.7.0: resolution: {integrity: sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==} engines: {node: '>=6'} - dev: false /cli-width@4.0.0: resolution: {integrity: sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==} engines: {node: '>= 12'} - dev: false /clipboardy@3.0.0: resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==} @@ -4003,7 +3996,6 @@ packages: /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} - dev: false /cluster-key-slot@1.1.2: resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} @@ -4188,7 +4180,6 @@ packages: /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: false /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} @@ -4388,7 +4379,6 @@ packages: /data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} - dev: false /date-time@3.1.0: resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} @@ -4477,7 +4467,6 @@ packages: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 - dev: false /define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} @@ -4631,7 +4620,6 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: false /ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} @@ -4651,7 +4639,6 @@ packages: /emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: false /emojis-list@3.0.0: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} @@ -5491,7 +5478,6 @@ packages: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 - dev: false /externality@1.0.0: resolution: {integrity: sha512-MAU9ci3XdpqOX1aoIoyL2DMzW97P8LYeJxIUkfXhOfsrkH4KLHFaYDwKN0B2l6tqedVJWiTIJtWmxmZfa05vOQ==} @@ -5547,7 +5533,6 @@ packages: dependencies: node-domexception: 1.0.0 web-streams-polyfill: 3.2.1 - dev: false /figures@5.0.0: resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} @@ -5555,7 +5540,6 @@ packages: dependencies: escape-string-regexp: 5.0.0 is-unicode-supported: 1.3.0 - dev: false /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} @@ -5674,7 +5658,6 @@ packages: engines: {node: '>=12.20.0'} dependencies: fetch-blob: 3.2.0 - dev: false /fraction.js@4.2.0: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} @@ -5694,7 +5677,6 @@ packages: graceful-fs: 4.2.10 jsonfile: 6.1.0 universalify: 2.0.0 - dev: false /fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} @@ -5826,20 +5808,17 @@ packages: /git-config-path@2.0.0: resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==} engines: {node: '>=4'} - dev: false /git-up@7.0.0: resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} dependencies: is-ssh: 1.4.0 parse-url: 8.1.0 - dev: false /git-url-parse@13.1.0: resolution: {integrity: sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==} dependencies: git-up: 7.0.0 - dev: false /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} @@ -6170,7 +6149,6 @@ packages: /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: false /ini@3.0.1: resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==} @@ -6196,7 +6174,6 @@ packages: strip-ansi: 7.0.1 through: 2.3.8 wrap-ansi: 8.1.0 - dev: false /internal-slot@1.0.5: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} @@ -6319,7 +6296,6 @@ packages: /is-interactive@2.0.0: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} - dev: false /is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} @@ -6374,7 +6350,6 @@ packages: resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} dependencies: protocols: 2.0.1 - dev: false /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} @@ -6416,7 +6391,6 @@ packages: /is-unicode-supported@1.3.0: resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} engines: {node: '>=12'} - dev: false /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} @@ -6865,7 +6839,6 @@ packages: dependencies: chalk: 5.2.0 is-unicode-supported: 1.3.0 - dev: false /loupe@2.3.6: resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} @@ -7165,7 +7138,6 @@ packages: /mute-stream@1.0.0: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: false /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} @@ -7176,7 +7148,6 @@ packages: resolution: {integrity: sha512-7ZtY5KTCNheRGfEFxnedV5zFiORN1+Y1N6zvPTnHQd8ENUvfaDBeuJDZb2bN/oXwXxu3qkTXDzy57W5vAmDTBw==} engines: {node: ^14 || ^16 || >=18} hasBin: true - dev: false /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -7270,7 +7241,6 @@ packages: /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} - dev: false /node-fetch-native@0.1.8: resolution: {integrity: sha512-ZNaury9r0NxaT2oL65GvdGDy+5PlSaHTovT6JV5tOW07k1TQmgC0olZETa4C9KZg0+6zBr99ctTYa3Utqj9P/Q==} @@ -7297,7 +7267,6 @@ packages: data-uri-to-buffer: 4.0.1 fetch-blob: 3.2.0 formdata-polyfill: 4.0.10 - dev: false /node-forge@1.3.1: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} @@ -7507,12 +7476,10 @@ packages: log-symbols: 5.1.0 strip-ansi: 7.0.1 wcwidth: 1.0.1 - dev: false /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - dev: false /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} @@ -7564,7 +7531,6 @@ packages: dependencies: git-config-path: 2.0.0 ini: 1.3.8 - dev: false /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} @@ -7579,13 +7545,11 @@ packages: resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} dependencies: protocols: 2.0.1 - dev: false /parse-url@8.1.0: resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} dependencies: parse-path: 7.0.0 - dev: false /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} @@ -8131,7 +8095,6 @@ packages: /protocols@2.0.1: resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} - dev: false /prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} @@ -8325,7 +8288,6 @@ packages: dependencies: onetime: 5.1.2 signal-exit: 3.0.7 - dev: false /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} @@ -8400,7 +8362,6 @@ packages: /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} - dev: false /run-con@1.2.11: resolution: {integrity: sha512-NEMGsUT+cglWkzEr4IFK21P4Jca45HqiAbIIZIBdX5+UZTB24Mb/21iNGgz9xZa8tL6vbW7CXmq7MFN42+VjNQ==} @@ -8421,7 +8382,6 @@ packages: resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} dependencies: tslib: 2.5.0 - dev: false /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -8704,7 +8664,6 @@ packages: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.0.1 - dev: false /string.prototype.trim@1.2.7: resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} @@ -8752,7 +8711,6 @@ packages: engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 - dev: false /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} @@ -8921,7 +8879,6 @@ packages: /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: false /time-fix-plugin@2.0.7(webpack@5.79.0): resolution: {integrity: sha512-uVFet1LQToeUX0rTcSiYVYVoGuBpc8gP/2jnlUzuHMHe+gux6XLsNzxLUweabMwiUj5ejhoIMsUI55nVSEa/Vw==} @@ -8971,7 +8928,6 @@ packages: engines: {node: '>=0.6.0'} dependencies: os-tmpdir: 1.0.2 - dev: false /tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -9121,7 +9077,6 @@ packages: /type-fest@3.6.1: resolution: {integrity: sha512-htXWckxlT6U4+ilVgweNliPqlsVSSucbxVexRYllyMVJDtf5rTjv6kF/s+qAd4QSL1BZcnJPEJavYBPQiWuZDA==} engines: {node: '>=14.16'} - dev: false /type-is@1.6.18: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} @@ -9795,12 +9750,10 @@ packages: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 - dev: false /web-streams-polyfill@3.2.1: resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} engines: {node: '>= 8'} - dev: false /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -9993,7 +9946,6 @@ packages: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.0.1 - dev: false /wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} diff --git a/test/fixtures/basic/nuxt.config.ts b/test/fixtures/basic/nuxt.config.ts index 6d2ab1d996..cda954f1ae 100644 --- a/test/fixtures/basic/nuxt.config.ts +++ b/test/fixtures/basic/nuxt.config.ts @@ -143,6 +143,7 @@ export default defineNuxtConfig({ vite: { logLevel: 'silent' }, + telemetry: false, // for testing telemetry types - it is auto-disabled in tests hooks: { 'prepare:types' ({ tsConfig }) { tsConfig.include = tsConfig.include!.filter(i => i !== '../../../../**/*') From a086af9692f1010ecae32df4e35fa96e93822c7f Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Apr 2023 22:02:52 +0100 Subject: [PATCH 066/912] perf: allow using `@parcel/watcher` for dev watcher (#20179) --- packages/nuxt/package.json | 7 ++++ packages/nuxt/src/core/builder.ts | 43 +++++++++++++++++++++- packages/nuxt/src/core/schema.ts | 28 +++++++++++--- packages/schema/src/config/common.ts | 1 + packages/schema/src/config/experimental.ts | 14 +++++++ pnpm-lock.yaml | 18 +++++++++ 6 files changed, 104 insertions(+), 7 deletions(-) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 6a2ba60e03..00c01c0934 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -99,6 +99,7 @@ "vue-router": "^4.1.6" }, "devDependencies": { + "@parcel/watcher": "^2.1.0", "@types/estree": "^1.0.1", "@types/fs-extra": "^11.0.1", "@types/prompts": "^2.4.4", @@ -109,8 +110,14 @@ "vitest": "^0.30.1" }, "peerDependencies": { + "@parcel/watcher": "^2.1.0", "@types/node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, + "peerDependenciesMeta": { + "@parcel/watcher": { + "optional": true + } + }, "engines": { "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } diff --git a/packages/nuxt/src/core/builder.ts b/packages/nuxt/src/core/builder.ts index 76707abc9d..548b5ce9b8 100644 --- a/packages/nuxt/src/core/builder.ts +++ b/packages/nuxt/src/core/builder.ts @@ -1,6 +1,8 @@ import { pathToFileURL } from 'node:url' +import type { EventType } from '@parcel/watcher' import chokidar from 'chokidar' import { isIgnored, tryResolveModule } from '@nuxt/kit' +import { interopDefault } from 'mlly' import { debounce } from 'perfect-debounce' import { normalize } from 'pathe' import type { Nuxt } from 'nuxt/schema' @@ -43,7 +45,45 @@ export async function build (nuxt: Nuxt) { } } -function watch (nuxt: Nuxt) { +const watchEvents: Record = { + create: 'add', + delete: 'unlink', + update: 'change' +} + +async function watch (nuxt: Nuxt) { + if (nuxt.options.experimental.watcher === 'parcel') { + if (nuxt.options.debug) { + console.time('[nuxt] builder:parcel:watch') + } + const watcherPath = await tryResolveModule('@parcel/watcher', [nuxt.options.rootDir, ...nuxt.options.modulesDir]) + if (watcherPath) { + const { subscribe } = await import(pathToFileURL(watcherPath).href).then(interopDefault) as typeof import('@parcel/watcher') + for (const layer of nuxt.options._layers) { + if (!layer.config.srcDir) { continue } + const watcher = subscribe(layer.config.srcDir, (err, events) => { + if (err) { return } + for (const event of events) { + if (isIgnored(event.path)) { continue } + nuxt.callHook('builder:watch', watchEvents[event.type], normalize(event.path)) + } + }, { + ignore: [ + ...nuxt.options.ignore, + '.nuxt', + 'node_modules' + ] + }) + watcher.then((subscription) => { + console.timeEnd('[nuxt] builder:parcel:watch') + nuxt.hook('close', () => subscription.unsubscribe()) + }) + } + return + } + console.warn('[nuxt] falling back to `chokidar` as `@parcel/watcher` cannot be resolved in your project.') + } + if (nuxt.options.debug) { console.time('[nuxt] builder:chokidar:watch') } @@ -65,7 +105,6 @@ function watch (nuxt: Nuxt) { watcher.on('all', (event, path) => nuxt.callHook('builder:watch', event, normalize(path))) nuxt.hook('close', () => watcher.close()) - return watcher } async function bundle (nuxt: Nuxt) { diff --git a/packages/nuxt/src/core/schema.ts b/packages/nuxt/src/core/schema.ts index 1d77e1e73e..e2f4d3b3cf 100644 --- a/packages/nuxt/src/core/schema.ts +++ b/packages/nuxt/src/core/schema.ts @@ -1,10 +1,12 @@ import { existsSync } from 'node:fs' import { mkdir, writeFile } from 'node:fs/promises' +import { pathToFileURL } from 'node:url' import { dirname, resolve } from 'pathe' import chokidar from 'chokidar' +import { interopDefault } from 'mlly' import { defu } from 'defu' import { debounce } from 'perfect-debounce' -import { createResolver, defineNuxtModule } from '@nuxt/kit' +import { createResolver, defineNuxtModule, tryResolveModule } from '@nuxt/kit' import { generateTypes, resolveSchema as resolveUntypedSchema @@ -57,6 +59,26 @@ export default defineNuxtModule({ // Watch for schema changes in development mode if (nuxt.options.dev) { + const onChange = debounce(async () => { + schema = await resolveSchema() + await writeSchema(schema) + }) + + if (nuxt.options.experimental.watcher === 'parcel') { + const watcherPath = await tryResolveModule('@parcel/watcher', [nuxt.options.rootDir, ...nuxt.options.modulesDir]) + if (watcherPath) { + const { subscribe } = await import(pathToFileURL(watcherPath).href).then(interopDefault) as typeof import('@parcel/watcher') + for (const layer of nuxt.options._layers) { + const subscription = await subscribe(layer.config.rootDir, onChange, { + ignore: ['!nuxt.schema.*'] + }) + nuxt.hook('close', () => subscription.unsubscribe()) + } + return + } + console.warn('[nuxt] falling back to `chokidar` as `@parcel/watcher` cannot be resolved in your project.') + } + const filesToWatch = await Promise.all(nuxt.options._layers.map(layer => resolver.resolve(layer.config.rootDir, 'nuxt.schema.*') )) @@ -64,10 +86,6 @@ export default defineNuxtModule({ ...nuxt.options.watchers.chokidar, ignoreInitial: true }) - const onChange = debounce(async () => { - schema = await resolveSchema() - await writeSchema(schema) - }) watcher.on('all', onChange) nuxt.hook('close', () => watcher.close()) } diff --git a/packages/schema/src/config/common.ts b/packages/schema/src/config/common.ts index bce40ea5ad..bc0437e454 100644 --- a/packages/schema/src/config/common.ts +++ b/packages/schema/src/config/common.ts @@ -345,6 +345,7 @@ export default defineUntypedSchema({ '**/*.{spec,test}.{js,ts,jsx,tsx}', // ignore tests '**/*.d.ts', // ignore type declarations '.output', + '.git', await get('ignorePrefix') && `**/${await get('ignorePrefix')}*.*` ].concat(val).filter(Boolean) }, diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index 005110a0b4..ab0023d520 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -161,5 +161,19 @@ export default defineUntypedSchema({ /** Resolve `~`, `~~`, `@` and `@@` aliases located within layers with respect to their layer source and root directories. */ localLayerAliases: true, + + /** + * Set an alternative watcher that will be used as the watching service for Nuxt. + * + * Nuxt uses 'chokidar' by default, but by setting this to `parcel` it will use + * `@parcel/watcher` instead. This may improve performance in large projects or + * on Windows platforms. + * + * @see https://github.com/paulmillr/chokidar + * @see https://github.com/parcel-bundler/watcher + * @default chokidar + * @type {'chokidar' | 'parcel'} + */ + watcher: 'chokidar' } }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 39ea6aafd2..531e5f4242 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -687,6 +687,9 @@ importers: specifier: ^4.1.6 version: 4.1.6(vue@3.2.47) devDependencies: + '@parcel/watcher': + specifier: ^2.1.0 + version: 2.1.0 '@types/estree': specifier: ^1.0.1 version: 1.0.1 @@ -2133,6 +2136,17 @@ packages: - supports-color dev: true + /@parcel/watcher@2.1.0: + resolution: {integrity: sha512-8s8yYjd19pDSsBpbkOHnT6Z2+UJSuLQx61pCFM0s5wSRvKCEMDjd/cHY3/GI1szHIWbpXpsJdg3V6ISGGx9xDw==} + engines: {node: '>= 10.0.0'} + requiresBuild: true + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.5 + node-addon-api: 3.2.1 + node-gyp-build: 4.6.0 + dev: true + /@pkgr/utils@2.3.1: resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -7238,6 +7252,10 @@ packages: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} dev: false + /node-addon-api@3.2.1: + resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} + dev: true + /node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} From 5f016b180e5fa13a761f5c317afa6e5005220f69 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 19 Apr 2023 22:19:30 +0100 Subject: [PATCH 067/912] chore(deps): update all non-major dependencies (main) (#20400) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- packages/kit/package.json | 4 +- packages/nuxi/package.json | 4 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/vite/package.json | 4 +- packages/webpack/package.json | 6 +- pnpm-lock.yaml | 649 +++++++++++++++++----------------- 7 files changed, 337 insertions(+), 334 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index aac2fa7519..ebc5dfe55a 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -21,7 +21,7 @@ }, "dependencies": { "@nuxt/schema": "workspace:../schema", - "c12": "^1.3.0", + "c12": "^1.4.1", "consola": "^3.1.0", "defu": "^6.1.2", "globby": "^13.1.4", @@ -47,7 +47,7 @@ "unbuild": "latest", "vite": "^4.2.2", "vitest": "^0.30.1", - "webpack": "^5.79.0" + "webpack": "^5.80.0" }, "engines": { "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index bb538c7cf7..7b3dcd5b6f 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -24,7 +24,7 @@ "@types/flat": "^5.0.2", "@types/mri": "^1.1.1", "@types/semver": "^7.3.13", - "c12": "^1.3.0", + "c12": "^1.4.1", "chokidar": "^3.5.3", "clear": "^0.1.0", "clipboardy": "^3.0.0", @@ -41,7 +41,7 @@ "listhen": "^1.0.4", "mlly": "^1.2.0", "mri": "^1.2.0", - "ohash": "^1.1.0", + "ohash": "^1.1.1", "pathe": "^1.1.0", "perfect-debounce": "^0.1.3", "pkg-types": "^1.0.2", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 00c01c0934..0833fea9db 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -81,7 +81,7 @@ "nuxi": "workspace:../nuxi", "nypm": "^0.2.0", "ofetch": "^1.0.1", - "ohash": "^1.1.0", + "ohash": "^1.1.1", "pathe": "^1.1.0", "perfect-debounce": "^0.1.3", "prompts": "^2.4.2", diff --git a/packages/schema/package.json b/packages/schema/package.json index d6037e401d..22e87716df 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -34,7 +34,7 @@ "vue": "3.2.47", "vue-bundle-renderer": "^1.0.3", "vue-router": "^4.1.6", - "webpack": "^5.79.0" + "webpack": "^5.80.0" }, "dependencies": { "defu": "^6.1.2", diff --git a/packages/vite/package.json b/packages/vite/package.json index 841bb89bb5..518375decc 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -42,11 +42,11 @@ "knitwork": "^1.0.0", "magic-string": "^0.30.0", "mlly": "^1.2.0", - "ohash": "^1.1.0", + "ohash": "^1.1.1", "pathe": "^1.1.0", "perfect-debounce": "^0.1.3", "pkg-types": "^1.0.2", - "postcss": "^8.4.22", + "postcss": "^8.4.23", "postcss-import": "^15.1.0", "postcss-url": "^10.1.3", "rollup-plugin-visualizer": "^5.9.0", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index df724c6a7e..d114413932 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -38,10 +38,10 @@ "memfs": "^3.5.0", "mini-css-extract-plugin": "^2.7.5", "mlly": "^1.2.0", - "ohash": "^1.1.0", + "ohash": "^1.1.1", "pathe": "^1.1.0", "pify": "^6.1.0", - "postcss": "^8.4.22", + "postcss": "^8.4.23", "postcss-import": "^15.1.0", "postcss-loader": "^7.2.4", "postcss-url": "^10.1.3", @@ -51,7 +51,7 @@ "url-loader": "^4.1.1", "vue-bundle-renderer": "^1.0.3", "vue-loader": "^17.0.1", - "webpack": "^5.79.0", + "webpack": "^5.80.0", "webpack-bundle-analyzer": "^4.8.0", "webpack-dev-middleware": "^6.0.2", "webpack-hot-middleware": "^2.25.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 531e5f4242..b6b4bd15ac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,7 +134,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -143,7 +143,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -152,7 +152,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -173,7 +173,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../packages/nuxt @@ -182,7 +182,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -191,7 +191,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -200,7 +200,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -209,7 +209,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -218,7 +218,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -227,7 +227,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -236,7 +236,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -245,7 +245,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -254,7 +254,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -263,7 +263,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -278,7 +278,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -287,7 +287,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -296,7 +296,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -305,7 +305,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -314,7 +314,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -323,7 +323,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -332,7 +332,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -341,7 +341,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -350,7 +350,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -359,7 +359,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -370,8 +370,8 @@ importers: specifier: workspace:* version: link:../schema c12: - specifier: ^1.3.0 - version: 1.3.0 + specifier: ^1.4.1 + version: 1.4.1 consola: specifier: ^3.1.0 version: 3.1.0 @@ -443,8 +443,8 @@ importers: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) webpack: - specifier: ^5.79.0 - version: 5.79.0 + specifier: ^5.80.0 + version: 5.80.0 packages/nuxi: optionalDependencies: @@ -471,8 +471,8 @@ importers: specifier: ^7.3.13 version: 7.3.13 c12: - specifier: ^1.3.0 - version: 1.3.0 + specifier: ^1.4.1 + version: 1.4.1 chokidar: specifier: ^3.5.3 version: 3.5.3 @@ -522,8 +522,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 ohash: - specifier: ^1.1.0 - version: 1.1.0 + specifier: ^1.1.1 + version: 1.1.1 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -639,8 +639,8 @@ importers: specifier: ^1.0.1 version: 1.0.1 ohash: - specifier: ^1.1.0 - version: 1.1.0 + specifier: ^1.1.1 + version: 1.1.1 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -785,8 +785,8 @@ importers: specifier: ^4.1.6 version: 4.1.6(vue@3.2.47) webpack: - specifier: ^5.79.0 - version: 5.79.0 + specifier: ^5.80.0 + version: 5.80.0 packages/test-utils: dependencies: @@ -850,13 +850,13 @@ importers: version: 3.0.1(vite@4.2.1)(vue@3.2.47) autoprefixer: specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.22) + version: 10.4.14(postcss@8.4.23) clear: specifier: ^0.1.0 version: 0.1.0 cssnano: specifier: ^6.0.0 - version: 6.0.0(postcss@8.4.22) + version: 6.0.0(postcss@8.4.23) defu: specifier: ^6.1.2 version: 6.1.2 @@ -891,8 +891,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 ohash: - specifier: ^1.1.0 - version: 1.1.0 + specifier: ^1.1.1 + version: 1.1.1 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -903,14 +903,14 @@ importers: specifier: ^1.0.2 version: 1.0.2 postcss: - specifier: ^8.4.22 - version: 8.4.22 + specifier: ^8.4.23 + version: 8.4.23 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.22) + version: 15.1.0(postcss@8.4.23) postcss-url: specifier: ^10.1.3 - version: 10.1.3(postcss@8.4.22) + version: 10.1.3(postcss@8.4.23) rollup-plugin-visualizer: specifier: ^5.9.0 version: 5.9.0(rollup@3.20.2) @@ -956,25 +956,25 @@ importers: dependencies: '@nuxt/friendly-errors-webpack-plugin': specifier: ^2.5.2 - version: 2.5.2(webpack@5.79.0) + version: 2.5.2(webpack@5.80.0) '@nuxt/kit': specifier: workspace:* version: link:../kit autoprefixer: specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.22) + version: 10.4.14(postcss@8.4.23) css-loader: specifier: ^6.7.3 - version: 6.7.3(webpack@5.79.0) + version: 6.7.3(webpack@5.80.0) css-minimizer-webpack-plugin: specifier: ^5.0.0 - version: 5.0.0(webpack@5.79.0) + version: 5.0.0(webpack@5.80.0) cssnano: specifier: ^6.0.0 - version: 6.0.0(postcss@8.4.22) + version: 6.0.0(postcss@8.4.23) esbuild-loader: specifier: ^3.0.1 - version: 3.0.1(webpack@5.79.0) + version: 3.0.1(webpack@5.80.0) escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -983,10 +983,10 @@ importers: version: 3.0.3 file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.79.0) + version: 6.2.0(webpack@5.80.0) fork-ts-checker-webpack-plugin: specifier: ^8.0.0 - version: 8.0.0(typescript@5.0.4)(webpack@5.79.0) + version: 8.0.0(typescript@5.0.4)(webpack@5.80.0) fs-extra: specifier: ^11.1.1 version: 11.1.1 @@ -1007,13 +1007,13 @@ importers: version: 3.5.0 mini-css-extract-plugin: specifier: ^2.7.5 - version: 2.7.5(webpack@5.79.0) + version: 2.7.5(webpack@5.80.0) mlly: specifier: ^1.2.0 version: 1.2.0 ohash: - specifier: ^1.1.0 - version: 1.1.0 + specifier: ^1.1.1 + version: 1.1.1 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -1021,20 +1021,20 @@ importers: specifier: ^6.1.0 version: 6.1.0 postcss: - specifier: ^8.4.22 - version: 8.4.22 + specifier: ^8.4.23 + version: 8.4.23 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.22) + version: 15.1.0(postcss@8.4.23) postcss-loader: specifier: ^7.2.4 - version: 7.2.4(@types/node@18.15.11)(postcss@8.4.22)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.79.0) + version: 7.2.4(@types/node@18.15.11)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.80.0) postcss-url: specifier: ^10.1.3 - version: 10.1.3(postcss@8.4.22) + version: 10.1.3(postcss@8.4.23) time-fix-plugin: specifier: ^2.0.7 - version: 2.0.7(webpack@5.79.0) + version: 2.0.7(webpack@5.80.0) ufo: specifier: ^1.1.1 version: 1.1.1 @@ -1043,22 +1043,22 @@ importers: version: 1.3.1 url-loader: specifier: ^4.1.1 - version: 4.1.1(file-loader@6.2.0)(webpack@5.79.0) + version: 4.1.1(file-loader@6.2.0)(webpack@5.80.0) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 vue-loader: specifier: ^17.0.1 - version: 17.0.1(vue@3.2.47)(webpack@5.79.0) + version: 17.0.1(vue@3.2.47)(webpack@5.80.0) webpack: - specifier: ^5.79.0 - version: 5.79.0 + specifier: ^5.80.0 + version: 5.80.0 webpack-bundle-analyzer: specifier: ^4.8.0 version: 4.8.0 webpack-dev-middleware: specifier: ^6.0.2 - version: 6.0.2(webpack@5.79.0) + version: 6.0.2(webpack@5.80.0) webpack-hot-middleware: specifier: ^2.25.3 version: 2.25.3 @@ -1067,7 +1067,7 @@ importers: version: 0.5.0 webpackbar: specifier: ^5.0.2 - version: 5.0.2(webpack@5.79.0) + version: 5.0.2(webpack@5.80.0) devDependencies: '@nuxt/schema': specifier: workspace:* @@ -2007,7 +2007,7 @@ packages: resolution: {integrity: sha512-YBI/6o2EBz02tdEJRBK8xkt3zvOFOWlLBf7WKYGBsSYSRtjjgrqPe2skp6VLLmKx5WbHHDNcW+6oACaurxGzeA==} dev: false - /@nuxt/friendly-errors-webpack-plugin@2.5.2(webpack@5.79.0): + /@nuxt/friendly-errors-webpack-plugin@2.5.2(webpack@5.80.0): resolution: {integrity: sha512-LLc+90lnxVbpKkMqk5z1EWpXoODhc6gRkqqXJCInJwF5xabHAE7biFvbULfvTRmtaTzAaP8IV4HQDLUgeAUTTw==} engines: {node: '>=8.0.0', npm: '>=5.0.0'} peerDependencies: @@ -2017,7 +2017,7 @@ packages: consola: 2.15.3 error-stack-parser: 2.1.4 string-width: 4.2.3 - webpack: 5.79.0 + webpack: 5.80.0 dev: false /@nuxt/telemetry@2.2.0: @@ -2049,14 +2049,14 @@ packages: resolution: {integrity: sha512-PjVETP7+iZXAs5Q8O4ivl4t6qjWZMZqwiTVogUXHoHGZZcw7GZW3u3tzfYfE1HbzyYJfr236IXqQ02MeR8Fz2w==} dev: false - /@nuxt/ui@0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.79.0): + /@nuxt/ui@0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0): resolution: {integrity: sha512-KkPAJ+7snNj3lbvzgc6UD5exVsLGExJPP1WwPIdMfXBAUUytXV5CTftpySxcAclN8j+B/GIbcjagBOpJkr7KGQ==} dependencies: '@iconify-json/carbon': 1.1.16 '@nuxt/kit': link:packages/kit '@nuxtjs/color-mode': 3.2.0 '@unocss/core': 0.45.30 - '@unocss/nuxt': 0.45.30(rollup@3.20.2)(vite@3.2.5)(webpack@5.79.0) + '@unocss/nuxt': 0.45.30(rollup@3.20.2)(vite@3.2.5)(webpack@5.80.0) '@unocss/preset-attributify': 0.45.30 '@unocss/preset-icons': 0.45.30 '@unocss/preset-mini': 0.45.30 @@ -2522,7 +2522,7 @@ packages: dependencies: '@types/node': 18.15.11 tapable: 2.2.1 - webpack: 5.79.0 + webpack: 5.80.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -2535,7 +2535,7 @@ packages: dependencies: '@types/connect': 3.4.35 tapable: 2.2.1 - webpack: 5.79.0 + webpack: 5.80.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -2796,7 +2796,7 @@ packages: sirv: 2.0.2 dev: true - /@unocss/nuxt@0.45.30(rollup@3.20.2)(vite@3.2.5)(webpack@5.79.0): + /@unocss/nuxt@0.45.30(rollup@3.20.2)(vite@3.2.5)(webpack@5.80.0): resolution: {integrity: sha512-m2CEbLLoqE/WacdEGEDXR9R3FbTbSTPV5gPL0Myv0jrHRSRt1MkULZ/IfPgA/A/QiOzcSIUTVXW1dSlOFh5ngQ==} dependencies: '@nuxt/kit': link:packages/kit @@ -2810,7 +2810,7 @@ packages: '@unocss/preset-wind': 0.45.30 '@unocss/reset': 0.45.30 '@unocss/vite': 0.45.30(rollup@3.20.2)(vite@3.2.5) - '@unocss/webpack': 0.45.30(rollup@3.20.2)(webpack@5.79.0) + '@unocss/webpack': 0.45.30(rollup@3.20.2)(webpack@5.80.0) unocss: 0.45.30(@unocss/webpack@0.45.30)(rollup@3.20.2)(vite@3.2.5) transitivePeerDependencies: - rollup @@ -2926,7 +2926,7 @@ packages: - rollup dev: true - /@unocss/webpack@0.45.30(rollup@3.20.2)(webpack@5.79.0): + /@unocss/webpack@0.45.30(rollup@3.20.2)(webpack@5.80.0): resolution: {integrity: sha512-ke3B+YHmd2O6fxSUoHn24lfiQl1gsc8EQp5n4cqsy92IVw+lmGrVj6V3EyIN5aykrxgEqiZc9NLhPoADWoai7g==} peerDependencies: webpack: ^4 || ^5 @@ -2937,7 +2937,7 @@ packages: '@unocss/core': 0.45.30 magic-string: 0.30.0 unplugin: 0.10.2 - webpack: 5.79.0 + webpack: 5.80.0 webpack-sources: 3.2.3 transitivePeerDependencies: - rollup @@ -3105,7 +3105,7 @@ packages: '@vue/shared': 3.2.47 estree-walker: 2.0.2 magic-string: 0.30.0 - postcss: 8.4.22 + postcss: 8.4.23 source-map: 0.6.1 /@vue/compiler-ssr@3.2.47: @@ -3244,95 +3244,95 @@ packages: - vue dev: true - /@webassemblyjs/ast@1.11.1: - resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} + /@webassemblyjs/ast@1.11.5: + resolution: {integrity: sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==} dependencies: - '@webassemblyjs/helper-numbers': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 + '@webassemblyjs/helper-numbers': 1.11.5 + '@webassemblyjs/helper-wasm-bytecode': 1.11.5 - /@webassemblyjs/floating-point-hex-parser@1.11.1: - resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} + /@webassemblyjs/floating-point-hex-parser@1.11.5: + resolution: {integrity: sha512-1j1zTIC5EZOtCplMBG/IEwLtUojtwFVwdyVMbL/hwWqbzlQoJsWCOavrdnLkemwNoC/EOwtUFch3fuo+cbcXYQ==} - /@webassemblyjs/helper-api-error@1.11.1: - resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} + /@webassemblyjs/helper-api-error@1.11.5: + resolution: {integrity: sha512-L65bDPmfpY0+yFrsgz8b6LhXmbbs38OnwDCf6NpnMUYqa+ENfE5Dq9E42ny0qz/PdR0LJyq/T5YijPnU8AXEpA==} - /@webassemblyjs/helper-buffer@1.11.1: - resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} + /@webassemblyjs/helper-buffer@1.11.5: + resolution: {integrity: sha512-fDKo1gstwFFSfacIeH5KfwzjykIE6ldh1iH9Y/8YkAZrhmu4TctqYjSh7t0K2VyDSXOZJ1MLhht/k9IvYGcIxg==} - /@webassemblyjs/helper-numbers@1.11.1: - resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} + /@webassemblyjs/helper-numbers@1.11.5: + resolution: {integrity: sha512-DhykHXM0ZABqfIGYNv93A5KKDw/+ywBFnuWybZZWcuzWHfbp21wUfRkbtz7dMGwGgT4iXjWuhRMA2Mzod6W4WA==} dependencies: - '@webassemblyjs/floating-point-hex-parser': 1.11.1 - '@webassemblyjs/helper-api-error': 1.11.1 + '@webassemblyjs/floating-point-hex-parser': 1.11.5 + '@webassemblyjs/helper-api-error': 1.11.5 '@xtuc/long': 4.2.2 - /@webassemblyjs/helper-wasm-bytecode@1.11.1: - resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} + /@webassemblyjs/helper-wasm-bytecode@1.11.5: + resolution: {integrity: sha512-oC4Qa0bNcqnjAowFn7MPCETQgDYytpsfvz4ujZz63Zu/a/v71HeCAAmZsgZ3YVKec3zSPYytG3/PrRCqbtcAvA==} - /@webassemblyjs/helper-wasm-section@1.11.1: - resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} + /@webassemblyjs/helper-wasm-section@1.11.5: + resolution: {integrity: sha512-uEoThA1LN2NA+K3B9wDo3yKlBfVtC6rh0i4/6hvbz071E8gTNZD/pT0MsBf7MeD6KbApMSkaAK0XeKyOZC7CIA==} dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/helper-buffer': 1.11.5 + '@webassemblyjs/helper-wasm-bytecode': 1.11.5 + '@webassemblyjs/wasm-gen': 1.11.5 - /@webassemblyjs/ieee754@1.11.1: - resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} + /@webassemblyjs/ieee754@1.11.5: + resolution: {integrity: sha512-37aGq6qVL8A8oPbPrSGMBcp38YZFXcHfiROflJn9jxSdSMMM5dS5P/9e2/TpaJuhE+wFrbukN2WI6Hw9MH5acg==} dependencies: '@xtuc/ieee754': 1.2.0 - /@webassemblyjs/leb128@1.11.1: - resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} + /@webassemblyjs/leb128@1.11.5: + resolution: {integrity: sha512-ajqrRSXaTJoPW+xmkfYN6l8VIeNnR4vBOTQO9HzR7IygoCcKWkICbKFbVTNMjMgMREqXEr0+2M6zukzM47ZUfQ==} dependencies: '@xtuc/long': 4.2.2 - /@webassemblyjs/utf8@1.11.1: - resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} + /@webassemblyjs/utf8@1.11.5: + resolution: {integrity: sha512-WiOhulHKTZU5UPlRl53gHR8OxdGsSOxqfpqWeA2FmcwBMaoEdz6b2x2si3IwC9/fSPLfe8pBMRTHVMk5nlwnFQ==} - /@webassemblyjs/wasm-edit@1.11.1: - resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} + /@webassemblyjs/wasm-edit@1.11.5: + resolution: {integrity: sha512-C0p9D2fAu3Twwqvygvf42iGCQ4av8MFBLiTb+08SZ4cEdwzWx9QeAHDo1E2k+9s/0w1DM40oflJOpkZ8jW4HCQ==} dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/helper-wasm-section': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 - '@webassemblyjs/wasm-opt': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 - '@webassemblyjs/wast-printer': 1.11.1 + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/helper-buffer': 1.11.5 + '@webassemblyjs/helper-wasm-bytecode': 1.11.5 + '@webassemblyjs/helper-wasm-section': 1.11.5 + '@webassemblyjs/wasm-gen': 1.11.5 + '@webassemblyjs/wasm-opt': 1.11.5 + '@webassemblyjs/wasm-parser': 1.11.5 + '@webassemblyjs/wast-printer': 1.11.5 - /@webassemblyjs/wasm-gen@1.11.1: - resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} + /@webassemblyjs/wasm-gen@1.11.5: + resolution: {integrity: sha512-14vteRlRjxLK9eSyYFvw1K8Vv+iPdZU0Aebk3j6oB8TQiQYuO6hj9s4d7qf6f2HJr2khzvNldAFG13CgdkAIfA==} dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/ieee754': 1.11.1 - '@webassemblyjs/leb128': 1.11.1 - '@webassemblyjs/utf8': 1.11.1 + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/helper-wasm-bytecode': 1.11.5 + '@webassemblyjs/ieee754': 1.11.5 + '@webassemblyjs/leb128': 1.11.5 + '@webassemblyjs/utf8': 1.11.5 - /@webassemblyjs/wasm-opt@1.11.1: - resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} + /@webassemblyjs/wasm-opt@1.11.5: + resolution: {integrity: sha512-tcKwlIXstBQgbKy1MlbDMlXaxpucn42eb17H29rawYLxm5+MsEmgPzeCP8B1Cl69hCice8LeKgZpRUAPtqYPgw==} dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-buffer': 1.11.1 - '@webassemblyjs/wasm-gen': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/helper-buffer': 1.11.5 + '@webassemblyjs/wasm-gen': 1.11.5 + '@webassemblyjs/wasm-parser': 1.11.5 - /@webassemblyjs/wasm-parser@1.11.1: - resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} + /@webassemblyjs/wasm-parser@1.11.5: + resolution: {integrity: sha512-SVXUIwsLQlc8srSD7jejsfTU83g7pIGr2YYNb9oHdtldSxaOhvA5xwvIiWIfcX8PlSakgqMXsLpLfbbJ4cBYew==} dependencies: - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/helper-api-error': 1.11.1 - '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - '@webassemblyjs/ieee754': 1.11.1 - '@webassemblyjs/leb128': 1.11.1 - '@webassemblyjs/utf8': 1.11.1 + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/helper-api-error': 1.11.5 + '@webassemblyjs/helper-wasm-bytecode': 1.11.5 + '@webassemblyjs/ieee754': 1.11.5 + '@webassemblyjs/leb128': 1.11.5 + '@webassemblyjs/utf8': 1.11.5 - /@webassemblyjs/wast-printer@1.11.1: - resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} + /@webassemblyjs/wast-printer@1.11.5: + resolution: {integrity: sha512-f7Pq3wvg3GSPUPzR0F6bmI89Hdb+u9WXrSKc4v+N0aV0q6r42WoF92Jp2jEorBEBRoRNXgjp53nBniDXcqZYPA==} dependencies: - '@webassemblyjs/ast': 1.11.1 + '@webassemblyjs/ast': 1.11.5 '@xtuc/long': 4.2.2 /@xtuc/ieee754@1.2.0: @@ -3600,7 +3600,7 @@ packages: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true - /autoprefixer@10.4.14(postcss@8.4.22): + /autoprefixer@10.4.14(postcss@8.4.23): resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -3612,7 +3612,7 @@ packages: fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false @@ -3799,15 +3799,18 @@ packages: streamsearch: 1.1.0 dev: true - /c12@1.3.0: - resolution: {integrity: sha512-cYdnZn0y803ByEYHK7+gKmcQK9cqLuGciL3lOwOJnOMAEd9y4604OYAEVK385NkMcgGYltZhLW7eddJrWsFrkg==} + /c12@1.4.1: + resolution: {integrity: sha512-0x7pWfLZpZsgtyotXtuepJc0rZYE0Aw8PwNAXs0jSG9zq6Sl5xmbWnFqfmRY01ieZLHNbvneSFm9/x88CvzAuw==} dependencies: + chokidar: 3.5.3 defu: 6.1.2 dotenv: 16.0.3 giget: 1.1.2 jiti: 1.18.2 mlly: 1.2.0 + ohash: 1.1.1 pathe: 1.1.0 + perfect-debounce: 0.1.3 pkg-types: 1.0.2 rc9: 2.1.0 transitivePeerDependencies: @@ -3894,7 +3897,7 @@ packages: resolution: {integrity: sha512-RjTrgJlTHhbGlMo/s73j7uSTspla3ykr0UA5zwRs/HIZvElY6qZHu3X70httgC2Du5poS2wFCS10WLfwZr7ZTQ==} hasBin: true dependencies: - c12: 1.3.0 + c12: 1.4.1 colorette: 2.0.20 consola: 3.1.0 convert-gitmoji: 0.1.3 @@ -4203,33 +4206,33 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /css-declaration-sorter@6.3.1(postcss@8.4.22): + /css-declaration-sorter@6.3.1(postcss@8.4.23): resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 dev: false - /css-loader@6.7.3(webpack@5.79.0): + /css-loader@6.7.3(webpack@5.80.0): resolution: {integrity: sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.22) - postcss: 8.4.22 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.22) - postcss-modules-local-by-default: 4.0.0(postcss@8.4.22) - postcss-modules-scope: 3.0.0(postcss@8.4.22) - postcss-modules-values: 4.0.0(postcss@8.4.22) + icss-utils: 5.1.0(postcss@8.4.23) + postcss: 8.4.23 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.23) + postcss-modules-local-by-default: 4.0.0(postcss@8.4.23) + postcss-modules-scope: 3.0.0(postcss@8.4.23) + postcss-modules-values: 4.0.0(postcss@8.4.23) postcss-value-parser: 4.2.0 semver: 7.5.0 - webpack: 5.79.0 + webpack: 5.80.0 dev: false - /css-minimizer-webpack-plugin@5.0.0(webpack@5.79.0): + /css-minimizer-webpack-plugin@5.0.0(webpack@5.80.0): resolution: {integrity: sha512-1wZ/PYvg+ZKwi5FX6YrvbB31jMAdurS+CmRQLwWCVSlfzJC85l/a6RVICqUHFa+jXyhilfnCyjafzJGbmz5tcA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -4254,13 +4257,13 @@ packages: lightningcss: optional: true dependencies: - cssnano: 6.0.0(postcss@8.4.22) + cssnano: 6.0.0(postcss@8.4.23) jest-worker: 29.5.0 - postcss: 8.4.22 + postcss: 8.4.23 schema-utils: 4.0.0 serialize-javascript: 6.0.1 source-map: 0.6.1 - webpack: 5.79.0 + webpack: 5.80.0 dev: false /css-select@1.2.0: @@ -4311,62 +4314,62 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-preset-default@6.0.0(postcss@8.4.22): + /cssnano-preset-default@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-BDxlaFzObRDXUiCCBQUNQcI+f1/aX2mgoNtXGjV6PG64POcHoDUoX+LgMWw+Q4609QhxwkcSnS65YFs42RA6qQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.3.1(postcss@8.4.22) - cssnano-utils: 4.0.0(postcss@8.4.22) - postcss: 8.4.22 - postcss-calc: 8.2.4(postcss@8.4.22) - postcss-colormin: 6.0.0(postcss@8.4.22) - postcss-convert-values: 6.0.0(postcss@8.4.22) - postcss-discard-comments: 6.0.0(postcss@8.4.22) - postcss-discard-duplicates: 6.0.0(postcss@8.4.22) - postcss-discard-empty: 6.0.0(postcss@8.4.22) - postcss-discard-overridden: 6.0.0(postcss@8.4.22) - postcss-merge-longhand: 6.0.0(postcss@8.4.22) - postcss-merge-rules: 6.0.0(postcss@8.4.22) - postcss-minify-font-values: 6.0.0(postcss@8.4.22) - postcss-minify-gradients: 6.0.0(postcss@8.4.22) - postcss-minify-params: 6.0.0(postcss@8.4.22) - postcss-minify-selectors: 6.0.0(postcss@8.4.22) - postcss-normalize-charset: 6.0.0(postcss@8.4.22) - postcss-normalize-display-values: 6.0.0(postcss@8.4.22) - postcss-normalize-positions: 6.0.0(postcss@8.4.22) - postcss-normalize-repeat-style: 6.0.0(postcss@8.4.22) - postcss-normalize-string: 6.0.0(postcss@8.4.22) - postcss-normalize-timing-functions: 6.0.0(postcss@8.4.22) - postcss-normalize-unicode: 6.0.0(postcss@8.4.22) - postcss-normalize-url: 6.0.0(postcss@8.4.22) - postcss-normalize-whitespace: 6.0.0(postcss@8.4.22) - postcss-ordered-values: 6.0.0(postcss@8.4.22) - postcss-reduce-initial: 6.0.0(postcss@8.4.22) - postcss-reduce-transforms: 6.0.0(postcss@8.4.22) - postcss-svgo: 6.0.0(postcss@8.4.22) - postcss-unique-selectors: 6.0.0(postcss@8.4.22) + css-declaration-sorter: 6.3.1(postcss@8.4.23) + cssnano-utils: 4.0.0(postcss@8.4.23) + postcss: 8.4.23 + postcss-calc: 8.2.4(postcss@8.4.23) + postcss-colormin: 6.0.0(postcss@8.4.23) + postcss-convert-values: 6.0.0(postcss@8.4.23) + postcss-discard-comments: 6.0.0(postcss@8.4.23) + postcss-discard-duplicates: 6.0.0(postcss@8.4.23) + postcss-discard-empty: 6.0.0(postcss@8.4.23) + postcss-discard-overridden: 6.0.0(postcss@8.4.23) + postcss-merge-longhand: 6.0.0(postcss@8.4.23) + postcss-merge-rules: 6.0.0(postcss@8.4.23) + postcss-minify-font-values: 6.0.0(postcss@8.4.23) + postcss-minify-gradients: 6.0.0(postcss@8.4.23) + postcss-minify-params: 6.0.0(postcss@8.4.23) + postcss-minify-selectors: 6.0.0(postcss@8.4.23) + postcss-normalize-charset: 6.0.0(postcss@8.4.23) + postcss-normalize-display-values: 6.0.0(postcss@8.4.23) + postcss-normalize-positions: 6.0.0(postcss@8.4.23) + postcss-normalize-repeat-style: 6.0.0(postcss@8.4.23) + postcss-normalize-string: 6.0.0(postcss@8.4.23) + postcss-normalize-timing-functions: 6.0.0(postcss@8.4.23) + postcss-normalize-unicode: 6.0.0(postcss@8.4.23) + postcss-normalize-url: 6.0.0(postcss@8.4.23) + postcss-normalize-whitespace: 6.0.0(postcss@8.4.23) + postcss-ordered-values: 6.0.0(postcss@8.4.23) + postcss-reduce-initial: 6.0.0(postcss@8.4.23) + postcss-reduce-transforms: 6.0.0(postcss@8.4.23) + postcss-svgo: 6.0.0(postcss@8.4.23) + postcss-unique-selectors: 6.0.0(postcss@8.4.23) dev: false - /cssnano-utils@4.0.0(postcss@8.4.22): + /cssnano-utils@4.0.0(postcss@8.4.23): resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 dev: false - /cssnano@6.0.0(postcss@8.4.22): + /cssnano@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-RGlcbzGhzEBCHuQe3k+Udyj5M00z0pm9S+VurHXFEOXxH+y0sVrJH2sMzoyz2d8N1EScazg+DVvmgyx0lurwwA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 6.0.0(postcss@8.4.22) + cssnano-preset-default: 6.0.0(postcss@8.4.23) lilconfig: 2.1.0 - postcss: 8.4.22 + postcss: 8.4.23 dev: false /csso@5.0.5: @@ -4677,8 +4680,8 @@ packages: tapable: 1.1.3 dev: false - /enhanced-resolve@5.12.0: - resolution: {integrity: sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==} + /enhanced-resolve@5.13.0: + resolution: {integrity: sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.10 @@ -4909,7 +4912,7 @@ packages: dev: true optional: true - /esbuild-loader@3.0.1(webpack@5.79.0): + /esbuild-loader@3.0.1(webpack@5.80.0): resolution: {integrity: sha512-aZfGybqTeuyCd4AsVvWOOfkhIuN+wfZFjMyh3gyQEU1Uvsl8L6vye9HqP93iRa0iTA+6Jclap514PJIC3cLnMA==} peerDependencies: webpack: ^4.40.0 || ^5.0.0 @@ -4917,7 +4920,7 @@ packages: esbuild: 0.17.17 get-tsconfig: 4.5.0 loader-utils: 2.0.4 - webpack: 5.79.0 + webpack: 5.80.0 webpack-sources: 1.4.3 dev: false @@ -5090,7 +5093,7 @@ packages: eslint-plugin-import: '*' dependencies: debug: 4.3.4 - enhanced-resolve: 5.12.0 + enhanced-resolve: 5.13.0 eslint: 8.38.0 eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) @@ -5496,7 +5499,7 @@ packages: /externality@1.0.0: resolution: {integrity: sha512-MAU9ci3XdpqOX1aoIoyL2DMzW97P8LYeJxIUkfXhOfsrkH4KLHFaYDwKN0B2l6tqedVJWiTIJtWmxmZfa05vOQ==} dependencies: - enhanced-resolve: 5.12.0 + enhanced-resolve: 5.13.0 mlly: 1.2.0 pathe: 1.1.0 ufo: 1.1.1 @@ -5561,15 +5564,15 @@ packages: dependencies: flat-cache: 3.0.4 - /file-loader@6.2.0(webpack@5.79.0): + /file-loader@6.2.0(webpack@5.80.0): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: webpack: ^4.0.0 || ^5.0.0 dependencies: loader-utils: 2.0.4 - schema-utils: 3.1.1 - webpack: 5.79.0 + schema-utils: 3.1.2 + webpack: 5.80.0 dev: false /file-uri-to-path@1.0.0: @@ -5635,7 +5638,7 @@ packages: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} dev: true - /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.0.4)(webpack@5.79.0): + /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.0.4)(webpack@5.80.0): resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: @@ -5651,11 +5654,11 @@ packages: memfs: 3.5.0 minimatch: 3.1.2 node-abort-controller: 3.1.1 - schema-utils: 3.1.1 + schema-utils: 3.1.2 semver: 7.5.0 tapable: 2.2.1 typescript: 5.0.4 - webpack: 5.79.0 + webpack: 5.80.0 dev: false /form-data@2.3.3: @@ -6120,13 +6123,13 @@ packages: dependencies: safer-buffer: 2.1.2 - /icss-utils@5.1.0(postcss@8.4.22): + /icss-utils@5.1.0(postcss@8.4.23): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 dev: false /ieee754@1.2.1: @@ -7027,14 +7030,14 @@ packages: engines: {node: '>=4'} dev: true - /mini-css-extract-plugin@2.7.5(webpack@5.79.0): + /mini-css-extract-plugin@2.7.5(webpack@5.80.0): resolution: {integrity: sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: schema-utils: 4.0.0 - webpack: 5.79.0 + webpack: 5.80.0 dev: false /minimatch@3.0.8: @@ -7191,7 +7194,7 @@ packages: '@rollup/pluginutils': 5.0.2(rollup@3.20.2) '@vercel/nft': 0.22.6 archiver: 5.3.1 - c12: 1.3.0 + c12: 1.4.1 chalk: 5.2.0 chokidar: 3.5.3 consola: 3.1.0 @@ -7218,7 +7221,7 @@ packages: mri: 1.2.0 node-fetch-native: 1.1.0 ofetch: 1.0.1 - ohash: 1.1.0 + ohash: 1.1.1 pathe: 1.1.0 perfect-debounce: 0.1.3 pkg-types: 1.0.2 @@ -7412,8 +7415,8 @@ packages: node-fetch-native: 1.1.0 ufo: 1.1.1 - /ohash@1.1.0: - resolution: {integrity: sha512-KNKg5q7wmG6YG46AoWvO2tJoNxcVLuhnn+f0UnoTNuBUpH7tPAOES+R3ptnHw4QpEee4zutsMznAvTZj6eQoLg==} + /ohash@1.1.1: + resolution: {integrity: sha512-N9UDJn2IV6oO6pNclJ80tRXraNNJqw/asscr3Lu7+ibRQdEswejJuuXNclMQTJVTsVhQs+ZJThVziy6t2v2KXA==} /ohmyfetch@0.4.21: resolution: {integrity: sha512-VG7f/JRvqvBOYvL0tHyEIEG7XHWm7OqIfAs6/HqwWwDfjiJ1g0huIpe5sFEmyb+7hpFa1EGNH2aERWR72tlClw==} @@ -7671,17 +7674,17 @@ packages: engines: {node: '>=4'} dev: true - /postcss-calc@8.2.4(postcss@8.4.22): + /postcss-calc@8.2.4(postcss@8.4.23): resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 dev: false - /postcss-colormin@6.0.0(postcss@8.4.22): + /postcss-colormin@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -7690,55 +7693,55 @@ packages: browserslist: 4.21.5 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-convert-values@6.0.0(postcss@8.4.22): + /postcss-convert-values@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-discard-comments@6.0.0(postcss@8.4.22): + /postcss-discard-comments@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 dev: false - /postcss-discard-duplicates@6.0.0(postcss@8.4.22): + /postcss-discard-duplicates@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 dev: false - /postcss-discard-empty@6.0.0(postcss@8.4.22): + /postcss-discard-empty@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 dev: false - /postcss-discard-overridden@6.0.0(postcss@8.4.22): + /postcss-discard-overridden@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 dev: false /postcss-import-resolver@2.0.0: @@ -7747,19 +7750,19 @@ packages: enhanced-resolve: 4.5.0 dev: false - /postcss-import@15.1.0(postcss@8.4.22): + /postcss-import@15.1.0(postcss@8.4.23): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.1 dev: false - /postcss-loader@7.2.4(@types/node@18.15.11)(postcss@8.4.22)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.79.0): + /postcss-loader@7.2.4(@types/node@18.15.11)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.80.0): resolution: {integrity: sha512-F88rpxxNspo5hatIc+orYwZDtHFaVFOSIVAx+fBfJC1GmhWbVmPWtmg2gXKE1OxJbneOSGn8PWdIwsZFcruS+w==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -7776,27 +7779,27 @@ packages: cosmiconfig: 8.1.3 cosmiconfig-typescript-loader: 4.3.0(@types/node@18.15.11)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4) klona: 2.0.6 - postcss: 8.4.22 + postcss: 8.4.23 semver: 7.5.0 ts-node: 10.9.1(@types/node@18.15.11)(typescript@5.0.4) typescript: 5.0.4 - webpack: 5.79.0 + webpack: 5.80.0 transitivePeerDependencies: - '@types/node' dev: false - /postcss-merge-longhand@6.0.0(postcss@8.4.22): + /postcss-merge-longhand@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 - stylehacks: 6.0.0(postcss@8.4.22) + stylehacks: 6.0.0(postcss@8.4.23) dev: false - /postcss-merge-rules@6.0.0(postcss@8.4.22): + /postcss-merge-rules@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-rCXkklftzEkniyv3f4mRCQzxD6oE4Quyh61uyWTUbCJ26Pv2hoz+fivJSsSBWxDBeScR4fKCfF3HHTcD7Ybqnw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -7804,198 +7807,198 @@ packages: dependencies: browserslist: 4.21.5 caniuse-api: 3.0.0 - cssnano-utils: 4.0.0(postcss@8.4.22) - postcss: 8.4.22 + cssnano-utils: 4.0.0(postcss@8.4.23) + postcss: 8.4.23 postcss-selector-parser: 6.0.11 dev: false - /postcss-minify-font-values@6.0.0(postcss@8.4.22): + /postcss-minify-font-values@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-gradients@6.0.0(postcss@8.4.22): + /postcss-minify-gradients@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 4.0.0(postcss@8.4.22) - postcss: 8.4.22 + cssnano-utils: 4.0.0(postcss@8.4.23) + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-params@6.0.0(postcss@8.4.22): + /postcss-minify-params@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - cssnano-utils: 4.0.0(postcss@8.4.22) - postcss: 8.4.22 + cssnano-utils: 4.0.0(postcss@8.4.23) + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-selectors@6.0.0(postcss@8.4.22): + /postcss-minify-selectors@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-selector-parser: 6.0.11 dev: false - /postcss-modules-extract-imports@3.0.0(postcss@8.4.22): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.23): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 dev: false - /postcss-modules-local-by-default@4.0.0(postcss@8.4.22): + /postcss-modules-local-by-default@4.0.0(postcss@8.4.23): resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.22) - postcss: 8.4.22 + icss-utils: 5.1.0(postcss@8.4.23) + postcss: 8.4.23 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 dev: false - /postcss-modules-scope@3.0.0(postcss@8.4.22): + /postcss-modules-scope@3.0.0(postcss@8.4.23): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-selector-parser: 6.0.11 dev: false - /postcss-modules-values@4.0.0(postcss@8.4.22): + /postcss-modules-values@4.0.0(postcss@8.4.23): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.22) - postcss: 8.4.22 + icss-utils: 5.1.0(postcss@8.4.23) + postcss: 8.4.23 dev: false - /postcss-normalize-charset@6.0.0(postcss@8.4.22): + /postcss-normalize-charset@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 dev: false - /postcss-normalize-display-values@6.0.0(postcss@8.4.22): + /postcss-normalize-display-values@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-positions@6.0.0(postcss@8.4.22): + /postcss-normalize-positions@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-repeat-style@6.0.0(postcss@8.4.22): + /postcss-normalize-repeat-style@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-string@6.0.0(postcss@8.4.22): + /postcss-normalize-string@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-timing-functions@6.0.0(postcss@8.4.22): + /postcss-normalize-timing-functions@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-unicode@6.0.0(postcss@8.4.22): + /postcss-normalize-unicode@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-url@6.0.0(postcss@8.4.22): + /postcss-normalize-url@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-whitespace@6.0.0(postcss@8.4.22): + /postcss-normalize-whitespace@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-ordered-values@6.0.0(postcss@8.4.22): + /postcss-ordered-values@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 4.0.0(postcss@8.4.22) - postcss: 8.4.22 + cssnano-utils: 4.0.0(postcss@8.4.23) + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false - /postcss-reduce-initial@6.0.0(postcss@8.4.22): + /postcss-reduce-initial@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -8003,16 +8006,16 @@ packages: dependencies: browserslist: 4.21.5 caniuse-api: 3.0.0 - postcss: 8.4.22 + postcss: 8.4.23 dev: false - /postcss-reduce-transforms@6.0.0(postcss@8.4.22): + /postcss-reduce-transforms@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: false @@ -8023,28 +8026,28 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-svgo@6.0.0(postcss@8.4.22): + /postcss-svgo@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-value-parser: 4.2.0 svgo: 3.0.2 dev: false - /postcss-unique-selectors@6.0.0(postcss@8.4.22): + /postcss-unique-selectors@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.22 + postcss: 8.4.23 postcss-selector-parser: 6.0.11 dev: false - /postcss-url@10.1.3(postcss@8.4.22): + /postcss-url@10.1.3(postcss@8.4.23): resolution: {integrity: sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==} engines: {node: '>=10'} peerDependencies: @@ -8053,7 +8056,7 @@ packages: make-dir: 3.1.0 mime: 2.5.2 minimatch: 3.0.8 - postcss: 8.4.22 + postcss: 8.4.23 xxhashjs: 0.2.2 dev: false @@ -8061,8 +8064,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: false - /postcss@8.4.22: - resolution: {integrity: sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA==} + /postcss@8.4.23: + resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -8424,8 +8427,8 @@ packages: /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /schema-utils@3.1.1: - resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==} + /schema-utils@3.1.2: + resolution: {integrity: sha512-pvjEHOgWc9OWA/f/DE3ohBWTD6EleVLf7iFUkoSwAxttdBhB9QUebQgxER2kWueOvRJXPHNnyrvvh9eZINB8Eg==} engines: {node: '>= 10.13.0'} dependencies: '@types/json-schema': 7.0.11 @@ -8759,14 +8762,14 @@ packages: dependencies: acorn: 8.8.2 - /stylehacks@6.0.0(postcss@8.4.22): + /stylehacks@6.0.0(postcss@8.4.23): resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.5 - postcss: 8.4.22 + postcss: 8.4.23 postcss-selector-parser: 6.0.11 dev: false @@ -8850,7 +8853,7 @@ packages: mkdirp: 1.0.4 yallist: 4.0.0 - /terser-webpack-plugin@5.3.7(webpack@5.79.0): + /terser-webpack-plugin@5.3.7(webpack@5.80.0): resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -8868,10 +8871,10 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.17 jest-worker: 27.5.1 - schema-utils: 3.1.1 + schema-utils: 3.1.2 serialize-javascript: 6.0.1 terser: 5.16.6 - webpack: 5.79.0 + webpack: 5.80.0 /terser@5.16.6: resolution: {integrity: sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==} @@ -8898,12 +8901,12 @@ packages: /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - /time-fix-plugin@2.0.7(webpack@5.79.0): + /time-fix-plugin@2.0.7(webpack@5.80.0): resolution: {integrity: sha512-uVFet1LQToeUX0rTcSiYVYVoGuBpc8gP/2jnlUzuHMHe+gux6XLsNzxLUweabMwiUj5ejhoIMsUI55nVSEa/Vw==} peerDependencies: webpack: '>=4.0.0' dependencies: - webpack: 5.79.0 + webpack: 5.80.0 dev: false /time-zone@1.0.0: @@ -9261,7 +9264,7 @@ packages: '@unocss/transformer-directives': 0.45.30 '@unocss/transformer-variant-group': 0.45.30 '@unocss/vite': 0.45.30(rollup@3.20.2)(vite@3.2.5) - '@unocss/webpack': 0.45.30(rollup@3.20.2)(webpack@5.79.0) + '@unocss/webpack': 0.45.30(rollup@3.20.2)(webpack@5.80.0) transitivePeerDependencies: - rollup - supports-color @@ -9359,7 +9362,7 @@ packages: dependencies: punycode: 2.3.0 - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.79.0): + /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.80.0): resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -9369,11 +9372,11 @@ packages: file-loader: optional: true dependencies: - file-loader: 6.2.0(webpack@5.79.0) + file-loader: 6.2.0(webpack@5.80.0) loader-utils: 2.0.4 mime-types: 2.1.35 - schema-utils: 3.1.1 - webpack: 5.79.0 + schema-utils: 3.1.2 + webpack: 5.80.0 dev: false /util-deprecate@1.0.2: @@ -9510,7 +9513,7 @@ packages: dependencies: '@types/node': 18.15.11 esbuild: 0.15.18 - postcss: 8.4.22 + postcss: 8.4.23 resolve: 1.22.1 rollup: 2.79.1 optionalDependencies: @@ -9544,7 +9547,7 @@ packages: dependencies: '@types/node': 18.15.11 esbuild: 0.17.17 - postcss: 8.4.22 + postcss: 8.4.23 resolve: 1.22.1 rollup: 3.20.2 optionalDependencies: @@ -9699,7 +9702,7 @@ packages: - supports-color dev: true - /vue-loader@17.0.1(vue@3.2.47)(webpack@5.79.0): + /vue-loader@17.0.1(vue@3.2.47)(webpack@5.80.0): resolution: {integrity: sha512-/OOyugJnImKCkAKrAvdsWMuwoCqGxWT5USLsjohzWbMgOwpA5wQmzQiLMzZd7DjhIfunzAGIApTOgIylz/kwcg==} peerDependencies: '@vue/compiler-sfc': '*' @@ -9715,7 +9718,7 @@ packages: hash-sum: 2.0.0 loader-utils: 2.0.4 vue: 3.2.47 - webpack: 5.79.0 + webpack: 5.80.0 dev: false /vue-router@4.1.6(vue@3.2.47): @@ -9796,7 +9799,7 @@ packages: - utf-8-validate dev: false - /webpack-dev-middleware@6.0.2(webpack@5.79.0): + /webpack-dev-middleware@6.0.2(webpack@5.80.0): resolution: {integrity: sha512-iOddiJzPcQC6lwOIu60vscbGWth8PCRcWRCwoQcTQf9RMoOWBHg5EyzpGdtSmGMrSPd5vHEfFXmVErQEmkRngQ==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -9810,7 +9813,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.0.0 - webpack: 5.79.0 + webpack: 5.80.0 dev: false /webpack-hot-middleware@2.25.3: @@ -9839,8 +9842,8 @@ packages: /webpack-virtual-modules@0.5.0: resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} - /webpack@5.79.0: - resolution: {integrity: sha512-3mN4rR2Xq+INd6NnYuL9RC9GAmc1ROPKJoHhrZ4pAjdMFEkJJWrsPw8o2JjCIyQyTu7rTXYn4VG6OpyB3CobZg==} + /webpack@5.80.0: + resolution: {integrity: sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -9851,14 +9854,14 @@ packages: dependencies: '@types/eslint-scope': 3.7.4 '@types/estree': 1.0.1 - '@webassemblyjs/ast': 1.11.1 - '@webassemblyjs/wasm-edit': 1.11.1 - '@webassemblyjs/wasm-parser': 1.11.1 + '@webassemblyjs/ast': 1.11.5 + '@webassemblyjs/wasm-edit': 1.11.5 + '@webassemblyjs/wasm-parser': 1.11.5 acorn: 8.8.2 acorn-import-assertions: 1.8.0(acorn@8.8.2) browserslist: 4.21.5 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.12.0 + enhanced-resolve: 5.13.0 es-module-lexer: 1.2.1 eslint-scope: 5.1.1 events: 3.3.0 @@ -9868,9 +9871,9 @@ packages: loader-runner: 4.3.0 mime-types: 2.1.35 neo-async: 2.6.2 - schema-utils: 3.1.1 + schema-utils: 3.1.2 tapable: 2.2.1 - terser-webpack-plugin: 5.3.7(webpack@5.79.0) + terser-webpack-plugin: 5.3.7(webpack@5.80.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -9878,7 +9881,7 @@ packages: - esbuild - uglify-js - /webpackbar@5.0.2(webpack@5.79.0): + /webpackbar@5.0.2(webpack@5.80.0): resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} engines: {node: '>=12'} peerDependencies: @@ -9888,7 +9891,7 @@ packages: consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.3.2 - webpack: 5.79.0 + webpack: 5.80.0 dev: false /well-known-symbols@2.0.0: From 872d68154905682668f79ec3c4b07cd5ef0eab35 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Apr 2023 22:28:55 +0100 Subject: [PATCH 068/912] fix(nuxi): load kit from `rootDir` when preparing project (#20401) --- packages/nuxi/src/commands/prepare.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/nuxi/src/commands/prepare.ts b/packages/nuxi/src/commands/prepare.ts index 121dad7873..4e194e03eb 100644 --- a/packages/nuxi/src/commands/prepare.ts +++ b/packages/nuxi/src/commands/prepare.ts @@ -1,4 +1,3 @@ -import { buildNuxt } from '@nuxt/kit' import { relative, resolve } from 'pathe' import { consola } from 'consola' import { clearDir } from '../utils/fs' @@ -16,7 +15,7 @@ export default defineNuxtCommand({ process.env.NODE_ENV = process.env.NODE_ENV || 'production' const rootDir = resolve(args._[0] || '.') - const { loadNuxt } = await loadKit(rootDir) + const { loadNuxt, buildNuxt } = await loadKit(rootDir) const nuxt = await loadNuxt({ rootDir, overrides: { From f550976f74ec1f3b1abb75e77a1ccc153ee276c1 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Apr 2023 09:47:03 +0100 Subject: [PATCH 069/912] ci: don't run ci for release branches --- .github/workflows/ci.yml | 1 + .github/workflows/docs.yml | 1 + .github/workflows/introspect.yml | 1 + 3 files changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5ae9165693..8793aa7e74 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,6 +11,7 @@ on: - "docs/**" branches: - main + - "!v[0-9]*" # https://github.com/vitejs/vite/blob/main/.github/workflows/ci.yml env: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index a2d96f9a06..8b3811f15e 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -8,6 +8,7 @@ on: # autofix workflow will be triggered instead for PRs branches: - main + - "!v[0-9]*" # Remove default permissions of GITHUB_TOKEN for security # https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs diff --git a/.github/workflows/introspect.yml b/.github/workflows/introspect.yml index 99b843dc71..e6273d48f9 100644 --- a/.github/workflows/introspect.yml +++ b/.github/workflows/introspect.yml @@ -11,6 +11,7 @@ on: - ".github/workflows/**" branches: - main + - "!v[0-9]*" jobs: lint-workflows: From e6cc4aa02a36470435ab4c66a3b08d3bf735dc92 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Apr 2023 10:40:07 +0100 Subject: [PATCH 070/912] chore: maintain a 'next release' PR --- .github/workflows/changelogensets.yml | 35 +++++++++++++ scripts/_utils.ts | 18 +++++++ scripts/bump-edge.ts | 12 +---- scripts/update-changelog.ts | 73 +++++++++++++++++++++++++++ 4 files changed, 128 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/changelogensets.yml create mode 100644 scripts/update-changelog.ts diff --git a/.github/workflows/changelogensets.yml b/.github/workflows/changelogensets.yml new file mode 100644 index 0000000000..32780becef --- /dev/null +++ b/.github/workflows/changelogensets.yml @@ -0,0 +1,35 @@ +name: Release + +on: + push: + branches: + - main + +permissions: + pull-requests: write + +concurrency: + group: ${{ github.workflow }}-${{ github.event.number || github.sha }} + cancel-in-progress: ${{ github.event_name != 'push' }} + +jobs: + update-changelog: + if: github.repository_owner == 'nuxt' + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - run: corepack enable + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: "pnpm" + + - name: Install dependencies + run: pnpm install + + - run: pnpm jiti ./scripts/update-changelog.ts + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/scripts/_utils.ts b/scripts/_utils.ts index c836a3b28e..20008fcecf 100644 --- a/scripts/_utils.ts +++ b/scripts/_utils.ts @@ -1,6 +1,8 @@ import { promises as fsp } from 'node:fs' import { resolve } from 'pathe' import { globby } from 'globby' +import { execaSync } from 'execa' +import { determineSemverChange, getGitDiff, loadChangelogConfig, parseCommits } from 'changelogen' export interface Dep { name: string, @@ -94,3 +96,19 @@ export async function loadWorkspace (dir: string) { setVersion } } + +export async function determineBumpType () { + const config = await loadChangelogConfig(process.cwd()) + const commits = await getLatestCommits() + + const bumpType = determineSemverChange(commits, config) + + return bumpType === 'major' ? 'minor' : bumpType +} + +export async function getLatestCommits () { + const config = await loadChangelogConfig(process.cwd()) + const latestTag = execaSync('git', ['describe', '--tags', '--abbrev=0']).stdout + + return parseCommits(await getGitDiff(latestTag), config) +} diff --git a/scripts/bump-edge.ts b/scripts/bump-edge.ts index 7a2213d276..4ffe8782bf 100644 --- a/scripts/bump-edge.ts +++ b/scripts/bump-edge.ts @@ -1,9 +1,7 @@ import { execSync } from 'node:child_process' import { $fetch } from 'ofetch' import { inc } from 'semver' -import { determineSemverChange, getGitDiff, loadChangelogConfig, parseCommits } from 'changelogen' -import { execaSync } from 'execa' -import { loadWorkspace } from './_utils' +import { determineBumpType, loadWorkspace } from './_utils' async function main () { const workspace = await loadWorkspace(process.cwd()) @@ -16,13 +14,7 @@ async function main () { const latestNitro = nitroInfo['dist-tags'].latest nuxtPkg.data.dependencies.nitropack = `npm:nitropack-edge@^${latestNitro}` - const config = await loadChangelogConfig(process.cwd()) - - const latestTag = execaSync('git', ['describe', '--tags', '--abbrev=0']).stdout - - const commits = await getGitDiff(latestTag) - let bumpType = determineSemverChange(parseCommits(commits, config), config) - if (bumpType === 'major') { bumpType = 'minor' } // 🙈 + const bumpType = await determineBumpType() for (const pkg of workspace.packages.filter(p => !p.data.private)) { const newVersion = inc(pkg.data.version, bumpType || 'patch') diff --git a/scripts/update-changelog.ts b/scripts/update-changelog.ts new file mode 100644 index 0000000000..75289b7e2c --- /dev/null +++ b/scripts/update-changelog.ts @@ -0,0 +1,73 @@ +import { execSync } from 'node:child_process' +import { $fetch } from 'ofetch' +import { inc } from 'semver' +import { generateMarkDown, loadChangelogConfig } from 'changelogen' +import { determineBumpType, getLatestCommits, loadWorkspace } from './_utils' + +async function main () { + const workspace = await loadWorkspace(process.cwd()) + const config = await loadChangelogConfig(process.cwd(), { + }) + + const commits = await getLatestCommits() + const bumpType = await determineBumpType() + + const newVersion = inc(workspace.find('nuxt').data.version, bumpType || 'patch') + const changelog = await generateMarkDown(commits, config) + + // Create and push a branch with bumped versions if it has not already been created + const branchExists = execSync(`git ls-remote --heads origin v${newVersion}`).toString().trim().length > 0 + if (!branchExists) { + execSync(`git checkout -b v${newVersion}`) + + for (const pkg of workspace.packages.filter(p => !p.data.private)) { + workspace.setVersion(pkg.data.name, newVersion!) + } + await workspace.save() + + execSync(`git commit -am v${newVersion}`) + execSync(`git push -u origin v${newVersion}`) + } + + // Get the current PR for this release, if it exists + const [currentPR] = await $fetch(`https://api.github.com/repos/nuxt/nuxt/pulls?head=nuxt:v${newVersion}`) + + const releaseNotes = [ + currentPR?.body.replace(/## 👉 Changelog[\s\S]*$/, '') || `> ${newVersion} is the next ${bumpType} release.\n>\n> **Timetable**: to be announced.`, + '## 👉 Changelog', + changelog.replace(/^## v.*?\n/, '').replace('...main', `...v${newVersion}`) + ].join('\n') + + // Create a PR with release notes if none exists + if (!currentPR) { + return await $fetch('https://api.github.com/repos/nuxt/nuxt/pulls', { + method: 'POST', + headers: { + Authorization: `token ${process.env.GITHUB_TOKEN}` + }, + body: { + title: `v${newVersion}`, + head: `v${newVersion}`, + base: 'main', + body: releaseNotes, + draft: true + } + }) + } + + // Update release notes if the pull request does exist + await $fetch(`https://api.github.com/repos/nuxt/nuxt/pulls/${currentPR.number}`, { + method: 'PATCH', + headers: { + Authorization: `token ${process.env.GITHUB_TOKEN}` + }, + body: { + body: releaseNotes + } + }) +} + +main().catch((err) => { + console.error(err) + process.exit(1) +}) From 2a596c2b3d260e909b2bbbb84e245c7dec0bb49b Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Apr 2023 10:42:20 +0100 Subject: [PATCH 071/912] chore: set git user --- scripts/update-changelog.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/update-changelog.ts b/scripts/update-changelog.ts index 75289b7e2c..1a50320d33 100644 --- a/scripts/update-changelog.ts +++ b/scripts/update-changelog.ts @@ -18,6 +18,8 @@ async function main () { // Create and push a branch with bumped versions if it has not already been created const branchExists = execSync(`git ls-remote --heads origin v${newVersion}`).toString().trim().length > 0 if (!branchExists) { + execSync('git config --global user.email "daniel@roe.dev"') + execSync('git config --global user.name "Daniel Roe"') execSync(`git checkout -b v${newVersion}`) for (const pkg of workspace.packages.filter(p => !p.data.private)) { From 0518cdbff1ce6949dc8ec5d137587304d11338aa Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Apr 2023 10:45:25 +0100 Subject: [PATCH 072/912] ci: give write access to changelogensets --- .github/workflows/changelogensets.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/changelogensets.yml b/.github/workflows/changelogensets.yml index 32780becef..4827342195 100644 --- a/.github/workflows/changelogensets.yml +++ b/.github/workflows/changelogensets.yml @@ -7,6 +7,7 @@ on: permissions: pull-requests: write + contents: write concurrency: group: ${{ github.workflow }}-${{ github.event.number || github.sha }} From 8234bc18d7048a7871605f207b1e7d98396c1128 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Apr 2023 11:16:57 +0100 Subject: [PATCH 073/912] chore: don't list dep updates in auto-changelog --- scripts/update-changelog.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/update-changelog.ts b/scripts/update-changelog.ts index 1a50320d33..56f13ba60b 100644 --- a/scripts/update-changelog.ts +++ b/scripts/update-changelog.ts @@ -9,7 +9,9 @@ async function main () { const config = await loadChangelogConfig(process.cwd(), { }) - const commits = await getLatestCommits() + const commits = await getLatestCommits().then(commits => commits.filter( + c => config.types[c.type] && !(c.type === 'chore' && c.scope === 'deps' && !c.isBreaking) + )) const bumpType = await determineBumpType() const newVersion = inc(workspace.find('nuxt').data.version, bumpType || 'patch') From 12f347a928c388c35967e823c77d1ff6d765742e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Apr 2023 13:33:45 +0100 Subject: [PATCH 074/912] fix(nuxt): clone app config on server (#20278) --- packages/nuxt/package.json | 1 + packages/nuxt/src/app/config.ts | 3 ++- pnpm-lock.yaml | 3 +++ test/bundle.test.ts | 3 ++- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 0833fea9db..816032be39 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -73,6 +73,7 @@ "h3": "^1.6.4", "hookable": "^5.5.3", "jiti": "^1.18.2", + "klona": "^2.0.6", "knitwork": "^1.0.0", "local-pkg": "^0.4.3", "magic-string": "^0.30.0", diff --git a/packages/nuxt/src/app/config.ts b/packages/nuxt/src/app/config.ts index 68633fcf5a..77efe98805 100644 --- a/packages/nuxt/src/app/config.ts +++ b/packages/nuxt/src/app/config.ts @@ -1,4 +1,5 @@ import { reactive } from 'vue' +import { klona } from 'klona' import type { AppConfig } from 'nuxt/schema' import { useNuxtApp } from './nuxt' // @ts-expect-error virtual file @@ -37,7 +38,7 @@ function deepAssign (obj: any, newObj: any) { export function useAppConfig (): AppConfig { const nuxtApp = useNuxtApp() if (!nuxtApp._appConfig) { - nuxtApp._appConfig = reactive(__appConfig) as AppConfig + nuxtApp._appConfig = (process.server ? klona(__appConfig) : reactive(__appConfig)) as AppConfig } return nuxtApp._appConfig } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b6b4bd15ac..0237169925 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -614,6 +614,9 @@ importers: jiti: specifier: ^1.18.2 version: 1.18.2 + klona: + specifier: ^2.0.6 + version: 2.0.6 knitwork: specifier: ^1.0.0 version: 1.0.0 diff --git a/test/bundle.test.ts b/test/bundle.test.ts index c4dec4c74f..b708de8b61 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -51,7 +51,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"92.4k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2654k"') + expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2657k"') const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -79,6 +79,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e "h3", "hookable", "iron-webcrypto", + "klona", "node-fetch-native", "ofetch", "ohash", From c1d97a2fdb5cbfee1cb887e76995ea417f72853e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Apr 2023 13:36:11 +0100 Subject: [PATCH 075/912] chore: update vite to v4.3 (#20405) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- package.json | 32 ++++----- packages/kit/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/vite/package.json | 2 +- pnpm-lock.yaml | 133 +++++++++++++++++------------------ 6 files changed, 85 insertions(+), 88 deletions(-) diff --git a/package.json b/package.json index ae5a5785d3..91f30bbca1 100644 --- a/package.json +++ b/package.json @@ -26,21 +26,19 @@ "test:unit": "vitest run --dir packages", "typecheck": "tsc --noEmit" }, - "pnpm": { - "overrides": { - "@nuxt/kit": "workspace:*", - "@nuxt/schema": "workspace:*", - "@nuxt/test-utils": "workspace:*", - "@nuxt/vite-builder": "workspace:*", - "@nuxt/webpack-builder": "workspace:*", - "nuxi": "workspace:*", - "nuxt": "workspace:*", - "nuxt3": "workspace:nuxt@*", - "unbuild": "^1.2.0", - "vite": "^4.2.1", - "vue": "3.2.47", - "magic-string": "^0.30.0" - } + "resolutions": { + "@nuxt/kit": "workspace:*", + "@nuxt/schema": "workspace:*", + "@nuxt/test-utils": "workspace:*", + "@nuxt/vite-builder": "workspace:*", + "@nuxt/webpack-builder": "workspace:*", + "nuxi": "workspace:*", + "nuxt": "workspace:*", + "nuxt3": "workspace:nuxt@*", + "unbuild": "^1.2.0", + "vite": "^4.3.0", + "vue": "3.2.47", + "magic-string": "^0.30.0" }, "devDependencies": { "@actions/core": "^1.10.0", @@ -48,7 +46,7 @@ "@nuxt/webpack-builder": "workspace:*", "@nuxtjs/eslint-config-typescript": "^12.0.0", "@types/crawler": "^1.2.2", - "@types/node": "^18.15.11", + "@types/node": "^18.15.12", "@types/semver": "^7.3.13", "case-police": "^0.5.14", "changelogen": "^0.5.3", @@ -75,7 +73,7 @@ "typescript": "^5.0.4", "ufo": "^1.1.1", "unbuild": "^1.2.1", - "vite": "^4.2.2", + "vite": "^4.3.0", "vitest": "^0.30.1", "vue": "3.2.47", "vue-eslint-parser": "^9.1.1", diff --git a/packages/kit/package.json b/packages/kit/package.json index ebc5dfe55a..5bee752d1f 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -45,7 +45,7 @@ "@types/semver": "^7.3.13", "nitropack": "^2.3.3", "unbuild": "latest", - "vite": "^4.2.2", + "vite": "^4.3.0", "vitest": "^0.30.1", "webpack": "^5.80.0" }, diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 816032be39..66e10d4ddd 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -107,7 +107,7 @@ "@vitejs/plugin-vue": "^4.1.0", "acorn": "^8.8.2", "unbuild": "latest", - "vite": "^4.2.2", + "vite": "^4.3.0", "vitest": "^0.30.1" }, "peerDependencies": { diff --git a/packages/schema/package.json b/packages/schema/package.json index 22e87716df..cf6a694303 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -30,7 +30,7 @@ "nitropack": "^2.3.3", "unbuild": "latest", "unctx": "^2.3.0", - "vite": "~4.2.2", + "vite": "~4.3.0", "vue": "3.2.47", "vue-bundle-renderer": "^1.0.3", "vue-router": "^4.1.6", diff --git a/packages/vite/package.json b/packages/vite/package.json index 518375decc..44f177d2d1 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -54,7 +54,7 @@ "strip-literal": "^1.0.1", "ufo": "^1.1.1", "unplugin": "^1.3.1", - "vite": "~4.2.2", + "vite": "~4.3.0", "vite-node": "^0.30.1", "vite-plugin-checker": "^0.5.6", "vue-bundle-renderer": "^1.0.3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0237169925..8a1d496bb3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ overrides: nuxt: workspace:* nuxt3: workspace:nuxt@* unbuild: ^1.2.0 - vite: ^4.2.1 + vite: ^4.3.0 vue: 3.2.47 magic-string: ^0.30.0 @@ -34,8 +34,8 @@ importers: specifier: ^1.2.2 version: 1.2.2 '@types/node': - specifier: ^18.15.11 - version: 18.15.11 + specifier: ^18.15.12 + version: 18.15.12 '@types/semver': specifier: ^7.3.13 version: 7.3.13 @@ -115,8 +115,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 vite: - specifier: ^4.2.1 - version: 4.2.1(@types/node@18.15.11) + specifier: ^4.3.0 + version: 4.3.0(@types/node@18.15.12) vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -437,8 +437,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 vite: - specifier: ^4.2.1 - version: 4.2.1(@types/node@18.15.11) + specifier: ^4.3.0 + version: 4.3.0(@types/node@18.15.12) vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -568,7 +568,7 @@ importers: version: link:../vite '@types/node': specifier: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - version: 18.15.11 + version: 18.15.12 '@unhead/ssr': specifier: ^1.1.26 version: 1.1.26 @@ -704,7 +704,7 @@ importers: version: 2.4.4 '@vitejs/plugin-vue': specifier: ^4.1.0 - version: 4.1.0(vite@4.2.1)(vue@3.2.47) + version: 4.1.0(vite@4.3.0)(vue@3.2.47) acorn: specifier: ^8.8.2 version: 8.8.2 @@ -712,8 +712,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 vite: - specifier: ^4.2.1 - version: 4.2.1(@types/node@18.15.11) + specifier: ^4.3.0 + version: 4.3.0(@types/node@18.15.12) vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -756,10 +756,10 @@ importers: version: 1.1.26 '@vitejs/plugin-vue': specifier: ^4.1.0 - version: 4.1.0(vite@4.2.1)(vue@3.2.47) + version: 4.1.0(vite@4.3.0)(vue@3.2.47) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.2.1)(vue@3.2.47) + version: 3.0.1(vite@4.3.0)(vue@3.2.47) h3: specifier: ^1.6.4 version: 1.6.4 @@ -776,8 +776,8 @@ importers: specifier: ^2.3.0 version: 2.3.0 vite: - specifier: ^4.2.1 - version: 4.2.1(@types/node@18.15.11) + specifier: ^4.3.0 + version: 4.3.0(@types/node@18.15.12) vue: specifier: 3.2.47 version: 3.2.47 @@ -847,10 +847,10 @@ importers: version: 5.0.2(rollup@3.20.2) '@vitejs/plugin-vue': specifier: ^4.1.0 - version: 4.1.0(vite@4.2.1)(vue@3.2.47) + version: 4.1.0(vite@4.3.0)(vue@3.2.47) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.2.1)(vue@3.2.47) + version: 3.0.1(vite@4.3.0)(vue@3.2.47) autoprefixer: specifier: ^10.4.14 version: 10.4.14(postcss@8.4.23) @@ -930,14 +930,14 @@ importers: specifier: ^1.3.1 version: 1.3.1 vite: - specifier: ^4.2.1 - version: 4.2.1(@types/node@18.15.11) + specifier: ^4.3.0 + version: 4.3.0(@types/node@18.15.12) vite-node: specifier: ^0.30.1 - version: 0.30.1(@types/node@18.15.11) + version: 0.30.1(@types/node@18.15.12) vite-plugin-checker: specifier: ^0.5.6 - version: 0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.2.1)(vue-tsc@1.2.0) + version: 0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.3.0)(vue-tsc@1.2.0) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 @@ -1031,7 +1031,7 @@ importers: version: 15.1.0(postcss@8.4.23) postcss-loader: specifier: ^7.2.4 - version: 7.2.4(@types/node@18.15.11)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.80.0) + version: 7.2.4(@types/node@18.15.12)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.80.0) postcss-url: specifier: ^10.1.3 version: 10.1.3(postcss@8.4.23) @@ -1835,7 +1835,7 @@ packages: dependencies: '@jest/fake-timers': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 18.15.11 + '@types/node': 18.15.12 jest-mock: 29.5.0 dev: true @@ -1862,7 +1862,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 18.15.11 + '@types/node': 18.15.12 jest-message-util: 29.5.0 jest-mock: 29.5.0 jest-util: 29.5.0 @@ -1916,7 +1916,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.15.11 + '@types/node': 18.15.12 '@types/yargs': 17.0.22 chalk: 4.1.2 @@ -2364,7 +2364,7 @@ packages: /@types/cheerio@0.22.31: resolution: {integrity: sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw==} dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 dev: true /@types/clear@0.1.2: @@ -2374,7 +2374,7 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 dev: true /@types/crawler@1.2.2: @@ -2406,13 +2406,13 @@ packages: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 18.15.11 + '@types/node': 18.15.12 dev: true /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 dev: true /@types/hash-sum@1.0.0: @@ -2442,7 +2442,7 @@ packages: /@types/jsonfile@6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 dev: true /@types/lodash-es@4.17.7: @@ -2465,8 +2465,8 @@ packages: resolution: {integrity: sha512-nJOuiTlsvmClSr3+a/trTSx4DTuY/VURsWGKSf/eeavh0LRMqdsK60ti0TlwM5iHiGOK3/Ibkxsbr7i9rzGreA==} dev: true - /@types/node@18.15.11: - resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} + /@types/node@18.15.12: + resolution: {integrity: sha512-Wha1UwsB3CYdqUm2PPzh/1gujGCNtWVUYF0mB00fJFoR4gTyWTDPjSm+zBF787Ahw8vSGgBja90MkgFwvB86Dg==} /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -2487,7 +2487,7 @@ packages: /@types/prompts@2.4.4: resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 kleur: 3.0.3 dev: true @@ -2523,7 +2523,7 @@ packages: /@types/webpack-bundle-analyzer@4.6.0: resolution: {integrity: sha512-XeQmQCCXdZdap+A/60UKmxW5Mz31Vp9uieGlHB3T4z/o2OLVLtTI3bvTuS6A2OWd/rbAAQiGGWIEFQACu16szA==} dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 tapable: 2.2.1 webpack: 5.80.0 transitivePeerDependencies: @@ -2549,7 +2549,7 @@ packages: /@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 '@types/source-list-map': 0.1.2 source-map: 0.7.4 dev: true @@ -2563,7 +2563,7 @@ packages: /@types/webpack@4.41.33: resolution: {integrity: sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==} dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 '@types/tapable': 1.0.8 '@types/uglify-js': 3.17.1 '@types/webpack-sources': 3.2.0 @@ -2924,7 +2924,7 @@ packages: '@unocss/scope': 0.45.30 '@unocss/transformer-directives': 0.45.30 magic-string: 0.30.0 - vite: 3.2.5(@types/node@18.15.11) + vite: 3.2.5(@types/node@18.15.12) transitivePeerDependencies: - rollup dev: true @@ -2966,7 +2966,7 @@ packages: - encoding - supports-color - /@vitejs/plugin-vue-jsx@3.0.1(vite@4.2.1)(vue@3.2.47): + /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.0)(vue@3.2.47): resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2976,19 +2976,19 @@ packages: '@babel/core': 7.21.4 '@babel/plugin-transform-typescript': 7.21.0(@babel/core@7.21.4) '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.4) - vite: 4.2.1(@types/node@18.15.11) + vite: 4.3.0(@types/node@18.15.12) vue: 3.2.47 transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@4.1.0(vite@4.2.1)(vue@3.2.47): + /@vitejs/plugin-vue@4.1.0(vite@4.3.0)(vue@3.2.47): resolution: {integrity: sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.2.1(@types/node@18.15.11) + vite: 4.3.0(@types/node@18.15.12) vue: 3.2.47 /@vitest/expect@0.30.1: @@ -4138,7 +4138,7 @@ packages: /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - /cosmiconfig-typescript-loader@4.3.0(@types/node@18.15.11)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4): + /cosmiconfig-typescript-loader@4.3.0(@types/node@18.15.12)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4): resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -4147,9 +4147,9 @@ packages: ts-node: '>=10' typescript: '>=3' dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 cosmiconfig: 8.1.3 - ts-node: 10.9.1(@types/node@18.15.11)(typescript@5.0.4) + ts-node: 10.9.1(@types/node@18.15.12)(typescript@5.0.4) typescript: 5.0.4 dev: false @@ -6473,7 +6473,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@types/graceful-fs': 4.1.6 - '@types/node': 18.15.11 + '@types/node': 18.15.12 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -6516,7 +6516,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 18.15.11 + '@types/node': 18.15.12 jest-util: 29.5.0 dev: true @@ -6561,7 +6561,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 18.15.11 + '@types/node': 18.15.12 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.10 @@ -6571,7 +6571,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -6579,7 +6579,7 @@ packages: resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 jest-util: 29.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -7765,7 +7765,7 @@ packages: resolve: 1.22.1 dev: false - /postcss-loader@7.2.4(@types/node@18.15.11)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.80.0): + /postcss-loader@7.2.4(@types/node@18.15.12)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.80.0): resolution: {integrity: sha512-F88rpxxNspo5hatIc+orYwZDtHFaVFOSIVAx+fBfJC1GmhWbVmPWtmg2gXKE1OxJbneOSGn8PWdIwsZFcruS+w==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -7780,11 +7780,11 @@ packages: optional: true dependencies: cosmiconfig: 8.1.3 - cosmiconfig-typescript-loader: 4.3.0(@types/node@18.15.11)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4) + cosmiconfig-typescript-loader: 4.3.0(@types/node@18.15.12)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4) klona: 2.0.6 postcss: 8.4.23 semver: 7.5.0 - ts-node: 10.9.1(@types/node@18.15.11)(typescript@5.0.4) + ts-node: 10.9.1(@types/node@18.15.12)(typescript@5.0.4) typescript: 5.0.4 webpack: 5.80.0 transitivePeerDependencies: @@ -8992,7 +8992,7 @@ packages: /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - /ts-node@10.9.1(@types/node@18.15.11)(typescript@5.0.4): + /ts-node@10.9.1(@types/node@18.15.12)(typescript@5.0.4): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -9011,7 +9011,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.15.11 + '@types/node': 18.15.12 acorn: 8.8.2 acorn-walk: 8.2.0 arg: 4.1.3 @@ -9416,7 +9416,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.30.1(@types/node@18.15.11): + /vite-node@0.30.1(@types/node@18.15.12): resolution: {integrity: sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==} engines: {node: '>=v14.18.0'} hasBin: true @@ -9426,7 +9426,7 @@ packages: mlly: 1.2.0 pathe: 1.1.0 picocolors: 1.0.0 - vite: 4.2.1(@types/node@18.15.11) + vite: 4.3.0(@types/node@18.15.12) transitivePeerDependencies: - '@types/node' - less @@ -9436,7 +9436,7 @@ packages: - supports-color - terser - /vite-plugin-checker@0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.2.1)(vue-tsc@1.2.0): + /vite-plugin-checker@0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.3.0)(vue-tsc@1.2.0): resolution: {integrity: sha512-ftRyON0gORUHDxcDt2BErmsikKSkfvl1i2DoP6Jt2zDO9InfvM6tqO1RkXhSjkaXEhKPea6YOnhFaZxW3BzudQ==} engines: {node: '>=14.16'} peerDependencies: @@ -9481,7 +9481,7 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.0.4 - vite: 4.2.1(@types/node@18.15.11) + vite: 4.3.0(@types/node@18.15.12) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 @@ -9489,7 +9489,7 @@ packages: vue-tsc: 1.2.0(typescript@5.0.4) dev: false - /vite@3.2.5(@types/node@18.15.11): + /vite@3.2.5(@types/node@18.15.12): resolution: {integrity: sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -9514,7 +9514,7 @@ packages: terser: optional: true dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 esbuild: 0.15.18 postcss: 8.4.23 resolve: 1.22.1 @@ -9523,8 +9523,8 @@ packages: fsevents: 2.3.2 dev: true - /vite@4.2.1(@types/node@18.15.11): - resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==} + /vite@4.3.0(@types/node@18.15.12): + resolution: {integrity: sha512-JTGFgDh3dVxeGBpuQX04Up+JZmuG6wu9414Ei36vQzaEruY/M4K0AgwtuB2b4HaBgB7R8l+LHxjB0jcgz4d2qQ==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -9548,10 +9548,9 @@ packages: terser: optional: true dependencies: - '@types/node': 18.15.11 + '@types/node': 18.15.12 esbuild: 0.17.17 postcss: 8.4.23 - resolve: 1.22.1 rollup: 3.20.2 optionalDependencies: fsevents: 2.3.2 @@ -9589,7 +9588,7 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 18.15.11 + '@types/node': 18.15.12 '@vitest/expect': 0.30.1 '@vitest/runner': 0.30.1 '@vitest/snapshot': 0.30.1 @@ -9611,8 +9610,8 @@ packages: strip-literal: 1.0.1 tinybench: 2.4.0 tinypool: 0.4.0 - vite: 4.2.1(@types/node@18.15.11) - vite-node: 0.30.1(@types/node@18.15.11) + vite: 4.3.0(@types/node@18.15.12) + vite-node: 0.30.1(@types/node@18.15.12) why-is-node-running: 2.2.2 transitivePeerDependencies: - less From 3ac14c987de19d93f76f78d2c67e971581bd06e7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Apr 2023 13:55:56 +0100 Subject: [PATCH 076/912] chore(deps): update resolutions unbuild to ^1.2.1 (main) (#20413) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 63 ++++++++++++++++++++------------------------------ 2 files changed, 26 insertions(+), 39 deletions(-) diff --git a/package.json b/package.json index 91f30bbca1..e438c4f283 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "nuxi": "workspace:*", "nuxt": "workspace:*", "nuxt3": "workspace:nuxt@*", - "unbuild": "^1.2.0", + "unbuild": "^1.2.1", "vite": "^4.3.0", "vue": "3.2.47", "magic-string": "^0.30.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8a1d496bb3..e4cb463654 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: nuxi: workspace:* nuxt: workspace:* nuxt3: workspace:nuxt@* - unbuild: ^1.2.0 + unbuild: ^1.2.1 vite: ^4.3.0 vue: 3.2.47 magic-string: ^0.30.0 @@ -112,8 +112,8 @@ importers: specifier: ^1.1.1 version: 1.1.1 unbuild: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.1 + version: 1.2.1 vite: specifier: ^4.3.0 version: 4.3.0(@types/node@18.15.12) @@ -434,8 +434,8 @@ importers: specifier: ^2.3.3 version: 2.3.3 unbuild: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.1 + version: 1.2.1 vite: specifier: ^4.3.0 version: 4.3.0(@types/node@18.15.12) @@ -543,8 +543,8 @@ importers: specifier: ^1.1.1 version: 1.1.1 unbuild: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.1 + version: 1.2.1 packages/nuxt: dependencies: @@ -709,8 +709,8 @@ importers: specifier: ^8.8.2 version: 8.8.2 unbuild: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.1 + version: 1.2.1 vite: specifier: ^4.3.0 version: 4.3.0(@types/node@18.15.12) @@ -770,8 +770,8 @@ importers: specifier: ^2.3.3 version: 2.3.3 unbuild: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.1 + version: 1.2.1 unctx: specifier: ^2.3.0 version: 2.3.0 @@ -831,8 +831,8 @@ importers: specifier: ^1.32.3 version: 1.32.3 unbuild: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.1 + version: 1.2.1 vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -949,8 +949,8 @@ importers: specifier: ^1.0.1 version: 1.0.1 unbuild: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.1 + version: 1.2.1 vue: specifier: 3.2.47 version: 3.2.47 @@ -1091,8 +1091,8 @@ importers: specifier: ^0.1.1 version: 0.1.1 unbuild: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.1 + version: 1.2.1 vue: specifier: 3.2.47 version: 3.2.47 @@ -2165,19 +2165,6 @@ packages: /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} - /@rollup/plugin-alias@4.0.3(rollup@3.20.2): - resolution: {integrity: sha512-ZuDWE1q4PQDhvm/zc5Prun8sBpLJy41DMptYrS6MhAy9s9kL/doN1613BWfEchGVfKxzliJ3BjbOPizXX38DbQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - rollup: 3.20.2 - slash: 4.0.0 - dev: true - /@rollup/plugin-alias@5.0.0(rollup@3.20.2): resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} engines: {node: '>=14.0.0'} @@ -2190,8 +2177,8 @@ packages: rollup: 3.20.2 slash: 4.0.0 - /@rollup/plugin-commonjs@24.0.1(rollup@3.20.2): - resolution: {integrity: sha512-15LsiWRZk4eOGqvrJyu3z3DaBu5BhXIMeWnijSRvd8irrrg9SHpQ1pH+BUK4H6Z9wL9yOxZJMTLU+Au86XHxow==} + /@rollup/plugin-commonjs@24.1.0(rollup@3.20.2): + resolution: {integrity: sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.68.0||^3.0.0 @@ -7187,7 +7174,7 @@ packages: '@cloudflare/kv-asset-handler': 0.3.0 '@netlify/functions': 1.4.0 '@rollup/plugin-alias': 5.0.0(rollup@3.20.2) - '@rollup/plugin-commonjs': 24.0.1(rollup@3.20.2) + '@rollup/plugin-commonjs': 24.1.0(rollup@3.20.2) '@rollup/plugin-inject': 5.0.3(rollup@3.20.2) '@rollup/plugin-json': 6.0.0(rollup@3.20.2) '@rollup/plugin-node-resolve': 15.0.2(rollup@3.20.2) @@ -9143,18 +9130,18 @@ packages: which-boxed-primitive: 1.0.2 dev: true - /unbuild@1.2.0: - resolution: {integrity: sha512-GcolNMBatav7FbRdLDR8BMbnYWMoKfxXdJIHibpBtx3GERN4GbbUD5h4RfGIFi+mjWPz4AphSz5gIg9FWNWw3Q==} + /unbuild@1.2.1: + resolution: {integrity: sha512-J4efk69Aye43tWcBPCsLK7TIRppGrEN4pAlDzRKo3HSE6MgTSTBxSEuE3ccx7ixc62JvGQ/CoFXYqqF2AHozow==} hasBin: true dependencies: - '@rollup/plugin-alias': 4.0.3(rollup@3.20.2) - '@rollup/plugin-commonjs': 24.0.1(rollup@3.20.2) + '@rollup/plugin-alias': 5.0.0(rollup@3.20.2) + '@rollup/plugin-commonjs': 24.1.0(rollup@3.20.2) '@rollup/plugin-json': 6.0.0(rollup@3.20.2) '@rollup/plugin-node-resolve': 15.0.2(rollup@3.20.2) '@rollup/plugin-replace': 5.0.2(rollup@3.20.2) '@rollup/pluginutils': 5.0.2(rollup@3.20.2) chalk: 5.2.0 - consola: 2.15.3 + consola: 3.1.0 defu: 6.1.2 esbuild: 0.17.17 globby: 13.1.4 From 0ea719776b9a43208723fc2fc892e8d8595392ac Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Apr 2023 14:00:05 +0100 Subject: [PATCH 077/912] refactor(vite): use native `isFileServingAllowed` util (#20414) --- packages/vite/src/vite-node.ts | 64 ++-------------------------------- 1 file changed, 2 insertions(+), 62 deletions(-) diff --git a/packages/vite/src/vite-node.ts b/packages/vite/src/vite-node.ts index 5df7a99300..8485a1599c 100644 --- a/packages/vite/src/vite-node.ts +++ b/packages/vite/src/vite-node.ts @@ -1,11 +1,11 @@ import { pathToFileURL } from 'node:url' -import os from 'node:os' import { createApp, createError, defineEventHandler, defineLazyEventHandler, eventHandler, toNodeListener } from 'h3' import { ViteNodeServer } from 'vite-node/server' import fse from 'fs-extra' import { isAbsolute, normalize, resolve } from 'pathe' import { addDevServerHandler } from '@nuxt/kit' -import type { ModuleNode, ViteDevServer, Plugin as VitePlugin } from 'vite' +import { isFileServingAllowed } from 'vite' +import type { ModuleNode, Plugin as VitePlugin } from 'vite' import { normalizeViteManifest } from 'vue-bundle-renderer' import { resolve as resolveModule } from 'mlly' import { distDir } from './dirs' @@ -183,63 +183,3 @@ export async function initViteNodeServer (ctx: ViteBuildContext) { `export { default } from ${JSON.stringify(pathToFileURL(manifestResolvedPath).href)}` ) } - -/** - * The following code is ported from vite - * Awaits https://github.com/vitejs/vite/pull/12894 - */ -const VOLUME_RE = /^[A-Z]:/i -const FS_PREFIX = '/@fs/' -const isWindows = os.platform() === 'win32' -const postfixRE = /[?#].*$/s -const windowsSlashRE = /\\/g - -function slash (p: string): string { - return p.replace(windowsSlashRE, '/') -} - -function normalizePath (id: string): string { - return normalize(isWindows ? slash(id) : id) -} -function fsPathFromId (id: string): string { - const fsPath = normalizePath( - id.startsWith(FS_PREFIX) ? id.slice(FS_PREFIX.length) : id - ) - return fsPath[0] === '/' || fsPath.match(VOLUME_RE) ? fsPath : `/${fsPath}` -} - -function fsPathFromUrl (url: string): string { - return fsPathFromId(cleanUrl(url)) -} - -function cleanUrl (url: string): string { - return url.replace(postfixRE, '') -} - -function isFileServingAllowed ( - url: string, - server: ViteDevServer -): boolean { - if (!server.config.server.fs.strict) { return true } - - const file = fsPathFromUrl(url) - - // @ts-expect-error private API - if (server._fsDenyGlob(file)) { return false } - - if (server.moduleGraph.safeModulesPath.has(file)) { return true } - - if (server.config.server.fs.allow.some(dir => isParentDirectory(dir, file))) { return true } - - return false -} - -function isParentDirectory (dir: string, file: string): boolean { - if (dir[dir.length - 1] !== '/') { - dir = `${dir}/` - } - return ( - file.startsWith(dir) || - (file.toLowerCase().startsWith(dir.toLowerCase())) - ) -} From 607bfdcfefe3520c89202fe5a5525794792192d7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 20 Apr 2023 14:51:12 +0100 Subject: [PATCH 078/912] v3.4.2 (#20410) --- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 5bee752d1f..c8b0b317a6 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.4.1", + "version": "3.4.2", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 7b3dcd5b6f..7280be0d34 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -1,6 +1,6 @@ { "name": "nuxi", - "version": "3.4.1", + "version": "3.4.2", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 66e10d4ddd..fdcde979ff 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.4.1", + "version": "3.4.2", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/schema/package.json b/packages/schema/package.json index cf6a694303..6599271a8e 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.4.1", + "version": "3.4.2", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index e19d8f174d..7984f6edaf 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.4.1", + "version": "3.4.2", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/vite/package.json b/packages/vite/package.json index 44f177d2d1..3023c1fff2 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.4.1", + "version": "3.4.2", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index d114413932..c6e06ee239 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.4.1", + "version": "3.4.2", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", From ec1503731b1cabb331c28726bba3fb4d4e2d3af8 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Apr 2023 20:55:06 +0100 Subject: [PATCH 079/912] ci: publish edge release with provenance --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8793aa7e74..c6c373f2c4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -185,6 +185,8 @@ jobs: TEST_PAYLOAD: ${{ matrix.payload }} build-release: + permissions: + id-token: write if: | github.event_name == 'push' && !contains(github.event.head_commit.message, '[skip-release]') && @@ -226,3 +228,4 @@ jobs: run: ./scripts/release-edge.sh env: NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}} + NPM_CONFIG_PROVENANCE: true From 0d10e9734b2c3a8ef6c2dcebf09e75364fd871a3 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Apr 2023 21:22:31 +0100 Subject: [PATCH 080/912] ci: run release script with node 18 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c6c373f2c4..71662802d2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -201,7 +201,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - node: [16] + node: [18] timeout-minutes: 20 From 8b7df05ff0250209de9e08a3e1ba77c496b9fe1f Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Apr 2023 22:18:32 +0100 Subject: [PATCH 081/912] fix(nuxt): don't call `timeEnd` unless we're debugging (#20424) --- packages/nuxt/src/core/builder.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/core/builder.ts b/packages/nuxt/src/core/builder.ts index 548b5ce9b8..147f6f4452 100644 --- a/packages/nuxt/src/core/builder.ts +++ b/packages/nuxt/src/core/builder.ts @@ -75,7 +75,9 @@ async function watch (nuxt: Nuxt) { ] }) watcher.then((subscription) => { - console.timeEnd('[nuxt] builder:parcel:watch') + if (nuxt.options.debug) { + console.timeEnd('[nuxt] builder:parcel:watch') + } nuxt.hook('close', () => subscription.unsubscribe()) }) } From e8e01bac136cc78ffeb288feb5d23a9b28e1ce24 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Thu, 20 Apr 2023 23:41:20 +0200 Subject: [PATCH 082/912] fix(nuxt): use key to force server component re-rendering (#19911) --- .../nuxt/src/app/components/nuxt-island.ts | 45 ++++++++++++++++--- .../components/runtime/server-component.ts | 10 +++-- test/basic.test.ts | 23 ++++++++-- test/fixtures/basic/pages/islands.vue | 6 +-- 4 files changed, 70 insertions(+), 14 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index 52eb133bb5..69ebb5e523 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -1,4 +1,5 @@ -import { computed, createStaticVNode, defineComponent, getCurrentInstance, ref, watch } from 'vue' +import type { RendererNode } from 'vue' +import { computed, createStaticVNode, defineComponent, getCurrentInstance, h, ref, watch } from 'vue' import { debounce } from 'perfect-debounce' import { hash } from 'ohash' import { appendHeader } from 'h3' @@ -33,7 +34,7 @@ export default defineComponent({ const instance = getCurrentInstance()! const event = useRequestEvent() - const html = ref(process.client ? instance.vnode.el?.outerHTML ?? '
' : '
') + const html = ref(process.client ? getFragmentHTML(instance?.vnode?.el).join('') ?? '
' : '
') const cHead = ref>>>({ link: [], style: [] }) useHead(cHead) @@ -51,7 +52,7 @@ export default defineComponent({ } }) } - + const key = ref(0) async function fetchComponent () { nuxtApp[pKey] = nuxtApp[pKey] || {} if (!nuxtApp[pKey][hashId.value]) { @@ -63,6 +64,7 @@ export default defineComponent({ cHead.value.link = res.head.link cHead.value.style = res.head.style html.value = res.html + key.value++ } if (process.client) { @@ -72,7 +74,40 @@ export default defineComponent({ if (process.server || !nuxtApp.isHydrating) { await fetchComponent() } - - return () => createStaticVNode(html.value, 1) + return () => h((_, { slots }) => slots.default?.(), { key: key.value }, { + default: () => [createStaticVNode(html.value, 1)] + }) } }) + +// TODO refactor with https://github.com/nuxt/nuxt/pull/19231 +function getFragmentHTML (element: RendererNode | null) { + if (element) { + if (element.nodeName === '#comment' && element.nodeValue === '[') { + return getFragmentChildren(element) + } + return [element.outerHTML] + } + return [] +} + +function getFragmentChildren (element: RendererNode | null, blocks: string[] = []) { + if (element && element.nodeName) { + if (isEndFragment(element)) { + return blocks + } else if (!isStartFragment(element)) { + blocks.push(element.outerHTML) + } + + getFragmentChildren(element.nextSibling, blocks) + } + return blocks +} + +function isStartFragment (element: RendererNode) { + return element.nodeName === '#comment' && element.nodeValue === '[' +} + +function isEndFragment (element: RendererNode) { + return element.nodeName === '#comment' && element.nodeValue === ']' +} diff --git a/packages/nuxt/src/components/runtime/server-component.ts b/packages/nuxt/src/components/runtime/server-component.ts index 127bbcfbd0..bef75caf4a 100644 --- a/packages/nuxt/src/components/runtime/server-component.ts +++ b/packages/nuxt/src/components/runtime/server-component.ts @@ -1,4 +1,4 @@ -import { computed, createStaticVNode, defineComponent, h, watch } from 'vue' +import { Fragment, computed, createStaticVNode, createVNode, defineComponent, h, ref, watch } from 'vue' import { debounce } from 'perfect-debounce' import { hash } from 'ohash' import { appendHeader } from 'h3' @@ -42,6 +42,7 @@ const NuxtServerComponent = defineComponent({ }, async setup (props) { const nuxtApp = useNuxtApp() + const key = ref(0) const hashId = computed(() => hash([props.name, props.props, props.context])) const event = useRequestEvent() @@ -92,11 +93,14 @@ const NuxtServerComponent = defineComponent({ useHead(() => res.data.value!.head) if (process.client) { - watch(props, debounce(() => res.execute(), 100)) + watch(props, debounce(async () => { + await res.execute() + key.value++ + }, 100)) } await res - return () => createStaticVNode(res.data.value!.html, 1) + return () => createVNode(Fragment, { key: key.value }, [createStaticVNode(res.data.value!.html, 1)]) } }) diff --git a/test/basic.test.ts b/test/basic.test.ts index b2f508fbd8..a8c1331fbf 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -337,6 +337,23 @@ describe('pages', () => { await page.close() }) + + it('/islands', async () => { + const page = await createPage('/islands') + await page.waitForLoadState('networkidle') + await page.locator('#increase-pure-component').click() + await page.waitForResponse(response => response.url().includes('/__nuxt_island/') && response.status() === 200) + await page.waitForLoadState('networkidle') + expect(await page.locator('.box').innerHTML()).toContain('"number": 101,') + await page.locator('#count-async-server-long-async').click() + await Promise.all([ + page.waitForResponse(response => response.url().includes('/__nuxt_island/LongAsyncComponent') && response.status() === 200), + page.waitForResponse(response => response.url().includes('/__nuxt_island/AsyncServerComponent') && response.status() === 200) + ]) + await page.waitForLoadState('networkidle') + expect(await page.locator('#async-server-component-count').innerHTML()).toContain(('1')) + expect(await page.locator('#long-async-component-count').innerHTML()).toContain('1') + }) }) describe('rich payloads', () => { @@ -1109,7 +1126,7 @@ describe('component islands', () => { const result: NuxtIslandResponse = await $fetch('/__nuxt_island/RouteComponent?url=/foo') if (isDev()) { - result.head.link = result.head.link.filter(l => !l.href.includes('@nuxt+ui-templates')) + result.head.link = result.head.link.filter(l => !l.href.includes('@nuxt+ui-templates') && (l.href.startsWith('_nuxt/components/islands/') && l.href.includes('_nuxt/components/islands/RouteComponent'))) } expect(result).toMatchInlineSnapshot(` @@ -1132,7 +1149,7 @@ describe('component islands', () => { }) })) if (isDev()) { - result.head.link = result.head.link.filter(l => !l.href.includes('@nuxt+ui-templates')) + result.head.link = result.head.link.filter(l => !l.href.includes('@nuxt+ui-templates') && (l.href.startsWith('_nuxt/components/islands/') && l.href.includes('_nuxt/components/islands/LongAsyncComponent'))) } expect(result).toMatchInlineSnapshot(` { @@ -1153,7 +1170,7 @@ describe('component islands', () => { }) })) if (isDev()) { - result.head.link = result.head.link.filter(l => !l.href.includes('@nuxt+ui-templates')) + result.head.link = result.head.link.filter(l => !l.href.includes('@nuxt+ui-templates') && (l.href.startsWith('_nuxt/components/islands/') && l.href.includes('_nuxt/components/islands/AsyncServerComponent'))) } expect(result).toMatchInlineSnapshot(` { diff --git a/test/fixtures/basic/pages/islands.vue b/test/fixtures/basic/pages/islands.vue index 6ea3d6d5d7..3e6051e454 100644 --- a/test/fixtures/basic/pages/islands.vue +++ b/test/fixtures/basic/pages/islands.vue @@ -18,7 +18,7 @@ const count = ref(0) -
@@ -26,7 +26,7 @@ const count = ref(0)
- @@ -35,7 +35,7 @@ const count = ref(0)
Async island component (20ms): -
From f1ded44e80b796deb70e039873a0165f1f632712 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Apr 2023 22:47:56 +0100 Subject: [PATCH 083/912] fix(nuxt): add basic typings for `` --- .../components/{client-only.mjs => client-only.ts} | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) rename packages/nuxt/src/app/components/{client-only.mjs => client-only.ts} (89%) diff --git a/packages/nuxt/src/app/components/client-only.mjs b/packages/nuxt/src/app/components/client-only.ts similarity index 89% rename from packages/nuxt/src/app/components/client-only.mjs rename to packages/nuxt/src/app/components/client-only.ts index 7d3ce8b5f8..60c6523a8b 100644 --- a/packages/nuxt/src/app/components/client-only.mjs +++ b/packages/nuxt/src/app/components/client-only.ts @@ -1,4 +1,5 @@ import { createElementBlock, createElementVNode, defineComponent, h, mergeProps, onMounted, ref } from 'vue' +import type { ComponentOptions } from 'vue' export default defineComponent({ name: 'ClientOnly', @@ -8,7 +9,7 @@ export default defineComponent({ setup (_, { slots, attrs }) { const mounted = ref(false) onMounted(() => { mounted.value = true }) - return (props) => { + return (props: any) => { if (mounted.value) { return slots.default?.() } const slot = slots.fallback || slots.placeholder if (slot) { return slot() } @@ -21,7 +22,7 @@ export default defineComponent({ const cache = new WeakMap() -export function createClientOnly (component) { +export function createClientOnly (component: T) { if (cache.has(component)) { return cache.get(component) } @@ -30,9 +31,9 @@ export function createClientOnly (component) { if (clone.render) { // override the component render (non script setup component) - clone.render = (ctx, ...args) => { + clone.render = (ctx: any, ...args: any[]) => { if (ctx.mounted$) { - const res = component.render(ctx, ...args) + const res = component.render!(ctx, ...args) return (res.children === null || typeof res.children === 'string') ? createElementVNode(res.type, res.props, res.children, res.patchFlag, res.dynamicProps, res.shapeFlag) : h(res) @@ -56,7 +57,7 @@ export function createClientOnly (component) { .then((setupState) => { return typeof setupState !== 'function' ? { ...setupState, mounted$ } - : (...args) => { + : (...args: any[]) => { if (mounted$.value) { const res = setupState(...args) return (res.children === null || typeof res.children === 'string') From 387d2c4d214fbf2047fbeffad0673269a0ad15c2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Apr 2023 22:58:28 +0100 Subject: [PATCH 084/912] chore(deps): update devdependency vue-tsc to ^1.4.0 (main) (#20421) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 65 +++++++++++++++++++++++++------------------------- 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/package.json b/package.json index e438c4f283..7b8f300dbd 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "vitest": "^0.30.1", "vue": "3.2.47", "vue-eslint-parser": "^9.1.1", - "vue-tsc": "^1.2.0" + "vue-tsc": "^1.4.0" }, "packageManager": "pnpm@8.3.1", "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e4cb463654..8886b7b2d4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -127,8 +127,8 @@ importers: specifier: ^9.1.1 version: 9.1.1(eslint@8.38.0) vue-tsc: - specifier: ^1.2.0 - version: 1.2.0(typescript@5.0.4) + specifier: ^1.4.0 + version: 1.4.0(typescript@5.0.4) examples/advanced/config-extends: devDependencies: @@ -937,7 +937,7 @@ importers: version: 0.30.1(@types/node@18.15.12) vite-plugin-checker: specifier: ^0.5.6 - version: 0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.3.0)(vue-tsc@1.2.0) + version: 0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.3.0)(vue-tsc@1.4.0) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 @@ -3017,39 +3017,44 @@ packages: pretty-format: 27.5.1 dev: true - /@volar/language-core@1.3.0-alpha.0: - resolution: {integrity: sha512-W3uMzecHPcbwddPu4SJpUcPakRBK/y/BP+U0U6NiPpUX1tONLC4yCawt+QBJqtgJ+sfD6ztf5PyvPL3hQRqfOA==} + /@volar/language-core@1.4.0: + resolution: {integrity: sha512-zZg771L/v4MCPwM1KJxvnQ3q3QgbGJtEytivqf+PsxPr0kQ7XtwB1J30dd+YSGN869pXXZ0V6vWdHkDpWC8F3A==} dependencies: - '@volar/source-map': 1.3.0-alpha.0 + '@volar/source-map': 1.4.0 - /@volar/source-map@1.3.0-alpha.0: - resolution: {integrity: sha512-jSdizxWFvDTvkPYZnO6ew3sBZUnS0abKCbuopkc0JrIlFbznWC/fPH3iPFIMS8/IIkRxq1Jh9VVG60SmtsdaMQ==} + /@volar/source-map@1.4.0: + resolution: {integrity: sha512-gkV8ol9qtP7aMdgijc8a5Yoxxoo90TT55YCi9bsMbKxEUDsOAnlciFNlijR9Ebe42d67GV3w15/RzjveTRNGBw==} dependencies: muggle-string: 0.2.2 - /@volar/typescript@1.3.0-alpha.0: - resolution: {integrity: sha512-5UItyW2cdH2mBLu4RrECRNJRgtvvzKrSCn2y3v/D61QwIDkGx4aeil6x8RFuUL5TFtV6QvVHXnsOHxNgd+sCow==} + /@volar/typescript@1.4.0(typescript@5.0.4): + resolution: {integrity: sha512-r6OMHj/LeS86iQy3LEjjS+qpmHr9I7BiH8gAwp9WEJP76FHlMPi/EPDQxhf3VcMQ/w6Pi5aBczqI+I3akr9t4g==} + peerDependencies: + typescript: '*' dependencies: - '@volar/language-core': 1.3.0-alpha.0 + '@volar/language-core': 1.4.0 + typescript: 5.0.4 - /@volar/vue-language-core@1.2.0: - resolution: {integrity: sha512-w7yEiaITh2WzKe6u8ZdeLKCUz43wdmY/OqAmsB/PGDvvhTcVhCJ6f0W/RprZL1IhqH8wALoWiwEh/Wer7ZviMQ==} + /@volar/vue-language-core@1.4.0: + resolution: {integrity: sha512-AIl9iW/6qac1FIJNi6cL27HNNWQWN1gzYkAA3qgcyvpx83a7YEbm9uPC9oelQhiODwFtdt3f3U5ta0l/5kKqjw==} dependencies: - '@volar/language-core': 1.3.0-alpha.0 - '@volar/source-map': 1.3.0-alpha.0 + '@volar/language-core': 1.4.0 + '@volar/source-map': 1.4.0 '@vue/compiler-dom': 3.2.47 '@vue/compiler-sfc': 3.2.47 '@vue/reactivity': 3.2.47 '@vue/shared': 3.2.47 - minimatch: 6.2.0 + minimatch: 9.0.0 muggle-string: 0.2.2 vue-template-compiler: 2.7.14 - /@volar/vue-typescript@1.2.0: - resolution: {integrity: sha512-zjmRi9y3J1EkG+pfuHp8IbHmibihrKK485cfzsHjiuvJMGrpkWvlO5WVEk8oslMxxeGC5XwBFE9AOlvh378EPA==} + /@volar/vue-typescript@1.4.0(typescript@5.0.4): + resolution: {integrity: sha512-DOwKNuK4ScK+NXOU+kxMqVbOK9vCIj9TSOX7iBA34CHzIdnjDWK3ne1Iw74ltat2VX1PEyVQKzC74ZxoInV9bw==} dependencies: - '@volar/typescript': 1.3.0-alpha.0 - '@volar/vue-language-core': 1.2.0 + '@volar/typescript': 1.4.0(typescript@5.0.4) + '@volar/vue-language-core': 1.4.0 + transitivePeerDependencies: + - typescript /@vue/babel-helper-vue-transform-on@1.0.2: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} @@ -7047,18 +7052,11 @@ packages: dependencies: brace-expansion: 2.0.1 - /minimatch@6.2.0: - resolution: {integrity: sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - /minimatch@9.0.0: resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 - dev: true /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -9423,7 +9421,7 @@ packages: - supports-color - terser - /vite-plugin-checker@0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.3.0)(vue-tsc@1.2.0): + /vite-plugin-checker@0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.3.0)(vue-tsc@1.4.0): resolution: {integrity: sha512-ftRyON0gORUHDxcDt2BErmsikKSkfvl1i2DoP6Jt2zDO9InfvM6tqO1RkXhSjkaXEhKPea6YOnhFaZxW3BzudQ==} engines: {node: '>=14.16'} peerDependencies: @@ -9473,7 +9471,7 @@ packages: vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 vscode-uri: 3.0.7 - vue-tsc: 1.2.0(typescript@5.0.4) + vue-tsc: 1.4.0(typescript@5.0.4) dev: false /vite@3.2.5(@types/node@18.15.12): @@ -9724,14 +9722,15 @@ packages: de-indent: 1.0.2 he: 1.2.0 - /vue-tsc@1.2.0(typescript@5.0.4): - resolution: {integrity: sha512-rIlzqdrhyPYyLG9zxsVRa+JEseeS9s8F2BbVVVWRRsTZvJO2BbhLEb2HW3MY+DFma0378tnIqs+vfTzbcQtRFw==} + /vue-tsc@1.4.0(typescript@5.0.4): + resolution: {integrity: sha512-zASWNqFTIHaY6K8ua0ifFpiX7lA4pz8zKkevLAVYyzBQu6Jc63xWdY3eH0qCUJm7L4K4h9nzbwysta89sfq7ZQ==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@volar/vue-language-core': 1.2.0 - '@volar/vue-typescript': 1.2.0 + '@volar/vue-language-core': 1.4.0 + '@volar/vue-typescript': 1.4.0(typescript@5.0.4) + semver: 7.5.0 typescript: 5.0.4 /vue@3.2.47: From fd281f2d7d0f07a29ea26879e5605742d50dad09 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Apr 2023 23:31:50 +0100 Subject: [PATCH 085/912] chore(deps): update all non-major dependencies (main) (#20426) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +-- packages/kit/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 66 +++++++++++++++++------------------ 7 files changed, 40 insertions(+), 40 deletions(-) diff --git a/package.json b/package.json index 7b8f300dbd..06a07f3037 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "nuxt": "workspace:*", "nuxt3": "workspace:nuxt@*", "unbuild": "^1.2.1", - "vite": "^4.3.0", + "vite": "^4.3.1", "vue": "3.2.47", "magic-string": "^0.30.0" }, @@ -73,7 +73,7 @@ "typescript": "^5.0.4", "ufo": "^1.1.1", "unbuild": "^1.2.1", - "vite": "^4.3.0", + "vite": "^4.3.1", "vitest": "^0.30.1", "vue": "3.2.47", "vue-eslint-parser": "^9.1.1", diff --git a/packages/kit/package.json b/packages/kit/package.json index c8b0b317a6..c37110f44b 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -45,7 +45,7 @@ "@types/semver": "^7.3.13", "nitropack": "^2.3.3", "unbuild": "latest", - "vite": "^4.3.0", + "vite": "^4.3.1", "vitest": "^0.30.1", "webpack": "^5.80.0" }, diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index fdcde979ff..868bdfe54c 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -107,7 +107,7 @@ "@vitejs/plugin-vue": "^4.1.0", "acorn": "^8.8.2", "unbuild": "latest", - "vite": "^4.3.0", + "vite": "^4.3.1", "vitest": "^0.30.1" }, "peerDependencies": { diff --git a/packages/schema/package.json b/packages/schema/package.json index 6599271a8e..9f81d1fd9b 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -30,7 +30,7 @@ "nitropack": "^2.3.3", "unbuild": "latest", "unctx": "^2.3.0", - "vite": "~4.3.0", + "vite": "~4.3.1", "vue": "3.2.47", "vue-bundle-renderer": "^1.0.3", "vue-router": "^4.1.6", diff --git a/packages/vite/package.json b/packages/vite/package.json index 3023c1fff2..bf7c594ce2 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -54,7 +54,7 @@ "strip-literal": "^1.0.1", "ufo": "^1.1.1", "unplugin": "^1.3.1", - "vite": "~4.3.0", + "vite": "~4.3.1", "vite-node": "^0.30.1", "vite-plugin-checker": "^0.5.6", "vue-bundle-renderer": "^1.0.3" diff --git a/packages/webpack/package.json b/packages/webpack/package.json index c6e06ee239..fa9143f473 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -35,7 +35,7 @@ "hash-sum": "^2.0.0", "lodash-es": "^4.17.21", "magic-string": "^0.30.0", - "memfs": "^3.5.0", + "memfs": "^3.5.1", "mini-css-extract-plugin": "^2.7.5", "mlly": "^1.2.0", "ohash": "^1.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8886b7b2d4..e7d781d249 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ overrides: nuxt: workspace:* nuxt3: workspace:nuxt@* unbuild: ^1.2.1 - vite: ^4.3.0 + vite: ^4.3.1 vue: 3.2.47 magic-string: ^0.30.0 @@ -115,8 +115,8 @@ importers: specifier: ^1.2.1 version: 1.2.1 vite: - specifier: ^4.3.0 - version: 4.3.0(@types/node@18.15.12) + specifier: ^4.3.1 + version: 4.3.1(@types/node@18.15.12) vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -437,8 +437,8 @@ importers: specifier: ^1.2.1 version: 1.2.1 vite: - specifier: ^4.3.0 - version: 4.3.0(@types/node@18.15.12) + specifier: ^4.3.1 + version: 4.3.1(@types/node@18.15.12) vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -704,7 +704,7 @@ importers: version: 2.4.4 '@vitejs/plugin-vue': specifier: ^4.1.0 - version: 4.1.0(vite@4.3.0)(vue@3.2.47) + version: 4.1.0(vite@4.3.1)(vue@3.2.47) acorn: specifier: ^8.8.2 version: 8.8.2 @@ -712,8 +712,8 @@ importers: specifier: ^1.2.1 version: 1.2.1 vite: - specifier: ^4.3.0 - version: 4.3.0(@types/node@18.15.12) + specifier: ^4.3.1 + version: 4.3.1(@types/node@18.15.12) vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -756,10 +756,10 @@ importers: version: 1.1.26 '@vitejs/plugin-vue': specifier: ^4.1.0 - version: 4.1.0(vite@4.3.0)(vue@3.2.47) + version: 4.1.0(vite@4.3.1)(vue@3.2.47) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.3.0)(vue@3.2.47) + version: 3.0.1(vite@4.3.1)(vue@3.2.47) h3: specifier: ^1.6.4 version: 1.6.4 @@ -776,8 +776,8 @@ importers: specifier: ^2.3.0 version: 2.3.0 vite: - specifier: ^4.3.0 - version: 4.3.0(@types/node@18.15.12) + specifier: ^4.3.1 + version: 4.3.1(@types/node@18.15.12) vue: specifier: 3.2.47 version: 3.2.47 @@ -847,10 +847,10 @@ importers: version: 5.0.2(rollup@3.20.2) '@vitejs/plugin-vue': specifier: ^4.1.0 - version: 4.1.0(vite@4.3.0)(vue@3.2.47) + version: 4.1.0(vite@4.3.1)(vue@3.2.47) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.3.0)(vue@3.2.47) + version: 3.0.1(vite@4.3.1)(vue@3.2.47) autoprefixer: specifier: ^10.4.14 version: 10.4.14(postcss@8.4.23) @@ -930,14 +930,14 @@ importers: specifier: ^1.3.1 version: 1.3.1 vite: - specifier: ^4.3.0 - version: 4.3.0(@types/node@18.15.12) + specifier: ^4.3.1 + version: 4.3.1(@types/node@18.15.12) vite-node: specifier: ^0.30.1 version: 0.30.1(@types/node@18.15.12) vite-plugin-checker: specifier: ^0.5.6 - version: 0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.3.0)(vue-tsc@1.4.0) + version: 0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.3.1)(vue-tsc@1.4.0) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 @@ -1006,8 +1006,8 @@ importers: specifier: ^0.30.0 version: 0.30.0 memfs: - specifier: ^3.5.0 - version: 3.5.0 + specifier: ^3.5.1 + version: 3.5.1 mini-css-extract-plugin: specifier: ^2.7.5 version: 2.7.5(webpack@5.80.0) @@ -2953,7 +2953,7 @@ packages: - encoding - supports-color - /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.0)(vue@3.2.47): + /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.1)(vue@3.2.47): resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2963,19 +2963,19 @@ packages: '@babel/core': 7.21.4 '@babel/plugin-transform-typescript': 7.21.0(@babel/core@7.21.4) '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.4) - vite: 4.3.0(@types/node@18.15.12) + vite: 4.3.1(@types/node@18.15.12) vue: 3.2.47 transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@4.1.0(vite@4.3.0)(vue@3.2.47): + /@vitejs/plugin-vue@4.1.0(vite@4.3.1)(vue@3.2.47): resolution: {integrity: sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.3.0(@types/node@18.15.12) + vite: 4.3.1(@types/node@18.15.12) vue: 3.2.47 /@vitest/expect@0.30.1: @@ -5646,7 +5646,7 @@ packages: cosmiconfig: 7.1.0 deepmerge: 4.3.0 fs-extra: 10.1.0 - memfs: 3.5.0 + memfs: 3.5.1 minimatch: 3.1.2 node-abort-controller: 3.1.1 schema-utils: 3.1.2 @@ -6957,8 +6957,8 @@ packages: engines: {node: '>= 0.6'} dev: true - /memfs@3.5.0: - resolution: {integrity: sha512-yK6o8xVJlQerz57kvPROwTMgx5WtGwC2ZxDtOUsnGl49rHjYkfQoPNZPCKH73VdLE1BwBu/+Fx/NL8NYMUw2aA==} + /memfs@3.5.1: + resolution: {integrity: sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==} engines: {node: '>= 4.0.0'} dependencies: fs-monkey: 1.0.3 @@ -9411,7 +9411,7 @@ packages: mlly: 1.2.0 pathe: 1.1.0 picocolors: 1.0.0 - vite: 4.3.0(@types/node@18.15.12) + vite: 4.3.1(@types/node@18.15.12) transitivePeerDependencies: - '@types/node' - less @@ -9421,7 +9421,7 @@ packages: - supports-color - terser - /vite-plugin-checker@0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.3.0)(vue-tsc@1.4.0): + /vite-plugin-checker@0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.3.1)(vue-tsc@1.4.0): resolution: {integrity: sha512-ftRyON0gORUHDxcDt2BErmsikKSkfvl1i2DoP6Jt2zDO9InfvM6tqO1RkXhSjkaXEhKPea6YOnhFaZxW3BzudQ==} engines: {node: '>=14.16'} peerDependencies: @@ -9466,7 +9466,7 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.0.4 - vite: 4.3.0(@types/node@18.15.12) + vite: 4.3.1(@types/node@18.15.12) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 @@ -9508,8 +9508,8 @@ packages: fsevents: 2.3.2 dev: true - /vite@4.3.0(@types/node@18.15.12): - resolution: {integrity: sha512-JTGFgDh3dVxeGBpuQX04Up+JZmuG6wu9414Ei36vQzaEruY/M4K0AgwtuB2b4HaBgB7R8l+LHxjB0jcgz4d2qQ==} + /vite@4.3.1(@types/node@18.15.12): + resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -9595,7 +9595,7 @@ packages: strip-literal: 1.0.1 tinybench: 2.4.0 tinypool: 0.4.0 - vite: 4.3.0(@types/node@18.15.12) + vite: 4.3.1(@types/node@18.15.12) vite-node: 0.30.1(@types/node@18.15.12) why-is-node-running: 2.2.2 transitivePeerDependencies: @@ -9797,7 +9797,7 @@ packages: optional: true dependencies: colorette: 2.0.20 - memfs: 3.5.0 + memfs: 3.5.1 mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.0.0 From ea1c5b25506936eeb3ec7e6f8b0fcd1e95223027 Mon Sep 17 00:00:00 2001 From: Andrew Luca <1881266+iamandrewluca@users.noreply.github.com> Date: Mon, 24 Apr 2023 23:25:36 +0300 Subject: [PATCH 086/912] fix(nuxt): use `event.node.req` in cookie utility (#20474) --- packages/nuxt/src/app/composables/cookie.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/composables/cookie.ts b/packages/nuxt/src/app/composables/cookie.ts index b92a8903bf..e36957a343 100644 --- a/packages/nuxt/src/app/composables/cookie.ts +++ b/packages/nuxt/src/app/composables/cookie.ts @@ -60,7 +60,7 @@ export function useCookie (name: string, _opts?: function readRawCookies (opts: CookieOptions = {}): Record | undefined { if (process.server) { - return parse(useRequestEvent()?.req.headers.cookie || '', opts) + return parse(useRequestEvent()?.node.req.headers.cookie || '', opts) } else if (process.client) { return parse(document.cookie, opts) } From 5a0ec804c2d5a3b24c5d92a872aed0fc4989a7c2 Mon Sep 17 00:00:00 2001 From: Idorenyin Udoh Date: Mon, 24 Apr 2023 21:27:59 +0100 Subject: [PATCH 087/912] docs: fix typos on docs homepage (#20456) --- docs/0.index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/0.index.md b/docs/0.index.md index 923a6060e0..1194990edd 100644 --- a/docs/0.index.md +++ b/docs/0.index.md @@ -107,7 +107,7 @@ From an idea to a masterpiece, guides take you on the path to becoming a Nuxter. #title API #description -Every Nuxt components, composables and utilities, in details. +Every Nuxt component, composable and utility, in detail. #extra ::card-list :::card-item From 2d4ca20f3b4df00487d5442d0603237bfd6806df Mon Sep 17 00:00:00 2001 From: Johannes Przymusinski Date: Mon, 24 Apr 2023 22:29:24 +0200 Subject: [PATCH 088/912] docs: update links to `vue-router` docs (#20454) --- docs/3.api/1.composables/use-router.md | 4 ++-- docs/3.api/2.components/2.nuxt-page.md | 2 +- docs/3.api/2.components/4.nuxt-link.md | 16 ++++++++-------- docs/3.api/3.utils/navigate-to.md | 2 +- docs/3.api/3.utils/on-before-route-leave.md | 2 +- docs/3.api/3.utils/on-before-route-update.md | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/3.api/1.composables/use-router.md b/docs/3.api/1.composables/use-router.md index d4ce2e7cf9..c38d14c364 100644 --- a/docs/3.api/1.composables/use-router.md +++ b/docs/3.api/1.composables/use-router.md @@ -11,7 +11,7 @@ Within the template of a Vue component, you can access the router using `$router If you have a `pages/` folder, `useRouter` is identical in behavior to the one provided by `vue-router`. Feel free to read the router documentation for more information on what each method does. -::ReadMore{link="https://router.vuejs.org/api/#currentroute"} +::ReadMore{link="https://router.vuejs.org/api/interfaces/Router.html#Properties-currentRoute"} :: ## Basic Manipulation @@ -58,7 +58,7 @@ However, Nuxt has a concept of **route middleware** that simplifies the implemen - **onError:** Adds an error handler that is called every time a non caught error happens during navigation. - **resolve:** Returns the normalized version of a route location. Also includes an `href` property that includes any existing base. -::ReadMore{link="https://router.vuejs.org/api/#router-methods"} +::ReadMore{link="https://router.vuejs.org/api/interfaces/Router.html#Methods"} :: ## Universal Router Instance diff --git a/docs/3.api/2.components/2.nuxt-page.md b/docs/3.api/2.components/2.nuxt-page.md index 8ea786b1e4..fac45130f7 100644 --- a/docs/3.api/2.components/2.nuxt-page.md +++ b/docs/3.api/2.components/2.nuxt-page.md @@ -7,7 +7,7 @@ description: The NuxtPage component is required to display pages located in the `` is a built-in component that comes with Nuxt. `NuxtPage` is required to display top-level or nested pages located in the `pages/` directory. -`NuxtPage` is a wrapper around [``](https://router.vuejs.org/api/#router-view-props) component from Vue Router. `NuxtPage` component accepts same `name` and `route` props. +`NuxtPage` is a wrapper around [``](https://router.vuejs.org/api/interfaces/RouterViewProps.html#interface-routerviewprops) component from Vue Router. `NuxtPage` component accepts same `name` and `route` props. - **name:** type: `string` diff --git a/docs/3.api/2.components/4.nuxt-link.md b/docs/3.api/2.components/4.nuxt-link.md index 1903cd66b2..42d4cd8a8e 100644 --- a/docs/3.api/2.components/4.nuxt-link.md +++ b/docs/3.api/2.components/4.nuxt-link.md @@ -73,19 +73,19 @@ In this example, we use `` with `target`, `rel`, and `noRel` props. ## Props -- **to**: Any URL or a [route location object](https://router.vuejs.org/api/#routelocationraw) from Vue Router +- **to**: Any URL or a [route location object](https://router.vuejs.org/api/interfaces/RouteLocation.html) from Vue Router - **href**: An alias for `to`. If used with `to`, `href` will be ignored - **target**: A `target` attribute value to apply on the link - **rel**: A `rel` attribute value to apply on the link. Defaults to `"noopener noreferrer"` for external links. - **noRel**: If set to `true`, no `rel` attribute will be added to the link -- **activeClass**: A class to apply on active links. Works the same as [Vue Router's `active-class` prop](https://router.vuejs.org/api/#active-class) on internal links. Defaults to Vue Router's default (`"router-link-active"`) -- **exactActiveClass**: A class to apply on exact active links. Works the same as [Vue Router's `exact-active-class` prop](https://router.vuejs.org/api/#exact-active-class) on internal links. Defaults to Vue Router's default `"router-link-exact-active"`) -- **replace**: Works the same as [Vue Router's `replace` prop](https://router.vuejs.org/api/#replace) on internal links -- **ariaCurrentValue**: An `aria-current` attribute value to apply on exact active links. Works the same as [Vue Router's `aria-current-value` prop](https://router.vuejs.org/api/#aria-current-value) on internal links +- **activeClass**: A class to apply on active links. Works the same as [Vue Router's `active-class` prop](https://router.vuejs.org/api/interfaces/RouterLinkProps.html#Properties-activeClass) on internal links. Defaults to Vue Router's default (`"router-link-active"`) +- **exactActiveClass**: A class to apply on exact active links. Works the same as [Vue Router's `exact-active-class` prop](https://router.vuejs.org/api/interfaces/RouterLinkProps.html#Properties-exactActiveClass) on internal links. Defaults to Vue Router's default `"router-link-exact-active"`) +- **replace**: Works the same as [Vue Router's `replace` prop](https://router.vuejs.org/api/interfaces/RouteLocationOptions.html#Properties-replace) on internal links +- **ariaCurrentValue**: An `aria-current` attribute value to apply on exact active links. Works the same as [Vue Router's `aria-current-value` prop](https://router.vuejs.org/api/interfaces/RouterLinkProps.html#Properties-ariaCurrentValue) on internal links - **external**: Forces the link to be considered as external (`true`) or internal (`false`). This is helpful to handle edge-cases - **prefetch** and **noPrefetch**: Whether to enable prefetching assets for links that enter the view port. - **prefetchedClass**: A class to apply to links that have been prefetched. -- **custom**: Whether `` should wrap its content in an `` element. It allows taking full control of how a link is rendered and how navigation works when it is clicked. Works the same as [Vue Router's `custom` prop](https://router.vuejs.org/api/#custom) +- **custom**: Whether `` should wrap its content in an `` element. It allows taking full control of how a link is rendered and how navigation works when it is clicked. Works the same as [Vue Router's `custom` prop](https://router.vuejs.org/api/interfaces/RouterLinkProps.html#Properties-custom) ::alert{icon=👉} Defaults can be overwritten, see [overwriting defaults](#overwriting-defaults) if you want to change them. @@ -121,8 +121,8 @@ defineNuxtLink({ - **componentName**: A name for the defined `` component. - **externalRelAttribute**: A default `rel` attribute value applied on external links. Defaults to `"noopener noreferrer"`. Set it to `""` to disable -- **activeClass**: A default class to apply on active links. Works the same as [Vue Router's `linkActiveClass` option](https://router.vuejs.org/api/#linkactiveclass). Defaults to Vue Router's default (`"router-link-active"`) -- **exactActiveClass**: A default class to apply on exact active links. Works the same as [Vue Router's `linkExactActiveClass` option](https://router.vuejs.org/api/#linkexactactiveclass). Defaults to Vue Router's default (`"router-link-exact-active"`) +- **activeClass**: A default class to apply on active links. Works the same as [Vue Router's `linkActiveClass` option](https://router.vuejs.org/api/interfaces/RouterOptions.html#Properties-linkActiveClass). Defaults to Vue Router's default (`"router-link-active"`) +- **exactActiveClass**: A default class to apply on exact active links. Works the same as [Vue Router's `linkExactActiveClass` option](https://router.vuejs.org/api/interfaces/RouterOptions.html#Properties-linkExactActiveClass). Defaults to Vue Router's default (`"router-link-exact-active"`) - **prefetchedClass**: A default class to apply to links that have been prefetched. - **trailingSlash**: An option to either add or remove trailing slashes in the `href`. If unset or not matching the valid values `append` or `remove`, it will be ignored. diff --git a/docs/3.api/3.utils/navigate-to.md b/docs/3.api/3.utils/navigate-to.md index 6130891a66..9587efe5c4 100644 --- a/docs/3.api/3.utils/navigate-to.md +++ b/docs/3.api/3.utils/navigate-to.md @@ -29,7 +29,7 @@ Make sure to always use `await` or `return` on result of `navigateTo` when calli ### `to` -**Type**: [`RouteLocationRaw`](https://router.vuejs.org/api/#routelocationraw) | `undefined` | `null` +**Type**: [`RouteLocationRaw`](https://router.vuejs.org/api/interfaces/RouteLocation.html) | `undefined` | `null` **Default**: `'/'` diff --git a/docs/3.api/3.utils/on-before-route-leave.md b/docs/3.api/3.utils/on-before-route-leave.md index ff484625bd..af5cc55469 100644 --- a/docs/3.api/3.utils/on-before-route-leave.md +++ b/docs/3.api/3.utils/on-before-route-leave.md @@ -7,5 +7,5 @@ description: The onBeforeRouteLeave composable allows registering a route guard The `onBeforeRouteLeave` composable adds a navigation guard that triggers whenever the component for the current location is about to be left. -::ReadMore{link="https://router.vuejs.org/api/index.html#onbeforerouteleave"} +::ReadMore{link="https://router.vuejs.org/api/#Functions-onBeforeRouteLeave"} :: diff --git a/docs/3.api/3.utils/on-before-route-update.md b/docs/3.api/3.utils/on-before-route-update.md index 16166a5288..c6886147e7 100644 --- a/docs/3.api/3.utils/on-before-route-update.md +++ b/docs/3.api/3.utils/on-before-route-update.md @@ -7,5 +7,5 @@ description: The onBeforeRouteUpdate composable allows registering a route guard The `onBeforeRouteUpdate` composable adds a navigation guard that triggers whenever the component for the current location is about to be updated. -::ReadMore{link="https://router.vuejs.org/api/index.html#onbeforerouteupdate"} +::ReadMore{link="https://router.vuejs.org/api/#Functions-onBeforeRouteUpdate"} :: From 3133c6fb84affca6854b7c7fa8cfbab9fe2aebe6 Mon Sep 17 00:00:00 2001 From: Jonas Thelemann Date: Mon, 24 Apr 2023 23:24:38 +0200 Subject: [PATCH 089/912] fix(deps): relax upper node version constraint (#20472) --- .github/workflows/autofix-docs.yml | 2 +- .github/workflows/autofix.yml | 2 +- .github/workflows/changelogensets.yml | 2 +- .github/workflows/ci.yml | 8 ++++---- .github/workflows/docs.yml | 2 +- docs/1.getting-started/2.installation.md | 2 +- package.json | 2 +- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 4 ++-- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 2 +- 15 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/autofix-docs.yml b/.github/workflows/autofix-docs.yml index 7c6840bcb6..44f5ede60f 100644 --- a/.github/workflows/autofix-docs.yml +++ b/.github/workflows/autofix-docs.yml @@ -18,7 +18,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 cache: "pnpm" - name: Install dependencies diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index e062b5a8e4..0da5604505 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -17,7 +17,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 cache: "pnpm" - name: Install dependencies diff --git a/.github/workflows/changelogensets.yml b/.github/workflows/changelogensets.yml index 4827342195..62b191f2c1 100644 --- a/.github/workflows/changelogensets.yml +++ b/.github/workflows/changelogensets.yml @@ -25,7 +25,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 cache: "pnpm" - name: Install dependencies diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 71662802d2..0be1236496 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,7 +40,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 cache: "pnpm" - name: Install dependencies @@ -73,7 +73,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 cache: "pnpm" - name: Install dependencies @@ -99,7 +99,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 cache: "pnpm" - name: Install dependencies @@ -201,7 +201,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - node: [18] + node: [20] timeout-minutes: 20 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 8b3811f15e..f83eecede6 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -23,7 +23,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 cache: "pnpm" - name: Install dependencies diff --git a/docs/1.getting-started/2.installation.md b/docs/1.getting-started/2.installation.md index 2db33a6ec4..4b0a81e8e6 100644 --- a/docs/1.getting-started/2.installation.md +++ b/docs/1.getting-started/2.installation.md @@ -30,7 +30,7 @@ Start with one of our starters and themes directly by opening [nuxt.new](https:/ ::alert ::details :summary[Additional notes for an optimal setup:] -- **Node.js**: Make sure to use an even numbered version (16, 18, etc) +- **Node.js**: Make sure to use an even numbered version (18, 20, etc) - **Volar**: Either enable [**Take Over Mode**](https://vuejs.org/guide/typescript/overview.html#volar-takeover-mode) (recommended) or add the [TypeScript Vue Plugin](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) diff --git a/package.json b/package.json index 06a07f3037..94df779c38 100644 --- a/package.json +++ b/package.json @@ -81,6 +81,6 @@ }, "packageManager": "pnpm@8.3.1", "engines": { - "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node": "^14.18.0 || >=16.10.0" } } diff --git a/packages/kit/package.json b/packages/kit/package.json index c37110f44b..4b30092676 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -50,6 +50,6 @@ "webpack": "^5.80.0" }, "engines": { - "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node": "^14.18.0 || >=16.10.0" } } diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 7280be0d34..5e82d3e380 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -54,6 +54,6 @@ "fsevents": "~2.3.2" }, "engines": { - "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node": "^14.18.0 || >=16.10.0" } } diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 868bdfe54c..7cb17fee21 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -112,7 +112,7 @@ }, "peerDependencies": { "@parcel/watcher": "^2.1.0", - "@types/node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "@types/node": "^14.18.0 || >=16.10.0" }, "peerDependenciesMeta": { "@parcel/watcher": { @@ -120,6 +120,6 @@ } }, "engines": { - "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node": "^14.18.0 || >=16.10.0" } } diff --git a/packages/schema/package.json b/packages/schema/package.json index 9f81d1fd9b..4f3b5e5277 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -48,6 +48,6 @@ "untyped": "^1.3.2" }, "engines": { - "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node": "^14.18.0 || >=16.10.0" } } diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 7984f6edaf..b8ebd18868 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -56,6 +56,6 @@ } }, "engines": { - "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node": "^14.18.0 || >=16.10.0" } } diff --git a/packages/vite/package.json b/packages/vite/package.json index bf7c594ce2..3bc77be3ab 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -63,6 +63,6 @@ "vue": "^3.2.47" }, "engines": { - "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node": "^14.18.0 || >=16.10.0" } } diff --git a/packages/webpack/package.json b/packages/webpack/package.json index fa9143f473..cd7b13494f 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -72,6 +72,6 @@ "vue": "^3.2.47" }, "engines": { - "node": "^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node": "^14.18.0 || >=16.10.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7d781d249..94205fca9c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -567,7 +567,7 @@ importers: specifier: workspace:* version: link:../vite '@types/node': - specifier: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + specifier: ^14.18.0 || >=16.10.0 version: 18.15.12 '@unhead/ssr': specifier: ^1.1.26 From 5fd93d85c71c4e3a417961be2c0eae34d3f512db Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 24 Apr 2023 22:48:16 +0100 Subject: [PATCH 090/912] chore(deps): update all non-major dependencies (main) (#20429) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- package.json | 6 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/vite/package.json | 4 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 515 +++++++++++++++++----------------- 6 files changed, 266 insertions(+), 265 deletions(-) diff --git a/package.json b/package.json index 94df779c38..74b3bde122 100644 --- a/package.json +++ b/package.json @@ -46,13 +46,13 @@ "@nuxt/webpack-builder": "workspace:*", "@nuxtjs/eslint-config-typescript": "^12.0.0", "@types/crawler": "^1.2.2", - "@types/node": "^18.15.12", + "@types/node": "^18.16.0", "@types/semver": "^7.3.13", "case-police": "^0.5.14", "changelogen": "^0.5.3", "crawler": "^1.4.0", "devalue": "^4.3.0", - "eslint": "^8.38.0", + "eslint": "^8.39.0", "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jsdoc": "^41.1.2", @@ -77,7 +77,7 @@ "vitest": "^0.30.1", "vue": "3.2.47", "vue-eslint-parser": "^9.1.1", - "vue-tsc": "^1.4.0" + "vue-tsc": "^1.4.4" }, "packageManager": "pnpm@8.3.1", "engines": { diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 5e82d3e380..22c2962eff 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -41,7 +41,7 @@ "listhen": "^1.0.4", "mlly": "^1.2.0", "mri": "^1.2.0", - "ohash": "^1.1.1", + "ohash": "^1.1.2", "pathe": "^1.1.0", "perfect-debounce": "^0.1.3", "pkg-types": "^1.0.2", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 7cb17fee21..735f0056a3 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -82,7 +82,7 @@ "nuxi": "workspace:../nuxi", "nypm": "^0.2.0", "ofetch": "^1.0.1", - "ohash": "^1.1.1", + "ohash": "^1.1.2", "pathe": "^1.1.0", "perfect-debounce": "^0.1.3", "prompts": "^2.4.2", diff --git a/packages/vite/package.json b/packages/vite/package.json index 3bc77be3ab..1dae4a0de4 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -32,7 +32,7 @@ "clear": "^0.1.0", "cssnano": "^6.0.0", "defu": "^6.1.2", - "esbuild": "^0.17.17", + "esbuild": "^0.17.18", "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", "externality": "^1.0.0", @@ -42,7 +42,7 @@ "knitwork": "^1.0.0", "magic-string": "^0.30.0", "mlly": "^1.2.0", - "ohash": "^1.1.1", + "ohash": "^1.1.2", "pathe": "^1.1.0", "perfect-debounce": "^0.1.3", "pkg-types": "^1.0.2", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index cd7b13494f..d4e1d9d743 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -38,7 +38,7 @@ "memfs": "^3.5.1", "mini-css-extract-plugin": "^2.7.5", "mlly": "^1.2.0", - "ohash": "^1.1.1", + "ohash": "^1.1.2", "pathe": "^1.1.0", "pify": "^6.1.0", "postcss": "^8.4.23", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 94205fca9c..5b37b4a0d6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,13 +29,13 @@ importers: version: link:packages/webpack '@nuxtjs/eslint-config-typescript': specifier: ^12.0.0 - version: 12.0.0(eslint@8.38.0)(typescript@5.0.4) + version: 12.0.0(eslint@8.39.0)(typescript@5.0.4) '@types/crawler': specifier: ^1.2.2 version: 1.2.2 '@types/node': - specifier: ^18.15.12 - version: 18.15.12 + specifier: ^18.16.0 + version: 18.16.0 '@types/semver': specifier: ^7.3.13 version: 7.3.13 @@ -52,17 +52,17 @@ importers: specifier: ^4.3.0 version: 4.3.0 eslint: - specifier: ^8.38.0 - version: 8.38.0 + specifier: ^8.39.0 + version: 8.39.0 eslint-import-resolver-typescript: specifier: ^3.5.5 - version: 3.5.5(@typescript-eslint/parser@5.54.1)(eslint-plugin-import@2.27.5)(eslint@8.38.0) + version: 3.5.5(@typescript-eslint/parser@5.54.1)(eslint-plugin-import@2.27.5)(eslint@8.39.0) eslint-plugin-import: specifier: ^2.27.5 - version: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) + version: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) eslint-plugin-jsdoc: specifier: ^41.1.2 - version: 41.1.2(eslint@8.38.0) + version: 41.1.2(eslint@8.39.0) execa: specifier: ^7.1.1 version: 7.1.1 @@ -116,7 +116,7 @@ importers: version: 1.2.1 vite: specifier: ^4.3.1 - version: 4.3.1(@types/node@18.15.12) + version: 4.3.1(@types/node@18.16.0) vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -125,10 +125,10 @@ importers: version: 3.2.47 vue-eslint-parser: specifier: ^9.1.1 - version: 9.1.1(eslint@8.38.0) + version: 9.1.1(eslint@8.39.0) vue-tsc: - specifier: ^1.4.0 - version: 1.4.0(typescript@5.0.4) + specifier: ^1.4.4 + version: 1.4.4(typescript@5.0.4) examples/advanced/config-extends: devDependencies: @@ -438,7 +438,7 @@ importers: version: 1.2.1 vite: specifier: ^4.3.1 - version: 4.3.1(@types/node@18.15.12) + version: 4.3.1(@types/node@18.16.0) vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -522,8 +522,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 ohash: - specifier: ^1.1.1 - version: 1.1.1 + specifier: ^1.1.2 + version: 1.1.2 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -568,7 +568,7 @@ importers: version: link:../vite '@types/node': specifier: ^14.18.0 || >=16.10.0 - version: 18.15.12 + version: 18.16.0 '@unhead/ssr': specifier: ^1.1.26 version: 1.1.26 @@ -642,8 +642,8 @@ importers: specifier: ^1.0.1 version: 1.0.1 ohash: - specifier: ^1.1.1 - version: 1.1.1 + specifier: ^1.1.2 + version: 1.1.2 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -713,7 +713,7 @@ importers: version: 1.2.1 vite: specifier: ^4.3.1 - version: 4.3.1(@types/node@18.15.12) + version: 4.3.1(@types/node@18.16.0) vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -777,7 +777,7 @@ importers: version: 2.3.0 vite: specifier: ^4.3.1 - version: 4.3.1(@types/node@18.15.12) + version: 4.3.1(@types/node@18.16.0) vue: specifier: 3.2.47 version: 3.2.47 @@ -864,8 +864,8 @@ importers: specifier: ^6.1.2 version: 6.1.2 esbuild: - specifier: ^0.17.17 - version: 0.17.17 + specifier: ^0.17.18 + version: 0.17.18 escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -894,8 +894,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 ohash: - specifier: ^1.1.1 - version: 1.1.1 + specifier: ^1.1.2 + version: 1.1.2 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -931,13 +931,13 @@ importers: version: 1.3.1 vite: specifier: ^4.3.1 - version: 4.3.1(@types/node@18.15.12) + version: 4.3.1(@types/node@18.16.0) vite-node: specifier: ^0.30.1 - version: 0.30.1(@types/node@18.15.12) + version: 0.30.1(@types/node@18.16.0) vite-plugin-checker: specifier: ^0.5.6 - version: 0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.3.1)(vue-tsc@1.4.0) + version: 0.5.6(eslint@8.39.0)(typescript@5.0.4)(vite@4.3.1)(vue-tsc@1.4.4) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 @@ -1015,8 +1015,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 ohash: - specifier: ^1.1.1 - version: 1.1.1 + specifier: ^1.1.2 + version: 1.1.2 pathe: specifier: ^1.1.0 version: 1.1.0 @@ -1031,7 +1031,7 @@ importers: version: 15.1.0(postcss@8.4.23) postcss-loader: specifier: ^7.2.4 - version: 7.2.4(@types/node@18.15.12)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.80.0) + version: 7.2.4(@types/node@18.16.0)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.80.0) postcss-url: specifier: ^10.1.3 version: 10.1.3(postcss@8.4.23) @@ -1543,8 +1543,8 @@ packages: jsdoc-type-pratt-parser: 4.0.0 dev: true - /@esbuild/android-arm64@0.17.17: - resolution: {integrity: sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==} + /@esbuild/android-arm64@0.17.18: + resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -1560,72 +1560,72 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.17.17: - resolution: {integrity: sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==} + /@esbuild/android-arm@0.17.18: + resolution: {integrity: sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==} engines: {node: '>=12'} cpu: [arm] os: [android] requiresBuild: true optional: true - /@esbuild/android-x64@0.17.17: - resolution: {integrity: sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==} + /@esbuild/android-x64@0.17.18: + resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==} engines: {node: '>=12'} cpu: [x64] os: [android] requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.17.17: - resolution: {integrity: sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==} + /@esbuild/darwin-arm64@0.17.18: + resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@esbuild/darwin-x64@0.17.17: - resolution: {integrity: sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==} + /@esbuild/darwin-x64@0.17.18: + resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.17.17: - resolution: {integrity: sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==} + /@esbuild/freebsd-arm64@0.17.18: + resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.17.17: - resolution: {integrity: sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==} + /@esbuild/freebsd-x64@0.17.18: + resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] requiresBuild: true optional: true - /@esbuild/linux-arm64@0.17.17: - resolution: {integrity: sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==} + /@esbuild/linux-arm64@0.17.18: + resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-arm@0.17.17: - resolution: {integrity: sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==} + /@esbuild/linux-arm@0.17.18: + resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==} engines: {node: '>=12'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ia32@0.17.17: - resolution: {integrity: sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==} + /@esbuild/linux-ia32@0.17.18: + resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1641,109 +1641,109 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.17.17: - resolution: {integrity: sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==} + /@esbuild/linux-loong64@0.17.18: + resolution: {integrity: sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.17.17: - resolution: {integrity: sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==} + /@esbuild/linux-mips64el@0.17.18: + resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.17.17: - resolution: {integrity: sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==} + /@esbuild/linux-ppc64@0.17.18: + resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.17.17: - resolution: {integrity: sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==} + /@esbuild/linux-riscv64@0.17.18: + resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-s390x@0.17.17: - resolution: {integrity: sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==} + /@esbuild/linux-s390x@0.17.18: + resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] requiresBuild: true optional: true - /@esbuild/linux-x64@0.17.17: - resolution: {integrity: sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==} + /@esbuild/linux-x64@0.17.18: + resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==} engines: {node: '>=12'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.17.17: - resolution: {integrity: sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==} + /@esbuild/netbsd-x64@0.17.18: + resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.17.17: - resolution: {integrity: sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==} + /@esbuild/openbsd-x64@0.17.18: + resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] requiresBuild: true optional: true - /@esbuild/sunos-x64@0.17.17: - resolution: {integrity: sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==} + /@esbuild/sunos-x64@0.17.18: + resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] requiresBuild: true optional: true - /@esbuild/win32-arm64@0.17.17: - resolution: {integrity: sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==} + /@esbuild/win32-arm64@0.17.18: + resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-ia32@0.17.17: - resolution: {integrity: sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==} + /@esbuild/win32-ia32@0.17.18: + resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@esbuild/win32-x64@0.17.17: - resolution: {integrity: sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==} + /@esbuild/win32-x64@0.17.18: + resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==} engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.2.0(eslint@8.38.0): + /@eslint-community/eslint-utils@4.2.0(eslint@8.39.0): resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.38.0 + eslint: 8.39.0 eslint-visitor-keys: 3.4.0 /@eslint-community/regexpp@4.4.0: @@ -1766,8 +1766,8 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/js@8.38.0: - resolution: {integrity: sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==} + /@eslint/js@8.39.0: + resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} /@humanwhocodes/config-array@0.11.8: @@ -1835,7 +1835,7 @@ packages: dependencies: '@jest/fake-timers': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 18.15.12 + '@types/node': 18.16.0 jest-mock: 29.5.0 dev: true @@ -1862,7 +1862,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 18.15.12 + '@types/node': 18.16.0 jest-message-util: 29.5.0 jest-mock: 29.5.0 jest-util: 29.5.0 @@ -1916,7 +1916,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.15.12 + '@types/node': 18.16.0 '@types/yargs': 17.0.22 chalk: 4.1.2 @@ -2099,18 +2099,18 @@ packages: pathe: 1.1.0 dev: true - /@nuxtjs/eslint-config-typescript@12.0.0(eslint@8.38.0)(typescript@5.0.4): + /@nuxtjs/eslint-config-typescript@12.0.0(eslint@8.39.0)(typescript@5.0.4): resolution: {integrity: sha512-HJR0ho5MYuOCFjkL+eMX/VXbUwy36J12DUMVy+dj3Qz1GYHwX92Saxap3urFzr8oPkzzFiuOknDivfCeRBWakg==} peerDependencies: eslint: ^8.23.0 dependencies: - '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) - '@typescript-eslint/eslint-plugin': 5.54.1(@typescript-eslint/parser@5.54.1)(eslint@8.38.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.54.1(eslint@8.38.0)(typescript@5.0.4) - eslint: 8.38.0 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.54.1)(eslint-plugin-import@2.27.5)(eslint@8.38.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) - eslint-plugin-vue: 9.9.0(eslint@8.38.0) + '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) + '@typescript-eslint/eslint-plugin': 5.54.1(@typescript-eslint/parser@5.54.1)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.54.1(eslint@8.39.0)(typescript@5.0.4) + eslint: 8.39.0 + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.54.1)(eslint-plugin-import@2.27.5)(eslint@8.39.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) + eslint-plugin-vue: 9.9.0(eslint@8.39.0) transitivePeerDependencies: - eslint-import-resolver-node - eslint-import-resolver-webpack @@ -2118,19 +2118,19 @@ packages: - typescript dev: true - /@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0): + /@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0): resolution: {integrity: sha512-ewenelo75x0eYEUK+9EBXjc/OopQCvdkmYmlZuoHq5kub/vtiRpyZ/autppwokpHUq8tiVyl2ejMakoiHiDTrg==} peerDependencies: eslint: ^8.23.0 dependencies: - eslint: 8.38.0 - eslint-config-standard: 17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.38.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) - eslint-plugin-n: 15.6.1(eslint@8.38.0) - eslint-plugin-node: 11.1.0(eslint@8.38.0) - eslint-plugin-promise: 6.1.1(eslint@8.38.0) - eslint-plugin-unicorn: 44.0.2(eslint@8.38.0) - eslint-plugin-vue: 9.9.0(eslint@8.38.0) + eslint: 8.39.0 + eslint-config-standard: 17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.39.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) + eslint-plugin-n: 15.6.1(eslint@8.39.0) + eslint-plugin-node: 11.1.0(eslint@8.39.0) + eslint-plugin-promise: 6.1.1(eslint@8.39.0) + eslint-plugin-unicorn: 44.0.2(eslint@8.39.0) + eslint-plugin-vue: 9.9.0(eslint@8.39.0) local-pkg: 0.4.3 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -2351,7 +2351,7 @@ packages: /@types/cheerio@0.22.31: resolution: {integrity: sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw==} dependencies: - '@types/node': 18.15.12 + '@types/node': 18.16.0 dev: true /@types/clear@0.1.2: @@ -2361,7 +2361,7 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.15.12 + '@types/node': 18.16.0 dev: true /@types/crawler@1.2.2: @@ -2393,13 +2393,13 @@ packages: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 18.15.12 + '@types/node': 18.16.0 dev: true /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 18.15.12 + '@types/node': 18.16.0 dev: true /@types/hash-sum@1.0.0: @@ -2429,7 +2429,7 @@ packages: /@types/jsonfile@6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 18.15.12 + '@types/node': 18.16.0 dev: true /@types/lodash-es@4.17.7: @@ -2452,8 +2452,8 @@ packages: resolution: {integrity: sha512-nJOuiTlsvmClSr3+a/trTSx4DTuY/VURsWGKSf/eeavh0LRMqdsK60ti0TlwM5iHiGOK3/Ibkxsbr7i9rzGreA==} dev: true - /@types/node@18.15.12: - resolution: {integrity: sha512-Wha1UwsB3CYdqUm2PPzh/1gujGCNtWVUYF0mB00fJFoR4gTyWTDPjSm+zBF787Ahw8vSGgBja90MkgFwvB86Dg==} + /@types/node@18.16.0: + resolution: {integrity: sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==} /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -2474,7 +2474,7 @@ packages: /@types/prompts@2.4.4: resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} dependencies: - '@types/node': 18.15.12 + '@types/node': 18.16.0 kleur: 3.0.3 dev: true @@ -2510,7 +2510,7 @@ packages: /@types/webpack-bundle-analyzer@4.6.0: resolution: {integrity: sha512-XeQmQCCXdZdap+A/60UKmxW5Mz31Vp9uieGlHB3T4z/o2OLVLtTI3bvTuS6A2OWd/rbAAQiGGWIEFQACu16szA==} dependencies: - '@types/node': 18.15.12 + '@types/node': 18.16.0 tapable: 2.2.1 webpack: 5.80.0 transitivePeerDependencies: @@ -2536,7 +2536,7 @@ packages: /@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 18.15.12 + '@types/node': 18.16.0 '@types/source-list-map': 0.1.2 source-map: 0.7.4 dev: true @@ -2550,7 +2550,7 @@ packages: /@types/webpack@4.41.33: resolution: {integrity: sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==} dependencies: - '@types/node': 18.15.12 + '@types/node': 18.16.0 '@types/tapable': 1.0.8 '@types/uglify-js': 3.17.1 '@types/webpack-sources': 3.2.0 @@ -2566,7 +2566,7 @@ packages: dependencies: '@types/yargs-parser': 21.0.0 - /@typescript-eslint/eslint-plugin@5.54.1(@typescript-eslint/parser@5.54.1)(eslint@8.38.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.54.1(@typescript-eslint/parser@5.54.1)(eslint@8.39.0)(typescript@5.0.4): resolution: {integrity: sha512-a2RQAkosH3d3ZIV08s3DcL/mcGc2M/UC528VkPULFxR9VnVPT8pBu0IyBAJJmVsCmhVfwQX1v6q+QGnmSe1bew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2577,12 +2577,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.54.1(eslint@8.38.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.54.1(eslint@8.39.0)(typescript@5.0.4) '@typescript-eslint/scope-manager': 5.54.1 - '@typescript-eslint/type-utils': 5.54.1(eslint@8.38.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.54.1(eslint@8.38.0)(typescript@5.0.4) + '@typescript-eslint/type-utils': 5.54.1(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.54.1(eslint@8.39.0)(typescript@5.0.4) debug: 4.3.4 - eslint: 8.38.0 + eslint: 8.39.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 @@ -2594,7 +2594,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@5.54.1(eslint@8.38.0)(typescript@5.0.4): + /@typescript-eslint/parser@5.54.1(eslint@8.39.0)(typescript@5.0.4): resolution: {integrity: sha512-8zaIXJp/nG9Ff9vQNh7TI+C3nA6q6iIsGJ4B4L6MhZ7mHnTMR4YP5vp2xydmFXIy8rpyIVbNAG44871LMt6ujg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2608,7 +2608,7 @@ packages: '@typescript-eslint/types': 5.54.1 '@typescript-eslint/typescript-estree': 5.54.1(typescript@5.0.4) debug: 4.3.4 - eslint: 8.38.0 + eslint: 8.39.0 typescript: 5.0.4 transitivePeerDependencies: - supports-color @@ -2622,7 +2622,7 @@ packages: '@typescript-eslint/visitor-keys': 5.54.1 dev: true - /@typescript-eslint/type-utils@5.54.1(eslint@8.38.0)(typescript@5.0.4): + /@typescript-eslint/type-utils@5.54.1(eslint@8.39.0)(typescript@5.0.4): resolution: {integrity: sha512-WREHsTz0GqVYLIbzIZYbmUUr95DKEKIXZNH57W3s+4bVnuF1TKe2jH8ZNH8rO1CeMY3U4j4UQeqPNkHMiGem3g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2633,9 +2633,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.54.1(typescript@5.0.4) - '@typescript-eslint/utils': 5.54.1(eslint@8.38.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.54.1(eslint@8.39.0)(typescript@5.0.4) debug: 4.3.4 - eslint: 8.38.0 + eslint: 8.39.0 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: @@ -2668,7 +2668,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.54.1(eslint@8.38.0)(typescript@5.0.4): + /@typescript-eslint/utils@5.54.1(eslint@8.39.0)(typescript@5.0.4): resolution: {integrity: sha512-IY5dyQM8XD1zfDe5X8jegX6r2EVU5o/WJnLu/znLPWCBF7KNGC+adacXnt5jEYS9JixDcoccI6CvE4RCjHMzCQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2679,9 +2679,9 @@ packages: '@typescript-eslint/scope-manager': 5.54.1 '@typescript-eslint/types': 5.54.1 '@typescript-eslint/typescript-estree': 5.54.1(typescript@5.0.4) - eslint: 8.38.0 + eslint: 8.39.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0(eslint@8.38.0) + eslint-utils: 3.0.0(eslint@8.39.0) semver: 7.5.0 transitivePeerDependencies: - supports-color @@ -2911,7 +2911,7 @@ packages: '@unocss/scope': 0.45.30 '@unocss/transformer-directives': 0.45.30 magic-string: 0.30.0 - vite: 3.2.5(@types/node@18.15.12) + vite: 3.2.5(@types/node@18.16.0) transitivePeerDependencies: - rollup dev: true @@ -2963,7 +2963,7 @@ packages: '@babel/core': 7.21.4 '@babel/plugin-transform-typescript': 7.21.0(@babel/core@7.21.4) '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.4) - vite: 4.3.1(@types/node@18.15.12) + vite: 4.3.1(@types/node@18.16.0) vue: 3.2.47 transitivePeerDependencies: - supports-color @@ -2975,7 +2975,7 @@ packages: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.3.1(@types/node@18.15.12) + vite: 4.3.1(@types/node@18.16.0) vue: 3.2.47 /@vitest/expect@0.30.1: @@ -3017,29 +3017,29 @@ packages: pretty-format: 27.5.1 dev: true - /@volar/language-core@1.4.0: - resolution: {integrity: sha512-zZg771L/v4MCPwM1KJxvnQ3q3QgbGJtEytivqf+PsxPr0kQ7XtwB1J30dd+YSGN869pXXZ0V6vWdHkDpWC8F3A==} + /@volar/language-core@1.4.1: + resolution: {integrity: sha512-EIY+Swv+TjsWpxOxujjMf1ZXqOjg9MT2VMXZ+1dKva0wD8W0L6EtptFFcCJdBbcKmGMFkr57Qzz9VNMWhs3jXQ==} dependencies: - '@volar/source-map': 1.4.0 + '@volar/source-map': 1.4.1 - /@volar/source-map@1.4.0: - resolution: {integrity: sha512-gkV8ol9qtP7aMdgijc8a5Yoxxoo90TT55YCi9bsMbKxEUDsOAnlciFNlijR9Ebe42d67GV3w15/RzjveTRNGBw==} + /@volar/source-map@1.4.1: + resolution: {integrity: sha512-bZ46ad72dsbzuOWPUtJjBXkzSQzzSejuR3CT81+GvTEI2E994D8JPXzM3tl98zyCNnjgs4OkRyliImL1dvJ5BA==} dependencies: muggle-string: 0.2.2 - /@volar/typescript@1.4.0(typescript@5.0.4): - resolution: {integrity: sha512-r6OMHj/LeS86iQy3LEjjS+qpmHr9I7BiH8gAwp9WEJP76FHlMPi/EPDQxhf3VcMQ/w6Pi5aBczqI+I3akr9t4g==} + /@volar/typescript@1.4.1(typescript@5.0.4): + resolution: {integrity: sha512-phTy6p9yG6bgMIKQWEeDOi/aeT0njZsb1a/G1mrEuDsLmAn24Le4gDwSsGNhea6Uhu+3gdpUZn2PmZXa+WG2iQ==} peerDependencies: typescript: '*' dependencies: - '@volar/language-core': 1.4.0 + '@volar/language-core': 1.4.1 typescript: 5.0.4 - /@volar/vue-language-core@1.4.0: - resolution: {integrity: sha512-AIl9iW/6qac1FIJNi6cL27HNNWQWN1gzYkAA3qgcyvpx83a7YEbm9uPC9oelQhiODwFtdt3f3U5ta0l/5kKqjw==} + /@volar/vue-language-core@1.4.4: + resolution: {integrity: sha512-c3hL6un+CfoOlusGvpypcodmk9ke/ImrWIUc0GkgI+imoQpUGzgu3tEQWlPs604R7AhxeZwWUi8hQNfax0R/zA==} dependencies: - '@volar/language-core': 1.4.0 - '@volar/source-map': 1.4.0 + '@volar/language-core': 1.4.1 + '@volar/source-map': 1.4.1 '@vue/compiler-dom': 3.2.47 '@vue/compiler-sfc': 3.2.47 '@vue/reactivity': 3.2.47 @@ -3048,13 +3048,14 @@ packages: muggle-string: 0.2.2 vue-template-compiler: 2.7.14 - /@volar/vue-typescript@1.4.0(typescript@5.0.4): - resolution: {integrity: sha512-DOwKNuK4ScK+NXOU+kxMqVbOK9vCIj9TSOX7iBA34CHzIdnjDWK3ne1Iw74ltat2VX1PEyVQKzC74ZxoInV9bw==} + /@volar/vue-typescript@1.4.4(typescript@5.0.4): + resolution: {integrity: sha512-L61Fk15jlJw3QtIddD4cVE5jei5i6zbLJRiaEMYDDnUKB259/qUrdvnMfnZUFVyDwlevzdstjtaUyreeG/0nPQ==} + peerDependencies: + typescript: '*' dependencies: - '@volar/typescript': 1.4.0(typescript@5.0.4) - '@volar/vue-language-core': 1.4.0 - transitivePeerDependencies: - - typescript + '@volar/typescript': 1.4.1(typescript@5.0.4) + '@volar/vue-language-core': 1.4.4 + typescript: 5.0.4 /@vue/babel-helper-vue-transform-on@1.0.2: resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} @@ -3803,7 +3804,7 @@ packages: giget: 1.1.2 jiti: 1.18.2 mlly: 1.2.0 - ohash: 1.1.1 + ohash: 1.1.2 pathe: 1.1.0 perfect-debounce: 0.1.3 pkg-types: 1.0.2 @@ -4130,7 +4131,7 @@ packages: /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - /cosmiconfig-typescript-loader@4.3.0(@types/node@18.15.12)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4): + /cosmiconfig-typescript-loader@4.3.0(@types/node@18.16.0)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4): resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -4139,9 +4140,9 @@ packages: ts-node: '>=10' typescript: '>=3' dependencies: - '@types/node': 18.15.12 + '@types/node': 18.16.0 cosmiconfig: 8.1.3 - ts-node: 10.9.1(@types/node@18.15.12)(typescript@5.0.4) + ts-node: 10.9.1(@types/node@18.16.0)(typescript@5.0.4) typescript: 5.0.4 dev: false @@ -4912,7 +4913,7 @@ packages: peerDependencies: webpack: ^4.40.0 || ^5.0.0 dependencies: - esbuild: 0.17.17 + esbuild: 0.17.18 get-tsconfig: 4.5.0 loader-utils: 2.0.4 webpack: 5.80.0 @@ -5003,34 +5004,34 @@ packages: esbuild-windows-arm64: 0.15.18 dev: true - /esbuild@0.17.17: - resolution: {integrity: sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==} + /esbuild@0.17.18: + resolution: {integrity: sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.17.17 - '@esbuild/android-arm64': 0.17.17 - '@esbuild/android-x64': 0.17.17 - '@esbuild/darwin-arm64': 0.17.17 - '@esbuild/darwin-x64': 0.17.17 - '@esbuild/freebsd-arm64': 0.17.17 - '@esbuild/freebsd-x64': 0.17.17 - '@esbuild/linux-arm': 0.17.17 - '@esbuild/linux-arm64': 0.17.17 - '@esbuild/linux-ia32': 0.17.17 - '@esbuild/linux-loong64': 0.17.17 - '@esbuild/linux-mips64el': 0.17.17 - '@esbuild/linux-ppc64': 0.17.17 - '@esbuild/linux-riscv64': 0.17.17 - '@esbuild/linux-s390x': 0.17.17 - '@esbuild/linux-x64': 0.17.17 - '@esbuild/netbsd-x64': 0.17.17 - '@esbuild/openbsd-x64': 0.17.17 - '@esbuild/sunos-x64': 0.17.17 - '@esbuild/win32-arm64': 0.17.17 - '@esbuild/win32-ia32': 0.17.17 - '@esbuild/win32-x64': 0.17.17 + '@esbuild/android-arm': 0.17.18 + '@esbuild/android-arm64': 0.17.18 + '@esbuild/android-x64': 0.17.18 + '@esbuild/darwin-arm64': 0.17.18 + '@esbuild/darwin-x64': 0.17.18 + '@esbuild/freebsd-arm64': 0.17.18 + '@esbuild/freebsd-x64': 0.17.18 + '@esbuild/linux-arm': 0.17.18 + '@esbuild/linux-arm64': 0.17.18 + '@esbuild/linux-ia32': 0.17.18 + '@esbuild/linux-loong64': 0.17.18 + '@esbuild/linux-mips64el': 0.17.18 + '@esbuild/linux-ppc64': 0.17.18 + '@esbuild/linux-riscv64': 0.17.18 + '@esbuild/linux-s390x': 0.17.18 + '@esbuild/linux-x64': 0.17.18 + '@esbuild/netbsd-x64': 0.17.18 + '@esbuild/openbsd-x64': 0.17.18 + '@esbuild/sunos-x64': 0.17.18 + '@esbuild/win32-arm64': 0.17.18 + '@esbuild/win32-ia32': 0.17.18 + '@esbuild/win32-x64': 0.17.18 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -5056,7 +5057,7 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - /eslint-config-standard@17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.38.0): + /eslint-config-standard@17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.6.1)(eslint-plugin-promise@6.1.1)(eslint@8.39.0): resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -5064,10 +5065,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.38.0 - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) - eslint-plugin-n: 15.6.1(eslint@8.38.0) - eslint-plugin-promise: 6.1.1(eslint@8.38.0) + eslint: 8.39.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) + eslint-plugin-n: 15.6.1(eslint@8.39.0) + eslint-plugin-promise: 6.1.1(eslint@8.39.0) dev: true /eslint-import-resolver-node@0.3.7: @@ -5080,7 +5081,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.54.1)(eslint-plugin-import@2.27.5)(eslint@8.38.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.54.1)(eslint-plugin-import@2.27.5)(eslint@8.39.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5089,9 +5090,9 @@ packages: dependencies: debug: 4.3.4 enhanced-resolve: 5.13.0 - eslint: 8.38.0 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) + eslint: 8.39.0 + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) get-tsconfig: 4.5.0 globby: 13.1.4 is-core-module: 2.11.0 @@ -5104,7 +5105,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0): + /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0): resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: @@ -5125,38 +5126,38 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.54.1(eslint@8.38.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.54.1(eslint@8.39.0)(typescript@5.0.4) debug: 3.2.7 - eslint: 8.38.0 + eslint: 8.39.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.54.1)(eslint-plugin-import@2.27.5)(eslint@8.38.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.54.1)(eslint-plugin-import@2.27.5)(eslint@8.39.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es@3.0.1(eslint@8.38.0): + /eslint-plugin-es@3.0.1(eslint@8.39.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.38.0 + eslint: 8.39.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-es@4.1.0(eslint@8.38.0): + /eslint-plugin-es@4.1.0(eslint@8.39.0): resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.38.0 + eslint: 8.39.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -5166,15 +5167,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.54.1(eslint@8.38.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.54.1(eslint@8.39.0)(typescript@5.0.4) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.38.0 + eslint: 8.39.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.38.0) + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) has: 1.0.3 is-core-module: 2.11.0 is-glob: 4.0.3 @@ -5189,7 +5190,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc@41.1.2(eslint@8.38.0): + /eslint-plugin-jsdoc@41.1.2(eslint@8.39.0): resolution: {integrity: sha512-MePJXdGiPW7AG06CU5GbKzYtKpoHwTq1lKijjq+RwL/cQkZtBZ59Zbv5Ep0RVxSMnq6242249/n+w4XrTZ1Afg==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: @@ -5200,7 +5201,7 @@ packages: comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 8.38.0 + eslint: 8.39.0 esquery: 1.5.0 semver: 7.5.0 spdx-expression-parse: 3.0.1 @@ -5208,16 +5209,16 @@ packages: - supports-color dev: true - /eslint-plugin-n@15.6.1(eslint@8.38.0): + /eslint-plugin-n@15.6.1(eslint@8.39.0): resolution: {integrity: sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.38.0 - eslint-plugin-es: 4.1.0(eslint@8.38.0) - eslint-utils: 3.0.0(eslint@8.38.0) + eslint: 8.39.0 + eslint-plugin-es: 4.1.0(eslint@8.39.0) + eslint-utils: 3.0.0(eslint@8.39.0) ignore: 5.2.4 is-core-module: 2.11.0 minimatch: 3.1.2 @@ -5225,14 +5226,14 @@ packages: semver: 7.5.0 dev: true - /eslint-plugin-node@11.1.0(eslint@8.38.0): + /eslint-plugin-node@11.1.0(eslint@8.39.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.38.0 - eslint-plugin-es: 3.0.1(eslint@8.38.0) + eslint: 8.39.0 + eslint-plugin-es: 3.0.1(eslint@8.39.0) eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 @@ -5240,16 +5241,16 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.38.0): + /eslint-plugin-promise@6.1.1(eslint@8.39.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.38.0 + eslint: 8.39.0 dev: true - /eslint-plugin-unicorn@44.0.2(eslint@8.38.0): + /eslint-plugin-unicorn@44.0.2(eslint@8.39.0): resolution: {integrity: sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==} engines: {node: '>=14.18'} peerDependencies: @@ -5258,8 +5259,8 @@ packages: '@babel/helper-validator-identifier': 7.19.1 ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.38.0 - eslint-utils: 3.0.0(eslint@8.38.0) + eslint: 8.39.0 + eslint-utils: 3.0.0(eslint@8.39.0) esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -5272,19 +5273,19 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vue@9.9.0(eslint@8.38.0): + /eslint-plugin-vue@9.9.0(eslint@8.39.0): resolution: {integrity: sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.38.0 - eslint-utils: 3.0.0(eslint@8.38.0) + eslint: 8.39.0 + eslint-utils: 3.0.0(eslint@8.39.0) natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.11 semver: 7.5.0 - vue-eslint-parser: 9.1.1(eslint@8.38.0) + vue-eslint-parser: 9.1.1(eslint@8.39.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -5297,8 +5298,8 @@ packages: esrecurse: 4.3.0 estraverse: 4.3.0 - /eslint-scope@7.1.1: - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + /eslint-scope@7.2.0: + resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 @@ -5311,13 +5312,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.38.0): + /eslint-utils@3.0.0(eslint@8.39.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.38.0 + eslint: 8.39.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5335,15 +5336,15 @@ packages: resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /eslint@8.38.0: - resolution: {integrity: sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==} + /eslint@8.39.0: + resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.2.0(eslint@8.38.0) + '@eslint-community/eslint-utils': 4.2.0(eslint@8.39.0) '@eslint-community/regexpp': 4.4.0 '@eslint/eslintrc': 2.0.2 - '@eslint/js': 8.38.0 + '@eslint/js': 8.39.0 '@humanwhocodes/config-array': 0.11.8 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -5353,7 +5354,7 @@ packages: debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 + eslint-scope: 7.2.0 eslint-visitor-keys: 3.4.0 espree: 9.5.1 esquery: 1.5.0 @@ -6465,7 +6466,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@types/graceful-fs': 4.1.6 - '@types/node': 18.15.12 + '@types/node': 18.16.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -6508,7 +6509,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 18.15.12 + '@types/node': 18.16.0 jest-util: 29.5.0 dev: true @@ -6553,7 +6554,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 18.15.12 + '@types/node': 18.16.0 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.10 @@ -6563,7 +6564,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.15.12 + '@types/node': 18.16.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -6571,7 +6572,7 @@ packages: resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.15.12 + '@types/node': 18.16.0 jest-util: 29.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -7102,7 +7103,7 @@ packages: optional: true dependencies: defu: 6.1.2 - esbuild: 0.17.17 + esbuild: 0.17.18 fs-extra: 11.1.1 globby: 13.1.4 jiti: 1.18.2 @@ -7190,7 +7191,7 @@ packages: defu: 6.1.2 destr: 1.2.2 dot-prop: 7.2.0 - esbuild: 0.17.17 + esbuild: 0.17.18 escape-string-regexp: 5.0.0 etag: 1.8.1 fs-extra: 11.1.1 @@ -7209,7 +7210,7 @@ packages: mri: 1.2.0 node-fetch-native: 1.1.0 ofetch: 1.0.1 - ohash: 1.1.1 + ohash: 1.1.2 pathe: 1.1.0 perfect-debounce: 0.1.3 pkg-types: 1.0.2 @@ -7403,8 +7404,8 @@ packages: node-fetch-native: 1.1.0 ufo: 1.1.1 - /ohash@1.1.1: - resolution: {integrity: sha512-N9UDJn2IV6oO6pNclJ80tRXraNNJqw/asscr3Lu7+ibRQdEswejJuuXNclMQTJVTsVhQs+ZJThVziy6t2v2KXA==} + /ohash@1.1.2: + resolution: {integrity: sha512-9CIOSq5945rI045GFtcO3uudyOkYVY1nyfFxVQp+9BRgslr8jPNiSSrsFGg/BNTUFOLqx0P5tng6G32brIPw0w==} /ohmyfetch@0.4.21: resolution: {integrity: sha512-VG7f/JRvqvBOYvL0tHyEIEG7XHWm7OqIfAs6/HqwWwDfjiJ1g0huIpe5sFEmyb+7hpFa1EGNH2aERWR72tlClw==} @@ -7750,7 +7751,7 @@ packages: resolve: 1.22.1 dev: false - /postcss-loader@7.2.4(@types/node@18.15.12)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.80.0): + /postcss-loader@7.2.4(@types/node@18.16.0)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.80.0): resolution: {integrity: sha512-F88rpxxNspo5hatIc+orYwZDtHFaVFOSIVAx+fBfJC1GmhWbVmPWtmg2gXKE1OxJbneOSGn8PWdIwsZFcruS+w==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -7765,11 +7766,11 @@ packages: optional: true dependencies: cosmiconfig: 8.1.3 - cosmiconfig-typescript-loader: 4.3.0(@types/node@18.15.12)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4) + cosmiconfig-typescript-loader: 4.3.0(@types/node@18.16.0)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4) klona: 2.0.6 postcss: 8.4.23 semver: 7.5.0 - ts-node: 10.9.1(@types/node@18.15.12)(typescript@5.0.4) + ts-node: 10.9.1(@types/node@18.16.0)(typescript@5.0.4) typescript: 5.0.4 webpack: 5.80.0 transitivePeerDependencies: @@ -8977,7 +8978,7 @@ packages: /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - /ts-node@10.9.1(@types/node@18.15.12)(typescript@5.0.4): + /ts-node@10.9.1(@types/node@18.16.0)(typescript@5.0.4): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -8996,7 +8997,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.15.12 + '@types/node': 18.16.0 acorn: 8.8.2 acorn-walk: 8.2.0 arg: 4.1.3 @@ -9141,7 +9142,7 @@ packages: chalk: 5.2.0 consola: 3.1.0 defu: 6.1.2 - esbuild: 0.17.17 + esbuild: 0.17.18 globby: 13.1.4 hookable: 5.5.3 jiti: 1.18.2 @@ -9401,7 +9402,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.30.1(@types/node@18.15.12): + /vite-node@0.30.1(@types/node@18.16.0): resolution: {integrity: sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==} engines: {node: '>=v14.18.0'} hasBin: true @@ -9411,7 +9412,7 @@ packages: mlly: 1.2.0 pathe: 1.1.0 picocolors: 1.0.0 - vite: 4.3.1(@types/node@18.15.12) + vite: 4.3.1(@types/node@18.16.0) transitivePeerDependencies: - '@types/node' - less @@ -9421,7 +9422,7 @@ packages: - supports-color - terser - /vite-plugin-checker@0.5.6(eslint@8.38.0)(typescript@5.0.4)(vite@4.3.1)(vue-tsc@1.4.0): + /vite-plugin-checker@0.5.6(eslint@8.39.0)(typescript@5.0.4)(vite@4.3.1)(vue-tsc@1.4.4): resolution: {integrity: sha512-ftRyON0gORUHDxcDt2BErmsikKSkfvl1i2DoP6Jt2zDO9InfvM6tqO1RkXhSjkaXEhKPea6YOnhFaZxW3BzudQ==} engines: {node: '>=14.16'} peerDependencies: @@ -9457,7 +9458,7 @@ packages: chalk: 4.1.2 chokidar: 3.5.3 commander: 8.3.0 - eslint: 8.38.0 + eslint: 8.39.0 fast-glob: 3.2.12 fs-extra: 11.1.1 lodash.debounce: 4.0.8 @@ -9466,15 +9467,15 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.0.4 - vite: 4.3.1(@types/node@18.15.12) + vite: 4.3.1(@types/node@18.16.0) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 vscode-uri: 3.0.7 - vue-tsc: 1.4.0(typescript@5.0.4) + vue-tsc: 1.4.4(typescript@5.0.4) dev: false - /vite@3.2.5(@types/node@18.15.12): + /vite@3.2.5(@types/node@18.16.0): resolution: {integrity: sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -9499,7 +9500,7 @@ packages: terser: optional: true dependencies: - '@types/node': 18.15.12 + '@types/node': 18.16.0 esbuild: 0.15.18 postcss: 8.4.23 resolve: 1.22.1 @@ -9508,7 +9509,7 @@ packages: fsevents: 2.3.2 dev: true - /vite@4.3.1(@types/node@18.15.12): + /vite@4.3.1(@types/node@18.16.0): resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -9533,8 +9534,8 @@ packages: terser: optional: true dependencies: - '@types/node': 18.15.12 - esbuild: 0.17.17 + '@types/node': 18.16.0 + esbuild: 0.17.18 postcss: 8.4.23 rollup: 3.20.2 optionalDependencies: @@ -9573,7 +9574,7 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 18.15.12 + '@types/node': 18.16.0 '@vitest/expect': 0.30.1 '@vitest/runner': 0.30.1 '@vitest/snapshot': 0.30.1 @@ -9595,8 +9596,8 @@ packages: strip-literal: 1.0.1 tinybench: 2.4.0 tinypool: 0.4.0 - vite: 4.3.1(@types/node@18.15.12) - vite-node: 0.30.1(@types/node@18.15.12) + vite: 4.3.1(@types/node@18.16.0) + vite-node: 0.30.1(@types/node@18.16.0) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -9671,15 +9672,15 @@ packages: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} dev: false - /vue-eslint-parser@9.1.1(eslint@8.38.0): + /vue-eslint-parser@9.1.1(eslint@8.39.0): resolution: {integrity: sha512-C2aI/r85Q6tYcz4dpgvrs4wH/MqVrRAVIdpYedrxnATDHHkb+TroeRcDpKWGZCx/OcECMWfz7tVwQ8e+Opy6rA==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4 - eslint: 8.38.0 - eslint-scope: 7.1.1 + eslint: 8.39.0 + eslint-scope: 7.2.0 eslint-visitor-keys: 3.4.0 espree: 9.5.1 esquery: 1.5.0 @@ -9722,14 +9723,14 @@ packages: de-indent: 1.0.2 he: 1.2.0 - /vue-tsc@1.4.0(typescript@5.0.4): - resolution: {integrity: sha512-zASWNqFTIHaY6K8ua0ifFpiX7lA4pz8zKkevLAVYyzBQu6Jc63xWdY3eH0qCUJm7L4K4h9nzbwysta89sfq7ZQ==} + /vue-tsc@1.4.4(typescript@5.0.4): + resolution: {integrity: sha512-2XsCjF2mLo6gwOVcOpngwJkP8GzYQjNh20A+Pr2FGdsWzr9jjXJ0k08/DfcslfncsuCrTrnWtb4KEL3gcDtlNA==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@volar/vue-language-core': 1.4.0 - '@volar/vue-typescript': 1.4.0(typescript@5.0.4) + '@volar/vue-language-core': 1.4.4 + '@volar/vue-typescript': 1.4.4(typescript@5.0.4) semver: 7.5.0 typescript: 5.0.4 From 753c4c2a3de9731408887c0aa5cea9454c2bbcd7 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 24 Apr 2023 23:55:57 +0100 Subject: [PATCH 091/912] ci: try releasing `nuxt-edge` with provenance --- .github/workflows/nuxt2-edge.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/nuxt2-edge.yml b/.github/workflows/nuxt2-edge.yml index 4a6701f9b0..ab5d660907 100644 --- a/.github/workflows/nuxt2-edge.yml +++ b/.github/workflows/nuxt2-edge.yml @@ -9,6 +9,8 @@ jobs: nightly: if: github.repository_owner == 'nuxt' runs-on: ubuntu-latest + permissions: + id-token: write steps: - uses: actions/checkout@v3 with: @@ -18,7 +20,7 @@ jobs: run: git fetch --depth=1 origin "+refs/tags/*:refs/tags/*" - uses: actions/setup-node@v3 with: - node-version: 14 + node-version: 18 registry-url: 'https://registry.npmjs.org' - name: install run: yarn --check-files --frozen-lockfile --non-interactive @@ -48,4 +50,5 @@ jobs: run: ./scripts/workspace-run npm publish -q env: NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}} + NPM_CONFIG_PROVENANCE: true From 11891ee503927dfa343e6bbbbc6a162aaa73cee7 Mon Sep 17 00:00:00 2001 From: Paul Melero Date: Tue, 25 Apr 2023 08:25:24 +0000 Subject: [PATCH 092/912] docs: remove RC reference and add link to vue migration build (#20485) --- docs/7.migration/2.configuration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/7.migration/2.configuration.md b/docs/7.migration/2.configuration.md index d56d218211..a70dedbc1d 100644 --- a/docs/7.migration/2.configuration.md +++ b/docs/7.migration/2.configuration.md @@ -128,7 +128,7 @@ There are a number of changes to what is recommended Vue best practice, as well It is recommended to read the [Vue 3 migration guide](https://v3-migration.vuejs.org/) and in particular the [breaking changes list](https://v3-migration.vuejs.org/breaking-changes/). -It is not currently possible to use the Vue 3 migration build with Nuxt 3 RC. +It is not currently possible to use the [Vue 3 migration build](https://v3-migration.vuejs.org/migration-build.html) with Nuxt 3. ## Vuex From c6578219fa6746c82e1ce23746e098bd2b48027f Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 25 Apr 2023 09:37:25 +0100 Subject: [PATCH 093/912] chore(deps): allow upgrading postcss, core-js and jest for `2.x` branch --- renovate.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/renovate.json b/renovate.json index 2beb92d5f7..98b45a9ff5 100644 --- a/renovate.json +++ b/renovate.json @@ -25,8 +25,6 @@ ], "ignoreDeps": [ "@types/node", - "core-js", - "postcss", "postcss-import", "postcss-loader", "postcss-url", @@ -40,8 +38,6 @@ "@types/webpack-bundle-analyzer", "@types/webpack-hot-middleware", "wrap-ansi", - "jest", - "babel-jest", "globby", "execa", "chalk", From ba320a55898c8b2209c530202e19b17f8eab83bc Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 25 Apr 2023 10:20:11 +0100 Subject: [PATCH 094/912] test: exclude default error pages from bundle test --- test/bundle.test.ts | 9 +++------ test/fixtures/minimal/error.vue | 3 +++ 2 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 test/fixtures/minimal/error.vue diff --git a/test/bundle.test.ts b/test/bundle.test.ts index b708de8b61..d20a60ec79 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -34,13 +34,10 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e it('default client bundle size', async () => { stats.client = await analyzeSizes('**/*.js', publicDir) - expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"105k"') + expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"94.0k"') expect(stats.client.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ - "_nuxt/_plugin-vue_export-helper.js", "_nuxt/entry.js", - "_nuxt/error-404.js", - "_nuxt/error-500.js", "_nuxt/error-component.js", ] `) @@ -48,10 +45,10 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e it('default server bundle size', async () => { stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"92.4k"') + expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"67.2k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2657k"') + expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2653k"') const packages = modules.files .filter(m => m.endsWith('package.json')) diff --git a/test/fixtures/minimal/error.vue b/test/fixtures/minimal/error.vue new file mode 100644 index 0000000000..17b1009956 --- /dev/null +++ b/test/fixtures/minimal/error.vue @@ -0,0 +1,3 @@ + From ac598e4f4da91f2459371531dbafa887b45a63d8 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 25 Apr 2023 11:26:45 +0100 Subject: [PATCH 095/912] test: update snapshot --- test/bundle.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/bundle.test.ts b/test/bundle.test.ts index d20a60ec79..4ecf36a2bb 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -34,7 +34,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e it('default client bundle size', async () => { stats.client = await analyzeSizes('**/*.js', publicDir) - expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"94.0k"') + expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"94.4k"') expect(stats.client.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -48,7 +48,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"67.2k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2653k"') + expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2657k"') const packages = modules.files .filter(m => m.endsWith('package.json')) From dd5f0071204eef89729e424f95298129f547f0ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Ollivier?= Date: Tue, 25 Apr 2023 14:38:10 +0200 Subject: [PATCH 096/912] docs: add cdn proxy section (#20408) --- docs/1.getting-started/10.deployment.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/1.getting-started/10.deployment.md b/docs/1.getting-started/10.deployment.md index b816e2b27d..da1aeb93bd 100644 --- a/docs/1.getting-started/10.deployment.md +++ b/docs/1.getting-started/10.deployment.md @@ -149,3 +149,17 @@ Nuxt 3 can be deployed to several cloud providers with a minimal amount of confi - :icon{name="simple-icons:render" class="h-5 w-4 inline mb-2"} [Render](https://nitro.unjs.io/deploy/providers/render) - :icon{name="ph:cloud-duotone" class="h-5 w-4 inline mb-2"} [Stormkit](https://nitro.unjs.io/deploy/providers/stormkit) - :icon{name="simple-icons:vercel" class="h-5 w-4 inline mb-2 text-black dark:text-white"} [Vercel](https://nitro.unjs.io/deploy/providers/vercel) + +## CDN Proxy + +In most cases, Nuxt can work with third-party content that is not generated or created by Nuxt itself. But sometimes such content can cause problems, especially Cloudflare's "Minification and Security Options". + +Accordingly, you should make sure that the following options are unchecked / disabled in Cloudflare. Otherwise, unnecessary re-rendering or hydration errors could impact your production application. + +1. Speed > Optimization > Auto Minify: Uncheck JavaScript, CSS and HTML +2. Speed > Optimization > Disable "Rocket Loader™" +3. Speed > Optimization > Disable "Mirage" +4. Scrape Shield > Disable "Email Address Obfuscation" +5. Scrape Shield > Disable "Server-side Excludes" + +With these settings, you can be sure that Cloudflare won't inject scripts into your Nuxt application that may cause unwanted side effects. From 24ce1022e90d089a99d7a029285cd4412550c123 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 13:44:56 +0100 Subject: [PATCH 097/912] chore(deps): update dependency @vitejs/plugin-vue to ^4.2.0 (main) (#20493) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/vite/package.json | 2 +- pnpm-lock.yaml | 16 ++++++++-------- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 735f0056a3..efc8a96a05 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -104,7 +104,7 @@ "@types/estree": "^1.0.1", "@types/fs-extra": "^11.0.1", "@types/prompts": "^2.4.4", - "@vitejs/plugin-vue": "^4.1.0", + "@vitejs/plugin-vue": "^4.2.0", "acorn": "^8.8.2", "unbuild": "latest", "vite": "^4.3.1", diff --git a/packages/schema/package.json b/packages/schema/package.json index 4f3b5e5277..7e7de4905d 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -23,7 +23,7 @@ "devDependencies": { "@nuxt/telemetry": "^2.2.0", "@unhead/schema": "^1.1.26", - "@vitejs/plugin-vue": "^4.1.0", + "@vitejs/plugin-vue": "^4.2.0", "@vitejs/plugin-vue-jsx": "^3.0.1", "h3": "^1.6.4", "ignore": "^5.2.4", diff --git a/packages/vite/package.json b/packages/vite/package.json index 1dae4a0de4..007da475f6 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -26,7 +26,7 @@ "dependencies": { "@nuxt/kit": "workspace:../kit", "@rollup/plugin-replace": "^5.0.2", - "@vitejs/plugin-vue": "^4.1.0", + "@vitejs/plugin-vue": "^4.2.0", "@vitejs/plugin-vue-jsx": "^3.0.1", "autoprefixer": "^10.4.14", "clear": "^0.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b37b4a0d6..d83a5f7868 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -703,8 +703,8 @@ importers: specifier: ^2.4.4 version: 2.4.4 '@vitejs/plugin-vue': - specifier: ^4.1.0 - version: 4.1.0(vite@4.3.1)(vue@3.2.47) + specifier: ^4.2.0 + version: 4.2.0(vite@4.3.1)(vue@3.2.47) acorn: specifier: ^8.8.2 version: 8.8.2 @@ -755,8 +755,8 @@ importers: specifier: ^1.1.26 version: 1.1.26 '@vitejs/plugin-vue': - specifier: ^4.1.0 - version: 4.1.0(vite@4.3.1)(vue@3.2.47) + specifier: ^4.2.0 + version: 4.2.0(vite@4.3.1)(vue@3.2.47) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 version: 3.0.1(vite@4.3.1)(vue@3.2.47) @@ -846,8 +846,8 @@ importers: specifier: ^5.0.2 version: 5.0.2(rollup@3.20.2) '@vitejs/plugin-vue': - specifier: ^4.1.0 - version: 4.1.0(vite@4.3.1)(vue@3.2.47) + specifier: ^4.2.0 + version: 4.2.0(vite@4.3.1)(vue@3.2.47) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 version: 3.0.1(vite@4.3.1)(vue@3.2.47) @@ -2968,8 +2968,8 @@ packages: transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@4.1.0(vite@4.3.1)(vue@3.2.47): - resolution: {integrity: sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==} + /@vitejs/plugin-vue@4.2.0(vite@4.3.1)(vue@3.2.47): + resolution: {integrity: sha512-hYaXFvEKEwyTmwHq2ft7GGeLBvyYLwTM3E5R1jpvzxg9gO4m5PQcTVvj1wEPKoPL8PAt+KAlxo3gyJWnmwzaWQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 From 4c200e4a2a7c3472153b6fac3e81d4e911c9a50a Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 25 Apr 2023 15:33:29 +0100 Subject: [PATCH 098/912] fix(nuxi,schema): support `devServer.https: true` (#20498) --- packages/nuxi/src/commands/dev.ts | 4 ++-- packages/schema/src/config/dev.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/nuxi/src/commands/dev.ts b/packages/nuxi/src/commands/dev.ts index 8cbd6f8505..ee527aff48 100644 --- a/packages/nuxi/src/commands/dev.ts +++ b/packages/nuxi/src/commands/dev.ts @@ -62,8 +62,8 @@ export default defineNuxtCommand({ hostname: args.host || args.h || process.env.NUXT_HOST || config.devServer.host, https: (args.https !== false && (args.https || config.devServer.https)) ? { - cert: args['ssl-cert'] || (config.devServer.https && config.devServer.https.cert) || undefined, - key: args['ssl-key'] || (config.devServer.https && config.devServer.https.key) || undefined + cert: args['ssl-cert'] || (typeof config.devServer.https !== 'boolean' && config.devServer.https.cert) || undefined, + key: args['ssl-key'] || (typeof config.devServer.https !== 'boolean' && config.devServer.https.key) || undefined } : false }) diff --git a/packages/schema/src/config/dev.ts b/packages/schema/src/config/dev.ts index 998befa42d..e56860fa86 100644 --- a/packages/schema/src/config/dev.ts +++ b/packages/schema/src/config/dev.ts @@ -18,7 +18,7 @@ export default defineUntypedSchema({ * ``` * * - * @type {false | { key: string; cert: string }} + * @type {boolean | { key: string; cert: string }} * */ https: false, From 200cb2787eecb846e73b915623e44d7f909f5981 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 25 Apr 2023 15:47:02 +0100 Subject: [PATCH 099/912] fix(nuxt): throw 404 when accessing `/__nuxt_error` directly (#20497) --- .../nuxt/src/core/runtime/nitro/renderer.ts | 5 ++++- test/basic.test.ts | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 7ea3a73fd2..58b8d13ee0 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -180,7 +180,10 @@ export default defineRenderHandler(async (event) => { } if (ssrError && event.node.req.socket.readyState !== 'readOnly' /* direct request */) { - throw createError('Cannot directly render error page!') + throw createError({ + statusCode: 404, + statusMessage: 'Page Not Found: /__nuxt_error' + }) } // Check for island component rendering diff --git a/test/basic.test.ts b/test/basic.test.ts index a8c1331fbf..ee52af0989 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -574,6 +574,25 @@ describe('errors', () => { expect(await res.text()).toContain('This is a custom error') }) + it('should not allow accessing error route directly', async () => { + const res = await fetch('/__nuxt_error', { + headers: { + accept: 'application/json' + } + }) + expect(res.status).toBe(404) + const error = await res.json() + delete error.stack + expect(error).toMatchInlineSnapshot(` + { + "message": "Page Not Found: /__nuxt_error", + "statusCode": 404, + "statusMessage": "Page Not Found: /__nuxt_error", + "url": "/__nuxt_error", + } + `) + }) + // TODO: need to create test for webpack it.runIf(!isDev() && !isWebpack)('should handle chunk loading errors', async () => { const { page, consoleLogs } = await renderPage('/') From 9170a721f7f9d440b3e8c018f2bc8e25abd43a36 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 25 Apr 2023 21:18:33 +0100 Subject: [PATCH 100/912] chore(deps): update dependency vite to v4.3.2 (main) (#20504) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- package.json | 4 +- packages/kit/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/vite/package.json | 2 +- pnpm-lock.yaml | 256 +++++++++++++++++------------------ 6 files changed, 134 insertions(+), 134 deletions(-) diff --git a/package.json b/package.json index 74b3bde122..438e6be0c5 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "nuxt": "workspace:*", "nuxt3": "workspace:nuxt@*", "unbuild": "^1.2.1", - "vite": "^4.3.1", + "vite": "^4.3.2", "vue": "3.2.47", "magic-string": "^0.30.0" }, @@ -73,7 +73,7 @@ "typescript": "^5.0.4", "ufo": "^1.1.1", "unbuild": "^1.2.1", - "vite": "^4.3.1", + "vite": "^4.3.2", "vitest": "^0.30.1", "vue": "3.2.47", "vue-eslint-parser": "^9.1.1", diff --git a/packages/kit/package.json b/packages/kit/package.json index 4b30092676..f6a42ae5bc 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -45,7 +45,7 @@ "@types/semver": "^7.3.13", "nitropack": "^2.3.3", "unbuild": "latest", - "vite": "^4.3.1", + "vite": "^4.3.2", "vitest": "^0.30.1", "webpack": "^5.80.0" }, diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index efc8a96a05..c277fc6957 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -107,7 +107,7 @@ "@vitejs/plugin-vue": "^4.2.0", "acorn": "^8.8.2", "unbuild": "latest", - "vite": "^4.3.1", + "vite": "^4.3.2", "vitest": "^0.30.1" }, "peerDependencies": { diff --git a/packages/schema/package.json b/packages/schema/package.json index 7e7de4905d..755f98be09 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -30,7 +30,7 @@ "nitropack": "^2.3.3", "unbuild": "latest", "unctx": "^2.3.0", - "vite": "~4.3.1", + "vite": "~4.3.2", "vue": "3.2.47", "vue-bundle-renderer": "^1.0.3", "vue-router": "^4.1.6", diff --git a/packages/vite/package.json b/packages/vite/package.json index 007da475f6..cb7fa11ed0 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -54,7 +54,7 @@ "strip-literal": "^1.0.1", "ufo": "^1.1.1", "unplugin": "^1.3.1", - "vite": "~4.3.1", + "vite": "~4.3.2", "vite-node": "^0.30.1", "vite-plugin-checker": "^0.5.6", "vue-bundle-renderer": "^1.0.3" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d83a5f7868..f61b7db911 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ overrides: nuxt: workspace:* nuxt3: workspace:nuxt@* unbuild: ^1.2.1 - vite: ^4.3.1 + vite: ^4.3.2 vue: 3.2.47 magic-string: ^0.30.0 @@ -115,8 +115,8 @@ importers: specifier: ^1.2.1 version: 1.2.1 vite: - specifier: ^4.3.1 - version: 4.3.1(@types/node@18.16.0) + specifier: ^4.3.2 + version: 4.3.2(@types/node@18.16.0) vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -134,7 +134,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -143,7 +143,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -152,7 +152,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -173,7 +173,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../packages/nuxt @@ -182,7 +182,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -191,7 +191,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -200,7 +200,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -209,7 +209,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -218,7 +218,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -227,7 +227,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -236,7 +236,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -245,7 +245,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -254,7 +254,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -263,7 +263,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -278,7 +278,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -287,7 +287,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -296,7 +296,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -305,7 +305,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -314,7 +314,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -323,7 +323,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -332,7 +332,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -341,7 +341,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -350,7 +350,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -359,7 +359,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -416,7 +416,7 @@ importers: version: 2.3.0 unimport: specifier: ^3.0.6 - version: 3.0.6(rollup@3.20.2) + version: 3.0.6(rollup@3.21.0) untyped: specifier: ^1.3.2 version: 1.3.2 @@ -437,8 +437,8 @@ importers: specifier: ^1.2.1 version: 1.2.1 vite: - specifier: ^4.3.1 - version: 4.3.1(@types/node@18.16.0) + specifier: ^4.3.2 + version: 4.3.2(@types/node@18.16.0) vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -670,7 +670,7 @@ importers: version: 1.4.1 unimport: specifier: ^3.0.6 - version: 3.0.6(rollup@3.20.2) + version: 3.0.6(rollup@3.21.0) unplugin: specifier: ^1.3.1 version: 1.3.1 @@ -704,7 +704,7 @@ importers: version: 2.4.4 '@vitejs/plugin-vue': specifier: ^4.2.0 - version: 4.2.0(vite@4.3.1)(vue@3.2.47) + version: 4.2.0(vite@4.3.2)(vue@3.2.47) acorn: specifier: ^8.8.2 version: 8.8.2 @@ -712,8 +712,8 @@ importers: specifier: ^1.2.1 version: 1.2.1 vite: - specifier: ^4.3.1 - version: 4.3.1(@types/node@18.16.0) + specifier: ^4.3.2 + version: 4.3.2(@types/node@18.16.0) vitest: specifier: ^0.30.1 version: 0.30.1(playwright@1.32.3) @@ -743,7 +743,7 @@ importers: version: 1.1.1 unimport: specifier: ^3.0.6 - version: 3.0.6(rollup@3.20.2) + version: 3.0.6(rollup@3.21.0) untyped: specifier: ^1.3.2 version: 1.3.2 @@ -756,10 +756,10 @@ importers: version: 1.1.26 '@vitejs/plugin-vue': specifier: ^4.2.0 - version: 4.2.0(vite@4.3.1)(vue@3.2.47) + version: 4.2.0(vite@4.3.2)(vue@3.2.47) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.3.1)(vue@3.2.47) + version: 3.0.1(vite@4.3.2)(vue@3.2.47) h3: specifier: ^1.6.4 version: 1.6.4 @@ -776,8 +776,8 @@ importers: specifier: ^2.3.0 version: 2.3.0 vite: - specifier: ^4.3.1 - version: 4.3.1(@types/node@18.16.0) + specifier: ^4.3.2 + version: 4.3.2(@types/node@18.16.0) vue: specifier: 3.2.47 version: 3.2.47 @@ -844,13 +844,13 @@ importers: version: link:../kit '@rollup/plugin-replace': specifier: ^5.0.2 - version: 5.0.2(rollup@3.20.2) + version: 5.0.2(rollup@3.21.0) '@vitejs/plugin-vue': specifier: ^4.2.0 - version: 4.2.0(vite@4.3.1)(vue@3.2.47) + version: 4.2.0(vite@4.3.2)(vue@3.2.47) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.3.1)(vue@3.2.47) + version: 3.0.1(vite@4.3.2)(vue@3.2.47) autoprefixer: specifier: ^10.4.14 version: 10.4.14(postcss@8.4.23) @@ -916,7 +916,7 @@ importers: version: 10.1.3(postcss@8.4.23) rollup-plugin-visualizer: specifier: ^5.9.0 - version: 5.9.0(rollup@3.20.2) + version: 5.9.0(rollup@3.21.0) std-env: specifier: ^3.3.2 version: 3.3.2 @@ -930,14 +930,14 @@ importers: specifier: ^1.3.1 version: 1.3.1 vite: - specifier: ^4.3.1 - version: 4.3.1(@types/node@18.16.0) + specifier: ^4.3.2 + version: 4.3.2(@types/node@18.16.0) vite-node: specifier: ^0.30.1 version: 0.30.1(@types/node@18.16.0) vite-plugin-checker: specifier: ^0.5.6 - version: 0.5.6(eslint@8.39.0)(typescript@5.0.4)(vite@4.3.1)(vue-tsc@1.4.4) + version: 0.5.6(eslint@8.39.0)(typescript@5.0.4)(vite@4.3.2)(vue-tsc@1.4.4) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 @@ -2052,14 +2052,14 @@ packages: resolution: {integrity: sha512-PjVETP7+iZXAs5Q8O4ivl4t6qjWZMZqwiTVogUXHoHGZZcw7GZW3u3tzfYfE1HbzyYJfr236IXqQ02MeR8Fz2w==} dev: false - /@nuxt/ui@0.3.3(nuxt@packages+nuxt)(rollup@3.20.2)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0): + /@nuxt/ui@0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0): resolution: {integrity: sha512-KkPAJ+7snNj3lbvzgc6UD5exVsLGExJPP1WwPIdMfXBAUUytXV5CTftpySxcAclN8j+B/GIbcjagBOpJkr7KGQ==} dependencies: '@iconify-json/carbon': 1.1.16 '@nuxt/kit': link:packages/kit '@nuxtjs/color-mode': 3.2.0 '@unocss/core': 0.45.30 - '@unocss/nuxt': 0.45.30(rollup@3.20.2)(vite@3.2.5)(webpack@5.80.0) + '@unocss/nuxt': 0.45.30(rollup@3.21.0)(vite@3.2.5)(webpack@5.80.0) '@unocss/preset-attributify': 0.45.30 '@unocss/preset-icons': 0.45.30 '@unocss/preset-mini': 0.45.30 @@ -2069,7 +2069,7 @@ packages: '@vueuse/nuxt': 9.13.0(nuxt@packages+nuxt)(vue@3.2.47) defu: 6.1.2 focus-trap: 7.4.0 - unocss: 0.45.30(@unocss/webpack@0.45.30)(rollup@3.20.2)(vite@3.2.5) + unocss: 0.45.30(@unocss/webpack@0.45.30)(rollup@3.21.0)(vite@3.2.5) transitivePeerDependencies: - '@unocss/webpack' - '@vue/composition-api' @@ -2165,7 +2165,7 @@ packages: /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} - /@rollup/plugin-alias@5.0.0(rollup@3.20.2): + /@rollup/plugin-alias@5.0.0(rollup@3.21.0): resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2174,10 +2174,10 @@ packages: rollup: optional: true dependencies: - rollup: 3.20.2 + rollup: 3.21.0 slash: 4.0.0 - /@rollup/plugin-commonjs@24.1.0(rollup@3.20.2): + /@rollup/plugin-commonjs@24.1.0(rollup@3.21.0): resolution: {integrity: sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2186,15 +2186,15 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.2) + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.30.0 - rollup: 3.20.2 + rollup: 3.21.0 - /@rollup/plugin-inject@5.0.3(rollup@3.20.2): + /@rollup/plugin-inject@5.0.3(rollup@3.21.0): resolution: {integrity: sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2203,12 +2203,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.2) + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) estree-walker: 2.0.2 magic-string: 0.30.0 - rollup: 3.20.2 + rollup: 3.21.0 - /@rollup/plugin-json@6.0.0(rollup@3.20.2): + /@rollup/plugin-json@6.0.0(rollup@3.21.0): resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2217,10 +2217,10 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.2) - rollup: 3.20.2 + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) + rollup: 3.21.0 - /@rollup/plugin-node-resolve@15.0.2(rollup@3.20.2): + /@rollup/plugin-node-resolve@15.0.2(rollup@3.21.0): resolution: {integrity: sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2229,15 +2229,15 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.2) + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) '@types/resolve': 1.20.2 deepmerge: 4.3.0 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.1 - rollup: 3.20.2 + rollup: 3.21.0 - /@rollup/plugin-replace@5.0.2(rollup@3.20.2): + /@rollup/plugin-replace@5.0.2(rollup@3.21.0): resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2246,11 +2246,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.2) + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) magic-string: 0.30.0 - rollup: 3.20.2 + rollup: 3.21.0 - /@rollup/plugin-terser@0.4.1(rollup@3.20.2): + /@rollup/plugin-terser@0.4.1(rollup@3.21.0): resolution: {integrity: sha512-aKS32sw5a7hy+fEXVy+5T95aDIwjpGHCTv833HXVtyKMDoVS7pBr5K3L9hEQoNqbJFjfANPrNpIXlTQ7is00eA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2259,12 +2259,12 @@ packages: rollup: optional: true dependencies: - rollup: 3.20.2 + rollup: 3.21.0 serialize-javascript: 6.0.1 smob: 0.0.6 terser: 5.16.6 - /@rollup/plugin-wasm@6.1.2(rollup@3.20.2): + /@rollup/plugin-wasm@6.1.2(rollup@3.21.0): resolution: {integrity: sha512-YdrQ7zfnZ54Y+6raCev3tR1PrhQGxYKSTajGylhyP0oBacouuNo6KcNCk+pYKw9M98jxRWLFFca/udi76IDXzg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2273,7 +2273,7 @@ packages: rollup: optional: true dependencies: - rollup: 3.20.2 + rollup: 3.21.0 /@rollup/pluginutils@4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} @@ -2282,7 +2282,7 @@ packages: estree-walker: 2.0.2 picomatch: 2.3.1 - /@rollup/pluginutils@5.0.2(rollup@3.20.2): + /@rollup/pluginutils@5.0.2(rollup@3.21.0): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2294,7 +2294,7 @@ packages: '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.20.2 + rollup: 3.21.0 /@sinclair/typebox@0.25.24: resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} @@ -2734,24 +2734,24 @@ packages: vue: 3.2.47 dev: false - /@unocss/astro@0.45.30(rollup@3.20.2)(vite@3.2.5): + /@unocss/astro@0.45.30(rollup@3.21.0)(vite@3.2.5): resolution: {integrity: sha512-eF5FxSasaKveOAIFVJlHD0dlvKDmL7oBCFQihr6XR8RhbkkMI8mO0lJB0i6QK3PtJY7F6ceCSMe+bAht6Q067w==} dependencies: '@unocss/core': 0.45.30 '@unocss/reset': 0.45.30 - '@unocss/vite': 0.45.30(rollup@3.20.2)(vite@3.2.5) + '@unocss/vite': 0.45.30(rollup@3.21.0)(vite@3.2.5) transitivePeerDependencies: - rollup - vite dev: true - /@unocss/cli@0.45.30(rollup@3.20.2): + /@unocss/cli@0.45.30(rollup@3.21.0): resolution: {integrity: sha512-QmaMx7w5Nc4R7Nm/oB7hb9xwQeZqjNaUpFejqLP0b8gKSdBxecAOw2aknOV+NH8YvKwsqLvTOoRzmpVmbI1Xqg==} engines: {node: '>=14'} hasBin: true dependencies: '@ampproject/remapping': 2.2.0 - '@rollup/pluginutils': 5.0.2(rollup@3.20.2) + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) '@unocss/config': 0.45.30 '@unocss/core': 0.45.30 '@unocss/preset-uno': 0.45.30 @@ -2786,7 +2786,7 @@ packages: sirv: 2.0.2 dev: true - /@unocss/nuxt@0.45.30(rollup@3.20.2)(vite@3.2.5)(webpack@5.80.0): + /@unocss/nuxt@0.45.30(rollup@3.21.0)(vite@3.2.5)(webpack@5.80.0): resolution: {integrity: sha512-m2CEbLLoqE/WacdEGEDXR9R3FbTbSTPV5gPL0Myv0jrHRSRt1MkULZ/IfPgA/A/QiOzcSIUTVXW1dSlOFh5ngQ==} dependencies: '@nuxt/kit': link:packages/kit @@ -2799,9 +2799,9 @@ packages: '@unocss/preset-web-fonts': 0.45.30 '@unocss/preset-wind': 0.45.30 '@unocss/reset': 0.45.30 - '@unocss/vite': 0.45.30(rollup@3.20.2)(vite@3.2.5) - '@unocss/webpack': 0.45.30(rollup@3.20.2)(webpack@5.80.0) - unocss: 0.45.30(@unocss/webpack@0.45.30)(rollup@3.20.2)(vite@3.2.5) + '@unocss/vite': 0.45.30(rollup@3.21.0)(vite@3.2.5) + '@unocss/webpack': 0.45.30(rollup@3.21.0)(webpack@5.80.0) + unocss: 0.45.30(@unocss/webpack@0.45.30)(rollup@3.21.0)(vite@3.2.5) transitivePeerDependencies: - rollup - supports-color @@ -2898,13 +2898,13 @@ packages: '@unocss/core': 0.45.30 dev: true - /@unocss/vite@0.45.30(rollup@3.20.2)(vite@3.2.5): + /@unocss/vite@0.45.30(rollup@3.21.0)(vite@3.2.5): resolution: {integrity: sha512-4yx3W/SicS1ovpYdwbRQEGSdLZKxM76T5R0bGR9VRp6WcMoExY3Ph50LRCq1PIHT2L/GARSpJ/gGOW4hJ9lMYg==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 dependencies: '@ampproject/remapping': 2.2.0 - '@rollup/pluginutils': 5.0.2(rollup@3.20.2) + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) '@unocss/config': 0.45.30 '@unocss/core': 0.45.30 '@unocss/inspector': 0.45.30 @@ -2916,13 +2916,13 @@ packages: - rollup dev: true - /@unocss/webpack@0.45.30(rollup@3.20.2)(webpack@5.80.0): + /@unocss/webpack@0.45.30(rollup@3.21.0)(webpack@5.80.0): resolution: {integrity: sha512-ke3B+YHmd2O6fxSUoHn24lfiQl1gsc8EQp5n4cqsy92IVw+lmGrVj6V3EyIN5aykrxgEqiZc9NLhPoADWoai7g==} peerDependencies: webpack: ^4 || ^5 dependencies: '@ampproject/remapping': 2.2.0 - '@rollup/pluginutils': 5.0.2(rollup@3.20.2) + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) '@unocss/config': 0.45.30 '@unocss/core': 0.45.30 magic-string: 0.30.0 @@ -2953,7 +2953,7 @@ packages: - encoding - supports-color - /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.1)(vue@3.2.47): + /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.2)(vue@3.2.47): resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2963,19 +2963,19 @@ packages: '@babel/core': 7.21.4 '@babel/plugin-transform-typescript': 7.21.0(@babel/core@7.21.4) '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.4) - vite: 4.3.1(@types/node@18.16.0) + vite: 4.3.2(@types/node@18.16.0) vue: 3.2.47 transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@4.2.0(vite@4.3.1)(vue@3.2.47): + /@vitejs/plugin-vue@4.2.0(vite@4.3.2)(vue@3.2.47): resolution: {integrity: sha512-hYaXFvEKEwyTmwHq2ft7GGeLBvyYLwTM3E5R1jpvzxg9gO4m5PQcTVvj1wEPKoPL8PAt+KAlxo3gyJWnmwzaWQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.3.1(@types/node@18.16.0) + vite: 4.3.2(@types/node@18.16.0) vue: 3.2.47 /@vitest/expect@0.30.1: @@ -7172,15 +7172,15 @@ packages: dependencies: '@cloudflare/kv-asset-handler': 0.3.0 '@netlify/functions': 1.4.0 - '@rollup/plugin-alias': 5.0.0(rollup@3.20.2) - '@rollup/plugin-commonjs': 24.1.0(rollup@3.20.2) - '@rollup/plugin-inject': 5.0.3(rollup@3.20.2) - '@rollup/plugin-json': 6.0.0(rollup@3.20.2) - '@rollup/plugin-node-resolve': 15.0.2(rollup@3.20.2) - '@rollup/plugin-replace': 5.0.2(rollup@3.20.2) - '@rollup/plugin-terser': 0.4.1(rollup@3.20.2) - '@rollup/plugin-wasm': 6.1.2(rollup@3.20.2) - '@rollup/pluginutils': 5.0.2(rollup@3.20.2) + '@rollup/plugin-alias': 5.0.0(rollup@3.21.0) + '@rollup/plugin-commonjs': 24.1.0(rollup@3.21.0) + '@rollup/plugin-inject': 5.0.3(rollup@3.21.0) + '@rollup/plugin-json': 6.0.0(rollup@3.21.0) + '@rollup/plugin-node-resolve': 15.0.2(rollup@3.21.0) + '@rollup/plugin-replace': 5.0.2(rollup@3.21.0) + '@rollup/plugin-terser': 0.4.1(rollup@3.21.0) + '@rollup/plugin-wasm': 6.1.2(rollup@3.21.0) + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) '@vercel/nft': 0.22.6 archiver: 5.3.1 c12: 1.4.1 @@ -7216,8 +7216,8 @@ packages: pkg-types: 1.0.2 pretty-bytes: 6.1.0 radix3: 1.0.1 - rollup: 3.20.2 - rollup-plugin-visualizer: 5.9.0(rollup@3.20.2) + rollup: 3.21.0 + rollup-plugin-visualizer: 5.9.0(rollup@3.21.0) scule: 1.0.0 semver: 7.5.0 serve-placeholder: 2.0.1 @@ -7226,7 +7226,7 @@ packages: std-env: 3.3.2 ufo: 1.1.1 unenv: 1.4.1 - unimport: 3.0.6(rollup@3.20.2) + unimport: 3.0.6(rollup@3.21.0) unstorage: 1.4.1 transitivePeerDependencies: - '@azure/app-configuration' @@ -8317,7 +8317,7 @@ packages: glob: 10.0.0 dev: true - /rollup-plugin-dts@5.3.0(rollup@3.20.2)(typescript@5.0.4): + /rollup-plugin-dts@5.3.0(rollup@3.21.0)(typescript@5.0.4): resolution: {integrity: sha512-8FXp0ZkyZj1iU5klkIJYLjIq/YZSwBoERu33QBDxm/1yw5UU4txrEtcmMkrq+ZiKu3Q4qvPCNqc3ovX6rjqzbQ==} engines: {node: '>=v14'} peerDependencies: @@ -8325,13 +8325,13 @@ packages: typescript: ^4.1 || ^5.0 dependencies: magic-string: 0.30.0 - rollup: 3.20.2 + rollup: 3.21.0 typescript: 5.0.4 optionalDependencies: '@babel/code-frame': 7.21.4 dev: true - /rollup-plugin-visualizer@5.9.0(rollup@3.20.2): + /rollup-plugin-visualizer@5.9.0(rollup@3.21.0): resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} engines: {node: '>=14'} hasBin: true @@ -8343,7 +8343,7 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: 3.20.2 + rollup: 3.21.0 source-map: 0.7.4 yargs: 17.7.1 @@ -8355,8 +8355,8 @@ packages: fsevents: 2.3.2 dev: true - /rollup@3.20.2: - resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==} + /rollup@3.21.0: + resolution: {integrity: sha512-ANPhVcyeHvYdQMUyCbczy33nbLzI7RzrBje4uvNiTDJGIMtlKoOStmympwr9OtS1LZxiDmE2wvxHyVhoLtf1KQ==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -9133,12 +9133,12 @@ packages: resolution: {integrity: sha512-J4efk69Aye43tWcBPCsLK7TIRppGrEN4pAlDzRKo3HSE6MgTSTBxSEuE3ccx7ixc62JvGQ/CoFXYqqF2AHozow==} hasBin: true dependencies: - '@rollup/plugin-alias': 5.0.0(rollup@3.20.2) - '@rollup/plugin-commonjs': 24.1.0(rollup@3.20.2) - '@rollup/plugin-json': 6.0.0(rollup@3.20.2) - '@rollup/plugin-node-resolve': 15.0.2(rollup@3.20.2) - '@rollup/plugin-replace': 5.0.2(rollup@3.20.2) - '@rollup/pluginutils': 5.0.2(rollup@3.20.2) + '@rollup/plugin-alias': 5.0.0(rollup@3.21.0) + '@rollup/plugin-commonjs': 24.1.0(rollup@3.21.0) + '@rollup/plugin-json': 6.0.0(rollup@3.21.0) + '@rollup/plugin-node-resolve': 15.0.2(rollup@3.21.0) + '@rollup/plugin-replace': 5.0.2(rollup@3.21.0) + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) chalk: 5.2.0 consola: 3.1.0 defu: 6.1.2 @@ -9153,8 +9153,8 @@ packages: pathe: 1.1.0 pkg-types: 1.0.2 pretty-bytes: 6.1.0 - rollup: 3.20.2 - rollup-plugin-dts: 5.3.0(rollup@3.20.2)(typescript@5.0.4) + rollup: 3.21.0 + rollup-plugin-dts: 5.3.0(rollup@3.21.0)(typescript@5.0.4) scule: 1.0.0 typescript: 5.0.4 untyped: 1.3.2 @@ -9206,10 +9206,10 @@ packages: hookable: 5.5.3 dev: false - /unimport@3.0.6(rollup@3.20.2): + /unimport@3.0.6(rollup@3.21.0): resolution: {integrity: sha512-GYxGJ1Bri1oqx8VFDjdgooGzeK7jBk3bvhXmamTIpu3nONOcUMGwZbX7X0L5RA7OWMXpR4vzpSQP7pXUzJg1/Q==} dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.20.2) + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) escape-string-regexp: 5.0.0 fast-glob: 3.2.12 local-pkg: 0.4.3 @@ -9227,7 +9227,7 @@ packages: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} - /unocss@0.45.30(@unocss/webpack@0.45.30)(rollup@3.20.2)(vite@3.2.5): + /unocss@0.45.30(@unocss/webpack@0.45.30)(rollup@3.21.0)(vite@3.2.5): resolution: {integrity: sha512-6ODOL358gIS7IYdGmVc+DfsW881VZQPXACz5WySdSYcVgQnJvuvEVmvuXn670zN2K8TIEIP/22julybHtwDZ4Q==} engines: {node: '>=14'} peerDependencies: @@ -9236,8 +9236,8 @@ packages: '@unocss/webpack': optional: true dependencies: - '@unocss/astro': 0.45.30(rollup@3.20.2)(vite@3.2.5) - '@unocss/cli': 0.45.30(rollup@3.20.2) + '@unocss/astro': 0.45.30(rollup@3.21.0)(vite@3.2.5) + '@unocss/cli': 0.45.30(rollup@3.21.0) '@unocss/core': 0.45.30 '@unocss/preset-attributify': 0.45.30 '@unocss/preset-icons': 0.45.30 @@ -9252,8 +9252,8 @@ packages: '@unocss/transformer-compile-class': 0.45.30 '@unocss/transformer-directives': 0.45.30 '@unocss/transformer-variant-group': 0.45.30 - '@unocss/vite': 0.45.30(rollup@3.20.2)(vite@3.2.5) - '@unocss/webpack': 0.45.30(rollup@3.20.2)(webpack@5.80.0) + '@unocss/vite': 0.45.30(rollup@3.21.0)(vite@3.2.5) + '@unocss/webpack': 0.45.30(rollup@3.21.0)(webpack@5.80.0) transitivePeerDependencies: - rollup - supports-color @@ -9412,7 +9412,7 @@ packages: mlly: 1.2.0 pathe: 1.1.0 picocolors: 1.0.0 - vite: 4.3.1(@types/node@18.16.0) + vite: 4.3.2(@types/node@18.16.0) transitivePeerDependencies: - '@types/node' - less @@ -9422,7 +9422,7 @@ packages: - supports-color - terser - /vite-plugin-checker@0.5.6(eslint@8.39.0)(typescript@5.0.4)(vite@4.3.1)(vue-tsc@1.4.4): + /vite-plugin-checker@0.5.6(eslint@8.39.0)(typescript@5.0.4)(vite@4.3.2)(vue-tsc@1.4.4): resolution: {integrity: sha512-ftRyON0gORUHDxcDt2BErmsikKSkfvl1i2DoP6Jt2zDO9InfvM6tqO1RkXhSjkaXEhKPea6YOnhFaZxW3BzudQ==} engines: {node: '>=14.16'} peerDependencies: @@ -9467,7 +9467,7 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.0.4 - vite: 4.3.1(@types/node@18.16.0) + vite: 4.3.2(@types/node@18.16.0) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 @@ -9509,8 +9509,8 @@ packages: fsevents: 2.3.2 dev: true - /vite@4.3.1(@types/node@18.16.0): - resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==} + /vite@4.3.2(@types/node@18.16.0): + resolution: {integrity: sha512-9R53Mf+TBoXCYejcL+qFbZde+eZveQLDYd9XgULILLC1a5ZwPaqgmdVpL8/uvw2BM/1TzetWjglwm+3RO+xTyw==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -9537,7 +9537,7 @@ packages: '@types/node': 18.16.0 esbuild: 0.17.18 postcss: 8.4.23 - rollup: 3.20.2 + rollup: 3.21.0 optionalDependencies: fsevents: 2.3.2 @@ -9596,7 +9596,7 @@ packages: strip-literal: 1.0.1 tinybench: 2.4.0 tinypool: 0.4.0 - vite: 4.3.1(@types/node@18.16.0) + vite: 4.3.2(@types/node@18.16.0) vite-node: 0.30.1(@types/node@18.16.0) why-is-node-running: 2.2.2 transitivePeerDependencies: From 7ab476b1f88815f5367c7d74a98149569118cc61 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 26 Apr 2023 07:15:22 +0100 Subject: [PATCH 101/912] fix(nuxt): use `callAsync` for executing hooks with context (#20510) --- packages/nuxt/src/app/nuxt.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index fc239088b0..8716cd0d90 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -221,7 +221,7 @@ export function createNuxtApp (options: CreateOptions) { if (process.server) { async function contextCaller (hooks: HookCallback[], args: any[]) { for (const hook of hooks) { - await nuxtAppCtx.call(nuxtApp, () => hook(...args)) + await nuxtAppCtx.callAsync(nuxtApp, () => hook(...args)) } } // Patch callHook to preserve NuxtApp context on server From d027eb1a318c3e320fc4c79dbaed49302aace255 Mon Sep 17 00:00:00 2001 From: "Michael Gale (he/him)" Date: Wed, 26 Apr 2023 18:25:55 +1000 Subject: [PATCH 102/912] docs: add a next steps link to first page of migration docs (#20512) --- docs/7.migration/1.overview.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/7.migration/1.overview.md b/docs/7.migration/1.overview.md index 2a5d2558a9..f19d6826c2 100644 --- a/docs/7.migration/1.overview.md +++ b/docs/7.migration/1.overview.md @@ -23,3 +23,7 @@ Some of these significant changes include: ::alert{type=info} If you need to remain on Nuxt 2, but want to benefit from Nuxt 3 features in Nuxt 2, you can alternatively check out [how to get started with Bridge](/docs/bridge/overview). :: + +## Next Steps + +- Learn about differences in [configuration](/docs/migration/configuration) From a21a520736e4cf5abe7e794faa549b32aa38c3f6 Mon Sep 17 00:00:00 2001 From: Adrien Zaganelli Date: Wed, 26 Apr 2023 13:28:19 +0200 Subject: [PATCH 103/912] docs: add custom fetch composable example (#20115) --- docs/3.api/1.composables/use-fetch.md | 3 ++ .../8.other/use-custom-fetch-composable.md | 9 ++++++ .../other/use-custom-fetch-composable/app.vue | 16 ++++++++++ .../composables/useCustomFetch.ts | 31 +++++++++++++++++++ .../nuxt.config.ts | 6 ++++ .../use-custom-fetch-composable/package.json | 13 ++++++++ .../use-custom-fetch-composable/tsconfig.json | 4 +++ pnpm-lock.yaml | 9 ++++++ 8 files changed, 91 insertions(+) create mode 100644 docs/4.examples/8.other/use-custom-fetch-composable.md create mode 100644 examples/other/use-custom-fetch-composable/app.vue create mode 100644 examples/other/use-custom-fetch-composable/composables/useCustomFetch.ts create mode 100644 examples/other/use-custom-fetch-composable/nuxt.config.ts create mode 100644 examples/other/use-custom-fetch-composable/package.json create mode 100644 examples/other/use-custom-fetch-composable/tsconfig.json diff --git a/docs/3.api/1.composables/use-fetch.md b/docs/3.api/1.composables/use-fetch.md index 3fcb1dcab7..364ff36684 100644 --- a/docs/3.api/1.composables/use-fetch.md +++ b/docs/3.api/1.composables/use-fetch.md @@ -126,6 +126,9 @@ const { data, pending, error, refresh } = await useFetch('/api/auth/login', { `useFetch` is a reserved function name transformed by the compiler, so you should not name your own function `useFetch`. :: +::LinkExample{link="/docs/examples/other/use-custom-fetch-composable"} +:: + :ReadMore{link="/docs/getting-started/data-fetching"} ::LinkExample{link="/docs/examples/composables/use-fetch"} diff --git a/docs/4.examples/8.other/use-custom-fetch-composable.md b/docs/4.examples/8.other/use-custom-fetch-composable.md new file mode 100644 index 0000000000..939bf9e50d --- /dev/null +++ b/docs/4.examples/8.other/use-custom-fetch-composable.md @@ -0,0 +1,9 @@ +--- +toc: false +--- + +# Use custom fetch composable + +This example shows a convenient wrapper for the useFetch composable from nuxt. It allows you to customize the fetch request with default values and user authentication token. + +::sandbox{repo="nuxt/nuxt" branch="main" dir="examples/other/use-custom-fetch-composable" file="composables/useCustomFetch.ts"} diff --git a/examples/other/use-custom-fetch-composable/app.vue b/examples/other/use-custom-fetch-composable/app.vue new file mode 100644 index 0000000000..a4b3d6d4a9 --- /dev/null +++ b/examples/other/use-custom-fetch-composable/app.vue @@ -0,0 +1,16 @@ + + + + diff --git a/examples/other/use-custom-fetch-composable/composables/useCustomFetch.ts b/examples/other/use-custom-fetch-composable/composables/useCustomFetch.ts new file mode 100644 index 0000000000..56365292b7 --- /dev/null +++ b/examples/other/use-custom-fetch-composable/composables/useCustomFetch.ts @@ -0,0 +1,31 @@ +import type { UseFetchOptions } from 'nuxt/app' +import { defu } from 'defu' + +export function useCustomFetch (url: string, options: UseFetchOptions = {}) { + const userAuth = useCookie('token') + const config = useRuntimeConfig() + + const defaults: UseFetchOptions = { + baseURL: config.baseUrl ?? 'https://api.nuxtjs.dev', + // cache request + key: url, + + // set user token if connected + headers: userAuth.value + ? { Authorization: `Bearer ${userAuth.value}` } + : {}, + + onResponse (__ctx) { + // return new myBusinessResponse(response._data) + }, + + onResponseError (__ctx) { + // return new myBusinessError(error) + } + } + + // for nice deep defaults, please use unjs/defu + const params = defu(defaults, options) + + return useFetch(url, params) +} diff --git a/examples/other/use-custom-fetch-composable/nuxt.config.ts b/examples/other/use-custom-fetch-composable/nuxt.config.ts new file mode 100644 index 0000000000..1ede6806b6 --- /dev/null +++ b/examples/other/use-custom-fetch-composable/nuxt.config.ts @@ -0,0 +1,6 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + modules: [ + '@nuxt/ui' + ] +}) diff --git a/examples/other/use-custom-fetch-composable/package.json b/examples/other/use-custom-fetch-composable/package.json new file mode 100644 index 0000000000..ae4d600098 --- /dev/null +++ b/examples/other/use-custom-fetch-composable/package.json @@ -0,0 +1,13 @@ +{ + "name": "example-use-custom-fetch-composable", + "private": true, + "scripts": { + "build": "nuxi build", + "dev": "nuxi dev", + "start": "nuxi preview" + }, + "devDependencies": { + "@nuxt/ui": "^0.3.3", + "nuxt": "^3.0.0" + } +} diff --git a/examples/other/use-custom-fetch-composable/tsconfig.json b/examples/other/use-custom-fetch-composable/tsconfig.json new file mode 100644 index 0000000000..a746f2a70c --- /dev/null +++ b/examples/other/use-custom-fetch-composable/tsconfig.json @@ -0,0 +1,4 @@ +{ + // https://nuxt.com/docs/guide/concepts/typescript + "extends": "./.nuxt/tsconfig.json" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f61b7db911..2ad71d3867 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -310,6 +310,15 @@ importers: specifier: workspace:* version: link:../../../packages/nuxt + examples/other/use-custom-fetch-composable: + devDependencies: + '@nuxt/ui': + specifier: ^0.3.3 + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + nuxt: + specifier: workspace:* + version: link:../../../packages/nuxt + examples/routing/layouts: devDependencies: '@nuxt/ui': From dd0d13d425facb80e86ead215b678808a7a84edb Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 26 Apr 2023 14:30:05 +0100 Subject: [PATCH 104/912] fix(nuxt): improved typing support for app config (#20526) --- packages/nuxt/src/core/templates.ts | 18 ++++++++++-------- packages/schema/src/types/config.ts | 8 ++++++-- test/fixtures/basic/nuxt.config.ts | 14 ++++++++++++++ test/fixtures/basic/types.ts | 4 ++++ 4 files changed, 34 insertions(+), 10 deletions(-) diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index a7578a5bec..f1d941aa13 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -222,15 +222,17 @@ declare const inlineConfig = ${JSON.stringify(nuxt.options.appConfig, null, 2)} type ResolvedAppConfig = Defu `typeof cfg${index}`).join(', ')}]> type IsAny = 0 extends 1 & T ? true : false -type MergedAppConfig, Custom extends Record> = { - [K in keyof Resolved]: K extends keyof Custom - ? IsAny extends true +type MergedAppConfig, Custom extends Record> = { + [K in keyof (Resolved & Custom)]: K extends keyof Custom + ? unknown extends Custom[K] ? Resolved[K] - : Custom[K] extends Record - ? Resolved[K] extends Record - ? MergedAppConfig - : Exclude - : Exclude + : IsAny extends true + ? Resolved[K] + : Custom[K] extends Record + ? Resolved[K] extends Record + ? MergedAppConfig + : Exclude + : Exclude : Resolved[K] } diff --git a/packages/schema/src/types/config.ts b/packages/schema/src/types/config.ts index b1e96219e6..f12cf8de76 100644 --- a/packages/schema/src/types/config.ts +++ b/packages/schema/src/types/config.ts @@ -138,7 +138,9 @@ export interface RuntimeConfig extends RuntimeConfigNamespace { // -- App Config -- -export interface CustomAppConfig { } +export interface CustomAppConfig { + [key: string]: unknown +} export interface AppConfigInput extends CustomAppConfig { /** @deprecated reserved */ @@ -158,4 +160,6 @@ export interface NuxtAppConfig { keepalive: boolean | KeepAliveProps } -export interface AppConfig { } +export interface AppConfig { + [key: string]: unknown +} diff --git a/test/fixtures/basic/nuxt.config.ts b/test/fixtures/basic/nuxt.config.ts index cda954f1ae..8377002374 100644 --- a/test/fixtures/basic/nuxt.config.ts +++ b/test/fixtures/basic/nuxt.config.ts @@ -145,6 +145,20 @@ export default defineNuxtConfig({ }, telemetry: false, // for testing telemetry types - it is auto-disabled in tests hooks: { + 'schema:extend' (schemas) { + schemas.push({ + appConfig: { + someThing: { + value: { + $default: 'default', + $schema: { + tsType: 'string | false' + } + } + } + } + }) + }, 'prepare:types' ({ tsConfig }) { tsConfig.include = tsConfig.include!.filter(i => i !== '../../../../**/*') }, diff --git a/test/fixtures/basic/types.ts b/test/fixtures/basic/types.ts index 15985c7496..20ee6a1bbc 100644 --- a/test/fixtures/basic/types.ts +++ b/test/fixtures/basic/types.ts @@ -295,6 +295,10 @@ describe('app config', () => { val: number } userConfig: 123 | 456 + someThing?: { + value?: string | false, + } + [key: string]: unknown } expectTypeOf().toEqualTypeOf() }) From 197de3ecbbb74bad046ad97bd398a27e1c80c700 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 26 Apr 2023 14:36:59 +0100 Subject: [PATCH 105/912] fix(nuxt): call `app:error` in SSR before rendering error page (#20511) --- docs/1.getting-started/8.error-handling.md | 1 + packages/nuxt/src/app/composables/cookie.ts | 9 +++++---- packages/nuxt/src/core/runtime/nitro/renderer.ts | 6 ++++-- test/basic.test.ts | 1 + test/bundle.test.ts | 2 +- test/fixtures/basic/pages/error.vue | 1 + 6 files changed, 13 insertions(+), 7 deletions(-) diff --git a/docs/1.getting-started/8.error-handling.md b/docs/1.getting-started/8.error-handling.md index 0a6e7144ee..eba5308944 100644 --- a/docs/1.getting-started/8.error-handling.md +++ b/docs/1.getting-started/8.error-handling.md @@ -41,6 +41,7 @@ This includes: * running Nuxt plugins * processing `app:created` and `app:beforeMount` hooks +* rendering your Vue app to HTML (on the server) * mounting the app (on client-side), though you should handle this case with `onErrorCaptured` or with `vue:error` * processing the `app:mounted` hook diff --git a/packages/nuxt/src/app/composables/cookie.ts b/packages/nuxt/src/app/composables/cookie.ts index e36957a343..353229a197 100644 --- a/packages/nuxt/src/app/composables/cookie.ts +++ b/packages/nuxt/src/app/composables/cookie.ts @@ -48,11 +48,12 @@ export function useCookie (name: string, _opts?: } } const unhook = nuxtApp.hooks.hookOnce('app:rendered', writeFinalCookieValue) - nuxtApp.hooks.hookOnce('app:redirected', () => { - // don't write cookie subsequently when app:rendered is called - unhook() + const writeAndUnhook = () => { + unhook() // don't write cookie subsequently when app:rendered is called return writeFinalCookieValue() - }) + } + nuxtApp.hooks.hookOnce('app:error', writeAndUnhook) + nuxtApp.hooks.hookOnce('app:redirected', writeAndUnhook) } return cookie as CookieRef diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 58b8d13ee0..5a48191660 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -244,9 +244,11 @@ export default defineRenderHandler(async (event) => { writeEarlyHints(event, link) } - const _rendered = await renderer.renderToString(ssrContext).catch((error) => { + const _rendered = await renderer.renderToString(ssrContext).catch(async (error) => { // Use explicitly thrown error in preference to subsequent rendering errors - throw (!ssrError && ssrContext.payload?.error) || error + const _err = (!ssrError && ssrContext.payload?.error) || error + await ssrContext.nuxt?.hooks.callHook('app:error', _err) + throw _err }) await ssrContext.nuxt?.hooks.callHook('app:rendered', { ssrContext }) diff --git a/test/basic.test.ts b/test/basic.test.ts index ee52af0989..14e5a57d8a 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -571,6 +571,7 @@ describe('errors', () => { it('should render a HTML error page', async () => { const res = await fetch('/error') + expect(res.headers.get('Set-Cookie')).toBe('some-error=was%20set; Path=/') expect(await res.text()).toContain('This is a custom error') }) diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 4ecf36a2bb..da2f1f322f 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -45,7 +45,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e it('default server bundle size', async () => { stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"67.2k"') + expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"67.3k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2657k"') diff --git a/test/fixtures/basic/pages/error.vue b/test/fixtures/basic/pages/error.vue index a8fe5801bd..6a97a8e9ce 100644 --- a/test/fixtures/basic/pages/error.vue +++ b/test/fixtures/basic/pages/error.vue @@ -11,6 +11,7 @@ const { data, error } = await useAsyncData(() => { }, { server: true }) if (error.value) { + useCookie('some-error').value = 'was set' throw createError({ statusCode: 422, fatal: true, statusMessage: 'This is a custom error' }) } From 59680dd8302c8d6e5cf2244767bcda0b545c851f Mon Sep 17 00:00:00 2001 From: Andrew Luca <1881266+iamandrewluca@users.noreply.github.com> Date: Thu, 27 Apr 2023 00:36:07 +0300 Subject: [PATCH 106/912] docs: adjust wrong link after repo migration (#20536) --- docs/2.guide/1.concepts/1.auto-imports.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/2.guide/1.concepts/1.auto-imports.md b/docs/2.guide/1.concepts/1.auto-imports.md index 1e2d1f1d19..0f042b5082 100644 --- a/docs/2.guide/1.concepts/1.auto-imports.md +++ b/docs/2.guide/1.concepts/1.auto-imports.md @@ -58,7 +58,7 @@ That means that (with very few exceptions) you cannot use them outside a Nuxt pl If you get an error message like `Nuxt instance is unavailable` then it probably means you are calling a Nuxt composable in the wrong place in the Vue or Nuxt lifecycle. -See the full explanation in this [comment](https://github.com/nuxt/framework/issues/5740#issuecomment-1229197529). +See the full explanation in this [comment](https://github.com/nuxt/nuxt/issues/14269#issuecomment-1397352832). ::NeedContribution :: From 48c034cf02de0aa13f43c8f05af4d58fd1f917ae Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 26 Apr 2023 22:52:37 +0100 Subject: [PATCH 107/912] ci: run nuxt2 nightly release on node 14 again --- .github/workflows/nuxt2-edge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nuxt2-edge.yml b/.github/workflows/nuxt2-edge.yml index ab5d660907..a3f60fc55e 100644 --- a/.github/workflows/nuxt2-edge.yml +++ b/.github/workflows/nuxt2-edge.yml @@ -20,7 +20,7 @@ jobs: run: git fetch --depth=1 origin "+refs/tags/*:refs/tags/*" - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 14 registry-url: 'https://registry.npmjs.org' - name: install run: yarn --check-files --frozen-lockfile --non-interactive From 65a8f4eb3ef1b249a95fd59e323835a96428baff Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 27 Apr 2023 11:31:52 +0100 Subject: [PATCH 108/912] fix(nuxt): restrict access to single renderer outside of test/rootDir (#20543) --- packages/nuxt/src/app/components/nuxt-root.vue | 2 +- .../nuxt/src/app/components/test-component-wrapper.ts | 9 ++++++++- packages/nuxt/src/core/templates.ts | 3 ++- packages/schema/src/config/vite.ts | 2 ++ packages/webpack/package.json | 1 + packages/webpack/src/presets/base.ts | 2 ++ pnpm-lock.yaml | 3 +++ 7 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-root.vue b/packages/nuxt/src/app/components/nuxt-root.vue index 698899bce4..b4c71f871b 100644 --- a/packages/nuxt/src/app/components/nuxt-root.vue +++ b/packages/nuxt/src/app/components/nuxt-root.vue @@ -23,7 +23,7 @@ const nuxtApp = useNuxtApp() const onResolve = nuxtApp.deferHydration() const url = process.server ? nuxtApp.ssrContext.url : window.location.pathname -const SingleRenderer = process.dev && process.server && url.startsWith('/__nuxt_component_test__/') && defineAsyncComponent(() => import('#build/test-component-wrapper.mjs') +const SingleRenderer = process.test && process.dev && process.server && url.startsWith('/__nuxt_component_test__/') && /* #__PURE__ */ defineAsyncComponent(() => import('#build/test-component-wrapper.mjs') .then(r => r.default(process.server ? url : window.location.href))) // Inject default route (outside of pages) as active route diff --git a/packages/nuxt/src/app/components/test-component-wrapper.ts b/packages/nuxt/src/app/components/test-component-wrapper.ts index 676b821e8b..b0430c4755 100644 --- a/packages/nuxt/src/app/components/test-component-wrapper.ts +++ b/packages/nuxt/src/app/components/test-component-wrapper.ts @@ -1,13 +1,20 @@ import { parseURL } from 'ufo' import { defineComponent, h } from 'vue' import { parseQuery } from 'vue-router' +import { resolve } from 'pathe' +// @ts-expect-error virtual file +import { devRootDir } from '#build/nuxt.config.mjs' -export default (url:string) => defineComponent({ +export default (url: string) => defineComponent({ name: 'NuxtTestComponentWrapper', async setup (props, { attrs }) { const query = parseQuery(parseURL(url).search) const urlProps = query.props ? JSON.parse(query.props as string) : {} + const path = resolve(query.path as string) + if (!path.startsWith(devRootDir)) { + throw new Error(`[nuxt] Cannot access path outside of project root directory: \`${path}\`.`) + } const comp = await import(/* @vite-ignore */ query.path as string).then(r => r.default) return () => [ h('div', 'Component Test Wrapper for ' + query.path), diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index f1d941aa13..440c415166 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -299,7 +299,8 @@ export const nuxtConfigTemplate = { return [ ...Object.entries(ctx.nuxt.options.app).map(([k, v]) => `export const ${camelCase('app-' + k)} = ${JSON.stringify(v)}`), `export const renderJsonPayloads = ${!!ctx.nuxt.options.experimental.renderJsonPayloads}`, - `export const devPagesDir = ${ctx.nuxt.options.dev ? JSON.stringify(ctx.nuxt.options.dir.pages) : 'null'}` + `export const devPagesDir = ${ctx.nuxt.options.dev ? JSON.stringify(ctx.nuxt.options.dir.pages) : 'null'}`, + `export const devRootDir = ${ctx.nuxt.options.dev ? JSON.stringify(ctx.nuxt.options.rootDir) : 'null'}` ].join('\n\n') } } diff --git a/packages/schema/src/config/vite.ts b/packages/schema/src/config/vite.ts index f4ace56354..74ad62df50 100644 --- a/packages/schema/src/config/vite.ts +++ b/packages/schema/src/config/vite.ts @@ -1,4 +1,5 @@ import { resolve } from 'pathe' +import { isTest } from 'std-env' import { withoutLeadingSlash } from 'ufo' import { defineUntypedSchema } from 'untyped' @@ -21,6 +22,7 @@ export default defineUntypedSchema({ define: { $resolve: async (val, get) => ({ 'process.dev': await get('dev'), + 'process.test': isTest, ...val || {} }) }, diff --git a/packages/webpack/package.json b/packages/webpack/package.json index d4e1d9d743..8aa163dd01 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -45,6 +45,7 @@ "postcss-import": "^15.1.0", "postcss-loader": "^7.2.4", "postcss-url": "^10.1.3", + "std-env": "^3.3.2", "time-fix-plugin": "^2.0.7", "ufo": "^1.1.1", "unplugin": "^1.3.1", diff --git a/packages/webpack/src/presets/base.ts b/packages/webpack/src/presets/base.ts index e1237b92f0..3cc59e0b31 100644 --- a/packages/webpack/src/presets/base.ts +++ b/packages/webpack/src/presets/base.ts @@ -10,6 +10,7 @@ import FriendlyErrorsWebpackPlugin from '@nuxt/friendly-errors-webpack-plugin' import escapeRegExp from 'escape-string-regexp' import { joinURL } from 'ufo' import type { NuxtOptions } from '@nuxt/schema' +import { isTest } from 'std-env' import type { WarningFilter } from '../plugins/warning-ignore' import WarningIgnorePlugin from '../plugins/warning-ignore' import type { WebpackConfigContext } from '../utils/config' @@ -233,6 +234,7 @@ function getEnv (ctx: WebpackConfigContext) { 'process.env.NODE_ENV': JSON.stringify(ctx.config.mode), 'process.mode': JSON.stringify(ctx.config.mode), 'process.dev': options.dev, + 'process.test': isTest, __NUXT_VERSION__: JSON.stringify(ctx.nuxt._version), 'process.env.VUE_ENV': JSON.stringify(ctx.name), 'process.browser': ctx.isClient, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2ad71d3867..10ac175498 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1044,6 +1044,9 @@ importers: postcss-url: specifier: ^10.1.3 version: 10.1.3(postcss@8.4.23) + std-env: + specifier: ^3.3.2 + version: 3.3.2 time-fix-plugin: specifier: ^2.0.7 version: 2.0.7(webpack@5.80.0) From ecf41537ca41c343235adfa85ae07d537cd5e9b4 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Thu, 27 Apr 2023 12:51:33 +0200 Subject: [PATCH 109/912] fix(nuxt): throw errors when running legacy `asyncData` (#20535) --- packages/nuxt/src/app/composables/component.ts | 6 +++++- test/basic.test.ts | 7 +++++++ .../fixtures/basic/pages/legacy-async-data-fail.vue | 13 +++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/basic/pages/legacy-async-data-fail.vue diff --git a/packages/nuxt/src/app/composables/component.ts b/packages/nuxt/src/app/composables/component.ts index 9213550011..faf4a0abcf 100644 --- a/packages/nuxt/src/app/composables/component.ts +++ b/packages/nuxt/src/app/composables/component.ts @@ -5,6 +5,7 @@ import type { NuxtApp } from '../nuxt' import { callWithNuxt, useNuxtApp } from '../nuxt' import { useAsyncData } from './asyncData' import { useRoute } from './router' +import { createError } from './error' export const NuxtComponentIndicator = '__nuxt_component' @@ -14,7 +15,10 @@ async function runLegacyAsyncData (res: Record | Promise '') : fetchKey || route.fullPath - const { data } = await useAsyncData(`options:asyncdata:${key}`, () => callWithNuxt(nuxt, fn, [nuxt])) + const { data, error } = await useAsyncData(`options:asyncdata:${key}`, () => callWithNuxt(nuxt, fn, [nuxt])) + if (error.value) { + throw createError(error.value) + } if (data.value && typeof data.value === 'object') { Object.assign(await res, toRefs(reactive(data.value))) } else if (process.dev) { diff --git a/test/basic.test.ts b/test/basic.test.ts index 14e5a57d8a..0755a888cf 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -353,6 +353,13 @@ describe('pages', () => { await page.waitForLoadState('networkidle') expect(await page.locator('#async-server-component-count').innerHTML()).toContain(('1')) expect(await page.locator('#long-async-component-count').innerHTML()).toContain('1') + await page.close() + }) + + it('/legacy-async-data-fail', async () => { + const response = await fetch('/legacy-async-data-fail').then(r => r.text()) + expect(response).not.toContain('don\'t look at this') + expect(response).toContain('OH NNNNNNOOOOOOOOOOO') }) }) diff --git a/test/fixtures/basic/pages/legacy-async-data-fail.vue b/test/fixtures/basic/pages/legacy-async-data-fail.vue new file mode 100644 index 0000000000..072c4ae000 --- /dev/null +++ b/test/fixtures/basic/pages/legacy-async-data-fail.vue @@ -0,0 +1,13 @@ + + + From 98b20c45c8f3aaa2c6cfaaffd50a54e933846796 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 28 Apr 2023 11:14:42 +0200 Subject: [PATCH 110/912] fix(nuxt): transform `#components` imports into direct component imports (#20547) Co-authored-by: Daniel Roe --- packages/nuxt/src/components/module.ts | 31 ++++---- packages/nuxt/src/components/templates.ts | 63 ++++++--------- packages/nuxt/src/components/transform.ts | 95 +++++++++++++++++++++++ test/bundle.test.ts | 7 +- 4 files changed, 135 insertions(+), 61 deletions(-) create mode 100644 packages/nuxt/src/components/transform.ts diff --git a/packages/nuxt/src/components/module.ts b/packages/nuxt/src/components/module.ts index 328ef7321a..5372d5faa4 100644 --- a/packages/nuxt/src/components/module.ts +++ b/packages/nuxt/src/components/module.ts @@ -1,14 +1,15 @@ import { statSync } from 'node:fs' import { relative, resolve } from 'pathe' -import { addPluginTemplate, addTemplate, defineNuxtModule, resolveAlias, updateTemplates } from '@nuxt/kit' +import { addPluginTemplate, addTemplate, addVitePlugin, addWebpackPlugin, defineNuxtModule, resolveAlias, updateTemplates } from '@nuxt/kit' import type { Component, ComponentsDir, ComponentsOptions } from 'nuxt/schema' import { distDir } from '../dirs' import { clientFallbackAutoIdPlugin } from './client-fallback-auto-id' -import { componentsIslandsTemplate, componentsPluginTemplate, componentsTemplate, componentsTypeTemplate } from './templates' +import { componentNamesTemplate, componentsIslandsTemplate, componentsPluginTemplate, componentsTypeTemplate } from './templates' import { scanComponents } from './scan' import { loaderPlugin } from './loader' import { TreeShakeTemplatePlugin } from './tree-shake' +import { createTransformPlugin } from './transform' const isPureObjectOrString = (val: any) => (!Array.isArray(val) && typeof val === 'object') || typeof val === 'string' const isDirectory = (p: string) => { try { return statSync(p).isDirectory() } catch (_e) { return false } } @@ -18,7 +19,7 @@ function compareDirByPathLength ({ path: pathA }: { path: string }, { path: path const DEFAULT_COMPONENTS_DIRS_RE = /\/components(\/global|\/islands)?$/ -type getComponentsT = (mode?: 'client' | 'server' | 'all') => Component[] +export type getComponentsT = (mode?: 'client' | 'server' | 'all') => Component[] export default defineNuxtModule({ meta: { @@ -115,10 +116,8 @@ export default defineNuxtModule({ addTemplate({ ...componentsTypeTemplate, options: { getComponents } }) // components.plugin.mjs addPluginTemplate({ ...componentsPluginTemplate, options: { getComponents } } as any) - // components.server.mjs - addTemplate({ ...componentsTemplate, filename: 'components.server.mjs', options: { getComponents, mode: 'server' } }) - // components.client.mjs - addTemplate({ ...componentsTemplate, filename: 'components.client.mjs', options: { getComponents, mode: 'client' } }) + // component-names.mjs + addTemplate({ ...componentNamesTemplate, options: { getComponents, mode: 'all' } }) // components.islands.mjs if (nuxt.options.experimental.componentIslands) { addTemplate({ ...componentsIslandsTemplate, filename: 'components.islands.mjs', options: { getComponents } }) @@ -126,16 +125,14 @@ export default defineNuxtModule({ addTemplate({ filename: 'components.islands.mjs', getContents: () => 'export default {}' }) } - nuxt.hook('vite:extendConfig', (config, { isClient }) => { - const mode = isClient ? 'client' : 'server' - ; (config.resolve!.alias as any)['#components'] = resolve(nuxt.options.buildDir, `components.${mode}.mjs`) - }) - nuxt.hook('webpack:config', (configs) => { - for (const config of configs) { - const mode = config.name === 'server' ? 'server' : 'client' - ; (config.resolve!.alias as any)['#components'] = resolve(nuxt.options.buildDir, `components.${mode}.mjs`) - } - }) + const unpluginServer = createTransformPlugin(nuxt, getComponents, 'server') + const unpluginClient = createTransformPlugin(nuxt, getComponents, 'client') + + addVitePlugin(unpluginServer.vite(), { server: true, client: false }) + addVitePlugin(unpluginClient.vite(), { server: false, client: true }) + + addWebpackPlugin(unpluginServer.webpack(), { server: true, client: false }) + addWebpackPlugin(unpluginClient.webpack(), { server: false, client: true }) // Do not prefetch global components chunks nuxt.hook('build:manifest', (manifest) => { diff --git a/packages/nuxt/src/components/templates.ts b/packages/nuxt/src/components/templates.ts index 7fd32f3cb7..b91ba871c6 100644 --- a/packages/nuxt/src/components/templates.ts +++ b/packages/nuxt/src/components/templates.ts @@ -1,5 +1,5 @@ import { isAbsolute, relative } from 'pathe' -import { genDynamicImport, genExport, genImport, genObjectFromRawEntries } from 'knitwork' +import { genDynamicImport } from 'knitwork' import type { Component, Nuxt, NuxtPluginTemplate, NuxtTemplate } from 'nuxt/schema' export interface ComponentsTemplateContext { @@ -25,59 +25,42 @@ const createImportMagicComments = (options: ImportMagicCommentsOptions) => { ].filter(Boolean).join(', ') } +const emptyComponentsPlugin = ` +import { defineNuxtPlugin } from '#app/nuxt' +export default defineNuxtPlugin({ + name: 'nuxt:global-components', +}) +` + export const componentsPluginTemplate: NuxtPluginTemplate = { filename: 'components.plugin.mjs', getContents ({ options }) { + const globalComponents = options.getComponents().filter(c => c.global) + if (!globalComponents.length) { return emptyComponentsPlugin } + return `import { defineNuxtPlugin } from '#app/nuxt' -import { lazyGlobalComponents } from '#components' +import { ${globalComponents.map(c => 'Lazy' + c.pascalName).join(', ')} } from '#components' +const lazyGlobalComponents = [ + ${globalComponents.map(c => `["${c.pascalName}", Lazy${c.pascalName}]`).join(',\n')} +] export default defineNuxtPlugin({ - name: 'nuxt:global-components',` + - (options.getComponents().filter(c => c.global).length - ? ` + name: 'nuxt:global-components', setup (nuxtApp) { - for (const name in lazyGlobalComponents) { - nuxtApp.vueApp.component(name, lazyGlobalComponents[name]) - nuxtApp.vueApp.component('Lazy' + name, lazyGlobalComponents[name]) + for (const [name, component] of lazyGlobalComponents) { + nuxtApp.vueApp.component(name, component) + nuxtApp.vueApp.component('Lazy' + name, component) } - }` - : '') + ` + } }) ` } } -export const componentsTemplate: NuxtTemplate = { - // components.[server|client].mjs' +export const componentNamesTemplate: NuxtPluginTemplate = { + filename: 'component-names.mjs', getContents ({ options }) { - const imports = new Set() - imports.add('import { defineAsyncComponent } from \'vue\'') - - let num = 0 - const components = options.getComponents(options.mode).filter(c => !c.island).flatMap((c) => { - const exp = c.export === 'default' ? 'c.default || c' : `c['${c.export}']` - const comment = createImportMagicComments(c) - - const isClient = c.mode === 'client' - const definitions = [] - if (isClient) { - num++ - const identifier = `__nuxt_component_${num}` - imports.add(genImport('#app/components/client-only', [{ name: 'createClientOnly' }])) - imports.add(genImport(c.filePath, [{ name: c.export, as: identifier }])) - definitions.push(`export const ${c.pascalName} = /* #__PURE__ */ createClientOnly(${identifier})`) - } else { - definitions.push(genExport(c.filePath, [{ name: c.export, as: c.pascalName }])) - } - definitions.push(`export const Lazy${c.pascalName} = /* #__PURE__ */ defineAsyncComponent(${genDynamicImport(c.filePath, { comment })}.then(c => ${isClient ? `createClientOnly(${exp})` : exp}))`) - return definitions - }) - return [ - ...imports, - ...components, - `export const lazyGlobalComponents = ${genObjectFromRawEntries(options.getComponents().filter(c => c.global).map(c => [c.pascalName, `Lazy${c.pascalName}`]))}`, - `export const componentNames = ${JSON.stringify(options.getComponents().filter(c => !c.island).map(c => c.pascalName))}` - ].join('\n') + return `export const componentNames = ${JSON.stringify(options.getComponents().filter(c => !c.island).map(c => c.pascalName))}` } } diff --git a/packages/nuxt/src/components/transform.ts b/packages/nuxt/src/components/transform.ts new file mode 100644 index 0000000000..d16b7b3538 --- /dev/null +++ b/packages/nuxt/src/components/transform.ts @@ -0,0 +1,95 @@ +import { isIgnored } from '@nuxt/kit' +import type { Nuxt } from 'nuxt/schema' +import type { Import } from 'unimport' +import { createUnimport } from 'unimport' +import { createUnplugin } from 'unplugin' +import { parseURL } from 'ufo' +import { parseQuery } from 'vue-router' +import type { getComponentsT } from './module' + +export function createTransformPlugin (nuxt: Nuxt, getComponents: getComponentsT, mode: 'client' | 'server' | 'all') { + const componentUnimport = createUnimport({ + imports: [ + { + name: 'componentNames', + from: '#build/component-names' + } + ], + virtualImports: ['#components'] + }) + + function getComponentsImports (): Import[] { + const components = getComponents(mode) + return components.flatMap((c): Import[] => { + return [ + { + as: c.pascalName, + from: c.filePath + (c.mode === 'client' ? '?component=client' : ''), + name: 'default' + }, + { + as: 'Lazy' + c.pascalName, + from: c.filePath + '?component=' + [c.mode === 'client' ? 'client' : '', 'async'].filter(Boolean).join(','), + name: 'default' + } + ] + }) + } + + return createUnplugin(() => ({ + name: 'nuxt:components:imports', + transformInclude (id) { + return !isIgnored(id) + }, + async transform (code, id) { + // Virtual component wrapper + if (id.includes('?component')) { + const { search } = parseURL(id) + const query = parseQuery(search) + const mode = query.component + const bare = id.replace(/\?.*/, '') + if (mode === 'async') { + return [ + 'import { defineAsyncComponent } from "vue"', + `export default defineAsyncComponent(() => import(${JSON.stringify(bare)}).then(r => r.default))` + ].join('\n') + } else if (mode === 'client') { + return [ + `import __component from ${JSON.stringify(bare)}`, + 'import { createClientOnly } from "#app/components/client-only"', + 'export default createClientOnly(__component)' + ].join('\n') + } else if (mode === 'client,async') { + return [ + 'import { defineAsyncComponent } from "vue"', + 'import { createClientOnly } from "#app/components/client-only"', + `export default defineAsyncComponent(() => import(${JSON.stringify(bare)}).then(r => createClientOnly(r.default)))` + ].join('\n') + } else { + throw new Error(`Unknown component mode: ${mode}, this might be an internal bug of Nuxt.`) + } + } + + if (!code.includes('#components')) { + return null + } + + componentUnimport.modifyDynamicImports((imports) => { + imports.length = 0 + imports.push(...getComponentsImports()) + return imports + }) + + const result = await componentUnimport.injectImports(code, id, { autoImport: false, transformVirtualImports: true }) + if (!result) { + return null + } + return { + code: result.code, + map: nuxt.options.sourcemap + ? result.s.generateMap({ hires: true }) + : undefined + } + } + })) +} diff --git a/test/bundle.test.ts b/test/bundle.test.ts index da2f1f322f..0c5ffe460c 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -34,7 +34,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e it('default client bundle size', async () => { stats.client = await analyzeSizes('**/*.js', publicDir) - expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"94.4k"') + expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"94.3k"') expect(stats.client.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -45,10 +45,10 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e it('default server bundle size', async () => { stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"67.3k"') + expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"66.8k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2657k"') + expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2654k"') const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -76,7 +76,6 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e "h3", "hookable", "iron-webcrypto", - "klona", "node-fetch-native", "ofetch", "ohash", From f73bb1de0a9b22714810cff4999f898c77eafa67 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 28 Apr 2023 11:18:03 +0100 Subject: [PATCH 111/912] fix(nuxt): return `RenderResponse` for redirects (#20496) --- packages/nuxt/src/app/composables/cookie.ts | 3 +- packages/nuxt/src/app/composables/router.ts | 29 ++++++++++++------- packages/nuxt/src/app/nuxt.ts | 3 ++ packages/nuxt/src/app/plugins/router.ts | 5 +--- .../nuxt/src/core/runtime/nitro/renderer.ts | 9 ++++-- test/bundle.test.ts | 2 +- .../basic/pages/navigate-to-external.vue | 5 ++++ .../basic/pages/navigate-to-redirect.vue | 4 +++ test/fixtures/basic/types.ts | 2 +- 9 files changed, 42 insertions(+), 20 deletions(-) diff --git a/packages/nuxt/src/app/composables/cookie.ts b/packages/nuxt/src/app/composables/cookie.ts index 353229a197..a578b85e49 100644 --- a/packages/nuxt/src/app/composables/cookie.ts +++ b/packages/nuxt/src/app/composables/cookie.ts @@ -27,7 +27,7 @@ const CookieDefaults: CookieOptions = { encode: val => encodeURIComponent(typeof val === 'string' ? val : JSON.stringify(val)) } -export function useCookie (name: string, _opts?: CookieOptions): CookieRef { +export function useCookie (name: string, _opts?: CookieOptions): CookieRef { const opts = { ...CookieDefaults, ..._opts } const cookies = readRawCookies(opts) || {} @@ -53,7 +53,6 @@ export function useCookie (name: string, _opts?: return writeFinalCookieValue() } nuxtApp.hooks.hookOnce('app:error', writeAndUnhook) - nuxtApp.hooks.hookOnce('app:redirected', writeAndUnhook) } return cookie as CookieRef diff --git a/packages/nuxt/src/app/composables/router.ts b/packages/nuxt/src/app/composables/router.ts index 817265a7fb..d4a9852aa0 100644 --- a/packages/nuxt/src/app/composables/router.ts +++ b/packages/nuxt/src/app/composables/router.ts @@ -1,7 +1,7 @@ import { getCurrentInstance, inject, onUnmounted } from 'vue' import type { Ref } from 'vue' import type { NavigationFailure, NavigationGuard, RouteLocationNormalized, RouteLocationNormalizedLoaded, RouteLocationPathRaw, RouteLocationRaw, Router } from 'vue-router' -import { sendRedirect } from 'h3' +import { sanitizeStatusCode } from 'h3' import { hasProtocol, joinURL, parseURL } from 'ufo' import { useNuxtApp, useRuntimeConfig } from '../nuxt' @@ -86,7 +86,7 @@ export interface NavigateToOptions { external?: boolean } -export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: NavigateToOptions): Promise | RouteLocationRaw => { +export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: NavigateToOptions): Promise | false | void | RouteLocationRaw => { if (!to) { to = '/' } @@ -111,17 +111,26 @@ export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: Na if (process.server) { const nuxtApp = useNuxtApp() - if (nuxtApp.ssrContext && nuxtApp.ssrContext.event) { + if (nuxtApp.ssrContext) { const fullPath = typeof to === 'string' || isExternal ? toPath : router.resolve(to).fullPath || '/' - const redirectLocation = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath) - const redirect = () => nuxtApp.callHook('app:redirected') - .then(() => sendRedirect(nuxtApp.ssrContext!.event, redirectLocation, options?.redirectCode || 302)) - .then(() => inMiddleware ? /* abort route navigation */ false : undefined) + const location = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath) - // We wait to perform the redirect in case any other middleware will intercept the redirect - // and redirect further. + async function redirect () { + // TODO: consider deprecating in favour of `app:rendered` and removing + await nuxtApp.callHook('app:redirected') + const encodedLoc = location.replace(/"/g, '%22') + nuxtApp.ssrContext!._renderResponse = { + statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302), + body: ``, + headers: { location } + } + return inMiddleware ? /* abort route navigation */ false : undefined + } + + // We wait to perform the redirect last in case any other middleware will intercept the redirect + // and redirect somewhere else instead. if (!isExternal && inMiddleware) { - router.beforeEach(final => (final.fullPath === fullPath) ? redirect() : undefined) + router.afterEach(final => (final.fullPath === fullPath) ? redirect() : undefined) return to } return redirect() diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index 8716cd0d90..3c83b9680a 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -8,6 +8,7 @@ import { getContext } from 'unctx' import type { SSRContext } from 'vue-bundle-renderer/runtime' import type { H3Event } from 'h3' import type { AppConfig, AppConfigInput, RuntimeConfig } from 'nuxt/schema' +import type { RenderResponse } from 'nitropack' // eslint-disable-next-line import/no-restricted-paths import type { NuxtIslandContext } from '../core/runtime/nitro/renderer' @@ -61,6 +62,8 @@ export interface NuxtSSRContext extends SSRContext { renderMeta?: () => Promise | NuxtMeta islandContext?: NuxtIslandContext /** @internal */ + _renderResponse?: Partial + /** @internal */ _payloadReducers: Record any> } diff --git a/packages/nuxt/src/app/plugins/router.ts b/packages/nuxt/src/app/plugins/router.ts index 1560428b35..039fd9b893 100644 --- a/packages/nuxt/src/app/plugins/router.ts +++ b/packages/nuxt/src/app/plugins/router.ts @@ -5,7 +5,6 @@ import { callWithNuxt, defineNuxtPlugin, useRuntimeConfig } from '../nuxt' import { clearError, showError } from '../composables/error' import { navigateTo } from '../composables/router' import { useState } from '../composables/state' -import { useRequestEvent } from '../composables/ssr' // @ts-expect-error virtual file import { globalMiddleware } from '#build/middleware' @@ -258,9 +257,7 @@ export default defineNuxtPlugin<{ route: Route, router: Router }>({ await router.replace(initialURL) if (!isEqual(route.fullPath, initialURL)) { - const event = await callWithNuxt(nuxtApp, useRequestEvent) - const options = { redirectCode: event.node.res.statusCode !== 200 ? event.node.res.statusCode || 302 : 302 } - await callWithNuxt(nuxtApp, navigateTo, [route.fullPath, options]) + await callWithNuxt(nuxtApp, navigateTo, [route.fullPath]) } }) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 5a48191660..77f3a1378b 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -167,7 +167,7 @@ const ROOT_NODE_REGEX = new RegExp(`^<${appRootTag} id="${appRootId}">([\\s\\S]* const PRERENDER_NO_SSR_ROUTES = new Set(['/index.html', '/200.html', '/404.html']) -export default defineRenderHandler(async (event) => { +export default defineRenderHandler(async (event): Promise> => { const nitroApp = useNitroApp() // Whether we're rendering an error page @@ -252,7 +252,12 @@ export default defineRenderHandler(async (event) => { }) await ssrContext.nuxt?.hooks.callHook('app:rendered', { ssrContext }) - if (event.node.res.headersSent || event.node.res.writableEnded) { return } + if (ssrContext._renderResponse) { return ssrContext._renderResponse } + + if (event.node.res.headersSent || event.node.res.writableEnded) { + // @ts-expect-error TODO: handle additional cases + return + } // Handle errors if (ssrContext.payload?.error && !ssrError) { diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 0c5ffe460c..eab3032392 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -34,7 +34,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e it('default client bundle size', async () => { stats.client = await analyzeSizes('**/*.js', publicDir) - expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"94.3k"') + expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"94.2k"') expect(stats.client.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", diff --git a/test/fixtures/basic/pages/navigate-to-external.vue b/test/fixtures/basic/pages/navigate-to-external.vue index f3a8b548a8..f18ac00b50 100644 --- a/test/fixtures/basic/pages/navigate-to-external.vue +++ b/test/fixtures/basic/pages/navigate-to-external.vue @@ -3,5 +3,10 @@ diff --git a/test/fixtures/basic/pages/navigate-to-redirect.vue b/test/fixtures/basic/pages/navigate-to-redirect.vue index 9e934988b7..f9a3a59eb5 100644 --- a/test/fixtures/basic/pages/navigate-to-redirect.vue +++ b/test/fixtures/basic/pages/navigate-to-redirect.vue @@ -9,4 +9,8 @@ definePageMeta({ return navigateTo({ path: '/' }, { redirectCode: 307 }) } }) +console.log('running setup') +useNuxtApp().hook('app:rendered', () => { + throw new Error('this should not run') +}) diff --git a/test/fixtures/basic/types.ts b/test/fixtures/basic/types.ts index 20ee6a1bbc..d84ed8ec5c 100644 --- a/test/fixtures/basic/types.ts +++ b/test/fixtures/basic/types.ts @@ -96,7 +96,7 @@ describe('middleware', () => { addRouteMiddleware('example', (to, from) => { expectTypeOf(to).toEqualTypeOf() expectTypeOf(from).toEqualTypeOf() - expectTypeOf(navigateTo).toEqualTypeOf<(to: RouteLocationRaw | null | undefined, options?: NavigateToOptions) => RouteLocationRaw | Promise>() + expectTypeOf(navigateTo).toEqualTypeOf <(to: RouteLocationRaw | null | undefined, options ?: NavigateToOptions) => RouteLocationRaw | void | false | Promise>() navigateTo('/') abortNavigation() abortNavigation('error string') From d8176f11ebe7447c9f9eeed59d7ab0ce2464225f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 28 Apr 2023 11:18:51 +0100 Subject: [PATCH 112/912] chore(deps): update all non-major dependencies (main) (#20514) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- package.json | 10 +- packages/kit/package.json | 4 +- packages/nuxt/package.json | 4 +- packages/schema/package.json | 6 +- packages/test-utils/package.json | 4 +- packages/vite/package.json | 4 +- packages/webpack/package.json | 4 +- pnpm-lock.yaml | 368 +++++++++++++++---------------- 8 files changed, 202 insertions(+), 202 deletions(-) diff --git a/package.json b/package.json index 438e6be0c5..2880b7be5c 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "nuxt": "workspace:*", "nuxt3": "workspace:nuxt@*", "unbuild": "^1.2.1", - "vite": "^4.3.2", + "vite": "^4.3.3", "vue": "3.2.47", "magic-string": "^0.30.0" }, @@ -46,7 +46,7 @@ "@nuxt/webpack-builder": "workspace:*", "@nuxtjs/eslint-config-typescript": "^12.0.0", "@types/crawler": "^1.2.2", - "@types/node": "^18.16.0", + "@types/node": "^18.16.2", "@types/semver": "^7.3.13", "case-police": "^0.5.14", "changelogen": "^0.5.3", @@ -66,18 +66,18 @@ "nuxt": "workspace:*", "ofetch": "^1.0.1", "pathe": "^1.1.0", - "playwright": "^1.32.3", + "playwright": "^1.33.0", "rimraf": "^5.0.0", "semver": "^7.5.0", "std-env": "^3.3.2", "typescript": "^5.0.4", "ufo": "^1.1.1", "unbuild": "^1.2.1", - "vite": "^4.3.2", + "vite": "^4.3.3", "vitest": "^0.30.1", "vue": "3.2.47", "vue-eslint-parser": "^9.1.1", - "vue-tsc": "^1.4.4" + "vue-tsc": "^1.6.1" }, "packageManager": "pnpm@8.3.1", "engines": { diff --git a/packages/kit/package.json b/packages/kit/package.json index f6a42ae5bc..6ebb93071e 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -45,9 +45,9 @@ "@types/semver": "^7.3.13", "nitropack": "^2.3.3", "unbuild": "latest", - "vite": "^4.3.2", + "vite": "^4.3.3", "vitest": "^0.30.1", - "webpack": "^5.80.0" + "webpack": "^5.81.0" }, "engines": { "node": "^14.18.0 || >=16.10.0" diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index c277fc6957..4bbbe0fd41 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -104,10 +104,10 @@ "@types/estree": "^1.0.1", "@types/fs-extra": "^11.0.1", "@types/prompts": "^2.4.4", - "@vitejs/plugin-vue": "^4.2.0", + "@vitejs/plugin-vue": "^4.2.1", "acorn": "^8.8.2", "unbuild": "latest", - "vite": "^4.3.2", + "vite": "^4.3.3", "vitest": "^0.30.1" }, "peerDependencies": { diff --git a/packages/schema/package.json b/packages/schema/package.json index 755f98be09..f49bb0c968 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -23,18 +23,18 @@ "devDependencies": { "@nuxt/telemetry": "^2.2.0", "@unhead/schema": "^1.1.26", - "@vitejs/plugin-vue": "^4.2.0", + "@vitejs/plugin-vue": "^4.2.1", "@vitejs/plugin-vue-jsx": "^3.0.1", "h3": "^1.6.4", "ignore": "^5.2.4", "nitropack": "^2.3.3", "unbuild": "latest", "unctx": "^2.3.0", - "vite": "~4.3.2", + "vite": "~4.3.3", "vue": "3.2.47", "vue-bundle-renderer": "^1.0.3", "vue-router": "^4.1.6", - "webpack": "^5.80.0" + "webpack": "^5.81.0" }, "dependencies": { "defu": "^6.1.2", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index b8ebd18868..b2865a12c3 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -34,13 +34,13 @@ }, "devDependencies": { "@jest/globals": "^29.5.0", - "playwright": "^1.32.3", + "playwright": "^1.33.0", "unbuild": "latest", "vitest": "^0.30.1" }, "peerDependencies": { "@jest/globals": "^29.5.0", - "playwright": "^1.32.3", + "playwright": "^1.33.0", "vitest": "^0.30.1", "vue": "^3.2.47" }, diff --git a/packages/vite/package.json b/packages/vite/package.json index cb7fa11ed0..c212dbdb75 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -26,7 +26,7 @@ "dependencies": { "@nuxt/kit": "workspace:../kit", "@rollup/plugin-replace": "^5.0.2", - "@vitejs/plugin-vue": "^4.2.0", + "@vitejs/plugin-vue": "^4.2.1", "@vitejs/plugin-vue-jsx": "^3.0.1", "autoprefixer": "^10.4.14", "clear": "^0.1.0", @@ -54,7 +54,7 @@ "strip-literal": "^1.0.1", "ufo": "^1.1.1", "unplugin": "^1.3.1", - "vite": "~4.3.2", + "vite": "~4.3.3", "vite-node": "^0.30.1", "vite-plugin-checker": "^0.5.6", "vue-bundle-renderer": "^1.0.3" diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 8aa163dd01..ece88e9bae 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -51,8 +51,8 @@ "unplugin": "^1.3.1", "url-loader": "^4.1.1", "vue-bundle-renderer": "^1.0.3", - "vue-loader": "^17.0.1", - "webpack": "^5.80.0", + "vue-loader": "^17.1.0", + "webpack": "^5.81.0", "webpack-bundle-analyzer": "^4.8.0", "webpack-dev-middleware": "^6.0.2", "webpack-hot-middleware": "^2.25.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10ac175498..b89cd58db9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ overrides: nuxt: workspace:* nuxt3: workspace:nuxt@* unbuild: ^1.2.1 - vite: ^4.3.2 + vite: ^4.3.3 vue: 3.2.47 magic-string: ^0.30.0 @@ -34,8 +34,8 @@ importers: specifier: ^1.2.2 version: 1.2.2 '@types/node': - specifier: ^18.16.0 - version: 18.16.0 + specifier: ^18.16.2 + version: 18.16.2 '@types/semver': specifier: ^7.3.13 version: 7.3.13 @@ -94,8 +94,8 @@ importers: specifier: ^1.1.0 version: 1.1.0 playwright: - specifier: ^1.32.3 - version: 1.32.3 + specifier: ^1.33.0 + version: 1.33.0 rimraf: specifier: ^5.0.0 version: 5.0.0 @@ -115,11 +115,11 @@ importers: specifier: ^1.2.1 version: 1.2.1 vite: - specifier: ^4.3.2 - version: 4.3.2(@types/node@18.16.0) + specifier: ^4.3.3 + version: 4.3.3(@types/node@18.16.2) vitest: specifier: ^0.30.1 - version: 0.30.1(playwright@1.32.3) + version: 0.30.1(playwright@1.33.0) vue: specifier: 3.2.47 version: 3.2.47 @@ -127,14 +127,14 @@ importers: specifier: ^9.1.1 version: 9.1.1(eslint@8.39.0) vue-tsc: - specifier: ^1.4.4 - version: 1.4.4(typescript@5.0.4) + specifier: ^1.6.1 + version: 1.6.1(typescript@5.0.4) examples/advanced/config-extends: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -143,7 +143,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -152,7 +152,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -167,13 +167,13 @@ importers: version: link:../../../packages/nuxt vitest: specifier: latest - version: 0.30.1(playwright@1.32.3) + version: 0.30.1(playwright@1.33.0) examples/app-config: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../packages/nuxt @@ -182,7 +182,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -191,7 +191,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -200,7 +200,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -209,7 +209,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -218,7 +218,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -227,7 +227,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -236,7 +236,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -245,7 +245,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -254,7 +254,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -263,7 +263,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -278,7 +278,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -287,7 +287,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -296,7 +296,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -305,7 +305,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -314,7 +314,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -323,7 +323,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -332,7 +332,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -341,7 +341,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -350,7 +350,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -359,7 +359,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -368,7 +368,7 @@ importers: devDependencies: '@nuxt/ui': specifier: ^0.3.3 - version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0) + version: 0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0) nuxt: specifier: workspace:* version: link:../../../packages/nuxt @@ -446,14 +446,14 @@ importers: specifier: ^1.2.1 version: 1.2.1 vite: - specifier: ^4.3.2 - version: 4.3.2(@types/node@18.16.0) + specifier: ^4.3.3 + version: 4.3.3(@types/node@18.16.2) vitest: specifier: ^0.30.1 - version: 0.30.1(playwright@1.32.3) + version: 0.30.1(playwright@1.33.0) webpack: - specifier: ^5.80.0 - version: 5.80.0 + specifier: ^5.81.0 + version: 5.81.0 packages/nuxi: optionalDependencies: @@ -577,7 +577,7 @@ importers: version: link:../vite '@types/node': specifier: ^14.18.0 || >=16.10.0 - version: 18.16.0 + version: 18.16.2 '@unhead/ssr': specifier: ^1.1.26 version: 1.1.26 @@ -712,8 +712,8 @@ importers: specifier: ^2.4.4 version: 2.4.4 '@vitejs/plugin-vue': - specifier: ^4.2.0 - version: 4.2.0(vite@4.3.2)(vue@3.2.47) + specifier: ^4.2.1 + version: 4.2.1(vite@4.3.3)(vue@3.2.47) acorn: specifier: ^8.8.2 version: 8.8.2 @@ -721,11 +721,11 @@ importers: specifier: ^1.2.1 version: 1.2.1 vite: - specifier: ^4.3.2 - version: 4.3.2(@types/node@18.16.0) + specifier: ^4.3.3 + version: 4.3.3(@types/node@18.16.2) vitest: specifier: ^0.30.1 - version: 0.30.1(playwright@1.32.3) + version: 0.30.1(playwright@1.33.0) packages/schema: dependencies: @@ -764,11 +764,11 @@ importers: specifier: ^1.1.26 version: 1.1.26 '@vitejs/plugin-vue': - specifier: ^4.2.0 - version: 4.2.0(vite@4.3.2)(vue@3.2.47) + specifier: ^4.2.1 + version: 4.2.1(vite@4.3.3)(vue@3.2.47) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.3.2)(vue@3.2.47) + version: 3.0.1(vite@4.3.3)(vue@3.2.47) h3: specifier: ^1.6.4 version: 1.6.4 @@ -785,8 +785,8 @@ importers: specifier: ^2.3.0 version: 2.3.0 vite: - specifier: ^4.3.2 - version: 4.3.2(@types/node@18.16.0) + specifier: ^4.3.3 + version: 4.3.3(@types/node@18.16.2) vue: specifier: 3.2.47 version: 3.2.47 @@ -797,8 +797,8 @@ importers: specifier: ^4.1.6 version: 4.1.6(vue@3.2.47) webpack: - specifier: ^5.80.0 - version: 5.80.0 + specifier: ^5.81.0 + version: 5.81.0 packages/test-utils: dependencies: @@ -837,14 +837,14 @@ importers: specifier: ^29.5.0 version: 29.5.0 playwright: - specifier: ^1.32.3 - version: 1.32.3 + specifier: ^1.33.0 + version: 1.33.0 unbuild: specifier: ^1.2.1 version: 1.2.1 vitest: specifier: ^0.30.1 - version: 0.30.1(playwright@1.32.3) + version: 0.30.1(playwright@1.33.0) packages/vite: dependencies: @@ -855,11 +855,11 @@ importers: specifier: ^5.0.2 version: 5.0.2(rollup@3.21.0) '@vitejs/plugin-vue': - specifier: ^4.2.0 - version: 4.2.0(vite@4.3.2)(vue@3.2.47) + specifier: ^4.2.1 + version: 4.2.1(vite@4.3.3)(vue@3.2.47) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.3.2)(vue@3.2.47) + version: 3.0.1(vite@4.3.3)(vue@3.2.47) autoprefixer: specifier: ^10.4.14 version: 10.4.14(postcss@8.4.23) @@ -939,14 +939,14 @@ importers: specifier: ^1.3.1 version: 1.3.1 vite: - specifier: ^4.3.2 - version: 4.3.2(@types/node@18.16.0) + specifier: ^4.3.3 + version: 4.3.3(@types/node@18.16.2) vite-node: specifier: ^0.30.1 - version: 0.30.1(@types/node@18.16.0) + version: 0.30.1(@types/node@18.16.2) vite-plugin-checker: specifier: ^0.5.6 - version: 0.5.6(eslint@8.39.0)(typescript@5.0.4)(vite@4.3.2)(vue-tsc@1.4.4) + version: 0.5.6(eslint@8.39.0)(typescript@5.0.4)(vite@4.3.3)(vue-tsc@1.6.1) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 @@ -968,7 +968,7 @@ importers: dependencies: '@nuxt/friendly-errors-webpack-plugin': specifier: ^2.5.2 - version: 2.5.2(webpack@5.80.0) + version: 2.5.2(webpack@5.81.0) '@nuxt/kit': specifier: workspace:* version: link:../kit @@ -977,16 +977,16 @@ importers: version: 10.4.14(postcss@8.4.23) css-loader: specifier: ^6.7.3 - version: 6.7.3(webpack@5.80.0) + version: 6.7.3(webpack@5.81.0) css-minimizer-webpack-plugin: specifier: ^5.0.0 - version: 5.0.0(webpack@5.80.0) + version: 5.0.0(webpack@5.81.0) cssnano: specifier: ^6.0.0 version: 6.0.0(postcss@8.4.23) esbuild-loader: specifier: ^3.0.1 - version: 3.0.1(webpack@5.80.0) + version: 3.0.1(webpack@5.81.0) escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -995,10 +995,10 @@ importers: version: 3.0.3 file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.80.0) + version: 6.2.0(webpack@5.81.0) fork-ts-checker-webpack-plugin: specifier: ^8.0.0 - version: 8.0.0(typescript@5.0.4)(webpack@5.80.0) + version: 8.0.0(typescript@5.0.4)(webpack@5.81.0) fs-extra: specifier: ^11.1.1 version: 11.1.1 @@ -1019,7 +1019,7 @@ importers: version: 3.5.1 mini-css-extract-plugin: specifier: ^2.7.5 - version: 2.7.5(webpack@5.80.0) + version: 2.7.5(webpack@5.81.0) mlly: specifier: ^1.2.0 version: 1.2.0 @@ -1040,7 +1040,7 @@ importers: version: 15.1.0(postcss@8.4.23) postcss-loader: specifier: ^7.2.4 - version: 7.2.4(@types/node@18.16.0)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.80.0) + version: 7.2.4(@types/node@18.16.2)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.81.0) postcss-url: specifier: ^10.1.3 version: 10.1.3(postcss@8.4.23) @@ -1049,7 +1049,7 @@ importers: version: 3.3.2 time-fix-plugin: specifier: ^2.0.7 - version: 2.0.7(webpack@5.80.0) + version: 2.0.7(webpack@5.81.0) ufo: specifier: ^1.1.1 version: 1.1.1 @@ -1058,22 +1058,22 @@ importers: version: 1.3.1 url-loader: specifier: ^4.1.1 - version: 4.1.1(file-loader@6.2.0)(webpack@5.80.0) + version: 4.1.1(file-loader@6.2.0)(webpack@5.81.0) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 vue-loader: - specifier: ^17.0.1 - version: 17.0.1(vue@3.2.47)(webpack@5.80.0) + specifier: ^17.1.0 + version: 17.1.0(vue@3.2.47)(webpack@5.81.0) webpack: - specifier: ^5.80.0 - version: 5.80.0 + specifier: ^5.81.0 + version: 5.81.0 webpack-bundle-analyzer: specifier: ^4.8.0 version: 4.8.0 webpack-dev-middleware: specifier: ^6.0.2 - version: 6.0.2(webpack@5.80.0) + version: 6.0.2(webpack@5.81.0) webpack-hot-middleware: specifier: ^2.25.3 version: 2.25.3 @@ -1082,7 +1082,7 @@ importers: version: 0.5.0 webpackbar: specifier: ^5.0.2 - version: 5.0.2(webpack@5.80.0) + version: 5.0.2(webpack@5.81.0) devDependencies: '@nuxt/schema': specifier: workspace:* @@ -1847,7 +1847,7 @@ packages: dependencies: '@jest/fake-timers': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 18.16.0 + '@types/node': 18.16.2 jest-mock: 29.5.0 dev: true @@ -1874,7 +1874,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 18.16.0 + '@types/node': 18.16.2 jest-message-util: 29.5.0 jest-mock: 29.5.0 jest-util: 29.5.0 @@ -1928,7 +1928,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.16.0 + '@types/node': 18.16.2 '@types/yargs': 17.0.22 chalk: 4.1.2 @@ -2022,7 +2022,7 @@ packages: resolution: {integrity: sha512-YBI/6o2EBz02tdEJRBK8xkt3zvOFOWlLBf7WKYGBsSYSRtjjgrqPe2skp6VLLmKx5WbHHDNcW+6oACaurxGzeA==} dev: false - /@nuxt/friendly-errors-webpack-plugin@2.5.2(webpack@5.80.0): + /@nuxt/friendly-errors-webpack-plugin@2.5.2(webpack@5.81.0): resolution: {integrity: sha512-LLc+90lnxVbpKkMqk5z1EWpXoODhc6gRkqqXJCInJwF5xabHAE7biFvbULfvTRmtaTzAaP8IV4HQDLUgeAUTTw==} engines: {node: '>=8.0.0', npm: '>=5.0.0'} peerDependencies: @@ -2032,7 +2032,7 @@ packages: consola: 2.15.3 error-stack-parser: 2.1.4 string-width: 4.2.3 - webpack: 5.80.0 + webpack: 5.81.0 dev: false /@nuxt/telemetry@2.2.0: @@ -2064,14 +2064,14 @@ packages: resolution: {integrity: sha512-PjVETP7+iZXAs5Q8O4ivl4t6qjWZMZqwiTVogUXHoHGZZcw7GZW3u3tzfYfE1HbzyYJfr236IXqQ02MeR8Fz2w==} dev: false - /@nuxt/ui@0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.80.0): + /@nuxt/ui@0.3.3(nuxt@packages+nuxt)(rollup@3.21.0)(vite@3.2.5)(vue@3.2.47)(webpack@5.81.0): resolution: {integrity: sha512-KkPAJ+7snNj3lbvzgc6UD5exVsLGExJPP1WwPIdMfXBAUUytXV5CTftpySxcAclN8j+B/GIbcjagBOpJkr7KGQ==} dependencies: '@iconify-json/carbon': 1.1.16 '@nuxt/kit': link:packages/kit '@nuxtjs/color-mode': 3.2.0 '@unocss/core': 0.45.30 - '@unocss/nuxt': 0.45.30(rollup@3.21.0)(vite@3.2.5)(webpack@5.80.0) + '@unocss/nuxt': 0.45.30(rollup@3.21.0)(vite@3.2.5)(webpack@5.81.0) '@unocss/preset-attributify': 0.45.30 '@unocss/preset-icons': 0.45.30 '@unocss/preset-mini': 0.45.30 @@ -2363,7 +2363,7 @@ packages: /@types/cheerio@0.22.31: resolution: {integrity: sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw==} dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 dev: true /@types/clear@0.1.2: @@ -2373,7 +2373,7 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 dev: true /@types/crawler@1.2.2: @@ -2405,13 +2405,13 @@ packages: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 18.16.0 + '@types/node': 18.16.2 dev: true /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 dev: true /@types/hash-sum@1.0.0: @@ -2441,7 +2441,7 @@ packages: /@types/jsonfile@6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 dev: true /@types/lodash-es@4.17.7: @@ -2464,8 +2464,8 @@ packages: resolution: {integrity: sha512-nJOuiTlsvmClSr3+a/trTSx4DTuY/VURsWGKSf/eeavh0LRMqdsK60ti0TlwM5iHiGOK3/Ibkxsbr7i9rzGreA==} dev: true - /@types/node@18.16.0: - resolution: {integrity: sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==} + /@types/node@18.16.2: + resolution: {integrity: sha512-GQW/JL/5Fz/0I8RpeBG9lKp0+aNcXEaVL71c0D2Q0QHDTFvlYKT7an0onCUXj85anv7b4/WesqdfchLc0jtsCg==} /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -2486,7 +2486,7 @@ packages: /@types/prompts@2.4.4: resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 kleur: 3.0.3 dev: true @@ -2522,9 +2522,9 @@ packages: /@types/webpack-bundle-analyzer@4.6.0: resolution: {integrity: sha512-XeQmQCCXdZdap+A/60UKmxW5Mz31Vp9uieGlHB3T4z/o2OLVLtTI3bvTuS6A2OWd/rbAAQiGGWIEFQACu16szA==} dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 tapable: 2.2.1 - webpack: 5.80.0 + webpack: 5.81.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -2537,7 +2537,7 @@ packages: dependencies: '@types/connect': 3.4.35 tapable: 2.2.1 - webpack: 5.80.0 + webpack: 5.81.0 transitivePeerDependencies: - '@swc/core' - esbuild @@ -2548,7 +2548,7 @@ packages: /@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 '@types/source-list-map': 0.1.2 source-map: 0.7.4 dev: true @@ -2562,7 +2562,7 @@ packages: /@types/webpack@4.41.33: resolution: {integrity: sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==} dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 '@types/tapable': 1.0.8 '@types/uglify-js': 3.17.1 '@types/webpack-sources': 3.2.0 @@ -2798,7 +2798,7 @@ packages: sirv: 2.0.2 dev: true - /@unocss/nuxt@0.45.30(rollup@3.21.0)(vite@3.2.5)(webpack@5.80.0): + /@unocss/nuxt@0.45.30(rollup@3.21.0)(vite@3.2.5)(webpack@5.81.0): resolution: {integrity: sha512-m2CEbLLoqE/WacdEGEDXR9R3FbTbSTPV5gPL0Myv0jrHRSRt1MkULZ/IfPgA/A/QiOzcSIUTVXW1dSlOFh5ngQ==} dependencies: '@nuxt/kit': link:packages/kit @@ -2812,7 +2812,7 @@ packages: '@unocss/preset-wind': 0.45.30 '@unocss/reset': 0.45.30 '@unocss/vite': 0.45.30(rollup@3.21.0)(vite@3.2.5) - '@unocss/webpack': 0.45.30(rollup@3.21.0)(webpack@5.80.0) + '@unocss/webpack': 0.45.30(rollup@3.21.0)(webpack@5.81.0) unocss: 0.45.30(@unocss/webpack@0.45.30)(rollup@3.21.0)(vite@3.2.5) transitivePeerDependencies: - rollup @@ -2923,12 +2923,12 @@ packages: '@unocss/scope': 0.45.30 '@unocss/transformer-directives': 0.45.30 magic-string: 0.30.0 - vite: 3.2.5(@types/node@18.16.0) + vite: 3.2.5(@types/node@18.16.2) transitivePeerDependencies: - rollup dev: true - /@unocss/webpack@0.45.30(rollup@3.21.0)(webpack@5.80.0): + /@unocss/webpack@0.45.30(rollup@3.21.0)(webpack@5.81.0): resolution: {integrity: sha512-ke3B+YHmd2O6fxSUoHn24lfiQl1gsc8EQp5n4cqsy92IVw+lmGrVj6V3EyIN5aykrxgEqiZc9NLhPoADWoai7g==} peerDependencies: webpack: ^4 || ^5 @@ -2939,7 +2939,7 @@ packages: '@unocss/core': 0.45.30 magic-string: 0.30.0 unplugin: 0.10.2 - webpack: 5.80.0 + webpack: 5.81.0 webpack-sources: 3.2.3 transitivePeerDependencies: - rollup @@ -2965,7 +2965,7 @@ packages: - encoding - supports-color - /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.2)(vue@3.2.47): + /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.3)(vue@3.2.47): resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2975,19 +2975,19 @@ packages: '@babel/core': 7.21.4 '@babel/plugin-transform-typescript': 7.21.0(@babel/core@7.21.4) '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.4) - vite: 4.3.2(@types/node@18.16.0) + vite: 4.3.3(@types/node@18.16.2) vue: 3.2.47 transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@4.2.0(vite@4.3.2)(vue@3.2.47): - resolution: {integrity: sha512-hYaXFvEKEwyTmwHq2ft7GGeLBvyYLwTM3E5R1jpvzxg9gO4m5PQcTVvj1wEPKoPL8PAt+KAlxo3gyJWnmwzaWQ==} + /@vitejs/plugin-vue@4.2.1(vite@4.3.3)(vue@3.2.47): + resolution: {integrity: sha512-ZTZjzo7bmxTRTkb8GSTwkPOYDIP7pwuyV+RV53c9PYUouwcbkIZIvWvNWlX2b1dYZqtOv7D6iUAnJLVNGcLrSw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.3.2(@types/node@18.16.0) + vite: 4.3.3(@types/node@18.16.2) vue: 3.2.47 /@vitest/expect@0.30.1: @@ -3047,8 +3047,8 @@ packages: '@volar/language-core': 1.4.1 typescript: 5.0.4 - /@volar/vue-language-core@1.4.4: - resolution: {integrity: sha512-c3hL6un+CfoOlusGvpypcodmk9ke/ImrWIUc0GkgI+imoQpUGzgu3tEQWlPs604R7AhxeZwWUi8hQNfax0R/zA==} + /@volar/vue-language-core@1.6.1: + resolution: {integrity: sha512-lIuxzvIx5U8MfoF+vrXNG1aZgmk8T0uyPEwI8g3EUJdESuU0qIKM84o+L4TUw77IQCYXiSefaJmsSSY87/VWnA==} dependencies: '@volar/language-core': 1.4.1 '@volar/source-map': 1.4.1 @@ -3060,13 +3060,13 @@ packages: muggle-string: 0.2.2 vue-template-compiler: 2.7.14 - /@volar/vue-typescript@1.4.4(typescript@5.0.4): - resolution: {integrity: sha512-L61Fk15jlJw3QtIddD4cVE5jei5i6zbLJRiaEMYDDnUKB259/qUrdvnMfnZUFVyDwlevzdstjtaUyreeG/0nPQ==} + /@volar/vue-typescript@1.6.1(typescript@5.0.4): + resolution: {integrity: sha512-5mhG6Lv2niq/AGNvHy4RSAGlJhkR+EcH7zRQ19JlffzhWDVXEdDp8luSSabCkrJzejXIMh0rsTGlKy2EFYy7vQ==} peerDependencies: typescript: '*' dependencies: '@volar/typescript': 1.4.1(typescript@5.0.4) - '@volar/vue-language-core': 1.4.4 + '@volar/vue-language-core': 1.6.1 typescript: 5.0.4 /@vue/babel-helper-vue-transform-on@1.0.2: @@ -4143,7 +4143,7 @@ packages: /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - /cosmiconfig-typescript-loader@4.3.0(@types/node@18.16.0)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4): + /cosmiconfig-typescript-loader@4.3.0(@types/node@18.16.2)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4): resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -4152,9 +4152,9 @@ packages: ts-node: '>=10' typescript: '>=3' dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 cosmiconfig: 8.1.3 - ts-node: 10.9.1(@types/node@18.16.0)(typescript@5.0.4) + ts-node: 10.9.1(@types/node@18.16.2)(typescript@5.0.4) typescript: 5.0.4 dev: false @@ -4223,7 +4223,7 @@ packages: postcss: 8.4.23 dev: false - /css-loader@6.7.3(webpack@5.80.0): + /css-loader@6.7.3(webpack@5.81.0): resolution: {integrity: sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -4237,10 +4237,10 @@ packages: postcss-modules-values: 4.0.0(postcss@8.4.23) postcss-value-parser: 4.2.0 semver: 7.5.0 - webpack: 5.80.0 + webpack: 5.81.0 dev: false - /css-minimizer-webpack-plugin@5.0.0(webpack@5.80.0): + /css-minimizer-webpack-plugin@5.0.0(webpack@5.81.0): resolution: {integrity: sha512-1wZ/PYvg+ZKwi5FX6YrvbB31jMAdurS+CmRQLwWCVSlfzJC85l/a6RVICqUHFa+jXyhilfnCyjafzJGbmz5tcA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -4271,7 +4271,7 @@ packages: schema-utils: 4.0.0 serialize-javascript: 6.0.1 source-map: 0.6.1 - webpack: 5.80.0 + webpack: 5.81.0 dev: false /css-select@1.2.0: @@ -4920,7 +4920,7 @@ packages: dev: true optional: true - /esbuild-loader@3.0.1(webpack@5.80.0): + /esbuild-loader@3.0.1(webpack@5.81.0): resolution: {integrity: sha512-aZfGybqTeuyCd4AsVvWOOfkhIuN+wfZFjMyh3gyQEU1Uvsl8L6vye9HqP93iRa0iTA+6Jclap514PJIC3cLnMA==} peerDependencies: webpack: ^4.40.0 || ^5.0.0 @@ -4928,7 +4928,7 @@ packages: esbuild: 0.17.18 get-tsconfig: 4.5.0 loader-utils: 2.0.4 - webpack: 5.80.0 + webpack: 5.81.0 webpack-sources: 1.4.3 dev: false @@ -5572,7 +5572,7 @@ packages: dependencies: flat-cache: 3.0.4 - /file-loader@6.2.0(webpack@5.80.0): + /file-loader@6.2.0(webpack@5.81.0): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -5580,7 +5580,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.1.2 - webpack: 5.80.0 + webpack: 5.81.0 dev: false /file-uri-to-path@1.0.0: @@ -5646,7 +5646,7 @@ packages: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} dev: true - /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.0.4)(webpack@5.80.0): + /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.0.4)(webpack@5.81.0): resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: @@ -5666,7 +5666,7 @@ packages: semver: 7.5.0 tapable: 2.2.1 typescript: 5.0.4 - webpack: 5.80.0 + webpack: 5.81.0 dev: false /form-data@2.3.3: @@ -6478,7 +6478,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@types/graceful-fs': 4.1.6 - '@types/node': 18.16.0 + '@types/node': 18.16.2 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -6521,7 +6521,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 18.16.0 + '@types/node': 18.16.2 jest-util: 29.5.0 dev: true @@ -6566,7 +6566,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 18.16.0 + '@types/node': 18.16.2 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.10 @@ -6576,7 +6576,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -6584,7 +6584,7 @@ packages: resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 jest-util: 29.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -7038,14 +7038,14 @@ packages: engines: {node: '>=4'} dev: true - /mini-css-extract-plugin@2.7.5(webpack@5.80.0): + /mini-css-extract-plugin@2.7.5(webpack@5.81.0): resolution: {integrity: sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: schema-utils: 4.0.0 - webpack: 5.80.0 + webpack: 5.81.0 dev: false /minimatch@3.0.8: @@ -7655,19 +7655,19 @@ packages: mlly: 1.2.0 pathe: 1.1.0 - /playwright-core@1.32.3: - resolution: {integrity: sha512-SB+cdrnu74ZIn5Ogh/8278ngEh9NEEV0vR4sJFmK04h2iZpybfbqBY0bX6+BLYWVdV12JLLI+JEFtSnYgR+mWg==} + /playwright-core@1.33.0: + resolution: {integrity: sha512-aizyPE1Cj62vAECdph1iaMILpT0WUDCq3E6rW6I+dleSbBoGbktvJtzS6VHkZ4DKNEOG9qJpiom/ZxO+S15LAw==} engines: {node: '>=14'} hasBin: true dev: true - /playwright@1.32.3: - resolution: {integrity: sha512-h/ylpgoj6l/EjkfUDyx8cdOlfzC96itPpPe8BXacFkqpw/YsuxkpPyVbzEq4jw+bAJh5FLgh31Ljg2cR6HV3uw==} + /playwright@1.33.0: + resolution: {integrity: sha512-+zzU3V2TslRX2ETBRgQKsKytYBkJeLZ2xzUj4JohnZnxQnivoUvOvNbRBYWSYykQTO0Y4zb8NwZTYFUO+EpPBQ==} engines: {node: '>=14'} hasBin: true requiresBuild: true dependencies: - playwright-core: 1.32.3 + playwright-core: 1.33.0 dev: true /pluralize@8.0.0: @@ -7763,7 +7763,7 @@ packages: resolve: 1.22.1 dev: false - /postcss-loader@7.2.4(@types/node@18.16.0)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.80.0): + /postcss-loader@7.2.4(@types/node@18.16.2)(postcss@8.4.23)(ts-node@10.9.1)(typescript@5.0.4)(webpack@5.81.0): resolution: {integrity: sha512-F88rpxxNspo5hatIc+orYwZDtHFaVFOSIVAx+fBfJC1GmhWbVmPWtmg2gXKE1OxJbneOSGn8PWdIwsZFcruS+w==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -7778,13 +7778,13 @@ packages: optional: true dependencies: cosmiconfig: 8.1.3 - cosmiconfig-typescript-loader: 4.3.0(@types/node@18.16.0)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4) + cosmiconfig-typescript-loader: 4.3.0(@types/node@18.16.2)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.0.4) klona: 2.0.6 postcss: 8.4.23 semver: 7.5.0 - ts-node: 10.9.1(@types/node@18.16.0)(typescript@5.0.4) + ts-node: 10.9.1(@types/node@18.16.2)(typescript@5.0.4) typescript: 5.0.4 - webpack: 5.80.0 + webpack: 5.81.0 transitivePeerDependencies: - '@types/node' dev: false @@ -8854,7 +8854,7 @@ packages: mkdirp: 1.0.4 yallist: 4.0.0 - /terser-webpack-plugin@5.3.7(webpack@5.80.0): + /terser-webpack-plugin@5.3.7(webpack@5.81.0): resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -8875,7 +8875,7 @@ packages: schema-utils: 3.1.2 serialize-javascript: 6.0.1 terser: 5.16.6 - webpack: 5.80.0 + webpack: 5.81.0 /terser@5.16.6: resolution: {integrity: sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==} @@ -8902,12 +8902,12 @@ packages: /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - /time-fix-plugin@2.0.7(webpack@5.80.0): + /time-fix-plugin@2.0.7(webpack@5.81.0): resolution: {integrity: sha512-uVFet1LQToeUX0rTcSiYVYVoGuBpc8gP/2jnlUzuHMHe+gux6XLsNzxLUweabMwiUj5ejhoIMsUI55nVSEa/Vw==} peerDependencies: webpack: '>=4.0.0' dependencies: - webpack: 5.80.0 + webpack: 5.81.0 dev: false /time-zone@1.0.0: @@ -8990,7 +8990,7 @@ packages: /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - /ts-node@10.9.1(@types/node@18.16.0)(typescript@5.0.4): + /ts-node@10.9.1(@types/node@18.16.2)(typescript@5.0.4): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -9009,7 +9009,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.16.0 + '@types/node': 18.16.2 acorn: 8.8.2 acorn-walk: 8.2.0 arg: 4.1.3 @@ -9265,7 +9265,7 @@ packages: '@unocss/transformer-directives': 0.45.30 '@unocss/transformer-variant-group': 0.45.30 '@unocss/vite': 0.45.30(rollup@3.21.0)(vite@3.2.5) - '@unocss/webpack': 0.45.30(rollup@3.21.0)(webpack@5.80.0) + '@unocss/webpack': 0.45.30(rollup@3.21.0)(webpack@5.81.0) transitivePeerDependencies: - rollup - supports-color @@ -9363,7 +9363,7 @@ packages: dependencies: punycode: 2.3.0 - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.80.0): + /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.81.0): resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -9373,11 +9373,11 @@ packages: file-loader: optional: true dependencies: - file-loader: 6.2.0(webpack@5.80.0) + file-loader: 6.2.0(webpack@5.81.0) loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.1.2 - webpack: 5.80.0 + webpack: 5.81.0 dev: false /util-deprecate@1.0.2: @@ -9414,7 +9414,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.30.1(@types/node@18.16.0): + /vite-node@0.30.1(@types/node@18.16.2): resolution: {integrity: sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==} engines: {node: '>=v14.18.0'} hasBin: true @@ -9424,7 +9424,7 @@ packages: mlly: 1.2.0 pathe: 1.1.0 picocolors: 1.0.0 - vite: 4.3.2(@types/node@18.16.0) + vite: 4.3.3(@types/node@18.16.2) transitivePeerDependencies: - '@types/node' - less @@ -9434,7 +9434,7 @@ packages: - supports-color - terser - /vite-plugin-checker@0.5.6(eslint@8.39.0)(typescript@5.0.4)(vite@4.3.2)(vue-tsc@1.4.4): + /vite-plugin-checker@0.5.6(eslint@8.39.0)(typescript@5.0.4)(vite@4.3.3)(vue-tsc@1.6.1): resolution: {integrity: sha512-ftRyON0gORUHDxcDt2BErmsikKSkfvl1i2DoP6Jt2zDO9InfvM6tqO1RkXhSjkaXEhKPea6YOnhFaZxW3BzudQ==} engines: {node: '>=14.16'} peerDependencies: @@ -9479,15 +9479,15 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.0.4 - vite: 4.3.2(@types/node@18.16.0) + vite: 4.3.3(@types/node@18.16.2) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 vscode-uri: 3.0.7 - vue-tsc: 1.4.4(typescript@5.0.4) + vue-tsc: 1.6.1(typescript@5.0.4) dev: false - /vite@3.2.5(@types/node@18.16.0): + /vite@3.2.5(@types/node@18.16.2): resolution: {integrity: sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -9512,7 +9512,7 @@ packages: terser: optional: true dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 esbuild: 0.15.18 postcss: 8.4.23 resolve: 1.22.1 @@ -9521,8 +9521,8 @@ packages: fsevents: 2.3.2 dev: true - /vite@4.3.2(@types/node@18.16.0): - resolution: {integrity: sha512-9R53Mf+TBoXCYejcL+qFbZde+eZveQLDYd9XgULILLC1a5ZwPaqgmdVpL8/uvw2BM/1TzetWjglwm+3RO+xTyw==} + /vite@4.3.3(@types/node@18.16.2): + resolution: {integrity: sha512-MwFlLBO4udZXd+VBcezo3u8mC77YQk+ik+fbc0GZWGgzfbPP+8Kf0fldhARqvSYmtIWoAJ5BXPClUbMTlqFxrA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -9546,14 +9546,14 @@ packages: terser: optional: true dependencies: - '@types/node': 18.16.0 + '@types/node': 18.16.2 esbuild: 0.17.18 postcss: 8.4.23 rollup: 3.21.0 optionalDependencies: fsevents: 2.3.2 - /vitest@0.30.1(playwright@1.32.3): + /vitest@0.30.1(playwright@1.33.0): resolution: {integrity: sha512-y35WTrSTlTxfMLttgQk4rHcaDkbHQwDP++SNwPb+7H8yb13Q3cu2EixrtHzF27iZ8v0XCciSsLg00RkPAzB/aA==} engines: {node: '>=v14.18.0'} hasBin: true @@ -9586,7 +9586,7 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 18.16.0 + '@types/node': 18.16.2 '@vitest/expect': 0.30.1 '@vitest/runner': 0.30.1 '@vitest/snapshot': 0.30.1 @@ -9602,14 +9602,14 @@ packages: magic-string: 0.30.0 pathe: 1.1.0 picocolors: 1.0.0 - playwright: 1.32.3 + playwright: 1.33.0 source-map: 0.6.1 std-env: 3.3.2 strip-literal: 1.0.1 tinybench: 2.4.0 tinypool: 0.4.0 - vite: 4.3.2(@types/node@18.16.0) - vite-node: 0.30.1(@types/node@18.16.0) + vite: 4.3.3(@types/node@18.16.2) + vite-node: 0.30.1(@types/node@18.16.2) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -9702,8 +9702,8 @@ packages: - supports-color dev: true - /vue-loader@17.0.1(vue@3.2.47)(webpack@5.80.0): - resolution: {integrity: sha512-/OOyugJnImKCkAKrAvdsWMuwoCqGxWT5USLsjohzWbMgOwpA5wQmzQiLMzZd7DjhIfunzAGIApTOgIylz/kwcg==} + /vue-loader@17.1.0(vue@3.2.47)(webpack@5.81.0): + resolution: {integrity: sha512-zAjrT+TNWTpgRODxqDfzbDyvuTf5kCP9xmMk8aspQKuYNnTY2r0XK/bHu1DKLpSpk0I6fkQph5OLKB7HcRIPZw==} peerDependencies: '@vue/compiler-sfc': '*' vue: '*' @@ -9716,9 +9716,9 @@ packages: dependencies: chalk: 4.1.2 hash-sum: 2.0.0 - loader-utils: 2.0.4 vue: 3.2.47 - webpack: 5.80.0 + watchpack: 2.4.0 + webpack: 5.81.0 dev: false /vue-router@4.1.6(vue@3.2.47): @@ -9735,14 +9735,14 @@ packages: de-indent: 1.0.2 he: 1.2.0 - /vue-tsc@1.4.4(typescript@5.0.4): - resolution: {integrity: sha512-2XsCjF2mLo6gwOVcOpngwJkP8GzYQjNh20A+Pr2FGdsWzr9jjXJ0k08/DfcslfncsuCrTrnWtb4KEL3gcDtlNA==} + /vue-tsc@1.6.1(typescript@5.0.4): + resolution: {integrity: sha512-cKKKrv98MdU9kgd434fkjcIpU7a5bUflhklF9usf/GzebjmZpaht7tYGm/MNdBz7V9icySceCzCr3RiG02mOJg==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@volar/vue-language-core': 1.4.4 - '@volar/vue-typescript': 1.4.4(typescript@5.0.4) + '@volar/vue-language-core': 1.6.1 + '@volar/vue-typescript': 1.6.1(typescript@5.0.4) semver: 7.5.0 typescript: 5.0.4 @@ -9800,7 +9800,7 @@ packages: - utf-8-validate dev: false - /webpack-dev-middleware@6.0.2(webpack@5.80.0): + /webpack-dev-middleware@6.0.2(webpack@5.81.0): resolution: {integrity: sha512-iOddiJzPcQC6lwOIu60vscbGWth8PCRcWRCwoQcTQf9RMoOWBHg5EyzpGdtSmGMrSPd5vHEfFXmVErQEmkRngQ==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -9814,7 +9814,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.0.0 - webpack: 5.80.0 + webpack: 5.81.0 dev: false /webpack-hot-middleware@2.25.3: @@ -9843,8 +9843,8 @@ packages: /webpack-virtual-modules@0.5.0: resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} - /webpack@5.80.0: - resolution: {integrity: sha512-OIMiq37XK1rWO8mH9ssfFKZsXg4n6klTEDL7S8/HqbAOBBaiy8ABvXvz0dDCXeEF9gqwxSvVk611zFPjS8hJxA==} + /webpack@5.81.0: + resolution: {integrity: sha512-AAjaJ9S4hYCVODKLQTgG5p5e11hiMawBwV2v8MYLE0C/6UAGLuAF4n1qa9GOwdxnicaP+5k6M5HrLmD4+gIB8Q==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -9874,7 +9874,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.1.2 tapable: 2.2.1 - terser-webpack-plugin: 5.3.7(webpack@5.80.0) + terser-webpack-plugin: 5.3.7(webpack@5.81.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -9882,7 +9882,7 @@ packages: - esbuild - uglify-js - /webpackbar@5.0.2(webpack@5.80.0): + /webpackbar@5.0.2(webpack@5.81.0): resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} engines: {node: '>=12'} peerDependencies: @@ -9892,7 +9892,7 @@ packages: consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.3.2 - webpack: 5.80.0 + webpack: 5.81.0 dev: false /well-known-symbols@2.0.0: From 1464294d6abe13b54fdb8d204732345551c8e647 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Apr 2023 13:51:56 +0000 Subject: [PATCH 113/912] v3.4.3 --- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 6ebb93071e..3d0c75e46e 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.4.2", + "version": "3.4.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 22c2962eff..ccd9f95fe3 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -1,6 +1,6 @@ { "name": "nuxi", - "version": "3.4.2", + "version": "3.4.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 4bbbe0fd41..2dabc903b3 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.4.2", + "version": "3.4.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/schema/package.json b/packages/schema/package.json index f49bb0c968..6601c4517a 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.4.2", + "version": "3.4.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index b2865a12c3..50f3f43138 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.4.2", + "version": "3.4.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/vite/package.json b/packages/vite/package.json index c212dbdb75..d829e7fb87 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.4.2", + "version": "3.4.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index ece88e9bae..9df1ef9fa8 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.4.2", + "version": "3.4.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", From e4b4665f0d7f0856e27d2de5c5af007fe01320c4 Mon Sep 17 00:00:00 2001 From: Pavel Mokin Date: Sun, 30 Apr 2023 00:31:37 +0300 Subject: [PATCH 114/912] docs: fix typo (#20577) --- docs/1.getting-started/1.introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/1.getting-started/1.introduction.md b/docs/1.getting-started/1.introduction.md index 30ed20987d..10e8d15fda 100644 --- a/docs/1.getting-started/1.introduction.md +++ b/docs/1.getting-started/1.introduction.md @@ -19,7 +19,7 @@ Nuxt uses conventions and an opinionated directory structure to automate repetit - **File-based routing:** define routes based on the structure of your [`pages/` directory](/docs/guide/directory-structure/pages). This can make it easier to organize your application and avoid the need for manual route configuration. - **Code splitting:** Nuxt automatically splits your code into smaller chunks, which can help reduce the initial load time of your application. - **Server-side rendering out of the box:** Nuxt comes with built-in SSR capabilities, so you don't have to set up a separate server yourself. -- **Auto-imports:** write Vue composables and components in their respectives directories and use them without having to import them with the benefits of tree-shaking and optimised JS bundles. +- **Auto-imports:** write Vue composables and components in their respective directories and use them without having to import them with the benefits of tree-shaking and optimised JS bundles. - **Data-fetching utilities:** Nuxt provides composables to handle SSR-compatible data fetching as well as different strategies. - **Zero-config TypeScript support:** write type-safe code without having to learn TypeScript with our auto-generated types and `tsconfig.json` - **Configured build tools:** we use [Vite](https://vitejs.dev) by default to support hot module replacement (HMR) in development and bundling your code for production with best-practices baked-in. From 1444d89e3b6170eaed56c16494b1ff6b9b68ef9e Mon Sep 17 00:00:00 2001 From: Stefan Milosevic Date: Sun, 30 Apr 2023 00:21:45 +0200 Subject: [PATCH 115/912] feat(kit): add `prepend` option to `addImportsDir` (#20307) --- docs/3.api/4.advanced/2.kit.md | 2 +- packages/kit/src/imports.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/3.api/4.advanced/2.kit.md b/docs/3.api/4.advanced/2.kit.md index 6eb63473e1..781f4aac28 100644 --- a/docs/3.api/4.advanced/2.kit.md +++ b/docs/3.api/4.advanced/2.kit.md @@ -40,7 +40,7 @@ description: Nuxt Kit provides composable utilities to help interacting with Nux [source code](https://github.com/nuxt/nuxt/blob/main/packages/kit/src/imports.ts) - `addImports(imports)` -- `addImportsDir(importDirs)` +- `addImportsDir(importDirs, { prepend? })` - `addImportsSources(importSources)` ### Components diff --git a/packages/kit/src/imports.ts b/packages/kit/src/imports.ts index cd532351cf..bf5a35759e 100644 --- a/packages/kit/src/imports.ts +++ b/packages/kit/src/imports.ts @@ -11,12 +11,12 @@ export function addImports (imports: Import | Import[]) { }) } -export function addImportsDir (dirs: string | string[]) { +export function addImportsDir (dirs: string | string[], opts: { prepend?: boolean } = {}) { assertNuxtCompatibility({ bridge: true }) useNuxt().hook('imports:dirs', (_dirs: string[]) => { for (const dir of (Array.isArray(dirs) ? dirs : [dirs])) { - _dirs.push(dir) + _dirs[opts.prepend ? 'unshift' : 'push'](dir) } }) } From e1e3d2cd8ed95e427a46bf71e1c0306f9a332731 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sat, 29 Apr 2023 23:32:29 +0100 Subject: [PATCH 116/912] feat(nuxt): add scoped helper for clearing error within boundary (#20508) --- docs/1.getting-started/8.error-handling.md | 6 +++--- packages/nuxt/src/app/components/nuxt-error-boundary.ts | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/1.getting-started/8.error-handling.md b/docs/1.getting-started/8.error-handling.md index eba5308944..e340967ec1 100644 --- a/docs/1.getting-started/8.error-handling.md +++ b/docs/1.getting-started/8.error-handling.md @@ -156,9 +156,9 @@ If you navigate to another route, the error will be cleared automatically. - diff --git a/docs/3.api/1.composables/use-lazy-async-data.md b/docs/3.api/1.composables/use-lazy-async-data.md index 0180dbe7b0..fc096e376b 100644 --- a/docs/3.api/1.composables/use-lazy-async-data.md +++ b/docs/3.api/1.composables/use-lazy-async-data.md @@ -27,10 +27,10 @@ By default, [useAsyncData](/docs/api/composables/use-async-data) blocks navigati /* Navigation will occur before fetching is complete. Handle pending and error states directly within your component's template */ -const { pending, data: count } = useLazyAsyncData('count', () => $fetch('/api/count')) +const { pending, data: count } = await useLazyAsyncData('count', () => $fetch('/api/count')) watch(count, (newCount) => { - // Because count starts out null, you won't have access + // Because count might start out null, you won't have access // to its contents immediately, but you can watch it. }) diff --git a/docs/3.api/1.composables/use-lazy-fetch.md b/docs/3.api/1.composables/use-lazy-fetch.md index f910cf2746..953bdfb3d8 100644 --- a/docs/3.api/1.composables/use-lazy-fetch.md +++ b/docs/3.api/1.composables/use-lazy-fetch.md @@ -32,9 +32,9 @@ By default, [useFetch](/docs/api/composables/use-fetch) blocks navigation until /* Navigation will occur before fetching is complete. Handle pending and error states directly within your component's template */ -const { pending, data: posts } = useLazyFetch('/api/posts') +const { pending, data: posts } = await useLazyFetch('/api/posts') watch(posts, (newPosts) => { - // Because posts starts out null, you won't have access + // Because posts might start out null, you won't have access // to its contents immediately, but you can watch it. }) diff --git a/docs/3.api/3.utils/refresh-nuxt-data.md b/docs/3.api/3.utils/refresh-nuxt-data.md index dc3fa423c5..02eb5799d1 100644 --- a/docs/3.api/3.utils/refresh-nuxt-data.md +++ b/docs/3.api/3.utils/refresh-nuxt-data.md @@ -62,7 +62,7 @@ This example below refreshes only data where the key matches to `count`. ``` From 80a131a32dad27caf7048fb68c1a54f20789b187 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 11 May 2023 07:32:32 +0100 Subject: [PATCH 179/912] chore(deps): update dependency webpack to ^5.82.1 (main) (#20769) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- packages/kit/package.json | 2 +- packages/schema/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 116 +++++++++++++++++----------------- 4 files changed, 61 insertions(+), 61 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 16706a9d08..dd4bc5c631 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -47,7 +47,7 @@ "unbuild": "latest", "vite": "^4.3.5", "vitest": "^0.31.0", - "webpack": "^5.82.0" + "webpack": "^5.82.1" }, "engines": { "node": "^14.18.0 || >=16.10.0" diff --git a/packages/schema/package.json b/packages/schema/package.json index fb060ca2fb..bd6b817d52 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -34,7 +34,7 @@ "vue": "3.2.47", "vue-bundle-renderer": "^1.0.3", "vue-router": "^4.1.6", - "webpack": "^5.82.0" + "webpack": "^5.82.1" }, "dependencies": { "defu": "^6.1.2", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 27d246fe69..ee16cfe08b 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -52,7 +52,7 @@ "url-loader": "^4.1.1", "vue-bundle-renderer": "^1.0.3", "vue-loader": "^17.1.0", - "webpack": "^5.82.0", + "webpack": "^5.82.1", "webpack-bundle-analyzer": "^4.8.0", "webpack-dev-middleware": "^6.1.0", "webpack-hot-middleware": "^2.25.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4c0a39bde3..f9e6f688c9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -213,8 +213,8 @@ importers: specifier: ^0.31.0 version: 0.31.0(playwright@1.33.0) webpack: - specifier: ^5.82.0 - version: 5.82.0 + specifier: ^5.82.1 + version: 5.82.1 packages/nuxi: optionalDependencies: @@ -564,8 +564,8 @@ importers: specifier: ^4.1.6 version: 4.1.6(vue@3.2.47) webpack: - specifier: ^5.82.0 - version: 5.82.0 + specifier: ^5.82.1 + version: 5.82.1 packages/test-utils: dependencies: @@ -735,7 +735,7 @@ importers: dependencies: '@nuxt/friendly-errors-webpack-plugin': specifier: ^2.5.2 - version: 2.5.2(webpack@5.82.0) + version: 2.5.2(webpack@5.82.1) '@nuxt/kit': specifier: workspace:* version: link:../kit @@ -744,16 +744,16 @@ importers: version: 10.4.14(postcss@8.4.23) css-loader: specifier: ^6.7.3 - version: 6.7.3(webpack@5.82.0) + version: 6.7.3(webpack@5.82.1) css-minimizer-webpack-plugin: specifier: ^5.0.0 - version: 5.0.0(webpack@5.82.0) + version: 5.0.0(webpack@5.82.1) cssnano: specifier: ^6.0.1 version: 6.0.1(postcss@8.4.23) esbuild-loader: specifier: ^3.0.1 - version: 3.0.1(webpack@5.82.0) + version: 3.0.1(webpack@5.82.1) escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -762,10 +762,10 @@ importers: version: 3.0.3 file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.82.0) + version: 6.2.0(webpack@5.82.1) fork-ts-checker-webpack-plugin: specifier: ^8.0.0 - version: 8.0.0(typescript@5.0.4)(webpack@5.82.0) + version: 8.0.0(typescript@5.0.4)(webpack@5.82.1) fs-extra: specifier: ^11.1.1 version: 11.1.1 @@ -786,7 +786,7 @@ importers: version: 3.5.1 mini-css-extract-plugin: specifier: ^2.7.5 - version: 2.7.5(webpack@5.82.0) + version: 2.7.5(webpack@5.82.1) mlly: specifier: ^1.2.0 version: 1.2.0 @@ -807,7 +807,7 @@ importers: version: 15.1.0(postcss@8.4.23) postcss-loader: specifier: ^7.3.0 - version: 7.3.0(postcss@8.4.23)(webpack@5.82.0) + version: 7.3.0(postcss@8.4.23)(webpack@5.82.1) postcss-url: specifier: ^10.1.3 version: 10.1.3(postcss@8.4.23) @@ -816,7 +816,7 @@ importers: version: 3.3.3 time-fix-plugin: specifier: ^2.0.7 - version: 2.0.7(webpack@5.82.0) + version: 2.0.7(webpack@5.82.1) ufo: specifier: ^1.1.2 version: 1.1.2 @@ -825,22 +825,22 @@ importers: version: 1.3.1 url-loader: specifier: ^4.1.1 - version: 4.1.1(file-loader@6.2.0)(webpack@5.82.0) + version: 4.1.1(file-loader@6.2.0)(webpack@5.82.1) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 vue-loader: specifier: ^17.1.0 - version: 17.1.0(vue@3.2.47)(webpack@5.82.0) + version: 17.1.0(vue@3.2.47)(webpack@5.82.1) webpack: - specifier: ^5.82.0 - version: 5.82.0 + specifier: ^5.82.1 + version: 5.82.1 webpack-bundle-analyzer: specifier: ^4.8.0 version: 4.8.0 webpack-dev-middleware: specifier: ^6.1.0 - version: 6.1.0(webpack@5.82.0) + version: 6.1.0(webpack@5.82.1) webpack-hot-middleware: specifier: ^2.25.3 version: 2.25.3 @@ -849,7 +849,7 @@ importers: version: 0.5.0 webpackbar: specifier: ^5.0.2 - version: 5.0.2(webpack@5.82.0) + version: 5.0.2(webpack@5.82.1) devDependencies: '@nuxt/schema': specifier: workspace:* @@ -1756,7 +1756,7 @@ packages: resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} dev: false - /@nuxt/friendly-errors-webpack-plugin@2.5.2(webpack@5.82.0): + /@nuxt/friendly-errors-webpack-plugin@2.5.2(webpack@5.82.1): resolution: {integrity: sha512-LLc+90lnxVbpKkMqk5z1EWpXoODhc6gRkqqXJCInJwF5xabHAE7biFvbULfvTRmtaTzAaP8IV4HQDLUgeAUTTw==} engines: {node: '>=8.0.0', npm: '>=5.0.0'} peerDependencies: @@ -1766,7 +1766,7 @@ packages: consola: 2.15.3 error-stack-parser: 2.1.4 string-width: 4.2.3 - webpack: 5.82.0 + webpack: 5.82.1 dev: false /@nuxt/telemetry@2.2.0: @@ -2199,7 +2199,7 @@ packages: dependencies: '@types/node': 18.16.7 tapable: 2.2.1 - webpack: 5.82.0 + webpack: 5.82.1 transitivePeerDependencies: - '@swc/core' - esbuild @@ -2212,7 +2212,7 @@ packages: dependencies: '@types/connect': 3.4.35 tapable: 2.2.1 - webpack: 5.82.0 + webpack: 5.82.1 transitivePeerDependencies: - '@swc/core' - esbuild @@ -3680,7 +3680,7 @@ packages: postcss: 8.4.23 dev: false - /css-loader@6.7.3(webpack@5.82.0): + /css-loader@6.7.3(webpack@5.82.1): resolution: {integrity: sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==} engines: {node: '>= 12.13.0'} peerDependencies: @@ -3694,10 +3694,10 @@ packages: postcss-modules-values: 4.0.0(postcss@8.4.23) postcss-value-parser: 4.2.0 semver: 7.5.0 - webpack: 5.82.0 + webpack: 5.82.1 dev: false - /css-minimizer-webpack-plugin@5.0.0(webpack@5.82.0): + /css-minimizer-webpack-plugin@5.0.0(webpack@5.82.1): resolution: {integrity: sha512-1wZ/PYvg+ZKwi5FX6YrvbB31jMAdurS+CmRQLwWCVSlfzJC85l/a6RVICqUHFa+jXyhilfnCyjafzJGbmz5tcA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -3728,7 +3728,7 @@ packages: schema-utils: 4.0.0 serialize-javascript: 6.0.1 source-map: 0.6.1 - webpack: 5.82.0 + webpack: 5.82.1 dev: false /css-select@1.2.0: @@ -4141,8 +4141,8 @@ packages: tapable: 1.1.3 dev: false - /enhanced-resolve@5.13.0: - resolution: {integrity: sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==} + /enhanced-resolve@5.14.0: + resolution: {integrity: sha512-+DCows0XNwLDcUhbFJPdlQEVnT2zXlCv7hPxemTz86/O+B/hCQ+mb7ydkPKiflpVraqLPCAfu7lDy+hBXueojw==} engines: {node: '>=10.13.0'} dependencies: graceful-fs: 4.2.10 @@ -4247,7 +4247,7 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-loader@3.0.1(webpack@5.82.0): + /esbuild-loader@3.0.1(webpack@5.82.1): resolution: {integrity: sha512-aZfGybqTeuyCd4AsVvWOOfkhIuN+wfZFjMyh3gyQEU1Uvsl8L6vye9HqP93iRa0iTA+6Jclap514PJIC3cLnMA==} peerDependencies: webpack: ^4.40.0 || ^5.0.0 @@ -4255,7 +4255,7 @@ packages: esbuild: 0.17.18 get-tsconfig: 4.5.0 loader-utils: 2.0.4 - webpack: 5.82.0 + webpack: 5.82.1 webpack-sources: 1.4.3 dev: false @@ -4344,7 +4344,7 @@ packages: eslint-plugin-import: '*' dependencies: debug: 4.3.4 - enhanced-resolve: 5.13.0 + enhanced-resolve: 5.14.0 eslint: 8.40.0 eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.54.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.40.0) @@ -4755,7 +4755,7 @@ packages: /externality@1.0.0: resolution: {integrity: sha512-MAU9ci3XdpqOX1aoIoyL2DMzW97P8LYeJxIUkfXhOfsrkH4KLHFaYDwKN0B2l6tqedVJWiTIJtWmxmZfa05vOQ==} dependencies: - enhanced-resolve: 5.13.0 + enhanced-resolve: 5.14.0 mlly: 1.2.0 pathe: 1.1.0 ufo: 1.1.2 @@ -4820,7 +4820,7 @@ packages: dependencies: flat-cache: 3.0.4 - /file-loader@6.2.0(webpack@5.82.0): + /file-loader@6.2.0(webpack@5.82.1): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -4828,7 +4828,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.1.2 - webpack: 5.82.0 + webpack: 5.82.1 dev: false /file-uri-to-path@1.0.0: @@ -4896,7 +4896,7 @@ packages: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} dev: true - /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.0.4)(webpack@5.82.0): + /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.0.4)(webpack@5.82.1): resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: @@ -4916,7 +4916,7 @@ packages: semver: 7.5.0 tapable: 2.2.1 typescript: 5.0.4 - webpack: 5.82.0 + webpack: 5.82.1 dev: false /form-data@2.3.3: @@ -6298,14 +6298,14 @@ packages: engines: {node: '>=4'} dev: true - /mini-css-extract-plugin@2.7.5(webpack@5.82.0): + /mini-css-extract-plugin@2.7.5(webpack@5.82.1): resolution: {integrity: sha512-9HaR++0mlgom81s95vvNjxkg52n2b5s//3ZTI1EtzFb98awsLSivs2LMsVqnQ3ay0PVhqWcGNyDaTE961FOcjQ==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: schema-utils: 4.0.0 - webpack: 5.82.0 + webpack: 5.82.1 dev: false /minimatch@3.0.8: @@ -7026,7 +7026,7 @@ packages: resolve: 1.22.1 dev: false - /postcss-loader@7.3.0(postcss@8.4.23)(webpack@5.82.0): + /postcss-loader@7.3.0(postcss@8.4.23)(webpack@5.82.1): resolution: {integrity: sha512-qLAFjvR2BFNz1H930P7mj1iuWJFjGey/nVhimfOAAQ1ZyPpcClAxP8+A55Sl8mBvM+K2a9Pjgdj10KpANWrNfw==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -7038,7 +7038,7 @@ packages: klona: 2.0.6 postcss: 8.4.23 semver: 7.5.0 - webpack: 5.82.0 + webpack: 5.82.1 dev: false /postcss-merge-longhand@6.0.0(postcss@8.4.23): @@ -8093,7 +8093,7 @@ packages: mkdirp: 1.0.4 yallist: 4.0.0 - /terser-webpack-plugin@5.3.7(webpack@5.82.0): + /terser-webpack-plugin@5.3.7(webpack@5.82.1): resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -8114,7 +8114,7 @@ packages: schema-utils: 3.1.2 serialize-javascript: 6.0.1 terser: 5.16.6 - webpack: 5.82.0 + webpack: 5.82.1 /terser@5.16.6: resolution: {integrity: sha512-IBZ+ZQIA9sMaXmRZCUMDjNH0D5AQQfdn4WUjHL0+1lF4TP1IHRJbrhb6fNaXWikrYQTSkb7SLxkeXAiy1p7mbg==} @@ -8141,12 +8141,12 @@ packages: /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - /time-fix-plugin@2.0.7(webpack@5.82.0): + /time-fix-plugin@2.0.7(webpack@5.82.1): resolution: {integrity: sha512-uVFet1LQToeUX0rTcSiYVYVoGuBpc8gP/2jnlUzuHMHe+gux6XLsNzxLUweabMwiUj5ejhoIMsUI55nVSEa/Vw==} peerDependencies: webpack: '>=4.0.0' dependencies: - webpack: 5.82.0 + webpack: 5.82.1 dev: false /time-zone@1.0.0: @@ -8544,7 +8544,7 @@ packages: dependencies: punycode: 2.3.0 - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.82.0): + /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.82.1): resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -8554,11 +8554,11 @@ packages: file-loader: optional: true dependencies: - file-loader: 6.2.0(webpack@5.82.0) + file-loader: 6.2.0(webpack@5.82.1) loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.1.2 - webpack: 5.82.0 + webpack: 5.82.1 dev: false /util-deprecate@1.0.2: @@ -8830,7 +8830,7 @@ packages: - supports-color dev: true - /vue-loader@17.1.0(vue@3.2.47)(webpack@5.82.0): + /vue-loader@17.1.0(vue@3.2.47)(webpack@5.82.1): resolution: {integrity: sha512-zAjrT+TNWTpgRODxqDfzbDyvuTf5kCP9xmMk8aspQKuYNnTY2r0XK/bHu1DKLpSpk0I6fkQph5OLKB7HcRIPZw==} peerDependencies: '@vue/compiler-sfc': '*' @@ -8846,7 +8846,7 @@ packages: hash-sum: 2.0.0 vue: 3.2.47 watchpack: 2.4.0 - webpack: 5.82.0 + webpack: 5.82.1 dev: false /vue-router@4.1.6(vue@3.2.47): @@ -8928,7 +8928,7 @@ packages: - utf-8-validate dev: false - /webpack-dev-middleware@6.1.0(webpack@5.82.0): + /webpack-dev-middleware@6.1.0(webpack@5.82.1): resolution: {integrity: sha512-H7I+YAlKeKwMK0IidkwqpunHhYc/LKJlh5UxCdaLgkhIqwUfebP4rrC131+ddcCZ7LBDBMV9+bkisdbR4zhKhw==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -8942,7 +8942,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.0.0 - webpack: 5.82.0 + webpack: 5.82.1 dev: false /webpack-hot-middleware@2.25.3: @@ -8967,8 +8967,8 @@ packages: /webpack-virtual-modules@0.5.0: resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} - /webpack@5.82.0: - resolution: {integrity: sha512-iGNA2fHhnDcV1bONdUu554eZx+XeldsaeQ8T67H6KKHl2nUSwX8Zm7cmzOA46ox/X1ARxf7Bjv8wQ/HsB5fxBg==} + /webpack@5.82.1: + resolution: {integrity: sha512-C6uiGQJ+Gt4RyHXXYt+v9f+SN1v83x68URwgxNQ98cvH8kxiuywWGP4XeNZ1paOzZ63aY3cTciCEQJNFUljlLw==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -8986,7 +8986,7 @@ packages: acorn-import-assertions: 1.8.0(acorn@8.8.2) browserslist: 4.21.5 chrome-trace-event: 1.0.3 - enhanced-resolve: 5.13.0 + enhanced-resolve: 5.14.0 es-module-lexer: 1.2.1 eslint-scope: 5.1.1 events: 3.3.0 @@ -8998,7 +8998,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.1.2 tapable: 2.2.1 - terser-webpack-plugin: 5.3.7(webpack@5.82.0) + terser-webpack-plugin: 5.3.7(webpack@5.82.1) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -9006,7 +9006,7 @@ packages: - esbuild - uglify-js - /webpackbar@5.0.2(webpack@5.82.0): + /webpackbar@5.0.2(webpack@5.82.1): resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} engines: {node: '>=12'} peerDependencies: @@ -9016,7 +9016,7 @@ packages: consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.3.3 - webpack: 5.82.0 + webpack: 5.82.1 dev: false /well-known-symbols@2.0.0: From f170075c799433bd289bdcb5faa2f50f3d431519 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 11 May 2023 09:37:32 +0100 Subject: [PATCH 180/912] feat(deps): update vue to v3.3 (#20478) --- package.json | 4 +- packages/nuxt/package.json | 4 +- .../nuxt/src/app/components/nuxt-island.ts | 4 +- packages/nuxt/src/app/components/nuxt-link.ts | 2 +- packages/nuxt/src/imports/presets.ts | 7 + .../treeshake-client.test.ts.snap | Bin 7121 -> 7133 bytes packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 4 +- packages/webpack/package.json | 4 +- pnpm-lock.yaml | 228 +++++++++--------- test/bundle.test.ts | 6 +- .../basic/components/SugarCounter.vue | 5 +- 13 files changed, 142 insertions(+), 130 deletions(-) diff --git a/package.json b/package.json index b1c5301312..72adce6b8d 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "nuxi": "workspace:*", "nuxt": "workspace:*", "vite": "^4.3.5", - "vue": "3.2.47", + "vue": "3.3.1", "magic-string": "^0.30.0" }, "devDependencies": { @@ -73,7 +73,7 @@ "ufo": "^1.1.2", "vite": "^4.3.5", "vitest": "^0.31.0", - "vue": "3.2.47", + "vue": "3.3.1", "vue-eslint-parser": "^9.2.1", "vue-tsc": "^1.6.4" }, diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 81dbca5995..ec22b05af5 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -60,7 +60,7 @@ "@nuxt/vite-builder": "workspace:../vite", "@unhead/ssr": "^1.1.26", "@unhead/vue": "^1.1.26", - "@vue/shared": "^3.2.47", + "@vue/shared": "^3.3.1", "c12": "^1.4.1", "chokidar": "^3.5.3", "cookie-es": "^1.0.0", @@ -96,7 +96,7 @@ "unplugin": "^1.3.1", "unplugin-vue-router": "^0.6.4", "untyped": "^1.3.2", - "vue": "^3.2.47", + "vue": "^3.3.1", "vue-bundle-renderer": "^1.0.3", "vue-devtools-stub": "^0.1.0", "vue-router": "^4.1.6" diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index ea78923984..adfe5552ef 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -1,4 +1,4 @@ -import type { RendererNode } from 'vue' +import type { RendererNode, Slots } from 'vue' import { computed, createStaticVNode, defineComponent, getCurrentInstance, h, ref, watch } from 'vue' import { debounce } from 'perfect-debounce' import { hash } from 'ohash' @@ -74,7 +74,7 @@ export default defineComponent({ if (process.server || !nuxtApp.isHydrating) { await fetchComponent() } - return () => h((_, { slots }) => slots.default?.(), { key: key.value }, { + return () => h((_, { slots }) => (slots as Slots).default?.(), { key: key.value }, { default: () => [createStaticVNode(html.value, 1)] }) } diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts index a78ff6a79d..87e48dc628 100644 --- a/packages/nuxt/src/app/components/nuxt-link.ts +++ b/packages/nuxt/src/app/components/nuxt-link.ts @@ -212,7 +212,7 @@ export function defineNuxtLink (options: NuxtLinkOptions) { onNuxtReady(() => { idleId = requestIdleCallback(() => { if (el?.value?.tagName) { - unobserve = observer!.observe(el.value as Element, async () => { + unobserve = observer!.observe(el.value as HTMLElement, async () => { unobserve?.() unobserve = null diff --git a/packages/nuxt/src/imports/presets.ts b/packages/nuxt/src/imports/presets.ts index 52c1247821..2089198317 100644 --- a/packages/nuxt/src/imports/presets.ts +++ b/packages/nuxt/src/imports/presets.ts @@ -136,8 +136,15 @@ const vuePreset = defineUnimportPreset({ 'getCurrentInstance', 'h', 'inject', + 'hasInjectionContext', 'nextTick', 'provide', + 'defineModel', + 'defineOptions', + 'defineSlots', + 'mergeModels', + 'toValue', + 'useModel', 'useAttrs', 'useCssModule', 'useCssVars', diff --git a/packages/nuxt/test/__snapshots__/treeshake-client.test.ts.snap b/packages/nuxt/test/__snapshots__/treeshake-client.test.ts.snap index 575ae99507e6334be6ac5f05fcc590cc79f46c1a..d730e04570c1c3237b714bcf39f762fb652cf29c 100644 GIT binary patch delta 73 zcmca;e%E{hKjY*aM%l??jLvda3i0u&6$SalsS3543e{W+aK477HP_}wMmK(_TD8ev R1dKN~F&Z&%&KF5y2LM|S7LNb` delta 60 zcmca>e$jjbKjY+=0=kof7-a<&YBd$AxfB#qD+=<9Q#CZLCtnnh-#nGkjvuHbVe(}G OSs+K7d2_W$5<38M<`h2w diff --git a/packages/schema/package.json b/packages/schema/package.json index bd6b817d52..e9704cd34a 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -31,7 +31,7 @@ "unbuild": "latest", "unctx": "^2.3.0", "vite": "~4.3.5", - "vue": "3.2.47", + "vue": "3.3.1", "vue-bundle-renderer": "^1.0.3", "vue-router": "^4.1.6", "webpack": "^5.82.1" diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 989f783f14..eaea38ef73 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -42,7 +42,7 @@ "@jest/globals": "^29.5.0", "playwright": "^1.33.0", "vitest": "^0.31.0", - "vue": "^3.2.47" + "vue": "^3.3.1" }, "peerDependenciesMeta": { "@jest/globals": { diff --git a/packages/vite/package.json b/packages/vite/package.json index 245b7539e4..f20063b050 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -21,7 +21,7 @@ "@nuxt/schema": "workspace:../schema", "@types/estree": "^1.0.1", "unbuild": "latest", - "vue": "3.2.47" + "vue": "3.3.1" }, "dependencies": { "@nuxt/kit": "workspace:../kit", @@ -60,7 +60,7 @@ "vue-bundle-renderer": "^1.0.3" }, "peerDependencies": { - "vue": "^3.2.47" + "vue": "^3.3.1" }, "engines": { "node": "^14.18.0 || >=16.10.0" diff --git a/packages/webpack/package.json b/packages/webpack/package.json index ee16cfe08b..bc29170d19 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -67,10 +67,10 @@ "@types/webpack-hot-middleware": "^2.25.6", "@types/webpack-virtual-modules": "^0.1.1", "unbuild": "latest", - "vue": "3.2.47" + "vue": "3.3.1" }, "peerDependencies": { - "vue": "^3.2.47" + "vue": "^3.3.1" }, "engines": { "node": "^14.18.0 || >=16.10.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f9e6f688c9..67dfdd452c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ overrides: nuxi: workspace:* nuxt: workspace:* vite: ^4.3.5 - vue: 3.2.47 + vue: 3.3.1 magic-string: ^0.30.0 importers: @@ -125,8 +125,8 @@ importers: specifier: ^0.31.0 version: 0.31.0(playwright@1.33.0) vue: - specifier: 3.2.47 - version: 3.2.47 + specifier: 3.3.1 + version: 3.3.1 vue-eslint-parser: specifier: ^9.2.1 version: 9.2.1(eslint@8.40.0) @@ -344,10 +344,10 @@ importers: version: 1.1.26 '@unhead/vue': specifier: ^1.1.26 - version: 1.1.26(vue@3.2.47) + version: 1.1.26(vue@3.3.1) '@vue/shared': - specifier: ^3.2.47 - version: 3.2.47 + specifier: ^3.3.1 + version: 3.3.1 c12: specifier: ^1.4.1 version: 1.4.1 @@ -449,13 +449,13 @@ importers: version: 1.3.1 unplugin-vue-router: specifier: ^0.6.4 - version: 0.6.4(rollup@3.21.5)(vue-router@4.1.6)(vue@3.2.47) + version: 0.6.4(rollup@3.21.5)(vue-router@4.1.6)(vue@3.3.1) untyped: specifier: ^1.3.2 version: 1.3.2 vue: - specifier: 3.2.47 - version: 3.2.47 + specifier: 3.3.1 + version: 3.3.1 vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 @@ -464,7 +464,7 @@ importers: version: 0.1.0 vue-router: specifier: ^4.1.6 - version: 4.1.6(vue@3.2.47) + version: 4.1.6(vue@3.3.1) devDependencies: '@parcel/watcher': specifier: ^2.1.0 @@ -480,7 +480,7 @@ importers: version: 2.4.4 '@vitejs/plugin-vue': specifier: ^4.2.1 - version: 4.2.1(vite@4.3.5)(vue@3.2.47) + version: 4.2.1(vite@4.3.5)(vue@3.3.1) acorn: specifier: ^8.8.2 version: 8.8.2 @@ -532,10 +532,10 @@ importers: version: 1.1.26 '@vitejs/plugin-vue': specifier: ^4.2.1 - version: 4.2.1(vite@4.3.5)(vue@3.2.47) + version: 4.2.1(vite@4.3.5)(vue@3.3.1) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.3.5)(vue@3.2.47) + version: 3.0.1(vite@4.3.5)(vue@3.3.1) h3: specifier: ^1.6.5 version: 1.6.5 @@ -555,14 +555,14 @@ importers: specifier: ^4.3.5 version: 4.3.5(@types/node@18.16.7) vue: - specifier: 3.2.47 - version: 3.2.47 + specifier: 3.3.1 + version: 3.3.1 vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 vue-router: specifier: ^4.1.6 - version: 4.1.6(vue@3.2.47) + version: 4.1.6(vue@3.3.1) webpack: specifier: ^5.82.1 version: 5.82.1 @@ -597,8 +597,8 @@ importers: specifier: ^1.1.2 version: 1.1.2 vue: - specifier: ^3.2.47 - version: 3.2.47 + specifier: ^3.3.1 + version: 3.3.1 devDependencies: '@jest/globals': specifier: ^29.5.0 @@ -623,10 +623,10 @@ importers: version: 5.0.2(rollup@3.21.5) '@vitejs/plugin-vue': specifier: ^4.2.1 - version: 4.2.1(vite@4.3.5)(vue@3.2.47) + version: 4.2.1(vite@4.3.5)(vue@3.3.1) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.3.5)(vue@3.2.47) + version: 3.0.1(vite@4.3.5)(vue@3.3.1) autoprefixer: specifier: ^10.4.14 version: 10.4.14(postcss@8.4.23) @@ -728,8 +728,8 @@ importers: specifier: latest version: 1.2.1 vue: - specifier: 3.2.47 - version: 3.2.47 + specifier: 3.3.1 + version: 3.3.1 packages/webpack: dependencies: @@ -831,7 +831,7 @@ importers: version: 1.0.3 vue-loader: specifier: ^17.1.0 - version: 17.1.0(vue@3.2.47)(webpack@5.82.1) + version: 17.1.0(vue@3.3.1)(webpack@5.82.1) webpack: specifier: ^5.82.1 version: 5.82.1 @@ -873,8 +873,8 @@ importers: specifier: latest version: 1.2.1 vue: - specifier: 3.2.47 - version: 3.2.47 + specifier: 3.3.1 + version: 3.3.1 playground: dependencies: @@ -905,7 +905,7 @@ importers: version: 0.31.0(playwright@1.33.0) vue-router: specifier: latest - version: 4.1.6(vue@3.2.47) + version: 4.1.6(vue@3.3.1) test/fixtures/minimal: dependencies: @@ -2409,7 +2409,7 @@ packages: '@unhead/shared': 1.1.26 dev: false - /@unhead/vue@1.1.26(vue@3.2.47): + /@unhead/vue@1.1.26(vue@3.3.1): resolution: {integrity: sha512-UpxQ0KGmOoiN+Dg19zto5KTcnGV5chBmgiVJTDqUF4BPfr24vRrR65sZGdMoNV7weuD3AD/K0osk2ru+vXxRrA==} peerDependencies: vue: '>=2.7 || >=3' @@ -2418,7 +2418,7 @@ packages: '@unhead/shared': 1.1.26 hookable: 5.5.3 unhead: 1.1.26 - vue: 3.2.47 + vue: 3.3.1 dev: false /@vercel/nft@0.22.6: @@ -2441,7 +2441,7 @@ packages: - encoding - supports-color - /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.5)(vue@3.2.47): + /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.5)(vue@3.3.1): resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2452,11 +2452,11 @@ packages: '@babel/plugin-transform-typescript': 7.21.0(@babel/core@7.21.4) '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.4) vite: 4.3.5(@types/node@18.16.7) - vue: 3.2.47 + vue: 3.3.1 transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@4.2.1(vite@4.3.5)(vue@3.2.47): + /@vitejs/plugin-vue@4.2.1(vite@4.3.5)(vue@3.3.1): resolution: {integrity: sha512-ZTZjzo7bmxTRTkb8GSTwkPOYDIP7pwuyV+RV53c9PYUouwcbkIZIvWvNWlX2b1dYZqtOv7D6iUAnJLVNGcLrSw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2464,7 +2464,7 @@ packages: vue: ^3.2.25 dependencies: vite: 4.3.5(@types/node@18.16.7) - vue: 3.2.47 + vue: 3.3.1 /@vitest/expect@0.31.0: resolution: {integrity: sha512-Jlm8ZTyp6vMY9iz9Ny9a0BHnCG4fqBa8neCF6Pk/c/6vkUk49Ls6UBlgGAU82QnzzoaUs9E/mUhq/eq9uMOv/g==} @@ -2528,10 +2528,10 @@ packages: dependencies: '@volar/language-core': 1.4.1 '@volar/source-map': 1.4.1 - '@vue/compiler-dom': 3.3.0-beta.5 - '@vue/compiler-sfc': 3.3.0-beta.5 + '@vue/compiler-dom': 3.3.1 + '@vue/compiler-sfc': 3.3.1 '@vue/reactivity': 3.3.0-beta.3 - '@vue/shared': 3.3.0-beta.5 + '@vue/shared': 3.3.1 minimatch: 9.0.0 muggle-string: 0.2.2 vue-template-compiler: 2.7.14 @@ -2545,7 +2545,7 @@ packages: '@volar/vue-language-core': 1.6.4 typescript: 5.0.4 - /@vue-macros/common@1.3.1(rollup@3.21.5)(vue@3.2.47): + /@vue-macros/common@1.3.1(rollup@3.21.5)(vue@3.3.1): resolution: {integrity: sha512-Lc5aP/8HNJD1XrnvpeNuWcCf82bZdR3auN/chA1b/1rKZgSnmQkH9f33tKO9qLwXSy+u4hpCi8Rw+oUuF1KCeg==} engines: {node: '>=14.19.0'} peerDependencies: @@ -2559,7 +2559,7 @@ packages: '@vue/compiler-sfc': 3.3.0-beta.5 local-pkg: 0.4.3 magic-string-ast: 0.1.2 - vue: 3.2.47 + vue: 3.3.1 transitivePeerDependencies: - rollup dev: false @@ -2583,14 +2583,6 @@ packages: - '@babel/core' - supports-color - /@vue/compiler-core@3.2.47: - resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==} - dependencies: - '@babel/parser': 7.21.4 - '@vue/shared': 3.2.47 - estree-walker: 2.0.2 - source-map: 0.6.1 - /@vue/compiler-core@3.3.0-beta.5: resolution: {integrity: sha512-rwKXIMPDKBzKypcZ7Zc+i4e7ItnhlMEu9QZveek2yLxzMG0QimvZnVKB7eD21cQ9MCwEYW4bb8zjisPMJNNaqQ==} dependencies: @@ -2598,32 +2590,28 @@ packages: '@vue/shared': 3.3.0-beta.5 estree-walker: 2.0.2 source-map-js: 1.0.2 + dev: false - /@vue/compiler-dom@3.2.47: - resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==} + /@vue/compiler-core@3.3.1: + resolution: {integrity: sha512-5le1qYSBgLWg2jdLrbydlhnPJkkzMw46UrRUvTnOKlfg6pThtm9ohhqBhNPHbr0RcM1MCbK5WZe/3Ghz0SZjpQ==} dependencies: - '@vue/compiler-core': 3.2.47 - '@vue/shared': 3.2.47 + '@babel/parser': 7.21.4 + '@vue/shared': 3.3.1 + estree-walker: 2.0.2 + source-map-js: 1.0.2 /@vue/compiler-dom@3.3.0-beta.5: resolution: {integrity: sha512-OsYuAzl8zHRym5TfDhCLrcTSBt71BFJXnTC9uWO+SfgqadadWZxv1piPebjtwJcODkks5OAGfdhxzKdNzzddXw==} dependencies: '@vue/compiler-core': 3.3.0-beta.5 '@vue/shared': 3.3.0-beta.5 + dev: false - /@vue/compiler-sfc@3.2.47: - resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==} + /@vue/compiler-dom@3.3.1: + resolution: {integrity: sha512-VmgIsoLivCft3+oNc5KM7b9wd0nZxP/g2qilMwi1hJyGA624KWnNKHn4hzBQs4FpzydUVpNy+TWVT8KiRCh3MQ==} dependencies: - '@babel/parser': 7.21.4 - '@vue/compiler-core': 3.2.47 - '@vue/compiler-dom': 3.2.47 - '@vue/compiler-ssr': 3.2.47 - '@vue/reactivity-transform': 3.2.47 - '@vue/shared': 3.2.47 - estree-walker: 2.0.2 - magic-string: 0.30.0 - postcss: 8.4.23 - source-map: 0.6.1 + '@vue/compiler-core': 3.3.1 + '@vue/shared': 3.3.1 /@vue/compiler-sfc@3.3.0-beta.5: resolution: {integrity: sha512-CbiY2dkzU5IG652ygLUSufLGvXPKI12TQp1PeHs9acjgFjhvSJCSKmAOaCWnXgFsAgpbipPHgAMfWJ8B0h6Sjw==} @@ -2638,31 +2626,38 @@ packages: magic-string: 0.30.0 postcss: 8.4.23 source-map-js: 1.0.2 + dev: false - /@vue/compiler-ssr@3.2.47: - resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==} + /@vue/compiler-sfc@3.3.1: + resolution: {integrity: sha512-G+FPwBbXSLaA4+Ry5/bdD9Oda+sRslQcE9o6JSZaougRiT4OjVL0vtkbQHPrGRTULZV28OcrAjRfSZOSB0OTXQ==} dependencies: - '@vue/compiler-dom': 3.2.47 - '@vue/shared': 3.2.47 + '@babel/parser': 7.21.4 + '@vue/compiler-core': 3.3.1 + '@vue/compiler-dom': 3.3.1 + '@vue/compiler-ssr': 3.3.1 + '@vue/reactivity-transform': 3.3.1 + '@vue/shared': 3.3.1 + estree-walker: 2.0.2 + magic-string: 0.30.0 + postcss: 8.4.23 + source-map-js: 1.0.2 /@vue/compiler-ssr@3.3.0-beta.5: resolution: {integrity: sha512-16njciFrQ8ejVdH5tsaPbJwpkpBB2z2VWCxfC69UOylCgPxiW01syE9S/mozRvv5Ken9Sr9bd2MjebG/SEpPNg==} dependencies: '@vue/compiler-dom': 3.3.0-beta.5 '@vue/shared': 3.3.0-beta.5 + dev: false + + /@vue/compiler-ssr@3.3.1: + resolution: {integrity: sha512-QOQWGNCWuSeyKx4KvWSJlnIMGg+/2oCHgkFUYo7aJ+9Uaaz45yRgKQ+FNigy50NYBQIhpXn2e4OSR8GXh4knrQ==} + dependencies: + '@vue/compiler-dom': 3.3.1 + '@vue/shared': 3.3.1 /@vue/devtools-api@6.5.0: resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} - /@vue/reactivity-transform@3.2.47: - resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==} - dependencies: - '@babel/parser': 7.21.4 - '@vue/compiler-core': 3.2.47 - '@vue/shared': 3.2.47 - estree-walker: 2.0.2 - magic-string: 0.30.0 - /@vue/reactivity-transform@3.3.0-beta.5: resolution: {integrity: sha512-v/PCri6+vL8WwwgowHlIopwiqonCj9wV60ZYDdX8AMDxk9Q01h2cWh61JF4XOX7qDs7NdJ7zSVyKSz4B98OXBw==} dependencies: @@ -2671,47 +2666,58 @@ packages: '@vue/shared': 3.3.0-beta.5 estree-walker: 2.0.2 magic-string: 0.30.0 + dev: false - /@vue/reactivity@3.2.47: - resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==} + /@vue/reactivity-transform@3.3.1: + resolution: {integrity: sha512-MkOrJauAGH4MNdxGW/PmrDegMyOGX0wGIdKUZJRBXOTpotDONg7/TPJe2QeGeBCow/5v9iOqZOWCfvmOWIaDMg==} dependencies: - '@vue/shared': 3.2.47 + '@babel/parser': 7.21.4 + '@vue/compiler-core': 3.3.1 + '@vue/shared': 3.3.1 + estree-walker: 2.0.2 + magic-string: 0.30.0 /@vue/reactivity@3.3.0-beta.3: resolution: {integrity: sha512-9VjWfWgZJ18YXEkfnDfZr33RyLBa6zc0RARLkMqMApWvM26eusZAZ4hhyxlgODBU/mEFk4XOGIAtwwSQedA0MQ==} dependencies: '@vue/shared': 3.3.0-beta.3 - /@vue/runtime-core@3.2.47: - resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==} + /@vue/reactivity@3.3.1: + resolution: {integrity: sha512-zCfmazOtyUdC1NS/EPiSYJ4RqojqmTAviJyBbyVvY8zAv5NhK44Yfw0E1tt+m5vz0ZO1ptI9jDKBr3MWIEkpgw==} dependencies: - '@vue/reactivity': 3.2.47 - '@vue/shared': 3.2.47 + '@vue/shared': 3.3.1 - /@vue/runtime-dom@3.2.47: - resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==} + /@vue/runtime-core@3.3.1: + resolution: {integrity: sha512-Ljb37LYafhQqKIasc0r32Cva8gIh6VeSMjlwO6V03tCjHd18gmjP0F4UD+8/a59sGTysAgA8Rb9lIC2DVxRz2Q==} dependencies: - '@vue/runtime-core': 3.2.47 - '@vue/shared': 3.2.47 - csstype: 2.6.21 + '@vue/reactivity': 3.3.1 + '@vue/shared': 3.3.1 - /@vue/server-renderer@3.2.47(vue@3.2.47): - resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==} + /@vue/runtime-dom@3.3.1: + resolution: {integrity: sha512-NBjYbQPtMklb7lsJsM2Juv5Ygry6mvZP7PdH1GZqrzfLkvlplQT3qCtQMd/sib6yiy8t9m/Y4hVU7X9nzb9Oeg==} + dependencies: + '@vue/runtime-core': 3.3.1 + '@vue/shared': 3.3.1 + csstype: 3.1.2 + + /@vue/server-renderer@3.3.1(vue@3.3.1): + resolution: {integrity: sha512-sod8ggOwbkQXw3lBjfzrbdxRS9lw/lNHoMaXghHawNYowf+4WoaLWD5ouz6fPZadUqNKAsqK95p8DYb1vcVfPA==} peerDependencies: - vue: 3.2.47 + vue: 3.3.1 dependencies: - '@vue/compiler-ssr': 3.2.47 - '@vue/shared': 3.2.47 - vue: 3.2.47 - - /@vue/shared@3.2.47: - resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} + '@vue/compiler-ssr': 3.3.1 + '@vue/shared': 3.3.1 + vue: 3.3.1 /@vue/shared@3.3.0-beta.3: resolution: {integrity: sha512-st1SnB/Bkbb9TsieeI4TRX9TqHYIR5wvIma3ZtEben55EYSWa1q5u2BhTNgABSdH+rv3Xwfrvpwh5PmCw6Y53g==} /@vue/shared@3.3.0-beta.5: resolution: {integrity: sha512-ImwhHfOzuQrfA05Kx4s7J9g7QJt0sZqSlPvPdd6xj5tTEnPNNJYZOHaIP973mtuEuv4Zfh9v+CLiER6E6gtSqg==} + dev: false + + /@vue/shared@3.3.1: + resolution: {integrity: sha512-ybDBtQ+479HL/bkeIOIAwgpeAEACzztkvulJLbK3JMFuTOv4qDivmV3AIsR8RHYJ+RD9tQxcHWBsX4GqEcYrfw==} /@webassemblyjs/ast@1.11.5: resolution: {integrity: sha512-LHY/GSAZZRpsNQH+/oHqhRQ5FT7eoULcBqgfyTB5nQHogFnK3/7QoN7dLnwSE/JkUAF0SrRuclT7ODqMFtWxxQ==} @@ -3845,8 +3851,8 @@ packages: css-tree: 2.2.1 dev: false - /csstype@2.6.21: - resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} /cuint@0.2.2: resolution: {integrity: sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==} @@ -8429,7 +8435,7 @@ packages: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} - /unplugin-vue-router@0.6.4(rollup@3.21.5)(vue-router@4.1.6)(vue@3.2.47): + /unplugin-vue-router@0.6.4(rollup@3.21.5)(vue-router@4.1.6)(vue@3.3.1): resolution: {integrity: sha512-9THVhhtbVFxbsIibjK59oPwMI1UCxRWRPX7azSkTUABsxovlOXJys5SJx0kd/0oKIqNJuYgkRfAgPuO77SqCOg==} peerDependencies: vue-router: ^4.1.0 @@ -8439,7 +8445,7 @@ packages: dependencies: '@babel/types': 7.21.5 '@rollup/pluginutils': 5.0.2(rollup@3.21.5) - '@vue-macros/common': 1.3.1(rollup@3.21.5)(vue@3.2.47) + '@vue-macros/common': 1.3.1(rollup@3.21.5)(vue@3.3.1) ast-walker-scope: 0.4.1 chokidar: 3.5.3 fast-glob: 3.2.12 @@ -8449,7 +8455,7 @@ packages: pathe: 1.1.0 scule: 1.0.0 unplugin: 1.3.1 - vue-router: 4.1.6(vue@3.2.47) + vue-router: 4.1.6(vue@3.3.1) yaml: 2.2.2 transitivePeerDependencies: - rollup @@ -8830,7 +8836,7 @@ packages: - supports-color dev: true - /vue-loader@17.1.0(vue@3.2.47)(webpack@5.82.1): + /vue-loader@17.1.0(vue@3.3.1)(webpack@5.82.1): resolution: {integrity: sha512-zAjrT+TNWTpgRODxqDfzbDyvuTf5kCP9xmMk8aspQKuYNnTY2r0XK/bHu1DKLpSpk0I6fkQph5OLKB7HcRIPZw==} peerDependencies: '@vue/compiler-sfc': '*' @@ -8844,18 +8850,18 @@ packages: dependencies: chalk: 4.1.2 hash-sum: 2.0.0 - vue: 3.2.47 + vue: 3.3.1 watchpack: 2.4.0 webpack: 5.82.1 dev: false - /vue-router@4.1.6(vue@3.2.47): + /vue-router@4.1.6(vue@3.3.1): resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==} peerDependencies: vue: ^3.2.0 dependencies: '@vue/devtools-api': 6.5.0 - vue: 3.2.47 + vue: 3.3.1 /vue-template-compiler@2.7.14: resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==} @@ -8874,14 +8880,14 @@ packages: semver: 7.5.0 typescript: 5.0.4 - /vue@3.2.47: - resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==} + /vue@3.3.1: + resolution: {integrity: sha512-3Rwy4I5idbPVSDZu6I+fFh6tdDSZbauImCTqLxE7y0LpHtiDvPeY01OI7RkFPbva1nk4hoO0sv/NzosH2h60sg==} dependencies: - '@vue/compiler-dom': 3.2.47 - '@vue/compiler-sfc': 3.2.47 - '@vue/runtime-dom': 3.2.47 - '@vue/server-renderer': 3.2.47(vue@3.2.47) - '@vue/shared': 3.2.47 + '@vue/compiler-dom': 3.3.1 + '@vue/compiler-sfc': 3.3.1 + '@vue/runtime-dom': 3.3.1 + '@vue/server-renderer': 3.3.1(vue@3.3.1) + '@vue/shared': 3.3.1 /walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} diff --git a/test/bundle.test.ts b/test/bundle.test.ts index ce8bf0b63d..667958f84f 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -34,7 +34,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e it('default client bundle size', async () => { stats.client = await analyzeSizes('**/*.js', publicDir) - expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"96.6k"') + expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"97.6k"') expect(stats.client.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -48,7 +48,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"61.7k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2658k"') + expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2283k"') const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -83,7 +83,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e "pathe", "radix3", "scule", - "source-map", + "source-map-js", "ufo", "uncrypto", "unctx", diff --git a/test/fixtures/basic/components/SugarCounter.vue b/test/fixtures/basic/components/SugarCounter.vue index 372b4055cc..69bdd45604 100644 --- a/test/fixtures/basic/components/SugarCounter.vue +++ b/test/fixtures/basic/components/SugarCounter.vue @@ -1,10 +1,9 @@ diff --git a/packages/nuxt/src/app/components/dev-only.ts b/packages/nuxt/src/app/components/dev-only.ts index ba7cd22dea..914ba6f6e4 100644 --- a/packages/nuxt/src/app/components/dev-only.ts +++ b/packages/nuxt/src/app/components/dev-only.ts @@ -6,6 +6,6 @@ export default defineComponent({ if (process.dev) { return () => props.slots.default?.() } - return () => null + return () => props.slots.fallback?.() } }) diff --git a/packages/nuxt/src/core/plugins/dev-only.ts b/packages/nuxt/src/core/plugins/dev-only.ts index b0c6226cc3..ce6207c14c 100644 --- a/packages/nuxt/src/core/plugins/dev-only.ts +++ b/packages/nuxt/src/core/plugins/dev-only.ts @@ -9,7 +9,7 @@ interface DevOnlyPluginOptions { } export const DevOnlyPlugin = createUnplugin((options: DevOnlyPluginOptions) => { - const DEVONLY_COMP_RE = /<(dev-only|DevOnly)>[\s\S]*?<\/(dev-only|DevOnly)>/g + const DEVONLY_COMP_RE = /<(?:dev-only|DevOnly)>[^<]*(?:(?[\s\S]*?)<\/template>)?[\s\S]*?<\/(?:dev-only|DevOnly)>/g return { name: 'nuxt:server-devonly:transform', @@ -29,7 +29,7 @@ export const DevOnlyPlugin = createUnplugin((options: DevOnlyPluginOptions) => { const s = new MagicString(code) const strippedCode = stripLiteral(code) for (const match of strippedCode.matchAll(DEVONLY_COMP_RE) || []) { - s.remove(match.index!, match.index! + match[0].length) + s.overwrite(match.index!, match.index! + match[0].length, match.groups?.fallback || '') } if (s.hasChanged()) { diff --git a/test/basic.test.ts b/test/basic.test.ts index ea4ce77ed9..cc1c913fd4 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -83,6 +83,8 @@ describe('pages', () => { expect(html).toContain('Composable | star: auto imported from ~/composables/nested/bar.ts via star export') // should import components expect(html).toContain('This is a custom component with a named export.') + // should remove dev-only and replace with any fallback content + expect(html).toContain(isDev() ? 'Some dev-only info' : 'Some prod-only info') // should apply attributes to client-only components expect(html).toContain('
') // should render server-only components diff --git a/test/fixtures/basic/pages/index.vue b/test/fixtures/basic/pages/index.vue index 7b6c4bb734..2b31da6380 100644 --- a/test/fixtures/basic/pages/index.vue +++ b/test/fixtures/basic/pages/index.vue @@ -11,6 +11,14 @@
Composable | star: {{ useNestedBar() }}
Some dev-only info
Some dev-only info
+
+ + Some dev-only info + + +
Path: {{ $route.fullPath }}
Link From 7006064567b39614d8545d578ff1394023511fc0 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sun, 14 May 2023 12:55:26 +0100 Subject: [PATCH 198/912] feat(kit): `addBuildPlugin` for builder-agnostic implementation (#20587) --- packages/kit/src/build.ts | 15 +++++++++++++++ test/fixtures/basic/nuxt.config.ts | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/kit/src/build.ts b/packages/kit/src/build.ts index c8cb90c3fa..43444d11f6 100644 --- a/packages/kit/src/build.ts +++ b/packages/kit/src/build.ts @@ -136,3 +136,18 @@ export function addVitePlugin (pluginOrGetter: VitePlugin | VitePlugin[] | (() = } }, options) } + +interface AddBuildPluginFactory { + vite?: () => VitePlugin | VitePlugin[] + webpack?: () => WebpackPluginInstance | WebpackPluginInstance[] +} + +export function addBuildPlugin (pluginFactory: AddBuildPluginFactory, options?: ExtendConfigOptions) { + if (pluginFactory.vite) { + addVitePlugin(pluginFactory.vite, options) + } + + if (pluginFactory.webpack) { + addWebpackPlugin(pluginFactory.webpack, options) + } +} diff --git a/test/fixtures/basic/nuxt.config.ts b/test/fixtures/basic/nuxt.config.ts index 12921560fc..7e9fdbca0a 100644 --- a/test/fixtures/basic/nuxt.config.ts +++ b/test/fixtures/basic/nuxt.config.ts @@ -1,4 +1,4 @@ -import { addComponent, addVitePlugin, addWebpackPlugin } from 'nuxt/kit' +import { addBuildPlugin, addComponent } from 'nuxt/kit' import type { NuxtPage } from 'nuxt/schema' import { createUnplugin } from 'unplugin' import { withoutLeadingSlash } from 'ufo' @@ -104,8 +104,7 @@ export default defineNuxtConfig({ if (id === 'virtual.css') { return ':root { --virtual: red }' } } })) - addVitePlugin(() => plugin.vite()) - addWebpackPlugin(() => plugin.webpack()) + addBuildPlugin(plugin) }, function (_options, nuxt) { const routesToDuplicate = ['/async-parent', '/fixed-keyed-child-parent', '/keyed-child-parent', '/with-layout', '/with-layout2'] From ebbda2cbe47b78c119a9ac285cae4ebd579a52a4 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sun, 14 May 2023 12:56:15 +0100 Subject: [PATCH 199/912] fix(vite): dedupe/optimize more vue core deps (#20829) --- packages/vite/src/client.ts | 9 ++++++++- packages/vite/src/vite.ts | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/client.ts b/packages/vite/src/client.ts index d33e8d2e22..b733522414 100644 --- a/packages/vite/src/client.ts +++ b/packages/vite/src/client.ts @@ -48,7 +48,14 @@ export async function buildClient (ctx: ViteBuildContext) { '#build/plugins': resolve(ctx.nuxt.options.buildDir, 'plugins/client'), '#internal/nitro': resolve(ctx.nuxt.options.buildDir, 'nitro.client.mjs') }, - dedupe: ['vue'] + dedupe: [ + 'vue', + // basic reactivity + '@vue/reactivity', '@vue/runtime-core', '@vue/runtime-dom', '@vue/shared', + // runtime compiler + '@vue/compiler-sfc', '@vue/compiler-dom', '@vue/compiler-core', '@vue/compiler-ssr' + ] + }, cacheDir: resolve(ctx.nuxt.options.rootDir, 'node_modules/.cache/vite', 'client'), build: { diff --git a/packages/vite/src/vite.ts b/packages/vite/src/vite.ts index 3eb003ff67..f5c4bb6770 100644 --- a/packages/vite/src/vite.ts +++ b/packages/vite/src/vite.ts @@ -67,7 +67,7 @@ export async function bundle (nuxt: Nuxt) { } }, optimizeDeps: { - include: ['vue'], + include: ['vue', '@vue/reactivity', '@vue/runtime-core', '@vue/runtime-dom', '@vue/shared'], exclude: ['nuxt/app'] }, css: resolveCSSOptions(nuxt), From 603e7e7fb1c0f2da36a758db92f6cca84fee68bb Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Sun, 14 May 2023 23:22:54 +0200 Subject: [PATCH 200/912] feat(nuxt): allow keeping fallback for `NuxtClientFallback` (#20336) --- .../2.components/1.nuxt-client-fallback.md | 3 +++ .../app/components/client-fallback.client.ts | 17 +++++++++++------ .../app/components/client-fallback.server.ts | 4 ++++ test/basic.test.ts | 2 ++ test/fixtures/basic/pages/client-fallback.vue | 10 ++++++++++ 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/docs/3.api/2.components/1.nuxt-client-fallback.md b/docs/3.api/2.components/1.nuxt-client-fallback.md index 1707e139ef..4abdc0d497 100644 --- a/docs/3.api/2.components/1.nuxt-client-fallback.md +++ b/docs/3.api/2.components/1.nuxt-client-fallback.md @@ -30,6 +30,9 @@ This component is experimental and in order to use it you must enable the `exper - **default**: `div` - **placeholder** | **fallback**: Specify fallback content to be rendered if the slot fails to render. - **type**: `string` +- **keepFallback**: Keep the fallback content if it failed to render server-side. + - **type**: `boolean` + - **default**: `false` ```vue ``` -::alert{type=warning} -Slots are not supported by server components in their current state of development. +::alert{type=info} +Slots can be interactive and are wrapped within a `
` with `display: contents;` :: ### Paired with a `.client` component diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index b0c76d0524..8554792ac3 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -91,6 +91,7 @@ "strip-literal": "^1.0.1", "ufo": "^1.1.2", "ultrahtml": "^1.2.0", + "uncrypto": "^0.1.2", "unctx": "^2.3.0", "unenv": "^1.4.1", "unimport": "^3.0.6", diff --git a/packages/nuxt/src/app/components/island-renderer.ts b/packages/nuxt/src/app/components/island-renderer.ts index bb4a8e9e65..07f5409803 100644 --- a/packages/nuxt/src/app/components/island-renderer.ts +++ b/packages/nuxt/src/app/components/island-renderer.ts @@ -21,6 +21,7 @@ export default defineComponent({ statusMessage: `Island component not found: ${JSON.stringify(component)}` }) } - return () => createVNode(component || 'span', props.context.props) + + return () => createVNode(component || 'span', { ...props.context.props, 'nuxt-ssr-component-uid': '' }) } }) diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index adfe5552ef..d3a077520f 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -1,16 +1,20 @@ -import type { RendererNode, Slots } from 'vue' -import { computed, createStaticVNode, defineComponent, getCurrentInstance, h, ref, watch } from 'vue' +import { Fragment, Teleport, computed, createStaticVNode, createVNode, defineComponent, getCurrentInstance, h, nextTick, onMounted, ref, watch } from 'vue' import { debounce } from 'perfect-debounce' import { hash } from 'ohash' import { appendResponseHeader } from 'h3' import { useHead } from '@unhead/vue' - +import { randomUUID } from 'uncrypto' // eslint-disable-next-line import/no-restricted-paths import type { NuxtIslandResponse } from '../../core/runtime/nitro/renderer' +import { getFragmentHTML, getSlotProps } from './utils' import { useNuxtApp } from '#app/nuxt' import { useRequestEvent } from '#app/composables/ssr' const pKey = '_islandPromises' +const SSR_UID_RE = /nuxt-ssr-component-uid="([^"]*)"/ +const UID_ATTR = /nuxt-ssr-component-uid(="([^"]*)")?/ +const SLOTNAME_RE = /nuxt-ssr-slot-name="([^"]*)"/g +const SLOT_FALLBACK_RE = /
]*><\/div>(((?!
]*>)[\s\S])*)
]*><\/div>/g export default defineComponent({ name: 'NuxtIsland', @@ -28,15 +32,37 @@ export default defineComponent({ default: () => ({}) } }, - async setup (props) { + async setup (props, { slots }) { const nuxtApp = useNuxtApp() const hashId = computed(() => hash([props.name, props.props, props.context])) const instance = getCurrentInstance()! const event = useRequestEvent() + const mounted = ref(false) + onMounted(() => { mounted.value = true }) + const ssrHTML = ref(process.client ? getFragmentHTML(instance.vnode?.el ?? null).join('') ?? '
' : '
') + const uid = ref(ssrHTML.value.match(SSR_UID_RE)?.[1] ?? randomUUID()) + const availableSlots = computed(() => { + return [...ssrHTML.value.matchAll(SLOTNAME_RE)].map(m => m[1]) + }) - const html = ref(process.client ? getFragmentHTML(instance?.vnode?.el).join('') ?? '
' : '
') + const html = computed(() => { + const currentSlots = Object.keys(slots) + return ssrHTML.value.replace(SLOT_FALLBACK_RE, (full, slotName, content) => { + // remove fallback to insert slots + if (currentSlots.includes(slotName)) { + return '' + } + return content + }) + }) + function setUid () { + uid.value = ssrHTML.value.match(SSR_UID_RE)?.[1] ?? randomUUID() as string + } const cHead = ref>>>({ link: [], style: [] }) useHead(cHead) + const slotProps = computed(() => { + return getSlotProps(ssrHTML.value) + }) function _fetchComponent () { const url = `/__nuxt_island/${props.name}:${hashId.value}` @@ -55,16 +81,23 @@ export default defineComponent({ const key = ref(0) async function fetchComponent () { nuxtApp[pKey] = nuxtApp[pKey] || {} - if (!nuxtApp[pKey][hashId.value]) { - nuxtApp[pKey][hashId.value] = _fetchComponent().finally(() => { - delete nuxtApp[pKey]![hashId.value] + if (!nuxtApp[pKey][uid.value]) { + nuxtApp[pKey][uid.value] = _fetchComponent().finally(() => { + delete nuxtApp[pKey]![uid.value] }) } - const res: NuxtIslandResponse = await nuxtApp[pKey][hashId.value] + const res: NuxtIslandResponse = await nuxtApp[pKey][uid.value] cHead.value.link = res.head.link cHead.value.style = res.head.style - html.value = res.html + ssrHTML.value = res.html.replace(UID_ATTR, () => { + return `nuxt-ssr-component-uid="${randomUUID()}"` + }) key.value++ + if (process.client) { + // must await next tick for Teleport to work correctly with static node re-rendering + await nextTick() + } + setUid() } if (process.client) { @@ -74,40 +107,21 @@ export default defineComponent({ if (process.server || !nuxtApp.isHydrating) { await fetchComponent() } - return () => h((_, { slots }) => (slots as Slots).default?.(), { key: key.value }, { - default: () => [createStaticVNode(html.value, 1)] - }) + + return () => { + const nodes = [createVNode(Fragment, { + key: key.value + }, [h(createStaticVNode(html.value, 1))])] + if (uid.value && (mounted.value || nuxtApp.isHydrating || process.server)) { + for (const slot in slots) { + if (availableSlots.value.includes(slot)) { + nodes.push(createVNode(Teleport, { to: process.client ? `[nuxt-ssr-component-uid='${uid.value}'] [nuxt-ssr-slot-name='${slot}']` : `uid=${uid.value};slot=${slot}` }, { + default: () => (slotProps.value[slot] ?? [undefined]).map((data: any) => slots[slot]?.(data)) + })) + } + } + } + return nodes + } } }) - -// TODO refactor with https://github.com/nuxt/nuxt/pull/19231 -function getFragmentHTML (element: RendererNode | null) { - if (element) { - if (element.nodeName === '#comment' && element.nodeValue === '[') { - return getFragmentChildren(element) - } - return [element.outerHTML] - } - return [] -} - -function getFragmentChildren (element: RendererNode | null, blocks: string[] = []) { - if (element && element.nodeName) { - if (isEndFragment(element)) { - return blocks - } else if (!isStartFragment(element)) { - blocks.push(element.outerHTML) - } - - getFragmentChildren(element.nextSibling, blocks) - } - return blocks -} - -function isStartFragment (element: RendererNode) { - return element.nodeName === '#comment' && element.nodeValue === '[' -} - -function isEndFragment (element: RendererNode) { - return element.nodeName === '#comment' && element.nodeValue === ']' -} diff --git a/packages/nuxt/src/app/components/utils.ts b/packages/nuxt/src/app/components/utils.ts index 8fe1ec3c2c..386a81f0c9 100644 --- a/packages/nuxt/src/app/components/utils.ts +++ b/packages/nuxt/src/app/components/utils.ts @@ -1,7 +1,8 @@ import { h } from 'vue' -import type { Component } from 'vue' +import type { Component, RendererNode } from 'vue' // eslint-disable-next-line -import { isString, isPromise, isArray } from '@vue/shared' +import { isString, isPromise, isArray, isObject } from '@vue/shared' +import destr from 'destr' /** * Internal utility @@ -44,3 +45,99 @@ export function createBuffer () { } } } + +const TRANSLATE_RE = /&(nbsp|amp|quot|lt|gt);/g +const NUMSTR_RE = /&#(\d+);/gi +export function decodeHtmlEntities (html: string) { + const translateDict = { + nbsp: ' ', + amp: '&', + quot: '"', + lt: '<', + gt: '>' + } as const + return html.replace(TRANSLATE_RE, function (_, entity: keyof typeof translateDict) { + return translateDict[entity] + }).replace(NUMSTR_RE, function (_, numStr: string) { + const num = parseInt(numStr, 10) + return String.fromCharCode(num) + }) +} + +/** + * helper for NuxtIsland to generate a correct array for scoped data + */ +export function vforToArray (source: any): any[] { + if (isArray(source)) { + return source + } else if (isString(source)) { + return source.split('') + } else if (typeof source === 'number') { + if (process.dev && !Number.isInteger(source)) { + console.warn(`The v-for range expect an integer value but got ${source}.`) + } + const array = [] + for (let i = 0; i < source; i++) { + array[i] = i + } + return array + } else if (isObject(source)) { + if (source[Symbol.iterator as any]) { + return Array.from(source as Iterable, item => + item + ) + } else { + const keys = Object.keys(source) + const array = new Array(keys.length) + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i] + array[i] = source[key] + } + return array + } + } + return [] +} + +export function getFragmentHTML (element: RendererNode | null) { + if (element) { + if (element.nodeName === '#comment' && element.nodeValue === '[') { + return getFragmentChildren(element) + } + return [element.outerHTML] + } + return [] +} + +function getFragmentChildren (element: RendererNode | null, blocks: string[] = []) { + if (element && element.nodeName) { + if (isEndFragment(element)) { + return blocks + } else if (!isStartFragment(element)) { + blocks.push(element.outerHTML) + } + + getFragmentChildren(element.nextSibling, blocks) + } + return blocks +} + +function isStartFragment (element: RendererNode) { + return element.nodeName === '#comment' && element.nodeValue === '[' +} + +function isEndFragment (element: RendererNode) { + return element.nodeName === '#comment' && element.nodeValue === ']' +} +const SLOT_PROPS_RE = /]*nuxt-ssr-slot-name="([^"]*)" nuxt-ssr-slot-data="([^"]*)"[^/|>]*>/g + +export function getSlotProps (html: string) { + const slotsDivs = html.matchAll(SLOT_PROPS_RE) + const data:Record = {} + for (const slot of slotsDivs) { + const [_, slotName, json] = slot + const slotData = destr(decodeHtmlEntities(json)) + data[slotName] = slotData + } + return data +} diff --git a/packages/nuxt/src/components/islandsTransform.ts b/packages/nuxt/src/components/islandsTransform.ts new file mode 100644 index 0000000000..c6da0fff4e --- /dev/null +++ b/packages/nuxt/src/components/islandsTransform.ts @@ -0,0 +1,101 @@ +import { pathToFileURL } from 'node:url' +import type { Component } from '@nuxt/schema' +import { parseURL } from 'ufo' +import { createUnplugin } from 'unplugin' +import MagicString from 'magic-string' +import { ELEMENT_NODE, parse, walk } from 'ultrahtml' + +interface ServerOnlyComponentTransformPluginOptions { + getComponents: () => Component[] +} + +const SCRIPT_RE = /]*>/g + +export const islandsTransform = createUnplugin((options: ServerOnlyComponentTransformPluginOptions) => { + return { + name: 'server-only-component-transform', + enforce: 'pre', + transformInclude (id) { + const components = options.getComponents() + const islands = components.filter(component => + component.island || (component.mode === 'server' && !components.some(c => c.pascalName === component.pascalName && c.mode === 'client')) + ) + const { pathname } = parseURL(decodeURIComponent(pathToFileURL(id).href)) + return islands.some(c => c.filePath === pathname) + }, + async transform (code, id) { + if (!code.includes('([\s\S]*)<\/template>/) + if (!template) { return } + const s = new MagicString(code) + + s.replace(SCRIPT_RE, (full) => { + return full + '\nimport { vforToArray as __vforToArray } from \'#app/components/utils\'' + }) + + const ast = parse(template[0]) + await walk(ast, (node) => { + if (node.type === ELEMENT_NODE && node.name === 'slot') { + const { attributes, children, loc, isSelfClosingTag } = node + const slotName = attributes.name ?? 'default' + let vfor: [string, string] | undefined + if (attributes['v-for']) { + vfor = attributes['v-for'].split(' in ').map((v: string) => v.trim()) as [string, string] + delete attributes['v-for'] + } + if (attributes.name) { delete attributes.name } + if (attributes['v-bind']) { + attributes._bind = attributes['v-bind'] + delete attributes['v-bind'] + } + const bindings = getBindings(attributes, vfor) + + if (isSelfClosingTag) { + s.overwrite(loc[0].start, loc[0].end, `
`) + } else { + s.overwrite(loc[0].start, loc[0].end, `
`) + s.overwrite(loc[1].start, loc[1].end, '
') + + if (children.length > 1) { + // need to wrap instead of applying v-for on each child + const wrapperTag = `
` + s.appendRight(loc[0].end, `
${wrapperTag}`) + s.appendLeft(loc[1].start, '
') + } else if (children.length === 1) { + if (vfor && children[0].type === ELEMENT_NODE) { + const { loc, name, attributes, isSelfClosingTag } = children[0] + const attrs = Object.entries(attributes).map(([attr, val]) => `${attr}="${val}"`).join(' ') + s.overwrite(loc[0].start, loc[0].end, `<${name} v-for="${vfor[0]} in ${vfor[1]}" ${attrs} ${isSelfClosingTag ? '/' : ''}>`) + } + + s.appendRight(loc[0].end, `
`) + s.appendLeft(loc[1].start, '
') + } + } + } + }) + + if (s.hasChanged()) { + return { + code: s.toString(), + map: s.generateMap({ source: id, includeContent: true }) + } + } + } + } +}) + +function isBinding (attr: string): boolean { + return attr.startsWith(':') +} + +function getBindings (bindings: Record, vfor?: [string, string]): string { + if (Object.keys(bindings).length === 0) { return '' } + const content = Object.entries(bindings).filter(b => b[0] !== '_bind').map(([name, value]) => isBinding(name) ? `${name.slice(1)}: ${value}` : `${name}: \`${value}\``).join(',') + const data = bindings._bind ? `mergeProps(${bindings._bind}, { ${content} })` : `{ ${content} }` + if (!vfor) { + return `:nuxt-ssr-slot-data="JSON.stringify([${data}])"` + } else { + return `:nuxt-ssr-slot-data="JSON.stringify(__vforToArray(${vfor[1]}).map(${vfor[0]} => (${data})))"` + } +} diff --git a/packages/nuxt/src/components/module.ts b/packages/nuxt/src/components/module.ts index 4882bfc961..6450d1fe6b 100644 --- a/packages/nuxt/src/components/module.ts +++ b/packages/nuxt/src/components/module.ts @@ -9,6 +9,7 @@ import { componentNamesTemplate, componentsIslandsTemplate, componentsPluginTemp import { scanComponents } from './scan' import { loaderPlugin } from './loader' import { TreeShakeTemplatePlugin } from './tree-shake' +import { islandsTransform } from './islandsTransform' import { createTransformPlugin } from './transform' const isPureObjectOrString = (val: any) => (!Array.isArray(val) && typeof val === 'object') || typeof val === 'string' @@ -220,6 +221,10 @@ export default defineNuxtModule({ transform: typeof nuxt.options.components === 'object' && !Array.isArray(nuxt.options.components) ? nuxt.options.components.transform : undefined, experimentalComponentIslands: nuxt.options.experimental.componentIslands })) + + config.plugins.push(islandsTransform.vite({ + getComponents + })) }) nuxt.hook('webpack:config', (configs) => { configs.forEach((config) => { @@ -242,6 +247,10 @@ export default defineNuxtModule({ transform: typeof nuxt.options.components === 'object' && !Array.isArray(nuxt.options.components) ? nuxt.options.components.transform : undefined, experimentalComponentIslands: nuxt.options.experimental.componentIslands })) + + config.plugins.push(islandsTransform.webpack({ + getComponents + })) }) }) } diff --git a/packages/nuxt/src/components/runtime/server-component.ts b/packages/nuxt/src/components/runtime/server-component.ts index cdd9e69d47..cd48972051 100644 --- a/packages/nuxt/src/components/runtime/server-component.ts +++ b/packages/nuxt/src/components/runtime/server-component.ts @@ -1,25 +1,31 @@ -import { Fragment, computed, createStaticVNode, createVNode, defineComponent, h, ref, watch } from 'vue' +import { Fragment, Teleport, computed, createStaticVNode, createVNode, defineComponent, getCurrentInstance, h, nextTick, onMounted, ref, watch } from 'vue' import { debounce } from 'perfect-debounce' import { hash } from 'ohash' import { appendResponseHeader } from 'h3' import { useHead } from '@unhead/vue' +import { randomUUID } from 'uncrypto' import type { NuxtIslandResponse } from '../../core/runtime/nitro/renderer' import { useNuxtApp } from '#app/nuxt' import { useRequestEvent } from '#app/composables/ssr' import { useAsyncData } from '#app/composables/asyncData' +import { getFragmentHTML, getSlotProps } from '#app/components/utils' const pKey = '_islandPromises' +const UID_ATTR = /nuxt-ssr-component-uid(="([^"]*)")?/ +const SLOTNAME_RE = /nuxt-ssr-slot-name="([^"]*)"/g +const SLOT_FALLBACK_RE = /
]*><\/div>(((?!
]*>)[\s\S])*)
]*><\/div>/g +const SSR_UID_RE = /nuxt-ssr-component-uid="([^"]*)"/ export const createServerComponent = (name: string) => { return defineComponent({ name, inheritAttrs: false, - setup (_props, { attrs }) { + setup (_props, { attrs, slots }) { return () => h(NuxtServerComponent, { name, props: attrs - }) + }, slots) } }) } @@ -40,9 +46,14 @@ const NuxtServerComponent = defineComponent({ default: () => ({}) } }, - async setup (props) { + async setup (props, { slots }) { + const instance = getCurrentInstance()! + const uid = ref(getFragmentHTML(instance.vnode?.el)[0]?.match(SSR_UID_RE)?.[1] ?? randomUUID()) + const nuxtApp = useNuxtApp() + const mounted = ref(false) const key = ref(0) + onMounted(() => { mounted.value = true }) const hashId = computed(() => hash([props.name, props.props, props.context])) const event = useRequestEvent() @@ -96,11 +107,57 @@ const NuxtServerComponent = defineComponent({ watch(props, debounce(async () => { await res.execute() key.value++ + if (process.client) { + // must await next tick for Teleport to work correctly with static node re-rendering + await nextTick() + } + setUid() }, 100)) } + const slotProps = computed(() => { + return getSlotProps(res.data.value!.html) + }) + const availableSlots = computed(() => { + return [...res.data.value!.html.matchAll(SLOTNAME_RE)].map(m => m[1]) + }) + + const html = computed(() => { + const currentSlots = Object.keys(slots) + return res.data.value!.html + .replace(UID_ATTR, () => `nuxt-ssr-component-uid="${randomUUID()}"`) + .replace(SLOT_FALLBACK_RE, (full, slotName, content) => { + // remove fallback to insert slots + if (currentSlots.includes(slotName)) { + return '' + } + return content + }) + }) + function setUid () { + uid.value = html.value.match(SSR_UID_RE)?.[1] ?? randomUUID() as string + } + await res - return () => createVNode(Fragment, { key: key.value }, [createStaticVNode(res.data.value!.html, 1)]) + if (process.server || !nuxtApp.isHydrating) { + setUid() + } + + return () => { + const nodes = [createVNode(Fragment, { + key: key.value + }, [createStaticVNode(html.value, 1)])] + if (uid.value && (mounted.value || nuxtApp.isHydrating || process.server)) { + for (const slot in slots) { + if (availableSlots.value.includes(slot)) { + nodes.push(createVNode(Teleport, { to: process.client ? `[nuxt-ssr-component-uid='${uid.value}'] [nuxt-ssr-slot-name='${slot}']` : `uid=${uid.value};slot=${slot}` }, { + default: () => (slotProps.value[slot] ?? [undefined]).map((data: any) => slots[slot]?.(data)) + })) + } + } + } + return nodes + } } }) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 068ea6fef0..ab47538628 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -154,7 +154,8 @@ async function getIslandContext (event: H3Event): Promise { ...context, id: hashId, name: componentName, - props: destr(context.props) || {} + props: destr(context.props) || {}, + uid: destr(context.uid) || undefined } return ctx @@ -309,7 +310,7 @@ export default defineRenderHandler(async (event): Promise]*>((?!nuxt-ssr-slot-name="${slot}"|nuxt-ssr-component-uid)[\\s\\S])*
]*nuxt-ssr-slot-name="${slot}"[^>]*>`), (full) => { + return full + teleports[key] + }) + } + return html +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 23876b2306..c78844eee4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -438,6 +438,9 @@ importers: ultrahtml: specifier: ^1.2.0 version: 1.2.0 + uncrypto: + specifier: ^0.1.2 + version: 0.1.2 unctx: specifier: ^2.3.0 version: 2.3.0 diff --git a/test/basic.test.ts b/test/basic.test.ts index 0b69b0d026..c7ac6c52bc 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -88,7 +88,7 @@ describe('pages', () => { // should apply attributes to client-only components expect(html).toContain('
') // should render server-only components - expect(html).toContain('
server-only component
') + expect(html.replace(/ nuxt-ssr-component-uid="[^"]*"/, '')).toContain('
server-only component
') // should register global components automatically expect(html).toContain('global component registered automatically') expect(html).toContain('global component via suffix') @@ -358,8 +358,14 @@ describe('pages', () => { await page.locator('#increase-pure-component').click() await page.waitForResponse(response => response.url().includes('/__nuxt_island/') && response.status() === 200) await page.waitForLoadState('networkidle') + expect(await page.locator('#slot-in-server').first().innerHTML()).toContain('Slot with in .server component') + expect(await page.locator('#test-slot').first().innerHTML()).toContain('Slot with name test') + + // test fallback slot with v-for + expect(await page.locator('.fallback-slot-content').all()).toHaveLength(2) + // test islands update expect(await page.locator('.box').innerHTML()).toContain('"number": 101,') - await page.locator('#count-async-server-long-async').click() + await page.locator('#update-server-components').click() await Promise.all([ page.waitForResponse(response => response.url().includes('/__nuxt_island/LongAsyncComponent') && response.status() === 200), page.waitForResponse(response => response.url().includes('/__nuxt_island/AsyncServerComponent') && response.status() === 200) @@ -367,6 +373,17 @@ describe('pages', () => { await page.waitForLoadState('networkidle') expect(await page.locator('#async-server-component-count').innerHTML()).toContain(('1')) expect(await page.locator('#long-async-component-count').innerHTML()).toContain('1') + + // test islands slots interactivity + await page.locator('#first-sugar-counter button').click() + expect(await page.locator('#first-sugar-counter').innerHTML()).toContain('Sugar Counter 13') + + // test islands mounted client side with slot + await page.locator('#show-island').click() + await page.waitForResponse(response => response.url().includes('/__nuxt_island/') && response.status() === 200) + await page.waitForLoadState('networkidle') + expect(await page.locator('#island-mounted-client-side').innerHTML()).toContain('Interactive testing slot post SSR') + await page.close() }) @@ -1219,7 +1236,7 @@ describe('component islands', () => { "link": [], "style": [], }, - "html": "
    Route: /foo
+        "html": "
    Route: /foo
         
", "state": {}, } @@ -1241,7 +1258,7 @@ describe('component islands', () => { "link": [], "style": [], }, - "html": "
that was very long ...
3

hello world !!!

", + "html": "
count is above 2
that was very long ...
3

hello world !!!

fallback slot -- index: 0
fallback slot -- index: 1
fallback slot -- index: 2
fall slot -- index: 0
wonderful fallback
back slot -- index: 1
wonderful fallback
", "state": {}, } `) @@ -1257,15 +1274,15 @@ describe('component islands', () => { result.head.link = result.head.link.filter(l => !l.href.includes('@nuxt+ui-templates') && (l.href.startsWith('_nuxt/components/islands/') && l.href.includes('_nuxt/components/islands/AsyncServerComponent'))) } expect(result).toMatchInlineSnapshot(` - { - "head": { - "link": [], - "style": [], - }, - "html": "
This is a .server (20ms) async component that was very long ...
2
", - "state": {}, - } - `) + { + "head": { + "link": [], + "style": [], + }, + "html": "
This is a .server (20ms) async component that was very long ...
2
", + "state": {}, + } + `) }) it('renders pure components', async () => { @@ -1277,6 +1294,7 @@ describe('component islands', () => { obj: { foo: 42, bar: false, me: 'hi' } }) })) + result.html = result.html.replace(/ nuxt-ssr-component-uid="([^"]*)"/g, '') if (isDev()) { result.head.link = result.head.link.filter(l => !l.href.includes('@nuxt+ui-templates')) @@ -1304,7 +1322,7 @@ describe('component islands', () => { }, ], } - `) + `) } else if (isDev() && !isWebpack) { expect(result.head).toMatchInlineSnapshot(` { @@ -1321,17 +1339,17 @@ describe('component islands', () => { } expect(result.html.replace(/data-v-\w+|"|/g, '')).toMatchInlineSnapshot(` - "
Was router enabled: true
Props:
{
-      number: 3487,
-      str: something,
-      obj: {
-        foo: 42,
-        bar: false,
-        me: hi
-      },
-      bool: false
-    }
" - `) + "
Was router enabled: true
Props:
{
+        number: 3487,
+        str: something,
+        obj: {
+          foo: 42,
+          bar: false,
+          me: hi
+        },
+        bool: false
+      }
" + `) expect(result.state).toMatchInlineSnapshot(` { @@ -1339,6 +1357,33 @@ describe('component islands', () => { } `) }) + + it('test client-side navigation', async () => { + const page = await createPage('/') + await page.waitForLoadState('networkidle') + await page.click('#islands') + await page.waitForLoadState('networkidle') + await page.locator('#increase-pure-component').click() + await page.waitForResponse(response => response.url().includes('/__nuxt_island/') && response.status() === 200) + await page.waitForLoadState('networkidle') + expect(await page.locator('#slot-in-server').first().innerHTML()).toContain('Slot with in .server component') + expect(await page.locator('#test-slot').first().innerHTML()).toContain('Slot with name test') + + // test islands update + expect(await page.locator('.box').innerHTML()).toContain('"number": 101,') + await page.locator('#update-server-components').click() + await Promise.all([ + page.waitForResponse(response => response.url().includes('/__nuxt_island/LongAsyncComponent') && response.status() === 200), + page.waitForResponse(response => response.url().includes('/__nuxt_island/AsyncServerComponent') && response.status() === 200) + ]) + await page.waitForLoadState('networkidle') + expect(await page.locator('#async-server-component-count').innerHTML()).toContain(('1')) + expect(await page.locator('#long-async-component-count').innerHTML()).toContain('1') + + // test islands slots interactivity + await page.locator('#first-sugar-counter button').click() + expect(await page.locator('#first-sugar-counter').innerHTML()).toContain('Sugar Counter 13') + }) }) describe.runIf(isDev() && !isWebpack)('vite plugins', () => { @@ -1357,17 +1402,6 @@ describe.skipIf(isDev() || isWindows || !isRenderingJson)('payload rendering', ( const data = parsePayload(payload) expect(typeof data.prerenderedAt).toEqual('number') - const [_key, serverData] = Object.entries(data.data).find(([key]) => key.startsWith('ServerOnlyComponent'))! - expect(serverData).toMatchInlineSnapshot(` - { - "head": { - "link": [], - "style": [], - }, - "html": "
server-only component
", - } - `) - expect(data.data).toMatchObject({ hey: { baz: 'qux', diff --git a/test/fixtures/basic/components/AsyncServerComponent.server.vue b/test/fixtures/basic/components/AsyncServerComponent.server.vue index 6bbee5b9ab..221224efc4 100644 --- a/test/fixtures/basic/components/AsyncServerComponent.server.vue +++ b/test/fixtures/basic/components/AsyncServerComponent.server.vue @@ -5,6 +5,7 @@
{{ count }}
+
diff --git a/test/fixtures/basic/components/islands/LongAsyncComponent.vue b/test/fixtures/basic/components/islands/LongAsyncComponent.vue index b5e9c0e985..59cefd9a04 100644 --- a/test/fixtures/basic/components/islands/LongAsyncComponent.vue +++ b/test/fixtures/basic/components/islands/LongAsyncComponent.vue @@ -1,10 +1,29 @@ @@ -12,6 +31,5 @@ defineProps<{ count: number }>() - const { data } = await useFetch('/api/very-long-request') diff --git a/test/fixtures/basic/pages/index.vue b/test/fixtures/basic/pages/index.vue index 2b31da6380..c971c966d7 100644 --- a/test/fixtures/basic/pages/index.vue +++ b/test/fixtures/basic/pages/index.vue @@ -23,6 +23,9 @@ Link + + islands + Chunk error diff --git a/test/fixtures/basic/pages/islands.vue b/test/fixtures/basic/pages/islands.vue index 3e6051e454..df8d35af54 100644 --- a/test/fixtures/basic/pages/islands.vue +++ b/test/fixtures/basic/pages/islands.vue @@ -6,8 +6,9 @@ const islandProps = ref({ obj: { json: 'works' } }) +const showIslandSlot = ref(false) const routeIslandVisible = ref(false) - +const testCount = ref(0) const count = ref(0) @@ -31,13 +32,46 @@ const count = ref(0)

async .server component

- + +
+ Slot with in .server component +
+
- Async island component (20ms): - - +
+
+
+

Island with props mounted client side

+ +
+ +
Interactive testing slot post SSR
+ +
+
From 8a112e149a3929615acc14bec95391824436892c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 May 2023 07:58:14 +0100 Subject: [PATCH 219/912] chore(deps): update actions/github-script action to v6 (main) (#20865) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/release-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index ce53debf7a..7f60ca1fe3 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -49,7 +49,7 @@ jobs: NPM_CONFIG_PROVENANCE: true - name: Post comment - uses: actions/github-script@v5 + uses: actions/github-script@v6 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | From 433b52930afabd6dda1a6506ee12fc9064396c45 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 16 May 2023 10:50:43 +0200 Subject: [PATCH 220/912] feat(nuxt): support parallel plugins (#20460) --- packages/nuxt/src/app/nuxt.ts | 19 ++++++++++++++++++- test/bundle.test.ts | 4 ++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index 2148e78c7e..65ba6d991f 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -158,6 +158,7 @@ export interface PluginMeta { export interface ResolvedPluginMeta { name?: string order: number + parallel?: boolean } export interface Plugin = Record> { @@ -169,6 +170,12 @@ export interface Plugin = Record = Record> extends PluginMeta { hooks?: Partial setup?: Plugin + /** + * Execute plugin in parallel with other parallel plugins. + * + * @default false + */ + parallel?: boolean } export interface CreateOptions { @@ -300,9 +307,18 @@ export async function applyPlugin (nuxtApp: NuxtApp, plugin: Plugin) { } export async function applyPlugins (nuxtApp: NuxtApp, plugins: Plugin[]) { + const parallels: Promise[] = [] + const errors: Error[] = [] for (const plugin of plugins) { - await applyPlugin(nuxtApp, plugin) + const promise = applyPlugin(nuxtApp, plugin) + if (plugin.meta?.parallel) { + parallels.push(promise.catch(e => errors.push(e))) + } else { + await promise + } } + await Promise.all(parallels) + if (errors.length) { throw errors[0] } } export function normalizePlugins (_plugins: Plugin[]) { @@ -382,6 +398,7 @@ export function defineNuxtPlugin> (plugin: Plu wrapper.meta = { name: meta?.name || plugin.name || plugin.setup?.name, + parallel: plugin.parallel, order: meta?.order || plugin.order || diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 2b2e2c2b68..f64ef20071 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -34,7 +34,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e it('default client bundle size', async () => { stats.client = await analyzeSizes('**/*.js', publicDir) - expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"97.6k"') + expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"97.7k"') expect(stats.client.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -45,7 +45,7 @@ describe.skipIf(isWindows || process.env.TEST_BUILDER === 'webpack' || process.e it('default server bundle size', async () => { stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"61.8k"') + expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"62.2k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2283k"') From cdc42d0449564cf385c992f7b194530899b720c4 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 16 May 2023 09:52:24 +0100 Subject: [PATCH 221/912] ci: release edge versions of labelled prs --- .github/workflows/ci.yml | 49 +++++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47f545dd65..54ed67e3d2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -202,13 +202,7 @@ jobs: - lint - build - test-fixtures - runs-on: ${{ matrix.os }} - - strategy: - matrix: - os: [ubuntu-latest] - node: [20] - + runs-on: ubuntu-latest timeout-minutes: 20 steps: @@ -218,7 +212,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@v3 with: - node-version: ${{ matrix.node }} + node-version: 20 cache: "pnpm" - name: Install dependencies @@ -235,3 +229,42 @@ jobs: env: NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}} NPM_CONFIG_PROVENANCE: true + + release-pr: + permissions: + id-token: write + pull-requests: write + if: | + github.event_name == 'pull_request' && + contains(github.event.pull_request.labels.*.name, '🧷 edge release') + needs: + - lint + - build + - test-fixtures + runs-on: ubuntu-latest + timeout-minutes: 20 + + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - run: corepack enable + - uses: actions/setup-node@v3 + with: + node-version: 20 + cache: "pnpm" + + - name: Install dependencies + run: pnpm install + + - name: Restore dist cache + uses: actions/download-artifact@v3 + with: + name: dist + path: packages + + - name: Release Edge + run: ./scripts/release-edge.sh pr-${{ github.event.issue.number }} + env: + NODE_AUTH_TOKEN: ${{secrets.NODE_AUTH_TOKEN}} + NPM_CONFIG_PROVENANCE: true From a0583ba96ea5e923344d9d9deb4516fccdc6d935 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 16 May 2023 10:55:13 +0100 Subject: [PATCH 222/912] fix(nuxt): pass from + savedPosition to first `scrollBehavior` (#20859) --- .../nuxt/src/pages/runtime/plugins/router.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/pages/runtime/plugins/router.ts b/packages/nuxt/src/pages/runtime/plugins/router.ts index 2167180e9e..19bf8211f4 100644 --- a/packages/nuxt/src/pages/runtime/plugins/router.ts +++ b/packages/nuxt/src/pages/runtime/plugins/router.ts @@ -1,7 +1,8 @@ import { computed, isReadonly, reactive, shallowRef } from 'vue' import type { Ref } from 'vue' -import type { RouteLocation, Router } from '#vue-router' +import type { RouteLocation, Router, RouterScrollBehavior } from '#vue-router' import { + START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, @@ -61,9 +62,19 @@ const plugin: Plugin<{ router: Router }> = defineNuxtPlugin({ const routes = routerOptions.routes?.(_routes) ?? _routes + let startPosition: Parameters[2] | null const initialURL = process.server ? nuxtApp.ssrContext!.url : createCurrentLocation(routerBase, window.location) const router = createRouter({ ...routerOptions, + scrollBehavior: (to, from, savedPosition) => { + if (from === START_LOCATION) { + startPosition = savedPosition + return + } + // reset scroll behavior to initial value + router.options.scrollBehavior = routerOptions.scrollBehavior + return routerOptions.scrollBehavior?.(to, START_LOCATION, startPosition || savedPosition) + }, history, routes }) @@ -190,9 +201,11 @@ const plugin: Plugin<{ router: Router }> = defineNuxtPlugin({ try { await router.replace({ ...router.resolve(initialURL), - name: undefined, // #4920, #$4982 + name: undefined, // #4920, #4982 force: true }) + // reset scroll behavior to initial value + router.options.scrollBehavior = routerOptions.scrollBehavior } catch (error: any) { // We'll catch middleware errors or deliberate exceptions here await nuxtApp.runWithContext(() => showError(error)) From d53cc604db956420f237cf8567222406a01fa844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Tue, 16 May 2023 13:16:09 +0200 Subject: [PATCH 223/912] docs: server directory improvements --- .../2.guide/2.directory-structure/1.server.md | 61 +++++++++++++------ 1 file changed, 44 insertions(+), 17 deletions(-) diff --git a/docs/2.guide/2.directory-structure/1.server.md b/docs/2.guide/2.directory-structure/1.server.md index 36927a446f..8b56091283 100644 --- a/docs/2.guide/2.directory-structure/1.server.md +++ b/docs/2.guide/2.directory-structure/1.server.md @@ -7,33 +7,46 @@ description: The server/ directory is used to register API and server handlers t # Server Directory -Nuxt automatically scans files inside the `~/server/api`, `~/server/routes`, and `~/server/middleware` directories to register API and server handlers with HMR support. +Nuxt automatically scans files inside these directories to register API and server handlers with HMR support: +- `~/server/api` +- `~/server/routes` +- `~/server/middleware` -Each file should export a default function defined with `defineEventHandler()`. +Each file should export a default function defined with `defineEventHandler()` or `eventHandler()` (alias). -The handler can directly return JSON data, a `Promise` or use `event.node.res.end()` to send response. +The handler can directly return JSON data, a `Promise` or use `event.node.res.end()` to send a response. -::ReadMore{link="https://nitro.unjs.io/guide/routing" title="Nitro Route Handling Docs"} -:: - -## Example - -Create a new file in `server/api/hello.ts`: +**Example:** Create the `/api/hello` route with `server/api/hello.ts` file: ```ts [server/api/hello.ts] export default defineEventHandler((event) => { return { - api: 'works' + hello: 'world' } }) ``` -You can now universally call this API using `await $fetch('/api/hello')`. +You can now universally call this API in your pages and components: + +```vue [pages/index.vue] + + + +``` + +Note that [h3 utilities](https://github.com/unjs/h3#utilities) are auto-imported. + +:ReadMore{link="https://nitro.unjs.io/guide/routing" title="Nitro Route Handling Docs"} ## Server Routes Files inside the `~/server/api` are automatically prefixed with `/api` in their route. -For adding server routes without `/api` prefix, you can instead put them into `~/server/routes` directory. + +To add server routes without `/api` prefix, put them into `~/server/routes` directory. **Example:** @@ -57,7 +70,7 @@ Middleware handlers should not return anything (nor close or respond to the requ ```ts [server/middleware/log.ts] export default defineEventHandler((event) => { - console.log('New request: ' + event.node.req.url) + console.log('New request: ' + getRequestURL(event)) }) ``` @@ -79,18 +92,32 @@ export default defineNitroPlugin((nitroApp) => { }) ``` -::ReadMore{link="https://nitro.unjs.io/guide/plugins" title="Nitro Plugins"} -:: +:ReadMore{link="https://nitro.unjs.io/guide/plugins" title="Nitro Plugins"} ## Server Utilities Server routes are powered by [unjs/h3](https://github.com/unjs/h3) which comes with a handy set of helpers. -::ReadMore{link="https://www.jsdocs.io/package/h3#package-index-functions" title="Available H3 Request Helpers"} -:: +:ReadMore{link="https://www.jsdocs.io/package/h3#package-index-functions" title="Available H3 Request Helpers"} You can add more helpers yourself inside the `~/server/utils` directory. +## Server Types + +::alert{type="info"} +This feature is available from Nuxt >= 3.5 +:: + +To improve clarity within your IDE between the auto-imports from 'nitro' and 'vue', you can add a `~/server/tsconfig.json` with the following content: + +```json [server/tsconfig.json] +{ + "extends": "../.nuxt/tsconfig.server.json" +} +``` + +Although right now these values won't be respected when type checking (`nuxi typecheck`), you should get better type hints in your IDE. + ## Usage Examples ### Matching Route Parameters From 742f61766d3398d596c99bdf03a8a811019b3fec Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 16 May 2023 12:19:33 +0100 Subject: [PATCH 224/912] chore: lint --- docs/2.guide/2.directory-structure/1.server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/2.guide/2.directory-structure/1.server.md b/docs/2.guide/2.directory-structure/1.server.md index 8b56091283..f2a5947f2a 100644 --- a/docs/2.guide/2.directory-structure/1.server.md +++ b/docs/2.guide/2.directory-structure/1.server.md @@ -10,7 +10,7 @@ description: The server/ directory is used to register API and server handlers t Nuxt automatically scans files inside these directories to register API and server handlers with HMR support: - `~/server/api` - `~/server/routes` -- `~/server/middleware` +- `~/server/middleware` Each file should export a default function defined with `defineEventHandler()` or `eventHandler()` (alias). From 9683c3dad3fc31d5a2f780f6e7e785c1eeedc797 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 16 May 2023 14:29:04 +0100 Subject: [PATCH 225/912] v3.5.0 --- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index bbb9432e27..8da6b14ef9 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.4.3", + "version": "3.5.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 415595f9f1..f0e148cb3c 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -1,6 +1,6 @@ { "name": "nuxi", - "version": "3.4.3", + "version": "3.5.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 8554792ac3..b0b824ba3f 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.4.3", + "version": "3.5.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/schema/package.json b/packages/schema/package.json index ea5a7a0381..718aab04be 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.4.3", + "version": "3.5.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index c3053665d0..8e052ce8c3 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.4.3", + "version": "3.5.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/vite/package.json b/packages/vite/package.json index 836d8cdf8b..40c17f93e6 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.4.3", + "version": "3.5.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 081f693eac..8782831ed8 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.4.3", + "version": "3.5.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", From e3af77253d486bb7e1001f9f6a4c921fa8fd85cf Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 16 May 2023 15:47:12 +0200 Subject: [PATCH 226/912] fix(webpack): analyze report path (#20878) --- packages/webpack/src/configs/client.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webpack/src/configs/client.ts b/packages/webpack/src/configs/client.ts index 1f1147ce1d..b2591164f2 100644 --- a/packages/webpack/src/configs/client.ts +++ b/packages/webpack/src/configs/client.ts @@ -86,7 +86,7 @@ function clientPlugins (ctx: WebpackConfigContext) { // webpack Bundle Analyzer // https://github.com/webpack-contrib/webpack-bundle-analyzer if (!ctx.isDev && ctx.name === 'client' && options.webpack.analyze) { - const statsDir = resolve(options.buildDir, 'stats') + const statsDir = resolve(options.analyzeDir) config.plugins!.push(new BundleAnalyzerPlugin({ analyzerMode: 'static', From 53bd8a44ecea9882de9545c2d5e093479d7f5e50 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 16 May 2023 22:50:55 +0100 Subject: [PATCH 227/912] fix(nuxt): allow island renders without `/` route (#20894) --- packages/nuxt/src/pages/runtime/plugins/router.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/pages/runtime/plugins/router.ts b/packages/nuxt/src/pages/runtime/plugins/router.ts index 19bf8211f4..65f6a96d1a 100644 --- a/packages/nuxt/src/pages/runtime/plugins/router.ts +++ b/packages/nuxt/src/pages/runtime/plugins/router.ts @@ -186,7 +186,7 @@ const plugin: Plugin<{ router: Router }> = defineNuxtPlugin({ if (process.server && failure?.type === 4 /* ErrorTypes.NAVIGATION_ABORTED */) { return } - if (to.matched.length === 0) { + if (to.matched.length === 0 && (!process.server || !nuxtApp.ssrContext?.islandContext)) { await nuxtApp.runWithContext(() => showError(createError({ statusCode: 404, fatal: false, From 83cb5d6f5414378b2dbc43b2937cb4ca5edc843e Mon Sep 17 00:00:00 2001 From: Vasily Kuzin Date: Wed, 17 May 2023 01:06:28 +0300 Subject: [PATCH 228/912] docs: fix defaults in custom fetch example (#20898) --- .../use-custom-fetch-composable/composables/useCustomFetch.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/other/use-custom-fetch-composable/composables/useCustomFetch.ts b/examples/other/use-custom-fetch-composable/composables/useCustomFetch.ts index 2464b3cd45..db9e572744 100644 --- a/examples/other/use-custom-fetch-composable/composables/useCustomFetch.ts +++ b/examples/other/use-custom-fetch-composable/composables/useCustomFetch.ts @@ -25,7 +25,7 @@ export function useCustomFetch (url: string, options: UseFetchOptions = {} } // for nice deep defaults, please use unjs/defu - const params = defu(defaults, options) + const params = defu(options, defaults) return useFetch(url, params) } From 55a5fa4890397d1fb843d357499a8912e24f745c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 May 2023 05:54:33 +0100 Subject: [PATCH 229/912] chore(deps): update all non-major dependencies (main) (#20867) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- package.json | 6 +- packages/kit/package.json | 4 +- packages/nuxt/package.json | 4 +- packages/schema/package.json | 4 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 292 +++++++++++++++++----------------- 7 files changed, 160 insertions(+), 154 deletions(-) diff --git a/package.json b/package.json index 48bb566f51..f4b218b617 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "@nuxt/webpack-builder": "workspace:*", "nuxi": "workspace:*", "nuxt": "workspace:*", - "vite": "^4.3.6", + "vite": "^4.3.7", "vue": "3.3.2", "magic-string": "^0.30.0" }, @@ -42,7 +42,7 @@ "@nuxt/webpack-builder": "workspace:*", "@nuxtjs/eslint-config-typescript": "^12.0.0", "@types/crawler": "^1.2.2", - "@types/node": "^18.16.9", + "@types/node": "^18.16.12", "@types/semver": "^7.5.0", "case-police": "^0.6.1", "chalk": "^5.2.0", @@ -71,7 +71,7 @@ "std-env": "^3.3.3", "typescript": "^5.0.4", "ufo": "^1.1.2", - "vite": "^4.3.6", + "vite": "^4.3.7", "vitest": "^0.31.0", "vue": "3.3.2", "vue-eslint-parser": "^9.3.0", diff --git a/packages/kit/package.json b/packages/kit/package.json index 8da6b14ef9..f7ad1b512d 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -43,9 +43,9 @@ "@types/hash-sum": "^1.0.0", "@types/lodash.template": "^4.5.1", "@types/semver": "^7.5.0", - "nitropack": "^2.4.0", + "nitropack": "^2.4.1", "unbuild": "latest", - "vite": "^4.3.6", + "vite": "^4.3.7", "vitest": "^0.31.0", "webpack": "^5.82.1" }, diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index b0b824ba3f..46a506a2e4 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -79,7 +79,7 @@ "local-pkg": "^0.4.3", "magic-string": "^0.30.0", "mlly": "^1.2.1", - "nitropack": "^2.4.0", + "nitropack": "^2.4.1", "nuxi": "workspace:../nuxi", "nypm": "^0.2.0", "ofetch": "^1.0.1", @@ -111,7 +111,7 @@ "@vitejs/plugin-vue": "^4.2.3", "acorn": "^8.8.2", "unbuild": "latest", - "vite": "^4.3.6", + "vite": "^4.3.7", "vitest": "^0.31.0" }, "peerDependencies": { diff --git a/packages/schema/package.json b/packages/schema/package.json index 718aab04be..3fbcff1db9 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -32,10 +32,10 @@ "@vitejs/plugin-vue-jsx": "^3.0.1", "h3": "^1.6.6", "ignore": "^5.2.4", - "nitropack": "^2.4.0", + "nitropack": "^2.4.1", "unbuild": "latest", "unctx": "^2.3.0", - "vite": "~4.3.6", + "vite": "~4.3.7", "vue": "3.3.2", "vue-bundle-renderer": "^1.0.3", "vue-router": "^4.2.0", diff --git a/packages/vite/package.json b/packages/vite/package.json index 40c17f93e6..defe2550b7 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -54,7 +54,7 @@ "strip-literal": "^1.0.1", "ufo": "^1.1.2", "unplugin": "^1.3.1", - "vite": "~4.3.6", + "vite": "~4.3.7", "vite-node": "^0.31.0", "vite-plugin-checker": "^0.6.0", "vue-bundle-renderer": "^1.0.3" diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 8782831ed8..4e2df2d480 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -54,7 +54,7 @@ "vue-loader": "^17.1.1", "webpack": "^5.82.1", "webpack-bundle-analyzer": "^4.8.0", - "webpack-dev-middleware": "^6.1.0", + "webpack-dev-middleware": "^6.1.1", "webpack-hot-middleware": "^2.25.3", "webpack-virtual-modules": "^0.5.0", "webpackbar": "^5.0.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c78844eee4..8a3bfbbd95 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,7 +8,7 @@ overrides: '@nuxt/webpack-builder': workspace:* nuxi: workspace:* nuxt: workspace:* - vite: ^4.3.6 + vite: ^4.3.7 vue: 3.3.2 magic-string: ^0.30.0 @@ -32,8 +32,8 @@ importers: specifier: ^1.2.2 version: 1.2.2 '@types/node': - specifier: ^18.16.9 - version: 18.16.9 + specifier: ^18.16.12 + version: 18.16.12 '@types/semver': specifier: ^7.5.0 version: 7.5.0 @@ -119,8 +119,8 @@ importers: specifier: ^1.1.2 version: 1.1.2 vite: - specifier: ^4.3.6 - version: 4.3.6(@types/node@18.16.9) + specifier: ^4.3.7 + version: 4.3.7(@types/node@18.16.12) vitest: specifier: ^0.31.0 version: 0.31.0(playwright@1.33.0) @@ -186,7 +186,7 @@ importers: version: 2.3.0 unimport: specifier: ^3.0.6 - version: 3.0.6(rollup@3.21.5) + version: 3.0.6(rollup@3.21.8) untyped: specifier: ^1.3.2 version: 1.3.2 @@ -201,14 +201,14 @@ importers: specifier: ^7.5.0 version: 7.5.0 nitropack: - specifier: ^2.4.0 - version: 2.4.0 + specifier: ^2.4.1 + version: 2.4.1 unbuild: specifier: latest version: 1.2.1 vite: - specifier: ^4.3.6 - version: 4.3.6(@types/node@18.16.9) + specifier: ^4.3.7 + version: 4.3.7(@types/node@18.16.12) vitest: specifier: ^0.31.0 version: 0.31.0(playwright@1.33.0) @@ -338,7 +338,7 @@ importers: version: link:../vite '@types/node': specifier: ^14.18.0 || >=16.10.0 - version: 18.16.9 + version: 18.16.12 '@unhead/ssr': specifier: ^1.1.26 version: 1.1.26 @@ -403,8 +403,8 @@ importers: specifier: ^1.2.1 version: 1.2.1 nitropack: - specifier: ^2.4.0 - version: 2.4.0 + specifier: ^2.4.1 + version: 2.4.1 nuxi: specifier: workspace:* version: link:../nuxi @@ -449,13 +449,13 @@ importers: version: 1.4.1 unimport: specifier: ^3.0.6 - version: 3.0.6(rollup@3.21.5) + version: 3.0.6(rollup@3.21.8) unplugin: specifier: ^1.3.1 version: 1.3.1 unplugin-vue-router: specifier: ^0.6.4 - version: 0.6.4(rollup@3.21.5)(vue-router@4.2.0)(vue@3.3.2) + version: 0.6.4(rollup@3.21.8)(vue-router@4.2.0)(vue@3.3.2) untyped: specifier: ^1.3.2 version: 1.3.2 @@ -486,7 +486,7 @@ importers: version: 2.4.4 '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.2.3(vite@4.3.6)(vue@3.3.2) + version: 4.2.3(vite@4.3.7)(vue@3.3.2) acorn: specifier: ^8.8.2 version: 8.8.2 @@ -494,8 +494,8 @@ importers: specifier: latest version: 1.2.1 vite: - specifier: ^4.3.6 - version: 4.3.6(@types/node@18.16.9) + specifier: ^4.3.7 + version: 4.3.7(@types/node@18.16.12) vitest: specifier: ^0.31.0 version: 0.31.0(playwright@1.33.0) @@ -525,7 +525,7 @@ importers: version: 1.1.2 unimport: specifier: ^3.0.6 - version: 3.0.6(rollup@3.21.5) + version: 3.0.6(rollup@3.21.8) untyped: specifier: ^1.3.2 version: 1.3.2 @@ -538,10 +538,10 @@ importers: version: 1.1.26 '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.2.3(vite@4.3.6)(vue@3.3.2) + version: 4.2.3(vite@4.3.7)(vue@3.3.2) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.3.6)(vue@3.3.2) + version: 3.0.1(vite@4.3.7)(vue@3.3.2) h3: specifier: ^1.6.6 version: 1.6.6 @@ -549,8 +549,8 @@ importers: specifier: ^5.2.4 version: 5.2.4 nitropack: - specifier: ^2.4.0 - version: 2.4.0 + specifier: ^2.4.1 + version: 2.4.1 unbuild: specifier: latest version: 1.2.1 @@ -558,8 +558,8 @@ importers: specifier: ^2.3.0 version: 2.3.0 vite: - specifier: ^4.3.6 - version: 4.3.6(@types/node@18.16.9) + specifier: ^4.3.7 + version: 4.3.7(@types/node@18.16.12) vue: specifier: 3.3.2 version: 3.3.2 @@ -626,13 +626,13 @@ importers: version: link:../kit '@rollup/plugin-replace': specifier: ^5.0.2 - version: 5.0.2(rollup@3.21.5) + version: 5.0.2(rollup@3.21.8) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.2.3(vite@4.3.6)(vue@3.3.2) + version: 4.2.3(vite@4.3.7)(vue@3.3.2) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.3.6)(vue@3.3.2) + version: 3.0.1(vite@4.3.7)(vue@3.3.2) autoprefixer: specifier: ^10.4.14 version: 10.4.14(postcss@8.4.23) @@ -698,7 +698,7 @@ importers: version: 10.1.3(postcss@8.4.23) rollup-plugin-visualizer: specifier: ^5.9.0 - version: 5.9.0(rollup@3.21.5) + version: 5.9.0(rollup@3.21.8) std-env: specifier: ^3.3.3 version: 3.3.3 @@ -712,14 +712,14 @@ importers: specifier: ^1.3.1 version: 1.3.1 vite: - specifier: ^4.3.6 - version: 4.3.6(@types/node@18.16.9) + specifier: ^4.3.7 + version: 4.3.7(@types/node@18.16.12) vite-node: specifier: ^0.31.0 - version: 0.31.0(@types/node@18.16.9) + version: 0.31.0(@types/node@18.16.12) vite-plugin-checker: specifier: ^0.6.0 - version: 0.6.0(eslint@8.40.0)(typescript@5.0.4)(vite@4.3.6)(vue-tsc@1.7.0) + version: 0.6.0(eslint@8.40.0)(typescript@5.0.4)(vite@4.3.7)(vue-tsc@1.7.0) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 @@ -845,8 +845,8 @@ importers: specifier: ^4.8.0 version: 4.8.0 webpack-dev-middleware: - specifier: ^6.1.0 - version: 6.1.0(webpack@5.82.1) + specifier: ^6.1.1 + version: 6.1.1(webpack@5.82.1) webpack-hot-middleware: specifier: ^2.25.3 version: 2.25.3 @@ -1594,7 +1594,7 @@ packages: dependencies: '@jest/fake-timers': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 18.16.9 + '@types/node': 18.16.12 jest-mock: 29.5.0 dev: true @@ -1621,7 +1621,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 18.16.9 + '@types/node': 18.16.12 jest-message-util: 29.5.0 jest-mock: 29.5.0 jest-util: 29.5.0 @@ -1675,7 +1675,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.16.9 + '@types/node': 18.16.12 '@types/yargs': 17.0.22 chalk: 4.1.2 @@ -1734,9 +1734,9 @@ packages: - encoding - supports-color - /@netlify/functions@1.4.0: - resolution: {integrity: sha512-gy7ULTIRroc2/jyFVGx1djCmmBMVisIwrvkqggq5B6iDcInRSy2Tpkm+V5C63hKJVkNRskKWtLQKm9ecCaQTjA==} - engines: {node: '>=8.3.0'} + /@netlify/functions@1.6.0: + resolution: {integrity: sha512-6G92AlcpFrQG72XU8YH8pg94eDnq7+Q0YJhb8x4qNpdGsvuzvrfHWBmqFGp/Yshmv4wex9lpsTRZOocdrA2erQ==} + engines: {node: '>=14.0.0'} dependencies: is-promise: 4.0.0 @@ -1878,7 +1878,7 @@ packages: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} dev: false - /@rollup/plugin-alias@5.0.0(rollup@3.21.5): + /@rollup/plugin-alias@5.0.0(rollup@3.21.8): resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1887,10 +1887,10 @@ packages: rollup: optional: true dependencies: - rollup: 3.21.5 + rollup: 3.21.8 slash: 4.0.0 - /@rollup/plugin-commonjs@24.1.0(rollup@3.21.5): + /@rollup/plugin-commonjs@24.1.0(rollup@3.21.8): resolution: {integrity: sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1899,15 +1899,15 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.21.5) + '@rollup/pluginutils': 5.0.2(rollup@3.21.8) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.30.0 - rollup: 3.21.5 + rollup: 3.21.8 - /@rollup/plugin-inject@5.0.3(rollup@3.21.5): + /@rollup/plugin-inject@5.0.3(rollup@3.21.8): resolution: {integrity: sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1916,12 +1916,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.21.5) + '@rollup/pluginutils': 5.0.2(rollup@3.21.8) estree-walker: 2.0.2 magic-string: 0.30.0 - rollup: 3.21.5 + rollup: 3.21.8 - /@rollup/plugin-json@6.0.0(rollup@3.21.5): + /@rollup/plugin-json@6.0.0(rollup@3.21.8): resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1930,10 +1930,10 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.21.5) - rollup: 3.21.5 + '@rollup/pluginutils': 5.0.2(rollup@3.21.8) + rollup: 3.21.8 - /@rollup/plugin-node-resolve@15.0.2(rollup@3.21.5): + /@rollup/plugin-node-resolve@15.0.2(rollup@3.21.8): resolution: {integrity: sha512-Y35fRGUjC3FaurG722uhUuG8YHOJRJQbI6/CkbRkdPotSpDj9NtIN85z1zrcyDcCQIW4qp5mgG72U+gJ0TAFEg==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1942,15 +1942,15 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.21.5) + '@rollup/pluginutils': 5.0.2(rollup@3.21.8) '@types/resolve': 1.20.2 deepmerge: 4.3.0 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.1 - rollup: 3.21.5 + rollup: 3.21.8 - /@rollup/plugin-replace@5.0.2(rollup@3.21.5): + /@rollup/plugin-replace@5.0.2(rollup@3.21.8): resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1959,12 +1959,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.21.5) + '@rollup/pluginutils': 5.0.2(rollup@3.21.8) magic-string: 0.30.0 - rollup: 3.21.5 + rollup: 3.21.8 - /@rollup/plugin-terser@0.4.1(rollup@3.21.5): - resolution: {integrity: sha512-aKS32sw5a7hy+fEXVy+5T95aDIwjpGHCTv833HXVtyKMDoVS7pBr5K3L9hEQoNqbJFjfANPrNpIXlTQ7is00eA==} + /@rollup/plugin-terser@0.4.2(rollup@3.21.8): + resolution: {integrity: sha512-jfUVQ4MxzIB0mz8QhDA1xiLT+pTF3WEWXeIqcwhoF84WhLWscPpxjJgjYMyAq0Po4UXqw2D9C64tD0gRDzJzfA==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.x || ^3.x @@ -1972,13 +1972,13 @@ packages: rollup: optional: true dependencies: - rollup: 3.21.5 + rollup: 3.21.8 serialize-javascript: 6.0.1 smob: 0.0.6 terser: 5.16.6 - /@rollup/plugin-wasm@6.1.2(rollup@3.21.5): - resolution: {integrity: sha512-YdrQ7zfnZ54Y+6raCev3tR1PrhQGxYKSTajGylhyP0oBacouuNo6KcNCk+pYKw9M98jxRWLFFca/udi76IDXzg==} + /@rollup/plugin-wasm@6.1.3(rollup@3.21.8): + resolution: {integrity: sha512-7ItTTeyauE6lwdDtQWceEHZ9+txbi4RRy0mYPFn9BW7rD7YdgBDu7HTHsLtHrRzJc313RM/1m6GKgV3np/aEaw==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0 @@ -1986,7 +1986,7 @@ packages: rollup: optional: true dependencies: - rollup: 3.21.5 + rollup: 3.21.8 /@rollup/pluginutils@4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} @@ -1995,7 +1995,7 @@ packages: estree-walker: 2.0.2 picomatch: 2.3.1 - /@rollup/pluginutils@5.0.2(rollup@3.21.5): + /@rollup/pluginutils@5.0.2(rollup@3.21.8): resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2007,7 +2007,7 @@ packages: '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.21.5 + rollup: 3.21.8 /@sinclair/typebox@0.25.24: resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} @@ -2048,7 +2048,7 @@ packages: /@types/cheerio@0.22.31: resolution: {integrity: sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw==} dependencies: - '@types/node': 18.16.9 + '@types/node': 18.16.12 dev: true /@types/clear@0.1.2: @@ -2058,7 +2058,7 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.16.9 + '@types/node': 18.16.12 dev: true /@types/crawler@1.2.2: @@ -2090,19 +2090,24 @@ packages: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 18.16.9 + '@types/node': 18.16.12 dev: true /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 18.16.9 + '@types/node': 18.16.12 dev: true /@types/hash-sum@1.0.0: resolution: {integrity: sha512-FdLBT93h3kcZ586Aee66HPCVJ6qvxVjBlDWNmxSGSbCZe9hTsjRKdSsl4y1T+3zfujxo9auykQMnFsfyHWD7wg==} dev: true + /@types/http-proxy@1.17.11: + resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} + dependencies: + '@types/node': 18.16.12 + /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} @@ -2126,7 +2131,7 @@ packages: /@types/jsonfile@6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 18.16.9 + '@types/node': 18.16.12 dev: true /@types/lodash-es@4.17.7: @@ -2149,8 +2154,8 @@ packages: resolution: {integrity: sha512-nJOuiTlsvmClSr3+a/trTSx4DTuY/VURsWGKSf/eeavh0LRMqdsK60ti0TlwM5iHiGOK3/Ibkxsbr7i9rzGreA==} dev: true - /@types/node@18.16.9: - resolution: {integrity: sha512-IeB32oIV4oGArLrd7znD2rkHQ6EDCM+2Sr76dJnrHwv9OHBTTM6nuDLK9bmikXzPa0ZlWMWtRGo/Uw4mrzQedA==} + /@types/node@18.16.12: + resolution: {integrity: sha512-tIRrjbY9C277MOfP8M3zjMIhtMlUJ6YVqkGgLjz+74jVsdf4/UjC6Hku4+1N0BS0qyC0JAS6tJLUk9H6JUKviQ==} /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -2171,7 +2176,7 @@ packages: /@types/prompts@2.4.4: resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} dependencies: - '@types/node': 18.16.9 + '@types/node': 18.16.12 kleur: 3.0.3 dev: true @@ -2203,7 +2208,7 @@ packages: /@types/webpack-bundle-analyzer@4.6.0: resolution: {integrity: sha512-XeQmQCCXdZdap+A/60UKmxW5Mz31Vp9uieGlHB3T4z/o2OLVLtTI3bvTuS6A2OWd/rbAAQiGGWIEFQACu16szA==} dependencies: - '@types/node': 18.16.9 + '@types/node': 18.16.12 tapable: 2.2.1 webpack: 5.82.1 transitivePeerDependencies: @@ -2229,7 +2234,7 @@ packages: /@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 18.16.9 + '@types/node': 18.16.12 '@types/source-list-map': 0.1.2 source-map: 0.7.4 dev: true @@ -2243,7 +2248,7 @@ packages: /@types/webpack@4.41.33: resolution: {integrity: sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==} dependencies: - '@types/node': 18.16.9 + '@types/node': 18.16.12 '@types/tapable': 1.0.8 '@types/uglify-js': 3.17.1 '@types/webpack-sources': 3.2.0 @@ -2447,7 +2452,7 @@ packages: - encoding - supports-color - /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.6)(vue@3.3.2): + /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.7)(vue@3.3.2): resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2457,19 +2462,19 @@ packages: '@babel/core': 7.21.4 '@babel/plugin-transform-typescript': 7.21.0(@babel/core@7.21.4) '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.21.4) - vite: 4.3.6(@types/node@18.16.9) + vite: 4.3.7(@types/node@18.16.12) vue: 3.3.2 transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@4.2.3(vite@4.3.6)(vue@3.3.2): + /@vitejs/plugin-vue@4.2.3(vite@4.3.7)(vue@3.3.2): resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.3.6(@types/node@18.16.9) + vite: 4.3.7(@types/node@18.16.12) vue: 3.3.2 /@vitest/expect@0.31.0: @@ -2529,7 +2534,7 @@ packages: '@volar/language-core': 1.5.4 typescript: 5.0.4 - /@vue-macros/common@1.3.1(rollup@3.21.5)(vue@3.3.2): + /@vue-macros/common@1.3.1(rollup@3.21.8)(vue@3.3.2): resolution: {integrity: sha512-Lc5aP/8HNJD1XrnvpeNuWcCf82bZdR3auN/chA1b/1rKZgSnmQkH9f33tKO9qLwXSy+u4hpCi8Rw+oUuF1KCeg==} engines: {node: '>=14.19.0'} peerDependencies: @@ -2539,7 +2544,7 @@ packages: optional: true dependencies: '@babel/types': 7.21.5 - '@rollup/pluginutils': 5.0.2(rollup@3.21.5) + '@rollup/pluginutils': 5.0.2(rollup@3.21.8) '@vue/compiler-sfc': 3.3.2 local-pkg: 0.4.3 magic-string-ast: 0.1.2 @@ -3331,7 +3336,7 @@ packages: convert-gitmoji: 0.1.3 execa: 7.1.1 mri: 1.2.0 - node-fetch-native: 1.1.0 + node-fetch-native: 1.1.1 ofetch: 1.0.1 open: 9.1.0 pathe: 1.1.0 @@ -5026,7 +5031,7 @@ packages: defu: 6.1.2 https-proxy-agent: 5.0.1 mri: 1.2.0 - node-fetch-native: 1.1.0 + node-fetch-native: 1.1.1 pathe: 1.1.0 tar: 6.1.13 transitivePeerDependencies: @@ -5692,7 +5697,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@types/graceful-fs': 4.1.6 - '@types/node': 18.16.9 + '@types/node': 18.16.12 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -5735,7 +5740,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 18.16.9 + '@types/node': 18.16.12 jest-util: 29.5.0 dev: true @@ -5780,7 +5785,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 18.16.9 + '@types/node': 18.16.12 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.10 @@ -5790,7 +5795,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.16.9 + '@types/node': 18.16.12 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -5798,7 +5803,7 @@ packages: resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.16.9 + '@types/node': 18.16.12 jest-util: 29.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -6390,22 +6395,23 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - /nitropack@2.4.0: - resolution: {integrity: sha512-Gk7ujq8s4oT/6V0EO8NzeEfGz66EupWGrbD8Dhxm0LOkNcBl7y6iKk3CCQTSvcr9fpBdTifLsaUdRjQxohiGpw==} + /nitropack@2.4.1: + resolution: {integrity: sha512-CJzt5e5E8BKreTW+iqqGSFLPc1Yblcg2fiit8L6JtpCDl3aE9/rHGsv/w9oLV4FtsoC2qjTD2qoeCGp80mHw5Q==} engines: {node: ^14.16.0 || ^16.11.0 || >=17.0.0} hasBin: true dependencies: '@cloudflare/kv-asset-handler': 0.3.0 - '@netlify/functions': 1.4.0 - '@rollup/plugin-alias': 5.0.0(rollup@3.21.5) - '@rollup/plugin-commonjs': 24.1.0(rollup@3.21.5) - '@rollup/plugin-inject': 5.0.3(rollup@3.21.5) - '@rollup/plugin-json': 6.0.0(rollup@3.21.5) - '@rollup/plugin-node-resolve': 15.0.2(rollup@3.21.5) - '@rollup/plugin-replace': 5.0.2(rollup@3.21.5) - '@rollup/plugin-terser': 0.4.1(rollup@3.21.5) - '@rollup/plugin-wasm': 6.1.2(rollup@3.21.5) - '@rollup/pluginutils': 5.0.2(rollup@3.21.5) + '@netlify/functions': 1.6.0 + '@rollup/plugin-alias': 5.0.0(rollup@3.21.8) + '@rollup/plugin-commonjs': 24.1.0(rollup@3.21.8) + '@rollup/plugin-inject': 5.0.3(rollup@3.21.8) + '@rollup/plugin-json': 6.0.0(rollup@3.21.8) + '@rollup/plugin-node-resolve': 15.0.2(rollup@3.21.8) + '@rollup/plugin-replace': 5.0.2(rollup@3.21.8) + '@rollup/plugin-terser': 0.4.2(rollup@3.21.8) + '@rollup/plugin-wasm': 6.1.3(rollup@3.21.8) + '@rollup/pluginutils': 5.0.2(rollup@3.21.8) + '@types/http-proxy': 1.17.11 '@vercel/nft': 0.22.6 archiver: 5.3.1 c12: 1.4.1 @@ -6434,7 +6440,7 @@ packages: mime: 3.0.0 mlly: 1.2.1 mri: 1.2.0 - node-fetch-native: 1.1.0 + node-fetch-native: 1.1.1 ofetch: 1.0.1 ohash: 1.1.2 openapi-typescript: 6.2.4 @@ -6443,8 +6449,8 @@ packages: pkg-types: 1.0.3 pretty-bytes: 6.1.0 radix3: 1.0.1 - rollup: 3.21.5 - rollup-plugin-visualizer: 5.9.0(rollup@3.21.5) + rollup: 3.21.8 + rollup-plugin-visualizer: 5.9.0(rollup@3.21.8) scule: 1.0.0 semver: 7.5.1 serve-placeholder: 2.0.1 @@ -6453,7 +6459,7 @@ packages: std-env: 3.3.3 ufo: 1.1.2 unenv: 1.4.1 - unimport: 3.0.6(rollup@3.21.5) + unimport: 3.0.6(rollup@3.21.8) unstorage: 1.6.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -6481,8 +6487,8 @@ packages: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} - /node-fetch-native@1.1.0: - resolution: {integrity: sha512-nl5goFCig93JZ9FIV8GHT9xpNqXbxQUzkOmKIMKmncsBH9jhg7qKex8hirpymkBFmNQ114chEEG5lS4wgK2I+Q==} + /node-fetch-native@1.1.1: + resolution: {integrity: sha512-9VvspTSUp2Sxbl+9vbZTlFGq9lHwE8GDVVekxx6YsNd1YH59sb3Ba8v3Y3cD8PkLNcileGGcA21PFjVl0jzDaw==} /node-fetch@2.6.9: resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} @@ -6626,7 +6632,7 @@ packages: resolution: {integrity: sha512-icBz2JYfEpt+wZz1FRoGcrMigjNKjzvufE26m9+yUiacRQRHwnNlGRPiDnW4op7WX/MR6aniwS8xw8jyVelF2g==} dependencies: destr: 1.2.2 - node-fetch-native: 1.1.0 + node-fetch-native: 1.1.1 ufo: 1.1.2 /ohash@1.1.2: @@ -7533,7 +7539,7 @@ packages: glob: 10.2.2 dev: true - /rollup-plugin-dts@5.3.0(rollup@3.21.5)(typescript@5.0.4): + /rollup-plugin-dts@5.3.0(rollup@3.21.8)(typescript@5.0.4): resolution: {integrity: sha512-8FXp0ZkyZj1iU5klkIJYLjIq/YZSwBoERu33QBDxm/1yw5UU4txrEtcmMkrq+ZiKu3Q4qvPCNqc3ovX6rjqzbQ==} engines: {node: '>=v14'} peerDependencies: @@ -7541,13 +7547,13 @@ packages: typescript: ^4.1 || ^5.0 dependencies: magic-string: 0.30.0 - rollup: 3.21.5 + rollup: 3.21.8 typescript: 5.0.4 optionalDependencies: '@babel/code-frame': 7.21.4 dev: true - /rollup-plugin-visualizer@5.9.0(rollup@3.21.5): + /rollup-plugin-visualizer@5.9.0(rollup@3.21.8): resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==} engines: {node: '>=14'} hasBin: true @@ -7559,12 +7565,12 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: 3.21.5 + rollup: 3.21.8 source-map: 0.7.4 yargs: 17.7.1 - /rollup@3.21.5: - resolution: {integrity: sha512-a4NTKS4u9PusbUJcfF4IMxuqjFzjm6ifj76P54a7cKnvVzJaG12BLVR+hgU2YDGHzyMMQNxLAZWuALsn8q2oQg==} + /rollup@3.21.8: + resolution: {integrity: sha512-SSFV2T2fWtQ/vvBip85u2Nr0GNKireabH9d7nXswBg+XSH+jbVDSYptRAEbCEsquhs503rpPA9POYAp0/Jhasw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -8300,12 +8306,12 @@ packages: resolution: {integrity: sha512-J4efk69Aye43tWcBPCsLK7TIRppGrEN4pAlDzRKo3HSE6MgTSTBxSEuE3ccx7ixc62JvGQ/CoFXYqqF2AHozow==} hasBin: true dependencies: - '@rollup/plugin-alias': 5.0.0(rollup@3.21.5) - '@rollup/plugin-commonjs': 24.1.0(rollup@3.21.5) - '@rollup/plugin-json': 6.0.0(rollup@3.21.5) - '@rollup/plugin-node-resolve': 15.0.2(rollup@3.21.5) - '@rollup/plugin-replace': 5.0.2(rollup@3.21.5) - '@rollup/pluginutils': 5.0.2(rollup@3.21.5) + '@rollup/plugin-alias': 5.0.0(rollup@3.21.8) + '@rollup/plugin-commonjs': 24.1.0(rollup@3.21.8) + '@rollup/plugin-json': 6.0.0(rollup@3.21.8) + '@rollup/plugin-node-resolve': 15.0.2(rollup@3.21.8) + '@rollup/plugin-replace': 5.0.2(rollup@3.21.8) + '@rollup/pluginutils': 5.0.2(rollup@3.21.8) chalk: 5.2.0 consola: 3.1.0 defu: 6.1.2 @@ -8320,8 +8326,8 @@ packages: pathe: 1.1.0 pkg-types: 1.0.3 pretty-bytes: 6.1.0 - rollup: 3.21.5 - rollup-plugin-dts: 5.3.0(rollup@3.21.5)(typescript@5.0.4) + rollup: 3.21.8 + rollup-plugin-dts: 5.3.0(rollup@3.21.8)(typescript@5.0.4) scule: 1.0.0 typescript: 5.0.4 untyped: 1.3.2 @@ -8352,7 +8358,7 @@ packages: dependencies: defu: 6.1.2 mime: 3.0.0 - node-fetch-native: 1.1.0 + node-fetch-native: 1.1.1 pathe: 1.1.0 /unhead@1.1.26: @@ -8364,10 +8370,10 @@ packages: hookable: 5.5.3 dev: false - /unimport@3.0.6(rollup@3.21.5): + /unimport@3.0.6(rollup@3.21.8): resolution: {integrity: sha512-GYxGJ1Bri1oqx8VFDjdgooGzeK7jBk3bvhXmamTIpu3nONOcUMGwZbX7X0L5RA7OWMXpR4vzpSQP7pXUzJg1/Q==} dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.21.5) + '@rollup/pluginutils': 5.0.2(rollup@3.21.8) escape-string-regexp: 5.0.0 fast-glob: 3.2.12 local-pkg: 0.4.3 @@ -8385,7 +8391,7 @@ packages: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} - /unplugin-vue-router@0.6.4(rollup@3.21.5)(vue-router@4.2.0)(vue@3.3.2): + /unplugin-vue-router@0.6.4(rollup@3.21.8)(vue-router@4.2.0)(vue@3.3.2): resolution: {integrity: sha512-9THVhhtbVFxbsIibjK59oPwMI1UCxRWRPX7azSkTUABsxovlOXJys5SJx0kd/0oKIqNJuYgkRfAgPuO77SqCOg==} peerDependencies: vue-router: ^4.1.0 @@ -8394,8 +8400,8 @@ packages: optional: true dependencies: '@babel/types': 7.21.5 - '@rollup/pluginutils': 5.0.2(rollup@3.21.5) - '@vue-macros/common': 1.3.1(rollup@3.21.5)(vue@3.3.2) + '@rollup/pluginutils': 5.0.2(rollup@3.21.8) + '@vue-macros/common': 1.3.1(rollup@3.21.8)(vue@3.3.2) ast-walker-scope: 0.4.1 chokidar: 3.5.3 fast-glob: 3.2.12 @@ -8460,7 +8466,7 @@ packages: listhen: 1.0.4 lru-cache: 9.1.1 mri: 1.2.0 - node-fetch-native: 1.1.0 + node-fetch-native: 1.1.1 ofetch: 1.0.1 ufo: 1.1.2 transitivePeerDependencies: @@ -8547,7 +8553,7 @@ packages: extsprintf: 1.3.0 dev: true - /vite-node@0.31.0(@types/node@18.16.9): + /vite-node@0.31.0(@types/node@18.16.12): resolution: {integrity: sha512-8x1x1LNuPvE2vIvkSB7c1mApX5oqlgsxzHQesYF7l5n1gKrEmrClIiZuOFbFDQcjLsmcWSwwmrWrcGWm9Fxc/g==} engines: {node: '>=v14.18.0'} hasBin: true @@ -8557,7 +8563,7 @@ packages: mlly: 1.2.1 pathe: 1.1.0 picocolors: 1.0.0 - vite: 4.3.6(@types/node@18.16.9) + vite: 4.3.7(@types/node@18.16.12) transitivePeerDependencies: - '@types/node' - less @@ -8567,7 +8573,7 @@ packages: - supports-color - terser - /vite-plugin-checker@0.6.0(eslint@8.40.0)(typescript@5.0.4)(vite@4.3.6)(vue-tsc@1.7.0): + /vite-plugin-checker@0.6.0(eslint@8.40.0)(typescript@5.0.4)(vite@4.3.7)(vue-tsc@1.7.0): resolution: {integrity: sha512-DWZ9Hv2TkpjviPxAelNUt4Q3IhSGrx7xrwdM64NI+Q4dt8PaMWJJh4qGNtSrfEuiuIzWWo00Ksvh5It4Y3L9xQ==} engines: {node: '>=14.16'} peerDependencies: @@ -8613,7 +8619,7 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.0.4 - vite: 4.3.6(@types/node@18.16.9) + vite: 4.3.7(@types/node@18.16.12) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 @@ -8621,8 +8627,8 @@ packages: vue-tsc: 1.7.0(typescript@5.0.4) dev: false - /vite@4.3.6(@types/node@18.16.9): - resolution: {integrity: sha512-cqIyLSbA6gornMS659AXTVKF7cvSHMdKmJJwQ9DXq3lwsT1uZSdktuBRlpHQ8VnOWx0QHtjDwxPpGtyo9Fh/Qg==} + /vite@4.3.7(@types/node@18.16.12): + resolution: {integrity: sha512-MTIFpbIm9v7Hh5b0wSBgkcWzSBz7SAa6K/cBTwS4kUiQJfQLFlZZRJRQgqunCVzhTPCk674tW+0Qaqh3Q00dBg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: @@ -8646,10 +8652,10 @@ packages: terser: optional: true dependencies: - '@types/node': 18.16.9 + '@types/node': 18.16.12 esbuild: 0.17.19 postcss: 8.4.23 - rollup: 3.21.5 + rollup: 3.21.8 optionalDependencies: fsevents: 2.3.2 @@ -8686,7 +8692,7 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 18.16.9 + '@types/node': 18.16.12 '@vitest/expect': 0.31.0 '@vitest/runner': 0.31.0 '@vitest/snapshot': 0.31.0 @@ -8707,8 +8713,8 @@ packages: strip-literal: 1.0.1 tinybench: 2.4.0 tinypool: 0.5.0 - vite: 4.3.6(@types/node@18.16.9) - vite-node: 0.31.0(@types/node@18.16.9) + vite: 4.3.7(@types/node@18.16.12) + vite-node: 0.31.0(@types/node@18.16.12) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -8884,8 +8890,8 @@ packages: - utf-8-validate dev: false - /webpack-dev-middleware@6.1.0(webpack@5.82.1): - resolution: {integrity: sha512-H7I+YAlKeKwMK0IidkwqpunHhYc/LKJlh5UxCdaLgkhIqwUfebP4rrC131+ddcCZ7LBDBMV9+bkisdbR4zhKhw==} + /webpack-dev-middleware@6.1.1(webpack@5.82.1): + resolution: {integrity: sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==} engines: {node: '>= 14.15.0'} peerDependencies: webpack: ^5.0.0 From 52da9d1b359e321db1557d7d078dbd49f8933136 Mon Sep 17 00:00:00 2001 From: lemon <52554294+ww-lemon@users.noreply.github.com> Date: Wed, 17 May 2023 13:23:00 +0500 Subject: [PATCH 230/912] docs: fix typo (#20907) --- docs/3.api/1.composables/use-request-url.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/3.api/1.composables/use-request-url.md b/docs/3.api/1.composables/use-request-url.md index 452629c579..1efe2cf0fc 100644 --- a/docs/3.api/1.composables/use-request-url.md +++ b/docs/3.api/1.composables/use-request-url.md @@ -6,7 +6,7 @@ ```vue [pages/about.vue] - - diff --git a/examples/composables/use-head/nuxt.config.ts b/examples/composables/use-head/nuxt.config.ts deleted file mode 100644 index 9f9029e2b1..0000000000 --- a/examples/composables/use-head/nuxt.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default defineNuxtConfig({ - modules: [ - '@nuxt/ui' - ] -}) diff --git a/examples/composables/use-head/package.json b/examples/composables/use-head/package.json deleted file mode 100644 index e64efc2dc4..0000000000 --- a/examples/composables/use-head/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "example-use-head", - "private": true, - "scripts": { - "build": "nuxi build", - "dev": "nuxi dev", - "start": "node .output/server" - }, - "devDependencies": { - "@nuxt/ui": "^0.3.3", - "nuxt": "^3.0.0" - } -} diff --git a/examples/composables/use-head/tsconfig.json b/examples/composables/use-head/tsconfig.json deleted file mode 100644 index 4b34df1571..0000000000 --- a/examples/composables/use-head/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.nuxt/tsconfig.json" -} diff --git a/examples/composables/use-state/app.vue b/examples/composables/use-state/app.vue deleted file mode 100644 index 23650adaf2..0000000000 --- a/examples/composables/use-state/app.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/examples/composables/use-state/nuxt.config.ts b/examples/composables/use-state/nuxt.config.ts deleted file mode 100644 index 9f9029e2b1..0000000000 --- a/examples/composables/use-state/nuxt.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default defineNuxtConfig({ - modules: [ - '@nuxt/ui' - ] -}) diff --git a/examples/composables/use-state/package.json b/examples/composables/use-state/package.json deleted file mode 100644 index 0bf3812f99..0000000000 --- a/examples/composables/use-state/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "example-use-state", - "private": true, - "scripts": { - "build": "nuxi build", - "dev": "nuxi dev", - "start": "nuxi preview" - }, - "devDependencies": { - "@nuxt/ui": "^0.3.3", - "nuxt": "^3.0.0" - } -} diff --git a/examples/composables/use-state/tsconfig.json b/examples/composables/use-state/tsconfig.json deleted file mode 100644 index dfaf3c6d8f..0000000000 --- a/examples/composables/use-state/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.nuxt/tsconfig.json", -} diff --git a/examples/essentials/hello-world/app.vue b/examples/essentials/hello-world/app.vue deleted file mode 100644 index 19a4e3e12c..0000000000 --- a/examples/essentials/hello-world/app.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - diff --git a/examples/essentials/hello-world/nuxt.config.ts b/examples/essentials/hello-world/nuxt.config.ts deleted file mode 100644 index fc5628ebc3..0000000000 --- a/examples/essentials/hello-world/nuxt.config.ts +++ /dev/null @@ -1,2 +0,0 @@ -export default defineNuxtConfig({ -}) diff --git a/examples/essentials/hello-world/package.json b/examples/essentials/hello-world/package.json deleted file mode 100644 index 818247b527..0000000000 --- a/examples/essentials/hello-world/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "example-hello-world", - "private": true, - "scripts": { - "build": "nuxi build", - "dev": "nuxi dev", - "start": "nuxi preview" - }, - "devDependencies": { - "nuxt": "^3.0.0" - } -} diff --git a/examples/essentials/hello-world/tsconfig.json b/examples/essentials/hello-world/tsconfig.json deleted file mode 100644 index 4b34df1571..0000000000 --- a/examples/essentials/hello-world/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.nuxt/tsconfig.json" -} diff --git a/examples/experimental/vite-node/app.vue b/examples/experimental/vite-node/app.vue deleted file mode 100644 index f6c1c7031b..0000000000 --- a/examples/experimental/vite-node/app.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/examples/experimental/vite-node/nuxt.config.ts b/examples/experimental/vite-node/nuxt.config.ts deleted file mode 100644 index 5244ad314d..0000000000 --- a/examples/experimental/vite-node/nuxt.config.ts +++ /dev/null @@ -1,8 +0,0 @@ -export default defineNuxtConfig({ - modules: [ - '@nuxt/ui' - ], - experimental: { - viteNode: true - } -}) diff --git a/examples/experimental/vite-node/package.json b/examples/experimental/vite-node/package.json deleted file mode 100644 index 4c5128725e..0000000000 --- a/examples/experimental/vite-node/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "example-vite-node", - "private": true, - "scripts": { - "build": "nuxi build", - "dev": "nuxi dev", - "start": "nuxi preview" - }, - "devDependencies": { - "@nuxt/ui": "^0.3.3", - "nuxt": "^3.0.0" - } -} diff --git a/examples/experimental/vite-node/tsconfig.json b/examples/experimental/vite-node/tsconfig.json deleted file mode 100644 index 4b34df1571..0000000000 --- a/examples/experimental/vite-node/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.nuxt/tsconfig.json" -} diff --git a/examples/experimental/wasm/app.vue b/examples/experimental/wasm/app.vue deleted file mode 100644 index 193b6581c4..0000000000 --- a/examples/experimental/wasm/app.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/examples/experimental/wasm/nuxt.config.ts b/examples/experimental/wasm/nuxt.config.ts deleted file mode 100644 index fc744fd0dd..0000000000 --- a/examples/experimental/wasm/nuxt.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -export default defineNuxtConfig({ - nitro: { - experimental: { - wasm: true - } - }, - modules: [ - '@nuxt/ui' - ] -}) diff --git a/examples/experimental/wasm/package.json b/examples/experimental/wasm/package.json deleted file mode 100644 index 8235d294c1..0000000000 --- a/examples/experimental/wasm/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "example-wasm", - "private": true, - "devDependencies": { - "@nuxt/ui": "^0.3.3", - "nuxt": "^3.0.0" - }, - "scripts": { - "dev": "nuxi dev", - "build": "nuxi build", - "start": "nuxi preview" - } -} diff --git a/examples/experimental/wasm/server/api/sum.ts b/examples/experimental/wasm/server/api/sum.ts deleted file mode 100644 index 55bd69c18f..0000000000 --- a/examples/experimental/wasm/server/api/sum.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { defineLazyEventHandler } from 'h3' - -export default defineLazyEventHandler(async () => { - const { exports: { sum } } = await loadWasmInstance( - // @ts-expect-error TODO: https://github.com/nuxt/nuxt/issues/14131 - () => import('~/server/wasm/sum.wasm') - ) - - return (event) => { - const { a = 0, b = 0 } = getQuery(event) - return { sum: sum(a, b) } - } -}) - -async function loadWasmInstance (importFn, imports = {}) { - const init = await importFn().then(m => m.default || m) - const { instance } = await init(imports) - return instance -} diff --git a/examples/experimental/wasm/server/wasm/sum.wasm b/examples/experimental/wasm/server/wasm/sum.wasm deleted file mode 100755 index 7267db6252285d7a5282ddc866780b552b749625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57 zcmWN{F$#b%5Jb^G8(~nvGvsKduo2cKSnt*K)sHb#fUGmBR4s(9Hs6G8mFaZdJIC^j Jyuu>>&Ijpb2Pyyn diff --git a/examples/experimental/wasm/server/wasm/sum.wat b/examples/experimental/wasm/server/wasm/sum.wat deleted file mode 100644 index 71d6e2859e..0000000000 --- a/examples/experimental/wasm/server/wasm/sum.wat +++ /dev/null @@ -1,7 +0,0 @@ -;; https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format -;; https://webassembly.github.io/wabt/demo/wat2wasm/ -(module - (func (export "sum") (param i32 i32) (result i32) - local.get 0 - local.get 1 - i32.add)) diff --git a/examples/experimental/wasm/tsconfig.json b/examples/experimental/wasm/tsconfig.json deleted file mode 100644 index 4b34df1571..0000000000 --- a/examples/experimental/wasm/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.nuxt/tsconfig.json" -} diff --git a/examples/other/locale/app.vue b/examples/other/locale/app.vue deleted file mode 100644 index d8239321aa..0000000000 --- a/examples/other/locale/app.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/examples/other/locale/composables/locale.ts b/examples/other/locale/composables/locale.ts deleted file mode 100644 index 2eb1f714ea..0000000000 --- a/examples/other/locale/composables/locale.ts +++ /dev/null @@ -1,43 +0,0 @@ -import type { Ref } from 'vue' - -export const useLocale = () => useState('locale', () => useDefaultLocale().value) - -export const useDefaultLocale = (fallback = 'en-US') => { - const locale = ref(fallback) - if (process.server) { - // Learn more about the nuxtApp interface on https://nuxt.com/docs/guide/going-further/internals#the-nuxtapp-interface - const reqLocale = useRequestHeaders()['accept-language']?.split(',')[0] - if (reqLocale) { - locale.value = reqLocale - } - } else if (process.client) { - const navLang = navigator.language - if (navLang) { - locale.value = navLang - } - } - return locale -} - -export const useLocales = () => { - const locale = useLocale() - const locales = ref([ - 'en-US', - 'en-GB', - 'ko-KR', - 'zh-CN', - 'ar-EG', - 'fa-IR', - 'ja-JP-u-ca-japanese' - ]) - if (!locales.value.includes(locale.value)) { - locales.value.unshift(locale.value) - } - return locales -} - -// Using Intl.DateTimeFormat for language-sensitive date and time formatting -// Learn more: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat -export const useLocaleDate = (date: Ref | Date, locale = useLocale()) => { - return computed(() => new Intl.DateTimeFormat(locale.value, { dateStyle: 'full' }).format(unref(date))) -} diff --git a/examples/other/locale/nuxt.config.ts b/examples/other/locale/nuxt.config.ts deleted file mode 100644 index 9f9029e2b1..0000000000 --- a/examples/other/locale/nuxt.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default defineNuxtConfig({ - modules: [ - '@nuxt/ui' - ] -}) diff --git a/examples/other/locale/package.json b/examples/other/locale/package.json deleted file mode 100644 index 64c709405d..0000000000 --- a/examples/other/locale/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "example-locale", - "private": true, - "scripts": { - "build": "nuxi build", - "dev": "nuxi dev", - "start": "nuxi preview" - }, - "devDependencies": { - "@nuxt/ui": "^0.3.3", - "nuxt": "^3.0.0" - } -} diff --git a/examples/other/locale/tsconfig.json b/examples/other/locale/tsconfig.json deleted file mode 100644 index 4b34df1571..0000000000 --- a/examples/other/locale/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.nuxt/tsconfig.json" -} diff --git a/examples/other/use-custom-fetch-composable/app.vue b/examples/other/use-custom-fetch-composable/app.vue deleted file mode 100644 index a4b3d6d4a9..0000000000 --- a/examples/other/use-custom-fetch-composable/app.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/examples/other/use-custom-fetch-composable/composables/useCustomFetch.ts b/examples/other/use-custom-fetch-composable/composables/useCustomFetch.ts deleted file mode 100644 index db9e572744..0000000000 --- a/examples/other/use-custom-fetch-composable/composables/useCustomFetch.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { UseFetchOptions } from 'nuxt/app' -import { defu } from 'defu' - -export function useCustomFetch (url: string, options: UseFetchOptions = {}) { - const userAuth = useCookie('token') - const config = useRuntimeConfig() - - const defaults: UseFetchOptions = { - baseURL: config.baseUrl ?? 'https://api.nuxtjs.dev', - // cache request - key: url, - - // set user token if connected - headers: userAuth.value - ? { Authorization: `Bearer ${userAuth.value}` } - : {}, - - onResponse (_ctx) { - // _ctx.response._data = new myBusinessResponse(_ctx.response._data) - }, - - onResponseError (_ctx) { - // throw new myBusinessError() - } - } - - // for nice deep defaults, please use unjs/defu - const params = defu(options, defaults) - - return useFetch(url, params) -} diff --git a/examples/other/use-custom-fetch-composable/nuxt.config.ts b/examples/other/use-custom-fetch-composable/nuxt.config.ts deleted file mode 100644 index 1ede6806b6..0000000000 --- a/examples/other/use-custom-fetch-composable/nuxt.config.ts +++ /dev/null @@ -1,6 +0,0 @@ -// https://nuxt.com/docs/api/configuration/nuxt-config -export default defineNuxtConfig({ - modules: [ - '@nuxt/ui' - ] -}) diff --git a/examples/other/use-custom-fetch-composable/package.json b/examples/other/use-custom-fetch-composable/package.json deleted file mode 100644 index ae4d600098..0000000000 --- a/examples/other/use-custom-fetch-composable/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "example-use-custom-fetch-composable", - "private": true, - "scripts": { - "build": "nuxi build", - "dev": "nuxi dev", - "start": "nuxi preview" - }, - "devDependencies": { - "@nuxt/ui": "^0.3.3", - "nuxt": "^3.0.0" - } -} diff --git a/examples/other/use-custom-fetch-composable/tsconfig.json b/examples/other/use-custom-fetch-composable/tsconfig.json deleted file mode 100644 index a746f2a70c..0000000000 --- a/examples/other/use-custom-fetch-composable/tsconfig.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - // https://nuxt.com/docs/guide/concepts/typescript - "extends": "./.nuxt/tsconfig.json" -} diff --git a/examples/routing/layouts/layouts/custom.vue b/examples/routing/layouts/layouts/custom.vue deleted file mode 100644 index 3ccb238316..0000000000 --- a/examples/routing/layouts/layouts/custom.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/examples/routing/layouts/layouts/default.vue b/examples/routing/layouts/layouts/default.vue deleted file mode 100644 index 6d83fd9b55..0000000000 --- a/examples/routing/layouts/layouts/default.vue +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/examples/routing/layouts/layouts/other.vue b/examples/routing/layouts/layouts/other.vue deleted file mode 100644 index 129449dd1a..0000000000 --- a/examples/routing/layouts/layouts/other.vue +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/examples/routing/layouts/middleware/other.ts b/examples/routing/layouts/middleware/other.ts deleted file mode 100644 index 24e3a83911..0000000000 --- a/examples/routing/layouts/middleware/other.ts +++ /dev/null @@ -1,4 +0,0 @@ - -export default defineNuxtRouteMiddleware(() => { - setPageLayout('other') -}) diff --git a/examples/routing/layouts/nuxt.config.ts b/examples/routing/layouts/nuxt.config.ts deleted file mode 100644 index 9f9029e2b1..0000000000 --- a/examples/routing/layouts/nuxt.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default defineNuxtConfig({ - modules: [ - '@nuxt/ui' - ] -}) diff --git a/examples/routing/layouts/package.json b/examples/routing/layouts/package.json deleted file mode 100644 index ba7b256878..0000000000 --- a/examples/routing/layouts/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "example-layouts", - "private": true, - "scripts": { - "build": "nuxi build", - "dev": "nuxi dev", - "start": "nuxi preview" - }, - "devDependencies": { - "@nuxt/ui": "^0.3.3", - "nuxt": "^3.0.0" - } -} diff --git a/examples/routing/layouts/pages/custom.vue b/examples/routing/layouts/pages/custom.vue deleted file mode 100644 index b8bb904e73..0000000000 --- a/examples/routing/layouts/pages/custom.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/examples/routing/layouts/pages/default.vue b/examples/routing/layouts/pages/default.vue deleted file mode 100644 index 175c83f07e..0000000000 --- a/examples/routing/layouts/pages/default.vue +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/examples/routing/layouts/pages/dynamic.vue b/examples/routing/layouts/pages/dynamic.vue deleted file mode 100644 index f07ea238b3..0000000000 --- a/examples/routing/layouts/pages/dynamic.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/examples/routing/layouts/pages/index.vue b/examples/routing/layouts/pages/index.vue deleted file mode 100644 index 8f38f2f09d..0000000000 --- a/examples/routing/layouts/pages/index.vue +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/examples/routing/layouts/pages/other.vue b/examples/routing/layouts/pages/other.vue deleted file mode 100644 index 00b14af93a..0000000000 --- a/examples/routing/layouts/pages/other.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/examples/routing/layouts/tsconfig.json b/examples/routing/layouts/tsconfig.json deleted file mode 100644 index 4b34df1571..0000000000 --- a/examples/routing/layouts/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.nuxt/tsconfig.json" -} diff --git a/examples/routing/middleware/app.vue b/examples/routing/middleware/app.vue deleted file mode 100644 index 6ecc44ead0..0000000000 --- a/examples/routing/middleware/app.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/examples/routing/middleware/middleware/always-run.global.ts b/examples/routing/middleware/middleware/always-run.global.ts deleted file mode 100644 index 7ec72f4acd..0000000000 --- a/examples/routing/middleware/middleware/always-run.global.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default defineNuxtRouteMiddleware(() => { - console.log('running global middleware') -}) diff --git a/examples/routing/middleware/middleware/redirect-me.ts b/examples/routing/middleware/middleware/redirect-me.ts deleted file mode 100644 index 03db33c244..0000000000 --- a/examples/routing/middleware/middleware/redirect-me.ts +++ /dev/null @@ -1,8 +0,0 @@ -export default defineNuxtRouteMiddleware((to) => { - const { $config } = useNuxtApp() - if ($config) { - console.log('Accessed runtime config within middleware.') - } - console.log('Heading to', to.path, 'but I think we should go somewhere else...') - return '/secret' -}) diff --git a/examples/routing/middleware/nuxt.config.ts b/examples/routing/middleware/nuxt.config.ts deleted file mode 100644 index 9f9029e2b1..0000000000 --- a/examples/routing/middleware/nuxt.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default defineNuxtConfig({ - modules: [ - '@nuxt/ui' - ] -}) diff --git a/examples/routing/middleware/package.json b/examples/routing/middleware/package.json deleted file mode 100644 index a14a0c7bb4..0000000000 --- a/examples/routing/middleware/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "example-middleware", - "private": true, - "scripts": { - "build": "nuxi build", - "dev": "nuxi dev", - "start": "nuxi preview" - }, - "devDependencies": { - "@nuxt/ui": "^0.3.3", - "nuxt": "^3.0.0" - } -} diff --git a/examples/routing/middleware/pages/forbidden.vue b/examples/routing/middleware/pages/forbidden.vue deleted file mode 100644 index dcd621edad..0000000000 --- a/examples/routing/middleware/pages/forbidden.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/examples/routing/middleware/pages/index.vue b/examples/routing/middleware/pages/index.vue deleted file mode 100644 index a9168c0bdf..0000000000 --- a/examples/routing/middleware/pages/index.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/examples/routing/middleware/pages/redirect.vue b/examples/routing/middleware/pages/redirect.vue deleted file mode 100644 index 045cf341bc..0000000000 --- a/examples/routing/middleware/pages/redirect.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/examples/routing/middleware/pages/secret.vue b/examples/routing/middleware/pages/secret.vue deleted file mode 100644 index 4f694d72fc..0000000000 --- a/examples/routing/middleware/pages/secret.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/examples/routing/middleware/plugins/add.ts b/examples/routing/middleware/plugins/add.ts deleted file mode 100644 index 9d9dc5ab1b..0000000000 --- a/examples/routing/middleware/plugins/add.ts +++ /dev/null @@ -1,9 +0,0 @@ -export default defineNuxtPlugin(() => { - addRouteMiddleware('global-test', () => { - console.log('this global middleware was added in a plugin') - }, { global: true }) - - addRouteMiddleware('named-test', () => { - console.log('this named middleware was added in a plugin') - }) -}) diff --git a/examples/routing/middleware/tsconfig.json b/examples/routing/middleware/tsconfig.json deleted file mode 100644 index 4b34df1571..0000000000 --- a/examples/routing/middleware/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.nuxt/tsconfig.json" -} diff --git a/examples/routing/nuxt-link/app.vue b/examples/routing/nuxt-link/app.vue deleted file mode 100644 index 66f1679a6c..0000000000 --- a/examples/routing/nuxt-link/app.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/examples/routing/nuxt-link/components/MyNuxtLink.ts b/examples/routing/nuxt-link/components/MyNuxtLink.ts deleted file mode 100644 index 3ae8613b2c..0000000000 --- a/examples/routing/nuxt-link/components/MyNuxtLink.ts +++ /dev/null @@ -1,6 +0,0 @@ -export default defineNuxtLink({ - componentName: 'MyNuxtLink', - externalRelAttribute: '', - activeClass: 'active', - exactActiveClass: 'exact-active' -}) diff --git a/examples/routing/nuxt-link/nuxt.config.ts b/examples/routing/nuxt-link/nuxt.config.ts deleted file mode 100644 index 9f9029e2b1..0000000000 --- a/examples/routing/nuxt-link/nuxt.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default defineNuxtConfig({ - modules: [ - '@nuxt/ui' - ] -}) diff --git a/examples/routing/nuxt-link/package.json b/examples/routing/nuxt-link/package.json deleted file mode 100644 index 357411c5f5..0000000000 --- a/examples/routing/nuxt-link/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "example-nuxt-link", - "private": true, - "scripts": { - "build": "nuxi build", - "dev": "nuxi dev", - "start": "nuxi preview" - }, - "devDependencies": { - "@nuxt/ui": "^0.3.3", - "nuxt": "^3.0.0" - } -} diff --git a/examples/routing/nuxt-link/pages/about.vue b/examples/routing/nuxt-link/pages/about.vue deleted file mode 100644 index d3c82f35e2..0000000000 --- a/examples/routing/nuxt-link/pages/about.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/examples/routing/nuxt-link/pages/index.vue b/examples/routing/nuxt-link/pages/index.vue deleted file mode 100644 index 230bd2698a..0000000000 --- a/examples/routing/nuxt-link/pages/index.vue +++ /dev/null @@ -1,34 +0,0 @@ - diff --git a/examples/routing/nuxt-link/tsconfig.json b/examples/routing/nuxt-link/tsconfig.json deleted file mode 100644 index 4b34df1571..0000000000 --- a/examples/routing/nuxt-link/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.nuxt/tsconfig.json" -} diff --git a/examples/routing/pages/app.vue b/examples/routing/pages/app.vue deleted file mode 100644 index 8ffd82ba5d..0000000000 --- a/examples/routing/pages/app.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/examples/routing/pages/nuxt.config.ts b/examples/routing/pages/nuxt.config.ts deleted file mode 100644 index 9f9029e2b1..0000000000 --- a/examples/routing/pages/nuxt.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default defineNuxtConfig({ - modules: [ - '@nuxt/ui' - ] -}) diff --git a/examples/routing/pages/package.json b/examples/routing/pages/package.json deleted file mode 100644 index 54a68103e7..0000000000 --- a/examples/routing/pages/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "example-pages", - "private": true, - "scripts": { - "build": "nuxi build", - "dev": "nuxi dev", - "start": "nuxi preview" - }, - "devDependencies": { - "@nuxt/ui": "^0.3.3", - "nuxt": "^3.0.0" - } -} diff --git a/examples/routing/pages/pages/about.vue b/examples/routing/pages/pages/about.vue deleted file mode 100644 index 43685bec2a..0000000000 --- a/examples/routing/pages/pages/about.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/examples/routing/pages/pages/catchall/[...id].vue b/examples/routing/pages/pages/catchall/[...id].vue deleted file mode 100644 index c4e5f199e6..0000000000 --- a/examples/routing/pages/pages/catchall/[...id].vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/examples/routing/pages/pages/index.vue b/examples/routing/pages/pages/index.vue deleted file mode 100644 index a9168c0bdf..0000000000 --- a/examples/routing/pages/pages/index.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/examples/routing/pages/pages/parent.vue b/examples/routing/pages/pages/parent.vue deleted file mode 100644 index dd5a406de2..0000000000 --- a/examples/routing/pages/pages/parent.vue +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/examples/routing/pages/pages/parent/b.vue b/examples/routing/pages/pages/parent/b.vue deleted file mode 100644 index 6312e81612..0000000000 --- a/examples/routing/pages/pages/parent/b.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/examples/routing/pages/pages/parent/index.vue b/examples/routing/pages/pages/parent/index.vue deleted file mode 100644 index fe020db9bc..0000000000 --- a/examples/routing/pages/pages/parent/index.vue +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/examples/routing/pages/pages/parent/reload-[id].vue b/examples/routing/pages/pages/parent/reload-[id].vue deleted file mode 100644 index baa06935fa..0000000000 --- a/examples/routing/pages/pages/parent/reload-[id].vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/examples/routing/pages/pages/parent/static-[id].vue b/examples/routing/pages/pages/parent/static-[id].vue deleted file mode 100644 index eaa7085ef9..0000000000 --- a/examples/routing/pages/pages/parent/static-[id].vue +++ /dev/null @@ -1,13 +0,0 @@ - - - diff --git a/examples/routing/pages/tsconfig.json b/examples/routing/pages/tsconfig.json deleted file mode 100644 index 4b34df1571..0000000000 --- a/examples/routing/pages/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.nuxt/tsconfig.json" -} diff --git a/examples/routing/universal-router/app.vue b/examples/routing/universal-router/app.vue deleted file mode 100644 index eb7103262a..0000000000 --- a/examples/routing/universal-router/app.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - diff --git a/examples/routing/universal-router/middleware/always-run.global.ts b/examples/routing/universal-router/middleware/always-run.global.ts deleted file mode 100644 index 7ec72f4acd..0000000000 --- a/examples/routing/universal-router/middleware/always-run.global.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default defineNuxtRouteMiddleware(() => { - console.log('running global middleware') -}) diff --git a/examples/routing/universal-router/nuxt.config.ts b/examples/routing/universal-router/nuxt.config.ts deleted file mode 100644 index 9f9029e2b1..0000000000 --- a/examples/routing/universal-router/nuxt.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default defineNuxtConfig({ - modules: [ - '@nuxt/ui' - ] -}) diff --git a/examples/routing/universal-router/package.json b/examples/routing/universal-router/package.json deleted file mode 100644 index 127c3beb42..0000000000 --- a/examples/routing/universal-router/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "example-universal-router", - "private": true, - "scripts": { - "build": "nuxi build", - "dev": "nuxi dev", - "start": "nuxi preview" - }, - "devDependencies": { - "@nuxt/ui": "^0.3.3", - "nuxt": "^3.0.0" - } -} diff --git a/examples/routing/universal-router/plugins/add.ts b/examples/routing/universal-router/plugins/add.ts deleted file mode 100644 index 6677989d22..0000000000 --- a/examples/routing/universal-router/plugins/add.ts +++ /dev/null @@ -1,33 +0,0 @@ -export default defineNuxtPlugin(() => { - const timer = useState('timer', () => 0) - - if (process.client) { - addRouteMiddleware(async () => { - console.log('Starting timer...') - timer.value = 5 - do { - await new Promise(resolve => setTimeout(resolve, 100)) - timer.value-- - } while (timer.value) - console.log('...and navigating') - }) - } - - addRouteMiddleware((to) => { - if (to.path === '/forbidden') { - return false - } - }) - - addRouteMiddleware((to) => { - const { $config } = useNuxtApp() - if ($config) { - console.log('Accessed runtime config within middleware.') - } - - if (to.path !== '/redirect') { return } - - console.log('Heading to', to.path, 'but I think we should go somewhere else...') - return '/secret' - }) -}) diff --git a/examples/routing/universal-router/tsconfig.json b/examples/routing/universal-router/tsconfig.json deleted file mode 100644 index 4b34df1571..0000000000 --- a/examples/routing/universal-router/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.nuxt/tsconfig.json" -} diff --git a/examples/server/routes/app.vue b/examples/server/routes/app.vue deleted file mode 100644 index c5537ec950..0000000000 --- a/examples/server/routes/app.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/examples/server/routes/nuxt.config.ts b/examples/server/routes/nuxt.config.ts deleted file mode 100644 index 9f9029e2b1..0000000000 --- a/examples/server/routes/nuxt.config.ts +++ /dev/null @@ -1,5 +0,0 @@ -export default defineNuxtConfig({ - modules: [ - '@nuxt/ui' - ] -}) diff --git a/examples/server/routes/package.json b/examples/server/routes/package.json deleted file mode 100644 index ed0cd6c92e..0000000000 --- a/examples/server/routes/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "example-server-routes", - "private": true, - "scripts": { - "build": "nuxi build", - "dev": "nuxi dev", - "start": "nuxi preview" - }, - "devDependencies": { - "@nuxt/ui": "^0.3.3", - "nuxt": "^3.0.0" - } -} diff --git a/examples/server/routes/server/api/mountain.js b/examples/server/routes/server/api/mountain.js deleted file mode 100644 index a3e85f2427..0000000000 --- a/examples/server/routes/server/api/mountain.js +++ /dev/null @@ -1,17 +0,0 @@ -export default defineEventHandler(() => { - return { - title: 'Mount Everest', - description: "Mount Everest is Earth's highest mountain above sea level, located in the Mahalangur Himal sub-range of the Himalayas. The China–Nepal border runs across its summit point", - height: '8,848 m', - countries: [ - 'China', - 'Nepal' - ], - continent: 'Asia', - image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/f/f6/Everest_kalapatthar.jpg/600px-Everest_kalapatthar.jpg', - dir: '/mountains', - path: '/mountains/mount-everest', - slug: 'mount-everest', - updatedAt: '2020-12-11T15:40:35.000Z' - } -}) diff --git a/examples/server/routes/tsconfig.json b/examples/server/routes/tsconfig.json deleted file mode 100644 index 4b34df1571..0000000000 --- a/examples/server/routes/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "./.nuxt/tsconfig.json" -} From 9df892a17fe663f7e441cb65d576264da762fed2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Mon, 19 Jun 2023 19:52:16 +0200 Subject: [PATCH 397/912] docs(examples): add bullet points --- examples/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/README.md b/examples/README.md index 0f3f5d46c8..ba22dfb66e 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,4 +1,4 @@ # Nuxt 3 Examples -👉 See examples in your browser at https://nuxt.com/docs/examples -👉 View on GitHub at https://github.com/nuxt/examples +- 👉 See examples in your browser at https://nuxt.com/docs/examples +- 👉 View on GitHub at https://github.com/nuxt/examples From 3fd6c179e439388247ceb795bf83d8534eafc73d Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 19 Jun 2023 23:06:46 +0100 Subject: [PATCH 398/912] fix(nuxt): replace `:` in rendered server components (for win) (#21645) --- packages/nuxt/src/app/components/nuxt-island.ts | 2 +- packages/nuxt/src/core/runtime/nitro/renderer.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index ba2b239305..e2e8c27bea 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -69,7 +69,7 @@ export default defineComponent({ }) async function _fetchComponent () { - const key = `${props.name}:${hashId.value}` + const key = `${props.name}_${hashId.value}` if (nuxtApp.payload.data[key]) { return nuxtApp.payload.data[key] } const url = `/__nuxt_island/${key}` diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 1e1b21d1c4..a72c1e520a 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -145,7 +145,7 @@ const getSPARenderer = lazyCachedFunction(async () => { async function getIslandContext (event: H3Event): Promise { // TODO: Strict validation for url const url = event.node.req.url?.substring('/__nuxt_island'.length + 1) || '' - const [componentName, hashId] = url.split('?')[0].split(':') + const [componentName, hashId] = url.split('?')[0].split('_') // TODO: Validate context const context = event.node.req.method === 'GET' ? getQuery(event) : await readBody(event) @@ -363,7 +363,7 @@ export default defineRenderHandler(async (event): Promise Date: Mon, 19 Jun 2023 23:29:09 +0100 Subject: [PATCH 399/912] fix(nuxi): add back default `baseUrl` in `tsconfig.json` (#21632) --- .github/workflows/ci.yml | 5 ++- package.json | 4 +-- packages/nuxi/src/utils/prepare.ts | 42 +++++------------------- packages/nuxt/src/components/module.ts | 10 +----- test/fixtures/basic-types/nuxt.config.ts | 8 +++++ test/fixtures/basic-types/package.json | 3 +- test/fixtures/minimal-types/package.json | 3 +- 7 files changed, 27 insertions(+), 48 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 97c7492fb8..d12ffd26dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -101,14 +101,16 @@ jobs: category: "/language:javascript" typecheck: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} timeout-minutes: 10 needs: - build strategy: fail-fast: false matrix: + os: [ubuntu-latest, windows-latest] module: ['bundler', 'node'] + base: ['with-base-url', 'without-base-url'] steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 @@ -131,6 +133,7 @@ jobs: run: pnpm test:types env: MODULE_RESOLUTION: ${{ matrix.module }} + TS_BASE_URL: ${{ matrix.base }} lint: # autofix workflow will be triggered instead for PRs diff --git a/package.json b/package.json index 024a067546..ea2813558e 100644 --- a/package.json +++ b/package.json @@ -21,9 +21,7 @@ "test:fixtures:payload": "TEST_PAYLOAD=js pnpm test:fixtures", "test:fixtures:dev": "TEST_ENV=dev pnpm test:fixtures", "test:fixtures:webpack": "TEST_BUILDER=webpack pnpm test:fixtures", - "test:types": "pnpm test:types:basic && pnpm test:types:minimal", - "test:types:basic": "nuxi prepare test/fixtures/basic-types && cd test/fixtures/basic-types && npx vue-tsc --noEmit", - "test:types:minimal": "nuxi prepare test/fixtures/minimal-types && cd test/fixtures/minimal-types && npx vue-tsc --noEmit", + "test:types": "pnpm --filter './test/fixtures/**' test:types", "test:unit": "vitest run --dir packages", "typecheck": "tsc --noEmit" }, diff --git a/packages/nuxi/src/utils/prepare.ts b/packages/nuxi/src/utils/prepare.ts index 2e3cc9d987..d428f7782c 100644 --- a/packages/nuxi/src/utils/prepare.ts +++ b/packages/nuxi/src/utils/prepare.ts @@ -1,4 +1,4 @@ -import { existsSync, promises as fsp } from 'node:fs' +import { promises as fsp } from 'node:fs' import { isAbsolute, join, relative, resolve } from 'pathe' import type { Nuxt, TSReference } from '@nuxt/schema' import { defu } from 'defu' @@ -18,6 +18,8 @@ export const writeTypes = async (nuxt: Nuxt) => { skipLibCheck: true, strict: nuxt.options.typescript?.strict ?? false, allowJs: true, + // TODO: remove by default in 3.7 + baseUrl: nuxt.options.srcDir, noEmit: true, resolveJsonModule: true, allowSyntheticDefaultImports: true, @@ -34,7 +36,7 @@ export const writeTypes = async (nuxt: Nuxt) => { // nitro generate output: https://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/core/nitro.ts#L186 relative(nuxt.options.buildDir, resolve(nuxt.options.rootDir, 'dist')) ] - }) + } satisfies TSConfig) const aliases: Record = { ...nuxt.options.alias, @@ -50,17 +52,15 @@ export const writeTypes = async (nuxt: Nuxt) => { if (excludedAlias.some(re => re.test(alias))) { continue } - const relativePath = isAbsolute(aliases[alias]) - ? relativeTo(basePath, aliases[alias]) - : aliases[alias] + const absolutePath = resolve(basePath, aliases[alias]) - const stats = await fsp.stat(resolve(basePath, relativePath)).catch(() => null /* file does not exist */) + const stats = await fsp.stat(absolutePath).catch(() => null /* file does not exist */) tsConfig.compilerOptions = tsConfig.compilerOptions || {} if (stats?.isDirectory()) { - tsConfig.compilerOptions.paths[alias] = [relativePath] - tsConfig.compilerOptions.paths[`${alias}/*`] = [`${relativePath}/*`] + tsConfig.compilerOptions.paths[alias] = [absolutePath] + tsConfig.compilerOptions.paths[`${alias}/*`] = [`${absolutePath}/*`] } else { - tsConfig.compilerOptions.paths[alias] = [relativePath.replace(/(?<=\w)\.\w+$/g, '')] /* remove extension */ + tsConfig.compilerOptions.paths[alias] = [absolutePath.replace(/(?<=\w)\.\w+$/g, '')] /* remove extension */ } } @@ -79,18 +79,6 @@ export const writeTypes = async (nuxt: Nuxt) => { await nuxt.callHook('prepare:types', { references, declarations, tsConfig }) - // Normalise aliases to be relative to buildDir for backward compatibility - for (const alias in tsConfig.compilerOptions!.paths!) { - const paths = tsConfig.compilerOptions!.paths![alias] as string[] - for (const [index, path] of paths.entries()) { - if (isAbsolute(path) || LEADING_DOT_RE.test(path)) { continue } - const resolvedPath = join(nuxt.options.rootDir, path) /* previously basePath was set to rootDir */ - if (existsSync(resolvedPath)) { - paths[index] = relativeTo(basePath, resolvedPath) - } - } - } - const declaration = [ ...references.map((ref) => { if ('path' in ref && isAbsolute(ref.path)) { @@ -123,18 +111,6 @@ export const writeTypes = async (nuxt: Nuxt) => { await writeFile() } -const LEADING_DOT_RE = /^\.{1,2}(\/|$)/ -function withLeadingDot (path: string) { - if (LEADING_DOT_RE.test(path)) { - return path - } - return `./${path}` -} - -function relativeTo (from: string, to: string) { - return withLeadingDot(relative(from, to) || '.') -} - function renderAttrs (obj: Record) { return Object.entries(obj).map(e => renderAttr(e[0], e[1])).join(' ') } diff --git a/packages/nuxt/src/components/module.ts b/packages/nuxt/src/components/module.ts index 1228e0bb70..52642c41be 100644 --- a/packages/nuxt/src/components/module.ts +++ b/packages/nuxt/src/components/module.ts @@ -178,7 +178,7 @@ export default defineNuxtModule({ }) nuxt.hook('prepare:types', ({ references, tsConfig }) => { - tsConfig.compilerOptions!.paths['#components'] = [withLeadingDot(relative(nuxt.options.buildDir, resolve(nuxt.options.buildDir, 'components')))] + tsConfig.compilerOptions!.paths['#components'] = [resolve(nuxt.options.buildDir, 'components')] references.push({ path: resolve(nuxt.options.buildDir, 'components.d.ts') }) }) @@ -255,11 +255,3 @@ export default defineNuxtModule({ }) } }) - -const LEADING_DOT_RE = /^\.{1,2}(\/|$)/ -function withLeadingDot (path: string) { - if (LEADING_DOT_RE.test(path)) { - return path - } - return `./${path}` -} diff --git a/test/fixtures/basic-types/nuxt.config.ts b/test/fixtures/basic-types/nuxt.config.ts index 19d3853d88..bde94e9aca 100644 --- a/test/fixtures/basic-types/nuxt.config.ts +++ b/test/fixtures/basic-types/nuxt.config.ts @@ -35,6 +35,14 @@ export default defineNuxtConfig({ } }, modules: [ + function (_, nuxt) { + // TODO: remove in v3.7 + if (process.env.TS_BASE_URL === 'without-base-url') { + nuxt.hook('prepare:types', ({ tsConfig }) => { + delete tsConfig.compilerOptions!.baseUrl + }) + } + }, function () { addTypeTemplate({ filename: 'test.d.ts', diff --git a/test/fixtures/basic-types/package.json b/test/fixtures/basic-types/package.json index aa52bcae27..7a9625eae1 100644 --- a/test/fixtures/basic-types/package.json +++ b/test/fixtures/basic-types/package.json @@ -2,7 +2,8 @@ "private": true, "name": "fixture-basic-types", "scripts": { - "build": "nuxi build" + "build": "nuxi build", + "test:types": "nuxi prepare && npx vue-tsc --noEmit" }, "dependencies": { "nuxt": "workspace:*" diff --git a/test/fixtures/minimal-types/package.json b/test/fixtures/minimal-types/package.json index bcba9c9e14..8cdd0337f1 100644 --- a/test/fixtures/minimal-types/package.json +++ b/test/fixtures/minimal-types/package.json @@ -2,7 +2,8 @@ "private": true, "name": "fixture-minimal-types", "scripts": { - "build": "nuxi build" + "build": "nuxi build", + "test:types": "nuxi prepare && npx vue-tsc --noEmit" }, "dependencies": { "nuxt": "workspace:*" From 2abcc16cfb77f925a8ed44a9744f16382881d309 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 20 Jun 2023 00:00:03 +0100 Subject: [PATCH 400/912] perf(nuxt): extract and apply plugin order at build time (#21611) --- packages/nuxt/package.json | 1 + packages/nuxt/src/app/entry.ts | 6 +- packages/nuxt/src/app/nuxt.ts | 120 ++--------- packages/nuxt/src/core/app.ts | 19 ++ packages/nuxt/src/core/nuxt.ts | 6 +- .../nuxt/src/core/plugins/plugin-metadata.ts | 189 ++++++++++++++++++ packages/nuxt/src/core/templates.ts | 10 +- packages/nuxt/test/plugin-metadata.test.ts | 64 ++++++ packages/schema/src/types/nuxt.ts | 7 + pnpm-lock.yaml | 24 +++ test/bundle.test.ts | 4 +- .../basic/plugins/invalid-plugin-1.ts | 1 + .../basic/plugins/invalid-plugin-2.ts | 3 + 13 files changed, 345 insertions(+), 109 deletions(-) create mode 100644 packages/nuxt/src/core/plugins/plugin-metadata.ts create mode 100644 packages/nuxt/test/plugin-metadata.test.ts create mode 100644 test/fixtures/basic/plugins/invalid-plugin-1.ts create mode 100644 test/fixtures/basic/plugins/invalid-plugin-2.ts diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 3f19271566..190b1e044a 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -89,6 +89,7 @@ "prompts": "^2.4.2", "scule": "^1.0.0", "strip-literal": "^1.0.1", + "typescript-estree": "^18.1.0", "ufo": "^1.1.2", "ultrahtml": "^1.2.0", "uncrypto": "^0.1.3", diff --git a/packages/nuxt/src/app/entry.ts b/packages/nuxt/src/app/entry.ts index 4aca681905..be990030b9 100644 --- a/packages/nuxt/src/app/entry.ts +++ b/packages/nuxt/src/app/entry.ts @@ -8,11 +8,11 @@ import type { $Fetch, NitroFetchRequest } from 'nitropack' import { baseURL } from '#build/paths.mjs' import type { CreateOptions } from '#app' -import { applyPlugins, createNuxtApp, normalizePlugins } from '#app/nuxt' +import { applyPlugins, createNuxtApp } from '#app/nuxt' import '#build/css' // @ts-expect-error virtual file -import _plugins from '#build/plugins' +import plugins from '#build/plugins' // @ts-expect-error virtual file import RootComponent from '#build/root-component.mjs' // @ts-expect-error virtual file @@ -26,8 +26,6 @@ if (!globalThis.$fetch) { let entry: Function -const plugins = normalizePlugins(_plugins) - if (process.server) { entry = async function createNuxtAppServer (ssrContext: CreateOptions['ssrContext']) { const vueApp = createApp(RootComponent) diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index 9a2cbf3587..bb7d2a25d9 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -160,7 +160,6 @@ export interface PluginMeta { export interface ResolvedPluginMeta { name?: string - order: number parallel?: boolean } @@ -170,7 +169,7 @@ export interface Plugin = Record = Record> extends PluginMeta { +export interface ObjectPlugin = Record> extends PluginMeta { hooks?: Partial setup?: Plugin /** @@ -181,6 +180,9 @@ export interface ObjectPluginInput = parallel?: boolean } +/** @deprecated Use `ObjectPlugin` */ +export type ObjectPluginInput = Record> = ObjectPlugin + export interface CreateOptions { vueApp: NuxtApp['vueApp'] ssrContext?: NuxtApp['ssrContext'] @@ -301,22 +303,26 @@ export function createNuxtApp (options: CreateOptions) { return nuxtApp } -export async function applyPlugin (nuxtApp: NuxtApp, plugin: Plugin) { - if (typeof plugin !== 'function') { return } - const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {} - if (provide && typeof provide === 'object') { - for (const key in provide) { - nuxtApp.provide(key, provide[key]) +export async function applyPlugin (nuxtApp: NuxtApp, plugin: Plugin & ObjectPlugin) { + if (plugin.hooks) { + nuxtApp.hooks.addHooks(plugin.hooks) + } + if (typeof plugin === 'function') { + const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {} + if (provide && typeof provide === 'object') { + for (const key in provide) { + nuxtApp.provide(key, provide[key]) + } } } } -export async function applyPlugins (nuxtApp: NuxtApp, plugins: Plugin[]) { +export async function applyPlugins (nuxtApp: NuxtApp, plugins: Array>) { const parallels: Promise[] = [] const errors: Error[] = [] for (const plugin of plugins) { const promise = applyPlugin(nuxtApp, plugin) - if (plugin.meta?.parallel) { + if (plugin.parallel) { parallels.push(promise.catch(e => errors.push(e))) } else { await promise @@ -326,97 +332,15 @@ export async function applyPlugins (nuxtApp: NuxtApp, plugins: Plugin[]) { if (errors.length) { throw errors[0] } } -export function normalizePlugins (_plugins: Plugin[]) { - const unwrappedPlugins: Plugin[] = [] - const legacyInjectPlugins: Plugin[] = [] - const invalidPlugins: Plugin[] = [] - - const plugins: Plugin[] = [] - - for (const plugin of _plugins) { - if (typeof plugin !== 'function') { - if (process.dev) { invalidPlugins.push(plugin) } - continue - } - - // TODO: Skip invalid plugins in next releases - let _plugin = plugin - if (plugin.length > 1) { - // Allow usage without wrapper but warn - if (process.dev) { legacyInjectPlugins.push(plugin) } - // @ts-expect-error deliberate invalid second argument - _plugin = (nuxtApp: NuxtApp) => plugin(nuxtApp, nuxtApp.provide) - } - - // Allow usage without wrapper but warn - if (process.dev && !isNuxtPlugin(_plugin)) { unwrappedPlugins.push(_plugin) } - - plugins.push(_plugin) - } - - plugins.sort((a, b) => (a.meta?.order || orderMap.default) - (b.meta?.order || orderMap.default)) - - if (process.dev && legacyInjectPlugins.length) { - console.warn('[warn] [nuxt] You are using a plugin with legacy Nuxt 2 format (context, inject) which is likely to be broken. In the future they will be ignored:', legacyInjectPlugins.map(p => p.name || p).join(',')) - } - if (process.dev && invalidPlugins.length) { - console.warn('[warn] [nuxt] Some plugins are not exposing a function and skipped:', invalidPlugins) - } - if (process.dev && unwrappedPlugins.length) { - console.warn('[warn] [nuxt] You are using a plugin that has not been wrapped in `defineNuxtPlugin`. It is advised to wrap your plugins as in the future this may enable enhancements:', unwrappedPlugins.map(p => p.name || p).join(',')) - } - - return plugins -} - -// -50: pre-all (nuxt) -// -40: custom payload revivers (user) -// -30: payload reviving (nuxt) -// -20: pre (user) <-- pre mapped to this -// -10: default (nuxt) -// 0: default (user) <-- default behavior -// +10: post (nuxt) -// +20: post (user) <-- post mapped to this -// +30: post-all (nuxt) - -const orderMap: Record, number> = { - pre: -20, - default: 0, - post: 20 +/*! @__NO_SIDE_EFFECTS__ */ +export function defineNuxtPlugin> (plugin: Plugin | ObjectPlugin): Plugin & ObjectPlugin { + if (typeof plugin === 'function') { return plugin } + delete plugin.name + return Object.assign(plugin.setup || (() => {}), plugin, { [NuxtPluginIndicator]: true } as const) } /*! @__NO_SIDE_EFFECTS__ */ -export function definePayloadPlugin> (plugin: Plugin | ObjectPluginInput) { - return defineNuxtPlugin(plugin, { order: -40 }) -} - -/*! @__NO_SIDE_EFFECTS__ */ -export function defineNuxtPlugin> (plugin: Plugin | ObjectPluginInput, meta?: PluginMeta): Plugin { - if (typeof plugin === 'function') { return defineNuxtPlugin({ setup: plugin }, meta) } - - const wrapper: Plugin = (nuxtApp) => { - if (plugin.hooks) { - nuxtApp.hooks.addHooks(plugin.hooks) - } - if (plugin.setup) { - return plugin.setup(nuxtApp) - } - } - - wrapper.meta = { - name: meta?.name || plugin.name || plugin.setup?.name, - parallel: plugin.parallel, - order: - meta?.order || - plugin.order || - orderMap[plugin.enforce || 'default'] || - orderMap.default - } - - wrapper[NuxtPluginIndicator] = true - - return wrapper -} +export const definePayloadPlugin = defineNuxtPlugin export function isNuxtPlugin (plugin: unknown) { return typeof plugin === 'function' && NuxtPluginIndicator in plugin diff --git a/packages/nuxt/src/core/app.ts b/packages/nuxt/src/core/app.ts index 9300e2275d..1c65044ff3 100644 --- a/packages/nuxt/src/core/app.ts +++ b/packages/nuxt/src/core/app.ts @@ -6,6 +6,7 @@ import type { Nuxt, NuxtApp, NuxtPlugin, NuxtTemplate, ResolvedNuxtTemplate } fr import * as defaultTemplates from './templates' import { getNameFromPath, hasSuffix, uniqueBy } from './utils' +import { extractMetadata, orderMap } from './plugins/plugin-metadata' export function createApp (nuxt: Nuxt, options: Partial = {}): NuxtApp { return defu(options, { @@ -149,3 +150,21 @@ function resolvePaths> (items: Item[], key: { [ } })) } + +export async function annotatePlugins (nuxt: Nuxt, plugins: NuxtPlugin[]) { + const _plugins: NuxtPlugin[] = [] + for (const plugin of plugins) { + try { + const code = plugin.src in nuxt.vfs ? nuxt.vfs[plugin.src] : await fsp.readFile(plugin.src!, 'utf-8') + _plugins.push({ + ...extractMetadata(code), + ...plugin + }) + } catch (e) { + console.warn(`[nuxt] Could not resolve \`${plugin.src}\`.`) + _plugins.push(plugin) + } + } + + return _plugins.sort((a, b) => (a.order ?? orderMap.default) - (b.order ?? orderMap.default)) +} diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index defc1037e3..12bc21c8a6 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -1,7 +1,7 @@ import { join, normalize, relative, resolve } from 'pathe' import { createDebugger, createHooks } from 'hookable' import type { LoadNuxtOptions } from '@nuxt/kit' -import { addComponent, addPlugin, addVitePlugin, addWebpackPlugin, installModule, loadNuxtConfig, logger, nuxtCtx, resolveAlias, resolveFiles, resolvePath, tryResolveModule } from '@nuxt/kit' +import { addBuildPlugin, addComponent, addPlugin, addVitePlugin, addWebpackPlugin, installModule, loadNuxtConfig, logger, nuxtCtx, resolveAlias, resolveFiles, resolvePath, tryResolveModule } from '@nuxt/kit' import type { Nuxt, NuxtHooks, NuxtOptions } from 'nuxt/schema' import escapeRE from 'escape-string-regexp' @@ -24,6 +24,7 @@ import { LayerAliasingPlugin } from './plugins/layer-aliasing' import { addModuleTranspiles } from './modules' import { initNitro } from './nitro' import schemaModule from './schema' +import { RemovePluginMetadataPlugin } from './plugins/plugin-metadata' export function createNuxt (options: NuxtOptions): Nuxt { const hooks = createHooks() @@ -72,6 +73,9 @@ async function initNuxt (nuxt: Nuxt) { } }) + // Add plugin normalisation plugin + addBuildPlugin(RemovePluginMetadataPlugin(nuxt)) + // Add import protection const config = { rootDir: nuxt.options.rootDir, diff --git a/packages/nuxt/src/core/plugins/plugin-metadata.ts b/packages/nuxt/src/core/plugins/plugin-metadata.ts new file mode 100644 index 0000000000..56db40e07f --- /dev/null +++ b/packages/nuxt/src/core/plugins/plugin-metadata.ts @@ -0,0 +1,189 @@ +import type { CallExpression, Property, SpreadElement } from 'estree' +import type { Node } from 'estree-walker' +import { walk } from 'estree-walker' +import { parse } from 'typescript-estree' +import { defu } from 'defu' +import { findExports } from 'mlly' +import type { Nuxt } from '@nuxt/schema' +import { createUnplugin } from 'unplugin' +import MagicString from 'magic-string' +import { normalize } from 'pathe' + +// eslint-disable-next-line import/no-restricted-paths +import type { ObjectPlugin, PluginMeta } from '#app' + +const internalOrderMap = { + // -50: pre-all (nuxt) + 'nuxt-pre-all': -50, + // -40: custom payload revivers (user) + 'user-revivers': -40, + // -30: payload reviving (nuxt) + 'nuxt-revivers': -30, + // -20: pre (user) <-- pre mapped to this + 'user-pre': -20, + // -10: default (nuxt) + 'nuxt-default': -10, + // 0: default (user) <-- default behavior + 'user-default': 0, + // +10: post (nuxt) + 'nuxt-post': 10, + // +20: post (user) <-- post mapped to this + 'user-post': 20, + // +30: post-all (nuxt) + 'nuxt-post-all': 30 +} + +export const orderMap: Record, number> = { + pre: internalOrderMap['user-pre'], + default: internalOrderMap['user-default'], + post: internalOrderMap['user-post'] +} + +const metaCache: Record> = {} +export function extractMetadata (code: string) { + let meta: PluginMeta = {} + if (metaCache[code]) { + return metaCache[code] + } + walk(parse(code) as Node, { + enter (_node) { + if (_node.type !== 'CallExpression' || (_node as CallExpression).callee.type !== 'Identifier') { return } + const node = _node as CallExpression & { start: number, end: number } + const name = 'name' in node.callee && node.callee.name + if (name !== 'defineNuxtPlugin' && name !== 'definePayloadPlugin') { return } + + if (name === 'definePayloadPlugin') { + meta.order = internalOrderMap['user-revivers'] + } + + const metaArg = node.arguments[1] + if (metaArg) { + if (metaArg.type !== 'ObjectExpression') { + throw new Error('Invalid plugin metadata') + } + meta = extractMetaFromObject(metaArg.properties) + } + + const plugin = node.arguments[0] + if (plugin.type === 'ObjectExpression') { + meta = defu(extractMetaFromObject(plugin.properties), meta) + } + + meta.order = meta.order || orderMap[meta.enforce || 'default'] || orderMap.default + delete meta.enforce + } + }) + metaCache[code] = meta + return meta as Omit +} + +type PluginMetaKey = keyof PluginMeta +const keys: Record = { + name: 'name', + order: 'order', + enforce: 'enforce' +} +function isMetadataKey (key: string): key is PluginMetaKey { + return key in keys +} + +function extractMetaFromObject (properties: Array) { + const meta: PluginMeta = {} + for (const property of properties) { + if (property.type === 'SpreadElement' || !('name' in property.key)) { + throw new Error('Invalid plugin metadata') + } + const propertyKey = property.key.name + if (!isMetadataKey(propertyKey)) { continue } + if (property.value.type === 'Literal') { + meta[propertyKey] = property.value.value as any + } + if (property.value.type === 'UnaryExpression' && property.value.argument.type === 'Literal') { + meta[propertyKey] = JSON.parse(property.value.operator + property.value.argument.raw!) + } + } + return meta +} + +export const RemovePluginMetadataPlugin = (nuxt: Nuxt) => createUnplugin(() => { + return { + name: 'nuxt:remove-plugin-metadata', + enforce: 'pre', + transform (code, id) { + id = normalize(id) + const plugin = nuxt.apps.default.plugins.find(p => p.src === id) + if (!plugin) { return } + + const s = new MagicString(code) + const exports = findExports(code) + const defaultExport = exports.find(e => e.type === 'default' || e.name === 'default') + if (!defaultExport) { + console.error(`[warn] [nuxt] Plugin \`${plugin.src}\` has no default export and will be ignored at build time. Add \`export default defineNuxtPlugin(() => {})\` to your plugin.`) + s.overwrite(0, code.length, 'export default () => {}') + return { + code: s.toString(), + map: nuxt.options.sourcemap.client || nuxt.options.sourcemap.server ? s.generateMap({ hires: true }) : null + } + } + + let wrapped = false + + try { + walk(parse(code) as Node, { + enter (_node) { + if (_node.type === 'ExportDefaultDeclaration' && (_node.declaration.type === 'FunctionDeclaration' || _node.declaration.type === 'ArrowFunctionExpression')) { + if ('params' in _node.declaration && _node.declaration.params.length > 1) { + console.warn(`[warn] [nuxt] Plugin \`${plugin.src}\` is in legacy Nuxt 2 format (context, inject) which is likely to be broken and will be ignored.`) + s.overwrite(0, code.length, 'export default () => {}') + wrapped = true // silence a duplicate error + return + } + } + if (_node.type !== 'CallExpression' || (_node as CallExpression).callee.type !== 'Identifier') { return } + const node = _node as CallExpression & { start: number, end: number } + const name = 'name' in node.callee && node.callee.name + if (name !== 'defineNuxtPlugin' && name !== 'definePayloadPlugin') { return } + wrapped = true + + if (node.arguments[0].type !== 'ObjectExpression') { + // TODO: Warn if legacy plugin format is detected + if ('params' in node.arguments[0] && node.arguments[0].params.length > 1) { + console.warn(`[warn] [nuxt] Plugin \`${plugin.src}\` is in legacy Nuxt 2 format (context, inject) which is likely to be broken and will be ignored.`) + s.overwrite(0, code.length, 'export default () => {}') + return + } + } + + // Remove metadata that already has been extracted + if (!('order' in plugin) && !('name' in plugin)) { return } + for (const [argIndex, arg] of node.arguments.entries()) { + if (arg.type !== 'ObjectExpression') { continue } + for (const [propertyIndex, property] of arg.properties.entries()) { + if (property.type === 'SpreadElement' || !('name' in property.key)) { continue } + const propertyKey = property.key.name + if (propertyKey === 'order' || propertyKey === 'enforce' || propertyKey === 'name') { + const nextIndex = arg.properties[propertyIndex + 1]?.range?.[0] || node.arguments[argIndex + 1]?.range?.[0] || (arg.range![1] - 1) + s.remove(property.range![0], nextIndex) + } + } + } + } + }) + } catch (e) { + console.error(e) + return + } + + if (!wrapped) { + console.warn(`[warn] [nuxt] Plugin \`${plugin.src}\` is not wrapped in \`defineNuxtPlugin\`. It is advised to wrap your plugins as in the future this may enable enhancements.`) + } + + if (s.hasChanged()) { + return { + code: s.toString(), + map: nuxt.options.sourcemap.client || nuxt.options.sourcemap.server ? s.generateMap({ hires: true }) : null + } + } + } + } +}) diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index 66560a68b2..74da3eb6e5 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -8,6 +8,7 @@ import { camelCase } from 'scule' import { resolvePath } from 'mlly' import { filename } from 'pathe/utils' import type { Nuxt, NuxtApp, NuxtTemplate } from 'nuxt/schema' +import { annotatePlugins } from './app' export interface TemplateContext { nuxt: Nuxt @@ -54,8 +55,9 @@ export const cssTemplate: NuxtTemplate = { export const clientPluginTemplate: NuxtTemplate = { filename: 'plugins/client.mjs', - getContents (ctx) { - const clientPlugins = ctx.app.plugins.filter(p => !p.mode || p.mode !== 'server') + async getContents (ctx) { + const clientPlugins = await annotatePlugins(ctx.nuxt, ctx.app.plugins.filter(p => !p.mode || p.mode !== 'server')) + await annotatePlugins(ctx.nuxt, clientPlugins) const exports: string[] = [] const imports: string[] = [] for (const plugin of clientPlugins) { @@ -73,8 +75,8 @@ export const clientPluginTemplate: NuxtTemplate = { export const serverPluginTemplate: NuxtTemplate = { filename: 'plugins/server.mjs', - getContents (ctx) { - const serverPlugins = ctx.app.plugins.filter(p => !p.mode || p.mode !== 'client') + async getContents (ctx) { + const serverPlugins = await annotatePlugins(ctx.nuxt, ctx.app.plugins.filter(p => !p.mode || p.mode !== 'client')) const exports: string[] = [] const imports: string[] = [] for (const plugin of serverPlugins) { diff --git a/packages/nuxt/test/plugin-metadata.test.ts b/packages/nuxt/test/plugin-metadata.test.ts new file mode 100644 index 0000000000..271b86c871 --- /dev/null +++ b/packages/nuxt/test/plugin-metadata.test.ts @@ -0,0 +1,64 @@ +import { describe, expect, it } from 'vitest' + +import { RemovePluginMetadataPlugin, extractMetadata } from '../src/core/plugins/plugin-metadata' + +describe('plugin-metadata', () => { + it('should extract metadata from object-syntax plugins', () => { + const properties = Object.entries({ + name: 'test', + enforce: 'post', + hooks: { 'app:mounted': () => {} }, + setup: () => {}, + order: 1 + }) + + for (const item of properties) { + const obj = [...properties.filter(([key]) => key !== item[0]), item] + + const meta = extractMetadata([ + 'export default defineNuxtPlugin({', + ...obj.map(([key, value]) => `${key}: ${typeof value === 'function' ? value.toString() : JSON.stringify(value)},`), + '})' + ].join('\n')) + + expect(meta).toMatchInlineSnapshot(` + { + "name": "test", + "order": 1, + } + `) + } + }) + + const transformPlugin: any = RemovePluginMetadataPlugin({ + options: { sourcemap: { client: true } }, + apps: { default: { plugins: [{ src: 'my-plugin.mjs', order: 10 }] } } + } as any).raw({}, {} as any) + + it('should overwrite invalid plugins', () => { + const invalidPlugins = [ + 'export const plugin = {}', + 'export default function (ctx, inject) {}' + ] + for (const plugin of invalidPlugins) { + expect(transformPlugin.transform(plugin, 'my-plugin.mjs').code).toBe('export default () => {}') + } + }) + + it('should remove order/name properties from object-syntax plugins', () => { + const plugin = ` + export default defineNuxtPlugin({ + name: 'test', + enforce: 'post', + setup: () => {}, + }, { order: 10, name: test }) + ` + expect(transformPlugin.transform(plugin, 'my-plugin.mjs').code).toMatchInlineSnapshot(` + " + export default defineNuxtPlugin({ + setup: () => {}, + }, { }) + " + `) + }) +}) diff --git a/packages/schema/src/types/nuxt.ts b/packages/schema/src/types/nuxt.ts index 49efdadd60..1deca39c6c 100644 --- a/packages/schema/src/types/nuxt.ts +++ b/packages/schema/src/types/nuxt.ts @@ -52,6 +52,13 @@ export interface NuxtPlugin { ssr?: boolean src: string mode?: 'all' | 'server' | 'client' + /** + * This allows more granular control over plugin order and should only be used by advanced users. + * Lower numbers run first, and user plugins default to `0`. + * + * Default Nuxt priorities can be seen at [here](https://github.com/nuxt/nuxt/blob/9904849bc87c53dfbd3ea3528140a5684c63c8d8/packages/nuxt/src/core/plugins/plugin-metadata.ts#L15-L34). + */ + order?: number } export interface NuxtApp { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c609c40ccd..00e74ba4b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -433,6 +433,9 @@ importers: strip-literal: specifier: ^1.0.1 version: 1.0.1 + typescript-estree: + specifier: ^18.1.0 + version: 18.1.0(typescript@5.0.4) ufo: specifier: ^1.1.2 version: 1.1.2 @@ -6156,6 +6159,10 @@ packages: resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} dev: false + /lodash.unescape@4.0.1: + resolution: {integrity: sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg==} + dev: false + /lodash.union@4.6.0: resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} @@ -7808,6 +7815,11 @@ packages: /scule@1.0.0: resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} + /semver@5.5.0: + resolution: {integrity: sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==} + hasBin: true + dev: false + /semver@5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -8389,6 +8401,18 @@ packages: is-typed-array: 1.1.10 dev: true + /typescript-estree@18.1.0(typescript@5.0.4): + resolution: {integrity: sha512-LvvwoTuPgMO5UyckFXZeNI+m1UH1bkgAXEaHDEtkmxugtlMKM3mzyvSQUdnQ/FhifwaLuoAsNPqTGLrJI/UUaQ==} + engines: {node: '>=6.14.0'} + deprecated: This package was moved to @typescript-eslint/typescript-estree, please install the latest version from there instead + peerDependencies: + typescript: '*' + dependencies: + lodash.unescape: 4.0.1 + semver: 5.5.0 + typescript: 5.0.4 + dev: false + /typescript@5.0.4: resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} engines: {node: '>=12.20'} diff --git a/test/bundle.test.ts b/test/bundle.test.ts index d3dfa9c176..3c9e261b04 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -25,7 +25,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM it('default client bundle size', async () => { stats.client = await analyzeSizes('**/*.js', publicDir) - expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"97.3k"') + expect(roundToKilobytes(stats.client.totalBytes)).toMatchInlineSnapshot('"96.7k"') expect(stats.client.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -35,7 +35,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM it('default server bundle size', async () => { stats.server = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"62.0k"') + expect(roundToKilobytes(stats.server.totalBytes)).toMatchInlineSnapshot('"61.0k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2295k"') diff --git a/test/fixtures/basic/plugins/invalid-plugin-1.ts b/test/fixtures/basic/plugins/invalid-plugin-1.ts new file mode 100644 index 0000000000..4a2f076d0d --- /dev/null +++ b/test/fixtures/basic/plugins/invalid-plugin-1.ts @@ -0,0 +1 @@ +import 'nonexistent-package' diff --git a/test/fixtures/basic/plugins/invalid-plugin-2.ts b/test/fixtures/basic/plugins/invalid-plugin-2.ts new file mode 100644 index 0000000000..b5e18bd7ea --- /dev/null +++ b/test/fixtures/basic/plugins/invalid-plugin-2.ts @@ -0,0 +1,3 @@ +export default function previousPlugin (one, inject) { + inject() +} From 95fab0a2dd59b7cce9f73c8d66b7f518b786aea6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 09:25:34 +0100 Subject: [PATCH 401/912] chore(deps): update all non-major dependencies (main) (#21644) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/vite/package.json | 4 +- pnpm-lock.yaml | 148 ++++++++++++++++++------------------- 2 files changed, 76 insertions(+), 76 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 13ac8bb6ea..220b51e579 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -34,7 +34,7 @@ "consola": "^3.1.0", "cssnano": "^6.0.1", "defu": "^6.1.2", - "esbuild": "^0.18.4", + "esbuild": "^0.18.5", "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", "externality": "^1.0.2", @@ -58,7 +58,7 @@ "unplugin": "^1.3.1", "vite": "~4.3.9", "vite-node": "^0.32.2", - "vite-plugin-checker": "^0.6.0", + "vite-plugin-checker": "^0.6.1", "vue-bundle-renderer": "^1.0.3" }, "peerDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 00e74ba4b2..b722cffc32 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -668,8 +668,8 @@ importers: specifier: ^6.1.2 version: 6.1.2 esbuild: - specifier: ^0.18.4 - version: 0.18.4 + specifier: ^0.18.5 + version: 0.18.5 escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -740,8 +740,8 @@ importers: specifier: ^0.32.2 version: 0.32.2(@types/node@18.16.18) vite-plugin-checker: - specifier: ^0.6.0 - version: 0.6.0(eslint@8.43.0)(typescript@5.0.4)(vite@4.3.9)(vue-tsc@1.8.0) + specifier: ^0.6.1 + version: 0.6.1(eslint@8.43.0)(typescript@5.0.4)(vite@4.3.9)(vue-tsc@1.8.0) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 @@ -1407,8 +1407,8 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm64@0.18.4: - resolution: {integrity: sha512-yQVgO+V307hA2XhzELQ6F91CBGX7gSnlVGAj5YIqjQOxThDpM7fOcHT2YLJbE6gNdPtgRSafQrsK8rJ9xHCaZg==} + /@esbuild/android-arm64@0.18.5: + resolution: {integrity: sha512-410IPUj7ZOxZ2dwK0B7o7Nibu7YEyaLBvYOfYBpuA1TpY0fOkDM5r4bwn+hT8Uma06DBI4RnYNN09fn55PYInQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -1424,8 +1424,8 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm@0.18.4: - resolution: {integrity: sha512-yKmQC9IiuvHdsNEbPHSprnMHg6OhL1cSeQZLzPpgzJBJ9ppEg9GAZN8MKj1TcmB4tZZUrq5xjK7KCmhwZP8iDA==} + /@esbuild/android-arm@0.18.5: + resolution: {integrity: sha512-+8GXQzuASxGg/rb47Z5zJe3vjOfL7RRce/DILuk6kbB/8HO0p3CPo72CbR349P2K8YP1h5NvNqU+2GDRbNJylw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -1441,8 +1441,8 @@ packages: requiresBuild: true optional: true - /@esbuild/android-x64@0.18.4: - resolution: {integrity: sha512-yLKXMxQg6sk1ntftxQ5uwyVgG4/S2E7UoOCc5N4YZW7fdkfRiYEXqm7CMuIfY2Vs3FTrNyKmSfNevIuIvJnMww==} + /@esbuild/android-x64@0.18.5: + resolution: {integrity: sha512-+fdfceCYwcz9OReheSWYOGaAAt03n0BnG5/UW9tyGyo15PjSOF14ylxfjvz+0atDx0S/RxyezMsH/mbnWhnC8w==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -1458,8 +1458,8 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.18.4: - resolution: {integrity: sha512-MVPEoZjZpk2xQ1zckZrb8eQuQib+QCzdmMs3YZAYEQPg+Rztk5pUxGyk8htZOC8Z38NMM29W+MqY9Sqo/sDGKw==} + /@esbuild/darwin-arm64@0.18.5: + resolution: {integrity: sha512-L7noeTaus5xEtgd5J7u/lGrZfSiYkvZb0gOD7rvKTuuWbdGM4bunz5DUFsWBbEIlloslpOO5PDy4Hnd6mZT20A==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -1475,8 +1475,8 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-x64@0.18.4: - resolution: {integrity: sha512-uEsRtYRUDsz7i2tXg/t/SyF+5gU1cvi9B6B8i5ebJgtUUHJYWyIPIesmIOL4/+bywjxsDMA/XrNFMgMffLnh5A==} + /@esbuild/darwin-x64@0.18.5: + resolution: {integrity: sha512-eA39B8SxbxRdSSILD4AsePzvJiVao6ZaYrcTOJqg89jnnMEGR/EAh+ehV7E4GOx4WXQoWeJRP1P9JQSzIrROeg==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -1492,8 +1492,8 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.18.4: - resolution: {integrity: sha512-I8EOigqWnOHRin6Zp5Y1cfH3oT54bd7Sdz/VnpUNksbOtfp8IWRTH4pgkgO5jWaRQPjCpJcOpdRjYAMjPt8wXg==} + /@esbuild/freebsd-arm64@0.18.5: + resolution: {integrity: sha512-Eg1UnkTZHfsphgcy1Wj/McNModSO/F+kqtWqvtvEZc9BAgvdwxAt11BESgBczU+Gti0G2dLvHs0Sfb3gavwhGg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -1509,8 +1509,8 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.18.4: - resolution: {integrity: sha512-1bHfgMz/cNMjbpsYxjVgMJ1iwKq+NdDPlACBrWULD7ZdFmBQrhMicMaKb5CdmdVyvIwXmasOuF4r6Iq574kUTA==} + /@esbuild/freebsd-x64@0.18.5: + resolution: {integrity: sha512-GNTMSJ55gl7Tf5VUqVRkMJhRGzH6vI9vFBfZCj4Zjm7RgfXCWxLnTyjMgZZKT8pOzW40KD2KlrGbqwnnJWyGWw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -1526,8 +1526,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm64@0.18.4: - resolution: {integrity: sha512-J42vLHaYREyiBwH0eQE4/7H1DTfZx8FuxyWSictx4d7ezzuKE3XOkIvOg+SQzRz7T9HLVKzq2tvbAov4UfufBw==} + /@esbuild/linux-arm64@0.18.5: + resolution: {integrity: sha512-r08LmhqyPRj6FtuNPBTu8BliKh6h+oNEhMkWmmR/aWs4DWjDOivyDfLGznPdgtSThL23fk1QgSBUEbuCIzjA2A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -1543,8 +1543,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm@0.18.4: - resolution: {integrity: sha512-4XCGqM/Ay1LCXUBH59bL4JbSbbTK1K22dWHymWMGaEh2sQCDOUw+OQxozYV/YdBb91leK2NbuSrE2BRamwgaYw==} + /@esbuild/linux-arm@0.18.5: + resolution: {integrity: sha512-6R+vEIyfEvp+gOWKSc+m6hdnhWKQYzicqONQYiDGT6qepc6OGsLEZcyFwoz6BvFx5j233CBWMcJ69eXFrwXw9A==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -1560,8 +1560,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ia32@0.18.4: - resolution: {integrity: sha512-4ksIqFwhq7OExty7Sl1n0vqQSCqTG4sU6i99G2yuMr28CEOUZ/60N+IO9hwI8sIxBqmKmDgncE1n5CMu/3m0IA==} + /@esbuild/linux-ia32@0.18.5: + resolution: {integrity: sha512-ph6M9iEMc6BHgv2XuIE8qeQrQCH+2l116c8L9ysmmXYwpNXa3E7JNIu/O7hI0I9qDvh1P19AGbIh+/y0GAZijA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1577,8 +1577,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-loong64@0.18.4: - resolution: {integrity: sha512-bsWtoVHkGQgAsFXioDueXRiUIfSGrVkJjBBz4gcBJxXcD461cWFQFyu8Fxdj9TP+zEeqJ8C/O4LFFMBNi6Fscw==} + /@esbuild/linux-loong64@0.18.5: + resolution: {integrity: sha512-s6Nup5FMQ8R8OKJG2rSxtV40s8LRdfC73XGHGaFlGiC+2SeCyq4dl3MMfLdzLowYzyDjfc4GRrXWUNMX3kNxYA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -1594,8 +1594,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.18.4: - resolution: {integrity: sha512-LRD9Fu8wJQgIOOV1o3nRyzrheFYjxA0C1IVWZ93eNRRWBKgarYFejd5WBtrp43cE4y4D4t3qWWyklm73Mrsd/g==} + /@esbuild/linux-mips64el@0.18.5: + resolution: {integrity: sha512-DxW4nNDIGbivZxnJD01C5PlwKPpin8YgSwWtToCy4w4lNigT7Iaf5A+wcPT2laibdgbcgPKpPOXUg6RFGTt8xA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -1611,8 +1611,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.18.4: - resolution: {integrity: sha512-jtQgoZjM92gauVRxNaaG/TpL3Pr4WcL3Pwqi9QgdrBGrEXzB+twohQiWNSTycs6lUygakos4mm2h0B9/SHveng==} + /@esbuild/linux-ppc64@0.18.5: + resolution: {integrity: sha512-BksOs2uYTafS+u75QiN4RoLbEMNjE192adJCBalncI3E2PWyR2i1kEs9rEghHK7pw0SD0uWgV9otRmV7G5b2lQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -1628,8 +1628,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.18.4: - resolution: {integrity: sha512-7WaU/kRZG0VCV09Xdlkg6LNAsfU9SAxo6XEdaZ8ffO4lh+DZoAhGTx7+vTMOXKxa+r2w1LYDGxfJa2rcgagMRA==} + /@esbuild/linux-riscv64@0.18.5: + resolution: {integrity: sha512-mGv8BOJXsV7bZyjyMdeDs55CDXZ5vrY3oKa58DNRz2vPn54dREyj4BhhyWuqSuzSURJhFg7pM/1fI2vnAHGkHw==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -1645,8 +1645,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-s390x@0.18.4: - resolution: {integrity: sha512-D19ed0xreKQvC5t+ArE2njSnm18WPpE+1fhwaiJHf+Xwqsq+/SUaV8Mx0M27nszdU+Atq1HahrgCOZCNNEASUg==} + /@esbuild/linux-s390x@0.18.5: + resolution: {integrity: sha512-m4uIYyrl5znGnNHgiM/Zsw6I9Se513NqdTxeUxZ66/VDWbuUp8ACe1KOSpwF4NNxfYy6Q3W8beZsIdF4F85q8Q==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -1662,8 +1662,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-x64@0.18.4: - resolution: {integrity: sha512-Rx3AY1sxyiO/gvCGP00nL69L60dfmWyjKWY06ugpB8Ydpdsfi3BHW58HWC24K3CAjAPSwxcajozC2PzA9JBS1g==} + /@esbuild/linux-x64@0.18.5: + resolution: {integrity: sha512-R1C7X30YjXmOZYOzx4dJ/QvRNfrkK/sDCFfcGNhlHFX6B/iodJdk81h7EhnKVUQy+3BaARxF7udd91iSSzMlbQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1679,8 +1679,8 @@ packages: requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.18.4: - resolution: {integrity: sha512-AaShPmN9c6w1mKRpliKFlaWcSkpBT4KOlk93UfFgeI3F3cbjzdDKGsbKnOZozmYbE1izZKLmNJiW0sFM+A5JPA==} + /@esbuild/netbsd-x64@0.18.5: + resolution: {integrity: sha512-MABnKzjMcXjO0NEYyexOhqjcrgM6dE8BXnm+lctm2x2aPpYg5iL0Ew3aABSTZyp9dS3Z4VzFu5PPoOYEw8akTQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1696,8 +1696,8 @@ packages: requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.18.4: - resolution: {integrity: sha512-tRGvGwou3BrvHVvF8HxTqEiC5VtPzySudS9fh2jBIKpLX7HCW8jIkW+LunkFDNwhslx4xMAgh0jAHsx/iCymaQ==} + /@esbuild/openbsd-x64@0.18.5: + resolution: {integrity: sha512-aU7R0tLIUMaQuAgBjKrq02Z98rcY9Pxk76hynSqcGeld2C/ro1uBbS2i9rh7vdwBAY0rG08Og4wnDnlx5rU+fQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1713,8 +1713,8 @@ packages: requiresBuild: true optional: true - /@esbuild/sunos-x64@0.18.4: - resolution: {integrity: sha512-acORFDI95GKhmAnlH8EarBeuqoy/j3yxIU+FDB91H3+ZON+8HhTadtT450YkaMzX6lEWbhi+mjVUCj00M5yyOQ==} + /@esbuild/sunos-x64@0.18.5: + resolution: {integrity: sha512-ngm3fVv2VxufI8zH/Phk0mYkgvFjFGnS+l7uxxd20mmeLTNI/8OXDJpNqTUbvzJh3tqhI/Gof0N2+5xJbqEaxA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1730,8 +1730,8 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-arm64@0.18.4: - resolution: {integrity: sha512-1NxP+iOk8KSvS1L9SSxEvBAJk39U0GiGZkiiJGbuDF9G4fG7DSDw6XLxZMecAgmvQrwwx7yVKdNN3GgNh0UfKg==} + /@esbuild/win32-arm64@0.18.5: + resolution: {integrity: sha512-XqpS89+MGLzR8YtQQkBYsLCfAv1ySflMb+FEH99rOp6kOPv/ORO+ujEB5ICDBZZbvYqB75uFrNELo1BVEQbS3g==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -1747,8 +1747,8 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-ia32@0.18.4: - resolution: {integrity: sha512-OKr8jze93vbgqZ/r23woWciTixUwLa976C9W7yNBujtnVHyvsL/ocYG61tsktUfJOpyIz5TsohkBZ6Lo2+PCcQ==} + /@esbuild/win32-ia32@0.18.5: + resolution: {integrity: sha512-V3xj/nb9uie0I4mn1f8nPZSgHldtNJrqTKYjTyMPMBnHbMYF5Loz8ZHsp7+La8kI6NxIF1ClQ9XBV+G3RtSkww==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1764,8 +1764,8 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-x64@0.18.4: - resolution: {integrity: sha512-qJr3wVvcLjPFcV4AMDS3iquhBfTef2zo/jlm8RMxmiRp3Vy2HY8WMxrykJlcbCnqLXZPA0YZxZGND6eug85ogg==} + /@esbuild/win32-x64@0.18.5: + resolution: {integrity: sha512-gMxWvQeTQWDpa8ExPP41al+Ho7HyK24h7y41JdGKqE24KzXXQPxESUtrCoIES+HwF+OGq2smtibU9UvZ8WH3JQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -4412,34 +4412,34 @@ packages: '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 - /esbuild@0.18.4: - resolution: {integrity: sha512-9rxWV/Cb2DMUXfe9aUsYtqg0KTlw146ElFH22kYeK9KVV1qT082X4lpmiKsa12ePiCcIcB686TQJxaGAa9TFvA==} + /esbuild@0.18.5: + resolution: {integrity: sha512-ztF1Z53Mc8ijEo1ZWFduHZXIqRWufo76JHm1ikvhGjIzO1mj84LdKXSGmRzahfgvWSwky48MkT+o5yUIkQtDPA==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.18.4 - '@esbuild/android-arm64': 0.18.4 - '@esbuild/android-x64': 0.18.4 - '@esbuild/darwin-arm64': 0.18.4 - '@esbuild/darwin-x64': 0.18.4 - '@esbuild/freebsd-arm64': 0.18.4 - '@esbuild/freebsd-x64': 0.18.4 - '@esbuild/linux-arm': 0.18.4 - '@esbuild/linux-arm64': 0.18.4 - '@esbuild/linux-ia32': 0.18.4 - '@esbuild/linux-loong64': 0.18.4 - '@esbuild/linux-mips64el': 0.18.4 - '@esbuild/linux-ppc64': 0.18.4 - '@esbuild/linux-riscv64': 0.18.4 - '@esbuild/linux-s390x': 0.18.4 - '@esbuild/linux-x64': 0.18.4 - '@esbuild/netbsd-x64': 0.18.4 - '@esbuild/openbsd-x64': 0.18.4 - '@esbuild/sunos-x64': 0.18.4 - '@esbuild/win32-arm64': 0.18.4 - '@esbuild/win32-ia32': 0.18.4 - '@esbuild/win32-x64': 0.18.4 + '@esbuild/android-arm': 0.18.5 + '@esbuild/android-arm64': 0.18.5 + '@esbuild/android-x64': 0.18.5 + '@esbuild/darwin-arm64': 0.18.5 + '@esbuild/darwin-x64': 0.18.5 + '@esbuild/freebsd-arm64': 0.18.5 + '@esbuild/freebsd-x64': 0.18.5 + '@esbuild/linux-arm': 0.18.5 + '@esbuild/linux-arm64': 0.18.5 + '@esbuild/linux-ia32': 0.18.5 + '@esbuild/linux-loong64': 0.18.5 + '@esbuild/linux-mips64el': 0.18.5 + '@esbuild/linux-ppc64': 0.18.5 + '@esbuild/linux-riscv64': 0.18.5 + '@esbuild/linux-s390x': 0.18.5 + '@esbuild/linux-x64': 0.18.5 + '@esbuild/netbsd-x64': 0.18.5 + '@esbuild/openbsd-x64': 0.18.5 + '@esbuild/sunos-x64': 0.18.5 + '@esbuild/win32-arm64': 0.18.5 + '@esbuild/win32-ia32': 0.18.5 + '@esbuild/win32-x64': 0.18.5 dev: false /escalade@3.1.1: @@ -8695,8 +8695,8 @@ packages: - supports-color - terser - /vite-plugin-checker@0.6.0(eslint@8.43.0)(typescript@5.0.4)(vite@4.3.9)(vue-tsc@1.8.0): - resolution: {integrity: sha512-DWZ9Hv2TkpjviPxAelNUt4Q3IhSGrx7xrwdM64NI+Q4dt8PaMWJJh4qGNtSrfEuiuIzWWo00Ksvh5It4Y3L9xQ==} + /vite-plugin-checker@0.6.1(eslint@8.43.0)(typescript@5.0.4)(vite@4.3.9)(vue-tsc@1.8.0): + resolution: {integrity: sha512-4fAiu3W/IwRJuJkkUZlWbLunSzsvijDf0eDN6g/MGh6BUK4SMclOTGbLJCPvdAcMOQvVmm8JyJeYLYd4//8CkA==} engines: {node: '>=14.16'} peerDependencies: eslint: '>=7' From 5d4b71426e507126d0abf6f742b9800cdb7d60eb Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 20 Jun 2023 13:28:25 +0000 Subject: [PATCH 402/912] chore: ignore vercel/netlify build directories --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index ffd4e5fb1f..f074d86ef3 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,8 @@ packages/*/LICENSE dist .nuxt .nuxt-* +.vercel +.netlify .output .gen From b57d841614b215e9d93359d8a222fc429953a749 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 20 Jun 2023 17:02:13 +0100 Subject: [PATCH 403/912] fix(nuxt): post non-proxied cookie value via `BroadcastChannel` (#21653) --- packages/nuxt/src/app/composables/cookie.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/app/composables/cookie.ts b/packages/nuxt/src/app/composables/cookie.ts index 67c001c8bd..8fbfcfecce 100644 --- a/packages/nuxt/src/app/composables/cookie.ts +++ b/packages/nuxt/src/app/composables/cookie.ts @@ -1,5 +1,5 @@ import type { Ref } from 'vue' -import { getCurrentInstance, nextTick, onUnmounted, ref, watch } from 'vue' +import { getCurrentInstance, nextTick, onUnmounted, ref, toRaw, watch } from 'vue' import type { CookieParseOptions, CookieSerializeOptions } from 'cookie-es' import { parse, serialize } from 'cookie-es' import { deleteCookie, getCookie, setCookie } from 'h3' @@ -39,7 +39,7 @@ export function useCookie (name: string, _opts?: const callback = () => { writeClientCookie(name, cookie.value, opts as CookieSerializeOptions) - channel?.postMessage(cookie.value) + channel?.postMessage(toRaw(cookie.value)) } let watchPaused = false From de639e7ef97c52dc08a458f0936ff6358e073e4a Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 20 Jun 2023 17:02:59 +0100 Subject: [PATCH 404/912] fix(nuxt): stop indicator when not changing page component (#21656) --- packages/nuxt/src/app/components/nuxt-loading-indicator.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/components/nuxt-loading-indicator.ts b/packages/nuxt/src/app/components/nuxt-loading-indicator.ts index be896966cc..f7c7f121ae 100644 --- a/packages/nuxt/src/app/components/nuxt-loading-indicator.ts +++ b/packages/nuxt/src/app/components/nuxt-loading-indicator.ts @@ -38,7 +38,7 @@ export default defineComponent({ globalMiddleware.unshift(indicator.start) router.beforeResolve((to, from) => { - if (to === from) { + if (to === from || to.matched.every((comp, index) => comp.components && comp.components?.default === from.matched[index]?.components?.default)) { indicator.finish() } }) From 91ebcd7ee993425833147f9d33c609c0f996789e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Israel=20Ortu=C3=B1o?= Date: Tue, 20 Jun 2023 18:14:56 +0200 Subject: [PATCH 405/912] fix(nuxt): scroll to top in nested routes (#21657) --- packages/nuxt/src/pages/runtime/router.options.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/pages/runtime/router.options.ts b/packages/nuxt/src/pages/runtime/router.options.ts index 1c5df83f3a..5f5405da3e 100644 --- a/packages/nuxt/src/pages/runtime/router.options.ts +++ b/packages/nuxt/src/pages/runtime/router.options.ts @@ -57,12 +57,13 @@ function _getHashElementScrollMarginTop (selector: string): number { return 0 } -function _isDifferentRoute (a: RouteLocationNormalized, b: RouteLocationNormalized): boolean { - const samePageComponent = a.matched[0] === b.matched[0] +function _isDifferentRoute (from: RouteLocationNormalized, to: RouteLocationNormalized): boolean { + const samePageComponent = to.matched.every((comp, index) => comp.components?.default === from.matched[index]?.components?.default) + if (!samePageComponent) { return true } - if (samePageComponent && JSON.stringify(a.params) !== JSON.stringify(b.params)) { + if (samePageComponent && JSON.stringify(from.params) !== JSON.stringify(to.params)) { return true } return false From 5216e11ca96b66babeb7bc257ad8b9030d95a0e1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 18:29:18 +0100 Subject: [PATCH 406/912] chore(deps): update all non-major dependencies (main) (#21652) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- packages/nuxt/package.json | 2 +- pnpm-lock.yaml | 60 +++++++++++++++++++------------------- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/package.json b/package.json index ea2813558e..64b75fb875 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "vitest": "0.32.2", "vue": "3.3.4", "vue-eslint-parser": "9.3.1", - "vue-tsc": "1.8.0" + "vue-tsc": "1.8.1" }, "packageManager": "pnpm@8.6.3", "engines": { diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 190b1e044a..5296b3ee9d 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -56,7 +56,7 @@ "@nuxt/kit": "workspace:../kit", "@nuxt/schema": "workspace:../schema", "@nuxt/telemetry": "^2.2.0", - "@nuxt/ui-templates": "^1.1.1", + "@nuxt/ui-templates": "^1.2.0", "@nuxt/vite-builder": "workspace:../vite", "@unhead/ssr": "^1.1.27", "@unhead/vue": "^1.1.27", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b722cffc32..bcdc183bb1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -132,8 +132,8 @@ importers: specifier: 9.3.1 version: 9.3.1(eslint@8.43.0) vue-tsc: - specifier: 1.8.0 - version: 1.8.0(typescript@5.0.4) + specifier: 1.8.1 + version: 1.8.1(typescript@5.0.4) packages/kit: dependencies: @@ -332,8 +332,8 @@ importers: specifier: ^2.2.0 version: 2.2.0 '@nuxt/ui-templates': - specifier: ^1.1.1 - version: 1.1.1 + specifier: ^1.2.0 + version: 1.2.0 '@nuxt/vite-builder': specifier: workspace:* version: link:../vite @@ -741,7 +741,7 @@ importers: version: 0.32.2(@types/node@18.16.18) vite-plugin-checker: specifier: ^0.6.1 - version: 0.6.1(eslint@8.43.0)(typescript@5.0.4)(vite@4.3.9)(vue-tsc@1.8.0) + version: 0.6.1(eslint@8.43.0)(typescript@5.0.4)(vite@4.3.9)(vue-tsc@1.8.1) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 @@ -2054,8 +2054,8 @@ packages: rc9: 2.1.0 std-env: 3.3.3 - /@nuxt/ui-templates@1.1.1: - resolution: {integrity: sha512-PjVETP7+iZXAs5Q8O4ivl4t6qjWZMZqwiTVogUXHoHGZZcw7GZW3u3tzfYfE1HbzyYJfr236IXqQ02MeR8Fz2w==} + /@nuxt/ui-templates@1.2.0: + resolution: {integrity: sha512-MSZza7dxccNb/p7nuzGF8/m4POaFpHzVhNdR7f4xahOpH7Ja02lFeYR+rHtoHIJC0yym4qriqv0mQ+Qf/R61bQ==} dev: false /@nuxtjs/eslint-config-typescript@12.0.0(eslint@8.43.0)(typescript@5.0.4): @@ -2777,20 +2777,20 @@ packages: pretty-format: 27.5.1 dev: true - /@volar/language-core@1.7.6: - resolution: {integrity: sha512-r+82YGjae8ALzaX+TaESpeBOrp/H5MQnPYZLq4WKd8rsPrCAPbMwelwHLHhFpyjy66BK/cKreJAcvOc6YEwyFA==} + /@volar/language-core@1.7.8: + resolution: {integrity: sha512-TPklg4c2e/f1xB/MGZEiQc3AWG+dH64ZfBlYjFB8nNaWJt4Z4k+IHBhmaP52APG+5PHFerwiWI9oF002RrRTPA==} dependencies: - '@volar/source-map': 1.7.6 + '@volar/source-map': 1.7.8 - /@volar/source-map@1.7.6: - resolution: {integrity: sha512-6oGrgz+hg5GCzP8D2+ay7vOdIOA9/aXwpa22Wx5b6d4ZGwwosBqv7kVs8AyMh5zOSQpKhrImE1pfagpu+V+rBQ==} + /@volar/source-map@1.7.8: + resolution: {integrity: sha512-g2dtC2kOghvfzMDWeODIo4HO1Ml4hxzPTZyAFDz+YhRF9HjZYJSCaWaVuPZ+z0kY+T2daOHYA10GdrWQ5q0teA==} dependencies: muggle-string: 0.3.1 - /@volar/typescript@1.7.6: - resolution: {integrity: sha512-JkBRQe2GYSEgamW84tDk4XQ/7abQJw09czLQCgL1jfjndhaV4DuAet2I3pvQv41OjodVc59W0+E3hylrlNsgWA==} + /@volar/typescript@1.7.8: + resolution: {integrity: sha512-NDcI5ZQcdr8kgxzMQrhSSWIM8Tl0MbMFrkvJPTjfm2rdAQZPFT8zv3LrEW9Fqh0e9z2YbCry7jr4a/GShBqeDA==} dependencies: - '@volar/language-core': 1.7.6 + '@volar/language-core': 1.7.8 /@vue-macros/common@1.3.1(rollup@3.21.8)(vue@3.3.4): resolution: {integrity: sha512-Lc5aP/8HNJD1XrnvpeNuWcCf82bZdR3auN/chA1b/1rKZgSnmQkH9f33tKO9qLwXSy+u4hpCi8Rw+oUuF1KCeg==} @@ -2867,16 +2867,16 @@ packages: /@vue/devtools-api@6.5.0: resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} - /@vue/language-core@1.8.0(typescript@5.0.4): - resolution: {integrity: sha512-rOAtqIRyyZ6OQreAkFDbbDt7L5BwvzrdbWaBAoEZjr4ImPBV9cRDBHxlMBU0SBOAZxIUQdjOvQ0uAl9uZDer0w==} + /@vue/language-core@1.8.1(typescript@5.0.4): + resolution: {integrity: sha512-pumv3k4J7P58hVh4YGRM9Qz3HaAr4TlFWM9bnVOkZ/2K9o2CK1lAP2y9Jw+Z0+mNL4F2uWQqnAPzj3seLyfpDA==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@volar/language-core': 1.7.6 - '@volar/source-map': 1.7.6 + '@volar/language-core': 1.7.8 + '@volar/source-map': 1.7.8 '@vue/compiler-dom': 3.3.4 '@vue/reactivity': 3.3.4 '@vue/shared': 3.3.4 @@ -2924,11 +2924,11 @@ packages: /@vue/shared@3.3.4: resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} - /@vue/typescript@1.8.0(typescript@5.0.4): - resolution: {integrity: sha512-swi0NM+dpZCldXkMGS8wCxvoiRgA0PJw0UQeSTA7PqB2/5LsOQ8pmxyqLPE6YsbEdn0XqI9a7QgKOmmElkaMOA==} + /@vue/typescript@1.8.1(typescript@5.0.4): + resolution: {integrity: sha512-nQpo55j/roie8heCfqyXHnyayqD5+p4/0fzfxH4ZuHf7NSBQS791PNv7ztp2CCOjnGAiaiCMdtC9rc6oriyPUg==} dependencies: - '@volar/typescript': 1.7.6 - '@vue/language-core': 1.8.0(typescript@5.0.4) + '@volar/typescript': 1.7.8 + '@vue/language-core': 1.8.1(typescript@5.0.4) transitivePeerDependencies: - typescript @@ -8695,7 +8695,7 @@ packages: - supports-color - terser - /vite-plugin-checker@0.6.1(eslint@8.43.0)(typescript@5.0.4)(vite@4.3.9)(vue-tsc@1.8.0): + /vite-plugin-checker@0.6.1(eslint@8.43.0)(typescript@5.0.4)(vite@4.3.9)(vue-tsc@1.8.1): resolution: {integrity: sha512-4fAiu3W/IwRJuJkkUZlWbLunSzsvijDf0eDN6g/MGh6BUK4SMclOTGbLJCPvdAcMOQvVmm8JyJeYLYd4//8CkA==} engines: {node: '>=14.16'} peerDependencies: @@ -8746,7 +8746,7 @@ packages: vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 vscode-uri: 3.0.7 - vue-tsc: 1.8.0(typescript@5.0.4) + vue-tsc: 1.8.1(typescript@5.0.4) dev: false /vite@4.3.9(@types/node@18.16.18): @@ -8890,6 +8890,7 @@ packages: /vscode-uri@3.0.7: resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} + dev: false /vue-bundle-renderer@1.0.3: resolution: {integrity: sha512-EfjX+5TTUl70bki9hPuVp+54JiZOvFIfoWBcfXsSwLzKEiDYyHNi5iX8srnqLIv3YRnvxgbntdcG1WPq0MvffQ==} @@ -8950,17 +8951,16 @@ packages: de-indent: 1.0.2 he: 1.2.0 - /vue-tsc@1.8.0(typescript@5.0.4): - resolution: {integrity: sha512-zRjRghohec71o+o3dzzqwFLtbKmJ1K1xRnq9ToHRdnHbBSZA2eUaTT1o+y4xOkBLZtW4cv7FkZE0FGCZfMrcBw==} + /vue-tsc@1.8.1(typescript@5.0.4): + resolution: {integrity: sha512-GxBQrcb0Qvyrj1uZqnTXQyWbXdNDRY2MTa+r7ESgjhf+WzBSdxZfkS3KD/C3WhKYG+aN8hf44Hp5Gqzb6PehAA==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.0(typescript@5.0.4) - '@vue/typescript': 1.8.0(typescript@5.0.4) + '@vue/language-core': 1.8.1(typescript@5.0.4) + '@vue/typescript': 1.8.1(typescript@5.0.4) semver: 7.5.2 typescript: 5.0.4 - vscode-uri: 3.0.7 /vue@3.3.4: resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} From 2c9ac8dd80c6c793341d753cde497fd9439fd15e Mon Sep 17 00:00:00 2001 From: Hebilicious Date: Wed, 21 Jun 2023 01:17:07 +0700 Subject: [PATCH 407/912] docs: add experimental features page (#21617) --- .../1.experimental-features.md | 227 ++++++++++++++++++ 1 file changed, 227 insertions(+) create mode 100644 docs/2.guide/3.going-further/1.experimental-features.md diff --git a/docs/2.guide/3.going-further/1.experimental-features.md b/docs/2.guide/3.going-further/1.experimental-features.md new file mode 100644 index 0000000000..9477efe868 --- /dev/null +++ b/docs/2.guide/3.going-further/1.experimental-features.md @@ -0,0 +1,227 @@ +--- +title: "Experimental Features" +description: "Nuxt experimental features needs to be enabled manually." +--- + +# Experimental Features + +The Nuxt experimental features can be enabled in the Nuxt configuration file. +Internally, Nuxt use `@nuxt/schema` to define these experimentatl features. You can refer to the [source code](https://github.com/nuxt/nuxt/blob/main/packages/schema/src/config/experimental.ts) for more information. + +::alert{type=info icon=💡} +Note that these features are experimental and could be removed or modified in the future. +:: + +## asyncEntry + +Enables generation of an async entry point for the Vue bundle, aiding module federation support. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { asyncEntry: true } }) +``` + +## reactivityTransform + +Enables Vue's reactivity transform. Note that this feature has been marked as deprecated in Vue 3.3 and is planned to be removed from core in Vue 3.4. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { reactivityTransform: true } }) +``` + +::ReadMore{link="docs/getting-started/configuration#enabling-experimental-vue-features"} + +## externalVue + +Externalizes `vue`, `@vue/*` and `vue-router` when building. +*Enabled by default.* + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { externalVue: true } }) +``` + +::alert{type=warning icon=⚠️} +This feature will likely be removed in Nuxt 3.6. +:: + +## treeshakeClientOnly + +Tree shakes contents of client-only components from server bundle. +*Enabled by default.* + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { treeshakeClientOnly: true } }) +``` + +## emitRouteChunkError + +Emits `app:chunkError` hook when there is an error loading vite/webpack chunks. Default behavior is to perform a hard reload of the new route when a chunk fails to load. +You can disable automatic handling by setting this to `false`, or handle chunk errors manually by setting it to `manual`. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { emitRouteChunkError: 'automatic' } }) // or 'manual' or false +``` + +## restoreState + +Allows Nuxt app state to be restored from `sessionStorage` when reloading the page after a chunk error or manual `reloadNuxtApp()` call. + To avoid hydration errors, it will be applied only after the Vue app has been mounted, + meaning there may be a flicker on initial load. + +::alert{type=warning icon=⚠️} +Consider carefully before enabling this as it can cause unexpected behavior, +and consider providing explicit keys to `useState` as auto-generated keys may not match across builds. +:: + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { restoreState: true } }) +``` + +## inlineSSRStyles + +Inlines styles when rendering HTML. This is currently available only when using Vite. +You can also pass a function that receives the path of a Vue component and returns a boolean indicating whether to inline the styles for that component. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { inlineSSRStyles: true } }) // or a function to determine inlining +``` + +## noScripts + +Disables rendering of Nuxt scripts and JS resource hints. Can also be configured granularly within `routeRules`. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { noScripts: true } }) +``` + +## renderJsonPayloads + +Allows rendering of JSON payloads with support for revivifying complex types. +*Enabled by default.* + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { renderJsonPayloads: true } }) +``` + +## noVueServer + +Disables Vue server renderer endpoint within Nitro. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { noVueServer: true } }) +``` + +## payloadExtraction + +Enables extraction of payloads of pages generated with `nuxt generate`. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { payloadExtraction: true } }) +``` + +## clientFallback + +Enables the experimental `` component for rendering content on the client if there's an error in SSR. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { clientFallback: true } }) +``` + +## crossOriginPrefetch + +Enables cross-origin prefetch using the Speculation Rules API. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { crossOriginPrefetch: true } }) +``` + +## viewTransition + +Enables View Transition API integration with client-side router. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { viewTransition: true } }) +``` + +::ReadMore{link="docs/getting-started/transitions#view-transitions-api-experimental"} + +## writeEarlyHints + +Enables writing of early hints when using node server. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { writeEarlyHints: true } }) +``` + +## componentIslands + +Enables experimental component islands support with `` and `.island.vue` files. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { componentIslands: true } }) +``` + +::ReadMore{link="docs/guide/directory-structure/components#server-components"} + +You can follow the server components roadmap on [GitHub](https://github.com/nuxt/nuxt/issues/19772). + +## configSchema + +Enables config schema support. +*Enabled by default.* + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { configSchema: true } }) +``` + +## polyfillVueUseHead + +Adds a compatibility layer for modules, plugins, or user code relying on the old `@vueuse/head` API. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { polyfillVueUseHead: false } }) +``` + +## respectNoSSRHeader + +Allow disabling Nuxt SSR responses by setting the `x-nuxt-no-ssr` header. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { respectNoSSRHeader: false } }) +``` + +## localLayerAliases + +Resolve `~`, `~~`, `@` and `@@` aliases located within layers with respect to their layer source and root directories. +*Enabled by default.* + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { localLayerAliases: true } }) +``` + +## typedPages + +Enable the new experimental typed router using [unplugin-vue-router](https://github.com/posva/unplugin-vue-router). + +```ts [nuxt.config.ts] +export defineNuxtConfig({ experimental: { typedPages: false } }) +``` + +Out of the box, this will enable typed usage of `navigateTo`, ``, `router.push()` and more. +You can even get typed params within a page by using `const route = useRoute('route-name')`. + +## watcher + +Set an alternative watcher that will be used as the watching service for Nuxt. +Nuxt uses `chokidar-granular` by default, which will ignore top-level directories +(like `node_modules` and `.git`) that are excluded from watching. +You can set this instead to `parcel` to use `@parcel/watcher`, which may improve +performance in large projects or on Windows platforms. +You can also set this to `chokidar` to watch all files in your source directory. + +```ts [nuxt.config.ts] +export defineNuxtConfig({ + experimental: { + watcher: 'chokidar-granular' // 'chokidar' or 'parcel' are also options + } +}) +``` From 343a46d5f9fd590bfce1f9e9783a63c9ac8f5ffd Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 20 Jun 2023 19:28:44 +0100 Subject: [PATCH 408/912] fix(nuxt): inline css directly in root component (#21573) --- .../nuxt/src/core/runtime/nitro/renderer.ts | 11 ++ packages/vite/src/plugins/paths.ts | 5 +- packages/vite/src/plugins/ssr-styles.ts | 104 ++++++++++++++++-- packages/vite/src/server.ts | 22 ---- packages/vite/src/vite.ts | 30 +++++ test/basic.test.ts | 63 +++++++++-- test/bundle.test.ts | 6 +- .../components/ServerOnlyComponent.server.vue | 6 + test/fixtures/basic/pages/styles.vue | 1 + 9 files changed, 200 insertions(+), 48 deletions(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index a72c1e520a..4244cbf143 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -66,6 +66,8 @@ const getClientManifest: () => Promise = () => import('#build/dist/ser .then(r => r.default || r) .then(r => typeof r === 'function' ? r() : r) as Promise +const getEntryId: () => Promise = () => getClientManifest().then(r => Object.values(r).find(r => r.isEntry)!.src!) + // @ts-expect-error virtual file const getStaticRenderedHead = (): Promise => import('#head-static').then(r => r.default || r) @@ -283,6 +285,15 @@ export default defineRenderHandler(async (event): Promise vue files if (pathname.endsWith('.vue')) { diff --git a/packages/vite/src/plugins/ssr-styles.ts b/packages/vite/src/plugins/ssr-styles.ts index 0ef84cefb0..66f8491ed0 100644 --- a/packages/vite/src/plugins/ssr-styles.ts +++ b/packages/vite/src/plugins/ssr-styles.ts @@ -1,17 +1,24 @@ import { pathToFileURL } from 'node:url' import type { Plugin } from 'vite' -import { findStaticImports } from 'mlly' import { dirname, relative } from 'pathe' -import { genObjectFromRawEntries } from 'knitwork' +import { genImport, genObjectFromRawEntries } from 'knitwork' import { filename } from 'pathe/utils' import { parseQuery, parseURL } from 'ufo' import type { Component } from '@nuxt/schema' +import MagicString from 'magic-string' +import { findStaticImports } from 'mlly' + +import { isCSS } from '../utils' interface SSRStylePluginOptions { srcDir: string chunksWithInlinedCSS: Set shouldInline?: ((id?: string) => boolean) | boolean components: Component[] + clientCSSMap: Record> + entry: string + globalCSS: string[] + mode: 'server' | 'client' } const SUPPORTED_FILES_RE = /\.(vue|((c|m)?j|t)sx?)$/ @@ -33,10 +40,17 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { name: 'ssr-styles', resolveId: { order: 'pre', - async handler (id, importer, options) { - if (!id.endsWith('.vue')) { return } + async handler (id, importer, _options) { + // We deliberately prevent importing `#build/css` to avoid including it in the client bundle + // in its entirety. We will instead include _just_ the styles that can't be inlined, + // in the component below + if (options.mode === 'client' && id === '#build/css' && (options.shouldInline === true || (typeof options.shouldInline === 'function' && options.shouldInline(importer)))) { + return this.resolve('unenv/runtime/mock/empty', importer, _options) + } - const res = await this.resolve(id, importer, { ...options, skipSelf: true }) + if (options.mode === 'client' || !id.endsWith('.vue')) { return } + + const res = await this.resolve(id, importer, { ..._options, skipSelf: true }) if (res) { return { ...res, @@ -46,6 +60,8 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { } }, generateBundle (outputOptions) { + if (options.mode === 'client') { return } + const emitted: Record = {} for (const file in cssMap) { const { files, inBundle } = cssMap[file] @@ -75,6 +91,8 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { options.chunksWithInlinedCSS.add(key) } + // TODO: remove css from vite preload arrays + this.emitFile({ type: 'asset', fileName: 'styles.mjs', @@ -89,6 +107,19 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { }, renderChunk (_code, chunk) { if (!chunk.facadeModuleId) { return null } + + // 'Teleport' CSS chunks that made it into the bundle on the client side + // to be inlined on server rendering + if (options.mode === 'client') { + options.clientCSSMap[chunk.facadeModuleId] ||= new Set() + for (const id of chunk.moduleIds) { + if (isCSS(id)) { + options.clientCSSMap[chunk.facadeModuleId].add(id) + } + } + return + } + const id = relativeToSrcDir(chunk.facadeModuleId) for (const file in chunk.modules) { const relativePath = relativeToSrcDir(file) @@ -100,10 +131,41 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { return null }, async transform (code, id) { - const { pathname, search } = parseURL(decodeURIComponent(pathToFileURL(id).href)) - const query = parseQuery(search) + if (options.mode === 'client') { + // We will either teleport global CSS to the 'entry' chunk on the server side + // or include it here in the client build so it is emitted in the CSS. + if (id === options.entry && (options.shouldInline === true || (typeof options.shouldInline === 'function' && options.shouldInline(id)))) { + const s = new MagicString(code) + options.clientCSSMap[id] ||= new Set() + for (const file of options.globalCSS) { + const resolved = await this.resolve(file, id) + const res = await this.resolve(file + '?inline&used', id) + if (!resolved || !res) { + if (!warnCache.has(file)) { + warnCache.add(file) + this.warn(`[nuxt] Cannot extract styles for \`${file}\`. Its styles will not be inlined when server-rendering.`) + } + s.prepend(`${genImport(file)}\n`) + continue + } + options.clientCSSMap[id].add(resolved.id) + } + if (s.hasChanged()) { + return { + code: s.toString(), + map: s.generateMap({ hires: true }) + } + } + } + return + } - if (!SUPPORTED_FILES_RE.test(pathname) || query.macro || query.nuxt_component) { return } + const { pathname, search } = parseURL(decodeURIComponent(pathToFileURL(id).href)) + + if (!(id in options.clientCSSMap) && !islands.some(c => c.filePath === pathname)) { return } + + const query = parseQuery(search) + if (query.macro || query.nuxt_component) { return } if (!islands.some(c => c.filePath === pathname)) { if (options.shouldInline === false || (typeof options.shouldInline === 'function' && !options.shouldInline(id))) { return } @@ -112,7 +174,32 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { const relativeId = relativeToSrcDir(id) cssMap[relativeId] = cssMap[relativeId] || { files: [] } + const emittedIds = new Set() + let styleCtr = 0 + const ids = options.clientCSSMap[id] || [] + for (const file of ids) { + const resolved = await this.resolve(file, id) + if (!resolved || !(await this.resolve(file + '?inline&used', id))) { + if (!warnCache.has(file)) { + warnCache.add(file) + this.warn(`[nuxt] Cannot extract styles for \`${file}\`. Its styles will not be inlined when server-rendering.`) + } + continue + } + if (emittedIds.has(file)) { continue } + const ref = this.emitFile({ + type: 'chunk', + name: `${filename(id)}-styles-${++styleCtr}.mjs`, + id: file + '?inline&used' + }) + + idRefMap[relativeToSrcDir(file)] = ref + cssMap[relativeId].files.push(ref) + } + + if (!SUPPORTED_FILES_RE.test(pathname)) { return } + for (const i of findStaticImports(code)) { const { type } = parseQuery(i.specifier) if (type !== 'style' && !i.specifier.endsWith('.css')) { continue } @@ -127,6 +214,7 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { continue } + if (emittedIds.has(resolved.id)) { continue } const ref = this.emitFile({ type: 'chunk', name: `${filename(id)}-styles-${++styleCtr}.mjs`, diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts index c98a22a8b9..8c1886e3e7 100644 --- a/packages/vite/src/server.ts +++ b/packages/vite/src/server.ts @@ -8,7 +8,6 @@ import type { ViteConfig } from '@nuxt/schema' import type { ViteBuildContext } from './vite' import { createViteLogger } from './utils/logger' import { initViteNodeServer } from './vite-node' -import { ssrStylesPlugin } from './plugins/ssr-styles' import { pureAnnotationsPlugin } from './plugins/pure-annotations' import { writeManifest } from './manifest' import { transpile } from './utils/transpile' @@ -120,27 +119,6 @@ export async function buildServer (ctx: ViteBuildContext) { serverConfig.customLogger = createViteLogger(serverConfig) - if (!ctx.nuxt.options.dev) { - const chunksWithInlinedCSS = new Set() - serverConfig.plugins!.push(ssrStylesPlugin({ - srcDir: ctx.nuxt.options.srcDir, - chunksWithInlinedCSS, - shouldInline: ctx.nuxt.options.experimental.inlineSSRStyles, - components: ctx.nuxt.apps.default.components - })) - - // Remove CSS entries for files that will have inlined styles - ctx.nuxt.hook('build:manifest', (manifest) => { - for (const key in manifest) { - const entry = manifest[key] - const shouldRemoveCSS = chunksWithInlinedCSS.has(key) - if (shouldRemoveCSS) { - entry.css = [] - } - } - }) - } - await ctx.nuxt.callHook('vite:extendConfig', serverConfig, { isClient: false, isServer: true }) serverConfig.plugins!.unshift( diff --git a/packages/vite/src/vite.ts b/packages/vite/src/vite.ts index 67e5cbfd68..3ca8f86c6c 100644 --- a/packages/vite/src/vite.ts +++ b/packages/vite/src/vite.ts @@ -16,6 +16,7 @@ import { warmupViteServer } from './utils/warmup' import { resolveCSSOptions } from './css' import { composableKeysPlugin } from './plugins/composable-keys' import { logLevelMap } from './utils/logger' +import { ssrStylesPlugin } from './plugins/ssr-styles' export interface ViteBuildContext { nuxt: Nuxt @@ -143,6 +144,35 @@ export async function bundle (nuxt: Nuxt) { await nuxt.callHook('vite:extend', ctx) + if (!ctx.nuxt.options.dev) { + const chunksWithInlinedCSS = new Set() + const clientCSSMap = {} + + nuxt.hook('vite:extendConfig', (config, { isServer }) => { + config.plugins!.push(ssrStylesPlugin({ + srcDir: ctx.nuxt.options.srcDir, + clientCSSMap, + chunksWithInlinedCSS, + shouldInline: ctx.nuxt.options.experimental.inlineSSRStyles, + components: ctx.nuxt.apps.default.components, + globalCSS: ctx.nuxt.options.css, + mode: isServer ? 'server' : 'client', + entry: ctx.entry + })) + }) + + // Remove CSS entries for files that will have inlined styles + ctx.nuxt.hook('build:manifest', (manifest) => { + for (const key in manifest) { + const entry = manifest[key] + const shouldRemoveCSS = chunksWithInlinedCSS.has(key) && !entry.isEntry + if (shouldRemoveCSS && entry.css) { + entry.css = [] + } + } + }) + } + nuxt.hook('vite:serverCreated', (server: vite.ViteDevServer, env) => { // Invalidate virtual modules when templates are re-generated ctx.nuxt.hook('app:templatesGenerated', () => { diff --git a/test/basic.test.ts b/test/basic.test.ts index e121f4a7ee..70b468d58b 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1168,17 +1168,47 @@ describe('automatically keyed composables', () => { }) describe.skipIf(isDev() || isWebpack)('inlining component styles', () => { + const inlinedCSS = [ + '{--plugin:"plugin"}', // CSS imported ambiently in JS/TS + '{--global:"global";', // global css from nuxt.config + '{--assets:"assets"}', // + + diff --git a/test/fixtures/basic/layouts/custom-async.vue b/test/fixtures/basic/layouts/custom-async.vue index 92d244a9aa..14ae2ae760 100644 --- a/test/fixtures/basic/layouts/custom-async.vue +++ b/test/fixtures/basic/layouts/custom-async.vue @@ -2,6 +2,7 @@
Custom Async Layout: +
diff --git a/test/fixtures/basic/pages/layout-switch/end.vue b/test/fixtures/basic/pages/layout-switch/end.vue new file mode 100644 index 0000000000..b6c96ff3b3 --- /dev/null +++ b/test/fixtures/basic/pages/layout-switch/end.vue @@ -0,0 +1,3 @@ + diff --git a/test/fixtures/basic/pages/layout-switch/start.vue b/test/fixtures/basic/pages/layout-switch/start.vue new file mode 100644 index 0000000000..aba0d17e5f --- /dev/null +++ b/test/fixtures/basic/pages/layout-switch/start.vue @@ -0,0 +1,13 @@ + + + From 06c9966e29caefc4ff21cd71c63c7fc1bc72573f Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 23 Jun 2023 13:02:52 +0100 Subject: [PATCH 427/912] ci: skip updating changelog on release commits --- .github/workflows/changelogensets.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/changelogensets.yml b/.github/workflows/changelogensets.yml index b0e1ab0657..aa5dd6cc09 100644 --- a/.github/workflows/changelogensets.yml +++ b/.github/workflows/changelogensets.yml @@ -15,7 +15,7 @@ concurrency: jobs: update-changelog: - if: github.repository_owner == 'nuxt' + if: github.repository_owner == 'nuxt' && !contains(github.event.head_commit.message, 'v3.') runs-on: ubuntu-latest steps: From e58cfc81f03a2323c95e6671af7deb4c4288bf39 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 23 Jun 2023 13:06:06 +0100 Subject: [PATCH 428/912] v3.6.0 --- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 9676542ea8..6b8e6a42e9 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.5.3", + "version": "3.6.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 22b907257b..fcfcc5d027 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -1,6 +1,6 @@ { "name": "nuxi", - "version": "3.5.3", + "version": "3.6.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 69b5a9f3a8..d9f671a2c3 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.5.3", + "version": "3.6.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/schema/package.json b/packages/schema/package.json index 3c7df9dfa9..01e13bbf3e 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.5.3", + "version": "3.6.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index f3e8ecc7d1..437c50b4b5 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.5.3", + "version": "3.6.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/vite/package.json b/packages/vite/package.json index 3ecad1c479..c3ddb5fd7d 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.5.3", + "version": "3.6.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index c3cdf6e8fa..6ae6d76bd8 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.5.3", + "version": "3.6.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", From 1ee704c18439d97e8ba4a17338c6b2336b8fc0d9 Mon Sep 17 00:00:00 2001 From: Ryota Watanabe <43837308+wattanx@users.noreply.github.com> Date: Fri, 23 Jun 2023 23:47:21 +0900 Subject: [PATCH 429/912] docs: add `defineNuxtRouteMiddleware` migration (#21718) --- docs/6.bridge/1.overview.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/6.bridge/1.overview.md b/docs/6.bridge/1.overview.md index fda6665233..88aef297c9 100644 --- a/docs/6.bridge/1.overview.md +++ b/docs/6.bridge/1.overview.md @@ -233,6 +233,28 @@ If you want to use the new Nuxt composables (such as `useNuxtApp` or `useRuntime Although a compatibility interface is provided via `nuxtApp.vueApp` you should avoid registering plugins, directives, mixins or components this way without adding your own logic to ensure they are not installed more than once, or this may cause a memory leak. :: +## New Middleware Format (Optional) + +You can now migrate to the Nuxt 3 middleware API, which is slightly different in format from Nuxt 2. + +Middleware now take only two argument (`to`, `from`). You can find out more in [the docs](/docs/guide/directory-structure/middleware). + +```js +export default defineNuxtRouteMiddleware((to) => { + if (to.path !== '/') { + return navigateTo('/') + } +}) +``` + +::alert{type=warning} +Use of `defineNuxtRouteMiddleware` is not supported outside of the middleware directory. +:: + +::alert{type=warning} +Nuxt Bridge does not support `definePageMeta`. +:: + ## New `useHead` (Optional) Nuxt Bridge provides a new Nuxt 3 meta API that can be accessed with a new `useHead` composable. From 789c8bfa95bea920b291971a72e294233a6abc78 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sat, 24 Jun 2023 00:01:17 +0100 Subject: [PATCH 430/912] fix(nuxt): use esbuild/acorn instead of `typescript` dep (#21729) --- packages/nuxt/package.json | 4 +- packages/nuxt/src/core/app.ts | 2 +- .../nuxt/src/core/plugins/plugin-metadata.ts | 38 +++++++++----- packages/nuxt/test/plugin-metadata.test.ts | 9 ++-- pnpm-lock.yaml | 51 ++++--------------- 5 files changed, 45 insertions(+), 59 deletions(-) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index d9f671a2c3..968e8dcdda 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -58,16 +58,17 @@ "@nuxt/telemetry": "^2.2.0", "@nuxt/ui-templates": "^1.2.0", "@nuxt/vite-builder": "workspace:../vite", - "@typescript-eslint/typescript-estree": "^5.60.0", "@unhead/ssr": "^1.1.27", "@unhead/vue": "^1.1.27", "@vue/shared": "^3.3.4", + "acorn": "8.9.0", "c12": "^1.4.2", "chokidar": "^3.5.3", "cookie-es": "^1.0.0", "defu": "^6.1.2", "destr": "^2.0.0", "devalue": "^4.3.2", + "esbuild": "^0.18.6", "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", "fs-extra": "^11.1.1", @@ -110,7 +111,6 @@ "@types/fs-extra": "11.0.1", "@types/prompts": "2.4.4", "@vitejs/plugin-vue": "4.2.3", - "acorn": "8.9.0", "unbuild": "latest", "vite": "4.3.9", "vitest": "0.32.2" diff --git a/packages/nuxt/src/core/app.ts b/packages/nuxt/src/core/app.ts index 1c65044ff3..2adb82e3bd 100644 --- a/packages/nuxt/src/core/app.ts +++ b/packages/nuxt/src/core/app.ts @@ -157,7 +157,7 @@ export async function annotatePlugins (nuxt: Nuxt, plugins: NuxtPlugin[]) { try { const code = plugin.src in nuxt.vfs ? nuxt.vfs[plugin.src] : await fsp.readFile(plugin.src!, 'utf-8') _plugins.push({ - ...extractMetadata(code), + ...await extractMetadata(code), ...plugin }) } catch (e) { diff --git a/packages/nuxt/src/core/plugins/plugin-metadata.ts b/packages/nuxt/src/core/plugins/plugin-metadata.ts index d916a753e0..1cc348ec1e 100644 --- a/packages/nuxt/src/core/plugins/plugin-metadata.ts +++ b/packages/nuxt/src/core/plugins/plugin-metadata.ts @@ -1,7 +1,8 @@ import type { CallExpression, Property, SpreadElement } from 'estree' import type { Node } from 'estree-walker' import { walk } from 'estree-walker' -import { parse } from '@typescript-eslint/typescript-estree' +import { transform } from 'esbuild' +import { parse } from 'acorn' import { defu } from 'defu' import { findExports } from 'mlly' import type { Nuxt } from '@nuxt/schema' @@ -40,12 +41,16 @@ export const orderMap: Record, number> = { } const metaCache: Record> = {} -export function extractMetadata (code: string) { +export async function extractMetadata (code: string) { let meta: PluginMeta = {} if (metaCache[code]) { return metaCache[code] } - walk(parse(code) as Node, { + const js = await transform(code, { loader: 'ts' }) + walk(parse(js.code, { + sourceType: 'module', + ecmaVersion: 'latest' + }) as Node, { enter (_node) { if (_node.type !== 'CallExpression' || (_node as CallExpression).callee.type !== 'Identifier') { return } const node = _node as CallExpression & { start: number, end: number } @@ -108,7 +113,6 @@ function extractMetaFromObject (properties: Array) { export const RemovePluginMetadataPlugin = (nuxt: Nuxt) => createUnplugin(() => { return { name: 'nuxt:remove-plugin-metadata', - enforce: 'pre', transform (code, id) { id = normalize(id) const plugin = nuxt.apps.default.plugins.find(p => p.src === id) @@ -129,7 +133,10 @@ export const RemovePluginMetadataPlugin = (nuxt: Nuxt) => createUnplugin(() => { let wrapped = false try { - walk(parse(code, { range: true }) as Node, { + walk(this.parse(code, { + sourceType: 'module', + ecmaVersion: 'latest' + }) as Node, { enter (_node) { if (_node.type === 'ExportDefaultDeclaration' && (_node.declaration.type === 'FunctionDeclaration' || _node.declaration.type === 'ArrowFunctionExpression')) { if ('params' in _node.declaration && _node.declaration.params.length > 1) { @@ -156,14 +163,21 @@ export const RemovePluginMetadataPlugin = (nuxt: Nuxt) => createUnplugin(() => { // Remove metadata that already has been extracted if (!('order' in plugin) && !('name' in plugin)) { return } - for (const [argIndex, arg] of node.arguments.entries()) { - if (arg.type !== 'ObjectExpression') { continue } - for (const [propertyIndex, property] of arg.properties.entries()) { - if (property.type === 'SpreadElement' || !('name' in property.key)) { continue } - const propertyKey = property.key.name + for (const [argIndex, _arg] of node.arguments.entries()) { + if (_arg.type !== 'ObjectExpression') { continue } + + const arg = _arg as typeof _arg & { start: number, end: number } + for (const [propertyIndex, _property] of arg.properties.entries()) { + if (_property.type === 'SpreadElement' || !('name' in _property.key)) { continue } + + const property = _property as typeof _property & { start: number, end: number } + const propertyKey = _property.key.name if (propertyKey === 'order' || propertyKey === 'enforce' || propertyKey === 'name') { - const nextIndex = arg.properties[propertyIndex + 1]?.range?.[0] || node.arguments[argIndex + 1]?.range?.[0] || (arg.range![1] - 1) - s.remove(property.range![0], nextIndex) + const _nextNode = arg.properties[propertyIndex + 1] || node.arguments[argIndex + 1] + const nextNode = _nextNode as typeof _nextNode & { start: number, end: number } + const nextIndex = nextNode?.start || (arg.end - 1) + + s.remove(property.start, nextIndex) } } } diff --git a/packages/nuxt/test/plugin-metadata.test.ts b/packages/nuxt/test/plugin-metadata.test.ts index 271b86c871..09d88ece56 100644 --- a/packages/nuxt/test/plugin-metadata.test.ts +++ b/packages/nuxt/test/plugin-metadata.test.ts @@ -1,9 +1,10 @@ import { describe, expect, it } from 'vitest' +import { parse } from 'acorn' import { RemovePluginMetadataPlugin, extractMetadata } from '../src/core/plugins/plugin-metadata' describe('plugin-metadata', () => { - it('should extract metadata from object-syntax plugins', () => { + it('should extract metadata from object-syntax plugins', async () => { const properties = Object.entries({ name: 'test', enforce: 'post', @@ -15,7 +16,7 @@ describe('plugin-metadata', () => { for (const item of properties) { const obj = [...properties.filter(([key]) => key !== item[0]), item] - const meta = extractMetadata([ + const meta = await extractMetadata([ 'export default defineNuxtPlugin({', ...obj.map(([key, value]) => `${key}: ${typeof value === 'function' ? value.toString() : JSON.stringify(value)},`), '})' @@ -41,7 +42,7 @@ describe('plugin-metadata', () => { 'export default function (ctx, inject) {}' ] for (const plugin of invalidPlugins) { - expect(transformPlugin.transform(plugin, 'my-plugin.mjs').code).toBe('export default () => {}') + expect(transformPlugin.transform.call({ parse }, plugin, 'my-plugin.mjs').code).toBe('export default () => {}') } }) @@ -53,7 +54,7 @@ describe('plugin-metadata', () => { setup: () => {}, }, { order: 10, name: test }) ` - expect(transformPlugin.transform(plugin, 'my-plugin.mjs').code).toMatchInlineSnapshot(` + expect(transformPlugin.transform.call({ parse }, plugin, 'my-plugin.mjs').code).toMatchInlineSnapshot(` " export default defineNuxtPlugin({ setup: () => {}, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5a771e3c48..bf8f921615 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -340,9 +340,6 @@ importers: '@types/node': specifier: ^14.18.0 || >=16.10.0 version: 18.16.18 - '@typescript-eslint/typescript-estree': - specifier: ^5.60.0 - version: 5.60.0(typescript@5.0.4) '@unhead/ssr': specifier: ^1.1.27 version: 1.1.27 @@ -352,6 +349,9 @@ importers: '@vue/shared': specifier: ^3.3.4 version: 3.3.4 + acorn: + specifier: 8.9.0 + version: 8.9.0 c12: specifier: ^1.4.2 version: 1.4.2 @@ -370,6 +370,9 @@ importers: devalue: specifier: ^4.3.2 version: 4.3.2 + esbuild: + specifier: ^0.18.6 + version: 0.18.6 escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -491,9 +494,6 @@ importers: '@vitejs/plugin-vue': specifier: 4.2.3 version: 4.2.3(vite@4.3.9)(vue@3.3.4) - acorn: - specifier: 8.9.0 - version: 8.9.0 unbuild: specifier: latest version: 1.2.1 @@ -2610,11 +2610,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@5.60.0: - resolution: {integrity: sha512-ascOuoCpNZBccFVNJRSC6rPq4EmJ2NkuoKnd6LDNyAQmdDnziAtxbCGWCbefG1CNzmDvd05zO36AmB7H8RzKPA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - /@typescript-eslint/typescript-estree@5.59.9(typescript@5.0.4): resolution: {integrity: sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2636,27 +2631,6 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@5.60.0(typescript@5.0.4): - resolution: {integrity: sha512-R43thAuwarC99SnvrBmh26tc7F6sPa2B3evkXp/8q954kYL6Ro56AwASYWtEEi+4j09GbiNAHqYwNNZuNlARGQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.60.0 - '@typescript-eslint/visitor-keys': 5.60.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.3 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - dev: false - /@typescript-eslint/utils@5.59.9(eslint@8.43.0)(typescript@5.0.4): resolution: {integrity: sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2685,14 +2659,6 @@ packages: eslint-visitor-keys: 3.4.1 dev: true - /@typescript-eslint/visitor-keys@5.60.0: - resolution: {integrity: sha512-wm9Uz71SbCyhUKgcaPRauBdTegUyY/ZWl8gLwD/i/ybJqscrrdVSFImpvUz16BLPChIeKBK5Fa9s6KDQjsjyWw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.60.0 - eslint-visitor-keys: 3.4.1 - dev: false - /@unhead/dom@1.1.27: resolution: {integrity: sha512-sUrzpKIVvFp8TFx1mgp5t0k5ts1+KmgjMgRRuvRTZMBMVeGQRLSuL3uo34iwuFmKxeI6BXT5lVBk5H02c1XdGg==} dependencies: @@ -3285,6 +3251,7 @@ packages: /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} + dev: true /array.prototype.flat@1.3.1: resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} @@ -5341,6 +5308,7 @@ packages: ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 + dev: true /globby@13.2.0: resolution: {integrity: sha512-jWsQfayf13NvqKUIL3Ta+CIqMnvlaIDFveWE/dpOZ9+3AMEJozsxDvKA02zync9UuvOM8rOXzsD5GqKP4OnWPQ==} @@ -7960,6 +7928,7 @@ packages: /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + dev: true /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} @@ -8358,6 +8327,7 @@ packages: /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true /tslib@2.5.3: resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} @@ -8370,6 +8340,7 @@ packages: dependencies: tslib: 1.14.1 typescript: 5.0.4 + dev: true /tunnel@0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} From f806c806844a7372b1686531481d14a6356ea310 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Jun 2023 01:34:03 +0100 Subject: [PATCH 431/912] chore(deps): update ossf/scorecard-action action to v2.2.0 (main) (#21733) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/scorecards.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index b3daed5052..4a5c5c264a 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -36,7 +36,7 @@ jobs: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@80e868c13c90f172d68d1f4501dee99e2479f7af # v2.1.3 + uses: ossf/scorecard-action@08b4669551908b1024bb425080c797723083c031 # v2.2.0 with: results_file: results.sarif results_format: sarif From 5b7f52870c2b9c4fdb6e8f1449f33cd710e2ee6d Mon Sep 17 00:00:00 2001 From: Julien Le Coupanec Date: Sat, 24 Jun 2023 18:33:41 +0200 Subject: [PATCH 432/912] docs: add a link to Docus layer nuxt config file (#21742) --- docs/2.guide/3.going-further/7.layers.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/2.guide/3.going-further/7.layers.md b/docs/2.guide/3.going-further/7.layers.md index fdd6ace147..61d312f729 100644 --- a/docs/2.guide/3.going-further/7.layers.md +++ b/docs/2.guide/3.going-further/7.layers.md @@ -61,6 +61,10 @@ Additionally, certain other files in the layer directory will be auto-scanned an :: +::alert{type="info"} +If you're interested in deepening your understanding about layers, consider examining [a fully fleshed out `nuxt.config.ts` file on the Docus platform](https://github.com/nuxt-themes/docus/blob/main/nuxt.config.ts). +:: + ## Starter Template To get started you can initialize a layer with the [nuxt/starter/layer template](https://github.com/nuxt/starter/tree/layer). This will create a basic structure you can build upon. Execute this command within the terminal to get started: From 88bc32d42ade89bf8bf222f02e4b9ba91e69a7f9 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sun, 25 Jun 2023 17:38:15 +0100 Subject: [PATCH 433/912] fix(nuxt): proxy headers to islands + returned prerender hints (#21740) --- .../nuxt/src/app/components/nuxt-island.ts | 20 +++-- .../nuxt/src/core/runtime/nitro/renderer.ts | 12 +-- test/basic.test.ts | 83 +++++++++++-------- .../components/ServerOnlyComponent.server.vue | 6 ++ 4 files changed, 74 insertions(+), 47 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index e2e8c27bea..53b1d6f062 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -4,6 +4,8 @@ import { hash } from 'ohash' import { appendResponseHeader } from 'h3' import { useHead } from '@unhead/vue' import { randomUUID } from 'uncrypto' +import { withQuery } from 'ufo' + // eslint-disable-next-line import/no-restricted-paths import type { NuxtIslandResponse } from '../../core/runtime/nitro/renderer' import { getFragmentHTML, getSlotProps } from './utils' @@ -40,6 +42,7 @@ export default defineComponent({ const hashId = computed(() => hash([props.name, props.props, props.context])) const instance = getCurrentInstance()! const event = useRequestEvent() + const eventFetch = process.server ? event.fetch : globalThis.fetch const mounted = ref(false) onMounted(() => { mounted.value = true }) @@ -78,13 +81,18 @@ export default defineComponent({ appendResponseHeader(event, 'x-nitro-prerender', url) } // TODO: Validate response - const result = await $fetch(url, { - responseType: 'json', - params: { - ...props.context, - props: props.props ? JSON.stringify(props.props) : undefined + const r = await eventFetch(withQuery(url, { + ...props.context, + props: props.props ? JSON.stringify(props.props) : undefined + })) + const result = await r.json() as NuxtIslandResponse + // TODO: support passing on more headers + if (process.server && process.env.prerender) { + const hints = r.headers.get('x-nitro-prerender') + if (hints) { + appendResponseHeader(event, 'x-nitro-prerender', hints) } - }) + } nuxtApp.payload.data[key] = { __nuxt_island: { key, diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index ef50b5882f..5e694af843 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -367,7 +367,7 @@ export default defineRenderHandler(async (event): Promise | string[]) { } function renderPayloadResponse (ssrContext: NuxtSSRContext) { - return { + return { body: process.env.NUXT_JSON_PAYLOADS ? stringify(splitPayload(ssrContext).payload, ssrContext._payloadReducers) : `export default ${devalue(splitPayload(ssrContext).payload)}`, @@ -466,7 +466,7 @@ function renderPayloadResponse (ssrContext: NuxtSSRContext) { 'content-type': process.env.NUXT_JSON_PAYLOADS ? 'application/json;charset=utf-8' : 'text/javascript;charset=utf-8', 'x-powered-by': 'Nuxt' } - } + } satisfies RenderResponse } function renderPayloadJsonScript (opts: { id: string, ssrContext: NuxtSSRContext, data?: any, src?: string }) { diff --git a/test/basic.test.ts b/test/basic.test.ts index 4243f0d63f..73a8292ba9 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1,9 +1,10 @@ +import { readdir } from 'node:fs/promises' import { fileURLToPath } from 'node:url' import { describe, expect, it } from 'vitest' import { joinURL, withQuery } from 'ufo' import { isCI, isWindows } from 'std-env' -import { normalize } from 'pathe' -import { $fetch, createPage, fetch, isDev, setup, startServer, url } from '@nuxt/test-utils' +import { join, normalize } from 'pathe' +import { $fetch, createPage, fetch, isDev, setup, startServer, url, useTestContext } from '@nuxt/test-utils' import { $fetchComponent } from '@nuxt/test-utils/experimental' import type { NuxtIslandResponse } from '../packages/nuxt/src/core/runtime/nitro/renderer' @@ -418,39 +419,6 @@ describe('pages', () => { await page.close() }) - it('/islands', async () => { - const page = await createPage('/islands') - await page.waitForLoadState('networkidle') - await page.locator('#increase-pure-component').click() - await page.waitForResponse(response => response.url().includes('/__nuxt_island/') && response.status() === 200) - await page.waitForLoadState('networkidle') - expect(await page.locator('#slot-in-server').first().innerHTML()).toContain('Slot with in .server component') - expect(await page.locator('#test-slot').first().innerHTML()).toContain('Slot with name test') - - // test fallback slot with v-for - expect(await page.locator('.fallback-slot-content').all()).toHaveLength(2) - // test islands update - expect(await page.locator('.box').innerHTML()).toContain('"number": 101,') - await page.locator('#update-server-components').click() - await Promise.all([ - page.waitForResponse(response => response.url().includes('/__nuxt_island/LongAsyncComponent') && response.status() === 200), - page.waitForResponse(response => response.url().includes('/__nuxt_island/AsyncServerComponent') && response.status() === 200) - ]) - await page.waitForLoadState('networkidle') - expect(await page.locator('#async-server-component-count').innerHTML()).toContain(('1')) - expect(await page.locator('#long-async-component-count').innerHTML()).toContain('1') - - // test islands slots interactivity - await page.locator('#first-sugar-counter button').click() - expect(await page.locator('#first-sugar-counter').innerHTML()).toContain('Sugar Counter 13') - - // test islands mounted client side with slot - await page.locator('#show-island').click() - expect(await page.locator('#island-mounted-client-side').innerHTML()).toContain('Interactive testing slot post SSR') - - await page.close() - }) - it('/legacy-async-data-fail', async () => { const response = await fetch('/legacy-async-data-fail').then(r => r.text()) expect(response).not.toContain('don\'t look at this') @@ -1246,6 +1214,51 @@ describe.skipIf(isDev() || isWebpack)('inlining component styles', () => { }) }) +describe('server components/islands', () => { + it('/islands', async () => { + const page = await createPage('/islands') + await page.waitForLoadState('networkidle') + await page.locator('#increase-pure-component').click() + await page.waitForResponse(response => response.url().includes('/__nuxt_island/') && response.status() === 200) + await page.waitForLoadState('networkidle') + expect(await page.locator('#slot-in-server').first().innerHTML()).toContain('Slot with in .server component') + expect(await page.locator('#test-slot').first().innerHTML()).toContain('Slot with name test') + + // test fallback slot with v-for + expect(await page.locator('.fallback-slot-content').all()).toHaveLength(2) + // test islands update + expect(await page.locator('.box').innerHTML()).toContain('"number": 101,') + await page.locator('#update-server-components').click() + await Promise.all([ + page.waitForResponse(response => response.url().includes('/__nuxt_island/LongAsyncComponent') && response.status() === 200), + page.waitForResponse(response => response.url().includes('/__nuxt_island/AsyncServerComponent') && response.status() === 200) + ]) + await page.waitForLoadState('networkidle') + expect(await page.locator('#async-server-component-count').innerHTML()).toContain(('1')) + expect(await page.locator('#long-async-component-count').innerHTML()).toContain('1') + + // test islands slots interactivity + await page.locator('#first-sugar-counter button').click() + expect(await page.locator('#first-sugar-counter').innerHTML()).toContain('Sugar Counter 13') + + // test islands mounted client side with slot + await page.locator('#show-island').click() + expect(await page.locator('#island-mounted-client-side').innerHTML()).toContain('Interactive testing slot post SSR') + + await page.close() + }) + + it.skipIf(isDev)('should allow server-only components to set prerender hints', async () => { + // @ts-expect-error ssssh! untyped secret property + const publicDir = useTestContext().nuxt._nitro.options.output.publicDir + expect(await readdir(join(publicDir, 'some', 'url', 'from', 'server-only', 'component')).catch(() => [])).toContain( + isRenderingJson + ? '_payload.json' + : '_payload.js' + ) + }) +}) + describe.skipIf(isDev() || isWindows || !isRenderingJson)('prefetching', () => { it('should prefetch components', async () => { await expectNoClientErrors('/prefetch/components') diff --git a/test/fixtures/basic/components/ServerOnlyComponent.server.vue b/test/fixtures/basic/components/ServerOnlyComponent.server.vue index e35fc7cb60..fc3dc80e47 100644 --- a/test/fixtures/basic/components/ServerOnlyComponent.server.vue +++ b/test/fixtures/basic/components/ServerOnlyComponent.server.vue @@ -4,6 +4,12 @@
+ + From 54a0d5e8dc2184f995169e6b4c5adaba9cffaa6c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 20:25:37 +0100 Subject: [PATCH 451/912] v3.6.1 --- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index ad70a99e9d..45db7ce973 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.6.0", + "version": "3.6.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index fcfcc5d027..aab253f7f4 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -1,6 +1,6 @@ { "name": "nuxi", - "version": "3.6.0", + "version": "3.6.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 5686f4f742..1f43d405ac 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.6.0", + "version": "3.6.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/schema/package.json b/packages/schema/package.json index 10a7fc2d2d..22bd209cc6 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.6.0", + "version": "3.6.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 437c50b4b5..1f55a4b0d7 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.6.0", + "version": "3.6.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/vite/package.json b/packages/vite/package.json index 4ad4de1512..3cc1d97a4c 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.6.0", + "version": "3.6.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 6ae6d76bd8..03ff1238c5 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.6.0", + "version": "3.6.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", From 9c8746f2a68632ea918b1f5577cd3e487a95af41 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 27 Jun 2023 10:38:40 +0100 Subject: [PATCH 452/912] chore: prune internal unused code and exports (#21809) --- knip.json | 37 +++++++++++++++++++ package.json | 2 +- packages/kit/src/internal/cjs.ts | 28 ++------------ packages/nuxi/src/utils/cjs.ts | 4 +- packages/nuxi/src/utils/esm.ts | 6 --- packages/nuxi/src/utils/fs.ts | 10 ----- packages/nuxi/src/utils/nuxt.ts | 4 +- .../nuxt/src/app/components/nuxt-island.ts | 8 +--- packages/nuxt/src/app/components/utils.ts | 2 +- packages/nuxt/src/components/templates.ts | 4 +- packages/nuxt/src/core/app.ts | 2 +- packages/nuxt/src/core/modules.ts | 2 +- packages/nuxt/src/core/templates.ts | 2 +- packages/nuxt/src/core/utils/names.ts | 6 +-- packages/nuxt/src/dirs.ts | 1 - packages/schema/package.json | 4 +- packages/test-utils/src/dirs.ts | 3 +- packages/vite/src/dev-bundler.ts | 8 ++-- packages/vite/src/dirs.ts | 3 +- packages/vite/src/plugins/composable-keys.ts | 2 +- packages/vite/src/plugins/dev-ssr-css.ts | 2 +- packages/vite/src/plugins/paths.ts | 2 +- packages/vite/src/plugins/pure-annotations.ts | 2 +- packages/vite/src/utils/index.ts | 29 --------------- packages/vite/src/utils/logger.ts | 2 +- packages/webpack/src/plugins/vue/server.ts | 2 +- packages/webpack/src/presets/base.ts | 2 +- packages/webpack/src/utils/postcss.ts | 2 +- pnpm-lock.yaml | 30 +++------------ test/fixtures/basic-types/package.json | 1 - test/fixtures/basic/package.json | 5 +-- vitest.config.ts | 2 +- 32 files changed, 79 insertions(+), 140 deletions(-) create mode 100644 knip.json diff --git a/knip.json b/knip.json new file mode 100644 index 0000000000..96a59fca9f --- /dev/null +++ b/knip.json @@ -0,0 +1,37 @@ +{ + "$schema": "https://unpkg.com/knip@2/schema.json", + "workspaces": { + ".": { + "entry": [ + "scripts/*" + ] + }, + "packages/*": { + "entry": [ + "src/index.ts", + "src/runtime/**/*.ts" + ] + }, + "packages/test-utils": { + "entry": [ + "src/experimental.ts", + "src/index.ts" + ] + }, + "packages/nuxi": { + "entry": [ + "src/index.ts", + "src/commands/*.ts" + ] + }, + "packages/nuxt": { + "entry": [ + "src/app/**/*.ts", + "src/app/*.ts", + "src/*/runtime/**/*.ts", + "src/core/templates.ts", + "src/index.ts" + ] + } + } +} diff --git a/package.json b/package.json index 87ecf8b3a7..d80a40284b 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "lint:fix": "eslint --ext .vue,.ts,.js,.mjs . --fix", "lint:docs": "markdownlint ./docs && case-police 'docs/**/*.md'", "lint:docs:fix": "markdownlint ./docs --fix && case-police 'docs/**/*.md' --fix", + "lint:knip": "pnpx knip", "play": "nuxi dev playground", "play:build": "nuxi build playground", "play:preview": "nuxi preview playground", @@ -51,7 +52,6 @@ "consola": "3.1.0", "devalue": "4.3.2", "eslint": "8.43.0", - "eslint-import-resolver-typescript": "3.5.5", "eslint-plugin-import": "2.27.5", "eslint-plugin-jsdoc": "41.1.2", "eslint-plugin-no-only-tests": "3.1.0", diff --git a/packages/kit/src/internal/cjs.ts b/packages/kit/src/internal/cjs.ts index 1439fdb6d4..fe57f95308 100644 --- a/packages/kit/src/internal/cjs.ts +++ b/packages/kit/src/internal/cjs.ts @@ -23,13 +23,13 @@ export interface RequireModuleOptions extends ResolveModuleOptions { } /** @deprecated Do not use CJS utils */ -export function isNodeModules (id: string) { +function isNodeModules (id: string) { // TODO: Follow symlinks return /[/\\]node_modules[/\\]/.test(id) } /** @deprecated Do not use CJS utils */ -export function clearRequireCache (id: string) { +function clearRequireCache (id: string) { if (isNodeModules(id)) { return } @@ -53,29 +53,7 @@ export function clearRequireCache (id: string) { } /** @deprecated Do not use CJS utils */ -export function scanRequireTree (id: string, files = new Set()) { - if (isNodeModules(id) || files.has(id)) { - return files - } - - const entry = getRequireCacheItem(id) - - if (!entry) { - files.add(id) - return files - } - - files.add(entry.id) - - for (const child of entry.children) { - scanRequireTree(child.id, files) - } - - return files -} - -/** @deprecated Do not use CJS utils */ -export function getRequireCacheItem (id: string) { +function getRequireCacheItem (id: string) { try { return _require.cache[id] } catch (e) { diff --git a/packages/nuxi/src/utils/cjs.ts b/packages/nuxi/src/utils/cjs.ts index 9f8a049846..a8fefc11df 100644 --- a/packages/nuxi/src/utils/cjs.ts +++ b/packages/nuxi/src/utils/cjs.ts @@ -14,11 +14,11 @@ export function getModulePaths (paths?: string | string[]): string[] { const _require = createRequire(process.cwd()) -export function resolveModule (id: string, paths?: string | string[]) { +function resolveModule (id: string, paths?: string | string[]) { return normalize(_require.resolve(id, { paths: getModulePaths(paths) })) } -export function requireModule (id: string, paths?: string | string[]) { +function requireModule (id: string, paths?: string | string[]) { return _require(resolveModule(id, paths)) } diff --git a/packages/nuxi/src/utils/esm.ts b/packages/nuxi/src/utils/esm.ts index 4effb0b19b..a03ed1a057 100644 --- a/packages/nuxi/src/utils/esm.ts +++ b/packages/nuxi/src/utils/esm.ts @@ -11,9 +11,3 @@ export async function importModule (id: string, url = import.meta.url) { const resolvedPath = await resolvePath(id, { url }) return import(pathToFileURL(resolvedPath).href).then(interopDefault) } - -export function tryImportModule (id: string, url = import.meta.url) { - try { - return importModule(id, url).catch(() => undefined) - } catch { } -} diff --git a/packages/nuxi/src/utils/fs.ts b/packages/nuxi/src/utils/fs.ts index 7f8640eb4f..4ca49ff4a8 100644 --- a/packages/nuxi/src/utils/fs.ts +++ b/packages/nuxi/src/utils/fs.ts @@ -2,16 +2,6 @@ import { existsSync, promises as fsp } from 'node:fs' import { dirname, join } from 'pathe' import { consola } from 'consola' -// Check if a file exists -export async function exists (path: string) { - try { - await fsp.access(path) - return true - } catch { - return false - } -} - export async function clearDir (path: string, exclude?: string[]) { if (!exclude) { await fsp.rm(path, { recursive: true, force: true }) diff --git a/packages/nuxi/src/utils/nuxt.ts b/packages/nuxi/src/utils/nuxt.ts index 241acd8e61..e990bcec86 100644 --- a/packages/nuxi/src/utils/nuxt.ts +++ b/packages/nuxi/src/utils/nuxt.ts @@ -5,7 +5,7 @@ import { hash } from 'ohash' import type { Nuxt } from '@nuxt/schema' import { rmRecursive } from './fs' -export interface NuxtProjectManifest { +interface NuxtProjectManifest { _hash: string | null project: { rootDir: string @@ -37,7 +37,7 @@ export function nuxtVersionToGitIdentifier (version: string) { return `v${version}` } -export function resolveNuxtManifest (nuxt: Nuxt): NuxtProjectManifest { +function resolveNuxtManifest (nuxt: Nuxt): NuxtProjectManifest { const manifest: NuxtProjectManifest = { _hash: null, project: { diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index 53b1d6f062..6e97aea954 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -47,10 +47,9 @@ export default defineComponent({ onMounted(() => { mounted.value = true }) const ssrHTML = ref(process.client ? getFragmentHTML(instance.vnode?.el ?? null).join('') ?? '
' : '
') + const slotProps = computed(() => getSlotProps(ssrHTML.value)) const uid = ref(ssrHTML.value.match(SSR_UID_RE)?.[1] ?? randomUUID()) - const availableSlots = computed(() => { - return [...ssrHTML.value.matchAll(SLOTNAME_RE)].map(m => m[1]) - }) + const availableSlots = computed(() => [...ssrHTML.value.matchAll(SLOTNAME_RE)].map(m => m[1])) const html = computed(() => { const currentSlots = Object.keys(slots) @@ -67,9 +66,6 @@ export default defineComponent({ } const cHead = ref>>>({ link: [], style: [] }) useHead(cHead) - const slotProps = computed(() => { - return getSlotProps(ssrHTML.value) - }) async function _fetchComponent () { const key = `${props.name}_${hashId.value}` diff --git a/packages/nuxt/src/app/components/utils.ts b/packages/nuxt/src/app/components/utils.ts index 386a81f0c9..d74da69896 100644 --- a/packages/nuxt/src/app/components/utils.ts +++ b/packages/nuxt/src/app/components/utils.ts @@ -133,7 +133,7 @@ const SLOT_PROPS_RE = /]*nuxt-ssr-slot-name="([^"]*)" nuxt-ssr-slot-data= export function getSlotProps (html: string) { const slotsDivs = html.matchAll(SLOT_PROPS_RE) - const data:Record = {} + const data: Record = {} for (const slot of slotsDivs) { const [_, slotName, json] = slot const slotData = destr(decodeHtmlEntities(json)) diff --git a/packages/nuxt/src/components/templates.ts b/packages/nuxt/src/components/templates.ts index 0c1a281a1b..ce9f8ee088 100644 --- a/packages/nuxt/src/components/templates.ts +++ b/packages/nuxt/src/components/templates.ts @@ -2,7 +2,7 @@ import { isAbsolute, relative } from 'pathe' import { genDynamicImport } from 'knitwork' import type { Component, Nuxt, NuxtApp, NuxtPluginTemplate, NuxtTemplate } from 'nuxt/schema' -export interface ComponentsTemplateContext { +interface ComponentsTemplateContext { app: NuxtApp nuxt: Nuxt options: { @@ -11,7 +11,7 @@ export interface ComponentsTemplateContext { } } -export type ImportMagicCommentsOptions = { +type ImportMagicCommentsOptions = { chunkName: string prefetch?: boolean | number preload?: boolean | number diff --git a/packages/nuxt/src/core/app.ts b/packages/nuxt/src/core/app.ts index 2adb82e3bd..dd030ed4a1 100644 --- a/packages/nuxt/src/core/app.ts +++ b/packages/nuxt/src/core/app.ts @@ -58,7 +58,7 @@ export async function generateApp (nuxt: Nuxt, app: NuxtApp, options: { filter?: await nuxt.callHook('app:templatesGenerated', app) } -export async function resolveApp (nuxt: Nuxt, app: NuxtApp) { +async function resolveApp (nuxt: Nuxt, app: NuxtApp) { // Resolve main (app.vue) if (!app.mainComponent) { app.mainComponent = await findPath( diff --git a/packages/nuxt/src/core/modules.ts b/packages/nuxt/src/core/modules.ts index 928e58edc6..401aa9c41d 100644 --- a/packages/nuxt/src/core/modules.ts +++ b/packages/nuxt/src/core/modules.ts @@ -1,6 +1,6 @@ import { normalizeModuleTranspilePath, useNuxt } from '@nuxt/kit' -export interface AddModuleTranspilesOptions { +interface AddModuleTranspilesOptions { additionalModules?: string[] } diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index 315dbc69a1..f3c67bcc96 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -10,7 +10,7 @@ import { filename } from 'pathe/utils' import type { Nuxt, NuxtApp, NuxtTemplate } from 'nuxt/schema' import { annotatePlugins } from './app' -export interface TemplateContext { +interface TemplateContext { nuxt: Nuxt app: NuxtApp } diff --git a/packages/nuxt/src/core/utils/names.ts b/packages/nuxt/src/core/utils/names.ts index 4684e21353..82707511d3 100644 --- a/packages/nuxt/src/core/utils/names.ts +++ b/packages/nuxt/src/core/utils/names.ts @@ -1,5 +1,5 @@ import { basename, extname } from 'pathe' -import { kebabCase, pascalCase } from 'scule' +import { kebabCase } from 'scule' export function getNameFromPath (path: string) { return kebabCase(basename(path).replace(extname(path), '')).replace(/["']/g, '') @@ -8,7 +8,3 @@ export function getNameFromPath (path: string) { export function hasSuffix (path: string, suffix: string) { return basename(path).replace(extname(path), '').endsWith(suffix) } - -export function getImportName (name: string) { - return pascalCase(name).replace(/[^\w]/g, r => '_' + r.charCodeAt(0)) -} diff --git a/packages/nuxt/src/dirs.ts b/packages/nuxt/src/dirs.ts index cb9467c50f..84ad5cc8cd 100644 --- a/packages/nuxt/src/dirs.ts +++ b/packages/nuxt/src/dirs.ts @@ -5,4 +5,3 @@ let _distDir = dirname(fileURLToPath(import.meta.url)) if (_distDir.match(/(chunks|shared)$/)) { _distDir = dirname(_distDir) } export const distDir = _distDir export const pkgDir = resolve(distDir, '..') -export const runtimeDir = resolve(distDir, 'runtime') diff --git a/packages/schema/package.json b/packages/schema/package.json index 22bd209cc6..48fcb318bc 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -33,6 +33,7 @@ "@unhead/schema": "1.1.28", "@vitejs/plugin-vue": "4.2.3", "@vitejs/plugin-vue-jsx": "3.0.1", + "@vue/compiler-core": "^3.3.4", "esbuild-loader": "3.0.1", "h3": "1.7.0", "ignore": "5.2.4", @@ -44,7 +45,8 @@ "vue-bundle-renderer": "1.0.3", "vue-loader": "17.2.2", "vue-router": "4.2.2", - "webpack": "5.88.0" + "webpack": "5.88.0", + "webpack-dev-middleware": "^6.1.1" }, "dependencies": { "defu": "^6.1.2", diff --git a/packages/test-utils/src/dirs.ts b/packages/test-utils/src/dirs.ts index 6eacc10603..0b49bbfc3b 100644 --- a/packages/test-utils/src/dirs.ts +++ b/packages/test-utils/src/dirs.ts @@ -1,5 +1,4 @@ import { fileURLToPath } from 'node:url' -import { dirname, resolve } from 'pathe' +import { dirname } from 'pathe' export const distDir = dirname(fileURLToPath(import.meta.url)) -export const pkgDir = resolve(distDir, '..') diff --git a/packages/vite/src/dev-bundler.ts b/packages/vite/src/dev-bundler.ts index 9b4dddcb29..7af7ddf93d 100644 --- a/packages/vite/src/dev-bundler.ts +++ b/packages/vite/src/dev-bundler.ts @@ -13,21 +13,21 @@ import { createIsExternal } from './utils/external' import { writeManifest } from './manifest' import type { ViteBuildContext } from './vite' -export interface TransformChunk { +interface TransformChunk { id: string, code: string, deps: string[], parents: string[] } -export interface SSRTransformResult { +interface SSRTransformResult { code: string, map: object, deps: string[] dynamicDeps: string[] } -export interface TransformOptions { +interface TransformOptions { viteServer: vite.ViteDevServer isExternal(id: string): ReturnType } @@ -109,7 +109,7 @@ async function transformRequestRecursive (opts: TransformOptions, id: string, pa return Object.values(chunks) } -export async function bundleRequest (opts: TransformOptions, entryURL: string) { +async function bundleRequest (opts: TransformOptions, entryURL: string) { const chunks = (await transformRequestRecursive(opts, entryURL))! const listIds = (ids: string[]) => ids.map(id => `// - ${id} (${hashId(id)})`).join('\n') diff --git a/packages/vite/src/dirs.ts b/packages/vite/src/dirs.ts index 84ad5cc8cd..42822ce04f 100644 --- a/packages/vite/src/dirs.ts +++ b/packages/vite/src/dirs.ts @@ -1,7 +1,6 @@ import { fileURLToPath } from 'node:url' -import { dirname, resolve } from 'pathe' +import { dirname } from 'pathe' let _distDir = dirname(fileURLToPath(import.meta.url)) if (_distDir.match(/(chunks|shared)$/)) { _distDir = dirname(_distDir) } export const distDir = _distDir -export const pkgDir = resolve(distDir, '..') diff --git a/packages/vite/src/plugins/composable-keys.ts b/packages/vite/src/plugins/composable-keys.ts index ac2f112daa..86df9a2659 100644 --- a/packages/vite/src/plugins/composable-keys.ts +++ b/packages/vite/src/plugins/composable-keys.ts @@ -11,7 +11,7 @@ import escapeRE from 'escape-string-regexp' import { findStaticImports, parseStaticImport } from 'mlly' import { matchWithStringOrRegex } from '../utils' -export interface ComposableKeysOptions { +interface ComposableKeysOptions { sourcemap: boolean rootDir: string composables: Array<{ name: string, source?: string | RegExp, argumentLength: number }> diff --git a/packages/vite/src/plugins/dev-ssr-css.ts b/packages/vite/src/plugins/dev-ssr-css.ts index ff64c14824..381243d4ba 100644 --- a/packages/vite/src/plugins/dev-ssr-css.ts +++ b/packages/vite/src/plugins/dev-ssr-css.ts @@ -2,7 +2,7 @@ import { joinURL } from 'ufo' import type { Plugin } from 'vite' import { isCSS } from '../utils' -export interface DevStyleSSRPluginOptions { +interface DevStyleSSRPluginOptions { srcDir: string buildAssetsURL: string } diff --git a/packages/vite/src/plugins/paths.ts b/packages/vite/src/plugins/paths.ts index 703868a74a..423d6b80ee 100644 --- a/packages/vite/src/plugins/paths.ts +++ b/packages/vite/src/plugins/paths.ts @@ -4,7 +4,7 @@ import { parseQuery, parseURL } from 'ufo' import type { Plugin } from 'vite' import { isCSS } from '../utils' -export interface RuntimePathsOptions { +interface RuntimePathsOptions { sourcemap?: boolean } diff --git a/packages/vite/src/plugins/pure-annotations.ts b/packages/vite/src/plugins/pure-annotations.ts index 6f79b7ffbd..9154f54863 100644 --- a/packages/vite/src/plugins/pure-annotations.ts +++ b/packages/vite/src/plugins/pure-annotations.ts @@ -3,7 +3,7 @@ import { createUnplugin } from 'unplugin' import { stripLiteral } from 'strip-literal' import { isJS, isVue } from '../../../nuxt/src/core/utils/plugins' -export interface PureAnnotationsOptions { +interface PureAnnotationsOptions { sourcemap: boolean functions: string[] } diff --git a/packages/vite/src/utils/index.ts b/packages/vite/src/utils/index.ts index 6039415e4f..09ee65a1c8 100644 --- a/packages/vite/src/utils/index.ts +++ b/packages/vite/src/utils/index.ts @@ -1,25 +1,12 @@ -import { promises as fsp, readdirSync, statSync } from 'node:fs' import { hash } from 'ohash' -import { join } from 'pathe' export function uniq (arr: T[]): T[] { return Array.from(new Set(arr)) } // Copied from vue-bundle-renderer utils -const IS_JS_RE = /\.[cm]?js(\?[^.]+)?$/ -const IS_MODULE_RE = /\.mjs(\?[^.]+)?$/ -const HAS_EXT_RE = /[^./]+\.[^./]+$/ const IS_CSS_RE = /\.(?:css|scss|sass|postcss|less|stylus|styl)(\?[^.]+)?$/ -export function isJS (file: string) { - return IS_JS_RE.test(file) || !HAS_EXT_RE.test(file) -} - -export function isModule (file: string) { - return IS_MODULE_RE.test(file) || !HAS_EXT_RE.test(file) -} - export function isCSS (file: string) { return IS_CSS_RE.test(file) } @@ -28,22 +15,6 @@ export function hashId (id: string) { return '$id_' + hash(id) } -export function readDirRecursively (dir: string): string[] { - return readdirSync(dir).reduce((files, file) => { - const name = join(dir, file) - const isDirectory = statSync(name).isDirectory() - return isDirectory ? [...files, ...readDirRecursively(name)] : [...files, name] - }, [] as string[]) -} - -export async function isDirectory (path: string) { - try { - return (await fsp.stat(path)).isDirectory() - } catch (_err) { - return false - } -} - export function matchWithStringOrRegex (value: string, matcher: string | RegExp) { if (typeof matcher === 'string') { return value === matcher diff --git a/packages/vite/src/utils/logger.ts b/packages/vite/src/utils/logger.ts index 600e4ce163..5dc424de06 100644 --- a/packages/vite/src/utils/logger.ts +++ b/packages/vite/src/utils/logger.ts @@ -14,7 +14,7 @@ export const logLevelMap: Record, number> = { +const logLevelMapReverse: Record, number> = { silent: 0, error: 1, warn: 2, diff --git a/packages/webpack/src/plugins/vue/server.ts b/packages/webpack/src/plugins/vue/server.ts index ad6619a759..be68768b02 100644 --- a/packages/webpack/src/plugins/vue/server.ts +++ b/packages/webpack/src/plugins/vue/server.ts @@ -2,7 +2,7 @@ import type { Compilation, Compiler } from 'webpack' import webpack from 'webpack' import { extractQueryPartJS, isJS, validate } from './util' -export interface VueSSRServerPluginOptions { +interface VueSSRServerPluginOptions { filename: string } diff --git a/packages/webpack/src/presets/base.ts b/packages/webpack/src/presets/base.ts index d0017cd373..fbed6214e4 100644 --- a/packages/webpack/src/presets/base.ts +++ b/packages/webpack/src/presets/base.ts @@ -155,7 +155,7 @@ function baseResolve (ctx: WebpackConfigContext) { } } -export function baseTranspile (ctx: WebpackConfigContext) { +function baseTranspile (ctx: WebpackConfigContext) { const { options } = ctx const transpile = [ diff --git a/packages/webpack/src/utils/postcss.ts b/packages/webpack/src/utils/postcss.ts index 149e54bf68..c11f32ff5d 100644 --- a/packages/webpack/src/utils/postcss.ts +++ b/packages/webpack/src/utils/postcss.ts @@ -5,7 +5,7 @@ import type { Nuxt } from '@nuxt/schema' const isPureObject = (obj: unknown): obj is Object => obj !== null && !Array.isArray(obj) && typeof obj === 'object' -export const orderPresets = { +const orderPresets = { cssnanoLast (names: string[]) { const nanoIndex = names.indexOf('cssnano') if (nanoIndex !== names.length - 1) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 87bfa412d6..df6bc37e92 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,9 +59,6 @@ importers: eslint: specifier: 8.43.0 version: 8.43.0 - eslint-import-resolver-typescript: - specifier: 3.5.5 - version: 3.5.5(@typescript-eslint/parser@5.59.9)(eslint-plugin-import@2.27.5)(eslint@8.43.0) eslint-plugin-import: specifier: 2.27.5 version: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.43.0) @@ -555,6 +552,9 @@ importers: '@vitejs/plugin-vue-jsx': specifier: 3.0.1 version: 3.0.1(vite@4.3.9)(vue@3.3.4) + '@vue/compiler-core': + specifier: ^3.3.4 + version: 3.3.4 esbuild-loader: specifier: 3.0.1 version: 3.0.1(webpack@5.88.0) @@ -591,6 +591,9 @@ importers: webpack: specifier: 5.88.0 version: 5.88.0 + webpack-dev-middleware: + specifier: ^6.1.1 + version: 6.1.1(webpack@5.88.0) packages/test-utils: dependencies: @@ -928,21 +931,12 @@ importers: specifier: workspace:* version: link:../../../packages/nuxt devDependencies: - ofetch: - specifier: latest - version: 1.1.1 ufo: specifier: latest version: 1.1.2 unplugin: specifier: latest version: 1.3.1 - vitest: - specifier: latest - version: 0.32.2(playwright@1.35.1) - vue-router: - specifier: latest - version: 4.2.2(vue@3.3.4) test/fixtures/basic-types: dependencies: @@ -953,9 +947,6 @@ importers: ofetch: specifier: latest version: 1.1.1 - unplugin: - specifier: latest - version: 1.3.1 vitest: specifier: latest version: 0.32.2(playwright@1.35.1) @@ -3082,7 +3073,6 @@ packages: optional: true dependencies: ajv: 8.12.0 - dev: false /ajv-keywords@3.5.2(ajv@6.12.6): resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} @@ -3098,7 +3088,6 @@ packages: dependencies: ajv: 8.12.0 fast-deep-equal: 3.1.3 - dev: false /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -3115,7 +3104,6 @@ packages: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - dev: false /ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} @@ -5103,7 +5091,6 @@ packages: /fs-monkey@1.0.4: resolution: {integrity: sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==} - dev: false /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -6008,7 +5995,6 @@ packages: /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: false /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -6288,7 +6274,6 @@ packages: engines: {node: '>= 4.0.0'} dependencies: fs-monkey: 1.0.4 - dev: false /memory-fs@0.5.0: resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} @@ -7651,7 +7636,6 @@ packages: /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - dev: false /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} @@ -7814,7 +7798,6 @@ packages: ajv: 8.12.0 ajv-formats: 2.1.1(ajv@8.12.0) ajv-keywords: 5.1.0(ajv@8.12.0) - dev: false /scule@1.0.0: resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} @@ -9011,7 +8994,6 @@ packages: range-parser: 1.2.1 schema-utils: 4.0.1 webpack: 5.88.0 - dev: false /webpack-hot-middleware@2.25.4: resolution: {integrity: sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w==} diff --git a/test/fixtures/basic-types/package.json b/test/fixtures/basic-types/package.json index 7a9625eae1..fd3624160c 100644 --- a/test/fixtures/basic-types/package.json +++ b/test/fixtures/basic-types/package.json @@ -10,7 +10,6 @@ }, "devDependencies": { "ofetch": "latest", - "unplugin": "latest", "vitest": "latest", "vue-router": "latest" } diff --git a/test/fixtures/basic/package.json b/test/fixtures/basic/package.json index 652127fa54..9c24c1442a 100644 --- a/test/fixtures/basic/package.json +++ b/test/fixtures/basic/package.json @@ -9,10 +9,7 @@ "nuxt": "workspace:*" }, "devDependencies": { - "ofetch": "latest", "ufo": "latest", - "unplugin": "latest", - "vitest": "latest", - "vue-router": "latest" + "unplugin": "latest" } } diff --git a/vitest.config.ts b/vitest.config.ts index 4576fbcdf6..db0155cb7f 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -12,7 +12,7 @@ export default defineConfig({ } }, test: { - globalSetup: 'test/setup.ts', + globalSetup: './test/setup.ts', testTimeout: isWindows ? 60000 : 10000, // Excluded plugin because it should throw an error when accidentally loaded via Nuxt exclude: [...configDefaults.exclude, '**/test.ts', '**/this-should-not-load.spec.js'], From d7267663f24729d2fd5b45963ce4a4a916111c7c Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 27 Jun 2023 11:10:44 +0100 Subject: [PATCH 453/912] chore: add codeflow overrides configuration --- .stackblitz/codeflow.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .stackblitz/codeflow.json diff --git a/.stackblitz/codeflow.json b/.stackblitz/codeflow.json new file mode 100644 index 0000000000..06a7fa58ac --- /dev/null +++ b/.stackblitz/codeflow.json @@ -0,0 +1,13 @@ +{ + "pnpm": { + "overrides": { + "@nuxt/kit": "./packages/kit", + "@nuxt/schema": "./packages/schema", + "@nuxt/test-utils": "./packages/test-utils", + "@nuxt/vite": "./packages/vite", + "@nuxt/webpack": "./packages/webpack", + "nuxi": "./packages/nuxi", + "nuxt": "./packages/nuxt" + } + } +} From 489b0888363e9a885b7bf7d30a32f05416fbeaae Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 27 Jun 2023 11:15:35 +0100 Subject: [PATCH 454/912] fix(nuxt): only redirect if path is not the same as initial url (#21815) --- .../nuxt/src/pages/runtime/plugins/router.ts | 2 +- test/basic.test.ts | 5 +++++ test/fixtures/basic/plugins/add-route.ts | 18 ++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/basic/plugins/add-route.ts diff --git a/packages/nuxt/src/pages/runtime/plugins/router.ts b/packages/nuxt/src/pages/runtime/plugins/router.ts index 8427831bd4..4efeb84616 100644 --- a/packages/nuxt/src/pages/runtime/plugins/router.ts +++ b/packages/nuxt/src/pages/runtime/plugins/router.ts @@ -198,7 +198,7 @@ const plugin: Plugin<{ router: Router }> = defineNuxtPlugin({ fatal: false, statusMessage: `Page not found: ${to.fullPath}` }))) - } else if (process.server && to.redirectedFrom) { + } else if (process.server && to.redirectedFrom && to.fullPath !== initialURL) { await nuxtApp.runWithContext(() => navigateTo(to.fullPath || '/')) } }) diff --git a/test/basic.test.ts b/test/basic.test.ts index cc28628073..60a94954f6 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -117,6 +117,11 @@ describe('pages', () => { expect(headers.get('location')).toEqual('/') }) + it('allows routes to be added dynamically', async () => { + const html = await $fetch('/add-route-test') + expect(html).toContain('Hello Nuxt 3!') + }) + it('includes page metadata from pages added in pages:extend hook', async () => { const res = await fetch('/page-extend') expect(res.headers.get('x-extend')).toEqual('added in pages:extend') diff --git a/test/fixtures/basic/plugins/add-route.ts b/test/fixtures/basic/plugins/add-route.ts new file mode 100644 index 0000000000..cdf5d47c98 --- /dev/null +++ b/test/fixtures/basic/plugins/add-route.ts @@ -0,0 +1,18 @@ +export default defineNuxtPlugin((_nuxtApp) => { + const router = useRouter() + + router.beforeEach((to) => { + if (to.path !== '/add-route-test') { return } + if (router.getRoutes().some(route => route.path === to.path)) { + return + } + + router.addRoute({ + path: to.path, + name: to.path, + component: () => import('~/pages/index.vue') + }) + + return to.path + }) +}) From 70919f3a14fcfbd22d22b6f5cd3b6fb1e9d8bc8b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 27 Jun 2023 11:53:21 +0100 Subject: [PATCH 455/912] chore(deps): update dependency memfs to v4 (main) (#21797) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 70 +++++++++++++++++++++++++++++++++-- 2 files changed, 68 insertions(+), 4 deletions(-) diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 03ff1238c5..2ed268df60 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -35,7 +35,7 @@ "hash-sum": "^2.0.0", "lodash-es": "^4.17.21", "magic-string": "^0.30.0", - "memfs": "^3.5.3", + "memfs": "^4.2.0", "mini-css-extract-plugin": "^2.7.6", "mlly": "^1.4.0", "ohash": "^1.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index df6bc37e92..0b39fdbab4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -816,8 +816,8 @@ importers: specifier: ^0.30.0 version: 0.30.0 memfs: - specifier: ^3.5.3 - version: 3.5.3 + specifier: ^4.2.0 + version: 4.2.0(quill-delta@5.1.0)(rxjs@7.8.0)(tslib@2.5.3) mini-css-extract-plugin: specifier: ^2.7.6 version: 2.7.6(webpack@5.88.0) @@ -3209,6 +3209,10 @@ packages: delegates: 1.0.0 readable-stream: 3.6.2 + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: false + /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -4906,7 +4910,6 @@ packages: /fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - dev: true /fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} @@ -5468,6 +5471,11 @@ packages: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} + /hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + dev: false + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -5987,6 +5995,22 @@ packages: engines: {node: '>=4'} hasBin: true + /json-joy@9.3.0(quill-delta@5.1.0)(rxjs@7.8.0)(tslib@2.5.3): + resolution: {integrity: sha512-ZQiyMcbcfqki5Bsk0kWfne/Ixl4Q6cLBzCd3VE/TSp7jhns/WDBrIMTuyzDfwmLxuFtQdojiLSLX8MxTyK23QA==} + engines: {node: '>=10.0'} + hasBin: true + peerDependencies: + quill-delta: ^5 + rxjs: '7' + tslib: '2' + dependencies: + arg: 5.0.2 + hyperdyperid: 1.2.0 + quill-delta: 5.1.0 + rxjs: 7.8.0 + tslib: 2.5.3 + dev: false + /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -6118,6 +6142,10 @@ packages: /lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + /lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + dev: false + /lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} dev: false @@ -6134,6 +6162,10 @@ packages: /lodash.isarguments@3.1.0: resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false + /lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} @@ -6275,6 +6307,20 @@ packages: dependencies: fs-monkey: 1.0.4 + /memfs@4.2.0(quill-delta@5.1.0)(rxjs@7.8.0)(tslib@2.5.3): + resolution: {integrity: sha512-V5/xE+zl6+soWxlBjiVTQSkfXybTwhEBj2I8sK9LaS5lcZsTuhRftakrcRpDY7Ycac2NTK/VzEtpKMp+gpymrQ==} + engines: {node: '>= 4.0.0'} + peerDependencies: + tslib: '2' + dependencies: + json-joy: 9.3.0(quill-delta@5.1.0)(rxjs@7.8.0)(tslib@2.5.3) + thingies: 1.11.1(tslib@2.5.3) + tslib: 2.5.3 + transitivePeerDependencies: + - quill-delta + - rxjs + dev: false + /memory-fs@0.5.0: resolution: {integrity: sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==} engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} @@ -7518,6 +7564,15 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + /quill-delta@5.1.0: + resolution: {integrity: sha512-X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==} + engines: {node: '>= 12.0.0'} + dependencies: + fast-diff: 1.3.0 + lodash.clonedeep: 4.5.0 + lodash.isequal: 4.5.0 + dev: false + /radix3@1.0.1: resolution: {integrity: sha512-y+AcwZ3HcUIGc9zGsNVf5+BY/LxL+z+4h4J3/pp8jxSmy1STaCocPS3qrj4tA5ehUSzqtqK+0Aygvz/r/8vy4g==} @@ -8224,6 +8279,15 @@ packages: /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + /thingies@1.11.1(tslib@2.5.3): + resolution: {integrity: sha512-SXWTuQA6TFjpfV4xiwPs4FkHashZShR/Hugosrm9sRMm63fAdgZaWKixt5YvuP6VwDaAROcDwf9cFeuw1DeekA==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + dependencies: + tslib: 2.5.3 + dev: false + /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} From e49645bfb9c45b5005b944b0aa4d287b44ee1089 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 27 Jun 2023 11:53:25 +0100 Subject: [PATCH 456/912] chore(deps): pin dependencies (main) (#21814) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/schema/package.json | 4 ++-- pnpm-lock.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/schema/package.json b/packages/schema/package.json index 48fcb318bc..f841bf1cb4 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -33,7 +33,7 @@ "@unhead/schema": "1.1.28", "@vitejs/plugin-vue": "4.2.3", "@vitejs/plugin-vue-jsx": "3.0.1", - "@vue/compiler-core": "^3.3.4", + "@vue/compiler-core": "3.3.4", "esbuild-loader": "3.0.1", "h3": "1.7.0", "ignore": "5.2.4", @@ -46,7 +46,7 @@ "vue-loader": "17.2.2", "vue-router": "4.2.2", "webpack": "5.88.0", - "webpack-dev-middleware": "^6.1.1" + "webpack-dev-middleware": "6.1.1" }, "dependencies": { "defu": "^6.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b39fdbab4..d09c603611 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -553,7 +553,7 @@ importers: specifier: 3.0.1 version: 3.0.1(vite@4.3.9)(vue@3.3.4) '@vue/compiler-core': - specifier: ^3.3.4 + specifier: 3.3.4 version: 3.3.4 esbuild-loader: specifier: 3.0.1 @@ -592,7 +592,7 @@ importers: specifier: 5.88.0 version: 5.88.0 webpack-dev-middleware: - specifier: ^6.1.1 + specifier: 6.1.1 version: 6.1.1(webpack@5.88.0) packages/test-utils: From dc329c32aa55a3085452570692d297a0f64f2656 Mon Sep 17 00:00:00 2001 From: Rayan Inerky <33527845+InerkyJad@users.noreply.github.com> Date: Tue, 27 Jun 2023 11:53:38 +0100 Subject: [PATCH 457/912] docs: add warning about dynamic import of css (#21805) --- docs/1.getting-started/4.styling.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/1.getting-started/4.styling.md b/docs/1.getting-started/4.styling.md index 5e351fd42b..dc44580018 100644 --- a/docs/1.getting-started/4.styling.md +++ b/docs/1.getting-started/4.styling.md @@ -18,7 +18,11 @@ You can use a javascript import, or a css [`@import` statement](https://develope ```vue [pages/index.vue] ``` -::ReadMore{link="docs/guide/directory-structure/layouts"} +::ReadMore{link="/docs/guide/directory-structure/layouts"} :: ## Third Party Libraries And Modules @@ -480,7 +480,7 @@ If you are using [UnoCSS](https://unocss.dev/integrations/nuxt), note that it co Nuxt comes with the same `` element that Vue has, and also has support for the experimental [View Transitions API](/docs/getting-started/transitions#view-transitions-api-experimental). -::ReadMore{link="docs/features/transitions"} +::ReadMore{link="/docs/features/transitions"} :: ### Font Advanced Optimization From 4abfb40a7821c75dd20f79e44cd473df356f9ec2 Mon Sep 17 00:00:00 2001 From: Fanny <55425039+FannyGautierr@users.noreply.github.com> Date: Thu, 13 Jul 2023 17:25:54 +0200 Subject: [PATCH 521/912] docs: fix typos (#22125) --- docs/2.guide/1.concepts/3.rendering.md | 2 +- docs/2.guide/3.going-further/3.modules.md | 2 +- docs/6.bridge/1.overview.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/2.guide/1.concepts/3.rendering.md b/docs/2.guide/1.concepts/3.rendering.md index 8cc780a347..cba709c0fb 100644 --- a/docs/2.guide/1.concepts/3.rendering.md +++ b/docs/2.guide/1.concepts/3.rendering.md @@ -1,5 +1,5 @@ --- -description: "Nuxt supports different rendering modes, univeral rendering, client-side rendering but also offers hybrid-rendering and the possibility to render on CDN Edge Servers." +description: "Nuxt supports different rendering modes, universal rendering, client-side rendering but also offers hybrid-rendering and the possibility to render on CDN Edge Servers." --- # Rendering Modes diff --git a/docs/2.guide/3.going-further/3.modules.md b/docs/2.guide/3.going-further/3.modules.md index 2d7033b740..a22cacb0e5 100644 --- a/docs/2.guide/3.going-further/3.modules.md +++ b/docs/2.guide/3.going-further/3.modules.md @@ -280,7 +280,7 @@ export default defineNuxtModule({ }) ``` -Note that we use [`defu`](https://github.com/unjs/defu) to extend the public runtime configuration the user can provides instead of overwritting it. +Note that we use [`defu`](https://github.com/unjs/defu) to extend the public runtime configuration the user can provides instead of overwriting it. You can then access your module options in a plugin, component, the application like any other runtime configuration: diff --git a/docs/6.bridge/1.overview.md b/docs/6.bridge/1.overview.md index e93396e8ea..4331447419 100644 --- a/docs/6.bridge/1.overview.md +++ b/docs/6.bridge/1.overview.md @@ -144,7 +144,7 @@ You may also need to add `@vue/runtime-dom` as a devDependency if you are strugg Keep in mind that all options extended from `./.nuxt/tsconfig.json` will be overwritten by the options defined in your `tsconfig.json`. Overwriting options such as `"compilerOptions.paths"` with your own configuration will lead TypeScript to not factor in the module resolutions from `./.nuxt/tsconfig.json`. This can lead to module resolutions such as `#imports` not being recognized. -In case you need to extend options provided by `./.nuxt/tsconfig.json` further, you can use the `alias` property withing your `nuxt.config`. `nuxi` will pick them up and extend `./.nuxt/tsconfig.json` accordingly. +In case you need to extend options provided by `./.nuxt/tsconfig.json` further, you can use the `alias` property within your `nuxt.config`. `nuxi` will pick them up and extend `./.nuxt/tsconfig.json` accordingly. :: ## Update Runtime Config From b06ae969f6434f215241447e510df0be608b37a9 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 13 Jul 2023 18:26:04 +0100 Subject: [PATCH 522/912] fix(test-utils): export from core playwright package (#22122) --- .github/workflows/ci.yml | 3 +-- package.json | 2 +- packages/test-utils/package.json | 6 +++--- packages/test-utils/src/browser.ts | 10 +++++----- packages/test-utils/src/types.ts | 2 +- pnpm-lock.yaml | 30 ++++++++++-------------------- test/utils.ts | 2 +- 7 files changed, 22 insertions(+), 33 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f780219bd2..222646934b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -214,8 +214,7 @@ jobs: ${{ runner.os }}-playwright-bin-v1- - name: Install Playwright - # does not need to explicitly set chromium after https://github.com/microsoft/playwright/issues/14862 is solved - run: pnpm playwright install chromium + run: pnpm playwright-core install chromium - name: Restore dist cache uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 diff --git a/package.json b/package.json index 31050ab5ec..b0ab36131e 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "nuxt-vitest": "0.8.7", "ofetch": "1.1.1", "pathe": "1.1.1", - "playwright": "1.35.1", + "playwright-core": "1.35.1", "rimraf": "5.0.1", "semver": "7.5.3", "std-env": "3.3.3", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 0640750a63..54b0095466 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -34,13 +34,13 @@ }, "devDependencies": { "@jest/globals": "29.6.0", - "playwright": "1.35.1", + "playwright-core": "1.35.1", "unbuild": "latest", "vitest": "0.33.0" }, "peerDependencies": { "@jest/globals": "^29.5.0", - "playwright": "^1.34.3", + "playwright-core": "^1.34.3", "vitest": "^0.30.0 || ^0.31.0 || ^0.32.0 || ^0.33.0", "vue": "^3.3.4" }, @@ -48,7 +48,7 @@ "@jest/globals": { "optional": true }, - "playwright": { + "playwright-core": { "optional": true }, "vitest": { diff --git a/packages/test-utils/src/browser.ts b/packages/test-utils/src/browser.ts index 0c3e7a03f5..867d42121f 100644 --- a/packages/test-utils/src/browser.ts +++ b/packages/test-utils/src/browser.ts @@ -1,20 +1,20 @@ -import type { Browser, BrowserContextOptions } from 'playwright' +import type { Browser, BrowserContextOptions } from 'playwright-core' import { useTestContext } from './context' import { url } from './server' export async function createBrowser () { const ctx = useTestContext() - let playwright: typeof import('playwright') + let playwright: typeof import('playwright-core') try { // Workaround for https://github.com/nuxt/nuxt/issues/13441 // TODO: Remove when upstream issue resolved - playwright = await import(String('playwright')) + playwright = await import(String('playwright-core')) } catch { /* istanbul ignore next */ throw new Error(` - The dependency 'playwright' not found. - Please run 'yarn add --dev playwright' or 'npm install --save-dev playwright' + The dependency 'playwright-core' not found. + Please run 'yarn add --dev playwright-core' or 'npm install --save-dev playwright-core' `) } diff --git a/packages/test-utils/src/types.ts b/packages/test-utils/src/types.ts index e40e389da6..e8847091bb 100644 --- a/packages/test-utils/src/types.ts +++ b/packages/test-utils/src/types.ts @@ -1,6 +1,6 @@ import type { Nuxt, NuxtConfig } from '@nuxt/schema' import type { ExecaChildProcess } from 'execa' -import type { Browser, LaunchOptions } from 'playwright' +import type { Browser, LaunchOptions } from 'playwright-core' export type TestRunner = 'vitest' | 'jest' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ee20806112..1146058e56 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -107,7 +107,7 @@ importers: pathe: specifier: 1.1.1 version: 1.1.1 - playwright: + playwright-core: specifier: 1.35.1 version: 1.35.1 rimraf: @@ -130,7 +130,7 @@ importers: version: 4.3.9(@types/node@18.16.19) vitest: specifier: 0.33.0 - version: 0.33.0(playwright@1.35.1) + version: 0.33.0 vitest-environment-nuxt: specifier: 0.8.7 version: 0.8.7(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) @@ -224,7 +224,7 @@ importers: version: 4.3.9(@types/node@18.16.19) vitest: specifier: 0.33.0 - version: 0.33.0(playwright@1.35.1) + version: 0.33.0 webpack: specifier: 5.88.1 version: 5.88.1 @@ -514,7 +514,7 @@ importers: version: 4.3.9(@types/node@18.16.19) vitest: specifier: 0.33.0 - version: 0.33.0(playwright@1.35.1) + version: 0.33.0 packages/schema: dependencies: @@ -646,7 +646,7 @@ importers: '@jest/globals': specifier: 29.6.0 version: 29.6.0 - playwright: + playwright-core: specifier: 1.35.1 version: 1.35.1 unbuild: @@ -654,7 +654,7 @@ importers: version: 1.2.1 vitest: specifier: 0.33.0 - version: 0.33.0(playwright@1.35.1) + version: 0.33.0 packages/vite: dependencies: @@ -976,7 +976,7 @@ importers: version: 1.1.1 vitest: specifier: latest - version: 0.33.0(playwright@1.35.1) + version: 0.33.0 vue: specifier: 3.3.4 version: 3.3.4 @@ -6860,7 +6860,7 @@ packages: perfect-debounce: 1.0.0 std-env: 3.3.3 vite: 4.3.9(@types/node@18.16.19) - vitest: 0.33.0(playwright@1.35.1) + vitest: 0.33.0 vitest-environment-nuxt: 0.8.7(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) transitivePeerDependencies: - '@vue/compiler-dom' @@ -7149,15 +7149,6 @@ packages: hasBin: true dev: true - /playwright@1.35.1: - resolution: {integrity: sha512-NbwBeGJLu5m7VGM0+xtlmLAH9VUfWwYOhUi/lSEDyGg46r1CA9RWlvoc5yywxR9AzQb0mOCm7bWtOXV7/w43ZA==} - engines: {node: '>=16'} - hasBin: true - requiresBuild: true - dependencies: - playwright-core: 1.35.1 - dev: true - /pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -8978,7 +8969,7 @@ packages: magic-string: 0.30.1 ofetch: 1.1.1 unenv: 1.5.1 - vitest: 0.33.0(playwright@1.35.1) + vitest: 0.33.0 vue: 3.3.4 vue-router: 4.2.4(vue@3.3.4) transitivePeerDependencies: @@ -8986,7 +8977,7 @@ packages: - '@vue/server-renderer' dev: true - /vitest@0.33.0(playwright@1.35.1): + /vitest@0.33.0: resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} engines: {node: '>=v14.18.0'} hasBin: true @@ -9034,7 +9025,6 @@ packages: magic-string: 0.30.1 pathe: 1.1.1 picocolors: 1.0.0 - playwright: 1.35.1 std-env: 3.3.3 strip-literal: 1.0.1 tinybench: 2.5.0 diff --git a/test/utils.ts b/test/utils.ts index 25da63d522..d6f199aa3b 100644 --- a/test/utils.ts +++ b/test/utils.ts @@ -1,6 +1,6 @@ import { Script, createContext } from 'node:vm' import { expect } from 'vitest' -import type { Page } from 'playwright' +import type { Page } from 'playwright-core' import { parse } from 'devalue' import { reactive, ref, shallowReactive, shallowRef } from 'vue' import { createError } from 'h3' From 21ea0faf8a2231bbb111070ee6cf7f8e672244af Mon Sep 17 00:00:00 2001 From: Luke Pinion <41447688+lwpinion@users.noreply.github.com> Date: Thu, 13 Jul 2023 12:26:49 -0500 Subject: [PATCH 523/912] docs: update link to router options (#22131) --- docs/7.migration/7.component-options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/7.migration/7.component-options.md b/docs/7.migration/7.component-options.md index 56c05e8dfd..52a36d1430 100644 --- a/docs/7.migration/7.component-options.md +++ b/docs/7.migration/7.component-options.md @@ -104,7 +104,7 @@ See [middleware migration](/docs/migration/plugins-and-middleware). ## `scrollToTop` -This feature is not yet supported in Nuxt 3. If you want to overwrite the default scroll behavior of `vue-router`, you can do so in `~/app/router.options.ts` (see [docs](/docs/guide/directory-structure/pages/#router-options)) for more info. +This feature is not yet supported in Nuxt 3. If you want to overwrite the default scroll behavior of `vue-router`, you can do so in `~/app/router.options.ts` (see [docs](/docs/guide/going-further/custom-routing#router-options)) for more info. ## `transition` From a07cfb8663e885010cd97684859d3a1987c503a0 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 14 Jul 2023 14:46:40 +0100 Subject: [PATCH 524/912] refactor(cli,schema): add `bundler` module resolution flag (#22142) --- packages/nuxi/src/utils/prepare.ts | 4 ++-- packages/nuxt/src/core/nitro.ts | 5 ++++ packages/schema/src/config/experimental.ts | 27 +++++++++++++++++++--- packages/schema/src/config/typescript.ts | 2 +- test/fixtures/basic-types/nuxt.config.ts | 11 ++------- 5 files changed, 34 insertions(+), 15 deletions(-) diff --git a/packages/nuxi/src/utils/prepare.ts b/packages/nuxi/src/utils/prepare.ts index 636930e110..5d9de151ce 100644 --- a/packages/nuxi/src/utils/prepare.ts +++ b/packages/nuxi/src/utils/prepare.ts @@ -14,9 +14,9 @@ export const writeTypes = async (nuxt: Nuxt) => { jsx: 'preserve', target: 'ESNext', module: 'ESNext', - moduleResolution: 'Node', + moduleResolution: nuxt.options.experimental.typescriptBundlerResolution ? 'Bundler' : 'Node', skipLibCheck: true, - strict: nuxt.options.typescript?.strict ?? false, + strict: nuxt.options.typescript?.strict ?? true, allowJs: true, // TODO: remove by default in 3.7 baseUrl: nuxt.options.srcDir, diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index d5ba2f2c4c..70ca6a0547 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -37,6 +37,7 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { console.warn(`[nuxt] Could not load custom \`spaLoadingTemplate\` path as it does not exist: \`${spaLoadingTemplate}\`.`) } + // @ts-expect-error `typescriptBundlerResolution` coming in next nitro version const nitroConfig: NitroConfig = defu(_nitroConfig, { debug: nuxt.options.debug, rootDir: nuxt.options.rootDir, @@ -44,6 +45,10 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { srcDir: nuxt.options.serverDir, dev: nuxt.options.dev, buildDir: nuxt.options.buildDir, + experimental: { + // @ts-expect-error `typescriptBundlerResolution` coming in next nitro version + typescriptBundlerResolution: nuxt.options.experimental.typescriptBundlerResolution || nuxt.options.typescript?.tsConfig?.compilerOptions?.moduleResolution?.toLowercase() === 'bundler' || _nitroConfig.typescript?.tsConfig?.compilerOptions?.moduleResolution?.toLowercase() === 'bundler' + }, imports: { autoImport: nuxt.options.imports.autoImport as boolean, imports: [ diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index 786547e3d4..17507c8f4e 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -12,8 +12,8 @@ export default defineUntypedSchema({ /** * Enable Vue's reactivity transform * @see https://vuejs.org/guide/extras/reactivity-transform.html - * - * Warning: Reactivity transform feature has been marked as deprecated in Vue 3.3 and is planned to be + * + * Warning: Reactivity transform feature has been marked as deprecated in Vue 3.3 and is planned to be * removed from core in Vue 3.4. * @see https://github.com/vuejs/rfcs/discussions/369#discussioncomment-5059028 */ @@ -107,7 +107,7 @@ export default defineUntypedSchema({ /** * When this option is enabled (by default) payload of pages generated with `nuxt generate` are extracted - * + * * @type {boolean | undefined} */ payloadExtraction: undefined, @@ -147,6 +147,27 @@ export default defineUntypedSchema({ */ configSchema: true, + /** + * This enables 'Bundler' module resolution mode for TypeScript, which is the recommended setting + * for frameworks like Nuxt and Vite. + * + * It improves type support when using modern libraries with `exports`. + * + * This is only not enabled by default because it could be a breaking change for some projects. + * + * See https://github.com/microsoft/TypeScript/pull/51669 + */ + typescriptBundlerResolution: { + async $resolve (val, get) { + if (typeof val === 'boolean') { return val } + const setting = await get('typescript.tsConfig.compilerOptions.moduleResolution') + if (setting) { + return setting.toLowerCase() === 'bundler' + } + return false + } + }, + /** * Whether or not to add a compatibility layer for modules, plugins or user code relying on the old * `@vueuse/head` API. diff --git a/packages/schema/src/config/typescript.ts b/packages/schema/src/config/typescript.ts index 0edfc7ce40..5bf18adc5e 100644 --- a/packages/schema/src/config/typescript.ts +++ b/packages/schema/src/config/typescript.ts @@ -46,7 +46,7 @@ export default defineUntypedSchema({ /** * You can extend generated `.nuxt/tsconfig.json` using this option. - * @type {typeof import('pkg-types')['readPackageJSON']} + * @type {typeof import('pkg-types')['TSConfig']} */ tsConfig: {}, diff --git a/test/fixtures/basic-types/nuxt.config.ts b/test/fixtures/basic-types/nuxt.config.ts index bde94e9aca..f9ec4ab7ec 100644 --- a/test/fixtures/basic-types/nuxt.config.ts +++ b/test/fixtures/basic-types/nuxt.config.ts @@ -2,15 +2,8 @@ import { addTypeTemplate } from 'nuxt/kit' export default defineNuxtConfig({ experimental: { - typedPages: true - }, - typescript: { - strict: true, - tsConfig: { - compilerOptions: { - moduleResolution: process.env.MODULE_RESOLUTION - } - } + typedPages: true, + typescriptBundlerResolution: process.env.MODULE_RESOLUTION === 'bundler' }, buildDir: process.env.NITRO_BUILD_DIR, builder: process.env.TEST_BUILDER as 'webpack' | 'vite' ?? 'vite', From 988e75bbc7a19422126ff563b6a6b88235131faa Mon Sep 17 00:00:00 2001 From: Jianqi Pan Date: Fri, 14 Jul 2023 22:49:57 +0900 Subject: [PATCH 525/912] fix(nuxt): skip view transitions where there is no route change (#22140) --- packages/nuxt/src/app/plugins/view-transitions.client.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/app/plugins/view-transitions.client.ts b/packages/nuxt/src/app/plugins/view-transitions.client.ts index 7489f585da..f0f75fcd2b 100644 --- a/packages/nuxt/src/app/plugins/view-transitions.client.ts +++ b/packages/nuxt/src/app/plugins/view-transitions.client.ts @@ -9,9 +9,10 @@ export default defineNuxtPlugin((nuxtApp) => { const router = useRouter() - router.beforeResolve((to) => { - if (to.meta.pageTransition === false) { return } - + router.beforeResolve((to, from) => { + if (to === from || to.matched.every((comp, index) => comp.components && comp.components?.default === from.matched[index]?.components?.default)) { + return + } const promise = new Promise((resolve, reject) => { finishTransition = resolve abortTransition = reject From e3553a36f9eb713ce22990471b2e4a006658c8ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E6=B8=B8=E5=90=9B?= Date: Fri, 14 Jul 2023 21:50:14 +0800 Subject: [PATCH 526/912] fix(nuxt): skip scanning components that do not produce a name (#22074) --- packages/nuxt/src/components/scan.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/components/scan.ts b/packages/nuxt/src/components/scan.ts index 4ed83962a8..3ca401816c 100644 --- a/packages/nuxt/src/components/scan.ts +++ b/packages/nuxt/src/components/scan.ts @@ -95,7 +95,7 @@ export async function scanComponents (dirs: ComponentsDir[], srcDir: string): Pr const componentName = resolveComponentName(fileName, prefixParts) if (resolvedNames.has(componentName + suffix) || resolvedNames.has(componentName)) { - console.warn(`Two component files resolving to the same name \`${componentName}\`:\n` + + console.warn(`[nuxt] Two component files resolving to the same name \`${componentName}\`:\n` + `\n - ${filePath}` + `\n - ${resolvedNames.get(componentName)}` ) @@ -130,6 +130,12 @@ export async function scanComponents (dirs: ComponentsDir[], srcDir: string): Pr component = (await dir.extendComponent(component)) || component } + // Ignore files like `~/components/index.vue` which end up not having a name at all + if (!componentName) { + console.warn(`[nuxt] Component did not resolve to a file name in \`~/${relative(srcDir, filePath)}\`.`) + continue + } + // Ignore component if component is already defined (with same mode) if (!components.some(c => c.pascalName === component.pascalName && ['all', component.mode].includes(c.mode))) { components.push(component) From 826f82a6da36fd4585b610b0126725b5ca1d2760 Mon Sep 17 00:00:00 2001 From: Samuel Burkhard Date: Fri, 14 Jul 2023 16:32:59 +0200 Subject: [PATCH 527/912] fix(cli): add aliases to monorepo paths to tsconfig includes (#21997) Co-authored-by: Daniel Roe --- packages/nuxi/src/utils/prepare.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/nuxi/src/utils/prepare.ts b/packages/nuxi/src/utils/prepare.ts index 5d9de151ce..10bcb42a28 100644 --- a/packages/nuxi/src/utils/prepare.ts +++ b/packages/nuxi/src/utils/prepare.ts @@ -3,11 +3,14 @@ import { isAbsolute, join, relative, resolve } from 'pathe' import type { Nuxt, TSReference } from '@nuxt/schema' import { defu } from 'defu' import type { TSConfig } from 'pkg-types' +import { withTrailingSlash } from 'ufo' import { getModulePaths, getNearestPackage } from './cjs' export const writeTypes = async (nuxt: Nuxt) => { const modulePaths = getModulePaths(nuxt.options.modulesDir) + const rootDirWithSlash = withTrailingSlash(nuxt.options.rootDir) + const tsConfig: TSConfig = defu(nuxt.options.typescript?.tsConfig, { compilerOptions: { forceConsistentCasingInFileNames: true, @@ -31,7 +34,7 @@ export const writeTypes = async (nuxt: Nuxt) => { join(relative(nuxt.options.buildDir, nuxt.options.rootDir), '**/*'), ...nuxt.options.srcDir !== nuxt.options.rootDir ? [join(relative(nuxt.options.buildDir, nuxt.options.srcDir), '**/*')] : [], ...nuxt.options._layers.map(layer => layer.config.srcDir ?? layer.cwd) - .filter(srcOrCwd => !srcOrCwd.startsWith(nuxt.options.rootDir) || srcOrCwd.includes('node_modules')) + .filter(srcOrCwd => !srcOrCwd.startsWith(rootDirWithSlash) || srcOrCwd.includes('node_modules')) .map(srcOrCwd => join(relative(nuxt.options.buildDir, srcOrCwd), '**/*')), ...nuxt.options.typescript.includeWorkspace && nuxt.options.workspaceDir !== nuxt.options.rootDir ? [join(relative(nuxt.options.buildDir, nuxt.options.workspaceDir), '**/*')] : [] ], @@ -52,6 +55,7 @@ export const writeTypes = async (nuxt: Nuxt) => { const basePath = tsConfig.compilerOptions!.baseUrl ? resolve(nuxt.options.buildDir, tsConfig.compilerOptions!.baseUrl) : nuxt.options.buildDir tsConfig.compilerOptions = tsConfig.compilerOptions || {} + tsConfig.include = tsConfig.include || [] for (const alias in aliases) { if (excludedAlias.some(re => re.test(alias))) { @@ -63,8 +67,17 @@ export const writeTypes = async (nuxt: Nuxt) => { if (stats?.isDirectory()) { tsConfig.compilerOptions.paths[alias] = [absolutePath] tsConfig.compilerOptions.paths[`${alias}/*`] = [`${absolutePath}/*`] + + if (!absolutePath.startsWith(rootDirWithSlash)) { + tsConfig.include.push(absolutePath) + tsConfig.include.push(`${absolutePath}/*`) + } } else { tsConfig.compilerOptions.paths[alias] = [absolutePath.replace(/(?<=\w)\.\w+$/g, '')] /* remove extension */ + + if (!absolutePath.startsWith(rootDirWithSlash)) { + tsConfig.include.push(absolutePath.replace(/(?<=\w)\.\w+$/g, '')) + } } } From 0643d4315b4a876853274262104eebfcbe216572 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 14 Jul 2023 23:39:06 +0100 Subject: [PATCH 528/912] fix(cli): allow non-existent `experimental` option --- packages/nuxi/src/utils/prepare.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxi/src/utils/prepare.ts b/packages/nuxi/src/utils/prepare.ts index 10bcb42a28..d9592fbde9 100644 --- a/packages/nuxi/src/utils/prepare.ts +++ b/packages/nuxi/src/utils/prepare.ts @@ -17,7 +17,7 @@ export const writeTypes = async (nuxt: Nuxt) => { jsx: 'preserve', target: 'ESNext', module: 'ESNext', - moduleResolution: nuxt.options.experimental.typescriptBundlerResolution ? 'Bundler' : 'Node', + moduleResolution: nuxt.options.experimental?.typescriptBundlerResolution ? 'Bundler' : 'Node', skipLibCheck: true, strict: nuxt.options.typescript?.strict ?? true, allowJs: true, From f068ad5edda4aaf79906a58ab472c9c3c0f564f1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 14 Jul 2023 23:48:50 +0100 Subject: [PATCH 529/912] v3.6.3 --- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 96a106ffcf..a9d6124278 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.6.2", + "version": "3.6.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index c2dbebd079..313485a7c6 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -1,6 +1,6 @@ { "name": "nuxi", - "version": "3.6.2", + "version": "3.6.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index c4f5ff2dd9..05c5d2d6a7 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.6.2", + "version": "3.6.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/schema/package.json b/packages/schema/package.json index 9e3e7c2faf..db30e0148d 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.6.2", + "version": "3.6.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 54b0095466..96fe11e5c6 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.6.2", + "version": "3.6.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/vite/package.json b/packages/vite/package.json index fc6bbe1989..6d19e10939 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.6.2", + "version": "3.6.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 1c7f11d9b8..02ece3d4f5 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.6.2", + "version": "3.6.3", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", From fed5868184c6ec7256c114cb804253b8deacdf64 Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Sun, 16 Jul 2023 00:48:03 +0200 Subject: [PATCH 530/912] fix(core): correctly use `toLowerCase` for possible `moduleResolution` (#22160) --- packages/nuxt/src/core/nitro.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index 70ca6a0547..b02f91aeee 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -47,7 +47,7 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { buildDir: nuxt.options.buildDir, experimental: { // @ts-expect-error `typescriptBundlerResolution` coming in next nitro version - typescriptBundlerResolution: nuxt.options.experimental.typescriptBundlerResolution || nuxt.options.typescript?.tsConfig?.compilerOptions?.moduleResolution?.toLowercase() === 'bundler' || _nitroConfig.typescript?.tsConfig?.compilerOptions?.moduleResolution?.toLowercase() === 'bundler' + typescriptBundlerResolution: nuxt.options.experimental.typescriptBundlerResolution || nuxt.options.typescript?.tsConfig?.compilerOptions?.moduleResolution?.toLowerCase() === 'bundler' || _nitroConfig.typescript?.tsConfig?.compilerOptions?.moduleResolution?.toLowerCase() === 'bundler' }, imports: { autoImport: nuxt.options.imports.autoImport as boolean, From b8a282e1156559ed923a7d92cd44bcac43f0d1e9 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 18 Jul 2023 11:03:14 +0100 Subject: [PATCH 531/912] fix(nuxt): don't redirect if initial path has trailing slash (#22192) --- packages/nuxt/src/pages/runtime/plugins/router.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/pages/runtime/plugins/router.ts b/packages/nuxt/src/pages/runtime/plugins/router.ts index 27030a041c..a1aa56f3b8 100644 --- a/packages/nuxt/src/pages/runtime/plugins/router.ts +++ b/packages/nuxt/src/pages/runtime/plugins/router.ts @@ -9,7 +9,7 @@ import { createWebHistory } from '#vue-router' import { createError } from 'h3' -import { withoutBase } from 'ufo' +import { isEqual, withoutBase } from 'ufo' import type { PageMeta, Plugin, RouteMiddleware } from '../../../app/index' import { defineNuxtPlugin, useRuntimeConfig } from '#app/nuxt' @@ -42,7 +42,8 @@ function createCurrentLocation ( if (pathFromHash[0] !== '/') { pathFromHash = '/' + pathFromHash } return withoutBase(pathFromHash, '') } - const path = renderedPath || withoutBase(pathname, base) + const displayedPath = withoutBase(pathname, base) + const path = !renderedPath || isEqual(displayedPath, renderedPath, { trailingSlash: true }) ? displayedPath : renderedPath return path + (path.includes('?') ? '' : search) + hash } From a6b4c3c9d8ae678116abbcd67d0ea810414b6222 Mon Sep 17 00:00:00 2001 From: Qin Guan Date: Tue, 18 Jul 2023 18:25:47 +0800 Subject: [PATCH 532/912] docs: add runtime storage configuration examples (#22189) --- .../2.guide/2.directory-structure/1.server.md | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/docs/2.guide/2.directory-structure/1.server.md b/docs/2.guide/2.directory-structure/1.server.md index edbde12713..02b72bcd9e 100644 --- a/docs/2.guide/2.directory-structure/1.server.md +++ b/docs/2.guide/2.directory-structure/1.server.md @@ -340,10 +340,12 @@ Never combine `next()` callback with a legacy middleware that is `async` or retu ### Server Storage -Nitro provides a cross-platform [storage layer](https://nitro.unjs.io/guide/storage). In order to configure additional storage mount points, you can use `nitro.storage`. +Nitro provides a cross-platform [storage layer](https://nitro.unjs.io/guide/storage). In order to configure additional storage mount points, you can use `nitro.storage`, or [server plugins](#server-plugins). #### Example: Using Redis +Using `nitro.storage`: + ```ts [nuxt.config.ts] export default defineNuxtConfig({ nitro: { @@ -363,6 +365,43 @@ export default defineNuxtConfig({ }) ``` +Alternatively, using server plugins: + +::code-group + +```ts [server/plugins/storage.ts] +import redisDriver from 'unstorage/drivers/redis' + +export default defineNitroPlugin(() => { + const storage = useStorage() + + // Dynamically pass in credentials from runtime configuration, or other sources + const driver = redisDriver({ + base: 'redis', + host: useRuntimeConfig().redis.host, + port: useRuntimeConfig().redis.port, + /* other redis connector options */ + }) + + // Mount driver + storage.mount('redis', driver) +}) +``` + +``` ts [nuxt.config.ts] +export default defineNuxtConfig({ + runtimeConfig: { + redis: { // Default values + host: '', + port: 0, + /* other redis connector options */ + } + } +}) +``` + +:: + Create a new file in `server/api/test.post.ts`: ```ts [server/api/test.post.ts] From 646137a63a909827dd6cad00e5a04d11484f2a47 Mon Sep 17 00:00:00 2001 From: Ali Azimi Date: Tue, 18 Jul 2023 12:26:43 +0200 Subject: [PATCH 533/912] docs: add instruction on how to use other modules in a module (#22081) --- docs/2.guide/3.going-further/3.modules.md | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/docs/2.guide/3.going-further/3.modules.md b/docs/2.guide/3.going-further/3.modules.md index a22cacb0e5..a17a430d2c 100644 --- a/docs/2.guide/3.going-further/3.modules.md +++ b/docs/2.guide/3.going-further/3.modules.md @@ -411,6 +411,37 @@ export default defineNuxtModule({ }) ``` +#### Using Other Modules in Your Module + +If your module depends on other modules, you can add them by using Nuxt Kit's `installModule` utility. For example, if you wanted to use Nuxt Tailwind in your module, you could add it as below: + +```ts +import { defineNuxtModule, createResolver, installModule } from '@nuxt/kit' + +export default defineNuxtModule({ + async setup (options, nuxt) { + const { resolve } = createResolver(import.meta.url) + + // We can inject our CSS file which includes Tailwind's directives + nuxt.options.css.push(resolve('./runtime/assets/styles.css')) + + await installModule('@nuxtjs/tailwindcss', { + // module configuration + exposeConfig: true, + config: { + darkMode: 'class', + content: { + files: [ + resolve('./runtime/components/**/*.{vue,mjs,ts}'), + resolve('./runtime/*.{mjs,js,ts}') + ] + } + } + }) + } +}) +``` + #### Using Hooks [Lifecycle hooks](/docs/guide/going-further/hooks) allow you to expand almost every aspect of Nuxt. Modules can hook to them programmatically or through the `hooks` map in their definition. From bea6ed1d9c969a58053bbbceafa12c09d30d6d24 Mon Sep 17 00:00:00 2001 From: Mahdi Shah Abbasian Date: Tue, 18 Jul 2023 14:01:45 +0330 Subject: [PATCH 534/912] docs: standardize indentation and tag positioning (#22157) --- docs/1.getting-started/3.configuration.md | 4 +- docs/1.getting-started/4.styling.md | 18 +++-- docs/1.getting-started/5.routing.md | 6 +- docs/1.getting-started/5.seo-meta.md | 10 +-- docs/1.getting-started/6.data-fetching.md | 27 +++---- docs/1.getting-started/7.state-management.md | 6 +- docs/1.getting-started/8.error-handling.md | 12 +-- docs/2.guide/1.concepts/1.auto-imports.md | 22 +++--- .../2.guide/1.concepts/2.vuejs-development.md | 6 +- .../2.directory-structure/1.components.md | 34 ++++----- .../2.directory-structure/1.composables.md | 8 +- .../2.directory-structure/1.layouts.md | 36 ++++----- .../2.directory-structure/1.middleware.md | 4 +- docs/2.guide/2.directory-structure/1.pages.md | 12 +-- .../2.directory-structure/1.plugins.md | 10 +-- .../2.guide/2.directory-structure/1.server.md | 16 ++-- .../3.going-further/10.runtime-config.md | 14 ++-- docs/2.guide/3.going-further/2.hooks.md | 6 +- docs/3.api/1.composables/use-cookie.md | 40 +++++----- .../1.composables/use-lazy-async-data.md | 14 ++-- docs/3.api/1.composables/use-lazy-fetch.md | 22 +++--- docs/3.api/1.composables/use-nuxt-app.md | 6 +- .../1.composables/use-request-headers.md | 2 +- docs/3.api/1.composables/use-request-url.md | 2 +- docs/3.api/1.composables/use-route.md | 2 +- docs/3.api/2.components/2.nuxt-page.md | 10 +-- docs/3.api/2.components/3.nuxt-layout.md | 18 ++--- docs/3.api/3.utils/$fetch.md | 4 +- docs/3.api/3.utils/create-error.md | 2 +- docs/3.api/3.utils/define-page-meta.md | 74 +++++++++---------- docs/3.api/3.utils/navigate-to.md | 6 +- docs/3.api/3.utils/refresh-nuxt-data.md | 28 +++---- docs/6.bridge/1.overview.md | 2 +- docs/7.migration/4.meta.md | 2 +- docs/7.migration/6.pages-and-layouts.md | 4 +- docs/7.migration/7.component-options.md | 12 +-- docs/7.migration/8.runtime-config.md | 8 +- 37 files changed, 257 insertions(+), 252 deletions(-) diff --git a/docs/1.getting-started/3.configuration.md b/docs/1.getting-started/3.configuration.md index 21dba96333..c42aa152d8 100644 --- a/docs/1.getting-started/3.configuration.md +++ b/docs/1.getting-started/3.configuration.md @@ -81,7 +81,7 @@ NUXT_API_SECRET=api_secret_token These variables are exposed to the rest of your application using the [`useRuntimeConfig`](/docs/api/composables/use-runtime-config) composable. ```vue [pages/index.vue] - ``` @@ -109,7 +109,7 @@ export default defineAppConfig({ These variables are exposed to the rest of your application using the [`useAppConfig`](/docs/api/composables/use-app-config) composable. ```vue [pages/index.vue] - ``` diff --git a/docs/1.getting-started/4.styling.md b/docs/1.getting-started/4.styling.md index 33b9e356b3..9178f331a9 100644 --- a/docs/1.getting-started/4.styling.md +++ b/docs/1.getting-started/4.styling.md @@ -255,7 +255,7 @@ You can leverage Vue SFC features to style your components with class and style ::code-group ```vue [Ref and Reactive] - -
-
+ + ``` ```vue [Computed] - + ``` ```vue [Array] - @@ -294,7 +298,7 @@ const errorClass = ref('text-danger') ``` ```vue [Style] - diff --git a/docs/1.getting-started/5.routing.md b/docs/1.getting-started/5.routing.md index 8949768911..9209b85255 100644 --- a/docs/1.getting-started/5.routing.md +++ b/docs/1.getting-started/5.routing.md @@ -72,7 +72,7 @@ When a `` enters the viewport on the client side, Nuxt will automatica The `useRoute()` composable can be used in a ` @@ -161,7 +161,7 @@ It's recommended to use getters (`() => value`) over computed (`computed(() => v ``` ```vue [Components] - @@ -227,7 +227,7 @@ Within your [`pages/` directory](/docs/guide/directory-structure/pages), you can For example, you can first set the current page title (this is extracted at build time via a macro, so it can't be set dynamically): ```vue{}[pages/some-page.vue] - @@ -116,6 +116,12 @@ The first argument of [`useAsyncData`](/docs/api/composables/use-async-data) is By default, data fetching composables will wait for the resolution of their asynchronous function before navigating to a new page by using Vue’s Suspense. This feature can be ignored on client-side navigation with the `lazy` option. In that case, you will have to manually handle loading state using the `pending` value. ```vue [app.vue] + + - ``` You can alternatively use [`useLazyFetch`](/docs/api/composables/use-lazy-fetch) and `useLazyAsyncData` as convenient methods to perform the same. @@ -163,7 +164,7 @@ const { pending, data: posts } = useFetch('/api/comments', { The `pick` option helps you to minimize the payload size stored in your HTML document by only selecting the fields that you want returned from the composables. ```vue - @@ -202,15 +203,15 @@ To get the cached data by key, you can use [`useNuxtData`](/docs/api/composables If you want to fetch or refresh data manually, use the `execute` or `refresh` function provided by the composables. (`execute` is an alias for `refresh` that works in exactly the same way but is more semantic for cases when `immediate: false`). ```vue - ``` @@ -242,7 +243,7 @@ We can use [`useRequestHeaders`](/docs/api/composables/use-request-headers) to a The example below adds the request headers to an isomorphic `$fetch` call to ensure that the API endpoint has access to the same `cookie` header originally sent by the user. ```vue - diff --git a/docs/1.getting-started/7.state-management.md b/docs/1.getting-started/7.state-management.md index 16f8150fbe..249971fa2b 100644 --- a/docs/1.getting-started/7.state-management.md +++ b/docs/1.getting-started/7.state-management.md @@ -36,7 +36,7 @@ Instead use `const useX = () => useState('x')` In this example, we use a component-local counter state. Any other component that uses `useState('counter')` shares the same reactive state. ```vue [app.vue] - @@ -108,7 +108,7 @@ export const useLocaleDate = (date: Ref | Date, locale = useLocale()) => { ``` ```vue [app.vue] - diff --git a/docs/1.getting-started/8.error-handling.md b/docs/1.getting-started/8.error-handling.md index 559fbf3e71..c7f751f919 100644 --- a/docs/1.getting-started/8.error-handling.md +++ b/docs/1.getting-started/8.error-handling.md @@ -74,17 +74,17 @@ If you are running on Node 16 and you set any cookies when rendering your error ### Example ```vue [error.vue] - - - + + ``` ## Error Helper Methods @@ -112,7 +112,7 @@ If you throw an error created with `createError`: ### Example ```vue [pages/movies/[slug].vue] - ``` @@ -41,10 +41,10 @@ Nuxt auto-imports functions and composables to perform [data fetching](/docs/get Vue 3 exposes Reactivity APIs like `ref` or `computed`, as well as lifecycle hooks and helpers that are auto-imported by Nuxt. ```vue - ``` @@ -103,11 +103,11 @@ Nuxt directly auto-imports files created in defined directories: Nuxt exposes every auto-import with the `#imports` alias that can be used to make the import explicit if needed: ```vue - ``` diff --git a/docs/2.guide/1.concepts/2.vuejs-development.md b/docs/2.guide/1.concepts/2.vuejs-development.md index dc48f31179..8209ee832f 100644 --- a/docs/2.guide/1.concepts/2.vuejs-development.md +++ b/docs/2.guide/1.concepts/2.vuejs-development.md @@ -94,9 +94,9 @@ The [Composition API](https://vuejs.org/guide/extras/composition-api-faq.html) i Used with the `setup` keyword in the ` ``` diff --git a/docs/2.guide/2.directory-structure/1.components.md b/docs/2.guide/2.directory-structure/1.components.md index 23fed003f2..df310e6809 100644 --- a/docs/2.guide/2.directory-structure/1.components.md +++ b/docs/2.guide/2.directory-structure/1.components.md @@ -103,13 +103,13 @@ If you want to use the Vue `` syntax, the For example: ```vue + + - - ``` ::alert{type=warning} @@ -150,14 +150,6 @@ To dynamically import a component (also known as lazy-loading a component) all y This is particularly useful if the component is not always needed. By using the `Lazy` prefix you can delay loading the component code until the right moment, which can be helpful for optimizing your JavaScript bundle size. ```html [pages/index.vue] - - + + ``` ## Direct Imports @@ -174,6 +174,11 @@ export default { You can also explicitly import components from `#components` if you want or need to bypass Nuxt's auto-importing functionality. ```html [pages/index.vue] + + - - ``` ## `` Component diff --git a/docs/2.guide/2.directory-structure/1.composables.md b/docs/2.guide/2.directory-structure/1.composables.md index 0131014dc4..102f22e826 100644 --- a/docs/2.guide/2.directory-structure/1.composables.md +++ b/docs/2.guide/2.directory-structure/1.composables.md @@ -35,15 +35,15 @@ export default function () { **Usage:** You can now use auto imported composable in `.js`, `.ts` and `.vue` files ```vue [app.vue] + + - - ``` ::LinkExample{link="/docs/examples/features/auto-imports"} diff --git a/docs/2.guide/2.directory-structure/1.layouts.md b/docs/2.guide/2.directory-structure/1.layouts.md index 6178270b22..f6d961d08b 100644 --- a/docs/2.guide/2.directory-structure/1.layouts.md +++ b/docs/2.guide/2.directory-structure/1.layouts.md @@ -53,16 +53,16 @@ If you use a `app.vue` you will also need to add ``: You can directly override the default layout like this: ```vue{}[app.vue] + + - - ``` Alternatively, you can override the default layout per-page like this: @@ -115,13 +115,7 @@ Learn more about [defining page meta](/docs/guide/directory-structure/pages#page You can also use a ref or computed property for your layout. ```vue - - - + + ``` ::LinkExample{link="/docs/examples/features/layouts"} @@ -141,6 +141,12 @@ If you are using the `~/pages` integration, you can take full control by setting ::code-group ```vue [pages/index.vue] + + - - ``` ```vue [layouts/custom.vue] diff --git a/docs/2.guide/2.directory-structure/1.middleware.md b/docs/2.guide/2.directory-structure/1.middleware.md index 0bf7036db0..5520b4eaa9 100644 --- a/docs/2.guide/2.directory-structure/1.middleware.md +++ b/docs/2.guide/2.directory-structure/1.middleware.md @@ -80,7 +80,7 @@ middleware/ ``` ```vue [pages/profile.vue] - + - - ``` ## Typing Plugins diff --git a/docs/2.guide/2.directory-structure/1.server.md b/docs/2.guide/2.directory-structure/1.server.md index 02b72bcd9e..8a97899438 100644 --- a/docs/2.guide/2.directory-structure/1.server.md +++ b/docs/2.guide/2.directory-structure/1.server.md @@ -29,7 +29,7 @@ export default defineEventHandler((event) => { You can now universally call this API in your pages and components: ```vue [pages/index.vue] - @@ -424,13 +424,6 @@ export default defineEventHandler(async (event) => { Create a new file in `app.vue`: ```vue [app.vue] - - + + ``` ::ReadMore{link="/docs/guide/directory-structure/server"} diff --git a/docs/2.guide/3.going-further/10.runtime-config.md b/docs/2.guide/3.going-further/10.runtime-config.md index ce70095ed9..d9c76dc972 100644 --- a/docs/2.guide/3.going-further/10.runtime-config.md +++ b/docs/2.guide/3.going-further/10.runtime-config.md @@ -91,19 +91,19 @@ Within the Vue part of your Nuxt app, you will need to call `useRuntimeConfig()` The entire runtime config is available on the server-side, but it is read-only to avoid context sharing. ```vue - - - + + ``` **🛑 Security note:** Be careful not to expose runtime config keys to the client-side by either rendering them or passing them to `useState`. diff --git a/docs/2.guide/3.going-further/2.hooks.md b/docs/2.guide/3.going-further/2.hooks.md index 8a36e33111..d850c1d4a8 100644 --- a/docs/2.guide/3.going-further/2.hooks.md +++ b/docs/2.guide/3.going-further/2.hooks.md @@ -41,9 +41,9 @@ App hooks can be mainly used by [Nuxt Plugins](/docs/guide/directory-structure/p ```js [plugins/test.ts] export default defineNuxtPlugin((nuxtApp) => { - nuxtApp.hook('page:start', () => { - /* your code goes here */ - }) + nuxtApp.hook('page:start', () => { + /* your code goes here */ + }) }) ``` diff --git a/docs/3.api/1.composables/use-cookie.md b/docs/3.api/1.composables/use-cookie.md index 4a69032bd7..7cc84dbf26 100644 --- a/docs/3.api/1.composables/use-cookie.md +++ b/docs/3.api/1.composables/use-cookie.md @@ -23,6 +23,11 @@ const cookie = useCookie(name, options) The example below creates a cookie called `counter`. If the cookie doesn't exist, it is initially set to a random value. Whenever we update the `counter` variable, the cookie will be updated accordingly. ```vue + + - - ``` :button-link[Open on StackBlitz]{href="https://stackblitz.com/github/nuxt/examples/tree/main/advanced/use-cookie?terminal=dev&file=app.vue" blank} @@ -143,11 +143,7 @@ Specifies the `boolean` or `string` value for [watch](https://vuejs.org/api/reac **Example 1:** ```vue - - - + + ``` **Example 2:** ```vue - - - + + ``` ## Handling Cookies in API Routes diff --git a/docs/3.api/1.composables/use-lazy-async-data.md b/docs/3.api/1.composables/use-lazy-async-data.md index bb6f14da62..ed96635962 100644 --- a/docs/3.api/1.composables/use-lazy-async-data.md +++ b/docs/3.api/1.composables/use-lazy-async-data.md @@ -17,13 +17,7 @@ By default, [useAsyncData](/docs/api/composables/use-async-data) blocks navigati ## Example ```vue - - - + + ``` ::alert{type=warning} diff --git a/docs/3.api/1.composables/use-lazy-fetch.md b/docs/3.api/1.composables/use-lazy-fetch.md index 35d9fdaf2b..c79f9be1b5 100644 --- a/docs/3.api/1.composables/use-lazy-fetch.md +++ b/docs/3.api/1.composables/use-lazy-fetch.md @@ -17,6 +17,17 @@ By default, [useFetch](/docs/api/composables/use-fetch) blocks navigation until ## Example ```vue + + - - ``` ::alert{type=warning} diff --git a/docs/3.api/1.composables/use-nuxt-app.md b/docs/3.api/1.composables/use-nuxt-app.md index 4ef42e38e3..f12d562a75 100644 --- a/docs/3.api/1.composables/use-nuxt-app.md +++ b/docs/3.api/1.composables/use-nuxt-app.md @@ -5,8 +5,8 @@ You can use `useNuxtApp()` within composables, plugins and components. ```vue [app.vue] - ``` @@ -90,7 +90,7 @@ await nuxtApp.callHook('my-plugin:init') - **data** (object) - When you fetch the data from an API endpoint using either [`useFetch`](/docs/api/composables/use-fetch) or [`useAsyncData`](/docs/api/composables/use-async-data) , resulting payload can be accessed from the `payload.data`. This data is cached and helps you prevent fetching the same data in case an identical request is made more than once. ```vue [app.vue] - ``` diff --git a/docs/3.api/1.composables/use-request-headers.md b/docs/3.api/1.composables/use-request-headers.md index ecd4e5448d..7a89b69f07 100644 --- a/docs/3.api/1.composables/use-request-headers.md +++ b/docs/3.api/1.composables/use-request-headers.md @@ -26,7 +26,7 @@ We can use [`useRequestHeaders`](/docs/api/composables/use-request-headers) to a The example below adds the `authorization` request header to an isomorphic `$fetch` call. ```vue [pages/some-page.vue] - diff --git a/docs/3.api/1.composables/use-route.md b/docs/3.api/1.composables/use-route.md index 1dab49fd34..bdfa19b143 100644 --- a/docs/3.api/1.composables/use-route.md +++ b/docs/3.api/1.composables/use-route.md @@ -14,7 +14,7 @@ Within the template of a Vue component, you can access the route using `$route`. In the following example, we call an API via [`useFetch`](/docs/api/composables/use-fetch) using a dynamic page parameter - `slug` - as part of the URL. ```html [~/pages/[slug].vue] - diff --git a/docs/3.api/2.components/2.nuxt-page.md b/docs/3.api/2.components/2.nuxt-page.md index 6a89caeff2..19b5878b7b 100644 --- a/docs/3.api/2.components/2.nuxt-page.md +++ b/docs/3.api/2.components/2.nuxt-page.md @@ -37,7 +37,7 @@ For example, passing `static` key, `NuxtPage` component is rendered only once wh Alternatively, `pageKey` can be passed as a `key` value via `definePageMeta` from the ` + + ```` ## Custom Props diff --git a/docs/3.api/2.components/3.nuxt-layout.md b/docs/3.api/2.components/3.nuxt-layout.md index 607d272408..f408d0da5d 100644 --- a/docs/3.api/2.components/3.nuxt-layout.md +++ b/docs/3.api/2.components/3.nuxt-layout.md @@ -23,16 +23,16 @@ You can use `` component to activate `default` layout on `app.vue` ### Examples ```vue [pages/index.vue] + + - - ``` ::alert{icon=👉} @@ -66,16 +66,16 @@ Please note the layout name is normalized to kebab-case, so if your layout file To get the ref of a layout component, access it through `ref.value.layoutRef` ````html - - + + ```` ::ReadMore{link="/docs/guide/directory-structure/layouts"} diff --git a/docs/3.api/3.utils/$fetch.md b/docs/3.api/3.utils/$fetch.md index dbe5df6a69..c780897eee 100644 --- a/docs/3.api/3.utils/$fetch.md +++ b/docs/3.api/3.utils/$fetch.md @@ -14,7 +14,7 @@ However, using `$fetch` in components without wrapping it with [`useAsyncData`]( We recommend to use [`useFetch`](https://nuxt.com/docs/api/composables/use-fetch) or [`useAsyncData`](https://nuxt.com/docs/api/composables/use-async-data) + `$fetch` to prevent double data fetching when fetching the component data. ```vue - ``` @@ -115,16 +115,16 @@ The example below demonstrates: - adding `pageType` as a custom property: ```vue [pages/some-page.vue] - ``` @@ -133,28 +133,28 @@ The example below demonstrates: The example below shows how the middleware can be defined using a `function` directly within the `definePageMeta` or set as a `string` that matches the middleware file name located in the `middleware/` directory: ```vue [pages/some-page.vue] - ``` @@ -164,13 +164,13 @@ The example below shows how the middleware can be defined using a `function` dir You can define the layout that matches the layout's file name located (by default) in the [`layouts/` directory](/docs/guide/directory-structure/layouts). You can also disable the layout by setting the `layout` to `false`: ```vue [pages/some-page.vue] - ``` diff --git a/docs/3.api/3.utils/navigate-to.md b/docs/3.api/3.utils/navigate-to.md index 4249df62bd..e2dc246e91 100644 --- a/docs/3.api/3.utils/navigate-to.md +++ b/docs/3.api/3.utils/navigate-to.md @@ -127,7 +127,7 @@ An object accepting the following properties: ### Navigating Within a Vue Component ```vue - + + ``` ### Refresh Specific Data @@ -54,17 +54,17 @@ const refreshAll = async () => { This example below refreshes only data where the key matches to `count`. ```vue [pages/some-page.vue] + + - - ``` ::ReadMore{link="/docs/getting-started/data-fetching"} diff --git a/docs/6.bridge/1.overview.md b/docs/6.bridge/1.overview.md index 4331447419..704fe3717b 100644 --- a/docs/6.bridge/1.overview.md +++ b/docs/6.bridge/1.overview.md @@ -260,7 +260,7 @@ Nuxt Bridge does not support `definePageMeta`. Nuxt Bridge provides a new Nuxt 3 meta API that can be accessed with a new [`useHead`](/docs/api/composables/use-head) composable. ```vue - ``` @@ -136,7 +136,7 @@ The validate hook in Nuxt 3 only accepts a single argument, the `route`. Just as This is not supported in Nuxt 3. Instead, you can directly use a watcher to trigger refetching data. ```vue [pages/users/[id].vue] - ``` From 4b6f3e1ba11ee247906a34ea76292bf3a171ed3b Mon Sep 17 00:00:00 2001 From: Alexander Lichter Date: Tue, 18 Jul 2023 13:31:35 +0200 Subject: [PATCH 535/912] fix(nuxt): work around payload extraction issue (#22162) Co-authored-by: Daniel Roe --- packages/nuxt/src/core/nitro.ts | 1 - packages/nuxt/src/core/nuxt.ts | 6 +++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index b02f91aeee..7e293094f2 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -191,7 +191,6 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { 'process.env.NUXT_EARLY_HINTS': nuxt.options.experimental.writeEarlyHints !== false, 'process.env.NUXT_NO_SCRIPTS': !!nuxt.options.experimental.noScripts && !nuxt.options.dev, 'process.env.NUXT_INLINE_STYLES': !!nuxt.options.experimental.inlineSSRStyles, - 'process.env.NUXT_PAYLOAD_EXTRACTION': !!nuxt.options.experimental.payloadExtraction, 'process.env.NUXT_JSON_PAYLOADS': !!nuxt.options.experimental.renderJsonPayloads, 'process.env.NUXT_COMPONENT_ISLANDS': !!nuxt.options.experimental.componentIslands, 'process.dev': nuxt.options.dev, diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index 9f227cf8a1..7073d8099d 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -374,10 +374,14 @@ async function initNuxt (nuxt: Nuxt) { // TODO: remove when app manifest support is landed in https://github.com/nuxt/nuxt/pull/21641 // Add prerender payload support - if (useNitro().options.static && nuxt.options.experimental.payloadExtraction === undefined) { + const nitro = useNitro() + if (nitro.options.static && nuxt.options.experimental.payloadExtraction === undefined) { console.warn('Using experimental payload extraction for full-static output. You can opt-out by setting `experimental.payloadExtraction` to `false`.') nuxt.options.experimental.payloadExtraction = true } + nitro.options.replace['process.env.NUXT_PAYLOAD_EXTRACTION'] = String(!!nuxt.options.experimental.payloadExtraction) + nitro.options._config.replace!['process.env.NUXT_PAYLOAD_EXTRACTION'] = String(!!nuxt.options.experimental.payloadExtraction) + if (!nuxt.options.dev && nuxt.options.experimental.payloadExtraction) { addPlugin(resolve(nuxt.options.appDir, 'plugins/payload.client')) } From f4ec04f5208e81e7a657e3a727adf7fcd019fc77 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Tue, 18 Jul 2023 17:07:35 +0200 Subject: [PATCH 536/912] fix(nuxt): add `baseURL` to island fetch requests (#22009) --- packages/nuxt/src/app/components/nuxt-island.ts | 8 +++++--- test/basic.test.ts | 11 +++++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index d465417772..c268265d6c 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -4,13 +4,13 @@ import { hash } from 'ohash' import { appendResponseHeader } from 'h3' import { useHead } from '@unhead/vue' import { randomUUID } from 'uncrypto' -import { withQuery } from 'ufo' +import { joinURL, withQuery } from 'ufo' import type { FetchResponse } from 'ofetch' // eslint-disable-next-line import/no-restricted-paths import type { NuxtIslandResponse } from '../../core/runtime/nitro/renderer' import { getFragmentHTML, getSlotProps } from './utils' -import { useNuxtApp } from '#app/nuxt' +import { useNuxtApp, useRuntimeConfig } from '#app/nuxt' import { useRequestEvent } from '#app/composables/ssr' const pKey = '_islandPromises' @@ -39,6 +39,7 @@ export default defineComponent({ } }, async setup (props, { slots }) { + const config = useRuntimeConfig() const nuxtApp = useNuxtApp() const hashId = computed(() => hash([props.name, props.props, props.context])) const instance = getCurrentInstance()! @@ -105,7 +106,8 @@ export default defineComponent({ appendResponseHeader(event, 'x-nitro-prerender', url) } // TODO: Validate response - const r = await eventFetch(withQuery(url, { + // $fetch handles the app.baseURL in dev + const r = await eventFetch(withQuery(process.dev && process.client ? url : joinURL(config.app.baseURL ?? '', url), { ...props.context, props: props.props ? JSON.stringify(props.props) : undefined })) diff --git a/test/basic.test.ts b/test/basic.test.ts index da48d3defa..c069af1a11 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1751,6 +1751,17 @@ describe('component islands', () => { await page.close() }) + + it.skipIf(isDev())('should not render an error when having a baseURL', async () => { + process.env.NUXT_APP_BASE_URL = '/foo/' + await startServer() + + const result = await fetch('/foo/islands') + expect(result.status).toBe(200) + + process.env.NUXT_APP_BASE_URL = undefined + await startServer() + }) }) describe.runIf(isDev() && !isWebpack)('vite plugins', () => { From f6b64f6a65761e05abd6de4aea976dfaf240efae Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 18 Jul 2023 17:20:06 +0200 Subject: [PATCH 537/912] fix(nuxt): resolve race condition regenerating auto imports (#22201) --- packages/nuxt/src/imports/module.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/imports/module.ts b/packages/nuxt/src/imports/module.ts index f86a6243f9..437671e526 100644 --- a/packages/nuxt/src/imports/module.ts +++ b/packages/nuxt/src/imports/module.ts @@ -87,9 +87,10 @@ export default defineNuxtModule>({ const priorities = nuxt.options._layers.map((layer, i) => [layer.config.srcDir, -i] as const).sort(([a], [b]) => b.length - a.length) const regenerateImports = async () => { - ctx.clearDynamicImports() await ctx.modifyDynamicImports(async (imports) => { - // Scan composables/ + // Clear old imports + imports.length = 0 + // Scan `composables/` const composableImports = await scanDirExports(composablesDirs) for (const i of composableImports) { i.priority = i.priority || priorities.find(([dir]) => i.from.startsWith(dir))?.[1] @@ -97,6 +98,7 @@ export default defineNuxtModule>({ imports.push(...composableImports) // Modules extending await nuxt.callHook('imports:extend', imports) + return imports }) } From 449a01526ae52210abff4632126b7a0e1cc1de14 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 18 Jul 2023 16:21:53 +0100 Subject: [PATCH 538/912] fix(nuxt): ensure we only increment hydrating count once (#22200) --- packages/nuxt/src/app/components/layout.ts | 3 ++- packages/nuxt/src/pages/runtime/page.ts | 3 ++- test/basic.test.ts | 10 ++++++++++ test/fixtures/basic/nuxt.config.ts | 1 + .../basic/pages/hydration/spa-redirection/end.vue | 12 ++++++++++++ .../basic/pages/hydration/spa-redirection/start.vue | 11 +++++++++++ 6 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/basic/pages/hydration/spa-redirection/end.vue create mode 100644 test/fixtures/basic/pages/hydration/spa-redirection/start.vue diff --git a/packages/nuxt/src/app/components/layout.ts b/packages/nuxt/src/app/components/layout.ts index 8a0d633996..b4f4b793c8 100644 --- a/packages/nuxt/src/app/components/layout.ts +++ b/packages/nuxt/src/app/components/layout.ts @@ -33,8 +33,9 @@ export default defineComponent({ const layoutRef = ref() context.expose({ layoutRef }) + const done = nuxtApp.deferHydration() + return () => { - const done = nuxtApp.deferHydration() const hasLayout = layout.value && layout.value in layouts if (process.dev && layout.value && !hasLayout && layout.value !== 'default') { console.warn(`Invalid layout \`${layout.value}\` selected.`) diff --git a/packages/nuxt/src/pages/runtime/page.ts b/packages/nuxt/src/pages/runtime/page.ts index b7cebd25a9..081b3ff956 100644 --- a/packages/nuxt/src/pages/runtime/page.ts +++ b/packages/nuxt/src/pages/runtime/page.ts @@ -46,6 +46,8 @@ export default defineComponent({ const _layoutMeta = inject(LayoutMetaSymbol, null) let vnode: VNode + const done = nuxtApp.deferHydration() + return () => { return h(RouterView, { name: props.name, route: props.route, ...attrs }, { default: (routeProps: RouterViewSlotProps) => { @@ -76,7 +78,6 @@ export default defineComponent({ } const key = generateRouteKey(routeProps, props.pageKey) - const done = nuxtApp.deferHydration() const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition) const transitionProps = hasTransition && _mergeTransitionProps([ diff --git a/test/basic.test.ts b/test/basic.test.ts index c069af1a11..d1d68f765a 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1034,6 +1034,16 @@ describe('deferred app suspense resolve', () => { it('should wait for all suspense instance on initial hydration', async () => { await behaviour('/internal-layout/async-parent/child') }) + it('should fully hydrate even if there is a redirection on a page with `ssr: false`', async () => { + const page = await createPage('/hydration/spa-redirection/start') + await page.waitForLoadState('networkidle') + + // Wait for all pending micro ticks to be cleared in case hydration hasn't finished yet. + await page.evaluate(() => new Promise(resolve => setTimeout(resolve, 10))) + + const html = await page.getByRole('document').innerHTML() + expect(html).toContain('fully hydrated and ready to go') + }) }) describe('nested suspense', () => { diff --git a/test/fixtures/basic/nuxt.config.ts b/test/fixtures/basic/nuxt.config.ts index 5a6d38d138..82ea65ef03 100644 --- a/test/fixtures/basic/nuxt.config.ts +++ b/test/fixtures/basic/nuxt.config.ts @@ -48,6 +48,7 @@ export default defineNuxtConfig({ }, routeRules: { '/route-rules/spa': { ssr: false }, + '/hydration/spa-redirection/**': { ssr: false }, '/no-scripts': { experimentalNoScripts: true } }, output: { dir: process.env.NITRO_OUTPUT_DIR }, diff --git a/test/fixtures/basic/pages/hydration/spa-redirection/end.vue b/test/fixtures/basic/pages/hydration/spa-redirection/end.vue new file mode 100644 index 0000000000..0f117f8bbb --- /dev/null +++ b/test/fixtures/basic/pages/hydration/spa-redirection/end.vue @@ -0,0 +1,12 @@ + + + diff --git a/test/fixtures/basic/pages/hydration/spa-redirection/start.vue b/test/fixtures/basic/pages/hydration/spa-redirection/start.vue new file mode 100644 index 0000000000..854812be39 --- /dev/null +++ b/test/fixtures/basic/pages/hydration/spa-redirection/start.vue @@ -0,0 +1,11 @@ + + + From 5b409f8579b97e833308ca2d7f1fcf95df6b14aa Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jul 2023 07:55:53 +0100 Subject: [PATCH 539/912] fix(nuxt): avoid premature hydration when using async layouts (#22198) --- packages/nuxt/src/app/components/layout.ts | 47 +++++++++++++++---- packages/nuxt/src/core/templates.ts | 3 +- test/basic.test.ts | 12 ++++- .../fixtures/basic/pages/hydration/layout.vue | 18 +++++++ 4 files changed, 67 insertions(+), 13 deletions(-) create mode 100644 test/fixtures/basic/pages/hydration/layout.vue diff --git a/packages/nuxt/src/app/components/layout.ts b/packages/nuxt/src/app/components/layout.ts index b4f4b793c8..bb1b149265 100644 --- a/packages/nuxt/src/app/components/layout.ts +++ b/packages/nuxt/src/app/components/layout.ts @@ -13,6 +13,21 @@ import layouts from '#build/layouts' import { appLayoutTransition as defaultLayoutTransition } from '#build/nuxt.config.mjs' import { useNuxtApp } from '#app' +// TODO: revert back to defineAsyncComponent when https://github.com/vuejs/core/issues/6638 is resolved +const LayoutLoader = defineComponent({ + name: 'LayoutLoader', + inheritAttrs: false, + props: { + name: String, + layoutProps: Object + }, + async setup (props, context) { + const LayoutComponent = await layouts[props.name]().then((r: any) => r.default || r) + + return () => h(LayoutComponent, props.layoutProps, context.slots) + } +}) + export default defineComponent({ name: 'NuxtLayout', inheritAttrs: false, @@ -46,14 +61,16 @@ export default defineComponent({ // We avoid rendering layout transition if there is no layout to render return _wrapIf(Transition, hasLayout && transitionProps, { default: () => h(Suspense, { suspensible: true, onResolve: () => { nextTick(done) } }, { - // @ts-expect-error seems to be an issue in vue types - default: () => h(LayoutProvider, { - layoutProps: mergeProps(context.attrs, { ref: layoutRef }), - key: layout.value, - name: layout.value, - shouldProvide: !props.name, - hasTransition: !!transitionProps - }, context.slots) + default: () => h( + // @ts-expect-error seems to be an issue in vue types + LayoutProvider, + { + layoutProps: mergeProps(context.attrs, { ref: layoutRef }), + key: layout.value, + name: layout.value, + shouldProvide: !props.name, + hasTransition: !!transitionProps + }, context.slots) }) }).default() } @@ -112,12 +129,22 @@ const LayoutProvider = defineComponent({ } if (process.dev && process.client && props.hasTransition) { - vnode = h(layouts[name], props.layoutProps, context.slots) + vnode = h( + // @ts-expect-error seems to be an issue in vue types + LayoutLoader, + { key: name, layoutProps: props.layoutProps, name }, + context.slots + ) return vnode } - return h(layouts[name], props.layoutProps, context.slots) + return h( + // @ts-expect-error seems to be an issue in vue types + LayoutLoader, + { key: name, layoutProps: props.layoutProps, name }, + context.slots + ) } } }) diff --git a/packages/nuxt/src/core/templates.ts b/packages/nuxt/src/core/templates.ts index f3c67bcc96..8979f829b1 100644 --- a/packages/nuxt/src/core/templates.ts +++ b/packages/nuxt/src/core/templates.ts @@ -175,10 +175,9 @@ export const layoutTemplate: NuxtTemplate = { filename: 'layouts.mjs', getContents ({ app }) { const layoutsObject = genObjectFromRawEntries(Object.values(app.layouts).map(({ name, file }) => { - return [name, `defineAsyncComponent(${genDynamicImport(file, { interopDefault: true })})`] + return [name, genDynamicImport(file, { interopDefault: true })] })) return [ - 'import { defineAsyncComponent } from \'vue\'', `export default ${layoutsObject}` ].join('\n') } diff --git a/test/basic.test.ts b/test/basic.test.ts index d1d68f765a..9c1d553664 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1020,7 +1020,7 @@ describe('deferred app suspense resolve', () => { await page.goto(url(path)) await page.waitForLoadState('networkidle') - // Wait for all pending micro ticks to be cleared in case hydration haven't finished yet. + // Wait for all pending micro ticks to be cleared in case hydration hasn't finished yet. await page.evaluate(() => new Promise(resolve => setTimeout(resolve, 10))) const hydrationLogs = logs.filter(log => log.includes('isHydrating')) @@ -1034,6 +1034,16 @@ describe('deferred app suspense resolve', () => { it('should wait for all suspense instance on initial hydration', async () => { await behaviour('/internal-layout/async-parent/child') }) + it('should wait for suspense in parent layout', async () => { + const page = await createPage('/hydration/layout') + await page.waitForLoadState('networkidle') + + // Wait for all pending micro ticks to be cleared in case hydration hasn't finished yet. + await page.evaluate(() => new Promise(resolve => setTimeout(resolve, 10))) + + const html = await page.getByRole('document').innerHTML() + expect(html).toContain('Tests whether hydration is properly resolved within an async layout') + }) it('should fully hydrate even if there is a redirection on a page with `ssr: false`', async () => { const page = await createPage('/hydration/spa-redirection/start') await page.waitForLoadState('networkidle') diff --git a/test/fixtures/basic/pages/hydration/layout.vue b/test/fixtures/basic/pages/hydration/layout.vue new file mode 100644 index 0000000000..a28776ab6e --- /dev/null +++ b/test/fixtures/basic/pages/hydration/layout.vue @@ -0,0 +1,18 @@ + + + From fb77cc04c7bc49e0e3ec0fd964546ae4ca70c1d0 Mon Sep 17 00:00:00 2001 From: Nirina Rabeson Date: Wed, 19 Jul 2023 14:32:10 +0200 Subject: [PATCH 540/912] fix(nuxi): support `--inspect` in dev mode (#22205) --- packages/nuxi/src/cli-wrapper.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/nuxi/src/cli-wrapper.ts b/packages/nuxi/src/cli-wrapper.ts index 251ace7673..ad3d0c990f 100644 --- a/packages/nuxi/src/cli-wrapper.ts +++ b/packages/nuxi/src/cli-wrapper.ts @@ -33,7 +33,10 @@ function startSubprocess () { start() function start () { - childProc = fork(fileURLToPath(cliEntry)) + const _argv: string[] = (process.env.__CLI_ARGV__ ? JSON.parse(process.env.__CLI_ARGV__) : process.argv).slice(2) + const execArguments: string[] = getInspectArgs() + + childProc = fork(fileURLToPath(cliEntry), [], { execArgv: execArguments }) childProc.on('close', (code) => { if (code) { process.exit(code) } }) childProc.on('message', (message) => { if ((message as { type: string })?.type === 'nuxt:restart') { @@ -41,5 +44,15 @@ function startSubprocess () { startSubprocess() } }) + + function getInspectArgs (): string[] { + const inspectArgv = _argv.find(argvItem => argvItem.includes('--inspect')) + + if (!inspectArgv) { + return [] + } + + return [inspectArgv] + } } } From 61146aacaffa24772b1c2107ef623f2ab202141c Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jul 2023 14:38:52 +0100 Subject: [PATCH 541/912] fix(test-utils): pass along error if server can't start (#22216) --- packages/test-utils/src/server.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/test-utils/src/server.ts b/packages/test-utils/src/server.ts index 99c55e60b4..01e51cd946 100644 --- a/packages/test-utils/src/server.ts +++ b/packages/test-utils/src/server.ts @@ -28,6 +28,7 @@ export async function startServer () { } }) await waitForPort(port, { retries: 32 }) + let lastError for (let i = 0; i < 50; i++) { await new Promise(resolve => setTimeout(resolve, 100)) try { @@ -35,10 +36,12 @@ export async function startServer () { if (!res.includes('__NUXT_LOADING__')) { return } - } catch {} + } catch (e) { + lastError = e + } } ctx.serverProcess.kill() - throw new Error('Timeout waiting for dev server!') + throw lastError || new Error('Timeout waiting for dev server!') } else { ctx.serverProcess = execa('node', [ resolve(ctx.nuxt!.options.nitro.output!.dir!, 'server/index.mjs') From 0f16cd6124107f9a7f961e649920f5ea36c2baa6 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jul 2023 15:43:28 +0100 Subject: [PATCH 542/912] perf(nuxt,schema): do not watch `buildDir` and `node_modules` (#22214) --- packages/nuxt/src/components/module.ts | 2 +- packages/nuxt/src/components/transform.ts | 4 +++- packages/nuxt/src/core/builder.ts | 10 ++++------ packages/schema/src/config/common.ts | 17 ++++++++--------- test/setup.ts | 4 +++- 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/packages/nuxt/src/components/module.ts b/packages/nuxt/src/components/module.ts index d21bc541c7..c086d6ee29 100644 --- a/packages/nuxt/src/components/module.ts +++ b/packages/nuxt/src/components/module.ts @@ -98,7 +98,7 @@ export default defineNuxtModule({ pattern: dirOptions.pattern || `**/*.{${extensions.join(',')},}`, ignore: [ '**/*{M,.m,-m}ixin.{js,ts,jsx,tsx}', // ignore mixins - '**/*.d.ts', // .d.ts files + '**/*.d.{cts,mts,ts}', // .d.ts files ...(dirOptions.ignore || []) ], transpile: (transpile === 'auto' ? dirPath.includes('node_modules') : transpile) diff --git a/packages/nuxt/src/components/transform.ts b/packages/nuxt/src/components/transform.ts index 3872703cd7..579cf42e7b 100644 --- a/packages/nuxt/src/components/transform.ts +++ b/packages/nuxt/src/components/transform.ts @@ -5,6 +5,7 @@ import { createUnimport } from 'unimport' import { createUnplugin } from 'unplugin' import { parseURL } from 'ufo' import { parseQuery } from 'vue-router' +import { normalize } from 'pathe' import type { getComponentsT } from './module' const COMPONENT_QUERY_RE = /[?&]nuxt_component=/ @@ -45,7 +46,8 @@ export function createTransformPlugin (nuxt: Nuxt, getComponents: getComponentsT return createUnplugin(() => ({ name: 'nuxt:components:imports', transformInclude (id) { - return !isIgnored(id) + id = normalize(id) + return id.startsWith('virtual:') || id.startsWith(nuxt.options.buildDir) || !isIgnored(id) }, async transform (code, id) { // Virtual component wrapper diff --git a/packages/nuxt/src/core/builder.ts b/packages/nuxt/src/core/builder.ts index 9a397d4e9a..c6fd13cda3 100644 --- a/packages/nuxt/src/core/builder.ts +++ b/packages/nuxt/src/core/builder.ts @@ -76,13 +76,12 @@ function createWatcher () { ignoreInitial: true, ignored: [ isIgnored, - '.nuxt', 'node_modules' ] }) watcher.on('all', (event, path) => nuxt.callHook('builder:watch', event, normalize(path))) - nuxt.hook('close', () => watcher.close()) + nuxt.hook('close', () => watcher?.close()) } function createGranularWatcher () { @@ -104,7 +103,7 @@ function createGranularWatcher () { } for (const dir of pathsToWatch) { pending++ - const watcher = chokidar.watch(dir, { ...nuxt.options.watchers.chokidar, ignoreInitial: false, depth: 0, ignored: [isIgnored] }) + const watcher = chokidar.watch(dir, { ...nuxt.options.watchers.chokidar, ignoreInitial: false, depth: 0, ignored: [isIgnored, '**/node_modules'] }) const watchers: Record = {} watcher.on('all', (event, path) => { @@ -113,13 +112,13 @@ function createGranularWatcher () { nuxt.callHook('builder:watch', event, path) } if (event === 'unlinkDir' && path in watchers) { - watchers[path].close() + watchers[path]?.close() delete watchers[path] } if (event === 'addDir' && path !== dir && !ignoredDirs.has(path) && !pathsToWatch.includes(path) && !(path in watchers) && !isIgnored(path)) { watchers[path] = chokidar.watch(path, { ...nuxt.options.watchers.chokidar, ignored: [isIgnored] }) watchers[path].on('all', (event, path) => nuxt.callHook('builder:watch', event, normalize(path))) - nuxt.hook('close', () => watchers[path].close()) + nuxt.hook('close', () => watchers[path]?.close()) } }) watcher.on('ready', () => { @@ -150,7 +149,6 @@ async function createParcelWatcher () { }, { ignore: [ ...nuxt.options.ignore, - '.nuxt', 'node_modules' ] }) diff --git a/packages/schema/src/config/common.ts b/packages/schema/src/config/common.ts index 1e13d6c269..ffd76c8b45 100644 --- a/packages/schema/src/config/common.ts +++ b/packages/schema/src/config/common.ts @@ -1,5 +1,5 @@ import { defineUntypedSchema } from 'untyped' -import { join, resolve } from 'pathe' +import { join, relative, resolve } from 'pathe' import { isDebug, isDevelopment } from 'std-env' import { defu } from 'defu' import { findWorkspaceDir } from 'pkg-types' @@ -352,14 +352,13 @@ export default defineUntypedSchema({ */ ignore: { $resolve: async (val, get) => [ - '**/*.stories.{js,ts,jsx,tsx}', // ignore storybook files - '**/*.{spec,test}.{js,ts,jsx,tsx}', // ignore tests - '**/*.d.ts', // ignore type declarations - '.output', - '.git', - '.cache', - await get('analyzeDir'), - await get('buildDir'), + '**/*.stories.{js,cts,mts,ts,jsx,tsx}', // ignore storybook files + '**/*.{spec,test}.{js,cts,mts,ts,jsx,tsx}', // ignore tests + '**/*.d.{cts,mts,ts}', // ignore type declarations + '**/.{vercel,netlify,output,git,cache,data}', + '**/dist', + relative(await get('rootDir'), await get('analyzeDir')), + relative(await get('rootDir'), await get('buildDir')), await get('ignorePrefix') && `**/${await get('ignorePrefix')}*.*` ].concat(val).filter(Boolean) }, diff --git a/test/setup.ts b/test/setup.ts index a444d934b2..e04fd8d8f4 100644 --- a/test/setup.ts +++ b/test/setup.ts @@ -10,7 +10,9 @@ export async function setup () { if (fs.existsSync(tempDir)) { await fs.remove(tempDir) } - await fs.copy(fixtureDir, tempDir) + await fs.copy(fixtureDir, tempDir, { + filter: src => !src.includes('.cache') + }) } export async function teardown () { From 380a91985c350281aba2d8eb16c65b0ebc39ea8b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 19 Jul 2023 16:19:14 +0100 Subject: [PATCH 543/912] v3.6.4 --- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index a9d6124278..069a64d387 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.6.3", + "version": "3.6.4", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 313485a7c6..9730018def 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -1,6 +1,6 @@ { "name": "nuxi", - "version": "3.6.3", + "version": "3.6.4", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 05c5d2d6a7..e85213c04a 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.6.3", + "version": "3.6.4", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/schema/package.json b/packages/schema/package.json index db30e0148d..42ccfdda9a 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.6.3", + "version": "3.6.4", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 96fe11e5c6..97d910db6e 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.6.3", + "version": "3.6.4", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/vite/package.json b/packages/vite/package.json index 6d19e10939..184dd1a161 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.6.3", + "version": "3.6.4", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 02ece3d4f5..8eec6bb259 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.6.3", + "version": "3.6.4", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", From 03abb6aa4a879c2d3b97595cd3880c682c180dc2 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Wed, 19 Jul 2023 19:32:27 +0200 Subject: [PATCH 544/912] fix(nuxt): remove `dist` from the default ignore list (#22227) --- packages/schema/src/config/common.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/schema/src/config/common.ts b/packages/schema/src/config/common.ts index ffd76c8b45..d5801081f2 100644 --- a/packages/schema/src/config/common.ts +++ b/packages/schema/src/config/common.ts @@ -356,7 +356,6 @@ export default defineUntypedSchema({ '**/*.{spec,test}.{js,cts,mts,ts,jsx,tsx}', // ignore tests '**/*.d.{cts,mts,ts}', // ignore type declarations '**/.{vercel,netlify,output,git,cache,data}', - '**/dist', relative(await get('rootDir'), await get('analyzeDir')), relative(await get('rootDir'), await get('buildDir')), await get('ignorePrefix') && `**/${await get('ignorePrefix')}*.*` From f6a3adb52156774ab372829a2ee2533906758288 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 19 Jul 2023 19:40:34 +0200 Subject: [PATCH 545/912] v3.6.5 (#22229) Co-authored-by: Daniel Roe --- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 069a64d387..39e1cff847 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.6.4", + "version": "3.6.5", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 9730018def..b78adede77 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -1,6 +1,6 @@ { "name": "nuxi", - "version": "3.6.4", + "version": "3.6.5", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index e85213c04a..aada744201 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.6.4", + "version": "3.6.5", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/schema/package.json b/packages/schema/package.json index 42ccfdda9a..62a2a8510c 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.6.4", + "version": "3.6.5", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 97d910db6e..fc24ad5191 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.6.4", + "version": "3.6.5", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/vite/package.json b/packages/vite/package.json index 184dd1a161..80b16aca66 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.6.4", + "version": "3.6.5", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 8eec6bb259..9ebfc34ade 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.6.4", + "version": "3.6.5", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", From 42284c96a70d18a07d5d04eec9906cfef9aab39e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 19 Jul 2023 16:24:33 +0100 Subject: [PATCH 546/912] feat(vite): unpin vite from minor (#22031) --- packages/vite/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 80b16aca66..7e787f7c79 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -57,7 +57,7 @@ "strip-literal": "^1.0.1", "ufo": "^1.1.2", "unplugin": "^1.3.2", - "vite": "~4.3.9", + "vite": "^4.3.9", "vite-node": "^0.33.0", "vite-plugin-checker": "^0.6.1", "vue-bundle-renderer": "^1.0.3" From bea5ec35fb38f74c1e7945100428a30adf73bc72 Mon Sep 17 00:00:00 2001 From: Bogdan Kostyuk Date: Thu, 20 Jul 2023 09:53:29 +0100 Subject: [PATCH 547/912] feat(nuxt): polyfill idle callback utils (#21863) --- packages/nuxt/src/app/index.ts | 1 + packages/nuxt/src/imports/presets.ts | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/index.ts b/packages/nuxt/src/app/index.ts index 70ea4e391c..bd23bc8e74 100644 --- a/packages/nuxt/src/app/index.ts +++ b/packages/nuxt/src/app/index.ts @@ -4,6 +4,7 @@ export * from './nuxt' export * from './composables/index' export * from './components/index' export * from './config' +export * from './compat/idle-callback' // eslint-disable-next-line import/no-restricted-paths export type { PageMeta } from '../pages/runtime/index' diff --git a/packages/nuxt/src/imports/presets.ts b/packages/nuxt/src/imports/presets.ts index 7e3d741f58..8625302b8e 100644 --- a/packages/nuxt/src/imports/presets.ts +++ b/packages/nuxt/src/imports/presets.ts @@ -60,7 +60,9 @@ const appPreset = defineUnimportPreset({ 'preloadPayload', 'isPrerendered', 'definePayloadReducer', - 'definePayloadReviver' + 'definePayloadReviver', + 'requestIdleCallback', + 'cancelIdleCallback' ] }) From a2552c0191c15a334ca803e487da0c875f388079 Mon Sep 17 00:00:00 2001 From: Lucas Vargas Date: Thu, 20 Jul 2023 09:54:03 +0100 Subject: [PATCH 548/912] feat(nuxt): smooth scroll behavior option (#21948) --- packages/nuxt/src/pages/runtime/router.options.ts | 5 +++-- packages/schema/src/types/router.ts | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/pages/runtime/router.options.ts b/packages/nuxt/src/pages/runtime/router.options.ts index 5f5405da3e..1a8875f3c2 100644 --- a/packages/nuxt/src/pages/runtime/router.options.ts +++ b/packages/nuxt/src/pages/runtime/router.options.ts @@ -12,6 +12,7 @@ type ScrollPosition = Awaited> export default { scrollBehavior (to, from, savedPosition) { const nuxtApp = useNuxtApp() + const behavior = this.scrollBehaviorType ?? 'auto' // By default when the returned position is falsy or an empty object, vue-router will retain the current scroll position // savedPosition is only available for popstate navigations (back button) @@ -28,7 +29,7 @@ export default { return { left: 0, top: 0 } } if (to.hash) { - return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash) } + return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior } } } @@ -39,7 +40,7 @@ export default { nuxtApp.hooks.hookOnce(hookToWait, async () => { await nextTick() if (to.hash) { - position = { el: to.hash, top: _getHashElementScrollMarginTop(to.hash) } + position = { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior } } resolve(position) }) diff --git a/packages/schema/src/types/router.ts b/packages/schema/src/types/router.ts index f47d18bf14..5d0f0ffe2c 100644 --- a/packages/schema/src/types/router.ts +++ b/packages/schema/src/types/router.ts @@ -5,6 +5,7 @@ export type RouterOptions = Partial> history?: (baseURL?: string) => RouterHistory routes?: (_routes: _RouterOptions['routes']) => _RouterOptions['routes'] hashMode?: boolean + scrollBehaviorType?: 'smooth' | 'auto' } export type RouterConfig = RouterOptions @@ -12,4 +13,4 @@ export type RouterConfig = RouterOptions /** * Only JSON serializable router options are configurable from nuxt config */ -export type RouterConfigSerializable = Pick +export type RouterConfigSerializable = Pick From 1f1de38d0304ef8a00aaae1c02019fcf015f2f19 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Jul 2023 10:43:33 +0100 Subject: [PATCH 549/912] chore(deps): update all non-major dependencies (main) (#21979) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- .github/workflows/ci.yml | 4 +- .github/workflows/scorecards.yml | 2 +- package.json | 19 +- packages/kit/package.json | 8 +- packages/nuxi/package.json | 4 +- packages/nuxt/package.json | 16 +- packages/schema/package.json | 8 +- packages/test-utils/package.json | 4 +- packages/vite/package.json | 8 +- packages/webpack/package.json | 8 +- pnpm-lock.yaml | 1355 +++++++++++++++--------------- test/bundle.test.ts | 8 +- 12 files changed, 700 insertions(+), 744 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 222646934b..76db0d7b95 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -86,7 +86,7 @@ jobs: run: pnpm install - name: Initialize CodeQL - uses: github/codeql-action/init@004c5de30b6423267685b897a3d595e944f7fed5 # v2.20.2 + uses: github/codeql-action/init@1813ca74c3faaa3a2da2070b9b8a0b3e7373a0d8 # v2.21.0 with: languages: javascript queries: +security-and-quality @@ -98,7 +98,7 @@ jobs: path: packages - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@004c5de30b6423267685b897a3d595e944f7fed5 # v2.20.2 + uses: github/codeql-action/analyze@1813ca74c3faaa3a2da2070b9b8a0b3e7373a0d8 # v2.21.0 with: category: "/language:javascript" diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index c2ca625e01..b5ad8bf273 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -66,6 +66,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@004c5de30b6423267685b897a3d595e944f7fed5 # v2.20.2 + uses: github/codeql-action/upload-sarif@1813ca74c3faaa3a2da2070b9b8a0b3e7373a0d8 # v2.21.0 with: sarif_file: results.sarif diff --git a/package.json b/package.json index b0ab36131e..122eedb8a5 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@nuxt/webpack-builder": "workspace:*", "nuxi": "workspace:*", "nuxt": "workspace:*", - "vite": "4.3.9", + "vite": "4.4.4", "vue": "3.3.4", "magic-string": "^0.30.1" }, @@ -53,7 +53,7 @@ "cheerio": "1.0.0-rc.12", "consola": "3.2.3", "devalue": "4.3.2", - "eslint": "8.44.0", + "eslint": "8.45.0", "eslint-plugin-import": "2.27.5", "eslint-plugin-jsdoc": "41.1.2", "eslint-plugin-no-only-tests": "3.1.0", @@ -61,29 +61,30 @@ "fs-extra": "11.1.1", "globby": "13.2.2", "h3": "1.7.1", + "happy-dom": "^10.5.2", "jiti": "1.19.1", "markdownlint-cli": "^0.33.0", "nitropack": "2.5.2", "nuxi": "workspace:*", "nuxt": "workspace:*", - "nuxt-vitest": "0.8.7", + "nuxt-vitest": "0.10.1", "ofetch": "1.1.1", "pathe": "1.1.1", - "playwright-core": "1.35.1", + "playwright-core": "1.36.1", "rimraf": "5.0.1", - "semver": "7.5.3", + "semver": "7.5.4", "std-env": "3.3.3", "typescript": "5.0.4", "ufo": "1.1.2", - "vite": "4.3.9", + "vite": "4.4.4", "vitest": "0.33.0", - "vitest-environment-nuxt": "0.8.7", + "vitest-environment-nuxt": "0.10.1", "vue": "3.3.4", "vue-eslint-parser": "9.3.1", "vue-router": "4.2.4", - "vue-tsc": "1.8.4" + "vue-tsc": "1.8.5" }, - "packageManager": "pnpm@8.6.6", + "packageManager": "pnpm@8.6.9", "engines": { "node": "^14.18.0 || >=16.10.0" } diff --git a/packages/kit/package.json b/packages/kit/package.json index 39e1cff847..16fbc7c6f1 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -33,21 +33,21 @@ "pathe": "^1.1.1", "pkg-types": "^1.0.3", "scule": "^1.0.0", - "semver": "^7.5.3", + "semver": "^7.5.4", "unctx": "^2.3.1", "unimport": "^3.0.14", "untyped": "^1.3.2" }, "devDependencies": { "@types/hash-sum": "1.0.0", - "@types/lodash-es": "4.17.7", + "@types/lodash-es": "4.17.8", "@types/semver": "7.5.0", "lodash-es": "4.17.21", "nitropack": "2.5.2", "unbuild": "latest", - "vite": "4.3.9", + "vite": "4.4.4", "vitest": "0.33.0", - "webpack": "5.88.1" + "webpack": "5.88.2" }, "engines": { "node": "^14.18.0 || >=16.10.0" diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index b78adede77..656e3ebc15 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -38,7 +38,7 @@ "giget": "1.1.2", "h3": "1.7.1", "jiti": "1.19.1", - "listhen": "1.0.4", + "listhen": "1.1.2", "mlly": "1.4.0", "mri": "1.2.0", "ohash": "1.1.2", @@ -46,7 +46,7 @@ "perfect-debounce": "1.0.0", "pkg-types": "1.0.3", "scule": "1.0.0", - "semver": "7.5.3", + "semver": "7.5.4", "ufo": "1.1.2", "unbuild": "latest" }, diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index aada744201..1a3bf1970f 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -55,11 +55,11 @@ "@nuxt/devalue": "^2.0.2", "@nuxt/kit": "workspace:../kit", "@nuxt/schema": "workspace:../schema", - "@nuxt/telemetry": "^2.3.0", + "@nuxt/telemetry": "^2.3.1", "@nuxt/ui-templates": "^1.2.0", "@nuxt/vite-builder": "workspace:../vite", - "@unhead/ssr": "^1.1.30", - "@unhead/vue": "^1.1.30", + "@unhead/ssr": "^1.1.32", + "@unhead/vue": "^1.1.32", "@vue/shared": "^3.3.4", "acorn": "8.10.0", "c12": "^1.4.2", @@ -68,7 +68,7 @@ "defu": "^6.1.2", "destr": "^2.0.0", "devalue": "^4.3.2", - "esbuild": "^0.18.11", + "esbuild": "^0.18.14", "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", "fs-extra": "^11.1.1", @@ -92,12 +92,12 @@ "scule": "^1.0.0", "strip-literal": "^1.0.1", "ufo": "^1.1.2", - "ultrahtml": "^1.2.0", + "ultrahtml": "^1.3.0", "uncrypto": "^0.1.3", "unctx": "^2.3.1", - "unenv": "^1.5.1", + "unenv": "^1.5.2", "unimport": "^3.0.14", - "unplugin": "^1.3.2", + "unplugin": "^1.4.0", "unplugin-vue-router": "^0.6.4", "untyped": "^1.3.2", "vue": "^3.3.4", @@ -112,7 +112,7 @@ "@types/prompts": "2.4.4", "@vitejs/plugin-vue": "4.2.3", "unbuild": "latest", - "vite": "4.3.9", + "vite": "4.4.4", "vitest": "0.33.0" }, "peerDependencies": { diff --git a/packages/schema/package.json b/packages/schema/package.json index 62a2a8510c..c8a10d5e8d 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -26,11 +26,11 @@ "prepack": "unbuild" }, "devDependencies": { - "@nuxt/telemetry": "2.3.0", + "@nuxt/telemetry": "2.3.1", "@types/file-loader": "5.0.1", "@types/pug": "2.0.6", "@types/sass-loader": "8.0.5", - "@unhead/schema": "1.1.30", + "@unhead/schema": "1.1.32", "@vitejs/plugin-vue": "4.2.3", "@vitejs/plugin-vue-jsx": "3.0.1", "@vue/compiler-core": "3.3.4", @@ -40,12 +40,12 @@ "nitropack": "2.5.2", "unbuild": "latest", "unctx": "2.3.1", - "vite": "4.3.9", + "vite": "4.4.4", "vue": "3.3.4", "vue-bundle-renderer": "1.0.3", "vue-loader": "17.2.2", "vue-router": "4.2.4", - "webpack": "5.88.1", + "webpack": "5.88.2", "webpack-dev-middleware": "6.1.1" }, "dependencies": { diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index fc24ad5191..08176b7c59 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -33,8 +33,8 @@ "ufo": "^1.1.2" }, "devDependencies": { - "@jest/globals": "29.6.0", - "playwright-core": "1.35.1", + "@jest/globals": "29.6.1", + "playwright-core": "1.36.1", "unbuild": "latest", "vitest": "0.33.0" }, diff --git a/packages/vite/package.json b/packages/vite/package.json index 7e787f7c79..9833cef262 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -35,7 +35,7 @@ "consola": "^3.2.3", "cssnano": "^6.0.1", "defu": "^6.1.2", - "esbuild": "^0.18.11", + "esbuild": "^0.18.14", "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", "externality": "^1.0.2", @@ -49,15 +49,15 @@ "pathe": "^1.1.1", "perfect-debounce": "^1.0.0", "pkg-types": "^1.0.3", - "postcss": "^8.4.24", + "postcss": "^8.4.26", "postcss-import": "^15.1.0", "postcss-url": "^10.1.3", "rollup-plugin-visualizer": "^5.9.2", "std-env": "^3.3.3", "strip-literal": "^1.0.1", "ufo": "^1.1.2", - "unplugin": "^1.3.2", - "vite": "^4.3.9", + "unplugin": "^1.4.0", + "vite": "^4.4.4", "vite-node": "^0.33.0", "vite-plugin-checker": "^0.6.1", "vue-bundle-renderer": "^1.0.3" diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 9ebfc34ade..2f6a3cb485 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -41,7 +41,7 @@ "ohash": "^1.1.2", "pathe": "^1.1.1", "pify": "^6.1.0", - "postcss": "^8.4.24", + "postcss": "^8.4.26", "postcss-import": "^15.1.0", "postcss-loader": "^7.3.3", "postcss-url": "^10.1.3", @@ -49,11 +49,11 @@ "std-env": "^3.3.3", "time-fix-plugin": "^2.0.7", "ufo": "^1.1.2", - "unplugin": "^1.3.2", + "unplugin": "^1.4.0", "url-loader": "^4.1.1", "vue-bundle-renderer": "^1.0.3", "vue-loader": "^17.2.2", - "webpack": "^5.88.1", + "webpack": "^5.88.2", "webpack-bundle-analyzer": "^4.9.0", "webpack-dev-middleware": "^6.1.1", "webpack-hot-middleware": "^2.25.4", @@ -64,7 +64,7 @@ "@nuxt/schema": "workspace:../schema", "@types/fs-extra": "11.0.1", "@types/hash-sum": "1.0.0", - "@types/lodash-es": "4.17.7", + "@types/lodash-es": "4.17.8", "@types/pify": "5.0.1", "@types/webpack-bundle-analyzer": "4.6.0", "@types/webpack-hot-middleware": "2.25.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1146058e56..de06a406e1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,7 +12,7 @@ overrides: '@nuxt/webpack-builder': workspace:* nuxi: workspace:* nuxt: workspace:* - vite: 4.3.9 + vite: 4.4.4 vue: 3.3.4 magic-string: ^0.30.1 @@ -31,7 +31,7 @@ importers: version: link:packages/webpack '@nuxtjs/eslint-config-typescript': specifier: 12.0.0 - version: 12.0.0(eslint@8.44.0)(typescript@5.0.4) + version: 12.0.0(eslint@8.45.0)(typescript@5.0.4) '@types/fs-extra': specifier: 11.0.1 version: 11.0.1 @@ -60,14 +60,14 @@ importers: specifier: 4.3.2 version: 4.3.2 eslint: - specifier: 8.44.0 - version: 8.44.0 + specifier: 8.45.0 + version: 8.45.0 eslint-plugin-import: specifier: 2.27.5 - version: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) + version: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) eslint-plugin-jsdoc: specifier: 41.1.2 - version: 41.1.2(eslint@8.44.0) + version: 41.1.2(eslint@8.45.0) eslint-plugin-no-only-tests: specifier: 3.1.0 version: 3.1.0 @@ -83,6 +83,9 @@ importers: h3: specifier: 1.7.1 version: 1.7.1 + happy-dom: + specifier: ^10.5.2 + version: 10.5.2 jiti: specifier: 1.19.1 version: 1.19.1 @@ -99,8 +102,8 @@ importers: specifier: workspace:* version: link:packages/nuxt nuxt-vitest: - specifier: 0.8.7 - version: 0.8.7(@vitejs/plugin-vue-jsx@3.0.1)(@vitejs/plugin-vue@4.2.3)(vite@4.3.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + specifier: 0.10.1 + version: 0.10.1(@vitejs/plugin-vue-jsx@3.0.1)(@vitejs/plugin-vue@4.2.3)(happy-dom@10.5.2)(vite@4.4.4)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) ofetch: specifier: 1.1.1 version: 1.1.1 @@ -108,14 +111,14 @@ importers: specifier: 1.1.1 version: 1.1.1 playwright-core: - specifier: 1.35.1 - version: 1.35.1 + specifier: 1.36.1 + version: 1.36.1 rimraf: specifier: 5.0.1 version: 5.0.1 semver: - specifier: 7.5.3 - version: 7.5.3 + specifier: 7.5.4 + version: 7.5.4 std-env: specifier: 3.3.3 version: 3.3.3 @@ -126,26 +129,26 @@ importers: specifier: 1.1.2 version: 1.1.2 vite: - specifier: 4.3.9 - version: 4.3.9(@types/node@18.16.19) + specifier: 4.4.4 + version: 4.4.4(@types/node@18.16.19) vitest: specifier: 0.33.0 - version: 0.33.0 + version: 0.33.0(happy-dom@10.5.2) vitest-environment-nuxt: - specifier: 0.8.7 - version: 0.8.7(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + specifier: 0.10.1 + version: 0.10.1(happy-dom@10.5.2)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) vue: specifier: 3.3.4 version: 3.3.4 vue-eslint-parser: specifier: 9.3.1 - version: 9.3.1(eslint@8.44.0) + version: 9.3.1(eslint@8.45.0) vue-router: specifier: 4.2.4 version: 4.2.4(vue@3.3.4) vue-tsc: - specifier: 1.8.4 - version: 1.8.4(typescript@5.0.4) + specifier: 1.8.5 + version: 1.8.5(typescript@5.0.4) packages/kit: dependencies: @@ -189,8 +192,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 semver: - specifier: ^7.5.3 - version: 7.5.3 + specifier: ^7.5.4 + version: 7.5.4 unctx: specifier: ^2.3.1 version: 2.3.1 @@ -205,8 +208,8 @@ importers: specifier: 1.0.0 version: 1.0.0 '@types/lodash-es': - specifier: 4.17.7 - version: 4.17.7 + specifier: 4.17.8 + version: 4.17.8 '@types/semver': specifier: 7.5.0 version: 7.5.0 @@ -220,14 +223,14 @@ importers: specifier: latest version: 1.2.1 vite: - specifier: 4.3.9 - version: 4.3.9(@types/node@18.16.19) + specifier: 4.4.4 + version: 4.4.4(@types/node@18.16.19) vitest: specifier: 0.33.0 - version: 0.33.0 + version: 0.33.0(happy-dom@10.5.2) webpack: - specifier: 5.88.1 - version: 5.88.1 + specifier: 5.88.2 + version: 5.88.2 packages/nuxi: optionalDependencies: @@ -296,8 +299,8 @@ importers: specifier: 1.19.1 version: 1.19.1 listhen: - specifier: 1.0.4 - version: 1.0.4 + specifier: 1.1.2 + version: 1.1.2 mlly: specifier: 1.4.0 version: 1.4.0 @@ -320,8 +323,8 @@ importers: specifier: 1.0.0 version: 1.0.0 semver: - specifier: 7.5.3 - version: 7.5.3 + specifier: 7.5.4 + version: 7.5.4 ufo: specifier: 1.1.2 version: 1.1.2 @@ -341,8 +344,8 @@ importers: specifier: workspace:* version: link:../schema '@nuxt/telemetry': - specifier: ^2.3.0 - version: 2.3.0 + specifier: ^2.3.1 + version: 2.3.1 '@nuxt/ui-templates': specifier: ^1.2.0 version: 1.2.0 @@ -353,11 +356,11 @@ importers: specifier: ^14.18.0 || >=16.10.0 version: 18.16.19 '@unhead/ssr': - specifier: ^1.1.30 - version: 1.1.30 + specifier: ^1.1.32 + version: 1.1.32 '@unhead/vue': - specifier: ^1.1.30 - version: 1.1.30(vue@3.3.4) + specifier: ^1.1.32 + version: 1.1.32(vue@3.3.4) '@vue/shared': specifier: ^3.3.4 version: 3.3.4 @@ -383,8 +386,8 @@ importers: specifier: ^4.3.2 version: 4.3.2 esbuild: - specifier: ^0.18.11 - version: 0.18.11 + specifier: ^0.18.14 + version: 0.18.14 escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -455,8 +458,8 @@ importers: specifier: ^1.1.2 version: 1.1.2 ultrahtml: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.3.0 + version: 1.3.0 uncrypto: specifier: ^0.1.3 version: 0.1.3 @@ -464,14 +467,14 @@ importers: specifier: ^2.3.1 version: 2.3.1 unenv: - specifier: ^1.5.1 - version: 1.5.1 + specifier: ^1.5.2 + version: 1.5.2 unimport: specifier: ^3.0.14 version: 3.0.14(rollup@3.26.0) unplugin: - specifier: ^1.3.2 - version: 1.3.2 + specifier: ^1.4.0 + version: 1.4.0 unplugin-vue-router: specifier: ^0.6.4 version: 0.6.4(rollup@3.26.0)(vue-router@4.2.4)(vue@3.3.4) @@ -505,16 +508,16 @@ importers: version: 2.4.4 '@vitejs/plugin-vue': specifier: 4.2.3 - version: 4.2.3(vite@4.3.9)(vue@3.3.4) + version: 4.2.3(vite@4.4.4)(vue@3.3.4) unbuild: specifier: latest version: 1.2.1 vite: - specifier: 4.3.9 - version: 4.3.9(@types/node@18.16.19) + specifier: 4.4.4 + version: 4.4.4(@types/node@18.16.19) vitest: specifier: 0.33.0 - version: 0.33.0 + version: 0.33.0(happy-dom@10.5.2) packages/schema: dependencies: @@ -547,8 +550,8 @@ importers: version: 1.3.2 devDependencies: '@nuxt/telemetry': - specifier: 2.3.0 - version: 2.3.0 + specifier: 2.3.1 + version: 2.3.1 '@types/file-loader': specifier: 5.0.1 version: 5.0.1 @@ -559,20 +562,20 @@ importers: specifier: 8.0.5 version: 8.0.5 '@unhead/schema': - specifier: 1.1.30 - version: 1.1.30 + specifier: 1.1.32 + version: 1.1.32 '@vitejs/plugin-vue': specifier: 4.2.3 - version: 4.2.3(vite@4.3.9)(vue@3.3.4) + version: 4.2.3(vite@4.4.4)(vue@3.3.4) '@vitejs/plugin-vue-jsx': specifier: 3.0.1 - version: 3.0.1(vite@4.3.9)(vue@3.3.4) + version: 3.0.1(vite@4.4.4)(vue@3.3.4) '@vue/compiler-core': specifier: 3.3.4 version: 3.3.4 esbuild-loader: specifier: 3.0.1 - version: 3.0.1(webpack@5.88.1) + version: 3.0.1(webpack@5.88.2) h3: specifier: 1.7.1 version: 1.7.1 @@ -589,8 +592,8 @@ importers: specifier: 2.3.1 version: 2.3.1 vite: - specifier: 4.3.9 - version: 4.3.9(@types/node@18.16.19) + specifier: 4.4.4 + version: 4.4.4(@types/node@18.16.19) vue: specifier: 3.3.4 version: 3.3.4 @@ -599,16 +602,16 @@ importers: version: 1.0.3 vue-loader: specifier: 17.2.2 - version: 17.2.2(vue@3.3.4)(webpack@5.88.1) + version: 17.2.2(vue@3.3.4)(webpack@5.88.2) vue-router: specifier: 4.2.4 version: 4.2.4(vue@3.3.4) webpack: - specifier: 5.88.1 - version: 5.88.1 + specifier: 5.88.2 + version: 5.88.2 webpack-dev-middleware: specifier: 6.1.1 - version: 6.1.1(webpack@5.88.1) + version: 6.1.1(webpack@5.88.2) packages/test-utils: dependencies: @@ -644,17 +647,17 @@ importers: version: 3.3.4 devDependencies: '@jest/globals': - specifier: 29.6.0 - version: 29.6.0 + specifier: 29.6.1 + version: 29.6.1 playwright-core: - specifier: 1.35.1 - version: 1.35.1 + specifier: 1.36.1 + version: 1.36.1 unbuild: specifier: latest version: 1.2.1 vitest: specifier: 0.33.0 - version: 0.33.0 + version: 0.33.0(happy-dom@10.5.2) packages/vite: dependencies: @@ -666,13 +669,13 @@ importers: version: 5.0.2(rollup@3.26.0) '@vitejs/plugin-vue': specifier: ^4.2.3 - version: 4.2.3(vite@4.3.9)(vue@3.3.4) + version: 4.2.3(vite@4.4.4)(vue@3.3.4) '@vitejs/plugin-vue-jsx': specifier: ^3.0.1 - version: 3.0.1(vite@4.3.9)(vue@3.3.4) + version: 3.0.1(vite@4.4.4)(vue@3.3.4) autoprefixer: specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.24) + version: 10.4.14(postcss@8.4.26) clear: specifier: ^0.1.0 version: 0.1.0 @@ -681,13 +684,13 @@ importers: version: 3.2.3 cssnano: specifier: ^6.0.1 - version: 6.0.1(postcss@8.4.24) + version: 6.0.1(postcss@8.4.26) defu: specifier: ^6.1.2 version: 6.1.2 esbuild: - specifier: ^0.18.11 - version: 0.18.11 + specifier: ^0.18.14 + version: 0.18.14 escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -728,14 +731,14 @@ importers: specifier: ^1.0.3 version: 1.0.3 postcss: - specifier: ^8.4.24 - version: 8.4.24 + specifier: ^8.4.26 + version: 8.4.26 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.24) + version: 15.1.0(postcss@8.4.26) postcss-url: specifier: ^10.1.3 - version: 10.1.3(postcss@8.4.24) + version: 10.1.3(postcss@8.4.26) rollup-plugin-visualizer: specifier: ^5.9.2 version: 5.9.2(rollup@3.26.0) @@ -749,17 +752,17 @@ importers: specifier: ^1.1.2 version: 1.1.2 unplugin: - specifier: ^1.3.2 - version: 1.3.2 + specifier: ^1.4.0 + version: 1.4.0 vite: - specifier: 4.3.9 - version: 4.3.9(@types/node@18.16.19) + specifier: 4.4.4 + version: 4.4.4(@types/node@18.16.19) vite-node: specifier: ^0.33.0 version: 0.33.0(@types/node@18.16.19) vite-plugin-checker: specifier: ^0.6.1 - version: 0.6.1(eslint@8.44.0)(typescript@5.0.4)(vite@4.3.9)(vue-tsc@1.8.4) + version: 0.6.1(eslint@8.45.0)(typescript@5.0.4)(vite@4.4.4)(vue-tsc@1.8.5) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 @@ -787,25 +790,25 @@ importers: dependencies: '@nuxt/friendly-errors-webpack-plugin': specifier: ^2.5.2 - version: 2.5.2(webpack@5.88.1) + version: 2.5.2(webpack@5.88.2) '@nuxt/kit': specifier: workspace:* version: link:../kit autoprefixer: specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.24) + version: 10.4.14(postcss@8.4.26) css-loader: specifier: ^6.8.1 - version: 6.8.1(webpack@5.88.1) + version: 6.8.1(webpack@5.88.2) css-minimizer-webpack-plugin: specifier: ^5.0.1 - version: 5.0.1(webpack@5.88.1) + version: 5.0.1(webpack@5.88.2) cssnano: specifier: ^6.0.1 - version: 6.0.1(postcss@8.4.24) + version: 6.0.1(postcss@8.4.26) esbuild-loader: specifier: ^3.0.1 - version: 3.0.1(webpack@5.88.1) + version: 3.0.1(webpack@5.88.2) escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -814,10 +817,10 @@ importers: version: 3.0.3 file-loader: specifier: ^6.2.0 - version: 6.2.0(webpack@5.88.1) + version: 6.2.0(webpack@5.88.2) fork-ts-checker-webpack-plugin: specifier: ^8.0.0 - version: 8.0.0(typescript@5.0.4)(webpack@5.88.1) + version: 8.0.0(typescript@5.0.4)(webpack@5.88.2) fs-extra: specifier: ^11.1.1 version: 11.1.1 @@ -838,7 +841,7 @@ importers: version: 4.2.0(quill-delta@5.1.0)(rxjs@7.8.1)(tslib@2.6.0) mini-css-extract-plugin: specifier: ^2.7.6 - version: 2.7.6(webpack@5.88.1) + version: 2.7.6(webpack@5.88.2) mlly: specifier: ^1.4.0 version: 1.4.0 @@ -852,17 +855,17 @@ importers: specifier: ^6.1.0 version: 6.1.0 postcss: - specifier: ^8.4.24 - version: 8.4.24 + specifier: ^8.4.26 + version: 8.4.26 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.24) + version: 15.1.0(postcss@8.4.26) postcss-loader: specifier: ^7.3.3 - version: 7.3.3(postcss@8.4.24)(webpack@5.88.1) + version: 7.3.3(postcss@8.4.26)(webpack@5.88.2) postcss-url: specifier: ^10.1.3 - version: 10.1.3(postcss@8.4.24) + version: 10.1.3(postcss@8.4.26) pug-plain-loader: specifier: ^1.1.0 version: 1.1.0(pug@3.0.2) @@ -871,31 +874,31 @@ importers: version: 3.3.3 time-fix-plugin: specifier: ^2.0.7 - version: 2.0.7(webpack@5.88.1) + version: 2.0.7(webpack@5.88.2) ufo: specifier: ^1.1.2 version: 1.1.2 unplugin: - specifier: ^1.3.2 - version: 1.3.2 + specifier: ^1.4.0 + version: 1.4.0 url-loader: specifier: ^4.1.1 - version: 4.1.1(file-loader@6.2.0)(webpack@5.88.1) + version: 4.1.1(file-loader@6.2.0)(webpack@5.88.2) vue-bundle-renderer: specifier: ^1.0.3 version: 1.0.3 vue-loader: specifier: ^17.2.2 - version: 17.2.2(vue@3.3.4)(webpack@5.88.1) + version: 17.2.2(vue@3.3.4)(webpack@5.88.2) webpack: - specifier: ^5.88.1 - version: 5.88.1 + specifier: ^5.88.2 + version: 5.88.2 webpack-bundle-analyzer: specifier: ^4.9.0 version: 4.9.0 webpack-dev-middleware: specifier: ^6.1.1 - version: 6.1.1(webpack@5.88.1) + version: 6.1.1(webpack@5.88.2) webpack-hot-middleware: specifier: ^2.25.4 version: 2.25.4 @@ -904,7 +907,7 @@ importers: version: 0.5.0 webpackbar: specifier: ^5.0.2 - version: 5.0.2(webpack@5.88.1) + version: 5.0.2(webpack@5.88.2) devDependencies: '@nuxt/schema': specifier: workspace:* @@ -916,8 +919,8 @@ importers: specifier: 1.0.0 version: 1.0.0 '@types/lodash-es': - specifier: 4.17.7 - version: 4.17.7 + specifier: 4.17.8 + version: 4.17.8 '@types/pify': specifier: 5.0.1 version: 5.0.1 @@ -960,7 +963,7 @@ importers: version: 1.1.2 unplugin: specifier: latest - version: 1.3.2 + version: 1.4.0 vue: specifier: 3.3.4 version: 3.3.4 @@ -976,7 +979,7 @@ importers: version: 1.1.1 vitest: specifier: latest - version: 0.33.0 + version: 0.33.0(happy-dom@10.5.2) vue: specifier: 3.3.4 version: 3.3.4 @@ -1438,8 +1441,8 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm64@0.18.11: - resolution: {integrity: sha512-snieiq75Z1z5LJX9cduSAjUr7vEI1OdlzFPMw0HH5YI7qQHDd3qs+WZoMrWYDsfRJSq36lIA6mfZBkvL46KoIw==} + /@esbuild/android-arm64@0.18.14: + resolution: {integrity: sha512-rZ2v+Luba5/3D6l8kofWgTnqE+qsC/L5MleKIKFyllHTKHrNBMqeRCnZI1BtRx8B24xMYxeU32iIddRQqMsOsg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -1454,8 +1457,8 @@ packages: requiresBuild: true optional: true - /@esbuild/android-arm@0.18.11: - resolution: {integrity: sha512-q4qlUf5ucwbUJZXF5tEQ8LF7y0Nk4P58hOsGk3ucY0oCwgQqAnqXVbUuahCddVHfrxmpyewRpiTHwVHIETYu7Q==} + /@esbuild/android-arm@0.18.14: + resolution: {integrity: sha512-blODaaL+lngG5bdK/t4qZcQvq2BBqrABmYwqPPcS5VRxrCSGHb9R/rA3fqxh7R18I7WU4KKv+NYkt22FDfalcg==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -1470,8 +1473,8 @@ packages: requiresBuild: true optional: true - /@esbuild/android-x64@0.18.11: - resolution: {integrity: sha512-iPuoxQEV34+hTF6FT7om+Qwziv1U519lEOvekXO9zaMMlT9+XneAhKL32DW3H7okrCOBQ44BMihE8dclbZtTuw==} + /@esbuild/android-x64@0.18.14: + resolution: {integrity: sha512-qSwh8y38QKl+1Iqg+YhvCVYlSk3dVLk9N88VO71U4FUjtiSFylMWK3Ugr8GC6eTkkP4Tc83dVppt2n8vIdlSGg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -1486,8 +1489,8 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-arm64@0.18.11: - resolution: {integrity: sha512-Gm0QkI3k402OpfMKyQEEMG0RuW2LQsSmI6OeO4El2ojJMoF5NLYb3qMIjvbG/lbMeLOGiW6ooU8xqc+S0fgz2w==} + /@esbuild/darwin-arm64@0.18.14: + resolution: {integrity: sha512-9Hl2D2PBeDYZiNbnRKRWuxwHa9v5ssWBBjisXFkVcSP5cZqzZRFBUWEQuqBHO4+PKx4q4wgHoWtfQ1S7rUqJ2Q==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -1502,8 +1505,8 @@ packages: requiresBuild: true optional: true - /@esbuild/darwin-x64@0.18.11: - resolution: {integrity: sha512-N15Vzy0YNHu6cfyDOjiyfJlRJCB/ngKOAvoBf1qybG3eOq0SL2Lutzz9N7DYUbb7Q23XtHPn6lMDF6uWbGv9Fw==} + /@esbuild/darwin-x64@0.18.14: + resolution: {integrity: sha512-ZnI3Dg4ElQ6tlv82qLc/UNHtFsgZSKZ7KjsUNAo1BF1SoYDjkGKHJyCrYyWjFecmXpvvG/KJ9A/oe0H12odPLQ==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -1518,8 +1521,8 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-arm64@0.18.11: - resolution: {integrity: sha512-atEyuq6a3omEY5qAh5jIORWk8MzFnCpSTUruBgeyN9jZq1K/QI9uke0ATi3MHu4L8c59CnIi4+1jDKMuqmR71A==} + /@esbuild/freebsd-arm64@0.18.14: + resolution: {integrity: sha512-h3OqR80Da4oQCIa37zl8tU5MwHQ7qgPV0oVScPfKJK21fSRZEhLE4IIVpmcOxfAVmqjU6NDxcxhYaM8aDIGRLw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -1534,8 +1537,8 @@ packages: requiresBuild: true optional: true - /@esbuild/freebsd-x64@0.18.11: - resolution: {integrity: sha512-XtuPrEfBj/YYYnAAB7KcorzzpGTvOr/dTtXPGesRfmflqhA4LMF0Gh/n5+a9JBzPuJ+CGk17CA++Hmr1F/gI0Q==} + /@esbuild/freebsd-x64@0.18.14: + resolution: {integrity: sha512-ha4BX+S6CZG4BoH9tOZTrFIYC1DH13UTCRHzFc3GWX74nz3h/N6MPF3tuR3XlsNjMFUazGgm35MPW5tHkn2lzQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -1550,8 +1553,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm64@0.18.11: - resolution: {integrity: sha512-c6Vh2WS9VFKxKZ2TvJdA7gdy0n6eSy+yunBvv4aqNCEhSWVor1TU43wNRp2YLO9Vng2G+W94aRz+ILDSwAiYog==} + /@esbuild/linux-arm64@0.18.14: + resolution: {integrity: sha512-IXORRe22In7U65NZCzjwAUc03nn8SDIzWCnfzJ6t/8AvGx5zBkcLfknI+0P+hhuftufJBmIXxdSTbzWc8X/V4w==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -1566,8 +1569,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-arm@0.18.11: - resolution: {integrity: sha512-Idipz+Taso/toi2ETugShXjQ3S59b6m62KmLHkJlSq/cBejixmIydqrtM2XTvNCywFl3VC7SreSf6NV0i6sRyg==} + /@esbuild/linux-arm@0.18.14: + resolution: {integrity: sha512-5+7vehI1iqru5WRtJyU2XvTOvTGURw3OZxe3YTdE9muNNIdmKAVmSHpB3Vw2LazJk2ifEdIMt/wTWnVe5V98Kg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -1582,8 +1585,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ia32@0.18.11: - resolution: {integrity: sha512-S3hkIF6KUqRh9n1Q0dSyYcWmcVa9Cg+mSoZEfFuzoYXXsk6196qndrM+ZiHNwpZKi3XOXpShZZ+9dfN5ykqjjw==} + /@esbuild/linux-ia32@0.18.14: + resolution: {integrity: sha512-BfHlMa0nibwpjG+VXbOoqJDmFde4UK2gnW351SQ2Zd4t1N3zNdmUEqRkw/srC1Sa1DRBE88Dbwg4JgWCbNz/FQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -1598,8 +1601,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-loong64@0.18.11: - resolution: {integrity: sha512-MRESANOoObQINBA+RMZW+Z0TJWpibtE7cPFnahzyQHDCA9X9LOmGh68MVimZlM9J8n5Ia8lU773te6O3ILW8kw==} + /@esbuild/linux-loong64@0.18.14: + resolution: {integrity: sha512-j2/Ex++DRUWIAaUDprXd3JevzGtZ4/d7VKz+AYDoHZ3HjJzCyYBub9CU1wwIXN+viOP0b4VR3RhGClsvyt/xSw==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -1614,8 +1617,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-mips64el@0.18.11: - resolution: {integrity: sha512-qVyPIZrXNMOLYegtD1u8EBccCrBVshxMrn5MkuFc3mEVsw7CCQHaqZ4jm9hbn4gWY95XFnb7i4SsT3eflxZsUg==} + /@esbuild/linux-mips64el@0.18.14: + resolution: {integrity: sha512-qn2+nc+ZCrJmiicoAnJXJJkZWt8Nwswgu1crY7N+PBR8ChBHh89XRxj38UU6Dkthl2yCVO9jWuafZ24muzDC/A==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -1630,8 +1633,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-ppc64@0.18.11: - resolution: {integrity: sha512-T3yd8vJXfPirZaUOoA9D2ZjxZX4Gr3QuC3GztBJA6PklLotc/7sXTOuuRkhE9W/5JvJP/K9b99ayPNAD+R+4qQ==} + /@esbuild/linux-ppc64@0.18.14: + resolution: {integrity: sha512-aGzXzd+djqeEC5IRkDKt3kWzvXoXC6K6GyYKxd+wsFJ2VQYnOWE954qV2tvy5/aaNrmgPTb52cSCHFE+Z7Z0yg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -1646,8 +1649,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-riscv64@0.18.11: - resolution: {integrity: sha512-evUoRPWiwuFk++snjH9e2cAjF5VVSTj+Dnf+rkO/Q20tRqv+644279TZlPK8nUGunjPAtQRCj1jQkDAvL6rm2w==} + /@esbuild/linux-riscv64@0.18.14: + resolution: {integrity: sha512-8C6vWbfr0ygbAiMFLS6OPz0BHvApkT2gCboOGV76YrYw+sD/MQJzyITNsjZWDXJwPu9tjrFQOVG7zijRzBCnLw==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -1662,8 +1665,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-s390x@0.18.11: - resolution: {integrity: sha512-/SlRJ15XR6i93gRWquRxYCfhTeC5PdqEapKoLbX63PLCmAkXZHY2uQm2l9bN0oPHBsOw2IswRZctMYS0MijFcg==} + /@esbuild/linux-s390x@0.18.14: + resolution: {integrity: sha512-G/Lf9iu8sRMM60OVGOh94ZW2nIStksEcITkXdkD09/T6QFD/o+g0+9WVyR/jajIb3A0LvBJ670tBnGe1GgXMgw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -1678,8 +1681,8 @@ packages: requiresBuild: true optional: true - /@esbuild/linux-x64@0.18.11: - resolution: {integrity: sha512-xcncej+wF16WEmIwPtCHi0qmx1FweBqgsRtEL1mSHLFR6/mb3GEZfLQnx+pUDfRDEM4DQF8dpXIW7eDOZl1IbA==} + /@esbuild/linux-x64@0.18.14: + resolution: {integrity: sha512-TBgStYBQaa3EGhgqIDM+ECnkreb0wkcKqL7H6m+XPcGUoU4dO7dqewfbm0mWEQYH3kzFHrzjOFNpSAVzDZRSJw==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -1694,8 +1697,8 @@ packages: requiresBuild: true optional: true - /@esbuild/netbsd-x64@0.18.11: - resolution: {integrity: sha512-aSjMHj/F7BuS1CptSXNg6S3M4F3bLp5wfFPIJM+Km2NfIVfFKhdmfHF9frhiCLIGVzDziggqWll0B+9AUbud/Q==} + /@esbuild/netbsd-x64@0.18.14: + resolution: {integrity: sha512-stvCcjyCQR2lMTroqNhAbvROqRjxPEq0oQ380YdXxA81TaRJEucH/PzJ/qsEtsHgXlWFW6Ryr/X15vxQiyRXVg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -1710,8 +1713,8 @@ packages: requiresBuild: true optional: true - /@esbuild/openbsd-x64@0.18.11: - resolution: {integrity: sha512-tNBq+6XIBZtht0xJGv7IBB5XaSyvYPCm1PxJ33zLQONdZoLVM0bgGqUrXnJyiEguD9LU4AHiu+GCXy/Hm9LsdQ==} + /@esbuild/openbsd-x64@0.18.14: + resolution: {integrity: sha512-apAOJF14CIsN5ht1PA57PboEMsNV70j3FUdxLmA2liZ20gEQnfTG5QU0FhENo5nwbTqCB2O3WDsXAihfODjHYw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -1726,8 +1729,8 @@ packages: requiresBuild: true optional: true - /@esbuild/sunos-x64@0.18.11: - resolution: {integrity: sha512-kxfbDOrH4dHuAAOhr7D7EqaYf+W45LsAOOhAet99EyuxxQmjbk8M9N4ezHcEiCYPaiW8Dj3K26Z2V17Gt6p3ng==} + /@esbuild/sunos-x64@0.18.14: + resolution: {integrity: sha512-fYRaaS8mDgZcGybPn2MQbn1ZNZx+UXFSUoS5Hd2oEnlsyUcr/l3c6RnXf1bLDRKKdLRSabTmyCy7VLQ7VhGdOQ==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -1742,8 +1745,8 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-arm64@0.18.11: - resolution: {integrity: sha512-Sh0dDRyk1Xi348idbal7lZyfSkjhJsdFeuC13zqdipsvMetlGiFQNdO+Yfp6f6B4FbyQm7qsk16yaZk25LChzg==} + /@esbuild/win32-arm64@0.18.14: + resolution: {integrity: sha512-1c44RcxKEJPrVj62XdmYhxXaU/V7auELCmnD+Ri+UCt+AGxTvzxl9uauQhrFso8gj6ZV1DaORV0sT9XSHOAk8Q==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -1758,8 +1761,8 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-ia32@0.18.11: - resolution: {integrity: sha512-o9JUIKF1j0rqJTFbIoF4bXj6rvrTZYOrfRcGyL0Vm5uJ/j5CkBD/51tpdxe9lXEDouhRgdr/BYzUrDOvrWwJpg==} + /@esbuild/win32-ia32@0.18.14: + resolution: {integrity: sha512-EXAFttrdAxZkFQmpvcAQ2bywlWUsONp/9c2lcfvPUhu8vXBBenCXpoq9YkUvVP639ld3YGiYx0YUQ6/VQz3Maw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -1774,21 +1777,21 @@ packages: requiresBuild: true optional: true - /@esbuild/win32-x64@0.18.11: - resolution: {integrity: sha512-rQI4cjLHd2hGsM1LqgDI7oOCYbQ6IBOVsX9ejuRMSze0GqXUG2ekwiKkiBU1pRGSeCqFFHxTrcEydB2Hyoz9CA==} + /@esbuild/win32-x64@0.18.14: + resolution: {integrity: sha512-K0QjGbcskx+gY+qp3v4/940qg8JitpXbdxFhRDA1aYoNaPff88+aEwoq45aqJ+ogpxQxmU0ZTjgnrQD/w8iiUg==} engines: {node: '>=12'} cpu: [x64] os: [win32] requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.44.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.45.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.44.0 + eslint: 8.45.0 eslint-visitor-keys: 3.4.1 /@eslint-community/regexpp@4.5.1: @@ -1863,53 +1866,53 @@ packages: engines: {node: '>=8'} dev: true - /@jest/environment@29.6.0: - resolution: {integrity: sha512-bUZLYUxYlUIsslBbxII0fq0kr1+friI3Gty+cRLmocGB1jdcAHs7FS8QdCDqedE8q4DZE1g/AJHH6OJZBLGGsg==} + /@jest/environment@29.6.1: + resolution: {integrity: sha512-RMMXx4ws+Gbvw3DfLSuo2cfQlK7IwGbpuEWXCqyYDcqYTI+9Ju3a5hDnXaxjNsa6uKh9PQF2v+qg+RLe63tz5A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.6.0 - '@jest/types': 29.6.0 + '@jest/fake-timers': 29.6.1 + '@jest/types': 29.6.1 '@types/node': 18.16.19 - jest-mock: 29.6.0 + jest-mock: 29.6.1 dev: true - /@jest/expect-utils@29.6.0: - resolution: {integrity: sha512-LLSQQN7oypMSETKoPWpsWYVKJd9LQWmSDDAc4hUQ4JocVC7LAMy9R3ZMhlnLwbcFvQORZnZR7HM893Px6cJhvA==} + /@jest/expect-utils@29.6.1: + resolution: {integrity: sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.4.3 dev: true - /@jest/expect@29.6.0: - resolution: {integrity: sha512-a7pISPW28Q3c0/pLwz4mQ6tbAI+hc8/0CJp9ix6e9U4dQ6TiHQX82CT5DV5BMWaw8bFH4E6zsfZxXdn6Ka23Bw==} + /@jest/expect@29.6.1: + resolution: {integrity: sha512-N5xlPrAYaRNyFgVf2s9Uyyvr795jnB6rObuPx4QFvNJz8aAjpZUDfO4bh5G/xuplMID8PrnuF1+SfSyDxhsgYg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.6.0 - jest-snapshot: 29.6.0 + expect: 29.6.1 + jest-snapshot: 29.6.1 transitivePeerDependencies: - supports-color dev: true - /@jest/fake-timers@29.6.0: - resolution: {integrity: sha512-nuCU46AsZoskthWSDS2Aj6LARgyNcp5Fjx2qxsO/fPl1Wp1CJ+dBDqs0OkEcJK8FBeV/MbjH5efe79M2sHcV+A==} + /@jest/fake-timers@29.6.1: + resolution: {integrity: sha512-RdgHgbXyosCDMVYmj7lLpUwXA4c69vcNzhrt69dJJdf8azUrpRh3ckFCaTPNjsEeRi27Cig0oKDGxy5j7hOgHg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.0 + '@jest/types': 29.6.1 '@sinonjs/fake-timers': 10.0.2 '@types/node': 18.16.19 - jest-message-util: 29.6.0 - jest-mock: 29.6.0 - jest-util: 29.6.0 + jest-message-util: 29.6.1 + jest-mock: 29.6.1 + jest-util: 29.6.1 dev: true - /@jest/globals@29.6.0: - resolution: {integrity: sha512-IQQ3hZ2D/hwEwXSMv5GbfhzdH0nTQR3KPYxnuW6gYWbd6+7/zgMz7Okn6EgBbNtJNONq03k5EKA6HqGyzRbpeg==} + /@jest/globals@29.6.1: + resolution: {integrity: sha512-2VjpaGy78JY9n9370H8zGRCFbYVWwjY6RdDMhoJHa1sYfwe6XM/azGN0SjY8kk7BOZApIejQ1BFPyH7FPG0w3A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.0 - '@jest/expect': 29.6.0 - '@jest/types': 29.6.0 - jest-mock: 29.6.0 + '@jest/environment': 29.6.1 + '@jest/expect': 29.6.1 + '@jest/types': 29.6.1 + jest-mock: 29.6.1 transitivePeerDependencies: - supports-color dev: true @@ -1920,21 +1923,21 @@ packages: dependencies: '@sinclair/typebox': 0.27.8 - /@jest/transform@29.6.0: - resolution: {integrity: sha512-bhP/KxPo3e322FJ0nKAcb6WVK76ZYyQd1lWygJzoSqP8SYMSLdxHqP4wnPTI4WvbB8PKPDV30y5y7Tya4RHOBA==} + /@jest/transform@29.6.1: + resolution: {integrity: sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.22.5 - '@jest/types': 29.6.0 + '@jest/types': 29.6.1 '@jridgewell/trace-mapping': 0.3.18 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 29.6.0 + jest-haste-map: 29.6.1 jest-regex-util: 29.4.3 - jest-util: 29.6.0 + jest-util: 29.6.1 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -1943,8 +1946,8 @@ packages: - supports-color dev: true - /@jest/types@29.6.0: - resolution: {integrity: sha512-8XCgL9JhqbJTFnMRjEAO+TuW251+MoMd5BSzLiE3vvzpQ8RlBxy8NoyNkDhs3K3OL3HeVinlOl9or5p7GTeOLg==} + /@jest/types@29.6.1: + resolution: {integrity: sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.0 @@ -1999,7 +2002,7 @@ packages: nopt: 5.0.0 npmlog: 5.0.1 rimraf: 3.0.2 - semver: 7.5.3 + semver: 7.5.4 tar: 6.1.15 transitivePeerDependencies: - encoding @@ -2033,7 +2036,7 @@ packages: resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} dev: false - /@nuxt/friendly-errors-webpack-plugin@2.5.2(webpack@5.88.1): + /@nuxt/friendly-errors-webpack-plugin@2.5.2(webpack@5.88.2): resolution: {integrity: sha512-LLc+90lnxVbpKkMqk5z1EWpXoODhc6gRkqqXJCInJwF5xabHAE7biFvbULfvTRmtaTzAaP8IV4HQDLUgeAUTTw==} engines: {node: '>=8.0.0', npm: '>=5.0.0'} peerDependencies: @@ -2043,11 +2046,11 @@ packages: consola: 2.15.3 error-stack-parser: 2.1.4 string-width: 4.2.3 - webpack: 5.88.1 + webpack: 5.88.2 dev: false - /@nuxt/telemetry@2.3.0: - resolution: {integrity: sha512-sXO8Qt0A1GKy6otyicKIO+FuhqzSWDJdWIY5RohxxaB9MOLuf7us39geZb+hIZYdXl7ILsypTGGj9TfR8byjOA==} + /@nuxt/telemetry@2.3.1: + resolution: {integrity: sha512-7kr2VDirYIXqyTHqaiWCrfQLgUjAa4qAHzykJOspMCFJWalHU9SVfnv+cTOKGqoXQ4TWOCd09tEd7sLlMFTEqw==} hasBin: true dependencies: '@nuxt/kit': link:packages/kit @@ -2074,18 +2077,18 @@ packages: resolution: {integrity: sha512-MSZza7dxccNb/p7nuzGF8/m4POaFpHzVhNdR7f4xahOpH7Ja02lFeYR+rHtoHIJC0yym4qriqv0mQ+Qf/R61bQ==} dev: false - /@nuxtjs/eslint-config-typescript@12.0.0(eslint@8.44.0)(typescript@5.0.4): + /@nuxtjs/eslint-config-typescript@12.0.0(eslint@8.45.0)(typescript@5.0.4): resolution: {integrity: sha512-HJR0ho5MYuOCFjkL+eMX/VXbUwy36J12DUMVy+dj3Qz1GYHwX92Saxap3urFzr8oPkzzFiuOknDivfCeRBWakg==} peerDependencies: eslint: ^8.23.0 dependencies: - '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) - '@typescript-eslint/eslint-plugin': 5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.44.0)(typescript@5.0.4) - '@typescript-eslint/parser': 5.59.9(eslint@8.44.0)(typescript@5.0.4) - eslint: 8.44.0 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.9)(eslint-plugin-import@2.27.5)(eslint@8.44.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) - eslint-plugin-vue: 9.14.0(eslint@8.44.0) + '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) + '@typescript-eslint/eslint-plugin': 5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.45.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.9(eslint@8.45.0)(typescript@5.0.4) + eslint: 8.45.0 + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.9)(eslint-plugin-import@2.27.5)(eslint@8.45.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) + eslint-plugin-vue: 9.14.0(eslint@8.45.0) transitivePeerDependencies: - eslint-import-resolver-node - eslint-import-resolver-webpack @@ -2093,19 +2096,19 @@ packages: - typescript dev: true - /@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0): + /@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0): resolution: {integrity: sha512-ewenelo75x0eYEUK+9EBXjc/OopQCvdkmYmlZuoHq5kub/vtiRpyZ/autppwokpHUq8tiVyl2ejMakoiHiDTrg==} peerDependencies: eslint: ^8.23.0 dependencies: - eslint: 8.44.0 - eslint-config-standard: 17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.44.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) - eslint-plugin-n: 15.7.0(eslint@8.44.0) - eslint-plugin-node: 11.1.0(eslint@8.44.0) - eslint-plugin-promise: 6.1.1(eslint@8.44.0) - eslint-plugin-unicorn: 44.0.2(eslint@8.44.0) - eslint-plugin-vue: 9.14.0(eslint@8.44.0) + eslint: 8.45.0 + eslint-config-standard: 17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.45.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) + eslint-plugin-n: 15.7.0(eslint@8.45.0) + eslint-plugin-node: 11.1.0(eslint@8.45.0) + eslint-plugin-promise: 6.1.1(eslint@8.45.0) + eslint-plugin-unicorn: 44.0.2(eslint@8.45.0) + eslint-plugin-vue: 9.14.0(eslint@8.45.0) local-pkg: 0.4.3 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -2509,8 +2512,8 @@ packages: '@types/node': 18.16.19 dev: true - /@types/lodash-es@4.17.7: - resolution: {integrity: sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==} + /@types/lodash-es@4.17.8: + resolution: {integrity: sha512-euY3XQcZmIzSy7YH5+Unb3b2X12Wtk54YWINBvvGQ5SmMvwb11JQskGsfkH/5HXK77Kr8GF0wkVDIxzAisWtog==} dependencies: '@types/lodash': 4.14.194 dev: true @@ -2598,7 +2601,7 @@ packages: dependencies: '@types/node': 18.16.19 tapable: 2.2.1 - webpack: 5.88.1 + webpack: 5.88.2 transitivePeerDependencies: - '@swc/core' - esbuild @@ -2611,7 +2614,7 @@ packages: dependencies: '@types/connect': 3.4.35 tapable: 2.2.1 - webpack: 5.88.1 + webpack: 5.88.2 transitivePeerDependencies: - '@swc/core' - esbuild @@ -2652,7 +2655,7 @@ packages: dependencies: '@types/yargs-parser': 21.0.0 - /@typescript-eslint/eslint-plugin@5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.44.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.45.0)(typescript@5.0.4): resolution: {integrity: sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2664,23 +2667,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.1 - '@typescript-eslint/parser': 5.59.9(eslint@8.44.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.9(eslint@8.45.0)(typescript@5.0.4) '@typescript-eslint/scope-manager': 5.59.9 - '@typescript-eslint/type-utils': 5.59.9(eslint@8.44.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.9(eslint@8.44.0)(typescript@5.0.4) + '@typescript-eslint/type-utils': 5.59.9(eslint@8.45.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.9(eslint@8.45.0)(typescript@5.0.4) debug: 4.3.4 - eslint: 8.44.0 + eslint: 8.45.0 grapheme-splitter: 1.0.4 ignore: 5.2.4 natural-compare-lite: 1.4.0 - semver: 7.5.3 + semver: 7.5.4 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.59.9(eslint@8.44.0)(typescript@5.0.4): + /@typescript-eslint/parser@5.59.9(eslint@8.45.0)(typescript@5.0.4): resolution: {integrity: sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2694,7 +2697,7 @@ packages: '@typescript-eslint/types': 5.59.9 '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.0.4) debug: 4.3.4 - eslint: 8.44.0 + eslint: 8.45.0 typescript: 5.0.4 transitivePeerDependencies: - supports-color @@ -2708,7 +2711,7 @@ packages: '@typescript-eslint/visitor-keys': 5.59.9 dev: true - /@typescript-eslint/type-utils@5.59.9(eslint@8.44.0)(typescript@5.0.4): + /@typescript-eslint/type-utils@5.59.9(eslint@8.45.0)(typescript@5.0.4): resolution: {integrity: sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2719,9 +2722,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.9(eslint@8.44.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.9(eslint@8.45.0)(typescript@5.0.4) debug: 4.3.4 - eslint: 8.44.0 + eslint: 8.45.0 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: @@ -2747,28 +2750,28 @@ packages: debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.5.3 + semver: 7.5.4 tsutils: 3.21.0(typescript@5.0.4) typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.59.9(eslint@8.44.0)(typescript@5.0.4): + /@typescript-eslint/utils@5.59.9(eslint@8.45.0)(typescript@5.0.4): resolution: {integrity: sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) '@types/json-schema': 7.0.11 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.59.9 '@typescript-eslint/types': 5.59.9 '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.0.4) - eslint: 8.44.0 + eslint: 8.45.0 eslint-scope: 5.1.1 - semver: 7.5.3 + semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript @@ -2782,41 +2785,41 @@ packages: eslint-visitor-keys: 3.4.1 dev: true - /@unhead/dom@1.1.30: - resolution: {integrity: sha512-EvASOkk36lW5sRfIe+StCojpkPEExsQNt+cqcpdVr9iiRH54jziCDFxcLfjawc+jp4NO86KvmfHo86GIly3/SQ==} + /@unhead/dom@1.1.32: + resolution: {integrity: sha512-AMpHlKEKcm1dxSAvm6GPXhjoZHzXh7ZeR8DAnXVH7Sd9a48xaJhQjmxETweFAcNBSnAn9e7TxTPZVrUcW0ej2w==} dependencies: - '@unhead/schema': 1.1.30 - '@unhead/shared': 1.1.30 + '@unhead/schema': 1.1.32 + '@unhead/shared': 1.1.32 dev: false - /@unhead/schema@1.1.30: - resolution: {integrity: sha512-lgz0aw+OP1PlKHBhNWAVabV2iAHBhSXCt3Ynswu0m++MwJxOVXizYJRZOVKK7Zx3u7vwPRV/nweYc6rmNHv5gA==} + /@unhead/schema@1.1.32: + resolution: {integrity: sha512-XxrNazZEO9T+r1ORduy6gnKA9rDzRgxr/p5UEPRM+TZVuM8ZEFzYr2/aE5bMgTCXp20z0pjv/2rewpVSXp4pFQ==} dependencies: hookable: 5.5.3 zhead: 2.0.9 - /@unhead/shared@1.1.30: - resolution: {integrity: sha512-OPS+d4SZuYSWquQZVLfbyFYggdqKz8DtcdHXObRoKWnosrgVPyGJoOaFnjfkYYuvU6BFYnUtnZNMRQVUjmER1g==} + /@unhead/shared@1.1.32: + resolution: {integrity: sha512-oguyfbwbG4+wNphXQjQ3YrEe4NzabocpTQKNCKdTUPtpK9HYNiI+dffEoSiM3tWcwlG3iYrXj5WvREq3FoACWQ==} dependencies: - '@unhead/schema': 1.1.30 + '@unhead/schema': 1.1.32 dev: false - /@unhead/ssr@1.1.30: - resolution: {integrity: sha512-0XBgoPZoPjLCEQpGc/PhTYPvXEcWufcpcHWo6jxRham3VCoQN5RoSzFNGPEtd4ZhMMVRMQLJ7yPDGfFXtu78Pg==} + /@unhead/ssr@1.1.32: + resolution: {integrity: sha512-3DGh/EvHFuUx9k0M5CN5KmQHEaZMbrwtRlv2aQjicLqeeJGSI+okpRbaEu4A9WWwPmkR0u8FBnv1WCAPMcj3ZA==} dependencies: - '@unhead/schema': 1.1.30 - '@unhead/shared': 1.1.30 + '@unhead/schema': 1.1.32 + '@unhead/shared': 1.1.32 dev: false - /@unhead/vue@1.1.30(vue@3.3.4): - resolution: {integrity: sha512-jWDfYDjiNj8a8GTQoYeJrpKisI7YKIWwuMP1IREKa4cx41oCsbCKUDjomjnpmdBcpqvb/Kw32Tm+EMcuE/CYkA==} + /@unhead/vue@1.1.32(vue@3.3.4): + resolution: {integrity: sha512-rpQVxgI/crwlC+z8GnfPV6EwVN/kyeVSvEfzJO9VMIdrWMrh6vAV0WNv3v+BFd0bVLiRyNzhvbY76yhmAX4Zvw==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@unhead/schema': 1.1.30 - '@unhead/shared': 1.1.30 + '@unhead/schema': 1.1.32 + '@unhead/shared': 1.1.32 hookable: 5.5.3 - unhead: 1.1.30 + unhead: 1.1.32 vue: 3.3.4 dev: false @@ -2840,7 +2843,7 @@ packages: - encoding - supports-color - /@vitejs/plugin-vue-jsx@3.0.1(vite@4.3.9)(vue@3.3.4): + /@vitejs/plugin-vue-jsx@3.0.1(vite@4.4.4)(vue@3.3.4): resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2850,19 +2853,19 @@ packages: '@babel/core': 7.22.5 '@babel/plugin-transform-typescript': 7.21.0(@babel/core@7.22.5) '@vue/babel-plugin-jsx': 1.1.1(@babel/core@7.22.5) - vite: 4.3.9(@types/node@18.16.19) + vite: 4.4.4(@types/node@18.16.19) vue: 3.3.4 transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@4.2.3(vite@4.3.9)(vue@3.3.4): + /@vitejs/plugin-vue@4.2.3(vite@4.4.4)(vue@3.3.4): resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.3.9(@types/node@18.16.19) + vite: 4.4.4(@types/node@18.16.19) vue: 3.3.4 /@vitest/expect@0.33.0: @@ -2886,7 +2889,7 @@ packages: dependencies: magic-string: 0.30.1 pathe: 1.1.1 - pretty-format: 29.6.0 + pretty-format: 29.6.1 dev: true /@vitest/spy@0.33.0: @@ -2895,24 +2898,19 @@ packages: tinyspy: 2.1.1 dev: true - /@vitest/ui@0.30.1: - resolution: {integrity: sha512-Izz4ElDmdvX02KImSC2nCJI6CsGo9aETbKqxli55M0rbbPPAMtF0zDcJIqgEP5V6Y+4Ysf6wvsjLbLCTnaBvKw==} + /@vitest/ui@0.33.0(vitest@0.33.0): + resolution: {integrity: sha512-7gbAjLqt30R4bodkJAutdpy4ncv+u5IKTHYTow1c2q+FOxZUC9cKOSqMUxjwaaTwLN+EnDnmXYPtg3CoahaUzQ==} + peerDependencies: + vitest: '>=0.30.1 <1' dependencies: - '@vitest/utils': 0.30.1 + '@vitest/utils': 0.33.0 fast-glob: 3.3.0 - fflate: 0.7.4 + fflate: 0.8.0 flatted: 3.2.7 pathe: 1.1.1 picocolors: 1.0.0 sirv: 2.0.3 - dev: true - - /@vitest/utils@0.30.1: - resolution: {integrity: sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==} - dependencies: - concordance: 5.0.4 - loupe: 2.3.6 - pretty-format: 27.5.1 + vitest: 0.33.0(happy-dom@10.5.2) dev: true /@vitest/utils@0.33.0: @@ -2920,23 +2918,23 @@ packages: dependencies: diff-sequences: 29.4.3 loupe: 2.3.6 - pretty-format: 29.6.0 + pretty-format: 29.6.1 dev: true - /@volar/language-core@1.8.0: - resolution: {integrity: sha512-ZHTvZPM3pEbOOuaq+ybNz5TQlHUqPQPK0G1+SonvApGq0e3qgGijjhtL5T7hsCtUEmxfix8FrAuCH14tMBOhTg==} + /@volar/language-core@1.9.0: + resolution: {integrity: sha512-+PTRrGanAD2PxqMty0ZC46xhgW5BWzb67RLHhZyB3Im4+eMXsKlYjFUt7Z8ZCwTWQQOnj8NQ6gSgUEoOTwAHrQ==} dependencies: - '@volar/source-map': 1.8.0 + '@volar/source-map': 1.9.0 - /@volar/source-map@1.8.0: - resolution: {integrity: sha512-d35aV0yFkIrkynRSKgrN5hgbMv6ekkFvcJsJGmOZ8UEjqLStto9zq7RSvpp6/PZ7/pa4Gn1f6K1qDt0bq0oUew==} + /@volar/source-map@1.9.0: + resolution: {integrity: sha512-TQWLY8ozUOHBHTMC2pHZsNbtM25Q9QCEwAL8JFR/gmR9Yv0d9qup/gQdd5sDI7RmoPYKD+gqjLrbM4Ib41QSJQ==} dependencies: muggle-string: 0.3.1 - /@volar/typescript@1.8.0: - resolution: {integrity: sha512-T/U1XLLhXv6tNr40Awznfc6QZWizSL99t6M0DeXtIMbnvSCqjjCVRnwlsq+DK9C1RlO3k8+i0Z8iJn7O1GGtoA==} + /@volar/typescript@1.9.0: + resolution: {integrity: sha512-B8X4/H6V93uD7zu5VCw05eB0Ukcc39SFKsZoeylkAk2sJ50oaJLpajnQ8Ov4c+FnVQ6iPA6Xy1qdWoWJjh6xEg==} dependencies: - '@volar/language-core': 1.8.0 + '@volar/language-core': 1.9.0 /@vue-macros/common@1.3.1(rollup@3.26.0)(vue@3.3.4): resolution: {integrity: sha512-Lc5aP/8HNJD1XrnvpeNuWcCf82bZdR3auN/chA1b/1rKZgSnmQkH9f33tKO9qLwXSy+u4hpCi8Rw+oUuF1KCeg==} @@ -3001,7 +2999,7 @@ packages: '@vue/shared': 3.3.4 estree-walker: 2.0.2 magic-string: 0.30.1 - postcss: 8.4.24 + postcss: 8.4.26 source-map-js: 1.0.2 /@vue/compiler-ssr@3.3.4: @@ -3013,16 +3011,16 @@ packages: /@vue/devtools-api@6.5.0: resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} - /@vue/language-core@1.8.4(typescript@5.0.4): - resolution: {integrity: sha512-pnNtNcJVfkGYluW0vsVO+Y1gyX+eA0voaS7+1JOhCp5zKeCaL/PAmGYOgfvwML62neL+2H8pnhY7sffmrGpEhw==} + /@vue/language-core@1.8.5(typescript@5.0.4): + resolution: {integrity: sha512-DKQNiNQzNV7nrkZQujvjfX73zqKdj2+KoM4YeKl+ft3f+crO3JB4ycPnmgaRMNX/ULJootdQPGHKFRl5cXxwaw==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@volar/language-core': 1.8.0 - '@volar/source-map': 1.8.0 + '@volar/language-core': 1.9.0 + '@volar/source-map': 1.9.0 '@vue/compiler-dom': 3.3.4 '@vue/reactivity': 3.3.4 '@vue/shared': 3.3.4 @@ -3087,11 +3085,11 @@ packages: vue-component-type-helpers: 1.6.5 dev: true - /@vue/typescript@1.8.4(typescript@5.0.4): - resolution: {integrity: sha512-sioQfIY5xcmEAz+cPLvv6CtzGPtGhIdR0Za87zB8M4mPe4OSsE3MBGkXcslf+EzQgF+fm6Gr1SRMSX8r5ZmzDA==} + /@vue/typescript@1.8.5(typescript@5.0.4): + resolution: {integrity: sha512-domFBbNr3PEcjGBeB+cmgUM3cI6pJsJezguIUKZ1rphkfIkICyoMjCd3TitoP32yo2KABLiaXcGFzgFfQf6B3w==} dependencies: - '@volar/typescript': 1.8.0 - '@vue/language-core': 1.8.4(typescript@5.0.4) + '@volar/typescript': 1.9.0 + '@vue/language-core': 1.8.5(typescript@5.0.4) transitivePeerDependencies: - typescript @@ -3455,7 +3453,7 @@ packages: /async@3.2.4: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - /autoprefixer@10.4.14(postcss@8.4.24): + /autoprefixer@10.4.14(postcss@8.4.26): resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -3467,7 +3465,7 @@ packages: fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false @@ -3546,10 +3544,6 @@ packages: inherits: 2.0.4 readable-stream: 3.6.2 - /blueimp-md5@2.19.0: - resolution: {integrity: sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==} - dev: true - /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -3612,7 +3606,7 @@ packages: /builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} dependencies: - semver: 7.5.3 + semver: 7.5.4 dev: true /bundle-name@3.0.0: @@ -3733,7 +3727,7 @@ packages: pathe: 1.1.1 pkg-types: 1.0.3 scule: 1.0.0 - semver: 7.5.3 + semver: 7.5.4 std-env: 3.3.3 yaml: 2.3.1 transitivePeerDependencies: @@ -3800,8 +3794,10 @@ packages: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} - /citty@0.1.1: - resolution: {integrity: sha512-fL/EEp9TyXlNkgYFQYNqtMJhnAk2tAq8lCST7O5LPn1NrzWPsOKE5wafR7J+8W87oxqolpxNli+w7khq5WP7tg==} + /citty@0.1.2: + resolution: {integrity: sha512-Me9nf0/BEmMOnuQzMOVXgpzkMUNbd0Am8lTl/13p0aRGAoLGk5T5sdet/42CrIGmWdG67BgHUhcKK1my1ujUEg==} + dependencies: + consola: 3.2.3 /clean-regexp@1.0.0: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} @@ -3899,20 +3895,6 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - /concordance@5.0.4: - resolution: {integrity: sha512-OAcsnTEYu1ARJqWVGwf4zh4JDfHZEaSNlNccFmt8YjB2l/n19/PF2viLINHc57vO4FKIAFl2FWASIGZZWZ2Kxw==} - engines: {node: '>=10.18.0 <11 || >=12.14.0 <13 || >=14'} - dependencies: - date-time: 3.1.0 - esutils: 2.0.3 - fast-diff: 1.3.0 - js-string-escape: 1.0.1 - lodash: 4.17.21 - md5-hex: 3.0.1 - semver: 7.5.3 - well-known-symbols: 2.0.0 - dev: true - /config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} dependencies: @@ -3999,33 +3981,33 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /css-declaration-sorter@6.3.1(postcss@8.4.24): + /css-declaration-sorter@6.3.1(postcss@8.4.26): resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 dev: false - /css-loader@6.8.1(webpack@5.88.1): + /css-loader@6.8.1(webpack@5.88.2): resolution: {integrity: sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.24) - postcss: 8.4.24 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.24) - postcss-modules-local-by-default: 4.0.3(postcss@8.4.24) - postcss-modules-scope: 3.0.0(postcss@8.4.24) - postcss-modules-values: 4.0.0(postcss@8.4.24) + icss-utils: 5.1.0(postcss@8.4.26) + postcss: 8.4.26 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.26) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.26) + postcss-modules-scope: 3.0.0(postcss@8.4.26) + postcss-modules-values: 4.0.0(postcss@8.4.26) postcss-value-parser: 4.2.0 - semver: 7.5.3 - webpack: 5.88.1 + semver: 7.5.4 + webpack: 5.88.2 dev: false - /css-minimizer-webpack-plugin@5.0.1(webpack@5.88.1): + /css-minimizer-webpack-plugin@5.0.1(webpack@5.88.2): resolution: {integrity: sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -4051,12 +4033,12 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.18 - cssnano: 6.0.1(postcss@8.4.24) - jest-worker: 29.6.0 - postcss: 8.4.24 + cssnano: 6.0.1(postcss@8.4.26) + jest-worker: 29.6.1 + postcss: 8.4.26 schema-utils: 4.0.1 serialize-javascript: 6.0.1 - webpack: 5.88.1 + webpack: 5.88.2 dev: false /css-select@5.1.0: @@ -4097,62 +4079,62 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-preset-default@6.0.1(postcss@8.4.24): + /cssnano-preset-default@6.0.1(postcss@8.4.26): resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.3.1(postcss@8.4.24) - cssnano-utils: 4.0.0(postcss@8.4.24) - postcss: 8.4.24 - postcss-calc: 9.0.0(postcss@8.4.24) - postcss-colormin: 6.0.0(postcss@8.4.24) - postcss-convert-values: 6.0.0(postcss@8.4.24) - postcss-discard-comments: 6.0.0(postcss@8.4.24) - postcss-discard-duplicates: 6.0.0(postcss@8.4.24) - postcss-discard-empty: 6.0.0(postcss@8.4.24) - postcss-discard-overridden: 6.0.0(postcss@8.4.24) - postcss-merge-longhand: 6.0.0(postcss@8.4.24) - postcss-merge-rules: 6.0.1(postcss@8.4.24) - postcss-minify-font-values: 6.0.0(postcss@8.4.24) - postcss-minify-gradients: 6.0.0(postcss@8.4.24) - postcss-minify-params: 6.0.0(postcss@8.4.24) - postcss-minify-selectors: 6.0.0(postcss@8.4.24) - postcss-normalize-charset: 6.0.0(postcss@8.4.24) - postcss-normalize-display-values: 6.0.0(postcss@8.4.24) - postcss-normalize-positions: 6.0.0(postcss@8.4.24) - postcss-normalize-repeat-style: 6.0.0(postcss@8.4.24) - postcss-normalize-string: 6.0.0(postcss@8.4.24) - postcss-normalize-timing-functions: 6.0.0(postcss@8.4.24) - postcss-normalize-unicode: 6.0.0(postcss@8.4.24) - postcss-normalize-url: 6.0.0(postcss@8.4.24) - postcss-normalize-whitespace: 6.0.0(postcss@8.4.24) - postcss-ordered-values: 6.0.0(postcss@8.4.24) - postcss-reduce-initial: 6.0.0(postcss@8.4.24) - postcss-reduce-transforms: 6.0.0(postcss@8.4.24) - postcss-svgo: 6.0.0(postcss@8.4.24) - postcss-unique-selectors: 6.0.0(postcss@8.4.24) + css-declaration-sorter: 6.3.1(postcss@8.4.26) + cssnano-utils: 4.0.0(postcss@8.4.26) + postcss: 8.4.26 + postcss-calc: 9.0.0(postcss@8.4.26) + postcss-colormin: 6.0.0(postcss@8.4.26) + postcss-convert-values: 6.0.0(postcss@8.4.26) + postcss-discard-comments: 6.0.0(postcss@8.4.26) + postcss-discard-duplicates: 6.0.0(postcss@8.4.26) + postcss-discard-empty: 6.0.0(postcss@8.4.26) + postcss-discard-overridden: 6.0.0(postcss@8.4.26) + postcss-merge-longhand: 6.0.0(postcss@8.4.26) + postcss-merge-rules: 6.0.1(postcss@8.4.26) + postcss-minify-font-values: 6.0.0(postcss@8.4.26) + postcss-minify-gradients: 6.0.0(postcss@8.4.26) + postcss-minify-params: 6.0.0(postcss@8.4.26) + postcss-minify-selectors: 6.0.0(postcss@8.4.26) + postcss-normalize-charset: 6.0.0(postcss@8.4.26) + postcss-normalize-display-values: 6.0.0(postcss@8.4.26) + postcss-normalize-positions: 6.0.0(postcss@8.4.26) + postcss-normalize-repeat-style: 6.0.0(postcss@8.4.26) + postcss-normalize-string: 6.0.0(postcss@8.4.26) + postcss-normalize-timing-functions: 6.0.0(postcss@8.4.26) + postcss-normalize-unicode: 6.0.0(postcss@8.4.26) + postcss-normalize-url: 6.0.0(postcss@8.4.26) + postcss-normalize-whitespace: 6.0.0(postcss@8.4.26) + postcss-ordered-values: 6.0.0(postcss@8.4.26) + postcss-reduce-initial: 6.0.0(postcss@8.4.26) + postcss-reduce-transforms: 6.0.0(postcss@8.4.26) + postcss-svgo: 6.0.0(postcss@8.4.26) + postcss-unique-selectors: 6.0.0(postcss@8.4.26) dev: false - /cssnano-utils@4.0.0(postcss@8.4.24): + /cssnano-utils@4.0.0(postcss@8.4.26): resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 dev: false - /cssnano@6.0.1(postcss@8.4.24): + /cssnano@6.0.1(postcss@8.4.26): resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 6.0.1(postcss@8.4.24) + cssnano-preset-default: 6.0.1(postcss@8.4.26) lilconfig: 2.1.0 - postcss: 8.4.24 + postcss: 8.4.26 dev: false /csso@5.0.5: @@ -4173,13 +4155,6 @@ packages: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} - /date-time@3.1.0: - resolution: {integrity: sha512-uqCUKXE5q1PNBXjPqvwhwJf9SwMoAHBgWJ6DcrnS5o+W2JOiIILl0JEdVD8SGujrNS02GGxgwAg2PN2zONgtjg==} - engines: {node: '>=6'} - dependencies: - time-zone: 1.0.0 - dev: true - /de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -4521,7 +4496,7 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-loader@3.0.1(webpack@5.88.1): + /esbuild-loader@3.0.1(webpack@5.88.2): resolution: {integrity: sha512-aZfGybqTeuyCd4AsVvWOOfkhIuN+wfZFjMyh3gyQEU1Uvsl8L6vye9HqP93iRa0iTA+6Jclap514PJIC3cLnMA==} peerDependencies: webpack: ^4.40.0 || ^5.0.0 @@ -4529,7 +4504,7 @@ packages: esbuild: 0.17.19 get-tsconfig: 4.5.0 loader-utils: 2.0.4 - webpack: 5.88.1 + webpack: 5.88.2 webpack-sources: 1.4.3 /esbuild@0.17.19: @@ -4561,34 +4536,34 @@ packages: '@esbuild/win32-ia32': 0.17.19 '@esbuild/win32-x64': 0.17.19 - /esbuild@0.18.11: - resolution: {integrity: sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA==} + /esbuild@0.18.14: + resolution: {integrity: sha512-uNPj5oHPYmj+ZhSQeYQVFZ+hAlJZbAGOmmILWIqrGvPVlNLbyOvU5Bu6Woi8G8nskcx0vwY0iFoMPrzT86Ko+w==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.18.11 - '@esbuild/android-arm64': 0.18.11 - '@esbuild/android-x64': 0.18.11 - '@esbuild/darwin-arm64': 0.18.11 - '@esbuild/darwin-x64': 0.18.11 - '@esbuild/freebsd-arm64': 0.18.11 - '@esbuild/freebsd-x64': 0.18.11 - '@esbuild/linux-arm': 0.18.11 - '@esbuild/linux-arm64': 0.18.11 - '@esbuild/linux-ia32': 0.18.11 - '@esbuild/linux-loong64': 0.18.11 - '@esbuild/linux-mips64el': 0.18.11 - '@esbuild/linux-ppc64': 0.18.11 - '@esbuild/linux-riscv64': 0.18.11 - '@esbuild/linux-s390x': 0.18.11 - '@esbuild/linux-x64': 0.18.11 - '@esbuild/netbsd-x64': 0.18.11 - '@esbuild/openbsd-x64': 0.18.11 - '@esbuild/sunos-x64': 0.18.11 - '@esbuild/win32-arm64': 0.18.11 - '@esbuild/win32-ia32': 0.18.11 - '@esbuild/win32-x64': 0.18.11 + '@esbuild/android-arm': 0.18.14 + '@esbuild/android-arm64': 0.18.14 + '@esbuild/android-x64': 0.18.14 + '@esbuild/darwin-arm64': 0.18.14 + '@esbuild/darwin-x64': 0.18.14 + '@esbuild/freebsd-arm64': 0.18.14 + '@esbuild/freebsd-x64': 0.18.14 + '@esbuild/linux-arm': 0.18.14 + '@esbuild/linux-arm64': 0.18.14 + '@esbuild/linux-ia32': 0.18.14 + '@esbuild/linux-loong64': 0.18.14 + '@esbuild/linux-mips64el': 0.18.14 + '@esbuild/linux-ppc64': 0.18.14 + '@esbuild/linux-riscv64': 0.18.14 + '@esbuild/linux-s390x': 0.18.14 + '@esbuild/linux-x64': 0.18.14 + '@esbuild/netbsd-x64': 0.18.14 + '@esbuild/openbsd-x64': 0.18.14 + '@esbuild/sunos-x64': 0.18.14 + '@esbuild/win32-arm64': 0.18.14 + '@esbuild/win32-ia32': 0.18.14 + '@esbuild/win32-x64': 0.18.14 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -4614,7 +4589,7 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - /eslint-config-standard@17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.44.0): + /eslint-config-standard@17.0.0(eslint-plugin-import@2.27.5)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.45.0): resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -4622,10 +4597,10 @@ packages: eslint-plugin-n: ^15.0.0 eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.44.0 - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) - eslint-plugin-n: 15.7.0(eslint@8.44.0) - eslint-plugin-promise: 6.1.1(eslint@8.44.0) + eslint: 8.45.0 + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) + eslint-plugin-n: 15.7.0(eslint@8.45.0) + eslint-plugin-promise: 6.1.1(eslint@8.45.0) dev: true /eslint-import-resolver-node@0.3.7: @@ -4638,7 +4613,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.9)(eslint-plugin-import@2.27.5)(eslint@8.44.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.9)(eslint-plugin-import@2.27.5)(eslint@8.45.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4647,9 +4622,9 @@ packages: dependencies: debug: 4.3.4 enhanced-resolve: 5.15.0 - eslint: 8.44.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) + eslint: 8.45.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) get-tsconfig: 4.5.0 globby: 13.2.2 is-core-module: 2.12.1 @@ -4662,7 +4637,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -4683,38 +4658,38 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.9(eslint@8.44.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.9(eslint@8.45.0)(typescript@5.0.4) debug: 3.2.7 - eslint: 8.44.0 + eslint: 8.45.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.9)(eslint-plugin-import@2.27.5)(eslint@8.44.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.9)(eslint-plugin-import@2.27.5)(eslint@8.45.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es@3.0.1(eslint@8.44.0): + /eslint-plugin-es@3.0.1(eslint@8.45.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.44.0 + eslint: 8.45.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-es@4.1.0(eslint@8.44.0): + /eslint-plugin-es@4.1.0(eslint@8.45.0): resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.44.0 + eslint: 8.45.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -4724,15 +4699,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.9(eslint@8.44.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.9(eslint@8.45.0)(typescript@5.0.4) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.44.0 + eslint: 8.45.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) has: 1.0.3 is-core-module: 2.12.1 is-glob: 4.0.3 @@ -4747,7 +4722,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc@41.1.2(eslint@8.44.0): + /eslint-plugin-jsdoc@41.1.2(eslint@8.45.0): resolution: {integrity: sha512-MePJXdGiPW7AG06CU5GbKzYtKpoHwTq1lKijjq+RwL/cQkZtBZ59Zbv5Ep0RVxSMnq6242249/n+w4XrTZ1Afg==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: @@ -4758,29 +4733,29 @@ packages: comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 8.44.0 + eslint: 8.45.0 esquery: 1.5.0 - semver: 7.5.3 + semver: 7.5.4 spdx-expression-parse: 3.0.1 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-n@15.7.0(eslint@8.44.0): + /eslint-plugin-n@15.7.0(eslint@8.45.0): resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.44.0 - eslint-plugin-es: 4.1.0(eslint@8.44.0) - eslint-utils: 3.0.0(eslint@8.44.0) + eslint: 8.45.0 + eslint-plugin-es: 4.1.0(eslint@8.45.0) + eslint-utils: 3.0.0(eslint@8.45.0) ignore: 5.2.4 is-core-module: 2.12.1 minimatch: 3.1.2 resolve: 1.22.2 - semver: 7.5.3 + semver: 7.5.4 dev: true /eslint-plugin-no-only-tests@3.1.0: @@ -4788,14 +4763,14 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-node@11.1.0(eslint@8.44.0): + /eslint-plugin-node@11.1.0(eslint@8.45.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.44.0 - eslint-plugin-es: 3.0.1(eslint@8.44.0) + eslint: 8.45.0 + eslint-plugin-es: 3.0.1(eslint@8.45.0) eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 @@ -4803,16 +4778,16 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.44.0): + /eslint-plugin-promise@6.1.1(eslint@8.45.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.44.0 + eslint: 8.45.0 dev: true - /eslint-plugin-unicorn@44.0.2(eslint@8.44.0): + /eslint-plugin-unicorn@44.0.2(eslint@8.45.0): resolution: {integrity: sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==} engines: {node: '>=14.18'} peerDependencies: @@ -4821,8 +4796,8 @@ packages: '@babel/helper-validator-identifier': 7.22.5 ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.44.0 - eslint-utils: 3.0.0(eslint@8.44.0) + eslint: 8.45.0 + eslint-utils: 3.0.0(eslint@8.45.0) esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -4831,23 +4806,23 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 safe-regex: 2.1.1 - semver: 7.5.3 + semver: 7.5.4 strip-indent: 3.0.0 dev: true - /eslint-plugin-vue@9.14.0(eslint@8.44.0): + /eslint-plugin-vue@9.14.0(eslint@8.45.0): resolution: {integrity: sha512-4O7EuiqPGVQA1wYCzLvCzsBTv9JIPHLHhrf0k55DLzbwtmJbSw2TKS0G/l7pOwi9RWMSkjIT7ftChU5gZpgnJw==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0) - eslint: 8.44.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) + eslint: 8.45.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.13 - semver: 7.5.3 - vue-eslint-parser: 9.3.1(eslint@8.44.0) + semver: 7.5.4 + vue-eslint-parser: 9.3.1(eslint@8.45.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -4874,13 +4849,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.44.0): + /eslint-utils@3.0.0(eslint@8.45.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.44.0 + eslint: 8.45.0 eslint-visitor-keys: 2.1.0 dev: true @@ -4898,12 +4873,12 @@ packages: resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /eslint@8.44.0: - resolution: {integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==} + /eslint@8.45.0: + resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) '@eslint-community/regexpp': 4.5.1 '@eslint/eslintrc': 2.1.0 '@eslint/js': 8.44.0 @@ -4928,7 +4903,6 @@ packages: globals: 13.20.0 graphemer: 1.4.0 ignore: 5.2.4 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -4940,7 +4914,6 @@ packages: natural-compare: 1.4.0 optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color @@ -5030,16 +5003,16 @@ packages: signal-exit: 3.0.7 strip-final-newline: 3.0.0 - /expect@29.6.0: - resolution: {integrity: sha512-AV+HaBtnDJ2YEUhPPo25HyUHBLaetM+y/Dq6pEC8VPQyt1dK+k8MfGkMy46djy2bddcqESc1kl4/K1uLWSfk9g==} + /expect@29.6.1: + resolution: {integrity: sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/expect-utils': 29.6.0 + '@jest/expect-utils': 29.6.1 '@types/node': 18.16.19 jest-get-type: 29.4.3 - jest-matcher-utils: 29.6.0 - jest-message-util: 29.6.0 - jest-util: 29.6.0 + jest-matcher-utils: 29.6.1 + jest-message-util: 29.6.1 + jest-util: 29.6.1 dev: true /externality@1.0.2: @@ -5056,6 +5029,7 @@ packages: /fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: false /fast-glob@3.3.0: resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} @@ -5091,8 +5065,8 @@ packages: node-domexception: 1.0.0 web-streams-polyfill: 3.2.1 - /fflate@0.7.4: - resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} + /fflate@0.8.0: + resolution: {integrity: sha512-FAdS4qMuFjsJj6XHbBaZeXOgaypXp8iw/Tpyuq/w3XA41jjLHT8NPA+n7czH/DDhdncq0nAyDZmPeWXh2qmdIg==} dev: true /file-entry-cache@6.0.1: @@ -5101,7 +5075,7 @@ packages: dependencies: flat-cache: 3.0.4 - /file-loader@6.2.0(webpack@5.88.1): + /file-loader@6.2.0(webpack@5.88.2): resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -5109,7 +5083,7 @@ packages: dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.88.1 + webpack: 5.88.2 dev: false /file-uri-to-path@1.0.0: @@ -5173,7 +5147,7 @@ packages: signal-exit: 4.0.2 dev: true - /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.0.4)(webpack@5.88.1): + /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.0.4)(webpack@5.88.2): resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: @@ -5190,10 +5164,10 @@ packages: minimatch: 3.1.2 node-abort-controller: 3.1.1 schema-utils: 3.3.0 - semver: 7.5.3 + semver: 7.5.4 tapable: 2.2.1 typescript: 5.0.4 - webpack: 5.88.1 + webpack: 5.88.2 dev: false /formdata-polyfill@4.0.10: @@ -5494,8 +5468,8 @@ packages: ufo: 1.1.2 uncrypto: 0.1.3 - /happy-dom@9.20.3: - resolution: {integrity: sha512-eBsgauT435fXFvQDNcmm5QbGtYzxEzOaX35Ia+h6yP/wwa4xSWZh1CfP+mGby8Hk6Xu59mTkpyf72rUXHNxY7A==} + /happy-dom@10.5.2: + resolution: {integrity: sha512-dTA1cDcLOPIkAdykLd9Wo1k8Ly36Hh2OdKGkWEHWuAHb89KcVVRLSj1OFev7ir90xhRLSGCGrEdDvS6u9l13kg==} dependencies: css.escape: 1.5.1 entities: 4.5.0 @@ -5638,13 +5612,13 @@ packages: safer-buffer: 2.1.2 dev: true - /icss-utils@5.1.0(postcss@8.4.24): + /icss-utils@5.1.0(postcss@8.4.26): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 dev: false /ieee754@1.2.1: @@ -5716,10 +5690,6 @@ packages: transitivePeerDependencies: - supports-color - /ip-regex@5.0.0: - resolution: {integrity: sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - /iron-webcrypto@0.7.0: resolution: {integrity: sha512-WkX32iTcwd79ZsWRPP5wq1Jq6XXfPwO783ZiUBY8uMw4/AByx5WvBmxvYGnpVt6AOVJ0F41Qo420r8lIneT9Wg==} @@ -5951,14 +5921,14 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jest-diff@29.6.0: - resolution: {integrity: sha512-ZRm7cd2m9YyZ0N3iMyuo1iUiprxQ/MFpYWXzEEj7hjzL3WnDffKW8192XBDcrAI8j7hnrM1wed3bL/oEnYF/8w==} + /jest-diff@29.6.1: + resolution: {integrity: sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 diff-sequences: 29.4.3 jest-get-type: 29.4.3 - pretty-format: 29.6.0 + pretty-format: 29.6.1 dev: true /jest-get-type@29.4.3: @@ -5966,57 +5936,57 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map@29.6.0: - resolution: {integrity: sha512-dY1DKufptj7hcJSuhpqlYPGcnN3XjlOy/g0jinpRTMsbb40ivZHiuIPzeminOZkrek8C+oDxC54ILGO3vMLojg==} + /jest-haste-map@29.6.1: + resolution: {integrity: sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.0 + '@jest/types': 29.6.1 '@types/graceful-fs': 4.1.6 '@types/node': 18.16.19 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 jest-regex-util: 29.4.3 - jest-util: 29.6.0 - jest-worker: 29.6.0 + jest-util: 29.6.1 + jest-worker: 29.6.1 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: fsevents: 2.3.2 dev: true - /jest-matcher-utils@29.6.0: - resolution: {integrity: sha512-oSlqfGN+sbkB2Q5um/zL7z80w84FEAcLKzXBZIPyRk2F2Srg1ubhrHVKW68JCvb2+xKzAeGw35b+6gciS24PHw==} + /jest-matcher-utils@29.6.1: + resolution: {integrity: sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 29.6.0 + jest-diff: 29.6.1 jest-get-type: 29.4.3 - pretty-format: 29.6.0 + pretty-format: 29.6.1 dev: true - /jest-message-util@29.6.0: - resolution: {integrity: sha512-mkCp56cETbpoNtsaeWVy6SKzk228mMi9FPHSObaRIhbR2Ujw9PqjW/yqVHD2tN1bHbC8ol6h3UEo7dOPmIYwIA==} + /jest-message-util@29.6.1: + resolution: {integrity: sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.22.5 - '@jest/types': 29.6.0 + '@jest/types': 29.6.1 '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.5 - pretty-format: 29.6.0 + pretty-format: 29.6.1 slash: 3.0.0 stack-utils: 2.0.6 dev: true - /jest-mock@29.6.0: - resolution: {integrity: sha512-2Pb7R2w24Q0aUVn+2/vdRDL6CqGqpheDZy7zrXav8FotOpSGw/4bS2hyVoKHMEx4xzOn6EyCAGwc5czWxXeN7w==} + /jest-mock@29.6.1: + resolution: {integrity: sha512-brovyV9HBkjXAEdRooaTQK42n8usKoSRR3gihzUpYeV/vwqgSoNfrksO7UfSACnPmxasO/8TmHM3w9Hp3G1dgw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.0 + '@jest/types': 29.6.1 '@types/node': 18.16.19 - jest-util: 29.6.0 + jest-util: 29.6.1 dev: true /jest-regex-util@29.4.3: @@ -6024,8 +5994,8 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-snapshot@29.6.0: - resolution: {integrity: sha512-H3kUE9NwWDEDoutcOSS921IqdlkdjgnMdj1oMyxAHNflscdLc9dB8OudZHV6kj4OHJxbMxL8CdI5DlwYrs4wQg==} + /jest-snapshot@29.6.1: + resolution: {integrity: sha512-G4UQE1QQ6OaCgfY+A0uR1W2AY0tGXUPQpoUClhWHq1Xdnx1H6JOrC2nH5lqnOEqaDgbHFgIwZ7bNq24HpB180A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.22.5 @@ -6033,31 +6003,31 @@ packages: '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.22.5) '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.22.5) '@babel/types': 7.22.5 - '@jest/expect-utils': 29.6.0 - '@jest/transform': 29.6.0 - '@jest/types': 29.6.0 + '@jest/expect-utils': 29.6.1 + '@jest/transform': 29.6.1 + '@jest/types': 29.6.1 '@types/prettier': 2.7.2 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.5) chalk: 4.1.2 - expect: 29.6.0 + expect: 29.6.1 graceful-fs: 4.2.11 - jest-diff: 29.6.0 + jest-diff: 29.6.1 jest-get-type: 29.4.3 - jest-matcher-utils: 29.6.0 - jest-message-util: 29.6.0 - jest-util: 29.6.0 + jest-matcher-utils: 29.6.1 + jest-message-util: 29.6.1 + jest-util: 29.6.1 natural-compare: 1.4.0 - pretty-format: 29.6.0 - semver: 7.5.3 + pretty-format: 29.6.1 + semver: 7.5.4 transitivePeerDependencies: - supports-color dev: true - /jest-util@29.6.0: - resolution: {integrity: sha512-S0USx9YwcvEm4pQ5suisVm/RVxBmi0GFR7ocJhIeaCuW5AXnAnffXbaVKvIFodyZNOc9ygzVtTxmBf40HsHXaA==} + /jest-util@29.6.1: + resolution: {integrity: sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.0 + '@jest/types': 29.6.1 '@types/node': 18.16.19 chalk: 4.1.2 ci-info: 3.8.0 @@ -6072,12 +6042,12 @@ packages: merge-stream: 2.0.0 supports-color: 8.1.1 - /jest-worker@29.6.0: - resolution: {integrity: sha512-oiQHH1SnKmZIwwPnpOrXTq4kHBk3lKGY/07DpnH0sAu+x7J8rXlbLDROZsU6vy9GwB0hPiZeZpu6YlJ48QoKcA==} + /jest-worker@29.6.1: + resolution: {integrity: sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 18.16.19 - jest-util: 29.6.0 + jest-util: 29.6.1 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -6096,11 +6066,6 @@ packages: nopt: 6.0.0 dev: true - /js-string-escape@1.0.1: - resolution: {integrity: sha512-Smw4xcfIQ5LVjAOuJCvN/zIodzA/BBSsluuoSykP+lUvScIi4U6RJLfwHet5cxFnCswUjISV8oAXaqaJDY3chg==} - engines: {node: '>= 0.8'} - dev: true - /js-stringify@1.0.2: resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} dev: false @@ -6226,16 +6191,20 @@ packages: uc.micro: 1.0.6 dev: true - /listhen@1.0.4: - resolution: {integrity: sha512-r94k7kmXHb8e8wpv7+UP/qqhhD+j/9TgX19QKim2cEJuWCLwlTw+5BkCFmYyjhQ7Bt8KdVun/2DcD7MF2Fe3+g==} + /listhen@1.1.2: + resolution: {integrity: sha512-rLX5V57oonazmc6zoZ2LzfbSOfGzDOLdQ/eTEh/d3f1xYMACH1yIU8nr0YGl2WiR+l31o3QCN4/VH2dUNyYvTA==} + hasBin: true dependencies: + citty: 0.1.2 clipboardy: 3.0.0 - colorette: 2.0.20 + consola: 3.2.3 defu: 6.1.2 get-port-please: 3.0.1 http-shutdown: 1.2.2 - ip-regex: 5.0.0 + jiti: 1.19.1 + mlly: 1.4.0 node-forge: 1.3.1 + pathe: 1.1.1 ufo: 1.1.2 /loader-runner@4.3.0: @@ -6419,13 +6388,6 @@ packages: markdown-it: 13.0.1 dev: true - /md5-hex@3.0.1: - resolution: {integrity: sha512-BUiRtTtV39LIJwinWBjqVsU9xhdnz7/i889V859IBFpuqGAj6LuOvHv5XLbgZ2R7ptJoJaEcxkv88/h25T7Ciw==} - engines: {node: '>=8'} - dependencies: - blueimp-md5: 2.19.0 - dev: true - /mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} dev: false @@ -6519,14 +6481,14 @@ packages: engines: {node: '>=4'} dev: true - /mini-css-extract-plugin@2.7.6(webpack@5.88.1): + /mini-css-extract-plugin@2.7.6(webpack@5.88.2): resolution: {integrity: sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==} engines: {node: '>= 12.13.0'} peerDependencies: webpack: ^5.0.0 dependencies: schema-utils: 4.0.1 - webpack: 5.88.1 + webpack: 5.88.2 dev: false /minimatch@3.0.8: @@ -6675,13 +6637,13 @@ packages: c12: 1.4.2 chalk: 5.3.0 chokidar: 3.5.3 - citty: 0.1.1 + citty: 0.1.2 consola: 3.2.3 cookie-es: 1.0.0 defu: 6.1.2 destr: 2.0.0 dot-prop: 7.2.0 - esbuild: 0.18.11 + esbuild: 0.18.14 escape-string-regexp: 5.0.0 etag: 1.8.1 fs-extra: 11.1.1 @@ -6695,7 +6657,7 @@ packages: jiti: 1.19.1 klona: 2.0.6 knitwork: 1.0.0 - listhen: 1.0.4 + listhen: 1.1.2 magic-string: 0.30.1 mime: 3.0.0 mlly: 1.4.0 @@ -6712,14 +6674,14 @@ packages: rollup: 3.26.0 rollup-plugin-visualizer: 5.9.2(rollup@3.26.0) scule: 1.0.0 - semver: 7.5.3 + semver: 7.5.4 serve-placeholder: 2.0.1 serve-static: 1.15.0 source-map-support: 0.5.21 std-env: 3.3.3 ufo: 1.1.2 uncrypto: 0.1.3 - unenv: 1.5.1 + unenv: 1.5.2 unimport: 3.0.14(rollup@3.26.0) unstorage: 1.7.0 transitivePeerDependencies: @@ -6843,28 +6805,30 @@ packages: dependencies: boolbase: 1.0.0 - /nuxt-vitest@0.8.7(@vitejs/plugin-vue-jsx@3.0.1)(@vitejs/plugin-vue@4.2.3)(vite@4.3.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): - resolution: {integrity: sha512-OaQqF8QxfLKzYzSrwcfkhv5BeyLQGGvrSvOedjV3OHuDjOaTJa6OPU2VTCZBVNvPMjnbm2h71/CsXbH6smvEJw==} + /nuxt-vitest@0.10.1(@vitejs/plugin-vue-jsx@3.0.1)(@vitejs/plugin-vue@4.2.3)(happy-dom@10.5.2)(vite@4.4.4)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): + resolution: {integrity: sha512-Lee+r2Cs1L9OgLjmGC51aggE5xnbspbEMmt7oYYVOyNHmSz5zAp+YHTGU42BdD1ueYXDZ8QKmknlR0cxj1vLBw==} peerDependencies: '@vitejs/plugin-vue': '*' '@vitejs/plugin-vue-jsx': '*' vite: '*' - vitest: ^0.30.0 + vitest: ^0.24.5 || ^0.26.0 || ^0.27.0 || ^0.28.0 || ^0.29.0 || ^0.30.0 || ^0.33.0 dependencies: '@nuxt/kit': link:packages/kit - '@vitejs/plugin-vue': 4.2.3(vite@4.3.9)(vue@3.3.4) - '@vitejs/plugin-vue-jsx': 3.0.1(vite@4.3.9)(vue@3.3.4) - '@vitest/ui': 0.30.1 + '@vitejs/plugin-vue': 4.2.3(vite@4.4.4)(vue@3.3.4) + '@vitejs/plugin-vue-jsx': 3.0.1(vite@4.4.4)(vue@3.3.4) + '@vitest/ui': 0.33.0(vitest@0.33.0) defu: 6.1.2 get-port-please: 3.0.1 perfect-debounce: 1.0.0 std-env: 3.3.3 - vite: 4.3.9(@types/node@18.16.19) - vitest: 0.33.0 - vitest-environment-nuxt: 0.8.7(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + vite: 4.4.4(@types/node@18.16.19) + vitest: 0.33.0(happy-dom@10.5.2) + vitest-environment-nuxt: 0.10.1(happy-dom@10.5.2)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) transitivePeerDependencies: - '@vue/compiler-dom' - '@vue/server-renderer' + - happy-dom + - jsdom - vue - vue-router dev: true @@ -7143,8 +7107,8 @@ packages: mlly: 1.4.0 pathe: 1.1.1 - /playwright-core@1.35.1: - resolution: {integrity: sha512-pNXb6CQ7OqmGDRspEjlxE49w+4YtR6a3X6mT1hZXeJHWmsEz7SunmvZeiG/+y1yyMZdHnnn73WKYdtV1er0Xyg==} + /playwright-core@1.36.1: + resolution: {integrity: sha512-7+tmPuMcEW4xeCL9cp9KxmYpQYHKkyjwoXRnoeTowaeNat8PoBMk/HwCYhqkH2fRkshfKEOiVus/IhID2Pg8kg==} engines: {node: '>=16'} hasBin: true dev: true @@ -7154,18 +7118,18 @@ packages: engines: {node: '>=4'} dev: true - /postcss-calc@9.0.0(postcss@8.4.24): + /postcss-calc@9.0.0(postcss@8.4.26): resolution: {integrity: sha512-B9BNW/SVh4SMJfoCQ6D9h1Wo7Yjqks7UdbiARJ16J5TIsQn5NEqwMF5joSgOYb26oJPUR5Uv3fCQ/4PvmZWeJQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: false - /postcss-colormin@6.0.0(postcss@8.4.24): + /postcss-colormin@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -7174,55 +7138,55 @@ packages: browserslist: 4.21.9 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-convert-values@6.0.0(postcss@8.4.24): + /postcss-convert-values@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.9 - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-discard-comments@6.0.0(postcss@8.4.24): + /postcss-discard-comments@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 dev: false - /postcss-discard-duplicates@6.0.0(postcss@8.4.24): + /postcss-discard-duplicates@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 dev: false - /postcss-discard-empty@6.0.0(postcss@8.4.24): + /postcss-discard-empty@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 dev: false - /postcss-discard-overridden@6.0.0(postcss@8.4.24): + /postcss-discard-overridden@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 dev: false /postcss-import-resolver@2.0.0: @@ -7231,19 +7195,19 @@ packages: enhanced-resolve: 4.5.0 dev: false - /postcss-import@15.1.0(postcss@8.4.24): + /postcss-import@15.1.0(postcss@8.4.26): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.2 dev: false - /postcss-loader@7.3.3(postcss@8.4.24)(webpack@5.88.1): + /postcss-loader@7.3.3(postcss@8.4.26)(webpack@5.88.2): resolution: {integrity: sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -7252,23 +7216,23 @@ packages: dependencies: cosmiconfig: 8.2.0 jiti: 1.19.1 - postcss: 8.4.24 - semver: 7.5.3 - webpack: 5.88.1 + postcss: 8.4.26 + semver: 7.5.4 + webpack: 5.88.2 dev: false - /postcss-merge-longhand@6.0.0(postcss@8.4.24): + /postcss-merge-longhand@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 - stylehacks: 6.0.0(postcss@8.4.24) + stylehacks: 6.0.0(postcss@8.4.26) dev: false - /postcss-merge-rules@6.0.1(postcss@8.4.24): + /postcss-merge-rules@6.0.1(postcss@8.4.26): resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -7276,198 +7240,198 @@ packages: dependencies: browserslist: 4.21.9 caniuse-api: 3.0.0 - cssnano-utils: 4.0.0(postcss@8.4.24) - postcss: 8.4.24 + cssnano-utils: 4.0.0(postcss@8.4.26) + postcss: 8.4.26 postcss-selector-parser: 6.0.13 dev: false - /postcss-minify-font-values@6.0.0(postcss@8.4.24): + /postcss-minify-font-values@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-gradients@6.0.0(postcss@8.4.24): + /postcss-minify-gradients@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 4.0.0(postcss@8.4.24) - postcss: 8.4.24 + cssnano-utils: 4.0.0(postcss@8.4.26) + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-params@6.0.0(postcss@8.4.24): + /postcss-minify-params@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.9 - cssnano-utils: 4.0.0(postcss@8.4.24) - postcss: 8.4.24 + cssnano-utils: 4.0.0(postcss@8.4.26) + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-selectors@6.0.0(postcss@8.4.24): + /postcss-minify-selectors@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-selector-parser: 6.0.13 dev: false - /postcss-modules-extract-imports@3.0.0(postcss@8.4.24): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.26): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 dev: false - /postcss-modules-local-by-default@4.0.3(postcss@8.4.24): + /postcss-modules-local-by-default@4.0.3(postcss@8.4.26): resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.24) - postcss: 8.4.24 + icss-utils: 5.1.0(postcss@8.4.26) + postcss: 8.4.26 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: false - /postcss-modules-scope@3.0.0(postcss@8.4.24): + /postcss-modules-scope@3.0.0(postcss@8.4.26): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-selector-parser: 6.0.13 dev: false - /postcss-modules-values@4.0.0(postcss@8.4.24): + /postcss-modules-values@4.0.0(postcss@8.4.26): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.24) - postcss: 8.4.24 + icss-utils: 5.1.0(postcss@8.4.26) + postcss: 8.4.26 dev: false - /postcss-normalize-charset@6.0.0(postcss@8.4.24): + /postcss-normalize-charset@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 dev: false - /postcss-normalize-display-values@6.0.0(postcss@8.4.24): + /postcss-normalize-display-values@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-positions@6.0.0(postcss@8.4.24): + /postcss-normalize-positions@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-repeat-style@6.0.0(postcss@8.4.24): + /postcss-normalize-repeat-style@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-string@6.0.0(postcss@8.4.24): + /postcss-normalize-string@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-timing-functions@6.0.0(postcss@8.4.24): + /postcss-normalize-timing-functions@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-unicode@6.0.0(postcss@8.4.24): + /postcss-normalize-unicode@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.9 - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-url@6.0.0(postcss@8.4.24): + /postcss-normalize-url@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-whitespace@6.0.0(postcss@8.4.24): + /postcss-normalize-whitespace@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-ordered-values@6.0.0(postcss@8.4.24): + /postcss-ordered-values@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 4.0.0(postcss@8.4.24) - postcss: 8.4.24 + cssnano-utils: 4.0.0(postcss@8.4.26) + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false - /postcss-reduce-initial@6.0.0(postcss@8.4.24): + /postcss-reduce-initial@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -7475,16 +7439,16 @@ packages: dependencies: browserslist: 4.21.9 caniuse-api: 3.0.0 - postcss: 8.4.24 + postcss: 8.4.26 dev: false - /postcss-reduce-transforms@6.0.0(postcss@8.4.24): + /postcss-reduce-transforms@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 dev: false @@ -7495,28 +7459,28 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-svgo@6.0.0(postcss@8.4.24): + /postcss-svgo@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-value-parser: 4.2.0 svgo: 3.0.2 dev: false - /postcss-unique-selectors@6.0.0(postcss@8.4.24): + /postcss-unique-selectors@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.24 + postcss: 8.4.26 postcss-selector-parser: 6.0.13 dev: false - /postcss-url@10.1.3(postcss@8.4.24): + /postcss-url@10.1.3(postcss@8.4.26): resolution: {integrity: sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==} engines: {node: '>=10'} peerDependencies: @@ -7525,7 +7489,7 @@ packages: make-dir: 3.1.0 mime: 2.5.2 minimatch: 3.0.8 - postcss: 8.4.24 + postcss: 8.4.26 xxhashjs: 0.2.2 dev: false @@ -7533,8 +7497,8 @@ packages: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} dev: false - /postcss@8.4.24: - resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} + /postcss@8.4.26: + resolution: {integrity: sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -7549,17 +7513,8 @@ packages: resolution: {integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==} engines: {node: ^14.13.1 || >=16.0.0} - /pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - ansi-regex: 5.0.1 - ansi-styles: 5.2.0 - react-is: 17.0.2 - dev: true - - /pretty-format@29.6.0: - resolution: {integrity: sha512-XH+D4n7Ey0iSR6PdAnBs99cWMZdGsdKrR33iUHQNr79w1szKTCIZDVdXuccAsHVwDBp0XeWPfNEoaxP9EZgRmQ==} + /pretty-format@29.6.1: + resolution: {integrity: sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.0 @@ -7739,10 +7694,6 @@ packages: destr: 2.0.0 flat: 5.0.2 - /react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true - /react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: true @@ -8004,8 +7955,8 @@ packages: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true - /semver@7.5.3: - resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -8296,14 +8247,14 @@ packages: dependencies: acorn: 8.10.0 - /stylehacks@6.0.0(postcss@8.4.24): + /stylehacks@6.0.0(postcss@8.4.26): resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.9 - postcss: 8.4.24 + postcss: 8.4.26 postcss-selector-parser: 6.0.13 dev: false @@ -8387,7 +8338,7 @@ packages: mkdirp: 1.0.4 yallist: 4.0.0 - /terser-webpack-plugin@5.3.7(webpack@5.88.1): + /terser-webpack-plugin@5.3.7(webpack@5.88.2): resolution: {integrity: sha512-AfKwIktyP7Cu50xNjXF/6Qb5lBNzYaWpU6YfoX3uZicTx0zTy0stDDCsvjDapKsSDvOeWo5MEq4TmdBy2cNoHw==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -8408,7 +8359,7 @@ packages: schema-utils: 3.3.0 serialize-javascript: 6.0.1 terser: 5.18.1 - webpack: 5.88.1 + webpack: 5.88.2 /terser@5.18.1: resolution: {integrity: sha512-j1n0Ao919h/Ai5r43VAnfV/7azUYW43GPxK7qSATzrsERfW7+y2QW9Cp9ufnRF5CQUWbnLSo7UJokSWCqg4tsQ==} @@ -8441,19 +8392,14 @@ packages: tslib: 2.6.0 dev: false - /time-fix-plugin@2.0.7(webpack@5.88.1): + /time-fix-plugin@2.0.7(webpack@5.88.2): resolution: {integrity: sha512-uVFet1LQToeUX0rTcSiYVYVoGuBpc8gP/2jnlUzuHMHe+gux6XLsNzxLUweabMwiUj5ejhoIMsUI55nVSEa/Vw==} peerDependencies: webpack: '>=4.0.0' dependencies: - webpack: 5.88.1 + webpack: 5.88.2 dev: false - /time-zone@1.0.0: - resolution: {integrity: sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==} - engines: {node: '>=4'} - dev: true - /tiny-invariant@1.3.1: resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} dev: false @@ -8597,8 +8543,8 @@ packages: /ufo@1.1.2: resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} - /ultrahtml@1.2.0: - resolution: {integrity: sha512-vxZM2yNvajRmCj/SknRYGNXk2tqiy6kRNvZjJLaleG3zJbSh/aNkOqD1/CVzypw8tyHyhpzYuwQgMMhUB4ZVNQ==} + /ultrahtml@1.3.0: + resolution: {integrity: sha512-xmXvE8tC8t4PVqy0/g1fe7H9USY/Brr425q4dD/0QbQMQit7siCtb06+SCqE4GfU24nwsZz8Th1g7L7mm1lL5g==} dev: false /unbox-primitive@1.0.2: @@ -8653,7 +8599,7 @@ packages: acorn: 8.10.0 estree-walker: 3.0.3 magic-string: 0.30.1 - unplugin: 1.3.2 + unplugin: 1.4.0 /undici@5.22.1: resolution: {integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==} @@ -8661,8 +8607,8 @@ packages: dependencies: busboy: 1.6.0 - /unenv@1.5.1: - resolution: {integrity: sha512-tQHlmQUPyIoyGc2bF8phugmQd6wVatkVe5FqxxhM1vHfmPKWTiogSVTHA0mO8gNztDKZLpBEJx3M3CJrTZyExg==} + /unenv@1.5.2: + resolution: {integrity: sha512-fpQW0nx3hGx0q0wq/35+ng9Dm4m1/2V00UmU5Jxdr1woyrMbT4RydQn5eh/hZyM81HKAPzaf50TKX0XfYpBaqg==} dependencies: consola: 3.2.3 defu: 6.1.2 @@ -8670,12 +8616,12 @@ packages: node-fetch-native: 1.2.0 pathe: 1.1.1 - /unhead@1.1.30: - resolution: {integrity: sha512-25N/P1GnnC8EYCDerzE0hl2nOdRqS1NOFh1STEyKWRo/Bi5dXn8Z2NTaqzkbr5ExJTZEAiDfZ+eALvMTmvlXlA==} + /unhead@1.1.32: + resolution: {integrity: sha512-WO1NTmljMZZzZjzmkcgZpYKpbEGGB3HC+2DIJxAZd0++WCPT9jD6o0MIgpA71UvueOCqLhIlyfGsa9Hgn0Gnog==} dependencies: - '@unhead/dom': 1.1.30 - '@unhead/schema': 1.1.30 - '@unhead/shared': 1.1.30 + '@unhead/dom': 1.1.32 + '@unhead/schema': 1.1.32 + '@unhead/shared': 1.1.32 hookable: 5.5.3 dev: false @@ -8692,7 +8638,7 @@ packages: pkg-types: 1.0.3 scule: 1.0.0 strip-literal: 1.0.1 - unplugin: 1.3.2 + unplugin: 1.4.0 transitivePeerDependencies: - rollup @@ -8719,7 +8665,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 scule: 1.0.0 - unplugin: 1.3.2 + unplugin: 1.4.0 vue-router: 4.2.4(vue@3.3.4) yaml: 2.3.1 transitivePeerDependencies: @@ -8727,8 +8673,8 @@ packages: - vue dev: false - /unplugin@1.3.2: - resolution: {integrity: sha512-Lh7/2SryjXe/IyWqx9K7IKwuKhuOFZEhotiBquOODsv2IVyDkI9lv/XhgfjdXf/xdbv32txmnBNnC/JVTDJlsA==} + /unplugin@1.4.0: + resolution: {integrity: sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg==} dependencies: acorn: 8.10.0 chokidar: 3.5.3 @@ -8772,7 +8718,7 @@ packages: destr: 2.0.0 h3: 1.7.1 ioredis: 5.3.2 - listhen: 1.0.4 + listhen: 1.1.2 lru-cache: 10.0.0 mri: 1.2.0 node-fetch-native: 1.2.0 @@ -8815,7 +8761,7 @@ packages: dependencies: punycode: 2.3.0 - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.88.1): + /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.88.2): resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -8825,11 +8771,11 @@ packages: file-loader: optional: true dependencies: - file-loader: 6.2.0(webpack@5.88.1) + file-loader: 6.2.0(webpack@5.88.2) loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.88.1 + webpack: 5.88.2 dev: false /util-deprecate@1.0.2: @@ -8857,17 +8803,18 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.3.9(@types/node@18.16.19) + vite: 4.4.4(@types/node@18.16.19) transitivePeerDependencies: - '@types/node' - less + - lightningcss - sass - stylus - sugarss - supports-color - terser - /vite-plugin-checker@0.6.1(eslint@8.44.0)(typescript@5.0.4)(vite@4.3.9)(vue-tsc@1.8.4): + /vite-plugin-checker@0.6.1(eslint@8.45.0)(typescript@5.0.4)(vite@4.4.4)(vue-tsc@1.8.5): resolution: {integrity: sha512-4fAiu3W/IwRJuJkkUZlWbLunSzsvijDf0eDN6g/MGh6BUK4SMclOTGbLJCPvdAcMOQvVmm8JyJeYLYd4//8CkA==} engines: {node: '>=14.16'} peerDependencies: @@ -8903,31 +8850,32 @@ packages: chalk: 4.1.2 chokidar: 3.5.3 commander: 8.3.0 - eslint: 8.44.0 + eslint: 8.45.0 fast-glob: 3.3.0 fs-extra: 11.1.1 lodash.debounce: 4.0.8 lodash.pick: 4.4.0 npm-run-path: 4.0.1 - semver: 7.5.3 + semver: 7.5.4 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.0.4 - vite: 4.3.9(@types/node@18.16.19) + vite: 4.4.4(@types/node@18.16.19) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 vscode-uri: 3.0.7 - vue-tsc: 1.8.4(typescript@5.0.4) + vue-tsc: 1.8.5(typescript@5.0.4) dev: false - /vite@4.3.9(@types/node@18.16.19): - resolution: {integrity: sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==} + /vite@4.4.4(@types/node@18.16.19): + resolution: {integrity: sha512-4mvsTxjkveWrKDJI70QmelfVqTm+ihFAb6+xf4sjEU2TmUCTlVX87tmg/QooPEMQb/lM9qGHT99ebqPziEd3wg==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true peerDependencies: '@types/node': '>= 14' less: '*' + lightningcss: ^1.21.0 sass: '*' stylus: '*' sugarss: '*' @@ -8937,6 +8885,8 @@ packages: optional: true less: optional: true + lightningcss: + optional: true sass: optional: true stylus: @@ -8947,29 +8897,37 @@ packages: optional: true dependencies: '@types/node': 18.16.19 - esbuild: 0.17.19 - postcss: 8.4.24 + esbuild: 0.18.14 + postcss: 8.4.26 rollup: 3.26.0 optionalDependencies: fsevents: 2.3.2 - /vitest-environment-nuxt@0.8.7(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): - resolution: {integrity: sha512-wk0Jn+PmZqF3jT3R/pkrgP7C98K6+/B3yq0dG9I8Qanwmp3014ljQgpiukrAZ6ZeF4k/8wrNBRliBcqtxCKFcw==} + /vitest-environment-nuxt@0.10.1(happy-dom@10.5.2)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): + resolution: {integrity: sha512-VFRnK+eNC9OR0PtNtiq+MaNR3rN+TnB7N8YFjDXURHTsWhInGY2031becn3HBXs49yBikW6lji18TT8yDAKCJw==} peerDependencies: - vitest: ^0.24.5 || ^0.26.0 || ^0.27.0 || ^0.28.0 || ^0.29.0 || ^0.30.0 + happy-dom: ^9.10.9 + jsdom: ^22.0.0 + vitest: ^0.24.5 || ^0.26.0 || ^0.27.0 || ^0.28.0 || ^0.29.0 || ^0.30.0 || ^0.33.0 vue: ^3.2.45 vue-router: ^4.0.0 + peerDependenciesMeta: + happy-dom: + optional: true + jsdom: + optional: true dependencies: '@nuxt/kit': link:packages/kit '@vue/test-utils': 2.4.0(vue@3.3.4) defu: 6.1.2 estree-walker: 3.0.3 h3: 1.7.1 - happy-dom: 9.20.3 + happy-dom: 10.5.2 magic-string: 0.30.1 + node-fetch-native: 1.2.0 ofetch: 1.1.1 - unenv: 1.5.1 - vitest: 0.33.0 + unenv: 1.5.2 + vitest: 0.33.0(happy-dom@10.5.2) vue: 3.3.4 vue-router: 4.2.4(vue@3.3.4) transitivePeerDependencies: @@ -8977,7 +8935,7 @@ packages: - '@vue/server-renderer' dev: true - /vitest@0.33.0: + /vitest@0.33.0(happy-dom@10.5.2): resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} engines: {node: '>=v14.18.0'} hasBin: true @@ -9021,6 +8979,7 @@ packages: cac: 6.7.14 chai: 4.3.7 debug: 4.3.4 + happy-dom: 10.5.2 local-pkg: 0.4.3 magic-string: 0.30.1 pathe: 1.1.1 @@ -9029,11 +8988,12 @@ packages: strip-literal: 1.0.1 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.3.9(@types/node@18.16.19) + vite: 4.4.4(@types/node@18.16.19) vite-node: 0.33.0(@types/node@18.16.19) why-is-node-running: 2.2.2 transitivePeerDependencies: - less + - lightningcss - sass - stylus - sugarss @@ -9056,7 +9016,7 @@ packages: engines: {vscode: ^1.52.0} dependencies: minimatch: 3.1.2 - semver: 7.5.3 + semver: 7.5.4 vscode-languageserver-protocol: 3.16.0 dev: false @@ -9099,25 +9059,25 @@ packages: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} dev: false - /vue-eslint-parser@9.3.1(eslint@8.44.0): + /vue-eslint-parser@9.3.1(eslint@8.45.0): resolution: {integrity: sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4 - eslint: 8.44.0 + eslint: 8.45.0 eslint-scope: 7.2.0 eslint-visitor-keys: 3.4.1 espree: 9.6.0 esquery: 1.5.0 lodash: 4.17.21 - semver: 7.5.3 + semver: 7.5.4 transitivePeerDependencies: - supports-color dev: true - /vue-loader@17.2.2(vue@3.3.4)(webpack@5.88.1): + /vue-loader@17.2.2(vue@3.3.4)(webpack@5.88.2): resolution: {integrity: sha512-aqNvKJvnz2A/6VWeJZodAo8XLoAlVwBv+2Z6dama+LHsAF+P/xijQ+OfWrxIs0wcGSJduvdzvTuATzXbNKkpiw==} peerDependencies: '@vue/compiler-sfc': '*' @@ -9133,7 +9093,7 @@ packages: hash-sum: 2.0.0 vue: 3.3.4 watchpack: 2.4.0 - webpack: 5.88.1 + webpack: 5.88.2 /vue-router@4.2.4(vue@3.3.4): resolution: {integrity: sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==} @@ -9149,15 +9109,15 @@ packages: de-indent: 1.0.2 he: 1.2.0 - /vue-tsc@1.8.4(typescript@5.0.4): - resolution: {integrity: sha512-+hgpOhIx11vbi8/AxEdaPj3fiRwN9wy78LpsNNw2V995/IWa6TMyQxHbaw2ZKUpdwjySSHgrT6ohDEhUgFxGYw==} + /vue-tsc@1.8.5(typescript@5.0.4): + resolution: {integrity: sha512-Jr8PTghJIwp69MFsEZoADDcv2l+lXA8juyN/5AYA5zxyZNvIHjSbgKgkYIYc1qnihrOyIG1VOnfk4ZE0jqn8bw==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.4(typescript@5.0.4) - '@vue/typescript': 1.8.4(typescript@5.0.4) - semver: 7.5.3 + '@vue/language-core': 1.8.5(typescript@5.0.4) + '@vue/typescript': 1.8.5(typescript@5.0.4) + semver: 7.5.4 typescript: 5.0.4 /vue@3.3.4: @@ -9214,7 +9174,7 @@ packages: - utf-8-validate dev: false - /webpack-dev-middleware@6.1.1(webpack@5.88.1): + /webpack-dev-middleware@6.1.1(webpack@5.88.2): resolution: {integrity: sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -9228,7 +9188,7 @@ packages: mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.0.1 - webpack: 5.88.1 + webpack: 5.88.2 /webpack-hot-middleware@2.25.4: resolution: {integrity: sha512-IRmTspuHM06aZh98OhBJtqLpeWFM8FXJS5UYpKYxCJzyFoyWj1w6VGFfomZU7OPA55dMLrQK0pRT1eQ3PACr4w==} @@ -9251,8 +9211,8 @@ packages: /webpack-virtual-modules@0.5.0: resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} - /webpack@5.88.1: - resolution: {integrity: sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ==} + /webpack@5.88.2: + resolution: {integrity: sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==} engines: {node: '>=10.13.0'} hasBin: true peerDependencies: @@ -9282,7 +9242,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.7(webpack@5.88.1) + terser-webpack-plugin: 5.3.7(webpack@5.88.2) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -9290,7 +9250,7 @@ packages: - esbuild - uglify-js - /webpackbar@5.0.2(webpack@5.88.1): + /webpackbar@5.0.2(webpack@5.88.2): resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} engines: {node: '>=12'} peerDependencies: @@ -9300,14 +9260,9 @@ packages: consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.3.3 - webpack: 5.88.1 + webpack: 5.88.2 dev: false - /well-known-symbols@2.0.0: - resolution: {integrity: sha512-ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==} - engines: {node: '>=6'} - dev: true - /whatwg-encoding@2.0.0: resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} engines: {node: '>=12'} diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 87b06720d5..2b4c07ba6e 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -19,7 +19,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM for (const outputDir of ['.output', '.output-inline']) { it('default client bundle size', async () => { const clientStats = await analyzeSizes('**/*.js', join(rootDir, outputDir, 'public')) - expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"97.2k"') + expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"97.3k"') expect(clientStats.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -32,10 +32,10 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"64.1k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"64.4k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2329k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2330k"') const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -95,7 +95,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"370k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"590k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"591k"') const packages = modules.files .filter(m => m.endsWith('package.json')) From 6c517e919c758565e69b10237a9d13f9a65a243f Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Thu, 20 Jul 2023 11:55:11 +0200 Subject: [PATCH 550/912] docs: mention `#components` import for dynamic component (#22231) --- docs/2.guide/2.directory-structure/1.components.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/2.guide/2.directory-structure/1.components.md b/docs/2.guide/2.directory-structure/1.components.md index df310e6809..825cb82b34 100644 --- a/docs/2.guide/2.directory-structure/1.components.md +++ b/docs/2.guide/2.directory-structure/1.components.md @@ -98,17 +98,20 @@ This registers the components using the same strategy as used in Nuxt 2. For exa ## Dynamic Components -If you want to use the Vue `` syntax, then you will need to use the `resolveComponent` helper provided by Vue. +If you want to use the Vue `` syntax, you need to use the `resolveComponent` helper provided by Vue or import the component directly from `#components` and pass it into `is` prop. For example: ```vue ``` From 6a3cfb1bc90c4b6f6f22b1944e4d7a3f51771eb3 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Jul 2023 10:58:58 +0100 Subject: [PATCH 551/912] ci: add ecosystem-ci pr comment trigger (#22239) --- .github/workflows/ecosystem-ci-trigger.yml | 93 ++++++++++++++++++++++ .github/workflows/release-pr.yml | 2 +- 2 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ecosystem-ci-trigger.yml diff --git a/.github/workflows/ecosystem-ci-trigger.yml b/.github/workflows/ecosystem-ci-trigger.yml new file mode 100644 index 0000000000..2aa4bd58de --- /dev/null +++ b/.github/workflows/ecosystem-ci-trigger.yml @@ -0,0 +1,93 @@ +name: ecosystem-ci trigger + +on: + issue_comment: + types: [created] + +jobs: + trigger: + runs-on: ubuntu-latest + if: github.repository == 'nuxt/nuxt' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/ecosystem-ci run') + steps: + - uses: actions/github-script@v6 + with: + script: | + const user = context.payload.sender.login + console.log(`Validate user: ${user}`) + + let hasTriagePermission = false + try { + const { data } = await github.rest.repos.getCollaboratorPermissionLevel({ + owner: context.repo.owner, + repo: context.repo.repo, + username: user, + }); + hasTriagePermission = data.user.permissions.triage + } catch (e) { + console.warn(e) + } + + if (hasTriagePermission) { + console.log('Allowed') + await github.rest.reactions.createForIssueComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: context.payload.comment.id, + content: '+1', + }) + } else { + console.log('Not allowed') + await github.rest.reactions.createForIssueComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: context.payload.comment.id, + content: '-1', + }) + throw new Error('not allowed') + } + - uses: actions/github-script@v6 + id: get-pr-data + with: + script: | + console.log(`Get PR info: ${context.repo.owner}/${context.repo.repo}#${context.issue.number}`) + const { data: pr } = await github.rest.pulls.get({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.issue.number + }) + return { + num: context.issue.number, + branchName: pr.head.ref, + repo: pr.head.repo.full_name + } + - id: generate-token + uses: tibdex/github-app-token@v1 + with: + app_id: ${{ secrets.ECOSYSTEM_CI_GITHUB_APP_ID }} + private_key: ${{ secrets.ECOSYSTEM_CI_GITHUB_APP_PRIVATE_KEY }} + repository: "${{ github.repository_owner }}/ecosystem-ci" + - uses: actions/github-script@v6 + id: trigger + env: + COMMENT: ${{ github.event.comment.body }} + with: + github-token: ${{ steps.generate-token.outputs.token }} + result-encoding: string + script: | + const comment = process.env.COMMENT.trim() + const prData = ${{ steps.get-pr-data.outputs.result }} + + const suite = comment.split('\n')[0].replace(/^\/ecosystem-ci run/, '').trim() + + await github.rest.actions.createWorkflowDispatch({ + owner: context.repo.owner, + repo: 'ecosystem-ci', + workflow_id: 'ecosystem-ci-from-pr.yml', + ref: 'main', + inputs: { + prNumber: '' + prData.num, + branchName: prData.branchName, + repo: prData.repo, + suite: suite === '' ? '-' : suite + } + }) diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 5ce653f371..10fcbde4b3 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -13,7 +13,7 @@ permissions: jobs: release-pr: - if: ${{ github.event.issue.pull_request && github.event.comment.body == '/trigger release' }} + if: github.repository == 'nuxt/nuxt' && github.event.issue.pull_request && github.event.comment.body == '/trigger release' permissions: id-token: write pull-requests: write From 6508da25c4b2aabece38df58161e40e770792c3a Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Jul 2023 10:59:44 +0100 Subject: [PATCH 552/912] ci: add semantic pull request workflow (#22241) --- .github/workflows/semantic-pull-requests.yml | 34 ++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/semantic-pull-requests.yml diff --git a/.github/workflows/semantic-pull-requests.yml b/.github/workflows/semantic-pull-requests.yml new file mode 100644 index 0000000000..571f2bff8b --- /dev/null +++ b/.github/workflows/semantic-pull-requests.yml @@ -0,0 +1,34 @@ +name: Semantic pull request + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + +jobs: + main: + if: github.repository == 'nuxt/nuxt' + runs-on: ubuntu-latest + name: Semantic pull request + steps: + - name: Validate PR title + uses: amannn/action-semantic-pull-request@v5 + with: + scopes: | + kit + nuxi + nuxt + schema + test-utils + vite + webpack + deps + subjectPattern: ^(?![A-Z]).+$ + subjectPatternError: | + The subject "{subject}" found in the pull request title "{title}" + didn't match the configured pattern. Please ensure that the subject + doesn't start with an uppercase character. + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 4b13dadaa2185cdf842c7718ffb4188fce798ef8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Jul 2023 11:00:04 +0100 Subject: [PATCH 553/912] chore(deps): pin devdependency happy-dom to 10.5.2 (main) (#22240) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 122eedb8a5..112ee2f79f 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "fs-extra": "11.1.1", "globby": "13.2.2", "h3": "1.7.1", - "happy-dom": "^10.5.2", + "happy-dom": "10.5.2", "jiti": "1.19.1", "markdownlint-cli": "^0.33.0", "nitropack": "2.5.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index de06a406e1..6930c245f2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -84,7 +84,7 @@ importers: specifier: 1.7.1 version: 1.7.1 happy-dom: - specifier: ^10.5.2 + specifier: 10.5.2 version: 10.5.2 jiti: specifier: 1.19.1 From 6f1a557e5ec7ab38304cf77dcc4e85de467d6909 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 20 Jul 2023 13:48:38 +0100 Subject: [PATCH 554/912] ci: grant permission to comment on prs --- .github/workflows/ecosystem-ci-trigger.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ecosystem-ci-trigger.yml b/.github/workflows/ecosystem-ci-trigger.yml index 2aa4bd58de..c23050ad09 100644 --- a/.github/workflows/ecosystem-ci-trigger.yml +++ b/.github/workflows/ecosystem-ci-trigger.yml @@ -4,6 +4,9 @@ on: issue_comment: types: [created] +permissions: + pull-requests: write + jobs: trigger: runs-on: ubuntu-latest From 3cb10d6dc86d7bc56d7fada9645da8dd632c0af5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Jul 2023 14:21:36 +0100 Subject: [PATCH 555/912] chore(deps): update dependency unimport to ^3.1.0 (main) (#22246) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/kit/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- pnpm-lock.yaml | 18 +++++++++--------- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 16fbc7c6f1..a9e8afae25 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -35,7 +35,7 @@ "scule": "^1.0.0", "semver": "^7.5.4", "unctx": "^2.3.1", - "unimport": "^3.0.14", + "unimport": "^3.1.0", "untyped": "^1.3.2" }, "devDependencies": { diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 1a3bf1970f..023c43da61 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -96,7 +96,7 @@ "uncrypto": "^0.1.3", "unctx": "^2.3.1", "unenv": "^1.5.2", - "unimport": "^3.0.14", + "unimport": "^3.1.0", "unplugin": "^1.4.0", "unplugin-vue-router": "^0.6.4", "untyped": "^1.3.2", diff --git a/packages/schema/package.json b/packages/schema/package.json index c8a10d5e8d..ccd99c413f 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -56,7 +56,7 @@ "postcss-import-resolver": "^2.0.0", "std-env": "^3.3.3", "ufo": "^1.1.2", - "unimport": "^3.0.14", + "unimport": "^3.1.0", "untyped": "^1.3.2" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6930c245f2..b53c5430cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -198,8 +198,8 @@ importers: specifier: ^2.3.1 version: 2.3.1 unimport: - specifier: ^3.0.14 - version: 3.0.14(rollup@3.26.0) + specifier: ^3.1.0 + version: 3.1.0(rollup@3.26.0) untyped: specifier: ^1.3.2 version: 1.3.2 @@ -470,8 +470,8 @@ importers: specifier: ^1.5.2 version: 1.5.2 unimport: - specifier: ^3.0.14 - version: 3.0.14(rollup@3.26.0) + specifier: ^3.1.0 + version: 3.1.0(rollup@3.26.0) unplugin: specifier: ^1.4.0 version: 1.4.0 @@ -543,8 +543,8 @@ importers: specifier: ^1.1.2 version: 1.1.2 unimport: - specifier: ^3.0.14 - version: 3.0.14(rollup@3.26.0) + specifier: ^3.1.0 + version: 3.1.0(rollup@3.26.0) untyped: specifier: ^1.3.2 version: 1.3.2 @@ -6682,7 +6682,7 @@ packages: ufo: 1.1.2 uncrypto: 0.1.3 unenv: 1.5.2 - unimport: 3.0.14(rollup@3.26.0) + unimport: 3.1.0(rollup@3.26.0) unstorage: 1.7.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -8625,8 +8625,8 @@ packages: hookable: 5.5.3 dev: false - /unimport@3.0.14(rollup@3.26.0): - resolution: {integrity: sha512-67Rh/sGpEuVqdHWkXaZ6NOq+I7sKt86o+DUtKeGB6dh4Hk1A8AQrzyVGg2+LaVEYotStH7HwvV9YSaRjyT7Uqg==} + /unimport@3.1.0(rollup@3.26.0): + resolution: {integrity: sha512-ybK3NVWh30MdiqSyqakrrQOeiXyu5507tDA0tUf7VJHrsq4DM6S43gR7oAsZaFojM32hzX982Lqw02D3yf2aiA==} dependencies: '@rollup/pluginutils': 5.0.2(rollup@3.26.0) escape-string-regexp: 5.0.0 From 9742bffac24fbf9fa279d614ad6bf07b5d85672d Mon Sep 17 00:00:00 2001 From: Rudolf Byker Date: Thu, 20 Jul 2023 15:22:10 +0200 Subject: [PATCH 556/912] fix(nuxt): await `prerender:routes` hook (#22247) --- packages/nuxt/src/core/nitro.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index 7e293094f2..812d92c3ef 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -291,7 +291,7 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { // Connect hooks nuxt.hook('close', () => nitro.hooks.callHook('close')) nitro.hooks.hook('prerender:routes', (routes) => { - nuxt.callHook('prerender:routes', { routes }) + return nuxt.callHook('prerender:routes', { routes }) }) // Enable runtime compiler client side From 429d3656e9ffc16b6a0d3b4797c0c97bd0e4b5b5 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 21 Jul 2023 10:17:07 +0100 Subject: [PATCH 557/912] fix(nuxt): access resolved `scrollBehaviorType` (#22264) --- packages/nuxt/src/pages/runtime/router.options.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/pages/runtime/router.options.ts b/packages/nuxt/src/pages/runtime/router.options.ts index 1a8875f3c2..d5c8bdbb59 100644 --- a/packages/nuxt/src/pages/runtime/router.options.ts +++ b/packages/nuxt/src/pages/runtime/router.options.ts @@ -2,6 +2,7 @@ import type { RouteLocationNormalized, RouterScrollBehavior } from '#vue-router' import { nextTick } from 'vue' import type { RouterConfig } from 'nuxt/schema' import { useNuxtApp } from '#app/nuxt' +import { useRouter } from '#app/composables/router' // @ts-expect-error virtual file import { appPageTransition as defaultPageTransition } from '#build/nuxt.config.mjs' @@ -12,7 +13,8 @@ type ScrollPosition = Awaited> export default { scrollBehavior (to, from, savedPosition) { const nuxtApp = useNuxtApp() - const behavior = this.scrollBehaviorType ?? 'auto' + // @ts-expect-error untyped, nuxt-injected option + const behavior = useRouter().options?.scrollBehaviorType ?? 'auto' // By default when the returned position is falsy or an empty object, vue-router will retain the current scroll position // savedPosition is only available for popstate navigations (back button) From 7046930a677f4c987afaee5a0165841b0e0a517f Mon Sep 17 00:00:00 2001 From: Maik Kowol Date: Sun, 23 Jul 2023 10:24:54 +0200 Subject: [PATCH 558/912] fix(nuxt): add overloads for `asyncData` generic + default (#22258) --- .../nuxt/src/app/composables/asyncData.ts | 43 +++++++++++++++++++ packages/nuxt/src/app/composables/fetch.ts | 26 +++++++++++ test/fixtures/basic-types/types.ts | 27 ++++++++++++ 3 files changed, 96 insertions(+) diff --git a/packages/nuxt/src/app/composables/asyncData.ts b/packages/nuxt/src/app/composables/asyncData.ts index 9cfad40dd4..817c7d0432 100644 --- a/packages/nuxt/src/app/composables/asyncData.ts +++ b/packages/nuxt/src/app/composables/asyncData.ts @@ -78,6 +78,16 @@ export function useAsyncData< handler: (ctx?: NuxtApp) => Promise, options?: AsyncDataOptions ): AsyncData | DefaultT, DataE | null> +export function useAsyncData< + ResT, + DataE = Error, + DataT = ResT, + PickKeys extends KeysOf = KeysOf, + DefaultT = DataT, +> ( + handler: (ctx?: NuxtApp) => Promise, + options?: AsyncDataOptions +): AsyncData | DefaultT, DataE | null> export function useAsyncData< ResT, DataE = Error, @@ -89,6 +99,17 @@ export function useAsyncData< handler: (ctx?: NuxtApp) => Promise, options?: AsyncDataOptions ): AsyncData | DefaultT, DataE | null> +export function useAsyncData< + ResT, + DataE = Error, + DataT = ResT, + PickKeys extends KeysOf = KeysOf, + DefaultT = DataT, +> ( + key: string, + handler: (ctx?: NuxtApp) => Promise, + options?: AsyncDataOptions +): AsyncData | DefaultT, DataE | null> export function useAsyncData< ResT, DataE = Error, @@ -267,6 +288,16 @@ export function useLazyAsyncData< handler: (ctx?: NuxtApp) => Promise, options?: Omit, 'lazy'> ): AsyncData | DefaultT, DataE | null> +export function useLazyAsyncData< + ResT, + DataE = Error, + DataT = ResT, + PickKeys extends KeysOf = KeysOf, + DefaultT = DataT, +> ( + handler: (ctx?: NuxtApp) => Promise, + options?: Omit, 'lazy'> +): AsyncData | DefaultT, DataE | null> export function useLazyAsyncData< ResT, DataE = Error, @@ -278,6 +309,18 @@ export function useLazyAsyncData< handler: (ctx?: NuxtApp) => Promise, options?: Omit, 'lazy'> ): AsyncData | DefaultT, DataE | null> +export function useLazyAsyncData< + ResT, + DataE = Error, + DataT = ResT, + PickKeys extends KeysOf = KeysOf, + DefaultT = DataT, +> ( + key: string, + handler: (ctx?: NuxtApp) => Promise, + options?: Omit, 'lazy'> +): AsyncData | DefaultT, DataE | null> + export function useLazyAsyncData< ResT, DataE = Error, diff --git a/packages/nuxt/src/app/composables/fetch.ts b/packages/nuxt/src/app/composables/fetch.ts index d838346d2c..11ea5aeffb 100644 --- a/packages/nuxt/src/app/composables/fetch.ts +++ b/packages/nuxt/src/app/composables/fetch.ts @@ -41,6 +41,19 @@ export function useFetch< request: Ref | ReqT | (() => ReqT), opts?: UseFetchOptions<_ResT, DataT, PickKeys, DefaultT, ReqT, Method> ): AsyncData | DefaultT, ErrorT | null> +export function useFetch< + ResT = void, + ErrorT = FetchError, + ReqT extends NitroFetchRequest = NitroFetchRequest, + Method extends AvailableRouterMethod = ResT extends void ? 'get' extends AvailableRouterMethod ? 'get' : AvailableRouterMethod : AvailableRouterMethod, + _ResT = ResT extends void ? FetchResult : ResT, + DataT = _ResT, + PickKeys extends KeysOf = KeysOf, + DefaultT = DataT, +> ( + request: Ref | ReqT | (() => ReqT), + opts?: UseFetchOptions<_ResT, DataT, PickKeys, DefaultT, ReqT, Method> +): AsyncData | DefaultT, ErrorT | null> export function useFetch< ResT = void, ErrorT = FetchError, @@ -136,6 +149,19 @@ export function useLazyFetch< request: Ref | ReqT | (() => ReqT), opts?: Omit, 'lazy'> ): AsyncData | DefaultT, ErrorT | null> +export function useLazyFetch< + ResT = void, + ErrorT = FetchError, + ReqT extends NitroFetchRequest = NitroFetchRequest, + Method extends AvailableRouterMethod = ResT extends void ? 'get' extends AvailableRouterMethod ? 'get' : AvailableRouterMethod : AvailableRouterMethod, + _ResT = ResT extends void ? FetchResult : ResT, + DataT = _ResT, + PickKeys extends KeysOf = KeysOf, + DefaultT = DataT, +> ( + request: Ref | ReqT | (() => ReqT), + opts?: Omit, 'lazy'> +): AsyncData | DefaultT, ErrorT | null> export function useLazyFetch< ResT = void, ErrorT = FetchError, diff --git a/test/fixtures/basic-types/types.ts b/test/fixtures/basic-types/types.ts index e28585cedc..74d9868a90 100644 --- a/test/fixtures/basic-types/types.ts +++ b/test/fixtures/basic-types/types.ts @@ -309,6 +309,33 @@ describe('composables', () => { expectTypeOf(useFetch('/test', { default: () => 500 }).data).toEqualTypeOf>() }) + it('correct types when using ResT type-assertion with default function', () => { + // @ts-expect-error default type should match generic type + useFetch('/test', { default: () => 0 }) + // @ts-expect-error default type should match generic type + useLazyFetch('/test', { default: () => 0 }) + // @ts-expect-error default type should match generic type + useAsyncData(() => $fetch('/test'), { default: () => 0 }) + // @ts-expect-error default type should match generic type + useLazyAsyncData(() => $fetch('/test'), { default: () => 0 }) + + expectTypeOf(useFetch('/test', { default: () => 'test' }).data).toEqualTypeOf>() + expectTypeOf(useLazyFetch('/test', { default: () => 'test' }).data).toEqualTypeOf>() + expectTypeOf(useAsyncData(() => $fetch('/test'), { default: () => 'test' }).data).toEqualTypeOf>() + expectTypeOf(useLazyAsyncData(() => $fetch('/test'), { default: () => 'test' }).data).toEqualTypeOf>() + + // transform must match the explicit generic because of typescript limiations microsoft/TypeScript#14400 + expectTypeOf(useFetch('/test', { transform: () => 'transformed' }).data).toEqualTypeOf>() + expectTypeOf(useLazyFetch('/test', { transform: () => 'transformed' }).data).toEqualTypeOf>() + expectTypeOf(useAsyncData(() => $fetch('/test'), { transform: () => 'transformed' }).data).toEqualTypeOf>() + expectTypeOf(useLazyAsyncData(() => $fetch('/test'), { transform: () => 'transformed' }).data).toEqualTypeOf>() + + expectTypeOf(useFetch('/test', { default: () => 'test', transform: () => 'transformed' }).data).toEqualTypeOf>() + expectTypeOf(useLazyFetch('/test', { default: () => 'test', transform: () => 'transformed' }).data).toEqualTypeOf>() + expectTypeOf(useAsyncData(() => $fetch('/test'), { default: () => 'test', transform: () => 'transformed' }).data).toEqualTypeOf>() + expectTypeOf(useLazyAsyncData(() => $fetch('/test'), { default: () => 'test', transform: () => 'transformed' }).data).toEqualTypeOf>() + }) + it('infer request url string literal from server/api routes', () => { // request can accept dynamic string type const dynamicStringUrl = 'https://example.com/api' From 2e6c4519cf9320b52aef517be9f3610e777b55f7 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Mon, 24 Jul 2023 10:00:31 +0200 Subject: [PATCH 559/912] fix(nuxt): bind `createClientOnly` render function to ctx (#22289) --- packages/nuxt/src/app/components/client-only.ts | 2 +- .../basic/components/client/Binding.client.ts | 11 +++++++++++ test/fixtures/basic/pages/client-only-components.vue | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/basic/components/client/Binding.client.ts diff --git a/packages/nuxt/src/app/components/client-only.ts b/packages/nuxt/src/app/components/client-only.ts index a4fb2e47d2..f6739e118a 100644 --- a/packages/nuxt/src/app/components/client-only.ts +++ b/packages/nuxt/src/app/components/client-only.ts @@ -34,7 +34,7 @@ export function createClientOnly (component: T) { // override the component render (non script setup component) clone.render = (ctx: any, ...args: any[]) => { if (ctx.mounted$) { - const res = component.render!(ctx, ...args) + const res = component.render?.bind(ctx)(ctx, ...args) return (res.children === null || typeof res.children === 'string') ? createElementVNode(res.type, res.props, res.children, res.patchFlag, res.dynamicProps, res.shapeFlag) : h(res) diff --git a/test/fixtures/basic/components/client/Binding.client.ts b/test/fixtures/basic/components/client/Binding.client.ts new file mode 100644 index 0000000000..afad54cb48 --- /dev/null +++ b/test/fixtures/basic/components/client/Binding.client.ts @@ -0,0 +1,11 @@ +export default defineComponent({ + name: 'Foo', + methods: { + getMessage () { + return 'Hello world' + } + }, + render () { + return h('div', {}, this.getMessage()) + } +}) diff --git a/test/fixtures/basic/pages/client-only-components.vue b/test/fixtures/basic/pages/client-only-components.vue index 302b002f00..cc588f5c25 100644 --- a/test/fixtures/basic/pages/client-only-components.vue +++ b/test/fixtures/basic/pages/client-only-components.vue @@ -1,5 +1,6 @@ diff --git a/test/fixtures/basic/plugins/server-only.server.ts b/test/fixtures/basic/plugins/server-only.server.ts new file mode 100644 index 0000000000..f205d70ef1 --- /dev/null +++ b/test/fixtures/basic/plugins/server-only.server.ts @@ -0,0 +1,12 @@ +import { setHeader } from 'h3' + +export default defineNuxtPlugin({ + name: 'server-only-plugin', + setup () { + const evt = useRequestEvent() + setHeader(evt, 'custom-head', 'hello') + }, + env: { + islands: false + } +}) From 38d2bb7b9577b10dc17b081e5f5e935b8357ac0e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 31 Jul 2023 09:42:42 +0100 Subject: [PATCH 593/912] feat(kit,nuxi): add `writeTypes` utility (#22385) --- packages/kit/src/internal/cjs.ts | 16 ++- packages/kit/src/template.ts | 151 +++++++++++++++++++++++- packages/nuxi/src/commands/build.ts | 6 +- packages/nuxi/src/commands/dev.ts | 6 +- packages/nuxi/src/commands/prepare.ts | 6 +- packages/nuxi/src/commands/typecheck.ts | 7 +- packages/nuxi/src/utils/cjs.ts | 12 +- packages/nuxi/src/utils/prepare.ts | 141 ---------------------- 8 files changed, 176 insertions(+), 169 deletions(-) delete mode 100644 packages/nuxi/src/utils/prepare.ts diff --git a/packages/kit/src/internal/cjs.ts b/packages/kit/src/internal/cjs.ts index fe57f95308..d15f4cf574 100644 --- a/packages/kit/src/internal/cjs.ts +++ b/packages/kit/src/internal/cjs.ts @@ -60,15 +60,19 @@ function getRequireCacheItem (id: string) { } } +export function getModulePaths (paths?: string[] | string) { + return ([] as Array).concat( + global.__NUXT_PREPATHS__, + paths || [], + process.cwd(), + global.__NUXT_PATHS__ + ).filter(Boolean) as string[] +} + /** @deprecated Do not use CJS utils */ export function resolveModule (id: string, opts: ResolveModuleOptions = {}) { return normalize(_require.resolve(id, { - paths: ([] as Array).concat( - global.__NUXT_PREPATHS__, - opts.paths || [], - process.cwd(), - global.__NUXT_PATHS__ - ).filter(Boolean) as string[] + paths: getModulePaths(opts.paths) })) } diff --git a/packages/kit/src/template.ts b/packages/kit/src/template.ts index bce72cfd79..9de92087c9 100644 --- a/packages/kit/src/template.ts +++ b/packages/kit/src/template.ts @@ -1,8 +1,14 @@ -import { existsSync } from 'node:fs' -import { basename, parse, resolve } from 'pathe' +import { existsSync, promises as fsp } from 'node:fs' +import { basename, isAbsolute, join, parse, relative, resolve } from 'pathe' import hash from 'hash-sum' -import type { NuxtTemplate, ResolvedNuxtTemplate } from '@nuxt/schema' +import type { Nuxt, NuxtTemplate, ResolvedNuxtTemplate, TSReference } from '@nuxt/schema' +import { withTrailingSlash } from 'ufo' +import { defu } from 'defu' +import type { TSConfig } from 'pkg-types' +import { readPackageJSON } from 'pkg-types' + import { tryUseNuxt, useNuxt } from './context' +import { getModulePaths } from './internal/cjs' /** * Renders given template using lodash template during build into the project buildDir @@ -101,3 +107,142 @@ export function normalizeTemplate (template: NuxtTemplate | string): Resolv export async function updateTemplates (options?: { filter?: (template: ResolvedNuxtTemplate) => boolean }) { return await tryUseNuxt()?.hooks.callHook('builder:generateApp', options) } +export async function writeTypes (nuxt: Nuxt) { + const modulePaths = getModulePaths(nuxt.options.modulesDir) + + const rootDirWithSlash = withTrailingSlash(nuxt.options.rootDir) + + const tsConfig: TSConfig = defu(nuxt.options.typescript?.tsConfig, { + compilerOptions: { + forceConsistentCasingInFileNames: true, + jsx: 'preserve', + target: 'ESNext', + module: 'ESNext', + moduleResolution: nuxt.options.experimental?.typescriptBundlerResolution ? 'Bundler' : 'Node', + skipLibCheck: true, + strict: nuxt.options.typescript?.strict ?? true, + allowJs: true, + // TODO: remove by default in 3.7 + baseUrl: nuxt.options.srcDir, + noEmit: true, + resolveJsonModule: true, + allowSyntheticDefaultImports: true, + types: ['node'], + paths: {} + }, + include: [ + './nuxt.d.ts', + join(relative(nuxt.options.buildDir, nuxt.options.rootDir), '**/*'), + ...nuxt.options.srcDir !== nuxt.options.rootDir ? [join(relative(nuxt.options.buildDir, nuxt.options.srcDir), '**/*')] : [], + ...nuxt.options._layers.map(layer => layer.config.srcDir ?? layer.cwd) + .filter(srcOrCwd => !srcOrCwd.startsWith(rootDirWithSlash) || srcOrCwd.includes('node_modules')) + .map(srcOrCwd => join(relative(nuxt.options.buildDir, srcOrCwd), '**/*')), + ...nuxt.options.typescript.includeWorkspace && nuxt.options.workspaceDir !== nuxt.options.rootDir ? [join(relative(nuxt.options.buildDir, nuxt.options.workspaceDir), '**/*')] : [] + ], + exclude: [ + ...nuxt.options.modulesDir.map(m => relative(nuxt.options.buildDir, m)), + // nitro generate output: https://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/core/nitro.ts#L186 + relative(nuxt.options.buildDir, resolve(nuxt.options.rootDir, 'dist')) + ] + } satisfies TSConfig) + + const aliases: Record = { + ...nuxt.options.alias, + '#build': nuxt.options.buildDir + } + + // Exclude bridge alias types to support Volar + const excludedAlias = [/^@vue\/.*$/] + + const basePath = tsConfig.compilerOptions!.baseUrl ? resolve(nuxt.options.buildDir, tsConfig.compilerOptions!.baseUrl) : nuxt.options.buildDir + + tsConfig.compilerOptions = tsConfig.compilerOptions || {} + tsConfig.include = tsConfig.include || [] + + for (const alias in aliases) { + if (excludedAlias.some(re => re.test(alias))) { + continue + } + const absolutePath = resolve(basePath, aliases[alias]) + const relativePath = relative(nuxt.options.buildDir, absolutePath) + + const stats = await fsp.stat(absolutePath).catch(() => null /* file does not exist */) + if (stats?.isDirectory()) { + tsConfig.compilerOptions.paths[alias] = [absolutePath] + tsConfig.compilerOptions.paths[`${alias}/*`] = [`${absolutePath}/*`] + + if (!absolutePath.startsWith(rootDirWithSlash)) { + tsConfig.include.push(relativePath) + } + } else { + const path = stats?.isFile() + ? absolutePath.replace(/(?<=\w)\.\w+$/g, '') /* remove extension */ + : absolutePath + + tsConfig.compilerOptions.paths[alias] = [path] + + if (!absolutePath.startsWith(rootDirWithSlash)) { + tsConfig.include.push(path) + } + } + } + + const references: TSReference[] = await Promise.all([ + ...nuxt.options.modules, + ...nuxt.options._modules + ] + .filter(f => typeof f === 'string') + .map(async id => ({ types: (await readPackageJSON(id, { url: modulePaths }).catch(() => null))?.name || id }))) + + if (nuxt.options.experimental?.reactivityTransform) { + references.push({ types: 'vue/macros-global' }) + } + + const declarations: string[] = [] + + tsConfig.include = [...new Set(tsConfig.include)] + tsConfig.exclude = [...new Set(tsConfig.exclude)] + + await nuxt.callHook('prepare:types', { references, declarations, tsConfig }) + + const declaration = [ + ...references.map((ref) => { + if ('path' in ref && isAbsolute(ref.path)) { + ref.path = relative(nuxt.options.buildDir, ref.path) + } + return `/// ` + }), + ...declarations, + '', + 'export {}', + '' + ].join('\n') + + async function writeFile () { + const GeneratedBy = '// Generated by nuxi' + + const tsConfigPath = resolve(nuxt.options.buildDir, 'tsconfig.json') + await fsp.mkdir(nuxt.options.buildDir, { recursive: true }) + await fsp.writeFile(tsConfigPath, GeneratedBy + '\n' + JSON.stringify(tsConfig, null, 2)) + + const declarationPath = resolve(nuxt.options.buildDir, 'nuxt.d.ts') + await fsp.writeFile(declarationPath, GeneratedBy + '\n' + declaration) + } + + // This is needed for Nuxt 2 which clears the build directory again before building + // https://github.com/nuxt/nuxt/blob/2.x/packages/builder/src/builder.js#L144 + // @ts-expect-error TODO: Nuxt 2 hook + const unsub = nuxt.hook('builder:prepared', writeFile) + + await writeFile() + + unsub() +} + +function renderAttrs (obj: Record) { + return Object.entries(obj).map(e => renderAttr(e[0], e[1])).join(' ') +} + +function renderAttr (key: string, value: string) { + return value ? `${key}="${value}"` : '' +} diff --git a/packages/nuxi/src/commands/build.ts b/packages/nuxi/src/commands/build.ts index f4a9793b19..e87a22f546 100644 --- a/packages/nuxi/src/commands/build.ts +++ b/packages/nuxi/src/commands/build.ts @@ -1,6 +1,8 @@ import { relative, resolve } from 'pathe' import { consola } from 'consola' -import { writeTypes } from '../utils/prepare' + +// we are deliberately inlining this code as a backup in case user has `@nuxt/schema<3.7` +import { writeTypes as writeTypesLegacy } from '../../../kit/src/template' import { loadKit } from '../utils/kit' import { clearBuildDir } from '../utils/fs' import { overrideEnv } from '../utils/env' @@ -19,7 +21,7 @@ export default defineNuxtCommand({ const rootDir = resolve(args._[0] || '.') showVersions(rootDir) - const { loadNuxt, buildNuxt, useNitro } = await loadKit(rootDir) + const { loadNuxt, buildNuxt, useNitro, writeTypes = writeTypesLegacy } = await loadKit(rootDir) const nuxt = await loadNuxt({ rootDir, diff --git a/packages/nuxi/src/commands/dev.ts b/packages/nuxi/src/commands/dev.ts index 9da83dc685..d979872066 100644 --- a/packages/nuxi/src/commands/dev.ts +++ b/packages/nuxi/src/commands/dev.ts @@ -7,8 +7,10 @@ import type { Nuxt } from '@nuxt/schema' import { consola } from 'consola' import { withTrailingSlash } from 'ufo' import { setupDotenv } from 'c12' + +// we are deliberately inlining this code as a backup in case user has `@nuxt/schema<3.7` +import { writeTypes as writeTypesLegacy } from '../../../kit/src/template' import { showBanner, showVersions } from '../utils/banner' -import { writeTypes } from '../utils/prepare' import { loadKit } from '../utils/kit' import { importModule } from '../utils/esm' import { overrideEnv } from '../utils/env' @@ -30,7 +32,7 @@ export default defineNuxtCommand({ await setupDotenv({ cwd: rootDir, fileName: args.dotenv }) - const { loadNuxt, loadNuxtConfig, buildNuxt } = await loadKit(rootDir) + const { loadNuxt, loadNuxtConfig, buildNuxt, writeTypes = writeTypesLegacy } = await loadKit(rootDir) const config = await loadNuxtConfig({ cwd: rootDir, diff --git a/packages/nuxi/src/commands/prepare.ts b/packages/nuxi/src/commands/prepare.ts index 026df38993..dfec71e16e 100644 --- a/packages/nuxi/src/commands/prepare.ts +++ b/packages/nuxi/src/commands/prepare.ts @@ -1,8 +1,10 @@ import { relative, resolve } from 'pathe' import { consola } from 'consola' + +// we are deliberately inlining this code as a backup in case user has `@nuxt/schema<3.7` +import { writeTypes as writeTypesLegacy } from '../../../kit/src/template' import { clearBuildDir } from '../utils/fs' import { loadKit } from '../utils/kit' -import { writeTypes } from '../utils/prepare' import { defineNuxtCommand } from './index' export default defineNuxtCommand({ @@ -15,7 +17,7 @@ export default defineNuxtCommand({ process.env.NODE_ENV = process.env.NODE_ENV || 'production' const rootDir = resolve(args._[0] || '.') - const { loadNuxt, buildNuxt } = await loadKit(rootDir) + const { loadNuxt, buildNuxt, writeTypes = writeTypesLegacy } = await loadKit(rootDir) const nuxt = await loadNuxt({ rootDir, overrides: { diff --git a/packages/nuxi/src/commands/typecheck.ts b/packages/nuxi/src/commands/typecheck.ts index aa21e7d1e1..ee5a28ab56 100644 --- a/packages/nuxi/src/commands/typecheck.ts +++ b/packages/nuxi/src/commands/typecheck.ts @@ -1,9 +1,10 @@ import { execa } from 'execa' import { resolve } from 'pathe' -import { tryResolveModule } from '../utils/esm' +// we are deliberately inlining this code as a backup in case user has `@nuxt/schema<3.7` +import { writeTypes as writeTypesLegacy } from '../../../kit/src/template' +import { tryResolveModule } from '../utils/esm' import { loadKit } from '../utils/kit' -import { writeTypes } from '../utils/prepare' import { defineNuxtCommand } from './index' export default defineNuxtCommand({ @@ -16,7 +17,7 @@ export default defineNuxtCommand({ process.env.NODE_ENV = process.env.NODE_ENV || 'production' const rootDir = resolve(args._[0] || '.') - const { loadNuxt, buildNuxt } = await loadKit(rootDir) + const { loadNuxt, buildNuxt, writeTypes = writeTypesLegacy } = await loadKit(rootDir) const nuxt = await loadNuxt({ rootDir, overrides: { diff --git a/packages/nuxi/src/utils/cjs.ts b/packages/nuxi/src/utils/cjs.ts index a8fefc11df..1f9c1125a0 100644 --- a/packages/nuxi/src/utils/cjs.ts +++ b/packages/nuxi/src/utils/cjs.ts @@ -1,7 +1,7 @@ import { createRequire } from 'node:module' -import { dirname, normalize } from 'pathe' +import { normalize } from 'pathe' -export function getModulePaths (paths?: string | string[]): string[] { +function getModulePaths (paths?: string | string[]): string[] { return ([] as Array) .concat( global.__NUXT_PREPATHS__, @@ -25,11 +25,3 @@ function requireModule (id: string, paths?: string | string[]) { export function tryRequireModule (id: string, paths?: string | string[]) { try { return requireModule(id, paths) } catch { return null } } - -export function getNearestPackage (id: string, paths?: string | string[]) { - while (dirname(id) !== id) { - try { return requireModule(id + '/package.json', paths) } catch {} - id = dirname(id) - } - return null -} diff --git a/packages/nuxi/src/utils/prepare.ts b/packages/nuxi/src/utils/prepare.ts deleted file mode 100644 index bdcb64fda6..0000000000 --- a/packages/nuxi/src/utils/prepare.ts +++ /dev/null @@ -1,141 +0,0 @@ -import { promises as fsp } from 'node:fs' -import { isAbsolute, join, relative, resolve } from 'pathe' -import type { Nuxt, TSReference } from '@nuxt/schema' -import { defu } from 'defu' -import type { TSConfig } from 'pkg-types' -import { withTrailingSlash } from 'ufo' -import { getModulePaths, getNearestPackage } from './cjs' - -export const writeTypes = async (nuxt: Nuxt) => { - const modulePaths = getModulePaths(nuxt.options.modulesDir) - - const rootDirWithSlash = withTrailingSlash(nuxt.options.rootDir) - - const tsConfig: TSConfig = defu(nuxt.options.typescript?.tsConfig, { - compilerOptions: { - forceConsistentCasingInFileNames: true, - jsx: 'preserve', - target: 'ESNext', - module: 'ESNext', - moduleResolution: nuxt.options.experimental?.typescriptBundlerResolution ? 'Bundler' : 'Node', - skipLibCheck: true, - strict: nuxt.options.typescript?.strict ?? true, - allowJs: true, - // TODO: remove by default in 3.7 - baseUrl: nuxt.options.srcDir, - noEmit: true, - resolveJsonModule: true, - allowSyntheticDefaultImports: true, - types: ['node'], - paths: {} - }, - include: [ - './nuxt.d.ts', - join(relative(nuxt.options.buildDir, nuxt.options.rootDir), '**/*'), - ...nuxt.options.srcDir !== nuxt.options.rootDir ? [join(relative(nuxt.options.buildDir, nuxt.options.srcDir), '**/*')] : [], - ...nuxt.options._layers.map(layer => layer.config.srcDir ?? layer.cwd) - .filter(srcOrCwd => !srcOrCwd.startsWith(rootDirWithSlash) || srcOrCwd.includes('node_modules')) - .map(srcOrCwd => join(relative(nuxt.options.buildDir, srcOrCwd), '**/*')), - ...nuxt.options.typescript.includeWorkspace && nuxt.options.workspaceDir !== nuxt.options.rootDir ? [join(relative(nuxt.options.buildDir, nuxt.options.workspaceDir), '**/*')] : [] - ], - exclude: [ - // nitro generate output: https://github.com/nuxt/nuxt/blob/main/packages/nuxt/src/core/nitro.ts#L186 - relative(nuxt.options.buildDir, resolve(nuxt.options.rootDir, 'dist')) - ] - } satisfies TSConfig) - - const aliases: Record = { - ...nuxt.options.alias, - '#build': nuxt.options.buildDir - } - - // Exclude bridge alias types to support Volar - const excludedAlias = [/^@vue\/.*$/] - - const basePath = tsConfig.compilerOptions!.baseUrl ? resolve(nuxt.options.buildDir, tsConfig.compilerOptions!.baseUrl) : nuxt.options.buildDir - - tsConfig.compilerOptions = tsConfig.compilerOptions || {} - tsConfig.include = tsConfig.include || [] - - for (const alias in aliases) { - if (excludedAlias.some(re => re.test(alias))) { - continue - } - const absolutePath = resolve(basePath, aliases[alias]) - - const stats = await fsp.stat(absolutePath).catch(() => null /* file does not exist */) - if (stats?.isDirectory()) { - tsConfig.compilerOptions.paths[alias] = [absolutePath] - tsConfig.compilerOptions.paths[`${alias}/*`] = [`${absolutePath}/*`] - - if (!absolutePath.startsWith(rootDirWithSlash)) { - tsConfig.include.push(absolutePath) - tsConfig.include.push(`${absolutePath}/*`) - } - } else { - const path = stats?.isFile() - ? absolutePath.replace(/(?<=\w)\.\w+$/g, '') /* remove extension */ - : absolutePath - - tsConfig.compilerOptions.paths[alias] = [path] - - if (!absolutePath.startsWith(rootDirWithSlash)) { - tsConfig.include.push(path) - } - } - } - - const references: TSReference[] = [ - ...nuxt.options.modules, - ...nuxt.options._modules - ] - .filter(f => typeof f === 'string') - .map(id => ({ types: getNearestPackage(id, modulePaths)?.name || id })) - - if (nuxt.options.experimental?.reactivityTransform) { - references.push({ types: 'vue/macros-global' }) - } - - const declarations: string[] = [] - - await nuxt.callHook('prepare:types', { references, declarations, tsConfig }) - - const declaration = [ - ...references.map((ref) => { - if ('path' in ref && isAbsolute(ref.path)) { - ref.path = relative(nuxt.options.buildDir, ref.path) - } - return `/// ` - }), - ...declarations, - '', - 'export {}', - '' - ].join('\n') - - async function writeFile () { - const GeneratedBy = '// Generated by nuxi' - - const tsConfigPath = resolve(nuxt.options.buildDir, 'tsconfig.json') - await fsp.mkdir(nuxt.options.buildDir, { recursive: true }) - await fsp.writeFile(tsConfigPath, GeneratedBy + '\n' + JSON.stringify(tsConfig, null, 2)) - - const declarationPath = resolve(nuxt.options.buildDir, 'nuxt.d.ts') - await fsp.writeFile(declarationPath, GeneratedBy + '\n' + declaration) - } - - // This is needed for Nuxt 2 which clears the build directory again before building - // https://github.com/nuxt/nuxt/blob/2.x/packages/builder/src/builder.js#L144 - // @ts-expect-error TODO: Nuxt 2 hook - nuxt.hook('builder:prepared', writeFile) - - await writeFile() -} - -function renderAttrs (obj: Record) { - return Object.entries(obj).map(e => renderAttr(e[0], e[1])).join(' ') -} - -function renderAttr (key: string, value: string) { - return value ? `${key}="${value}"` : '' -} From 0991e885fd7cbfeee53df9e0078fd7178b759bef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damian=20G=C5=82owala?= <48835293+DamianGlowala@users.noreply.github.com> Date: Mon, 31 Jul 2023 10:50:55 +0200 Subject: [PATCH 594/912] feat(nuxt): autocomplete layouts in `setPageLayout`/`` (#22362) --- packages/nuxt/src/app/components/layout.ts | 152 +---------------- .../nuxt/src/app/components/nuxt-layout.ts | 153 ++++++++++++++++++ packages/nuxt/src/app/composables/router.ts | 2 +- packages/nuxt/src/core/nuxt.ts | 2 +- packages/nuxt/src/pages/module.ts | 4 +- 5 files changed, 159 insertions(+), 154 deletions(-) create mode 100644 packages/nuxt/src/app/components/nuxt-layout.ts diff --git a/packages/nuxt/src/app/components/layout.ts b/packages/nuxt/src/app/components/layout.ts index bb1b149265..b88def1a94 100644 --- a/packages/nuxt/src/app/components/layout.ts +++ b/packages/nuxt/src/app/components/layout.ts @@ -1,150 +1,2 @@ -import type { Ref, VNode } from 'vue' -import { Suspense, Transition, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, ref, unref } from 'vue' -import type { RouteLocationNormalizedLoaded } from 'vue-router' -import { _wrapIf } from './utils' -import { LayoutMetaSymbol, PageRouteSymbol } from './injections' - -import { useRoute } from '#app/composables/router' -// @ts-expect-error virtual file -import { useRoute as useVueRouterRoute } from '#build/pages' -// @ts-expect-error virtual file -import layouts from '#build/layouts' -// @ts-expect-error virtual file -import { appLayoutTransition as defaultLayoutTransition } from '#build/nuxt.config.mjs' -import { useNuxtApp } from '#app' - -// TODO: revert back to defineAsyncComponent when https://github.com/vuejs/core/issues/6638 is resolved -const LayoutLoader = defineComponent({ - name: 'LayoutLoader', - inheritAttrs: false, - props: { - name: String, - layoutProps: Object - }, - async setup (props, context) { - const LayoutComponent = await layouts[props.name]().then((r: any) => r.default || r) - - return () => h(LayoutComponent, props.layoutProps, context.slots) - } -}) - -export default defineComponent({ - name: 'NuxtLayout', - inheritAttrs: false, - props: { - name: { - type: [String, Boolean, Object] as unknown as () => string | false | Ref, - default: null - } - }, - setup (props, context) { - const nuxtApp = useNuxtApp() - // Need to ensure (if we are not a child of ``) that we use synchronous route (not deferred) - const injectedRoute = inject(PageRouteSymbol) - const route = injectedRoute === useRoute() ? useVueRouterRoute() : injectedRoute - - const layout = computed(() => unref(props.name) ?? route.meta.layout as string ?? 'default') - - const layoutRef = ref() - context.expose({ layoutRef }) - - const done = nuxtApp.deferHydration() - - return () => { - const hasLayout = layout.value && layout.value in layouts - if (process.dev && layout.value && !hasLayout && layout.value !== 'default') { - console.warn(`Invalid layout \`${layout.value}\` selected.`) - } - - const transitionProps = route.meta.layoutTransition ?? defaultLayoutTransition - - // We avoid rendering layout transition if there is no layout to render - return _wrapIf(Transition, hasLayout && transitionProps, { - default: () => h(Suspense, { suspensible: true, onResolve: () => { nextTick(done) } }, { - default: () => h( - // @ts-expect-error seems to be an issue in vue types - LayoutProvider, - { - layoutProps: mergeProps(context.attrs, { ref: layoutRef }), - key: layout.value, - name: layout.value, - shouldProvide: !props.name, - hasTransition: !!transitionProps - }, context.slots) - }) - }).default() - } - } -}) - -const LayoutProvider = defineComponent({ - name: 'NuxtLayoutProvider', - inheritAttrs: false, - props: { - name: { - type: [String, Boolean] - }, - layoutProps: { - type: Object - }, - hasTransition: { - type: Boolean - }, - shouldProvide: { - type: Boolean - } - }, - setup (props, context) { - // Prevent reactivity when the page will be rerendered in a different suspense fork - // eslint-disable-next-line vue/no-setup-props-destructure - const name = props.name - if (props.shouldProvide) { - provide(LayoutMetaSymbol, { - isCurrent: (route: RouteLocationNormalizedLoaded) => name === (route.meta.layout ?? 'default') - }) - } - - let vnode: VNode | undefined - if (process.dev && process.client) { - onMounted(() => { - nextTick(() => { - if (['#comment', '#text'].includes(vnode?.el?.nodeName)) { - if (name) { - console.warn(`[nuxt] \`${name}\` layout does not have a single root node and will cause errors when navigating between routes.`) - } else { - console.warn('[nuxt] `` needs to be passed a single root node in its default slot.') - } - } - }) - }) - } - - return () => { - if (!name || (typeof name === 'string' && !(name in layouts))) { - if (process.dev && process.client && props.hasTransition) { - vnode = context.slots.default?.() as VNode | undefined - return vnode - } - return context.slots.default?.() - } - - if (process.dev && process.client && props.hasTransition) { - vnode = h( - // @ts-expect-error seems to be an issue in vue types - LayoutLoader, - { key: name, layoutProps: props.layoutProps, name }, - context.slots - ) - - return vnode - } - - return h( - // @ts-expect-error seems to be an issue in vue types - LayoutLoader, - { key: name, layoutProps: props.layoutProps, name }, - context.slots - ) - } - } -}) +// TODO: remove in 4.x +export { default } from './nuxt-layout' diff --git a/packages/nuxt/src/app/components/nuxt-layout.ts b/packages/nuxt/src/app/components/nuxt-layout.ts new file mode 100644 index 0000000000..b18cc84a38 --- /dev/null +++ b/packages/nuxt/src/app/components/nuxt-layout.ts @@ -0,0 +1,153 @@ +import type { DefineComponent, MaybeRef, VNode } from 'vue' +import { Suspense, Transition, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, ref, unref } from 'vue' +import type { RouteLocationNormalizedLoaded } from 'vue-router' +import { _wrapIf } from './utils' +import { LayoutMetaSymbol, PageRouteSymbol } from './injections' +import type { PageMeta } from '#app' + +import { useRoute } from '#app/composables/router' +import { useNuxtApp } from '#app/nuxt' +// @ts-expect-error virtual file +import { useRoute as useVueRouterRoute } from '#build/pages' +// @ts-expect-error virtual file +import layouts from '#build/layouts' +// @ts-expect-error virtual file +import { appLayoutTransition as defaultLayoutTransition } from '#build/nuxt.config.mjs' + +// TODO: revert back to defineAsyncComponent when https://github.com/vuejs/core/issues/6638 is resolved +const LayoutLoader = defineComponent({ + name: 'LayoutLoader', + inheritAttrs: false, + props: { + name: String, + layoutProps: Object + }, + async setup (props, context) { + const LayoutComponent = await layouts[props.name]().then((r: any) => r.default || r) + + return () => h(LayoutComponent, props.layoutProps, context.slots) + } +}) + +export default defineComponent({ + name: 'NuxtLayout', + inheritAttrs: false, + props: { + name: { + type: [String, Boolean, Object] as unknown as () => unknown extends PageMeta['layout'] ? MaybeRef : PageMeta['layout'], + default: null + } + }, + setup (props, context) { + const nuxtApp = useNuxtApp() + // Need to ensure (if we are not a child of ``) that we use synchronous route (not deferred) + const injectedRoute = inject(PageRouteSymbol) + const route = injectedRoute === useRoute() ? useVueRouterRoute() : injectedRoute + + const layout = computed(() => unref(props.name) ?? route.meta.layout as string ?? 'default') + + const layoutRef = ref() + context.expose({ layoutRef }) + + const done = nuxtApp.deferHydration() + + return () => { + const hasLayout = layout.value && layout.value in layouts + if (process.dev && layout.value && !hasLayout && layout.value !== 'default') { + console.warn(`Invalid layout \`${layout.value}\` selected.`) + } + + const transitionProps = route.meta.layoutTransition ?? defaultLayoutTransition + + // We avoid rendering layout transition if there is no layout to render + return _wrapIf(Transition, hasLayout && transitionProps, { + default: () => h(Suspense, { suspensible: true, onResolve: () => { nextTick(done) } }, { + default: () => h( + // @ts-expect-error seems to be an issue in vue types + LayoutProvider, + { + layoutProps: mergeProps(context.attrs, { ref: layoutRef }), + key: layout.value, + name: layout.value, + shouldProvide: !props.name, + hasTransition: !!transitionProps + }, context.slots) + }) + }).default() + } + } +}) as unknown as DefineComponent<{ + name: unknown extends PageMeta['layout'] ? MaybeRef : PageMeta['layout'] +}> + +const LayoutProvider = defineComponent({ + name: 'NuxtLayoutProvider', + inheritAttrs: false, + props: { + name: { + type: [String, Boolean] + }, + layoutProps: { + type: Object + }, + hasTransition: { + type: Boolean + }, + shouldProvide: { + type: Boolean + } + }, + setup (props, context) { + // Prevent reactivity when the page will be rerendered in a different suspense fork + // eslint-disable-next-line vue/no-setup-props-destructure + const name = props.name + if (props.shouldProvide) { + provide(LayoutMetaSymbol, { + isCurrent: (route: RouteLocationNormalizedLoaded) => name === (route.meta.layout ?? 'default') + }) + } + + let vnode: VNode | undefined + if (process.dev && process.client) { + onMounted(() => { + nextTick(() => { + if (['#comment', '#text'].includes(vnode?.el?.nodeName)) { + if (name) { + console.warn(`[nuxt] \`${name}\` layout does not have a single root node and will cause errors when navigating between routes.`) + } else { + console.warn('[nuxt] `` needs to be passed a single root node in its default slot.') + } + } + }) + }) + } + + return () => { + if (!name || (typeof name === 'string' && !(name in layouts))) { + if (process.dev && process.client && props.hasTransition) { + vnode = context.slots.default?.() as VNode | undefined + return vnode + } + return context.slots.default?.() + } + + if (process.dev && process.client && props.hasTransition) { + vnode = h( + // @ts-expect-error seems to be an issue in vue types + LayoutLoader, + { key: name, layoutProps: props.layoutProps, name }, + context.slots + ) + + return vnode + } + + return h( + // @ts-expect-error seems to be an issue in vue types + LayoutLoader, + { key: name, layoutProps: props.layoutProps, name }, + context.slots + ) + } + } +}) diff --git a/packages/nuxt/src/app/composables/router.ts b/packages/nuxt/src/app/composables/router.ts index 905ffe63a8..126381ce49 100644 --- a/packages/nuxt/src/app/composables/router.ts +++ b/packages/nuxt/src/app/composables/router.ts @@ -221,7 +221,7 @@ export const abortNavigation = (err?: string | Partial) => { throw err } -export const setPageLayout = (layout: string) => { +export const setPageLayout = (layout: unknown extends PageMeta['layout'] ? string : PageMeta['layout']) => { if (process.server) { if (process.dev && getCurrentInstance() && useState('_layout').value !== layout) { console.warn('[warn] [nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.') diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index 2588a1949c..110b60655b 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -200,7 +200,7 @@ async function initNuxt (nuxt: Nuxt) { addComponent({ name: 'NuxtLayout', priority: 10, // built-in that we do not expect the user to override - filePath: resolve(nuxt.options.appDir, 'components/layout') + filePath: resolve(nuxt.options.appDir, 'components/nuxt-layout') }) // Add diff --git a/packages/nuxt/src/pages/module.ts b/packages/nuxt/src/pages/module.ts index 6cd94aded2..dd56da61fb 100644 --- a/packages/nuxt/src/pages/module.ts +++ b/packages/nuxt/src/pages/module.ts @@ -353,11 +353,11 @@ export default defineNuxtModule({ getContents: ({ app }: { app: NuxtApp }) => { const composablesFile = resolve(runtimeDir, 'composables') return [ - 'import { ComputedRef, Ref } from \'vue\'', + 'import { ComputedRef, MaybeRef } from \'vue\'', `export type LayoutKey = ${Object.keys(app.layouts).map(name => genString(name)).join(' | ') || 'string'}`, `declare module ${genString(composablesFile)} {`, ' interface PageMeta {', - ' layout?: false | LayoutKey | Ref | ComputedRef', + ' layout?: MaybeRef | ComputedRef', ' }', '}' ].join('\n') From 5926bbeff84362015acb134b886d64d646c270ef Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 31 Jul 2023 09:51:09 +0100 Subject: [PATCH 595/912] feat(nuxt): allow 'lazy' (non-blocking) server components (#21918) --- .../nuxt/src/app/components/nuxt-island.ts | 14 ++++--- .../components/runtime/server-component.ts | 4 +- test/basic.test.ts | 37 +++++++++++++++++++ .../pages/server-components/lazy/end.vue | 26 +++++++++++++ .../pages/server-components/lazy/start.vue | 10 +++++ 5 files changed, 84 insertions(+), 7 deletions(-) create mode 100644 test/fixtures/basic/pages/server-components/lazy/end.vue create mode 100644 test/fixtures/basic/pages/server-components/lazy/start.vue diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index 3f8bfd3876..e2990cfed6 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -29,6 +29,7 @@ export default defineComponent({ type: String, required: true }, + lazy: Boolean, props: { type: Object, default: () => undefined @@ -66,7 +67,7 @@ export default defineComponent({ } } - const ssrHTML = ref('
') + const ssrHTML = ref('') if (process.client) { const renderedHTML = getFragmentHTML(instance.vnode?.el ?? null).join('') if (renderedHTML && nuxtApp.isHydrating) { @@ -79,7 +80,7 @@ export default defineComponent({ } }) } - ssrHTML.value = renderedHTML ?? '
' + ssrHTML.value = renderedHTML } const slotProps = computed(() => getSlotProps(ssrHTML.value)) const uid = ref(ssrHTML.value.match(SSR_UID_RE)?.[1] ?? randomUUID()) @@ -165,18 +166,19 @@ export default defineComponent({ watch(props, debounce(() => fetchComponent(), 100)) } - // TODO: allow lazy loading server islands - if (process.server || !nuxtApp.isHydrating) { + if (process.client && !nuxtApp.isHydrating && props.lazy) { + fetchComponent() + } else if (process.server || !nuxtApp.isHydrating) { await fetchComponent() } return () => { - if (error.value && slots.fallback) { + if ((!html.value || error.value) && slots.fallback) { return [slots.fallback({ error: error.value })] } const nodes = [createVNode(Fragment, { key: key.value - }, [h(createStaticVNode(html.value, 1))])] + }, [h(createStaticVNode(html.value || '
', 1))])] if (uid.value && (mounted.value || nuxtApp.isHydrating || process.server)) { for (const slot in slots) { if (availableSlots.value.includes(slot)) { diff --git a/packages/nuxt/src/components/runtime/server-component.ts b/packages/nuxt/src/components/runtime/server-component.ts index 4dcfa8cce5..777204209e 100644 --- a/packages/nuxt/src/components/runtime/server-component.ts +++ b/packages/nuxt/src/components/runtime/server-component.ts @@ -5,9 +5,11 @@ export const createServerComponent = (name: string) => { return defineComponent({ name, inheritAttrs: false, - setup (_props, { attrs, slots }) { + props: { lazy: Boolean }, + setup (props, { attrs, slots }) { return () => h(NuxtIsland, { name, + lazy: props.lazy, props: attrs }, slots) } diff --git a/test/basic.test.ts b/test/basic.test.ts index 06968d32ab..879bc8c886 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1419,6 +1419,43 @@ describe('server components/islands', () => { await page.close() }) + it('lazy server components', async () => { + const page = await createPage('/server-components/lazy/start') + await page.waitForLoadState('networkidle') + await page.getByText('Go to page with lazy server component').click() + + const text = await page.innerText('pre') + expect(text).toMatchInlineSnapshot('" End page
Loading server component
"') + expect(text).not.toContain('async component that was very long') + expect(text).toContain('Loading server component') + + // Wait for all pending micro ticks to be cleared + // await page.waitForLoadState('networkidle') + // await page.evaluate(() => new Promise(resolve => setTimeout(resolve, 10))) + await page.waitForFunction(() => (document.querySelector('#no-fallback') as HTMLElement)?.innerText?.includes('async component')) + await page.waitForFunction(() => (document.querySelector('#fallback') as HTMLElement)?.innerText?.includes('async component')) + + await page.close() + }) + + it('non-lazy server components', async () => { + const page = await createPage('/server-components/lazy/start') + await page.waitForLoadState('networkidle') + await page.getByText('Go to page without lazy server component').click() + + const text = await page.innerText('pre') + expect(text).toMatchInlineSnapshot('" End page
This is a .server (20ms) async component that was very long ...
42
This is a .server (20ms) async component that was very long ...
42
"') + expect(text).toContain('async component that was very long') + + // Wait for all pending micro ticks to be cleared + // await page.waitForLoadState('networkidle') + // await page.evaluate(() => new Promise(resolve => setTimeout(resolve, 10))) + await page.waitForFunction(() => (document.querySelector('#no-fallback') as HTMLElement)?.innerText?.includes('async component')) + await page.waitForFunction(() => (document.querySelector('#fallback') as HTMLElement)?.innerText?.includes('async component')) + + await page.close() + }) + it.skipIf(isDev)('should allow server-only components to set prerender hints', async () => { // @ts-expect-error ssssh! untyped secret property const publicDir = useTestContext().nuxt._nitro.options.output.publicDir diff --git a/test/fixtures/basic/pages/server-components/lazy/end.vue b/test/fixtures/basic/pages/server-components/lazy/end.vue new file mode 100644 index 0000000000..7009c1e7ac --- /dev/null +++ b/test/fixtures/basic/pages/server-components/lazy/end.vue @@ -0,0 +1,26 @@ + + + diff --git a/test/fixtures/basic/pages/server-components/lazy/start.vue b/test/fixtures/basic/pages/server-components/lazy/start.vue new file mode 100644 index 0000000000..a14cf6eada --- /dev/null +++ b/test/fixtures/basic/pages/server-components/lazy/start.vue @@ -0,0 +1,10 @@ + From 5edf00f069919d8ff6707dec03277a61983d550c Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 31 Jul 2023 11:22:24 +0100 Subject: [PATCH 596/912] chore: update codesandbox links --- .github/ISSUE_TEMPLATE/bug-report.yml | 2 +- .github/ISSUE_TEMPLATE/z-bug-report-2.yml | 2 +- docs/5.community/3.reporting-bugs.md | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml index bbea7f9746..adb2612a93 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.yml +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -10,7 +10,7 @@ body: Please use a template below to create a minimal reproduction 👉 https://stackblitz.com/github/nuxt/starter/tree/v3-stackblitz - 👉 https://codesandbox.io/p/github/nuxt/starter/v3-codesandbox + 👉 https://codesandbox.io/s/github/nuxt/starter/v3-codesandbox - type: textarea id: bug-env attributes: diff --git a/.github/ISSUE_TEMPLATE/z-bug-report-2.yml b/.github/ISSUE_TEMPLATE/z-bug-report-2.yml index ff81322879..d4124367b2 100644 --- a/.github/ISSUE_TEMPLATE/z-bug-report-2.yml +++ b/.github/ISSUE_TEMPLATE/z-bug-report-2.yml @@ -10,7 +10,7 @@ body: Please use a template below to create a minimal reproduction 👉 https://stackblitz.com/github/nuxt/starter/tree/v2 - 👉 https://codesandbox.io/p/github/nuxt/starter/v2 + 👉 https://codesandbox.io/s/github/nuxt/starter/v2 - type: textarea id: bug-env attributes: diff --git a/docs/5.community/3.reporting-bugs.md b/docs/5.community/3.reporting-bugs.md index 5d0f055584..7f8337a0a9 100644 --- a/docs/5.community/3.reporting-bugs.md +++ b/docs/5.community/3.reporting-bugs.md @@ -33,16 +33,16 @@ If your issue concerns Vue 3 or Vite, please try to reproduce it first with the **Nuxt 3**: :button-link[Nuxt 3 on StackBlitz]{href="https://stackblitz.com/github/nuxt/starter/tree/v3-stackblitz" blank .mr-2} -:button-link[Nuxt 3 on CodeSandbox]{href="https://codesandbox.io/p/github/nuxt/starter/v3-codesandbox" blank} +:button-link[Nuxt 3 on CodeSandbox]{href="https://codesandbox.io/s/github/nuxt/starter/v3-codesandbox" blank} **Nuxt Bridge**: -:button-link[Nuxt Bridge on CodeSandbox]{href="https://codesandbox.io/p/github/nuxt/starter/v2-bridge-codesandbox" blank} +:button-link[Nuxt Bridge on CodeSandbox]{href="https://codesandbox.io/s/github/nuxt/starter/v2-bridge-codesandbox" blank} **Vue 3**: :button-link[Vue 3 SSR on StackBlitz]{href="https://stackblitz.com/github/nuxt-contrib/vue3-ssr-starter/tree/main?terminal=dev" blank .mr-2} -:button-link[Vue 3 SSR on CodeSandbox]{href="https://codesandbox.io/p/github/nuxt-contrib/vue3-ssr-starter/main" blank .mr-2} +:button-link[Vue 3 SSR on CodeSandbox]{href="https://codesandbox.io/s/github/nuxt-contrib/vue3-ssr-starter/main" blank .mr-2} :button-link[Vue 3 SSR Template]{href="https://github.com/nuxt-contrib/vue3-ssr-starter/generate" blank} Once you've reproduced the issue, remove as much code from your reproduction as you can (while still recreating the bug). The time spent making the reproduction as minimal as possible will make a huge difference to whoever sets out to fix the issue. From a2581c6d237544e93955fd0765e1461863d8e13e Mon Sep 17 00:00:00 2001 From: Adham Farrag Date: Mon, 31 Jul 2023 18:23:00 +0800 Subject: [PATCH 597/912] docs: add recommendation to install nuxtr (#20808) --- docs/1.getting-started/2.installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/1.getting-started/2.installation.md b/docs/1.getting-started/2.installation.md index 4d706543c1..addc4e2401 100644 --- a/docs/1.getting-started/2.installation.md +++ b/docs/1.getting-started/2.installation.md @@ -31,7 +31,7 @@ Start with one of our starters and themes directly by opening [nuxt.new](https:/ ::details :summary[Additional notes for an optimal setup:] - **Node.js**: Make sure to use an even numbered version (18, 20, etc) - +- **Nuxtr**: Install the community-developed [Nuxtr extension](https://marketplace.visualstudio.com/items?itemName=Nuxtr.nuxtr-vscode) - **Volar**: Either enable [**Take Over Mode**](https://vuejs.org/guide/typescript/overview.html#volar-takeover-mode) (recommended) or add the [TypeScript Vue Plugin](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) If you have enabled **Take Over Mode** or installed the **TypeScript Vue Plugin (Volar)**, you can disable generating the shim for `*.vue` files in your [`nuxt.config.ts`](/docs/guide/directory-structure/nuxt.config) file: From 40fdff8b68957b1acdde78f769c277f5fd490dad Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 11:34:34 +0100 Subject: [PATCH 598/912] chore(deps): update dependency vue-bundle-renderer to v2 (main) (#22408) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 20 ++++++++++---------- test/basic.test.ts | 1 - 6 files changed, 14 insertions(+), 15 deletions(-) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 31732fa048..928bb7787c 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -101,7 +101,7 @@ "unplugin-vue-router": "^0.6.4", "untyped": "^1.4.0", "vue": "^3.3.4", - "vue-bundle-renderer": "^1.0.3", + "vue-bundle-renderer": "^2.0.0", "vue-devtools-stub": "^0.1.0", "vue-router": "^4.2.4" }, diff --git a/packages/schema/package.json b/packages/schema/package.json index 9622f4af63..9083c40cb2 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -42,7 +42,7 @@ "unctx": "2.3.1", "vite": "4.4.7", "vue": "3.3.4", - "vue-bundle-renderer": "1.0.3", + "vue-bundle-renderer": "2.0.0", "vue-loader": "17.2.2", "vue-router": "4.2.4", "webpack": "5.88.2", diff --git a/packages/vite/package.json b/packages/vite/package.json index cf0e21aa4c..b11fac9ee6 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -60,7 +60,7 @@ "vite": "^4.4.7", "vite-node": "^0.33.0", "vite-plugin-checker": "^0.6.1", - "vue-bundle-renderer": "^1.0.3" + "vue-bundle-renderer": "^2.0.0" }, "peerDependencies": { "vue": "^3.3.4" diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 9dc704b01a..77cff01dc3 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -52,7 +52,7 @@ "ufo": "^1.2.0", "unplugin": "^1.4.0", "url-loader": "^4.1.1", - "vue-bundle-renderer": "^1.0.3", + "vue-bundle-renderer": "^2.0.0", "vue-loader": "^17.2.2", "webpack": "^5.88.2", "webpack-bundle-analyzer": "^4.9.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 41c37b4a54..0735789e05 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -485,8 +485,8 @@ importers: specifier: 3.3.4 version: 3.3.4 vue-bundle-renderer: - specifier: ^1.0.3 - version: 1.0.3 + specifier: ^2.0.0 + version: 2.0.0 vue-devtools-stub: specifier: ^0.1.0 version: 0.1.0 @@ -601,8 +601,8 @@ importers: specifier: 3.3.4 version: 3.3.4 vue-bundle-renderer: - specifier: 1.0.3 - version: 1.0.3 + specifier: 2.0.0 + version: 2.0.0 vue-loader: specifier: 17.2.2 version: 17.2.2(vue@3.3.4)(webpack@5.88.2) @@ -767,8 +767,8 @@ importers: specifier: ^0.6.1 version: 0.6.1(eslint@8.46.0)(typescript@5.1.6)(vite@4.4.7)(vue-tsc@1.8.8) vue-bundle-renderer: - specifier: ^1.0.3 - version: 1.0.3 + specifier: ^2.0.0 + version: 2.0.0 devDependencies: '@nuxt/schema': specifier: workspace:* @@ -891,8 +891,8 @@ importers: specifier: ^4.1.1 version: 4.1.1(file-loader@6.2.0)(webpack@5.88.2) vue-bundle-renderer: - specifier: ^1.0.3 - version: 1.0.3 + specifier: ^2.0.0 + version: 2.0.0 vue-loader: specifier: ^17.2.2 version: 17.2.2(vue@3.3.4)(webpack@5.88.2) @@ -9089,8 +9089,8 @@ packages: resolution: {integrity: sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==} dev: false - /vue-bundle-renderer@1.0.3: - resolution: {integrity: sha512-EfjX+5TTUl70bki9hPuVp+54JiZOvFIfoWBcfXsSwLzKEiDYyHNi5iX8srnqLIv3YRnvxgbntdcG1WPq0MvffQ==} + /vue-bundle-renderer@2.0.0: + resolution: {integrity: sha512-oYATTQyh8XVkUWe2kaKxhxKVuuzK2Qcehe+yr3bGiaQAhK3ry2kYE4FWOfL+KO3hVFwCdLmzDQTzYhTi9C+R2A==} dependencies: ufo: 1.2.0 diff --git a/test/basic.test.ts b/test/basic.test.ts index 879bc8c886..25365c0067 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1365,7 +1365,6 @@ describe.skipIf(isDev() || isWebpack)('inlining component styles', () => { const html: string = await $fetch('/styles') expect(html.match(/]*href="[^"]*\.css">/g)?.filter(m => m.includes('entry'))?.map(m => m.replace(/\.[^.]*\.css/, '.css'))).toMatchInlineSnapshot(` [ - "", "", ] `) From dad633b6586246e83d09730bc9899ce1c8b64bcc Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 31 Jul 2023 12:11:18 +0100 Subject: [PATCH 599/912] perf(nuxt): render css/inline css higher than resource hints (#21793) --- .../nuxt/src/core/runtime/nitro/renderer.ts | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index da2e70764d..8341cae181 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -326,16 +326,25 @@ export default defineRenderHandler(async (event): Promise + ({ rel: 'stylesheet', href: renderer.rendererContext.buildAssetsURL(resource.file) }) + ), + style: inlinedStyles + }) + if (!NO_SCRIPTS) { - // 2. Resource Hints - // @todo add priorities based on Capo + // 3. Resource Hints + // TODO: add priorities based on Capo head.push({ link: getPreloadLinks(ssrContext, renderer.rendererContext) as Link[] }) head.push({ link: getPrefetchLinks(ssrContext, renderer.rendererContext) as Link[] }) - // 3. Payloads + // 4. Payloads head.push({ script: _PAYLOAD_EXTRACTION ? process.env.NUXT_JSON_PAYLOADS @@ -351,16 +360,7 @@ export default defineRenderHandler(async (event): Promise - ({ rel: 'stylesheet', href: renderer.rendererContext.buildAssetsURL(resource.file) }) - ), - style: inlinedStyles - }) - - // 4. Scripts + // 5. Scripts if (!routeOptions.experimentalNoScripts) { head.push({ script: Object.values(scripts).map(resource => ( diff --git a/docs/2.guide/3.going-further/8.custom-routing.md b/docs/2.guide/3.going-further/8.custom-routing.md index 3adc6ee72c..ce62e09f30 100644 --- a/docs/2.guide/3.going-further/8.custom-routing.md +++ b/docs/2.guide/3.going-further/8.custom-routing.md @@ -138,6 +138,6 @@ import { createMemoryHistory } from 'vue-router' // https://router.vuejs.org/api/interfaces/routeroptions.html export default { - history: base => process.client ? createMemoryHistory(base) : null /* default */ + history: base => import.meta.client ? createMemoryHistory(base) : null /* default */ } ``` diff --git a/docs/3.api/1.composables/use-nuxt-app.md b/docs/3.api/1.composables/use-nuxt-app.md index f12d562a75..1a5694aa3f 100644 --- a/docs/3.api/1.composables/use-nuxt-app.md +++ b/docs/3.api/1.composables/use-nuxt-app.md @@ -45,7 +45,7 @@ export default defineNuxtPlugin((nuxtApp) => { }) nuxtApp.hook('vue:error', (..._args) => { console.log('vue:error') - // if (process.client) { + // if (import.meta.client) { // console.log(..._args) // } }) @@ -105,7 +105,7 @@ When accessing the same `payload.data` from [ssrcontext](#ssrcontext), you can a export const useColor = () => useState('color', () => 'pink') export default defineNuxtPlugin((nuxtApp) => { - if (process.server) { + if (import.meta.server) { const color = useColor() } }) @@ -137,7 +137,7 @@ export default defineComponent({ setup (_props, { slots, emit }) { const nuxtApp = useNuxtApp() onErrorCaptured((err) => { - if (process.client && !nuxtApp.isHydrating) { + if (import.meta.client && !nuxtApp.isHydrating) { // ... } }) diff --git a/packages/kit/src/template.ts b/packages/kit/src/template.ts index 87eaa2b855..96cf22b57c 100644 --- a/packages/kit/src/template.ts +++ b/packages/kit/src/template.ts @@ -128,7 +128,6 @@ export async function writeTypes (nuxt: Nuxt) { noEmit: true, resolveJsonModule: true, allowSyntheticDefaultImports: true, - types: ['node'], paths: {} }, include: [ diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index b95ade290b..c7ce27a73a 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -122,6 +122,9 @@ "peerDependenciesMeta": { "@parcel/watcher": { "optional": true + }, + "@types/node": { + "optional": true } }, "engines": { diff --git a/packages/nuxt/src/app/compat/idle-callback.ts b/packages/nuxt/src/app/compat/idle-callback.ts index cc28a2b1a2..01779dc1fe 100644 --- a/packages/nuxt/src/app/compat/idle-callback.ts +++ b/packages/nuxt/src/app/compat/idle-callback.ts @@ -1,6 +1,6 @@ // Polyfills for Safari support // https://caniuse.com/requestidlecallback -export const requestIdleCallback: Window['requestIdleCallback'] = process.server +export const requestIdleCallback: Window['requestIdleCallback'] = import.meta.server ? (() => {}) as any : (globalThis.requestIdleCallback || ((cb) => { const start = Date.now() @@ -11,6 +11,6 @@ export const requestIdleCallback: Window['requestIdleCallback'] = process.server return setTimeout(() => { cb(idleDeadline) }, 1) })) -export const cancelIdleCallback: Window['cancelIdleCallback'] = process.server +export const cancelIdleCallback: Window['cancelIdleCallback'] = import.meta.server ? (() => {}) as any : (globalThis.cancelIdleCallback || ((id) => { clearTimeout(id) })) diff --git a/packages/nuxt/src/app/components/dev-only.ts b/packages/nuxt/src/app/components/dev-only.ts index 914ba6f6e4..6c8ec7c5e9 100644 --- a/packages/nuxt/src/app/components/dev-only.ts +++ b/packages/nuxt/src/app/components/dev-only.ts @@ -3,7 +3,7 @@ import { defineComponent } from 'vue' export default defineComponent({ name: 'DevOnly', setup (_, props) { - if (process.dev) { + if (import.meta.dev) { return () => props.slots.default?.() } return () => props.slots.fallback?.() diff --git a/packages/nuxt/src/app/components/nuxt-error-boundary.ts b/packages/nuxt/src/app/components/nuxt-error-boundary.ts index a58516c1ce..cb8d2f6707 100644 --- a/packages/nuxt/src/app/components/nuxt-error-boundary.ts +++ b/packages/nuxt/src/app/components/nuxt-error-boundary.ts @@ -12,7 +12,7 @@ export default defineComponent({ const nuxtApp = useNuxtApp() onErrorCaptured((err, target, info) => { - if (process.client && !nuxtApp.isHydrating) { + if (import.meta.client && !nuxtApp.isHydrating) { emit('error', err) nuxtApp.hooks.callHook('vue:error', err, target, info) error.value = err diff --git a/packages/nuxt/src/app/components/nuxt-error-page.vue b/packages/nuxt/src/app/components/nuxt-error-page.vue index 0976b1a2f3..cf32d26835 100644 --- a/packages/nuxt/src/app/components/nuxt-error-page.vue +++ b/packages/nuxt/src/app/components/nuxt-error-page.vue @@ -36,11 +36,11 @@ const is404 = statusCode === 404 const statusMessage = _error.statusMessage ?? (is404 ? 'Page Not Found' : 'Internal Server Error') const description = _error.message || _error.toString() -const stack = process.dev && !is404 ? _error.description || `
${stacktrace}
` : undefined +const stack = import.meta.dev && !is404 ? _error.description || `
${stacktrace}
` : undefined // TODO: Investigate side-effect issue with imports const _Error404 = defineAsyncComponent(() => import('@nuxt/ui-templates/templates/error-404.vue').then(r => r.default || r)) -const _Error = process.dev +const _Error = import.meta.dev ? defineAsyncComponent(() => import('@nuxt/ui-templates/templates/error-dev.vue').then(r => r.default || r)) : defineAsyncComponent(() => import('@nuxt/ui-templates/templates/error-500.vue').then(r => r.default || r)) diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index 9f609fc5f6..3955b8d8ef 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -23,7 +23,7 @@ const SLOTNAME_RE = /nuxt-ssr-slot-name="([^"]*)"/g const SLOT_FALLBACK_RE = /
]*><\/div>(((?!
]*>)[\s\S])*)
]*><\/div>/g let id = 0 -const getId = process.client ? () => (id++).toString() : randomUUID +const getId = import.meta.client ? () => (id++).toString() : randomUUID export default defineComponent({ name: 'NuxtIsland', @@ -54,7 +54,7 @@ export default defineComponent({ const instance = getCurrentInstance()! const event = useRequestEvent() // TODO: remove use of `$fetch.raw` when nitro 503 issues on windows dev server are resolved - const eventFetch = process.server ? event.fetch : process.dev ? $fetch.raw : globalThis.fetch + const eventFetch = import.meta.server ? event.fetch : import.meta.dev ? $fetch.raw : globalThis.fetch const mounted = ref(false) onMounted(() => { mounted.value = true }) @@ -62,7 +62,7 @@ export default defineComponent({ nuxtApp.payload.data[key] = { __nuxt_island: { key, - ...(process.server && process.env.prerender) + ...(import.meta.server && import.meta.prerender) ? {} : { params: { ...props.context, props: props.props ? JSON.stringify(props.props) : undefined } } }, @@ -71,7 +71,7 @@ export default defineComponent({ } const ssrHTML = ref('') - if (process.client) { + if (import.meta.client) { const renderedHTML = getFragmentHTML(instance.vnode?.el ?? null).join('') if (renderedHTML && nuxtApp.isHydrating) { setPayload(`${props.name}_${hashId.value}`, { @@ -111,19 +111,19 @@ export default defineComponent({ const url = remoteComponentIslands && props.source ? new URL(`/__nuxt_island/${key}`, props.source).href : `/__nuxt_island/${key}` - if (process.server && process.env.prerender) { + if (import.meta.server && import.meta.prerender) { // Hint to Nitro to prerender the island component appendResponseHeader(event, 'x-nitro-prerender', url) } // TODO: Validate response // $fetch handles the app.baseURL in dev - const r = await eventFetch(withQuery(process.dev && process.client ? url : joinURL(config.app.baseURL ?? '', url), { + const r = await eventFetch(withQuery(import.meta.dev && import.meta.client ? url : joinURL(config.app.baseURL ?? '', url), { ...props.context, props: props.props ? JSON.stringify(props.props) : undefined })) - const result = process.server || !process.dev ? await r.json() : (r as FetchResponse)._data + const result = import.meta.server || !import.meta.dev ? await r.json() : (r as FetchResponse)._data // TODO: support passing on more headers - if (process.server && process.env.prerender) { + if (import.meta.server && import.meta.prerender) { const hints = r.headers.get('x-nitro-prerender') if (hints) { appendResponseHeader(event, 'x-nitro-prerender', hints) @@ -149,7 +149,7 @@ export default defineComponent({ }) key.value++ error.value = null - if (process.client) { + if (import.meta.client) { // must await next tick for Teleport to work correctly with static node re-rendering await nextTick() } @@ -165,13 +165,13 @@ export default defineComponent({ }) } - if (process.client) { + if (import.meta.client) { watch(props, debounce(() => fetchComponent(), 100)) } - if (process.client && !nuxtApp.isHydrating && props.lazy) { + if (import.meta.client && !nuxtApp.isHydrating && props.lazy) { fetchComponent() - } else if (process.server || !nuxtApp.isHydrating) { + } else if (import.meta.server || !nuxtApp.isHydrating) { await fetchComponent() } @@ -182,10 +182,10 @@ export default defineComponent({ const nodes = [createVNode(Fragment, { key: key.value }, [h(createStaticVNode(html.value || '
', 1))])] - if (uid.value && (mounted.value || nuxtApp.isHydrating || process.server)) { + if (uid.value && (mounted.value || nuxtApp.isHydrating || import.meta.server)) { for (const slot in slots) { if (availableSlots.value.includes(slot)) { - nodes.push(createVNode(Teleport, { to: process.client ? `[nuxt-ssr-component-uid='${uid.value}'] [nuxt-ssr-slot-name='${slot}']` : `uid=${uid.value};slot=${slot}` }, { + nodes.push(createVNode(Teleport, { to: import.meta.client ? `[nuxt-ssr-component-uid='${uid.value}'] [nuxt-ssr-slot-name='${slot}']` : `uid=${uid.value};slot=${slot}` }, { default: () => (slotProps.value[slot] ?? [undefined]).map((data: any) => slots[slot]?.(data)) })) } diff --git a/packages/nuxt/src/app/components/nuxt-layout.ts b/packages/nuxt/src/app/components/nuxt-layout.ts index 79053a7355..82c321479d 100644 --- a/packages/nuxt/src/app/components/nuxt-layout.ts +++ b/packages/nuxt/src/app/components/nuxt-layout.ts @@ -57,7 +57,7 @@ export default defineComponent({ return () => { const hasLayout = layout.value && layout.value in layouts - if (process.dev && layout.value && !hasLayout && layout.value !== 'default') { + if (import.meta.dev && layout.value && !hasLayout && layout.value !== 'default') { console.warn(`Invalid layout \`${layout.value}\` selected.`) } @@ -112,7 +112,7 @@ const LayoutProvider = defineComponent({ } let vnode: VNode | undefined - if (process.dev && process.client) { + if (import.meta.dev && import.meta.client) { onMounted(() => { nextTick(() => { if (['#comment', '#text'].includes(vnode?.el?.nodeName)) { @@ -128,14 +128,14 @@ const LayoutProvider = defineComponent({ return () => { if (!name || (typeof name === 'string' && !(name in layouts))) { - if (process.dev && process.client && props.hasTransition) { + if (import.meta.dev && import.meta.client && props.hasTransition) { vnode = context.slots.default?.() as VNode | undefined return vnode } return context.slots.default?.() } - if (process.dev && process.client && props.hasTransition) { + if (import.meta.dev && import.meta.client && props.hasTransition) { vnode = h( // @ts-expect-error seems to be an issue in vue types LayoutLoader, diff --git a/packages/nuxt/src/app/components/nuxt-link.ts b/packages/nuxt/src/app/components/nuxt-link.ts index 4e89cd042d..dd65580a24 100644 --- a/packages/nuxt/src/app/components/nuxt-link.ts +++ b/packages/nuxt/src/app/components/nuxt-link.ts @@ -51,7 +51,7 @@ export function defineNuxtLink (options: NuxtLinkOptions) { const componentName = options.componentName || 'NuxtLink' const checkPropConflicts = (props: NuxtLinkProps, main: keyof NuxtLinkProps, sub: keyof NuxtLinkProps): void => { - if (process.dev && props[main] !== undefined && props[sub] !== undefined) { + if (import.meta.dev && props[main] !== undefined && props[sub] !== undefined) { console.warn(`[${componentName}] \`${main}\` and \`${sub}\` cannot be used together. \`${sub}\` will be ignored.`) } } @@ -198,10 +198,10 @@ export function defineNuxtLink (options: NuxtLinkOptions) { // Prefetching const prefetched = ref(false) - const el = process.server ? undefined : ref(null) - const elRef = process.server ? undefined : (ref: any) => { el!.value = props.custom ? ref?.$el?.nextElementSibling : ref?.$el } + const el = import.meta.server ? undefined : ref(null) + const elRef = import.meta.server ? undefined : (ref: any) => { el!.value = props.custom ? ref?.$el?.nextElementSibling : ref?.$el } - if (process.client) { + if (import.meta.client) { checkPropConflicts(props, 'prefetch', 'noPrefetch') const shouldPrefetch = props.prefetch !== false && props.noPrefetch !== true && props.target !== '_blank' && !isSlowConnection() if (shouldPrefetch) { @@ -329,7 +329,7 @@ type CallbackFn = () => void type ObserveFn = (element: Element, callback: CallbackFn) => () => void function useObserver (): { observe: ObserveFn } | undefined { - if (process.server) { return } + if (import.meta.server) { return } const nuxtApp = useNuxtApp() if (nuxtApp._observer) { @@ -370,7 +370,7 @@ function useObserver (): { observe: ObserveFn } | undefined { } function isSlowConnection () { - if (process.server) { return } + if (import.meta.server) { return } // https://developer.mozilla.org/en-US/docs/Web/API/Navigator/connection const cn = (navigator as any).connection as { saveData: boolean, effectiveType: string } | null diff --git a/packages/nuxt/src/app/components/nuxt-loading-indicator.ts b/packages/nuxt/src/app/components/nuxt-loading-indicator.ts index 104523e601..011c2899b2 100644 --- a/packages/nuxt/src/app/components/nuxt-loading-indicator.ts +++ b/packages/nuxt/src/app/components/nuxt-loading-indicator.ts @@ -101,7 +101,7 @@ function useLoadingIndicator (opts: { function start () { clear() progress.value = 0 - if (opts.throttle && process.client) { + if (opts.throttle && import.meta.client) { _throttle = setTimeout(() => { isLoading.value = true _startTimer() @@ -129,7 +129,7 @@ function useLoadingIndicator (opts: { function _hide () { clear() - if (process.client) { + if (import.meta.client) { setTimeout(() => { isLoading.value = false setTimeout(() => { progress.value = 0 }, 400) @@ -138,7 +138,7 @@ function useLoadingIndicator (opts: { } function _startTimer () { - if (process.client) { + if (import.meta.client) { _timer = setInterval(() => { _increase(step.value) }, 100) } } diff --git a/packages/nuxt/src/app/components/nuxt-root.vue b/packages/nuxt/src/app/components/nuxt-root.vue index c39c0d7041..80a9d38ac1 100644 --- a/packages/nuxt/src/app/components/nuxt-root.vue +++ b/packages/nuxt/src/app/components/nuxt-root.vue @@ -16,23 +16,23 @@ import { PageRouteSymbol } from '#app/components/injections' import AppComponent from '#build/app-component.mjs' import ErrorComponent from '#build/error-component.mjs' -const IslandRenderer = process.server +const IslandRenderer = import.meta.server ? defineAsyncComponent(() => import('./island-renderer').then(r => r.default || r)) : () => null const nuxtApp = useNuxtApp() const onResolve = nuxtApp.deferHydration() -const url = process.server ? nuxtApp.ssrContext.url : window.location.pathname -const SingleRenderer = process.test && process.dev && process.server && url.startsWith('/__nuxt_component_test__/') && /* #__PURE__ */ defineAsyncComponent(() => import('#build/test-component-wrapper.mjs') - .then(r => r.default(process.server ? url : window.location.href))) +const url = import.meta.server ? nuxtApp.ssrContext.url : window.location.pathname +const SingleRenderer = import.meta.test && import.meta.dev && import.meta.server && url.startsWith('/__nuxt_component_test__/') && /* #__PURE__ */ defineAsyncComponent(() => import('#build/test-component-wrapper.mjs') + .then(r => r.default(import.meta.server ? url : window.location.href))) // Inject default route (outside of pages) as active route provide(PageRouteSymbol, useRoute()) // vue:setup hook const results = nuxtApp.hooks.callHookWith(hooks => hooks.map(hook => hook()), 'vue:setup') -if (process.dev && results && results.some(i => i && 'then' in i)) { +if (import.meta.dev && results && results.some(i => i && 'then' in i)) { console.error('[nuxt] Error in `vue:setup`. Callbacks must be synchronous.') } @@ -40,7 +40,7 @@ if (process.dev && results && results.some(i => i && 'then' in i)) { const error = useError() onErrorCaptured((err, target, info) => { nuxtApp.hooks.callHook('vue:error', err, target, info).catch(hookError => console.error('[nuxt] Error in `vue:error` hook', hookError)) - if (process.server || (isNuxtError(err) && (err.fatal || err.unhandled))) { + if (import.meta.server || (isNuxtError(err) && (err.fatal || err.unhandled))) { const p = nuxtApp.runWithContext(() => showError(err)) onServerPrefetch(() => p) return false // suppress error from breaking render @@ -48,5 +48,5 @@ onErrorCaptured((err, target, info) => { }) // Component islands context -const { islandContext } = process.server && nuxtApp.ssrContext +const islandContext = import.meta.server && nuxtApp.ssrContext.islandContext diff --git a/packages/nuxt/src/app/components/route-provider.ts b/packages/nuxt/src/app/components/route-provider.ts index d24b807aad..5db44c3f79 100644 --- a/packages/nuxt/src/app/components/route-provider.ts +++ b/packages/nuxt/src/app/components/route-provider.ts @@ -36,7 +36,7 @@ export const RouteProvider = defineComponent({ provide(PageRouteSymbol, shallowReactive(route)) let vnode: VNode - if (process.dev && process.client && props.trackRootNodes) { + if (import.meta.dev && import.meta.client && props.trackRootNodes) { onMounted(() => { nextTick(() => { if (['#comment', '#text'].includes(vnode?.el?.nodeName)) { @@ -48,7 +48,7 @@ export const RouteProvider = defineComponent({ } return () => { - if (process.dev && process.client) { + if (import.meta.dev && import.meta.client) { vnode = h(props.vnode, { ref: props.vnodeRef }) return vnode } diff --git a/packages/nuxt/src/app/components/utils.ts b/packages/nuxt/src/app/components/utils.ts index d95ed64f50..cc7c5e741c 100644 --- a/packages/nuxt/src/app/components/utils.ts +++ b/packages/nuxt/src/app/components/utils.ts @@ -73,7 +73,7 @@ export function vforToArray (source: any): any[] { } else if (isString(source)) { return source.split('') } else if (typeof source === 'number') { - if (process.dev && !Number.isInteger(source)) { + if (import.meta.dev && !Number.isInteger(source)) { console.warn(`The v-for range expect an integer value but got ${source}.`) } const array = [] diff --git a/packages/nuxt/src/app/composables/asyncData.ts b/packages/nuxt/src/app/composables/asyncData.ts index 817c7d0432..b086e705bc 100644 --- a/packages/nuxt/src/app/composables/asyncData.ts +++ b/packages/nuxt/src/app/composables/asyncData.ts @@ -222,7 +222,7 @@ export function useAsyncData< const fetchOnServer = options.server !== false && nuxt.payload.serverRendered // Server side - if (process.server && fetchOnServer && options.immediate) { + if (import.meta.server && fetchOnServer && options.immediate) { const promise = initialFetch() if (getCurrentInstance()) { onServerPrefetch(() => promise) @@ -232,7 +232,7 @@ export function useAsyncData< } // Client side - if (process.client) { + if (import.meta.client) { // Setup hook callbacks once per instance const instance = getCurrentInstance() if (instance && !instance._nuxtOnBeforeMountCbs) { @@ -349,7 +349,7 @@ export function useNuxtData (key: string): { data: Ref { - if (process.server) { + if (import.meta.server) { return Promise.resolve() } diff --git a/packages/nuxt/src/app/composables/chunk.ts b/packages/nuxt/src/app/composables/chunk.ts index 1e0c1e4f13..9bdb5ea34f 100644 --- a/packages/nuxt/src/app/composables/chunk.ts +++ b/packages/nuxt/src/app/composables/chunk.ts @@ -29,7 +29,7 @@ export interface ReloadNuxtAppOptions { } export function reloadNuxtApp (options: ReloadNuxtAppOptions = {}) { - if (process.server) { return } + if (import.meta.server) { return } const path = options.path || window.location.pathname let handledPath: Record = {} diff --git a/packages/nuxt/src/app/composables/component.ts b/packages/nuxt/src/app/composables/component.ts index 175dabc832..5bfcc992ea 100644 --- a/packages/nuxt/src/app/composables/component.ts +++ b/packages/nuxt/src/app/composables/component.ts @@ -22,7 +22,7 @@ async function runLegacyAsyncData (res: Record | Promise (name: string, _opts?: const cookie = ref(cookies[name] as any ?? opts.default?.()) - if (process.client) { + if (import.meta.client) { const channel = typeof BroadcastChannel === 'undefined' ? null : new BroadcastChannel(`nuxt:cookies:${name}`) if (getCurrentInstance()) { onUnmounted(() => { channel?.close() }) } @@ -61,7 +61,7 @@ export function useCookie (name: string, _opts?: } else { callback() } - } else if (process.server) { + } else if (import.meta.server) { const nuxtApp = useNuxtApp() const writeFinalCookieValue = () => { if (!isEqual(cookie.value, cookies[name])) { @@ -79,9 +79,9 @@ export function useCookie (name: string, _opts?: } function readRawCookies (opts: CookieOptions = {}): Record | undefined { - if (process.server) { + if (import.meta.server) { return parse(useRequestEvent()?.node.req.headers.cookie || '', opts) - } else if (process.client) { + } else if (import.meta.client) { return parse(document.cookie, opts) } } @@ -94,7 +94,7 @@ function serializeCookie (name: string, value: any, opts: CookieSerializeOptions } function writeClientCookie (name: string, value: any, opts: CookieSerializeOptions = {}) { - if (process.client) { + if (import.meta.client) { document.cookie = serializeCookie(name, value, opts) } } diff --git a/packages/nuxt/src/app/composables/error.ts b/packages/nuxt/src/app/composables/error.ts index b23fcd32ee..4a59bc6a7a 100644 --- a/packages/nuxt/src/app/composables/error.ts +++ b/packages/nuxt/src/app/composables/error.ts @@ -14,7 +14,7 @@ export const showError = (_err: string | Error | Partial) => { try { const nuxtApp = useNuxtApp() const error = useError() - if (process.client) { + if (import.meta.client) { nuxtApp.hooks.callHook('app:error', err) } error.value = error.value || err diff --git a/packages/nuxt/src/app/composables/fetch.ts b/packages/nuxt/src/app/composables/fetch.ts index a2c84fbc5e..e70a1d6907 100644 --- a/packages/nuxt/src/app/composables/fetch.ts +++ b/packages/nuxt/src/app/composables/fetch.ts @@ -134,7 +134,7 @@ export function useFetch< const isLocalFetch = typeof _request.value === 'string' && _request.value.startsWith('/') let _$fetch = opts.$fetch || globalThis.$fetch // Use fetch with request context and headers for server direct API calls - if (process.server && !opts.$fetch && isLocalFetch) { + if (import.meta.server && !opts.$fetch && isLocalFetch) { _$fetch = useRequestFetch() } diff --git a/packages/nuxt/src/app/composables/hydrate.ts b/packages/nuxt/src/app/composables/hydrate.ts index 447318d76a..3aa4053402 100644 --- a/packages/nuxt/src/app/composables/hydrate.ts +++ b/packages/nuxt/src/app/composables/hydrate.ts @@ -11,13 +11,13 @@ import type { NuxtPayload } from '#app' export const useHydration = (key: K, get: () => T, set: (value: T) => void) => { const nuxt = useNuxtApp() - if (process.server) { + if (import.meta.server) { nuxt.hooks.hook('app:rendered', () => { nuxt.payload[key] = get() }) } - if (process.client) { + if (import.meta.client) { nuxt.hooks.hook('app:created', () => { set(nuxt.payload[key] as T) }) diff --git a/packages/nuxt/src/app/composables/payload.ts b/packages/nuxt/src/app/composables/payload.ts index 219f03582f..1cff4e8a36 100644 --- a/packages/nuxt/src/app/composables/payload.ts +++ b/packages/nuxt/src/app/composables/payload.ts @@ -13,7 +13,7 @@ interface LoadPayloadOptions { } export function loadPayload (url: string, opts: LoadPayloadOptions = {}): Record | Promise> | null { - if (process.server) { return null } + if (import.meta.server) { return null } const payloadURL = _getPayloadURL(url, opts) const nuxtApp = useNuxtApp() const cache = nuxtApp._payloadCache = nuxtApp._payloadCache || {} @@ -55,7 +55,7 @@ function _getPayloadURL (url: string, opts: LoadPayloadOptions = {}) { } async function _importPayload (payloadURL: string) { - if (process.server) { return null } + if (import.meta.server) { return null } try { return renderJsonPayloads ? parsePayload(await fetch(payloadURL).then(res => res.text())) @@ -74,7 +74,7 @@ export function isPrerendered () { let payloadCache: any = null export async function getNuxtClientPayload () { - if (process.server) { + if (import.meta.server) { return } if (payloadCache) { @@ -110,7 +110,7 @@ export function definePayloadReducer ( name: string, reduce: (data: any) => any ) { - if (process.server) { + if (import.meta.server) { useNuxtApp().ssrContext!._payloadReducers[name] = reduce } } @@ -124,10 +124,10 @@ export function definePayloadReviver ( name: string, revive: (data: string) => any | undefined ) { - if (process.dev && getCurrentInstance()) { + if (import.meta.dev && getCurrentInstance()) { console.warn('[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.') } - if (process.client) { + if (import.meta.client) { useNuxtApp()._payloadRevivers[name] = revive } } diff --git a/packages/nuxt/src/app/composables/preload.ts b/packages/nuxt/src/app/composables/preload.ts index 6710ae2b82..b012accc51 100644 --- a/packages/nuxt/src/app/composables/preload.ts +++ b/packages/nuxt/src/app/composables/preload.ts @@ -9,7 +9,7 @@ import { useRouter } from './router' * @param components Pascal-cased name or names of components to prefetch */ export const preloadComponents = async (components: string | string[]) => { - if (process.server) { return } + if (import.meta.server) { return } const nuxtApp = useNuxtApp() components = Array.isArray(components) ? components : [components] @@ -35,7 +35,7 @@ function _loadAsyncComponent (component: Component) { } export async function preloadRouteComponents (to: RouteLocationRaw, router: Router & { _routePreloaded?: Set; _preloadPromises?: Array> } = useRouter()): Promise { - if (process.server) { return } + if (import.meta.server) { return } const { path, matched } = router.resolve(to) diff --git a/packages/nuxt/src/app/composables/ready.ts b/packages/nuxt/src/app/composables/ready.ts index 58143d1840..a30d0d7caf 100644 --- a/packages/nuxt/src/app/composables/ready.ts +++ b/packages/nuxt/src/app/composables/ready.ts @@ -2,7 +2,7 @@ import { useNuxtApp } from '../nuxt' import { requestIdleCallback } from '../compat/idle-callback' export const onNuxtReady = (callback: () => any) => { - if (process.server) { return } + if (import.meta.server) { return } const nuxtApp = useNuxtApp() if (nuxtApp.isHydrating) { diff --git a/packages/nuxt/src/app/composables/router.ts b/packages/nuxt/src/app/composables/router.ts index 126381ce49..0ffead1cdd 100644 --- a/packages/nuxt/src/app/composables/router.ts +++ b/packages/nuxt/src/app/composables/router.ts @@ -17,7 +17,7 @@ export const useRouter: typeof _useRouter = () => { } export const useRoute: typeof _useRoute = () => { - if (process.dev && isProcessingMiddleware()) { + if (import.meta.dev && isProcessingMiddleware()) { console.warn('[nuxt] Calling `useRoute` within middleware may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes.') } if (hasInjectionContext()) { @@ -118,7 +118,7 @@ export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: Na // Early open handler if (options?.open) { - if (process.client) { + if (import.meta.client) { const { target = '_blank', windowFeatures = {} } = options.open const features = Object.entries(windowFeatures) @@ -146,7 +146,7 @@ export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: Na const inMiddleware = isProcessingMiddleware() // Early redirect on client-side - if (process.client && !isExternal && inMiddleware) { + if (import.meta.client && !isExternal && inMiddleware) { return to } @@ -154,7 +154,7 @@ export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: Na const nuxtApp = useNuxtApp() - if (process.server) { + if (import.meta.server) { if (nuxtApp.ssrContext) { const fullPath = typeof to === 'string' || isExternal ? toPath : router.resolve(to).fullPath || '/' const location = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath) @@ -206,7 +206,7 @@ export const navigateTo = (to: RouteLocationRaw | undefined | null, options?: Na /** This will abort navigation within a Nuxt route middleware handler. */ export const abortNavigation = (err?: string | Partial) => { - if (process.dev && !isProcessingMiddleware()) { + if (import.meta.dev && !isProcessingMiddleware()) { throw new Error('abortNavigation() is only usable inside a route middleware handler.') } @@ -222,18 +222,18 @@ export const abortNavigation = (err?: string | Partial) => { } export const setPageLayout = (layout: unknown extends PageMeta['layout'] ? string : PageMeta['layout']) => { - if (process.server) { - if (process.dev && getCurrentInstance() && useState('_layout').value !== layout) { + if (import.meta.server) { + if (import.meta.dev && getCurrentInstance() && useState('_layout').value !== layout) { console.warn('[warn] [nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.') } useState('_layout').value = layout } const nuxtApp = useNuxtApp() - if (process.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && useState('_layout').value !== layout) { + if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && useState('_layout').value !== layout) { console.warn('[warn] [nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.') } const inMiddleware = isProcessingMiddleware() - if (inMiddleware || process.server || nuxtApp.isHydrating) { + if (inMiddleware || import.meta.server || nuxtApp.isHydrating) { const unsubscribe = useRouter().beforeResolve((to) => { to.meta.layout = layout as Exclude unsubscribe() diff --git a/packages/nuxt/src/app/composables/ssr.ts b/packages/nuxt/src/app/composables/ssr.ts index 14d4e1c678..c72e3c1373 100644 --- a/packages/nuxt/src/app/composables/ssr.ts +++ b/packages/nuxt/src/app/composables/ssr.ts @@ -6,7 +6,7 @@ import { useNuxtApp } from '../nuxt' export function useRequestHeaders (include: K[]): { [key in Lowercase]?: string } export function useRequestHeaders (): Readonly> export function useRequestHeaders (include?: any[]) { - if (process.client) { return {} } + if (import.meta.client) { return {} } const headers = useNuxtApp().ssrContext?.event.node.req.headers ?? {} if (!include) { return headers } return Object.fromEntries(include.map(key => key.toLowerCase()).filter(key => headers[key]).map(key => [key, headers[key]])) @@ -17,7 +17,7 @@ export function useRequestEvent (nuxtApp: NuxtApp = useNuxtApp()): H3Event { } export function useRequestFetch (): typeof global.$fetch { - if (process.client) { + if (import.meta.client) { return globalThis.$fetch } const event = useNuxtApp().ssrContext?.event as H3Event @@ -28,7 +28,7 @@ export function setResponseStatus (event: H3Event, code?: number, message?: stri /** @deprecated Pass `event` as first option. */ export function setResponseStatus (code: number, message?: string): void export function setResponseStatus (arg1: H3Event | number | undefined, arg2?: number | string, arg3?: string) { - if (process.client) { return } + if (import.meta.client) { return } if (arg1 && typeof arg1 !== 'number') { return _setResponseStatus(arg1, arg2 as number | undefined, arg3) } diff --git a/packages/nuxt/src/app/composables/url.ts b/packages/nuxt/src/app/composables/url.ts index 4f43ba8481..784ef860cd 100644 --- a/packages/nuxt/src/app/composables/url.ts +++ b/packages/nuxt/src/app/composables/url.ts @@ -4,7 +4,7 @@ import { useRequestEvent } from './ssr' import { useRuntimeConfig } from '#app' export function useRequestURL () { - if (process.server) { + if (import.meta.server) { const url = getRequestURL(useRequestEvent()) url.pathname = joinURL(useRuntimeConfig().app.baseURL, url.pathname) return url diff --git a/packages/nuxt/src/app/config.ts b/packages/nuxt/src/app/config.ts index 77efe98805..3b8a86a2bc 100644 --- a/packages/nuxt/src/app/config.ts +++ b/packages/nuxt/src/app/config.ts @@ -38,7 +38,7 @@ function deepAssign (obj: any, newObj: any) { export function useAppConfig (): AppConfig { const nuxtApp = useNuxtApp() if (!nuxtApp._appConfig) { - nuxtApp._appConfig = (process.server ? klona(__appConfig) : reactive(__appConfig)) as AppConfig + nuxtApp._appConfig = (import.meta.server ? klona(__appConfig) : reactive(__appConfig)) as AppConfig } return nuxtApp._appConfig } @@ -54,7 +54,7 @@ export function updateAppConfig (appConfig: DeepPartial) { } // HMR Support -if (process.dev) { +if (import.meta.dev) { function applyHMR (newConfig: AppConfig) { const appConfig = useAppConfig() if (newConfig && appConfig) { diff --git a/packages/nuxt/src/app/entry.async.ts b/packages/nuxt/src/app/entry.async.ts index 4d5b6206ab..783151a062 100644 --- a/packages/nuxt/src/app/entry.async.ts +++ b/packages/nuxt/src/app/entry.async.ts @@ -1,10 +1,10 @@ import type { CreateOptions } from '#app' -const entry = process.server +const entry = import.meta.server ? (ctx?: CreateOptions['ssrContext']) => import('#app/entry').then(m => m.default(ctx)) : () => import('#app/entry').then(m => m.default) -if (process.client) { +if (import.meta.client) { entry() } diff --git a/packages/nuxt/src/app/entry.ts b/packages/nuxt/src/app/entry.ts index be990030b9..610f1875eb 100644 --- a/packages/nuxt/src/app/entry.ts +++ b/packages/nuxt/src/app/entry.ts @@ -26,7 +26,7 @@ if (!globalThis.$fetch) { let entry: Function -if (process.server) { +if (import.meta.server) { entry = async function createNuxtAppServer (ssrContext: CreateOptions['ssrContext']) { const vueApp = createApp(RootComponent) @@ -45,10 +45,10 @@ if (process.server) { } } -if (process.client) { +if (import.meta.client) { // TODO: temporary webpack 5 HMR fix // https://github.com/webpack-contrib/webpack-hot-middleware/issues/390 - if (process.dev && import.meta.webpackHot) { + if (import.meta.dev && import.meta.webpackHot) { import.meta.webpackHot.accept() } diff --git a/packages/nuxt/src/app/nuxt.ts b/packages/nuxt/src/app/nuxt.ts index 9a104a1613..93c5ebc9d8 100644 --- a/packages/nuxt/src/app/nuxt.ts +++ b/packages/nuxt/src/app/nuxt.ts @@ -210,13 +210,13 @@ export function createNuxtApp (options: CreateOptions) { data: {}, state: {}, _errors: {}, - ...(process.client ? window.__NUXT__ ?? {} : { serverRendered: true }) + ...(import.meta.client ? window.__NUXT__ ?? {} : { serverRendered: true }) }), static: { data: {} }, runWithContext: (fn: any) => callWithNuxt(nuxtApp, fn), - isHydrating: process.client, + isHydrating: import.meta.client, deferHydration () { if (!nuxtApp.isHydrating) { return () => {} } @@ -244,7 +244,7 @@ export function createNuxtApp (options: CreateOptions) { nuxtApp.hooks = createHooks() nuxtApp.hook = nuxtApp.hooks.hook - if (process.server) { + if (import.meta.server) { async function contextCaller (hooks: HookCallback[], args: any[]) { for (const hook of hooks) { await nuxtApp.runWithContext(() => hook(...args)) @@ -267,7 +267,7 @@ export function createNuxtApp (options: CreateOptions) { defineGetter(nuxtApp.vueApp, '$nuxt', nuxtApp) defineGetter(nuxtApp.vueApp.config.globalProperties, '$nuxt', nuxtApp) - if (process.server) { + if (import.meta.server) { if (nuxtApp.ssrContext) { // Expose nuxt to the renderContext nuxtApp.ssrContext.nuxt = nuxtApp @@ -291,7 +291,7 @@ export function createNuxtApp (options: CreateOptions) { } // Listen to chunk load errors - if (process.client) { + if (import.meta.client) { window.addEventListener('nuxt.preloadError', (event) => { nuxtApp.callHook('app:chunkError', { error: (event as Event & { payload: Error }).payload }) }) @@ -305,7 +305,7 @@ export function createNuxtApp (options: CreateOptions) { } // Expose runtime config - const runtimeConfig = process.server ? options.ssrContext!.runtimeConfig : reactive(nuxtApp.payload.config!) + const runtimeConfig = import.meta.server ? options.ssrContext!.runtimeConfig : reactive(nuxtApp.payload.config!) nuxtApp.provide('config', runtimeConfig) return nuxtApp @@ -329,7 +329,7 @@ export async function applyPlugins (nuxtApp: NuxtApp, plugins: Array[] = [] const errors: Error[] = [] for (const plugin of plugins) { - if (process.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) { continue } + if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) { continue } const promise = applyPlugin(nuxtApp, plugin) if (plugin.parallel) { parallels.push(promise.catch(e => errors.push(e))) @@ -363,7 +363,7 @@ export function isNuxtPlugin (plugin: unknown) { */ export function callWithNuxt any> (nuxt: NuxtApp | _NuxtApp, setup: T, args?: Parameters) { const fn: () => ReturnType = () => args ? setup(...args as Parameters) : setup() - if (process.server) { + if (import.meta.server) { return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt as NuxtApp, fn)) } else { // In client side we could assume nuxt app is singleton @@ -385,7 +385,7 @@ export function useNuxtApp (): NuxtApp { nuxtAppInstance = nuxtAppInstance || nuxtAppCtx.tryUse() if (!nuxtAppInstance) { - if (process.dev) { + if (import.meta.dev) { throw new Error('[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/guide/concepts/auto-imports#using-vue-and-nuxt-composables`.') } else { throw new Error('[nuxt] instance unavailable') diff --git a/packages/nuxt/src/app/plugins/router.ts b/packages/nuxt/src/app/plugins/router.ts index ae4ba74952..06c5764c31 100644 --- a/packages/nuxt/src/app/plugins/router.ts +++ b/packages/nuxt/src/app/plugins/router.ts @@ -99,7 +99,7 @@ export default defineNuxtPlugin<{ route: Route, router: Router }>({ name: 'nuxt:router', enforce: 'pre', setup (nuxtApp) { - const initialURL = process.client + const initialURL = import.meta.client ? withoutBase(window.location.pathname, useRuntimeConfig().app.baseURL) + window.location.search + window.location.hash : nuxtApp.ssrContext!.url @@ -138,7 +138,7 @@ export default defineNuxtPlugin<{ route: Route, router: Router }>({ } // Perform navigation Object.assign(route, to) - if (process.client) { + if (import.meta.client) { window.history[replace ? 'replaceState' : 'pushState']({}, '', joinURL(baseURL, to.fullPath)) if (!nuxtApp.isHydrating) { // Clear any existing errors @@ -150,7 +150,7 @@ export default defineNuxtPlugin<{ route: Route, router: Router }>({ await middleware(to, route) } } catch (err) { - if (process.dev && !hooks.error.length) { + if (import.meta.dev && !hooks.error.length) { console.warn('No error handlers registered to handle middleware errors. You can register an error handler with `router.onError()`', err) } for (const handler of hooks.error) { @@ -211,7 +211,7 @@ export default defineNuxtPlugin<{ route: Route, router: Router }>({ } }) - if (process.client) { + if (import.meta.client) { window.addEventListener('popstate', (event) => { const location = (event.target as Window).location router.replace(location.href.replace(location.origin, '')) @@ -235,12 +235,12 @@ export default defineNuxtPlugin<{ route: Route, router: Router }>({ } nuxtApp._processingMiddleware = true - if (process.client || !nuxtApp.ssrContext?.islandContext) { + if (import.meta.client || !nuxtApp.ssrContext?.islandContext) { const middlewareEntries = new Set([...globalMiddleware, ...nuxtApp._middleware.global]) for (const middleware of middlewareEntries) { const result = await nuxtApp.runWithContext(() => middleware(to, from)) - if (process.server) { + if (import.meta.server) { if (result === false || result instanceof Error) { const error = result || createError({ statusCode: 404, diff --git a/packages/nuxt/src/app/types/augments.d.ts b/packages/nuxt/src/app/types/augments.d.ts index d93c85760c..8a6c9c82d8 100644 --- a/packages/nuxt/src/app/types/augments.d.ts +++ b/packages/nuxt/src/app/types/augments.d.ts @@ -1,17 +1,20 @@ import type { NuxtApp, useNuxtApp } from '../nuxt' +interface NuxtStaticBuildFlags { + browser: boolean + client: boolean + dev: boolean + server: boolean + test: boolean +} + declare global { namespace NodeJS { - interface Process { - browser: boolean - client: boolean - dev: boolean - mode: 'spa' | 'universal' - server: boolean - static: boolean - } + interface Process extends NuxtStaticBuildFlags {} } + interface ImportMeta extends NuxtStaticBuildFlags {} + interface Window { __NUXT__?: Record useNuxtApp?: typeof useNuxtApp diff --git a/packages/nuxt/src/core/runtime/nitro/error.ts b/packages/nuxt/src/core/runtime/nitro/error.ts index 22d77781cd..1a0fc62023 100644 --- a/packages/nuxt/src/core/runtime/nitro/error.ts +++ b/packages/nuxt/src/core/runtime/nitro/error.ts @@ -15,7 +15,7 @@ export default async function errorhandler (error: H3Error, statusCode, statusMessage, message, - stack: process.dev && statusCode !== 404 + stack: import.meta.dev && statusCode !== 404 ? `
${stack.map(i => `${i.text}`).join('\n')}
` : '', data: error.data @@ -56,12 +56,12 @@ export default async function errorhandler (error: H3Error, // Fallback to static rendered error page if (!res) { - const { template } = process.dev + const { template } = import.meta.dev // @ts-expect-error TODO: add legacy type support for subpath imports ? await import('@nuxt/ui-templates/templates/error-dev.mjs') // @ts-expect-error TODO: add legacy type support for subpath imports : await import('@nuxt/ui-templates/templates/error-500.mjs') - if (process.dev) { + if (import.meta.dev) { // TODO: Support `message` in template (errorObject as any).description = errorObject.message } diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index da1bcbfd6e..bec792f22f 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -108,7 +108,7 @@ const getSSRRenderer = lazyCachedFunction(async () => { async function renderToString (input: RenderToStringParams[0], context: RenderToStringParams[1]) { const html = await _renderToString(input, context) // In development with vite-node, the manifest is on-demand and will be available after rendering - if (process.dev && process.env.NUXT_VITE_NODE_OPTIONS) { + if (import.meta.dev && process.env.NUXT_VITE_NODE_OPTIONS) { renderer.rendererContext.updateManifest(await getClientManifest()) } return `<${appRootTag} id="${appRootId}">${html}` @@ -155,14 +155,14 @@ const getSPARenderer = lazyCachedFunction(async () => { } }) -const payloadCache = process.env.prerender ? useStorage('internal:nuxt:prerender:payload') : null -const islandCache = process.env.prerender ? useStorage('internal:nuxt:prerender:island') : null -const islandPropCache = process.env.prerender ? useStorage('internal:nuxt:prerender:island-props') : null +const payloadCache = import.meta.prerender ? useStorage('internal:nuxt:prerender:payload') : null +const islandCache = import.meta.prerender ? useStorage('internal:nuxt:prerender:island') : null +const islandPropCache = import.meta.prerender ? useStorage('internal:nuxt:prerender:island-props') : null async function getIslandContext (event: H3Event): Promise { // TODO: Strict validation for url let url = event.node.req.url || '' - if (process.env.prerender && event.node.req.url && await islandPropCache!.hasItem(event.node.req.url)) { + if (import.meta.prerender && event.node.req.url && await islandPropCache!.hasItem(event.node.req.url)) { // rehydrate props from cache so we can rerender island if cache does not have it any more url = await islandPropCache!.getItem(event.node.req.url) as string } @@ -213,7 +213,7 @@ export default defineRenderHandler(async (event): Promise> } @@ -225,7 +225,7 @@ export default defineRenderHandler(async (event): Promise> } } @@ -245,7 +245,7 @@ export default defineRenderHandler(async (event): Promise { - if (process.dev) { + if (import.meta.dev) { const defaultSlot = slots.default?.() if (defaultSlot && (defaultSlot.length > 1 || typeof defaultSlot[0].children !== 'string')) { @@ -217,7 +217,7 @@ export const Style = defineComponent({ const style = { ...props } const textContent = slots.default?.()?.[0]?.children if (textContent) { - if (process.dev && typeof textContent !== 'string') { + if (import.meta.dev && typeof textContent !== 'string') { console.error(' * ``` - * * @type {string | false} */ spaLoadingTemplate: { @@ -249,9 +254,7 @@ export default defineUntypedSchema({ * @note Plugins are also auto-registered from the `~/plugins` directory * and these plugins do not need to be listed in `nuxt.config` unless you * need to customize their order. All plugins are deduplicated by their src path. - * * @see https://nuxt.com/docs/guide/directory-structure/plugins - * * @example * ```js * plugins: [ diff --git a/packages/schema/src/config/build.ts b/packages/schema/src/config/build.ts index 0a9e61841b..16cfccc168 100644 --- a/packages/schema/src/config/build.ts +++ b/packages/schema/src/config/build.ts @@ -16,7 +16,7 @@ export default defineUntypedSchema({ } const map: Record = { vite: '@nuxt/vite-builder', - webpack: '@nuxt/webpack-builder', + webpack: '@nuxt/webpack-builder' } return map[val] || val || (await get('vite') === false ? map.webpack : map.vite) } @@ -36,7 +36,7 @@ export default defineUntypedSchema({ server: true, client: await get('dev') }) - }, + } }, /** @@ -96,7 +96,6 @@ export default defineUntypedSchema({ * } * ] * ``` - * * @type {typeof import('../src/types/nuxt').NuxtTemplate[]} */ templates: [], @@ -113,7 +112,6 @@ export default defineUntypedSchema({ * } * ``` * @type {boolean | typeof import('webpack-bundle-analyzer').BundleAnalyzerPlugin.Options | typeof import('rollup-plugin-visualizer').PluginVisualizerOptions} - * */ analyze: { $resolve: async (val, get) => { @@ -128,7 +126,7 @@ export default defineUntypedSchema({ filename: join(analyzeDir, '{name}.html') } } - }, + } }, /** @@ -147,13 +145,13 @@ export default defineUntypedSchema({ * @type {Array<{ name: string, source?: string | RegExp, argumentLength: number }>} */ keyedComposables: { - $resolve: (val) => [ + $resolve: val => [ { name: 'defineNuxtComponent', argumentLength: 2 }, { name: 'useState', argumentLength: 2 }, { name: 'useFetch', argumentLength: 3 }, { name: 'useAsyncData', argumentLength: 3 }, { name: 'useLazyAsyncData', argumentLength: 3 }, - { name: 'useLazyFetch', argumentLength: 3 }, + { name: 'useLazyFetch', argumentLength: 3 } ].concat(val).filter(Boolean) }, @@ -172,18 +170,22 @@ export default defineUntypedSchema({ composables: { server: { $resolve: async (val, get) => defu(val || {}, - await get('dev') ? {} : { - vue: ['onBeforeMount', 'onMounted', 'onBeforeUpdate', 'onRenderTracked', 'onRenderTriggered', 'onActivated', 'onDeactivated', 'onBeforeUnmount'], - '#app': ['definePayloadReviver', 'definePageMeta'] - } + await get('dev') + ? {} + : { + vue: ['onBeforeMount', 'onMounted', 'onBeforeUpdate', 'onRenderTracked', 'onRenderTriggered', 'onActivated', 'onDeactivated', 'onBeforeUnmount'], + '#app': ['definePayloadReviver', 'definePageMeta'] + } ) }, client: { $resolve: async (val, get) => defu(val || {}, - await get('dev') ? {} : { - vue: ['onServerPrefetch', 'onRenderTracked', 'onRenderTriggered'], - '#app': ['definePayloadReducer', 'definePageMeta'] - } + await get('dev') + ? {} + : { + vue: ['onServerPrefetch', 'onRenderTracked', 'onRenderTriggered'], + '#app': ['definePayloadReducer', 'definePageMeta'] + } ) } } diff --git a/packages/schema/src/config/common.ts b/packages/schema/src/config/common.ts index 80df36c583..4311b63880 100644 --- a/packages/schema/src/config/common.ts +++ b/packages/schema/src/config/common.ts @@ -14,7 +14,6 @@ export default defineUntypedSchema({ * You can use `github:`, `gitlab:`, `bitbucket:` or `https://` to extend from a remote git repository. * * @type {string|string[]} - * */ extends: null, @@ -26,7 +25,6 @@ export default defineUntypedSchema({ * You can use `github:`, `gitlab:`, `bitbucket:` or `https://` to extend from a remote git repository. * * @type {string} - * */ theme: null, @@ -170,7 +168,7 @@ export default defineUntypedSchema({ * */ debug: { - $resolve: async (val, get) => val ?? isDebug + $resolve: val => val ?? isDebug }, /** @@ -178,7 +176,7 @@ export default defineUntypedSchema({ * If set to `false` generated pages will have no content. */ ssr: { - $resolve: (val) => val ?? true, + $resolve: val => val ?? true }, /** @@ -191,7 +189,6 @@ export default defineUntypedSchema({ * (in `node_modules`) and then will be resolved from project `srcDir` if `~` alias is used. * * @note Modules are executed sequentially so the order is important. - * * @example * ```js * modules: [ @@ -252,12 +249,12 @@ export default defineUntypedSchema({ * and copied across into your `dist` folder when your app is generated. */ public: { - $resolve: async (val, get) => val || await get('dir.static') || 'public', + $resolve: async (val, get) => val || await get('dir.static') || 'public' }, static: { $schema: { deprecated: 'use `dir.public` option instead' }, - $resolve: async (val, get) => val || await get('dir.public') || 'public', + $resolve: async (val, get) => val || await get('dir.public') || 'public' } }, @@ -274,11 +271,9 @@ export default defineUntypedSchema({ * * @note Within a webpack context (image sources, CSS - but not JavaScript) you _must_ access * your alias by prefixing it with `~`. - * * @note These aliases will be automatically added to the generated `.nuxt/tsconfig.json` so you can get full * type support and path auto-complete. In case you need to extend options provided by `./.nuxt/tsconfig.json` * further, make sure to add them here or within the `typescript.tsConfig` property in `nuxt.config`. - * * @example * ```js * export default { @@ -309,7 +304,6 @@ export default defineUntypedSchema({ * } * * ``` - * * @type {Record} */ alias: { @@ -328,7 +322,6 @@ export default defineUntypedSchema({ * Pass options directly to `node-ignore` (which is used by Nuxt to ignore files). * * @see [node-ignore](https://github.com/kaelzhang/node-ignore) - * * @example * ```js * ignoreOptions: { @@ -343,7 +336,7 @@ export default defineUntypedSchema({ * building if its filename starts with the prefix specified by `ignorePrefix`. */ ignorePrefix: { - $resolve: (val) => val ?? '-', + $resolve: val => val ?? '-' }, /** @@ -372,7 +365,7 @@ export default defineUntypedSchema({ * @type {Array} */ watch: { - $resolve: val => [].concat(val).filter((b: unknown) => typeof b === 'string' || b instanceof RegExp), + $resolve: val => [].concat(val).filter((b: unknown) => typeof b === 'string' || b instanceof RegExp) }, /** @@ -385,7 +378,7 @@ export default defineUntypedSchema({ * `watchOptions` to pass directly to webpack. * * @see [webpack@4 watch options](https://v4.webpack.js.org/configuration/watch/#watchoptions). - * */ + */ webpack: { aggregateTimeout: 1000 }, @@ -464,7 +457,7 @@ export default defineUntypedSchema({ app: { baseURL: (await get('app')).baseURL, buildAssetsDir: (await get('app')).buildAssetsDir, - cdnURL: (await get('app')).cdnURL, + cdnURL: (await get('app')).cdnURL } }) } diff --git a/packages/schema/src/config/dev.ts b/packages/schema/src/config/dev.ts index 5f46df1949..a9bc37d718 100644 --- a/packages/schema/src/config/dev.ts +++ b/packages/schema/src/config/dev.ts @@ -17,10 +17,7 @@ export default defineUntypedSchema({ * } * }) * ``` - * - * * @type {boolean | { key: string; cert: string }} - * */ https: false, @@ -43,6 +40,6 @@ export default defineUntypedSchema({ * * @type {(data: { loading?: string }) => string} */ - loadingTemplate: loadingTemplate + loadingTemplate } }) diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index 7bfde625e6..77fade2e49 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -6,11 +6,12 @@ export default defineUntypedSchema({ * Set to true to generate an async entry point for the Vue bundle (for module federation support). */ asyncEntry: { - $resolve: (val) => val ?? false + $resolve: val => val ?? false }, /** * Enable Vue's reactivity transform + * * @see https://vuejs.org/guide/extras/reactivity-transform.html * * Warning: Reactivity transform feature has been marked as deprecated in Vue 3.3 and is planned to be @@ -23,12 +24,14 @@ export default defineUntypedSchema({ // https://github.com/unjs/nitro/issues/1118 /** * Externalize `vue`, `@vue/*` and `vue-router` when building. + * * @see https://github.com/nuxt/nuxt/issues/13632 */ externalVue: true, /** * Tree shakes contents of client-only components from server bundle. + * * @see https://github.com/nuxt/framework/pull/5750 */ treeshakeClientOnly: true, @@ -47,7 +50,7 @@ export default defineUntypedSchema({ * @type {false | 'manual' | 'automatic'} */ emitRouteChunkError: { - $resolve: val => { + $resolve: (val) => { if (val === true) { return 'manual' } @@ -55,7 +58,7 @@ export default defineUntypedSchema({ return 'automatic' } return val ?? 'automatic' - }, + } }, /** @@ -113,7 +116,7 @@ export default defineUntypedSchema({ /** * Disable vue server renderer endpoint within nitro. - */ + */ noVueServer: false, /** @@ -148,6 +151,7 @@ export default defineUntypedSchema({ /** * Experimental component islands support with and .island.vue files. + * * @type {true | 'local' | 'local+remote' | false} */ componentIslands: { diff --git a/packages/schema/src/config/generate.ts b/packages/schema/src/config/generate.ts index 2ad0b5ad83..9882e6bb9b 100644 --- a/packages/schema/src/config/generate.ts +++ b/packages/schema/src/config/generate.ts @@ -14,14 +14,13 @@ export default defineUntypedSchema({ * ```js * routes: ['/users/1', '/users/2', '/users/3'] * ``` - * * @type {string | string[]} */ routes: [], /** * This option is no longer used. Instead, use `nitro.prerender.ignore`. - * + * * @deprecated */ exclude: [] diff --git a/packages/schema/src/config/nitro.ts b/packages/schema/src/config/nitro.ts index 5e1a79cb76..359ce18461 100644 --- a/packages/schema/src/config/nitro.ts +++ b/packages/schema/src/config/nitro.ts @@ -5,7 +5,6 @@ export default defineUntypedSchema({ * Configuration for Nitro. * * @see https://nitro.unjs.io/config/ - * * @type {typeof import('nitropack')['NitroConfig']} */ nitro: { @@ -21,9 +20,7 @@ export default defineUntypedSchema({ * Global route options applied to matching server routes. * * @experimental This is an experimental feature and API may change in the future. - * * @see https://nitro.unjs.io/config/#routerules - * * @type {typeof import('nitropack')['NitroConfig']['routeRules']} */ routeRules: {}, @@ -39,16 +36,13 @@ export default defineUntypedSchema({ * - lazy: Specifies whether to use lazy loading to import the handler. * * @see https://nuxt.com/docs/guide/directory-structure/server - * * @note Files from `server/api`, `server/middleware` and `server/routes` will be automatically registered by Nuxt. - * * @example * ```js * serverHandlers: [ * { route: '/path/foo/**:name', handler: '~/server/foohandler.ts' } * ] * ``` - * * @type {typeof import('nitropack')['NitroEventHandler'][]} */ serverHandlers: [], @@ -57,7 +51,6 @@ export default defineUntypedSchema({ * Nitro development-only server handlers. * * @see https://nitro.unjs.io/guide/routing - * * @type {typeof import('nitropack')['NitroDevEventHandler'][]} */ devServerHandlers: [] diff --git a/packages/schema/src/config/postcss.ts b/packages/schema/src/config/postcss.ts index ee9439724e..29effcd4dd 100644 --- a/packages/schema/src/config/postcss.ts +++ b/packages/schema/src/config/postcss.ts @@ -8,6 +8,7 @@ export default defineUntypedSchema({ * Options for configuring PostCSS plugins. * * https://postcss.org/ + * * @type {Record} */ plugins: { @@ -15,16 +16,18 @@ export default defineUntypedSchema({ * https://github.com/postcss/postcss-import */ 'postcss-import': { - $resolve: async (val, get) => val !== false ? defu(val || {}, { - resolve: createResolver({ - alias: { ...(await get('alias')) }, - modules: [ - await get('srcDir'), - await get('rootDir'), - ...(await get('modulesDir')) - ] + $resolve: async (val, get) => val !== false + ? defu(val || {}, { + resolve: createResolver({ + alias: { ...(await get('alias')) }, + modules: [ + await get('srcDir'), + await get('rootDir'), + ...(await get('modulesDir')) + ] + }) }) - }) : val, + : val }, /** diff --git a/packages/schema/src/config/router.ts b/packages/schema/src/config/router.ts index 3f10c1ceb0..279a609c87 100644 --- a/packages/schema/src/config/router.ts +++ b/packages/schema/src/config/router.ts @@ -11,7 +11,6 @@ export default defineUntypedSchema({ * * @see [documentation](https://router.vuejs.org/api/interfaces/routeroptions.html). * @type {typeof import('../src/types/router').RouterConfigSerializable} - * */ options: {} } diff --git a/packages/schema/src/config/typescript.ts b/packages/schema/src/config/typescript.ts index 5bf18adc5e..29b7886eda 100644 --- a/packages/schema/src/config/typescript.ts +++ b/packages/schema/src/config/typescript.ts @@ -24,7 +24,7 @@ export default defineUntypedSchema({ * @type {'vite' | 'webpack' | 'shared' | false | undefined} */ builder: { - $resolve: async (val, get) => val ?? null + $resolve: val => val ?? null }, /** @@ -39,13 +39,13 @@ export default defineUntypedSchema({ * Requires to install `typescript` and `vue-tsc` as dev dependencies. * * @see https://nuxt.com/docs/guide/concepts/typescript - * * @type {boolean | 'build'} */ typeCheck: false, /** * You can extend generated `.nuxt/tsconfig.json` using this option. + * * @type {typeof import('pkg-types')['TSConfig']} */ tsConfig: {}, diff --git a/packages/schema/src/config/vite.ts b/packages/schema/src/config/vite.ts index a991a654a2..1d6defd7ac 100644 --- a/packages/schema/src/config/vite.ts +++ b/packages/schema/src/config/vite.ts @@ -48,11 +48,11 @@ export default defineUntypedSchema({ }, script: { propsDestructure: { - $resolve: async (val, get) => val ?? Boolean((await get('vue')).propsDestructure), + $resolve: async (val, get) => val ?? Boolean((await get('vue')).propsDestructure) }, defineModel: { - $resolve: async (val, get) => val ?? Boolean((await get('vue')).defineModel), - }, + $resolve: async (val, get) => val ?? Boolean((await get('vue')).defineModel) + } } }, vueJsx: { diff --git a/packages/schema/src/config/webpack.ts b/packages/schema/src/config/webpack.ts index 4621e5909d..f8938ddda6 100644 --- a/packages/schema/src/config/webpack.ts +++ b/packages/schema/src/config/webpack.ts @@ -65,7 +65,6 @@ export default defineUntypedSchema({ * Extracting into multiple CSS files is better for caching and preload isolation. It * can also improve page performance by downloading and resolving only those resources * that are needed. - * * @example * ```js * export default { @@ -113,14 +112,12 @@ export default defineUntypedSchema({ * as most browsers will cache the asset and not detect the changes on first load. * * This example changes fancy chunk names to numerical ids: - * * @example * ```js * filenames: { * chunk: ({ isDev }) => (isDev ? '[name].js' : '[id].[contenthash].js') * } * ``` - * * @type { * Record< * string, @@ -140,8 +137,8 @@ export default defineUntypedSchema({ * } */ filenames: { - app: ({ isDev }: { isDev: boolean }) => isDev ? `[name].js` : `[contenthash:7].js`, - chunk: ({ isDev }: { isDev: boolean }) => isDev ? `[name].js` : `[contenthash:7].js`, + app: ({ isDev }: { isDev: boolean }) => isDev ? '[name].js' : '[contenthash:7].js', + chunk: ({ isDev }: { isDev: boolean }) => isDev ? '[name].js' : '[contenthash:7].js', css: ({ isDev }: { isDev: boolean }) => isDev ? '[name].css' : 'css/[contenthash:7].css', img: ({ isDev }: { isDev: boolean }) => isDev ? '[path][name].[ext]' : 'img/[name].[contenthash:7].[ext]', font: ({ isDev }: { isDev: boolean }) => isDev ? '[path][name].[ext]' : 'fonts/[name].[contenthash:7].[ext]', @@ -168,14 +165,15 @@ export default defineUntypedSchema({ /** * See https://github.com/esbuild-kit/esbuild-loader + * * @type {Omit} - */ + */ esbuild: {}, /** * See: https://github.com/webpack-contrib/file-loader#options - * @type {Omit} * + * @type {Omit} * @default * ```ts * { esModule: false } @@ -185,8 +183,8 @@ export default defineUntypedSchema({ /** * See: https://github.com/webpack-contrib/file-loader#options - * @type {Omit} * + * @type {Omit} * @default * ```ts * { esModule: false, limit: 1000 } @@ -196,8 +194,8 @@ export default defineUntypedSchema({ /** * See: https://github.com/webpack-contrib/file-loader#options - * @type {Omit} * + * @type {Omit} * @default * ```ts * { esModule: false, limit: 1000 } @@ -207,12 +205,14 @@ export default defineUntypedSchema({ /** * See: https://pugjs.org/api/reference.html#options + * * @type {typeof import('pug')['Options']} */ pugPlain: {}, /** * See [vue-loader](https://github.com/vuejs/vue-loader) for available options. + * * @type {Partial} */ vue: { @@ -224,13 +224,13 @@ export default defineUntypedSchema({ }, compilerOptions: { $resolve: async (val, get) => val ?? (await get('vue.compilerOptions')) }, propsDestructure: { $resolve: async (val, get) => val ?? Boolean(await get('vue.propsDestructure')) }, - defineModel: { $resolve: async (val, get) => val ?? Boolean(await get('vue.defineModel')) }, + defineModel: { $resolve: async (val, get) => val ?? Boolean(await get('vue.defineModel')) } }, css: { importLoaders: 0, url: { - filter: (url: string, resourcePath: string) => !url.startsWith('/'), + filter: (url: string, _resourcePath: string) => !url.startsWith('/') }, esModule: false }, @@ -238,7 +238,7 @@ export default defineUntypedSchema({ cssModules: { importLoaders: 0, url: { - filter: (url: string, resourcePath: string) => !url.startsWith('/'), + filter: (url: string, _resourcePath: string) => !url.startsWith('/') }, esModule: false, modules: { @@ -253,8 +253,8 @@ export default defineUntypedSchema({ /** * See: https://github.com/webpack-contrib/sass-loader#options + * * @type {typeof import('sass-loader')['Options']} - * * @default * ```ts * { @@ -272,6 +272,7 @@ export default defineUntypedSchema({ /** * See: https://github.com/webpack-contrib/sass-loader#options + * * @type {typeof import('sass-loader')['Options']} */ scss: {}, @@ -312,7 +313,6 @@ export default defineUntypedSchema({ * Defaults to true when `extractCSS` is enabled. * * @see [css-minimizer-webpack-plugin documentation](https://github.com/webpack-contrib/css-minimizer-webpack-plugin). - * * @type {false | typeof import('css-minimizer-webpack-plugin').BasePluginOptions & typeof import('css-minimizer-webpack-plugin').DefinedDefaultMinimizerAndOptions} */ optimizeCSS: { @@ -321,6 +321,7 @@ export default defineUntypedSchema({ /** * Configure [webpack optimization](https://webpack.js.org/configuration/optimization/). + * * @type {false | typeof import('webpack').Configuration['optimization']} */ optimization: { @@ -350,11 +351,12 @@ export default defineUntypedSchema({ plugins: { $resolve: async (val, get) => val ?? (await get('postcss.plugins')) } - }, + } }, /** * See [webpack-dev-middleware](https://github.com/webpack/webpack-dev-middleware) for available options. + * * @type {typeof import('webpack-dev-middleware').Options} */ devMiddleware: { @@ -363,6 +365,7 @@ export default defineUntypedSchema({ /** * See [webpack-hot-middleware](https://github.com/webpack-contrib/webpack-hot-middleware) for available options. + * * @type {typeof import('webpack-hot-middleware').MiddlewareOptions & { client?: typeof import('webpack-hot-middleware').ClientOptions }} */ hotMiddleware: {}, @@ -374,12 +377,14 @@ export default defineUntypedSchema({ /** * Filters to hide build warnings. + * * @type {Array<(warn: typeof import('webpack').WebpackError) => boolean>} */ warningIgnoreFilters: [], /** * Configure [webpack experiments](https://webpack.js.org/configuration/experiments/) + * * @type {false | typeof import('webpack').Configuration['experiments']} */ experiments: {} diff --git a/packages/schema/src/index.ts b/packages/schema/src/index.ts index 8178924cfb..eebdb6e56b 100644 --- a/packages/schema/src/index.ts +++ b/packages/schema/src/index.ts @@ -1,4 +1,3 @@ - // Types export * from './types/compatibility' export * from './types/components' diff --git a/packages/schema/src/types/compatibility.ts b/packages/schema/src/types/compatibility.ts index dabc01b1f0..63fe1d7fd9 100644 --- a/packages/schema/src/types/compatibility.ts +++ b/packages/schema/src/types/compatibility.ts @@ -3,7 +3,6 @@ export interface NuxtCompatibility { * Required nuxt version in semver format. * * @example `^2.14.0` or `>=3.0.0-27219851.6e49637`. - * */ nuxt?: string @@ -12,7 +11,7 @@ export interface NuxtCompatibility { * * - `true`: When using Nuxt 2, using bridge module is required. * - `false`: When using Nuxt 2, using bridge module is not supported. - */ + */ bridge?: boolean } diff --git a/packages/schema/src/types/config.ts b/packages/schema/src/types/config.ts index a3ae4a3650..cdfd08a68b 100644 --- a/packages/schema/src/types/config.ts +++ b/packages/schema/src/types/config.ts @@ -1,12 +1,12 @@ import type { KeepAliveProps, TransitionProps } from 'vue' -import type { ConfigSchema } from '../../schema/config' import type { ServerOptions as ViteServerOptions, UserConfig as ViteUserConfig } from 'vite' import type { Options as VuePluginOptions } from '@vitejs/plugin-vue' import type { Options as VueJsxPluginOptions } from '@vitejs/plugin-vue-jsx' -import type { AppHeadMetaObject } from './head' -import type { Nuxt } from './nuxt' import type { SchemaDefinition } from 'untyped' import type { NitroRuntimeConfig, NitroRuntimeConfigApp } from 'nitropack' +import type { ConfigSchema } from '../../schema/config' +import type { Nuxt } from './nuxt' +import type { AppHeadMetaObject } from './head' export type { SchemaDefinition } from 'untyped' type DeepPartial = T extends Function ? T : T extends Record ? { [P in keyof T]?: DeepPartial } : T @@ -63,22 +63,35 @@ type Overrideable, Path extends string = ''> = { : never } -/** User configuration in `nuxt.config` file */ -export interface NuxtConfig extends DeepPartial> { - // Avoid DeepPartial for vite config interface (#4772) - vite?: ConfigSchema['vite'] - runtimeConfig?: Overrideable - webpack?: DeepPartial & { - $client?: DeepPartial - $server?: DeepPartial - } +// Runtime Config - /** - * Experimental custom config schema - * - * @see https://github.com/nuxt/nuxt/issues/15592 - */ - $schema?: SchemaDefinition +type RuntimeConfigNamespace = Record + +export interface PublicRuntimeConfig extends RuntimeConfigNamespace { } + +export interface RuntimeConfig extends RuntimeConfigNamespace { + app: NitroRuntimeConfigApp + /** Only available on the server. */ + nitro?: NitroRuntimeConfig['nitro'] + public: PublicRuntimeConfig +} + +// User configuration in `nuxt.config` file +export interface NuxtConfig extends DeepPartial> { + // Avoid DeepPartial for vite config interface (#4772) + vite?: ConfigSchema['vite'] + runtimeConfig?: Overrideable + webpack?: DeepPartial & { + $client?: DeepPartial + $server?: DeepPartial + } + + /** + * Experimental custom config schema + * + * @see https://github.com/nuxt/nuxt/issues/15592 + */ + $schema?: SchemaDefinition } // TODO: Expose ConfigLayer from c12 @@ -92,7 +105,11 @@ export type NuxtConfigLayer = ConfigLayer -/** Normalized Nuxt options available as `nuxt.options.*` */ +export interface NuxtBuilder { + bundle: (nuxt: Nuxt) => Promise +} + +// Normalized Nuxt options available as `nuxt.options.*` export interface NuxtOptions extends Omit { sourcemap: Required> builder: '@nuxt/vite-builder' | '@nuxt/webpack-builder' | NuxtBuilder @@ -104,27 +121,26 @@ export interface NuxtOptions extends Omit { $schema: SchemaDefinition } -export interface NuxtBuilder { - bundle: (nuxt: Nuxt) => Promise -} - export interface ViteConfig extends Omit { /** The path to the entrypoint for the Vite build. */ entry?: string /** * Options passed to @vitejs/plugin-vue. + * * @see https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue */ vue?: VuePluginOptions /** * Options passed to @vitejs/plugin-vue-jsx. + * * @see https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue-jsx */ vueJsx?: VueJsxPluginOptions /** * Bundler for dev time server-side rendering. + * * @default 'vite-node' */ devBundler?: 'vite-node' | 'legacy' @@ -148,22 +164,7 @@ export interface ViteConfig extends Omit { publicDir?: never } - -// -- Runtime Config -- - -type RuntimeConfigNamespace = Record - -export interface PublicRuntimeConfig extends RuntimeConfigNamespace { } - -export interface RuntimeConfig extends RuntimeConfigNamespace { - app: NitroRuntimeConfigApp - /** Only available on the server. */ - nitro?: NitroRuntimeConfig['nitro'] - public: PublicRuntimeConfig -} - -// -- App Config -- - +// App Config export interface CustomAppConfig { [key: string]: unknown } diff --git a/packages/schema/src/types/hooks.ts b/packages/schema/src/types/hooks.ts index 6bd5fc3a91..99d727939b 100644 --- a/packages/schema/src/types/hooks.ts +++ b/packages/schema/src/types/hooks.ts @@ -1,17 +1,17 @@ -import type { TSConfig } from 'pkg-types' import type { Server as HttpServer } from 'node:http' import type { Server as HttpsServer } from 'node:https' +import type { TSConfig } from 'pkg-types' import type { ViteDevServer } from 'vite' import type { Manifest } from 'vue-bundle-renderer' import type { EventHandler } from 'h3' import type { Import, InlinePreset, Unimport } from 'unimport' import type { Compiler, Configuration, Stats } from 'webpack' -import type { Nuxt, NuxtApp, ResolvedNuxtTemplate } from './nuxt' import type { Nitro, NitroConfig } from 'nitropack' -import type { Component, ComponentsOptions } from './components' -import type { NuxtCompatibility, NuxtCompatibilityIssues, ViteConfig } from '..' import type { Schema, SchemaDefinition } from 'untyped' import type { RouteLocationRaw } from 'vue-router' +import type { NuxtCompatibility, NuxtCompatibilityIssues, ViteConfig } from '..' +import type { Component, ComponentsOptions } from './components' +import type { Nuxt, NuxtApp, ResolvedNuxtTemplate } from './nuxt' export type HookResult = Promise | void @@ -65,6 +65,7 @@ export interface NuxtHooks { // Kit /** * Allows extending compatibility checks. + * * @param compatibility Compatibility object * @param issues Issues to be mapped * @returns Promise @@ -74,18 +75,21 @@ export interface NuxtHooks { // Nuxt /** * Called after Nuxt initialization, when the Nuxt instance is ready to work. + * * @param nuxt The configured Nuxt object * @returns Promise */ 'ready': (nuxt: Nuxt) => HookResult /** * Called when Nuxt instance is gracefully closing. + * * @param nuxt The configured Nuxt object * @returns Promise */ 'close': (nuxt: Nuxt) => HookResult /** * Called to restart the current Nuxt instance. + * * @returns Promise */ 'restart': (options?: { @@ -97,29 +101,34 @@ export interface NuxtHooks { /** * Called during Nuxt initialization, before installing user modules. + * * @returns Promise */ 'modules:before': () => HookResult /** * Called during Nuxt initialization, after installing user modules. + * * @returns Promise */ 'modules:done': () => HookResult /** * Called after resolving the `app` instance. + * * @param app The resolved `NuxtApp` object * @returns Promise */ 'app:resolve': (app: NuxtApp) => HookResult /** * Called during `NuxtApp` generation, to allow customizing, modifying or adding new files to the build directory (either virtually or to written to `.nuxt`). + * * @param app The configured `NuxtApp` object * @returns Promise */ 'app:templates': (app: NuxtApp) => HookResult /** * Called after templates are compiled into the [virtual file system](https://nuxt.com/docs/guide/directory-structure/nuxt#virtual-file-system) (vfs). + * * @param app The configured `NuxtApp` object * @returns Promise */ @@ -127,16 +136,19 @@ export interface NuxtHooks { /** * Called before Nuxt bundle builder. + * * @returns Promise */ 'build:before': () => HookResult /** * Called after Nuxt bundle builder is complete. + * * @returns Promise */ 'build:done': () => HookResult /** * Called during the manifest build by Vite and Webpack. This allows customizing the manifest that Nitro will use to render ` diff --git a/test/fixtures/basic/pages/suspense/sync-[parent].vue b/test/fixtures/basic/pages/suspense/sync-[parent].vue index 789d5f9964..469ed00aa1 100644 --- a/test/fixtures/basic/pages/suspense/sync-[parent].vue +++ b/test/fixtures/basic/pages/suspense/sync-[parent].vue @@ -1,5 +1,5 @@ diff --git a/test/fixtures/basic/pages/suspense/sync-[parent]/async-[child].vue b/test/fixtures/basic/pages/suspense/sync-[parent]/async-[child].vue index 59be7ae2e4..c0173f4571 100644 --- a/test/fixtures/basic/pages/suspense/sync-[parent]/async-[child].vue +++ b/test/fixtures/basic/pages/suspense/sync-[parent]/async-[child].vue @@ -1,8 +1,8 @@ diff --git a/test/fixtures/basic/pages/suspense/sync-[parent]/sync-[child].vue b/test/fixtures/basic/pages/suspense/sync-[parent]/sync-[child].vue index 01b99c0189..f4a3de478a 100644 --- a/test/fixtures/basic/pages/suspense/sync-[parent]/sync-[child].vue +++ b/test/fixtures/basic/pages/suspense/sync-[parent]/sync-[child].vue @@ -1,5 +1,5 @@ From eff05e1d467730fd73c971d5433f95ad4a2dd506 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 15 Aug 2023 08:11:11 +0100 Subject: [PATCH 685/912] ci: try another way to disable semantic validation of release prs --- .github/workflows/semantic-pull-requests.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/semantic-pull-requests.yml b/.github/workflows/semantic-pull-requests.yml index dde007e107..d000f52cbd 100644 --- a/.github/workflows/semantic-pull-requests.yml +++ b/.github/workflows/semantic-pull-requests.yml @@ -6,8 +6,6 @@ on: - opened - edited - synchronize - branches-ignore: - - "v[0-9]*" permissions: contents: read @@ -17,7 +15,7 @@ jobs: permissions: pull-requests: read # for amannn/action-semantic-pull-request to analyze PRs statuses: write # for amannn/action-semantic-pull-request to mark status of analyzed PR - if: github.repository == 'nuxt/nuxt' + if: github.repository == 'nuxt/nuxt' && !startsWith(github.head_ref, 'v') runs-on: ubuntu-latest name: Semantic pull request steps: From 33389dc4e0fcd2014713c6d2737cb9c286a93b39 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 15 Aug 2023 10:45:28 +0100 Subject: [PATCH 686/912] =?UTF-8?q?ci:=20bump=20timeout=20minutes=20for=20?= =?UTF-8?q?windows=20fixtures=20=F0=9F=99=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b4ae7c1492..23debe49f9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -175,7 +175,7 @@ jobs: - env: 'dev' builder: 'webpack' - timeout-minutes: 10 + timeout-minutes: 15 steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 From a522f1ee3a75c88f2ed41a52250bd445d55d7011 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 15 Aug 2023 10:48:57 +0100 Subject: [PATCH 687/912] fix(nuxi): ignore error if nitro is not enabled on bridge (#22642) --- packages/nuxi/package.json | 1 + packages/nuxi/src/commands/build.ts | 9 +++++++-- pnpm-lock.yaml | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 54c7ee4e93..2f166704cb 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -41,6 +41,7 @@ "listhen": "1.3.0", "mlly": "1.4.0", "mri": "1.2.0", + "nitropack": "^2.5.2", "ohash": "1.1.3", "pathe": "1.1.1", "perfect-debounce": "1.0.0", diff --git a/packages/nuxi/src/commands/build.ts b/packages/nuxi/src/commands/build.ts index e87a22f546..c41f7e668c 100644 --- a/packages/nuxi/src/commands/build.ts +++ b/packages/nuxi/src/commands/build.ts @@ -1,5 +1,6 @@ import { relative, resolve } from 'pathe' import { consola } from 'consola' +import type { Nitro } from 'nitropack' // we are deliberately inlining this code as a backup in case user has `@nuxt/schema<3.7` import { writeTypes as writeTypesLegacy } from '../../../kit/src/template' @@ -38,8 +39,12 @@ export default defineNuxtCommand({ } }) - // Use ? for backward compatibility for Nuxt <= RC.10 - const nitro = useNitro?.() + let nitro: Nitro | undefined + // In Bridge, if nitro is not enabled, useNitro will throw an error + try { + // Use ? for backward compatibility for Nuxt <= RC.10 + nitro = useNitro?.() + } catch {} await clearBuildDir(nuxt.options.buildDir) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed92885800..3ec02abb95 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -316,6 +316,9 @@ importers: mri: specifier: 1.2.0 version: 1.2.0 + nitropack: + specifier: ^2.5.2 + version: 2.5.2 ohash: specifier: 1.1.3 version: 1.1.3 From aa111330bb4712c65d04c45cba1196f8db6571ee Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 10:56:35 +0100 Subject: [PATCH 688/912] chore(deps): update all non-major dependencies (main) (#22640) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- .github/workflows/dependency-review.yml | 2 +- package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 50 +++++++++---------------- test/bundle.test.ts | 4 +- 9 files changed, 27 insertions(+), 41 deletions(-) diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 3052aec7db..072a9ae47c 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -19,4 +19,4 @@ jobs: - name: 'Checkout Repository' uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - name: 'Dependency Review' - uses: actions/dependency-review-action@7d90b4f05fea31dde1c4a1fb3fa787e197ea93ab # v3.0.7 + uses: actions/dependency-review-action@f6fff72a3217f580d5afd49a46826795305b63c7 # v3.0.8 diff --git a/package.json b/package.json index 2fbfdb195a..004f327be3 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "execa": "7.2.0", "fs-extra": "11.1.1", "globby": "13.2.2", - "h3": "1.7.1", + "h3": "1.8.0", "happy-dom": "10.9.0", "jiti": "1.19.1", "markdownlint-cli": "^0.33.0", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 2f166704cb..3b6aedf9b8 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -36,7 +36,7 @@ "execa": "7.2.0", "flat": "5.0.2", "giget": "1.1.2", - "h3": "1.7.1", + "h3": "1.8.0", "jiti": "1.19.1", "listhen": "1.3.0", "mlly": "1.4.0", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 35017bce78..e53991f3e0 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -74,7 +74,7 @@ "estree-walker": "^3.0.3", "fs-extra": "^11.1.1", "globby": "^13.2.2", - "h3": "^1.7.1", + "h3": "^1.8.0", "hookable": "^5.5.3", "jiti": "^1.19.1", "klona": "^2.0.6", diff --git a/packages/schema/package.json b/packages/schema/package.json index 993be27ddb..8623ae2475 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -35,7 +35,7 @@ "@vitejs/plugin-vue-jsx": "3.0.1", "@vue/compiler-core": "3.3.4", "esbuild-loader": "4.0.0", - "h3": "1.7.1", + "h3": "1.8.0", "ignore": "5.2.4", "nitropack": "2.5.2", "unbuild": "latest", diff --git a/packages/vite/package.json b/packages/vite/package.json index d928caee6f..d93e0e739d 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -41,7 +41,7 @@ "externality": "^1.0.2", "fs-extra": "^11.1.1", "get-port-please": "^3.0.1", - "h3": "^1.7.1", + "h3": "^1.8.0", "knitwork": "^1.0.0", "magic-string": "^0.30.2", "mlly": "^1.4.0", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 4fc9aeac3c..517154231c 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -32,7 +32,7 @@ "file-loader": "^6.2.0", "fork-ts-checker-webpack-plugin": "^8.0.0", "fs-extra": "^11.1.1", - "h3": "^1.7.1", + "h3": "^1.8.0", "hash-sum": "^2.0.0", "lodash-es": "^4.17.21", "magic-string": "^0.30.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3ec02abb95..11a25681a2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -81,8 +81,8 @@ importers: specifier: 13.2.2 version: 13.2.2 h3: - specifier: 1.7.1 - version: 1.7.1 + specifier: 1.8.0 + version: 1.8.0 happy-dom: specifier: 10.9.0 version: 10.9.0 @@ -302,8 +302,8 @@ importers: specifier: 1.1.2 version: 1.1.2 h3: - specifier: 1.7.1 - version: 1.7.1 + specifier: 1.8.0 + version: 1.8.0 jiti: specifier: 1.19.1 version: 1.19.1 @@ -416,8 +416,8 @@ importers: specifier: ^13.2.2 version: 13.2.2 h3: - specifier: ^1.7.1 - version: 1.7.1 + specifier: ^1.8.0 + version: 1.8.0 hookable: specifier: ^5.5.3 version: 5.5.3 @@ -598,8 +598,8 @@ importers: specifier: 4.0.0 version: 4.0.0(webpack@5.88.2) h3: - specifier: 1.7.1 - version: 1.7.1 + specifier: 1.8.0 + version: 1.8.0 ignore: specifier: 5.2.4 version: 5.2.4 @@ -728,8 +728,8 @@ importers: specifier: ^3.0.1 version: 3.0.1 h3: - specifier: ^1.7.1 - version: 1.7.1 + specifier: ^1.8.0 + version: 1.8.0 knitwork: specifier: ^1.0.0 version: 1.0.0 @@ -849,8 +849,8 @@ importers: specifier: ^11.1.1 version: 11.1.1 h3: - specifier: ^1.7.1 - version: 1.7.1 + specifier: ^1.8.0 + version: 1.8.0 hash-sum: specifier: ^2.0.0 version: 2.0.0 @@ -6338,19 +6338,8 @@ packages: dependencies: duplexer: 0.1.2 - /h3@1.7.1: - resolution: {integrity: sha512-A9V2NEDNHet7v1gCg7CMwerSigLi0SRbhTy7C3lGb0N4YKIpPmLDjedTUopqp4dnn7COHfqUjjaz3zbtz4QduA==} - dependencies: - cookie-es: 1.0.0 - defu: 6.1.2 - destr: 2.0.1 - iron-webcrypto: 0.7.1 - radix3: 1.0.1 - ufo: 1.2.0 - uncrypto: 0.1.3 - - /h3@1.8.0-rc.3: - resolution: {integrity: sha512-NhDCNXhrJkt42BDQF57787yXJa2eX2Hl4OMlu+Ym9QBdBaOByUjBrovYaBc+27mtIhHvs2IqPf56to8qcNBI7Q==} + /h3@1.8.0: + resolution: {integrity: sha512-057VY83X7Tg5n4XU2GV9M3dsCWUU4jtw2Lc/r4GjAcf9Jb6GI1mD5F8TCQHUcvLMEgtx6lbfobOFu7Vdmejihg==} dependencies: cookie-es: 1.0.0 defu: 6.1.2 @@ -6672,9 +6661,6 @@ packages: transitivePeerDependencies: - supports-color - /iron-webcrypto@0.7.1: - resolution: {integrity: sha512-K/UmlEhPCPXEHV5hAtH5C0tI5JnFuOrv4yO/j7ODPl3HaiiHBLbOLTde+ieUaAyfCATe4LoAnclyF+hmSCOVmQ==} - /iron-webcrypto@0.8.0: resolution: {integrity: sha512-gScdcWHjTGclCU15CIv2r069NoQrys1UeUFFfaO1hL++ytLHkVw7N5nXJmFf3J2LEDMz1PkrvC0m62JEeu1axQ==} @@ -7249,7 +7235,7 @@ packages: consola: 3.2.3 defu: 6.1.2 get-port-please: 3.0.1 - h3: 1.8.0-rc.3 + h3: 1.8.0 http-shutdown: 1.2.2 jiti: 1.19.1 mlly: 1.4.0 @@ -8120,7 +8106,7 @@ packages: fs-extra: 11.1.1 globby: 13.2.2 gzip-size: 7.0.0 - h3: 1.7.1 + h3: 1.8.0 hookable: 5.5.3 http-graceful-shutdown: 3.1.13 http-proxy: 1.18.1 @@ -10726,7 +10712,7 @@ packages: anymatch: 3.1.3 chokidar: 3.5.3 destr: 2.0.1 - h3: 1.7.1 + h3: 1.8.0 ioredis: 5.3.2 listhen: 1.3.0 lru-cache: 10.0.0 @@ -11020,7 +11006,7 @@ packages: '@vue/test-utils': 2.4.1(vue@3.3.4) defu: 6.1.2 estree-walker: 3.0.3 - h3: 1.7.1 + h3: 1.8.0 happy-dom: 10.9.0 magic-string: 0.30.2 ofetch: 1.1.1 diff --git a/test/bundle.test.ts b/test/bundle.test.ts index a7af0143f9..4f6f9c6f27 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -35,7 +35,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"64.6k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2335k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2351k"') const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -95,7 +95,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"370k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"597k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"613k"') const packages = modules.files .filter(m => m.endsWith('package.json')) From 929dba4b229a7e35773b614924871ba36d42caac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 15 Aug 2023 13:56:25 +0100 Subject: [PATCH 689/912] chore(deps): pin devdependency nitropack to 2.5.2 (main) (#22644) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- packages/nuxi/package.json | 2 +- pnpm-lock.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 3b6aedf9b8..ed5c831a29 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -41,7 +41,7 @@ "listhen": "1.3.0", "mlly": "1.4.0", "mri": "1.2.0", - "nitropack": "^2.5.2", + "nitropack": "2.5.2", "ohash": "1.1.3", "pathe": "1.1.1", "perfect-debounce": "1.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 11a25681a2..834915c98d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -317,7 +317,7 @@ importers: specifier: 1.2.0 version: 1.2.0 nitropack: - specifier: ^2.5.2 + specifier: 2.5.2 version: 2.5.2 ohash: specifier: 1.1.3 From 28e4cc298c173af2fd44488a771ed7022843eb9a Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Wed, 16 Aug 2023 11:25:07 +0300 Subject: [PATCH 690/912] fix(nuxt): remove experimental hash hydration (#22648) --- packages/nuxt/src/head/module.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/packages/nuxt/src/head/module.ts b/packages/nuxt/src/head/module.ts index 6fefe08d7b..9131c015ce 100644 --- a/packages/nuxt/src/head/module.ts +++ b/packages/nuxt/src/head/module.ts @@ -60,13 +60,8 @@ export default defineNuxtModule({ if (!nuxt.options.experimental.headNext) { return 'export default []' } - // TODO don't use HashHydrationPlugin for SPA - return `import { CapoPlugin, HashHydrationPlugin } from '@unhead/vue' -const plugins = [HashHydrationPlugin()]; -if (process.server) { - plugins.push(CapoPlugin({ track: true })); -} -export default plugins;` + return `import { CapoPlugin } from '@unhead/vue'; +export default process.server ? [CapoPlugin({ track: true })] : [];` } }) From f0cc9236098e13eb8098e351a74df67c71710e2a Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Wed, 16 Aug 2023 16:16:06 +0200 Subject: [PATCH 691/912] fix(nuxt): correct revive payload data type (#22667) --- packages/nuxt/src/app/composables/payload.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/composables/payload.ts b/packages/nuxt/src/app/composables/payload.ts index 1cff4e8a36..7d0e782dc9 100644 --- a/packages/nuxt/src/app/composables/payload.ts +++ b/packages/nuxt/src/app/composables/payload.ts @@ -122,7 +122,7 @@ export function definePayloadReducer ( */ export function definePayloadReviver ( name: string, - revive: (data: string) => any | undefined + revive: (data: any) => any | undefined ) { if (import.meta.dev && getCurrentInstance()) { console.warn('[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.') From e04596ad2e884f7cae454e1ee2b2b6905a884af8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Aug 2023 17:39:02 +0200 Subject: [PATCH 692/912] chore(deps): update all non-major dependencies (main) (#22647) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- package.json | 2 +- packages/nuxt/package.json | 8 +- packages/schema/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 445 +++++++++++++++++----------------- test/bundle.test.ts | 4 +- 7 files changed, 233 insertions(+), 232 deletions(-) diff --git a/package.json b/package.json index 004f327be3..7ec4c084e5 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "fs-extra": "11.1.1", "globby": "13.2.2", "h3": "1.8.0", - "happy-dom": "10.9.0", + "happy-dom": "10.10.0", "jiti": "1.19.1", "markdownlint-cli": "^0.33.0", "nitropack": "2.5.2", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index e53991f3e0..fda74cfb34 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -58,9 +58,9 @@ "@nuxt/telemetry": "^2.4.1", "@nuxt/ui-templates": "^1.3.1", "@nuxt/vite-builder": "workspace:../vite", - "@unhead/dom": "^1.3.3", - "@unhead/ssr": "^1.3.3", - "@unhead/vue": "^1.3.3", + "@unhead/dom": "^1.3.4", + "@unhead/ssr": "^1.3.4", + "@unhead/vue": "^1.3.4", "@vue/shared": "^3.3.4", "acorn": "8.10.0", "c12": "^1.4.2", @@ -83,7 +83,7 @@ "mlly": "^1.4.0", "nitropack": "^2.5.2", "nuxi": "workspace:../nuxi", - "nypm": "^0.2.2", + "nypm": "^0.3.0", "ofetch": "^1.1.1", "ohash": "^1.1.3", "pathe": "^1.1.1", diff --git a/packages/schema/package.json b/packages/schema/package.json index 8623ae2475..f8a36d43a8 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -30,7 +30,7 @@ "@types/file-loader": "5.0.1", "@types/pug": "2.0.6", "@types/sass-loader": "8.0.5", - "@unhead/schema": "1.3.3", + "@unhead/schema": "1.3.4", "@vitejs/plugin-vue": "4.2.3", "@vitejs/plugin-vue-jsx": "3.0.1", "@vue/compiler-core": "3.3.4", diff --git a/packages/vite/package.json b/packages/vite/package.json index d93e0e739d..0142ec9d1b 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -49,7 +49,7 @@ "pathe": "^1.1.1", "perfect-debounce": "^1.0.0", "pkg-types": "^1.0.3", - "postcss": "^8.4.27", + "postcss": "^8.4.28", "postcss-import": "^15.1.0", "postcss-url": "^10.1.3", "rollup-plugin-visualizer": "^5.9.2", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 517154231c..e2b3e4062c 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -42,7 +42,7 @@ "ohash": "^1.1.3", "pathe": "^1.1.1", "pify": "^6.1.0", - "postcss": "^8.4.27", + "postcss": "^8.4.28", "postcss-import": "^15.1.0", "postcss-loader": "^7.3.3", "postcss-url": "^10.1.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 834915c98d..a43aa5ded4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -84,8 +84,8 @@ importers: specifier: 1.8.0 version: 1.8.0 happy-dom: - specifier: 10.9.0 - version: 10.9.0 + specifier: 10.10.0 + version: 10.10.0 jiti: specifier: 1.19.1 version: 1.19.1 @@ -103,7 +103,7 @@ importers: version: link:packages/nuxt nuxt-vitest: specifier: 0.10.2 - version: 0.10.2(@vitejs/plugin-vue-jsx@3.0.1)(@vitejs/plugin-vue@4.2.3)(happy-dom@10.9.0)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + version: 0.10.2(@vitejs/plugin-vue-jsx@3.0.1)(@vitejs/plugin-vue@4.2.3)(happy-dom@10.10.0)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) ofetch: specifier: 1.1.1 version: 1.1.1 @@ -133,10 +133,10 @@ importers: version: 4.4.9(@types/node@18.17.5) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.9.0) + version: 0.33.0(happy-dom@10.10.0) vitest-environment-nuxt: specifier: 0.10.2 - version: 0.10.2(happy-dom@10.9.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + version: 0.10.2(happy-dom@10.10.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) vue: specifier: 3.3.4 version: 3.3.4 @@ -154,7 +154,7 @@ importers: devDependencies: '@nuxt-themes/docus': specifier: 1.14.6 - version: 1.14.6(nuxt@packages+nuxt)(postcss@8.4.27)(vue@3.3.4) + version: 1.14.6(nuxt@packages+nuxt)(postcss@8.4.28)(vue@3.3.4) packages/kit: dependencies: @@ -236,7 +236,7 @@ importers: version: 4.4.9(@types/node@18.17.5) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.9.0) + version: 0.33.0(happy-dom@10.10.0) webpack: specifier: 5.88.2 version: 5.88.2 @@ -368,14 +368,14 @@ importers: specifier: ^14.18.0 || >=16.10.0 version: 18.17.5 '@unhead/dom': - specifier: ^1.3.3 - version: 1.3.3 + specifier: ^1.3.4 + version: 1.3.4 '@unhead/ssr': - specifier: ^1.3.3 - version: 1.3.3 + specifier: ^1.3.4 + version: 1.3.4 '@unhead/vue': - specifier: ^1.3.3 - version: 1.3.3(vue@3.3.4) + specifier: ^1.3.4 + version: 1.3.4(vue@3.3.4) '@vue/shared': specifier: ^3.3.4 version: 3.3.4 @@ -443,8 +443,8 @@ importers: specifier: workspace:* version: link:../nuxi nypm: - specifier: ^0.2.2 - version: 0.2.2 + specifier: ^0.3.0 + version: 0.3.0 ofetch: specifier: ^1.1.1 version: 1.1.1 @@ -535,7 +535,7 @@ importers: version: 4.4.9(@types/node@18.17.5) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.9.0) + version: 0.33.0(happy-dom@10.10.0) packages/schema: dependencies: @@ -583,8 +583,8 @@ importers: specifier: 8.0.5 version: 8.0.5 '@unhead/schema': - specifier: 1.3.3 - version: 1.3.3 + specifier: 1.3.4 + version: 1.3.4 '@vitejs/plugin-vue': specifier: 4.2.3 version: 4.2.3(vite@4.4.9)(vue@3.3.4) @@ -678,7 +678,7 @@ importers: version: 1.2.1 vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.9.0) + version: 0.33.0(happy-dom@10.10.0) packages/vite: dependencies: @@ -696,7 +696,7 @@ importers: version: 3.0.1(vite@4.4.9)(vue@3.3.4) autoprefixer: specifier: ^10.4.15 - version: 10.4.15(postcss@8.4.27) + version: 10.4.15(postcss@8.4.28) clear: specifier: ^0.1.0 version: 0.1.0 @@ -705,7 +705,7 @@ importers: version: 3.2.3 cssnano: specifier: ^6.0.1 - version: 6.0.1(postcss@8.4.27) + version: 6.0.1(postcss@8.4.28) defu: specifier: ^6.1.2 version: 6.1.2 @@ -752,14 +752,14 @@ importers: specifier: ^1.0.3 version: 1.0.3 postcss: - specifier: ^8.4.27 - version: 8.4.27 + specifier: ^8.4.28 + version: 8.4.28 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.27) + version: 15.1.0(postcss@8.4.28) postcss-url: specifier: ^10.1.3 - version: 10.1.3(postcss@8.4.27) + version: 10.1.3(postcss@8.4.28) rollup-plugin-visualizer: specifier: ^5.9.2 version: 5.9.2(rollup@3.27.2) @@ -817,7 +817,7 @@ importers: version: link:../kit autoprefixer: specifier: ^10.4.15 - version: 10.4.15(postcss@8.4.27) + version: 10.4.15(postcss@8.4.28) css-loader: specifier: ^6.8.1 version: 6.8.1(webpack@5.88.2) @@ -826,7 +826,7 @@ importers: version: 5.0.1(webpack@5.88.2) cssnano: specifier: ^6.0.1 - version: 6.0.1(postcss@8.4.27) + version: 6.0.1(postcss@8.4.28) defu: specifier: ^6.1.2 version: 6.1.2 @@ -879,17 +879,17 @@ importers: specifier: ^6.1.0 version: 6.1.0 postcss: - specifier: ^8.4.27 - version: 8.4.27 + specifier: ^8.4.28 + version: 8.4.28 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.27) + version: 15.1.0(postcss@8.4.28) postcss-loader: specifier: ^7.3.3 - version: 7.3.3(postcss@8.4.27)(webpack@5.88.2) + version: 7.3.3(postcss@8.4.28)(webpack@5.88.2) postcss-url: specifier: ^10.1.3 - version: 10.1.3(postcss@8.4.27) + version: 10.1.3(postcss@8.4.28) pug-plain-loader: specifier: ^1.1.0 version: 1.1.0(pug@3.0.2) @@ -1003,7 +1003,7 @@ importers: version: 1.1.1 vitest: specifier: latest - version: 0.34.1(happy-dom@10.9.0) + version: 0.34.1(happy-dom@10.10.0) vue: specifier: 3.3.4 version: 3.3.4 @@ -2287,12 +2287,12 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - /@nuxt-themes/docus@1.14.6(nuxt@packages+nuxt)(postcss@8.4.27)(vue@3.3.4): + /@nuxt-themes/docus@1.14.6(nuxt@packages+nuxt)(postcss@8.4.28)(vue@3.3.4): resolution: {integrity: sha512-tkSG7j0jhVo53wEpK9V48hIvaK0XEzVU64hXhFfnIMv6LJu99cKOC//boebPbN9qLbJmkBdo4IAIJ0tN5MD0qw==} dependencies: - '@nuxt-themes/elements': 0.9.4(postcss@8.4.27)(vue@3.3.4) - '@nuxt-themes/tokens': 1.9.1(postcss@8.4.27)(vue@3.3.4) - '@nuxt-themes/typography': 0.11.0(postcss@8.4.27)(vue@3.3.4) + '@nuxt-themes/elements': 0.9.4(postcss@8.4.28)(vue@3.3.4) + '@nuxt-themes/tokens': 1.9.1(postcss@8.4.28)(vue@3.3.4) + '@nuxt-themes/typography': 0.11.0(postcss@8.4.28)(vue@3.3.4) '@nuxt/content': 2.7.2 '@nuxthq/studio': 0.13.4 '@vueuse/integrations': 10.3.0(focus-trap@7.5.2)(fuse.js@6.6.2)(vue@3.3.4) @@ -2329,10 +2329,10 @@ packages: - vue dev: true - /@nuxt-themes/elements@0.9.4(postcss@8.4.27)(vue@3.3.4): + /@nuxt-themes/elements@0.9.4(postcss@8.4.28)(vue@3.3.4): resolution: {integrity: sha512-d7XgHc/gjMpre26+N76APL1vlnQHiZTOk61GC4I/ZYQuioSfoKuoIP+Ixrr0QgM22j4MRBtAaBnDAg1wRJrDCQ==} dependencies: - '@nuxt-themes/tokens': 1.9.1(postcss@8.4.27)(vue@3.3.4) + '@nuxt-themes/tokens': 1.9.1(postcss@8.4.28)(vue@3.3.4) '@vueuse/core': 9.13.0(vue@3.3.4) transitivePeerDependencies: - '@vue/composition-api' @@ -2342,12 +2342,12 @@ packages: - vue dev: true - /@nuxt-themes/tokens@1.9.1(postcss@8.4.27)(vue@3.3.4): + /@nuxt-themes/tokens@1.9.1(postcss@8.4.28)(vue@3.3.4): resolution: {integrity: sha512-5C28kfRvKnTX8Tux+xwyaf+2pxKgQ53dC9l6C33sZwRRyfUJulGDZCFjKbuNq4iqVwdGvkFSQBYBYjFAv6t75g==} dependencies: '@nuxtjs/color-mode': 3.3.0 '@vueuse/core': 9.13.0(vue@3.3.4) - pinceau: 0.18.9(postcss@8.4.27) + pinceau: 0.18.9(postcss@8.4.28) transitivePeerDependencies: - '@vue/composition-api' - postcss @@ -2356,13 +2356,13 @@ packages: - vue dev: true - /@nuxt-themes/typography@0.11.0(postcss@8.4.27)(vue@3.3.4): + /@nuxt-themes/typography@0.11.0(postcss@8.4.28)(vue@3.3.4): resolution: {integrity: sha512-TqyvD7sDWnqGmL00VtuI7JdmNTPL5/g957HCAWNzcNp+S20uJjW/FXSdkM76d4JSVDHvBqw7Wer3RsqVhqvA4w==} dependencies: '@nuxtjs/color-mode': 3.3.0 nuxt-config-schema: 0.4.6 nuxt-icon: 0.3.3(vue@3.3.4) - pinceau: 0.18.9(postcss@8.4.27) + pinceau: 0.18.9(postcss@8.4.28) ufo: 1.2.0 transitivePeerDependencies: - postcss @@ -3245,41 +3245,41 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@unhead/dom@1.3.3: - resolution: {integrity: sha512-lagqp2dAAE//WSe5WcCAkI19snMJrLcc0QBWLsFIUXhbKQOR3Y6gr4PeCqwIHGEggEIuAkvaDzJwRd5L/CtqvQ==} + /@unhead/dom@1.3.4: + resolution: {integrity: sha512-wQK31cqjcZHqmMLI0PEDbzigp0KwQjG4P/H8BybcARvGQoaWdgZkiOu+iYmW0sl7e5V08CBL+PXiyiJ1TU6K3Q==} dependencies: - '@unhead/schema': 1.3.3 - '@unhead/shared': 1.3.3 + '@unhead/schema': 1.3.4 + '@unhead/shared': 1.3.4 dev: false - /@unhead/schema@1.3.3: - resolution: {integrity: sha512-5P3Aff/EM5Y4WnJBvvXQqB6CsBq3zdAiK+pf7m0ZXjerc5K5UqKomOtCZ0GXwr10mait7nbca5JaOUiMv2YWjg==} + /@unhead/schema@1.3.4: + resolution: {integrity: sha512-9a/5l6YpyW36ud0AKRkHzIVc9mWBxFqvE/ASFLjef2trmHhIVNewu5hjegotAO3uNSxC32AX4FoeJBgTDpYmHA==} dependencies: hookable: 5.5.3 zhead: 2.0.10 - /@unhead/shared@1.3.3: - resolution: {integrity: sha512-xcrcKJy/4xE/IFJ4TF43HtGLONfkoedihtV8oR/OKFeeL4DshioZ2X1pmLh7U+Mc+QR3cX027BngWVXaGFOOaw==} + /@unhead/shared@1.3.4: + resolution: {integrity: sha512-cBi6gIdSxl5kNrVWJS3zTXsyTeF6JQmub2SQEWzLnCy/+S/1K0pmrbj5d1B01AKBVKgJ4UVS+AaAfKfXKyv4tg==} dependencies: - '@unhead/schema': 1.3.3 + '@unhead/schema': 1.3.4 dev: false - /@unhead/ssr@1.3.3: - resolution: {integrity: sha512-/gSvsWlkgq5aE+kOhvjjYa4TSyXdodsZNST3nqa5+E1rsQswU5o6MJlBVj1mSqnDezQCsmQGeawFfFq8sKgZoQ==} + /@unhead/ssr@1.3.4: + resolution: {integrity: sha512-aovNY0LPMZbOSJ46arLIV9y7kj6agqFnI1HtK+mupbGgTkEIwQhlrL1Xm8P8SP0HijR4j4Wkv9qOErMeVmzlUg==} dependencies: - '@unhead/schema': 1.3.3 - '@unhead/shared': 1.3.3 + '@unhead/schema': 1.3.4 + '@unhead/shared': 1.3.4 dev: false - /@unhead/vue@1.3.3(vue@3.3.4): - resolution: {integrity: sha512-arkHRSsexQGLIC255w9zNfPs8gC1P3l4YHB1ZOa1E/30kiEhgq/Z1G3wHaegN0TfM6ODKnTMpxiOQr0mPIiZqQ==} + /@unhead/vue@1.3.4(vue@3.3.4): + resolution: {integrity: sha512-+LIQ/2W2Kyo0+Z3OvdpOh54tx+LOVURt9dbudHdol2wpioZ6JN6VJlOBBaesIrHqj48fSQP10GdaZDqrIkNUgw==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@unhead/schema': 1.3.3 - '@unhead/shared': 1.3.3 + '@unhead/schema': 1.3.4 + '@unhead/shared': 1.3.4 hookable: 5.5.3 - unhead: 1.3.3 + unhead: 1.3.4 vue: 3.3.4 dev: false @@ -3404,7 +3404,7 @@ packages: pathe: 1.1.1 picocolors: 1.0.0 sirv: 2.0.3 - vitest: 0.33.0(happy-dom@10.9.0) + vitest: 0.33.0(happy-dom@10.10.0) dev: true /@vitest/utils@0.33.0: @@ -3530,7 +3530,7 @@ packages: '@vue/shared': 3.3.4 estree-walker: 2.0.2 magic-string: 0.30.2 - postcss: 8.4.27 + postcss: 8.4.28 source-map-js: 1.0.2 /@vue/compiler-ssr@3.3.4: @@ -4148,7 +4148,7 @@ packages: /async@3.2.4: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - /autoprefixer@10.4.15(postcss@8.4.27): + /autoprefixer@10.4.15(postcss@8.4.28): resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -4160,7 +4160,7 @@ packages: fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false @@ -4752,13 +4752,13 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /css-declaration-sorter@6.4.1(postcss@8.4.27): + /css-declaration-sorter@6.4.1(postcss@8.4.28): resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 dev: false /css-loader@6.8.1(webpack@5.88.2): @@ -4767,12 +4767,12 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.27) - postcss: 8.4.27 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.27) - postcss-modules-local-by-default: 4.0.3(postcss@8.4.27) - postcss-modules-scope: 3.0.0(postcss@8.4.27) - postcss-modules-values: 4.0.0(postcss@8.4.27) + icss-utils: 5.1.0(postcss@8.4.28) + postcss: 8.4.28 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.28) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.28) + postcss-modules-scope: 3.0.0(postcss@8.4.28) + postcss-modules-values: 4.0.0(postcss@8.4.28) postcss-value-parser: 4.2.0 semver: 7.5.4 webpack: 5.88.2 @@ -4804,9 +4804,9 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.18 - cssnano: 6.0.1(postcss@8.4.27) + cssnano: 6.0.1(postcss@8.4.28) jest-worker: 29.6.2 - postcss: 8.4.27 + postcss: 8.4.28 schema-utils: 4.2.0 serialize-javascript: 6.0.1 webpack: 5.88.2 @@ -4850,62 +4850,62 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-preset-default@6.0.1(postcss@8.4.27): + /cssnano-preset-default@6.0.1(postcss@8.4.28): resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.4.1(postcss@8.4.27) - cssnano-utils: 4.0.0(postcss@8.4.27) - postcss: 8.4.27 - postcss-calc: 9.0.1(postcss@8.4.27) - postcss-colormin: 6.0.0(postcss@8.4.27) - postcss-convert-values: 6.0.0(postcss@8.4.27) - postcss-discard-comments: 6.0.0(postcss@8.4.27) - postcss-discard-duplicates: 6.0.0(postcss@8.4.27) - postcss-discard-empty: 6.0.0(postcss@8.4.27) - postcss-discard-overridden: 6.0.0(postcss@8.4.27) - postcss-merge-longhand: 6.0.0(postcss@8.4.27) - postcss-merge-rules: 6.0.1(postcss@8.4.27) - postcss-minify-font-values: 6.0.0(postcss@8.4.27) - postcss-minify-gradients: 6.0.0(postcss@8.4.27) - postcss-minify-params: 6.0.0(postcss@8.4.27) - postcss-minify-selectors: 6.0.0(postcss@8.4.27) - postcss-normalize-charset: 6.0.0(postcss@8.4.27) - postcss-normalize-display-values: 6.0.0(postcss@8.4.27) - postcss-normalize-positions: 6.0.0(postcss@8.4.27) - postcss-normalize-repeat-style: 6.0.0(postcss@8.4.27) - postcss-normalize-string: 6.0.0(postcss@8.4.27) - postcss-normalize-timing-functions: 6.0.0(postcss@8.4.27) - postcss-normalize-unicode: 6.0.0(postcss@8.4.27) - postcss-normalize-url: 6.0.0(postcss@8.4.27) - postcss-normalize-whitespace: 6.0.0(postcss@8.4.27) - postcss-ordered-values: 6.0.0(postcss@8.4.27) - postcss-reduce-initial: 6.0.0(postcss@8.4.27) - postcss-reduce-transforms: 6.0.0(postcss@8.4.27) - postcss-svgo: 6.0.0(postcss@8.4.27) - postcss-unique-selectors: 6.0.0(postcss@8.4.27) + css-declaration-sorter: 6.4.1(postcss@8.4.28) + cssnano-utils: 4.0.0(postcss@8.4.28) + postcss: 8.4.28 + postcss-calc: 9.0.1(postcss@8.4.28) + postcss-colormin: 6.0.0(postcss@8.4.28) + postcss-convert-values: 6.0.0(postcss@8.4.28) + postcss-discard-comments: 6.0.0(postcss@8.4.28) + postcss-discard-duplicates: 6.0.0(postcss@8.4.28) + postcss-discard-empty: 6.0.0(postcss@8.4.28) + postcss-discard-overridden: 6.0.0(postcss@8.4.28) + postcss-merge-longhand: 6.0.0(postcss@8.4.28) + postcss-merge-rules: 6.0.1(postcss@8.4.28) + postcss-minify-font-values: 6.0.0(postcss@8.4.28) + postcss-minify-gradients: 6.0.0(postcss@8.4.28) + postcss-minify-params: 6.0.0(postcss@8.4.28) + postcss-minify-selectors: 6.0.0(postcss@8.4.28) + postcss-normalize-charset: 6.0.0(postcss@8.4.28) + postcss-normalize-display-values: 6.0.0(postcss@8.4.28) + postcss-normalize-positions: 6.0.0(postcss@8.4.28) + postcss-normalize-repeat-style: 6.0.0(postcss@8.4.28) + postcss-normalize-string: 6.0.0(postcss@8.4.28) + postcss-normalize-timing-functions: 6.0.0(postcss@8.4.28) + postcss-normalize-unicode: 6.0.0(postcss@8.4.28) + postcss-normalize-url: 6.0.0(postcss@8.4.28) + postcss-normalize-whitespace: 6.0.0(postcss@8.4.28) + postcss-ordered-values: 6.0.0(postcss@8.4.28) + postcss-reduce-initial: 6.0.0(postcss@8.4.28) + postcss-reduce-transforms: 6.0.0(postcss@8.4.28) + postcss-svgo: 6.0.0(postcss@8.4.28) + postcss-unique-selectors: 6.0.0(postcss@8.4.28) dev: false - /cssnano-utils@4.0.0(postcss@8.4.27): + /cssnano-utils@4.0.0(postcss@8.4.28): resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 dev: false - /cssnano@6.0.1(postcss@8.4.27): + /cssnano@6.0.1(postcss@8.4.28): resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 6.0.1(postcss@8.4.27) + cssnano-preset-default: 6.0.1(postcss@8.4.28) lilconfig: 2.1.0 - postcss: 8.4.27 + postcss: 8.4.28 dev: false /csso@5.0.5: @@ -6350,8 +6350,8 @@ packages: uncrypto: 0.1.3 unenv: 1.7.1 - /happy-dom@10.9.0: - resolution: {integrity: sha512-SGZ8QqSNDVkWt5T7GNACKS+CpGvr58OKurqCR1iH371dMgpXyUI2tJA91cASG6fe2d5xYnVFOgOwx4MmOaXepw==} + /happy-dom@10.10.0: + resolution: {integrity: sha512-rpWFSemZoid3OKuzMs47CDUOnAYV10vYlXaVBPD+dBDHTAFkyIIpkHXx8gd/uWMyf+XOluQNnxImWp17SprE2Q==} dependencies: css.escape: 1.5.1 entities: 4.5.0 @@ -6583,13 +6583,13 @@ packages: safer-buffer: 2.1.2 dev: true - /icss-utils@5.1.0(postcss@8.4.27): + /icss-utils@5.1.0(postcss@8.4.28): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 dev: false /ieee754@1.2.1: @@ -8306,7 +8306,7 @@ packages: - vue dev: true - /nuxt-vitest@0.10.2(@vitejs/plugin-vue-jsx@3.0.1)(@vitejs/plugin-vue@4.2.3)(happy-dom@10.9.0)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): + /nuxt-vitest@0.10.2(@vitejs/plugin-vue-jsx@3.0.1)(@vitejs/plugin-vue@4.2.3)(happy-dom@10.10.0)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): resolution: {integrity: sha512-cYEvFY5iU0fV3xccdunV1vAlgyda3Tf7HEyPGrI/4KMAouwtIDIyuu2SgU3WOFqpNbhbAQbI5COLISodOeUHBQ==} peerDependencies: '@vitejs/plugin-vue': '*' @@ -8323,8 +8323,8 @@ packages: perfect-debounce: 1.0.0 std-env: 3.3.3 vite: 4.4.9(@types/node@18.17.5) - vitest: 0.33.0(happy-dom@10.9.0) - vitest-environment-nuxt: 0.10.2(happy-dom@10.9.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + vitest: 0.33.0(happy-dom@10.10.0) + vitest-environment-nuxt: 0.10.2(happy-dom@10.10.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) transitivePeerDependencies: - '@vue/server-renderer' - happy-dom @@ -8333,11 +8333,12 @@ packages: - vue-router dev: true - /nypm@0.2.2: - resolution: {integrity: sha512-O7bumfWgUXlJefT1Y41SF4vsCvzeUYmnKABuOKStheCObzrkWPDmqJc+RJVU+57oFu9bITcrUq8sKFIHgjCnTg==} + /nypm@0.3.0: + resolution: {integrity: sha512-OTyAXouN2VMCEHWnM5V+QWb+TwhIZjnB0X6yCH5sD/LgD74xbsH67YnTMEG97LMhDp8MPoWLPwskM71+wDdTzg==} engines: {node: ^14.16.0 || >=16.10.0} dependencies: execa: 7.2.0 + ufo: 1.2.0 dev: false /object-assign@4.1.1: @@ -8668,7 +8669,7 @@ packages: engines: {node: '>=14.16'} dev: false - /pinceau@0.18.9(postcss@8.4.27): + /pinceau@0.18.9(postcss@8.4.28): resolution: {integrity: sha512-GJ+l8a5Y+7PP/diwuajJhd2QONTIFkk2YXjrVTh7QKC3sMQEphpLH6ZJfXSeeSonQ0/BnhrrMi9a5e14mmqXug==} dependencies: '@unocss/reset': 0.50.8 @@ -8683,9 +8684,9 @@ packages: ohash: 1.1.3 paneer: 0.1.0 pathe: 1.1.1 - postcss-custom-properties: 13.1.4(postcss@8.4.27) - postcss-dark-theme-class: 0.7.3(postcss@8.4.27) - postcss-nested: 6.0.1(postcss@8.4.27) + postcss-custom-properties: 13.1.4(postcss@8.4.28) + postcss-dark-theme-class: 0.7.3(postcss@8.4.28) + postcss-nested: 6.0.1(postcss@8.4.28) recast: 0.22.0 scule: 1.0.0 style-dictionary-esm: 1.3.7 @@ -8720,18 +8721,18 @@ packages: engines: {node: '>=4'} dev: true - /postcss-calc@9.0.1(postcss@8.4.27): + /postcss-calc@9.0.1(postcss@8.4.28): resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: false - /postcss-colormin@6.0.0(postcss@8.4.27): + /postcss-colormin@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -8740,22 +8741,22 @@ packages: browserslist: 4.21.10 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-convert-values@6.0.0(postcss@8.4.27): + /postcss-convert-values@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.10 - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-custom-properties@13.1.4(postcss@8.4.27): + /postcss-custom-properties@13.1.4(postcss@8.4.28): resolution: {integrity: sha512-iSAdaZrM3KMec8cOSzeTUNXPYDlhqsMJHpt62yrjwG6nAnMtRHPk5JdMzGosBJtqEahDolvD5LNbcq+EZ78o5g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -8764,53 +8765,53 @@ packages: '@csstools/cascade-layer-name-parser': 1.0.4(@csstools/css-parser-algorithms@2.3.1)(@csstools/css-tokenizer@2.2.0) '@csstools/css-parser-algorithms': 2.3.1(@csstools/css-tokenizer@2.2.0) '@csstools/css-tokenizer': 2.2.0 - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: true - /postcss-dark-theme-class@0.7.3(postcss@8.4.27): + /postcss-dark-theme-class@0.7.3(postcss@8.4.28): resolution: {integrity: sha512-M9vtfh8ORzQsVdT9BWb+xpEDAzC7nHBn7wVc988/JkEVLPupKcUnV0jw7RZ8sSj0ovpqN1POf6PLdt19JCHfhQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 dev: true - /postcss-discard-comments@6.0.0(postcss@8.4.27): + /postcss-discard-comments@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 dev: false - /postcss-discard-duplicates@6.0.0(postcss@8.4.27): + /postcss-discard-duplicates@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 dev: false - /postcss-discard-empty@6.0.0(postcss@8.4.27): + /postcss-discard-empty@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 dev: false - /postcss-discard-overridden@6.0.0(postcss@8.4.27): + /postcss-discard-overridden@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 dev: false /postcss-import-resolver@2.0.0: @@ -8819,19 +8820,19 @@ packages: enhanced-resolve: 4.5.0 dev: false - /postcss-import@15.1.0(postcss@8.4.27): + /postcss-import@15.1.0(postcss@8.4.28): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.4 dev: false - /postcss-loader@7.3.3(postcss@8.4.27)(webpack@5.88.2): + /postcss-loader@7.3.3(postcss@8.4.28)(webpack@5.88.2): resolution: {integrity: sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -8840,23 +8841,23 @@ packages: dependencies: cosmiconfig: 8.2.0 jiti: 1.19.1 - postcss: 8.4.27 + postcss: 8.4.28 semver: 7.5.4 webpack: 5.88.2 dev: false - /postcss-merge-longhand@6.0.0(postcss@8.4.27): + /postcss-merge-longhand@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 - stylehacks: 6.0.0(postcss@8.4.27) + stylehacks: 6.0.0(postcss@8.4.28) dev: false - /postcss-merge-rules@6.0.1(postcss@8.4.27): + /postcss-merge-rules@6.0.1(postcss@8.4.28): resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -8864,208 +8865,208 @@ packages: dependencies: browserslist: 4.21.10 caniuse-api: 3.0.0 - cssnano-utils: 4.0.0(postcss@8.4.27) - postcss: 8.4.27 + cssnano-utils: 4.0.0(postcss@8.4.28) + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: false - /postcss-minify-font-values@6.0.0(postcss@8.4.27): + /postcss-minify-font-values@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-gradients@6.0.0(postcss@8.4.27): + /postcss-minify-gradients@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 4.0.0(postcss@8.4.27) - postcss: 8.4.27 + cssnano-utils: 4.0.0(postcss@8.4.28) + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-params@6.0.0(postcss@8.4.27): + /postcss-minify-params@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.10 - cssnano-utils: 4.0.0(postcss@8.4.27) - postcss: 8.4.27 + cssnano-utils: 4.0.0(postcss@8.4.28) + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-selectors@6.0.0(postcss@8.4.27): + /postcss-minify-selectors@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: false - /postcss-modules-extract-imports@3.0.0(postcss@8.4.27): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.28): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 dev: false - /postcss-modules-local-by-default@4.0.3(postcss@8.4.27): + /postcss-modules-local-by-default@4.0.3(postcss@8.4.28): resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.27) - postcss: 8.4.27 + icss-utils: 5.1.0(postcss@8.4.28) + postcss: 8.4.28 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: false - /postcss-modules-scope@3.0.0(postcss@8.4.27): + /postcss-modules-scope@3.0.0(postcss@8.4.28): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: false - /postcss-modules-values@4.0.0(postcss@8.4.27): + /postcss-modules-values@4.0.0(postcss@8.4.28): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.27) - postcss: 8.4.27 + icss-utils: 5.1.0(postcss@8.4.28) + postcss: 8.4.28 dev: false - /postcss-nested@6.0.1(postcss@8.4.27): + /postcss-nested@6.0.1(postcss@8.4.28): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: true - /postcss-normalize-charset@6.0.0(postcss@8.4.27): + /postcss-normalize-charset@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 dev: false - /postcss-normalize-display-values@6.0.0(postcss@8.4.27): + /postcss-normalize-display-values@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-positions@6.0.0(postcss@8.4.27): + /postcss-normalize-positions@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-repeat-style@6.0.0(postcss@8.4.27): + /postcss-normalize-repeat-style@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-string@6.0.0(postcss@8.4.27): + /postcss-normalize-string@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-timing-functions@6.0.0(postcss@8.4.27): + /postcss-normalize-timing-functions@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-unicode@6.0.0(postcss@8.4.27): + /postcss-normalize-unicode@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.10 - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-url@6.0.0(postcss@8.4.27): + /postcss-normalize-url@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-whitespace@6.0.0(postcss@8.4.27): + /postcss-normalize-whitespace@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-ordered-values@6.0.0(postcss@8.4.27): + /postcss-ordered-values@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 4.0.0(postcss@8.4.27) - postcss: 8.4.27 + cssnano-utils: 4.0.0(postcss@8.4.28) + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false - /postcss-reduce-initial@6.0.0(postcss@8.4.27): + /postcss-reduce-initial@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -9073,16 +9074,16 @@ packages: dependencies: browserslist: 4.21.10 caniuse-api: 3.0.0 - postcss: 8.4.27 + postcss: 8.4.28 dev: false - /postcss-reduce-transforms@6.0.0(postcss@8.4.27): + /postcss-reduce-transforms@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 dev: false @@ -9093,28 +9094,28 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-svgo@6.0.0(postcss@8.4.27): + /postcss-svgo@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-value-parser: 4.2.0 svgo: 3.0.2 dev: false - /postcss-unique-selectors@6.0.0(postcss@8.4.27): + /postcss-unique-selectors@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.27 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: false - /postcss-url@10.1.3(postcss@8.4.27): + /postcss-url@10.1.3(postcss@8.4.28): resolution: {integrity: sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==} engines: {node: '>=10'} peerDependencies: @@ -9123,15 +9124,15 @@ packages: make-dir: 3.1.0 mime: 2.5.2 minimatch: 3.0.8 - postcss: 8.4.27 + postcss: 8.4.28 xxhashjs: 0.2.2 dev: false /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - /postcss@8.4.27: - resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} + /postcss@8.4.28: + resolution: {integrity: sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -10100,14 +10101,14 @@ packages: tinycolor2: 1.6.0 dev: true - /stylehacks@6.0.0(postcss@8.4.27): + /stylehacks@6.0.0(postcss@8.4.28): resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.10 - postcss: 8.4.27 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 dev: false @@ -10524,12 +10525,12 @@ packages: node-fetch-native: 1.2.0 pathe: 1.1.1 - /unhead@1.3.3: - resolution: {integrity: sha512-4lGYtrwqsvlw1Grkvyz9vV5H/1ttU/ApqXQwAPpQ4WX/S54QHZNNVD/DjqYR+7QEGkWHxyQgxYoqaeeE0pUlRw==} + /unhead@1.3.4: + resolution: {integrity: sha512-cSl5Xsmb99JzV0lE0D9TQxU9sU2vu3ZMdeIBy48Y0J6XVVY4WXVAyhbeSzhLVRaBfjYn7O43BGsgN7TjxSCSrg==} dependencies: - '@unhead/dom': 1.3.3 - '@unhead/schema': 1.3.3 - '@unhead/shared': 1.3.3 + '@unhead/dom': 1.3.4 + '@unhead/schema': 1.3.4 + '@unhead/shared': 1.3.4 hookable: 5.5.3 dev: false @@ -10983,12 +10984,12 @@ packages: dependencies: '@types/node': 18.17.5 esbuild: 0.18.20 - postcss: 8.4.27 + postcss: 8.4.28 rollup: 3.27.2 optionalDependencies: fsevents: 2.3.2 - /vitest-environment-nuxt@0.10.2(happy-dom@10.9.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): + /vitest-environment-nuxt@0.10.2(happy-dom@10.10.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): resolution: {integrity: sha512-CgOS0KW0zhyDVvfHbq+CbkCa/sA2Ui/SMrp0W0vDgzhaUTCuo7WtJ211HwYqGhj3YvSRopOByRPkUDFQjr3wiw==} peerDependencies: happy-dom: ^9.10.9 || ^10.0.0 @@ -11007,11 +11008,11 @@ packages: defu: 6.1.2 estree-walker: 3.0.3 h3: 1.8.0 - happy-dom: 10.9.0 + happy-dom: 10.10.0 magic-string: 0.30.2 ofetch: 1.1.1 unenv: 1.7.1 - vitest: 0.33.0(happy-dom@10.9.0) + vitest: 0.33.0(happy-dom@10.10.0) vue: 3.3.4 vue-router: 4.2.4(vue@3.3.4) whatwg-fetch: 3.6.17 @@ -11019,7 +11020,7 @@ packages: - '@vue/server-renderer' dev: true - /vitest@0.33.0(happy-dom@10.9.0): + /vitest@0.33.0(happy-dom@10.10.0): resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} engines: {node: '>=v14.18.0'} hasBin: true @@ -11063,7 +11064,7 @@ packages: cac: 6.7.14 chai: 4.3.7 debug: 4.3.4 - happy-dom: 10.9.0 + happy-dom: 10.10.0 local-pkg: 0.4.3 magic-string: 0.30.2 pathe: 1.1.1 @@ -11085,7 +11086,7 @@ packages: - terser dev: true - /vitest@0.34.1(happy-dom@10.9.0): + /vitest@0.34.1(happy-dom@10.10.0): resolution: {integrity: sha512-G1PzuBEq9A75XSU88yO5G4vPT20UovbC/2osB2KEuV/FisSIIsw7m5y2xMdB7RsAGHAfg2lPmp2qKr3KWliVlQ==} engines: {node: '>=v14.18.0'} hasBin: true @@ -11129,7 +11130,7 @@ packages: cac: 6.7.14 chai: 4.3.7 debug: 4.3.4 - happy-dom: 10.9.0 + happy-dom: 10.10.0 local-pkg: 0.4.3 magic-string: 0.30.2 pathe: 1.1.1 diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 4f6f9c6f27..3cd19a653c 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -19,7 +19,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM for (const outputDir of ['.output', '.output-inline']) { it('default client bundle size', async () => { const clientStats = await analyzeSizes('**/*.js', join(rootDir, outputDir, 'public')) - expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"95.0k"') + expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"95.7k"') expect(clientStats.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -35,7 +35,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"64.6k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2351k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2352k"') const packages = modules.files .filter(m => m.endsWith('package.json')) From 98c17e5d46b4096779b562ba28c68dfb3992d640 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 17 Aug 2023 08:06:15 +0200 Subject: [PATCH 693/912] docs: revert `import.meta.*` update until v3.7 release --- docs/1.getting-started/7.state-management.md | 4 ++-- docs/2.guide/2.directory-structure/1.middleware.md | 6 +++--- docs/2.guide/2.directory-structure/1.plugins.md | 2 +- docs/2.guide/3.going-further/10.runtime-config.md | 2 +- docs/2.guide/3.going-further/8.custom-routing.md | 2 +- docs/3.api/1.composables/use-nuxt-app.md | 6 +++--- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/1.getting-started/7.state-management.md b/docs/1.getting-started/7.state-management.md index 3a0ea00d1b..249971fa2b 100644 --- a/docs/1.getting-started/7.state-management.md +++ b/docs/1.getting-started/7.state-management.md @@ -74,12 +74,12 @@ export const useLocale = () => useState('locale', () => useDefaultLocale export const useDefaultLocale = (fallback = 'en-US') => { const locale = ref(fallback) - if (import.meta.server) { + if (process.server) { const reqLocale = useRequestHeaders()['accept-language']?.split(',')[0] if (reqLocale) { locale.value = reqLocale } - } else if (import.meta.client) { + } else if (process.client) { const navLang = navigator.language if (navLang) { locale.value = navLang diff --git a/docs/2.guide/2.directory-structure/1.middleware.md b/docs/2.guide/2.directory-structure/1.middleware.md index 4b98ba506a..5520b4eaa9 100644 --- a/docs/2.guide/2.directory-structure/1.middleware.md +++ b/docs/2.guide/2.directory-structure/1.middleware.md @@ -125,12 +125,12 @@ However, if you want to avoid this behaviour you can do so: ```js export default defineNuxtRouteMiddleware(to => { // skip middleware on server - if (import.meta.server) return + if (process.server) return // skip middleware on client side entirely - if (import.meta.client) return + if (process.client) return // or only skip middleware on initial client load const nuxtApp = useNuxtApp() - if (import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.serverRendered) return + if (process.client && nuxtApp.isHydrating && nuxtApp.payload.serverRendered) return }) ``` diff --git a/docs/2.guide/2.directory-structure/1.plugins.md b/docs/2.guide/2.directory-structure/1.plugins.md index 5951c0631f..d6589203c3 100644 --- a/docs/2.guide/2.directory-structure/1.plugins.md +++ b/docs/2.guide/2.directory-structure/1.plugins.md @@ -62,7 +62,7 @@ export default defineNuxtPlugin({ ``` ::alert -If you are using an object-syntax plugin, the properties may be statically analyzed in future to produce a more optimized build. So you should not define them at runtime. For example, setting `enforce: import.meta.server ? 'pre' : 'post'` would defeat any future optimization Nuxt is able to do for your plugins. +If you are using an object-syntax plugin, the properties may be statically analyzed in future to produce a more optimized build. So you should not define them at runtime. For example, setting `enforce: process.server ? 'pre' : 'post'` would defeat any future optimization Nuxt is able to do for your plugins. :: ## Plugin Registration Order diff --git a/docs/2.guide/3.going-further/10.runtime-config.md b/docs/2.guide/3.going-further/10.runtime-config.md index 08d161d2ef..268b5dd945 100644 --- a/docs/2.guide/3.going-further/10.runtime-config.md +++ b/docs/2.guide/3.going-further/10.runtime-config.md @@ -94,7 +94,7 @@ The entire runtime config is available on the server-side, but it is read-only t diff --git a/docs/2.guide/3.going-further/8.custom-routing.md b/docs/2.guide/3.going-further/8.custom-routing.md index ce62e09f30..3adc6ee72c 100644 --- a/docs/2.guide/3.going-further/8.custom-routing.md +++ b/docs/2.guide/3.going-further/8.custom-routing.md @@ -138,6 +138,6 @@ import { createMemoryHistory } from 'vue-router' // https://router.vuejs.org/api/interfaces/routeroptions.html export default { - history: base => import.meta.client ? createMemoryHistory(base) : null /* default */ + history: base => process.client ? createMemoryHistory(base) : null /* default */ } ``` diff --git a/docs/3.api/1.composables/use-nuxt-app.md b/docs/3.api/1.composables/use-nuxt-app.md index 1a5694aa3f..f12d562a75 100644 --- a/docs/3.api/1.composables/use-nuxt-app.md +++ b/docs/3.api/1.composables/use-nuxt-app.md @@ -45,7 +45,7 @@ export default defineNuxtPlugin((nuxtApp) => { }) nuxtApp.hook('vue:error', (..._args) => { console.log('vue:error') - // if (import.meta.client) { + // if (process.client) { // console.log(..._args) // } }) @@ -105,7 +105,7 @@ When accessing the same `payload.data` from [ssrcontext](#ssrcontext), you can a export const useColor = () => useState('color', () => 'pink') export default defineNuxtPlugin((nuxtApp) => { - if (import.meta.server) { + if (process.server) { const color = useColor() } }) @@ -137,7 +137,7 @@ export default defineComponent({ setup (_props, { slots, emit }) { const nuxtApp = useNuxtApp() onErrorCaptured((err) => { - if (import.meta.client && !nuxtApp.isHydrating) { + if (process.client && !nuxtApp.isHydrating) { // ... } }) From 08b1950ffb2c614ec2b5cf91b837a3b06ed9cda2 Mon Sep 17 00:00:00 2001 From: Colin McDonnell Date: Wed, 16 Aug 2023 23:30:28 -0700 Subject: [PATCH 694/912] feat(nuxi): detect `bun` package manager (#22673) --- docs/1.getting-started/2.installation.md | 4 ++++ docs/2.guide/2.directory-structure/1.content.md | 4 ++++ packages/nuxi/src/utils/packageManagers.ts | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/1.getting-started/2.installation.md b/docs/1.getting-started/2.installation.md index addc4e2401..e04c15e7c1 100644 --- a/docs/1.getting-started/2.installation.md +++ b/docs/1.getting-started/2.installation.md @@ -59,6 +59,10 @@ npx nuxi@latest init pnpm dlx nuxi@latest init ``` +```bash [bun] +bunx nuxi@latest init +``` + :: Open your project folder in Visual Studio Code: diff --git a/docs/2.guide/2.directory-structure/1.content.md b/docs/2.guide/2.directory-structure/1.content.md index c243bb0be9..beec4019f2 100644 --- a/docs/2.guide/2.directory-structure/1.content.md +++ b/docs/2.guide/2.directory-structure/1.content.md @@ -38,6 +38,10 @@ Install the `@nuxt/content` module in your project: pnpm add -D @nuxt/content ``` + ```bash [bun] + bun add -D @nuxt/content + ``` + :: Then, add `@nuxt/content` to the `modules` section of `nuxt.config.ts`: diff --git a/packages/nuxi/src/utils/packageManagers.ts b/packages/nuxi/src/utils/packageManagers.ts index ba43eaeb92..8717b869d1 100644 --- a/packages/nuxi/src/utils/packageManagers.ts +++ b/packages/nuxi/src/utils/packageManagers.ts @@ -6,7 +6,8 @@ import { findup } from './fs' export const packageManagerLocks = { yarn: 'yarn.lock', npm: 'package-lock.json', - pnpm: 'pnpm-lock.yaml' + pnpm: 'pnpm-lock.yaml', + bun: 'bun.lockb' } type PackageManager = keyof typeof packageManagerLocks From 4e538a03e29ed6051407c9340c8215480b1936ac Mon Sep 17 00:00:00 2001 From: anhao <117057608+ah-dc@users.noreply.github.com> Date: Thu, 17 Aug 2023 21:35:28 +0800 Subject: [PATCH 695/912] fix(vite): use `''` key for root scope in variable collector (#22679) --- packages/vite/src/plugins/composable-keys.ts | 21 ++++++++++++++----- .../basic/other-composables-folder/local.ts | 5 +++++ .../basic/pages/keyed-composables/local.vue | 8 ++++++- 3 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 test/fixtures/basic/other-composables-folder/local.ts diff --git a/packages/vite/src/plugins/composable-keys.ts b/packages/vite/src/plugins/composable-keys.ts index 43cd18b353..f27c80dbf3 100644 --- a/packages/vite/src/plugins/composable-keys.ts +++ b/packages/vite/src/plugins/composable-keys.ts @@ -141,14 +141,26 @@ export const composableKeysPlugin = createUnplugin((options: ComposableKeysOptio } }) +/* +* track scopes with unique keys. for example +* ```js +* // root scope, marked as '' +* function a () { // '0' +* function b () {} // '0-0' +* function c () {} // '0-1' +* } +* function d () {} // '1' +* // '' +* ``` +* */ class ScopeTracker { + // the top of the stack is not a part of current key, it is used for next level scopeIndexStack: number[] curScopeKey: string constructor () { - // top level this.scopeIndexStack = [0] - this.curScopeKey = '0' + this.curScopeKey = '' } getKey () { @@ -173,8 +185,7 @@ class ScopedVarsCollector { constructor () { this.all = new Map() - // top level - this.curScopeKey = '0' + this.curScopeKey = '' } refresh (scopeKey: string) { @@ -192,7 +203,7 @@ class ScopedVarsCollector { hasVar (scopeKey: string, name: string) { const indices = scopeKey.split('-').map(Number) - for (let i = indices.length; i > 0; i--) { + for (let i = indices.length; i >= 0; i--) { if (this.all.get(indices.slice(0, i).join('-'))?.has(name)) { return true } diff --git a/test/fixtures/basic/other-composables-folder/local.ts b/test/fixtures/basic/other-composables-folder/local.ts new file mode 100644 index 0000000000..46858a2779 --- /dev/null +++ b/test/fixtures/basic/other-composables-folder/local.ts @@ -0,0 +1,5 @@ +function useAsyncData (s?: any) { return s } + +export const ShouldNotBeKeyed = (() => { + return useAsyncData() +})() diff --git a/test/fixtures/basic/pages/keyed-composables/local.vue b/test/fixtures/basic/pages/keyed-composables/local.vue index 7e50cfa7a0..31fdc04af9 100644 --- a/test/fixtures/basic/pages/keyed-composables/local.vue +++ b/test/fixtures/basic/pages/keyed-composables/local.vue @@ -1,4 +1,6 @@ From fc7bbe92230526b9c8c117d7add1d60b3e1ae0f3 Mon Sep 17 00:00:00 2001 From: JD Solanki Date: Fri, 18 Aug 2023 19:52:45 +0530 Subject: [PATCH 696/912] docs: improve custom component dirs example (#22697) --- docs/2.guide/2.directory-structure/1.components.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/2.guide/2.directory-structure/1.components.md b/docs/2.guide/2.directory-structure/1.components.md index 825cb82b34..89c7db94b2 100644 --- a/docs/2.guide/2.directory-structure/1.components.md +++ b/docs/2.guide/2.directory-structure/1.components.md @@ -34,7 +34,20 @@ By default, only the `~/components` directory is scanned. If you want to add oth ```ts [nuxt.config.ts] export default defineNuxtConfig({ components: [ + // ~/calendar-module/components/event/Update.vue => + { path: '~/calendar-module/components' }, + + // ~/user-module/components/account/UserDeleteDialog.vue => + { path: '~/user-module/components', pathPrefix: false }, + + // ~/components/special-components/Btn.vue => { path: '~/components/special-components', prefix: 'Special' }, + + // It's important that this comes last if you have overrides you wish to apply + // to sub-directories of `~/components`. + // + // ~/components/Btn.vue => + // ~/components/base/Btn.vue => '~/components' ] }) From 3d78c79e3df293e98647162a9b23ffcdd4559e05 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 18 Aug 2023 17:05:38 +0200 Subject: [PATCH 697/912] chore(deps): update all non-major dependencies (main) (#22677) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- .github/workflows/autofix-docs.yml | 2 +- .github/workflows/autofix.yml | 2 +- .github/workflows/changelogensets.yml | 2 +- .github/workflows/ci.yml | 14 +- .github/workflows/docs-e2e.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/nuxt2-edge.yml | 2 +- .github/workflows/release-pr.yml | 2 +- package.json | 8 +- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 6 +- packages/schema/package.json | 6 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 6 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 578 ++++++++++--------------- test/bundle.test.ts | 2 +- test/fixtures/basic-types/package.json | 2 +- 19 files changed, 255 insertions(+), 389 deletions(-) diff --git a/.github/workflows/autofix-docs.yml b/.github/workflows/autofix-docs.yml index a0293201b3..a205803360 100644 --- a/.github/workflows/autofix-docs.yml +++ b/.github/workflows/autofix-docs.yml @@ -19,7 +19,7 @@ jobs: steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: 20 cache: "pnpm" diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index d218224614..dd160355a9 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: 20 cache: "pnpm" diff --git a/.github/workflows/changelogensets.yml b/.github/workflows/changelogensets.yml index 7b27152920..0d961caefa 100644 --- a/.github/workflows/changelogensets.yml +++ b/.github/workflows/changelogensets.yml @@ -23,7 +23,7 @@ jobs: with: fetch-depth: 0 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: 20 cache: "pnpm" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 23debe49f9..685e6777a4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,7 +40,7 @@ jobs: steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: 20 cache: "pnpm" @@ -77,7 +77,7 @@ jobs: steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: 20 cache: "pnpm" @@ -116,7 +116,7 @@ jobs: steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: 20 cache: "pnpm" @@ -144,7 +144,7 @@ jobs: steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: 20 cache: "pnpm" @@ -180,7 +180,7 @@ jobs: steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: ${{ matrix.node }} cache: "pnpm" @@ -254,7 +254,7 @@ jobs: with: fetch-depth: 0 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: 20 cache: "pnpm" @@ -293,7 +293,7 @@ jobs: with: fetch-depth: 0 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: 20 cache: "pnpm" diff --git a/.github/workflows/docs-e2e.yml b/.github/workflows/docs-e2e.yml index 9adda22ced..d8bd4c8d32 100644 --- a/.github/workflows/docs-e2e.yml +++ b/.github/workflows/docs-e2e.yml @@ -23,7 +23,7 @@ jobs: steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: cache: "pnpm" diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d47a31d9bd..e60a7c8790 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -22,7 +22,7 @@ jobs: steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: 20 cache: "pnpm" diff --git a/.github/workflows/nuxt2-edge.yml b/.github/workflows/nuxt2-edge.yml index 0e8b2440d1..bcb463d81a 100644 --- a/.github/workflows/nuxt2-edge.yml +++ b/.github/workflows/nuxt2-edge.yml @@ -27,7 +27,7 @@ jobs: fetch-depth: 0 # All history - name: fetch tags run: git fetch --depth=1 origin "+refs/tags/*:refs/tags/*" - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: 16 registry-url: 'https://registry.npmjs.org' diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 20e1cd4a2c..7705caeecd 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -35,7 +35,7 @@ jobs: fetch-depth: 0 - run: corepack enable - - uses: actions/setup-node@bea5baf987ba7aa777a8a0b4ace377a21c45c381 # v3.8.0 + - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: node-version: 20 cache: "pnpm" diff --git a/package.json b/package.json index 7ec4c084e5..ed78ff9195 100644 --- a/package.json +++ b/package.json @@ -61,8 +61,8 @@ "fs-extra": "11.1.1", "globby": "13.2.2", "h3": "1.8.0", - "happy-dom": "10.10.0", - "jiti": "1.19.1", + "happy-dom": "10.10.4", + "jiti": "1.19.3", "markdownlint-cli": "^0.33.0", "nitropack": "2.5.2", "nuxi": "workspace:*", @@ -70,10 +70,10 @@ "nuxt-vitest": "0.10.2", "ofetch": "1.1.1", "pathe": "1.1.1", - "playwright-core": "1.37.0", + "playwright-core": "1.37.1", "rimraf": "5.0.1", "semver": "7.5.4", - "std-env": "3.3.3", + "std-env": "3.4.0", "typescript": "5.1.6", "ufo": "1.2.0", "vite": "4.4.9", diff --git a/packages/kit/package.json b/packages/kit/package.json index ac3a40ae24..e6f552bf90 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -27,7 +27,7 @@ "globby": "^13.2.2", "hash-sum": "^2.0.0", "ignore": "^5.2.4", - "jiti": "^1.19.1", + "jiti": "^1.19.3", "knitwork": "^1.0.0", "mlly": "^1.4.0", "pathe": "^1.1.1", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index ed5c831a29..da0a5a5aa6 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -37,7 +37,7 @@ "flat": "5.0.2", "giget": "1.1.2", "h3": "1.8.0", - "jiti": "1.19.1", + "jiti": "1.19.3", "listhen": "1.3.0", "mlly": "1.4.0", "mri": "1.2.0", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index fda74cfb34..4858e5e330 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -76,7 +76,7 @@ "globby": "^13.2.2", "h3": "^1.8.0", "hookable": "^5.5.3", - "jiti": "^1.19.1", + "jiti": "^1.19.3", "klona": "^2.0.6", "knitwork": "^1.0.0", "magic-string": "^0.30.2", @@ -91,7 +91,7 @@ "pkg-types": "^1.0.3", "prompts": "^2.4.2", "scule": "^1.0.0", - "std-env": "^3.3.3", + "std-env": "^3.4.0", "strip-literal": "^1.3.0", "ufo": "^1.2.0", "ultrahtml": "^1.3.0", @@ -112,7 +112,7 @@ "@types/estree": "1.0.1", "@types/fs-extra": "11.0.1", "@types/prompts": "2.4.4", - "@vitejs/plugin-vue": "4.2.3", + "@vitejs/plugin-vue": "4.3.1", "unbuild": "latest", "vite": "4.4.9", "vitest": "0.33.0" diff --git a/packages/schema/package.json b/packages/schema/package.json index f8a36d43a8..69bd3b349b 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -31,8 +31,8 @@ "@types/pug": "2.0.6", "@types/sass-loader": "8.0.5", "@unhead/schema": "1.3.4", - "@vitejs/plugin-vue": "4.2.3", - "@vitejs/plugin-vue-jsx": "3.0.1", + "@vitejs/plugin-vue": "4.3.1", + "@vitejs/plugin-vue-jsx": "3.0.2", "@vue/compiler-core": "3.3.4", "esbuild-loader": "4.0.0", "h3": "1.8.0", @@ -55,7 +55,7 @@ "pathe": "^1.1.1", "pkg-types": "^1.0.3", "postcss-import-resolver": "^2.0.0", - "std-env": "^3.3.3", + "std-env": "^3.4.0", "ufo": "^1.2.0", "unimport": "^3.1.3", "untyped": "^1.4.0" diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 3e478f2e5f..ae57d9e7b1 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -34,7 +34,7 @@ }, "devDependencies": { "@jest/globals": "29.6.2", - "playwright-core": "1.37.0", + "playwright-core": "1.37.1", "unbuild": "latest", "vitest": "0.33.0" }, diff --git a/packages/vite/package.json b/packages/vite/package.json index 0142ec9d1b..7bcd7c2aee 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -28,8 +28,8 @@ "dependencies": { "@nuxt/kit": "workspace:../kit", "@rollup/plugin-replace": "^5.0.2", - "@vitejs/plugin-vue": "^4.2.3", - "@vitejs/plugin-vue-jsx": "^3.0.1", + "@vitejs/plugin-vue": "^4.3.1", + "@vitejs/plugin-vue-jsx": "^3.0.2", "autoprefixer": "^10.4.15", "clear": "^0.1.0", "consola": "^3.2.3", @@ -53,7 +53,7 @@ "postcss-import": "^15.1.0", "postcss-url": "^10.1.3", "rollup-plugin-visualizer": "^5.9.2", - "std-env": "^3.3.3", + "std-env": "^3.4.0", "strip-literal": "^1.3.0", "ufo": "^1.2.0", "unplugin": "^1.4.0", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index e2b3e4062c..67313fff0c 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -47,7 +47,7 @@ "postcss-loader": "^7.3.3", "postcss-url": "^10.1.3", "pug-plain-loader": "^1.1.0", - "std-env": "^3.3.3", + "std-env": "^3.4.0", "time-fix-plugin": "^2.0.7", "ufo": "^1.2.0", "unplugin": "^1.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a43aa5ded4..5ee3c22e6b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -84,11 +84,11 @@ importers: specifier: 1.8.0 version: 1.8.0 happy-dom: - specifier: 10.10.0 - version: 10.10.0 + specifier: 10.10.4 + version: 10.10.4 jiti: - specifier: 1.19.1 - version: 1.19.1 + specifier: 1.19.3 + version: 1.19.3 markdownlint-cli: specifier: ^0.33.0 version: 0.33.0 @@ -103,7 +103,7 @@ importers: version: link:packages/nuxt nuxt-vitest: specifier: 0.10.2 - version: 0.10.2(@vitejs/plugin-vue-jsx@3.0.1)(@vitejs/plugin-vue@4.2.3)(happy-dom@10.10.0)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + version: 0.10.2(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.1)(happy-dom@10.10.4)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) ofetch: specifier: 1.1.1 version: 1.1.1 @@ -111,8 +111,8 @@ importers: specifier: 1.1.1 version: 1.1.1 playwright-core: - specifier: 1.37.0 - version: 1.37.0 + specifier: 1.37.1 + version: 1.37.1 rimraf: specifier: 5.0.1 version: 5.0.1 @@ -120,8 +120,8 @@ importers: specifier: 7.5.4 version: 7.5.4 std-env: - specifier: 3.3.3 - version: 3.3.3 + specifier: 3.4.0 + version: 3.4.0 typescript: specifier: 5.1.6 version: 5.1.6 @@ -133,10 +133,10 @@ importers: version: 4.4.9(@types/node@18.17.5) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.10.0) + version: 0.33.0(happy-dom@10.10.4) vitest-environment-nuxt: specifier: 0.10.2 - version: 0.10.2(happy-dom@10.10.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + version: 0.10.2(happy-dom@10.10.4)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) vue: specifier: 3.3.4 version: 3.3.4 @@ -180,8 +180,8 @@ importers: specifier: ^5.2.4 version: 5.2.4 jiti: - specifier: ^1.19.1 - version: 1.19.1 + specifier: ^1.19.3 + version: 1.19.3 knitwork: specifier: ^1.0.0 version: 1.0.0 @@ -236,7 +236,7 @@ importers: version: 4.4.9(@types/node@18.17.5) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.10.0) + version: 0.33.0(happy-dom@10.10.4) webpack: specifier: 5.88.2 version: 5.88.2 @@ -305,8 +305,8 @@ importers: specifier: 1.8.0 version: 1.8.0 jiti: - specifier: 1.19.1 - version: 1.19.1 + specifier: 1.19.3 + version: 1.19.3 listhen: specifier: 1.3.0 version: 1.3.0 @@ -422,8 +422,8 @@ importers: specifier: ^5.5.3 version: 5.5.3 jiti: - specifier: ^1.19.1 - version: 1.19.1 + specifier: ^1.19.3 + version: 1.19.3 klona: specifier: ^2.0.6 version: 2.0.6 @@ -467,8 +467,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 std-env: - specifier: ^3.3.3 - version: 3.3.3 + specifier: ^3.4.0 + version: 3.4.0 strip-literal: specifier: ^1.3.0 version: 1.3.0 @@ -525,8 +525,8 @@ importers: specifier: 2.4.4 version: 2.4.4 '@vitejs/plugin-vue': - specifier: 4.2.3 - version: 4.2.3(vite@4.4.9)(vue@3.3.4) + specifier: 4.3.1 + version: 4.3.1(vite@4.4.9)(vue@3.3.4) unbuild: specifier: latest version: 1.2.1 @@ -535,7 +535,7 @@ importers: version: 4.4.9(@types/node@18.17.5) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.10.0) + version: 0.33.0(happy-dom@10.10.4) packages/schema: dependencies: @@ -558,8 +558,8 @@ importers: specifier: ^2.0.0 version: 2.0.0 std-env: - specifier: ^3.3.3 - version: 3.3.3 + specifier: ^3.4.0 + version: 3.4.0 ufo: specifier: ^1.2.0 version: 1.2.0 @@ -586,11 +586,11 @@ importers: specifier: 1.3.4 version: 1.3.4 '@vitejs/plugin-vue': - specifier: 4.2.3 - version: 4.2.3(vite@4.4.9)(vue@3.3.4) + specifier: 4.3.1 + version: 4.3.1(vite@4.4.9)(vue@3.3.4) '@vitejs/plugin-vue-jsx': - specifier: 3.0.1 - version: 3.0.1(vite@4.4.9)(vue@3.3.4) + specifier: 3.0.2 + version: 3.0.2(vite@4.4.9)(vue@3.3.4) '@vue/compiler-core': specifier: 3.3.4 version: 3.3.4 @@ -671,14 +671,14 @@ importers: specifier: 29.6.2 version: 29.6.2 playwright-core: - specifier: 1.37.0 - version: 1.37.0 + specifier: 1.37.1 + version: 1.37.1 unbuild: specifier: latest version: 1.2.1 vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.10.0) + version: 0.33.0(happy-dom@10.10.4) packages/vite: dependencies: @@ -689,11 +689,11 @@ importers: specifier: ^5.0.2 version: 5.0.2(rollup@3.27.2) '@vitejs/plugin-vue': - specifier: ^4.2.3 - version: 4.2.3(vite@4.4.9)(vue@3.3.4) + specifier: ^4.3.1 + version: 4.3.1(vite@4.4.9)(vue@3.3.4) '@vitejs/plugin-vue-jsx': - specifier: ^3.0.1 - version: 3.0.1(vite@4.4.9)(vue@3.3.4) + specifier: ^3.0.2 + version: 3.0.2(vite@4.4.9)(vue@3.3.4) autoprefixer: specifier: ^10.4.15 version: 10.4.15(postcss@8.4.28) @@ -764,8 +764,8 @@ importers: specifier: ^5.9.2 version: 5.9.2(rollup@3.27.2) std-env: - specifier: ^3.3.3 - version: 3.3.3 + specifier: ^3.4.0 + version: 3.4.0 strip-literal: specifier: ^1.3.0 version: 1.3.0 @@ -894,8 +894,8 @@ importers: specifier: ^1.1.0 version: 1.1.0(pug@3.0.2) std-env: - specifier: ^3.3.3 - version: 3.3.3 + specifier: ^3.4.0 + version: 3.4.0 time-fix-plugin: specifier: ^2.0.7 version: 2.0.7(webpack@5.88.2) @@ -1002,8 +1002,8 @@ importers: specifier: latest version: 1.1.1 vitest: - specifier: latest - version: 0.34.1(happy-dom@10.10.0) + specifier: 0.33.0 + version: 0.33.0(happy-dom@10.10.4) vue: specifier: 3.3.4 version: 3.3.4 @@ -1061,30 +1061,31 @@ packages: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 - /@babel/code-frame@7.22.5: - resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} + /@babel/code-frame@7.22.10: + resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.5 + '@babel/highlight': 7.22.10 + chalk: 2.4.2 /@babel/compat-data@7.22.9: resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} engines: {node: '>=6.9.0'} - /@babel/core@7.22.9: - resolution: {integrity: sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==} + /@babel/core@7.22.10: + resolution: {integrity: sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 - '@babel/helper-compilation-targets': 7.22.9(@babel/core@7.22.9) - '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.9) - '@babel/helpers': 7.22.6 - '@babel/parser': 7.22.7 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 + '@babel/helper-compilation-targets': 7.22.10 + '@babel/helper-module-transforms': 7.22.9(@babel/core@7.22.10) + '@babel/helpers': 7.22.10 + '@babel/parser': 7.22.10 '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -1093,11 +1094,11 @@ packages: transitivePeerDependencies: - supports-color - /@babel/generator@7.22.9: - resolution: {integrity: sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==} + /@babel/generator@7.22.10: + resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 jsesc: 2.5.2 @@ -1106,34 +1107,31 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 - /@babel/helper-compilation-targets@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==} + /@babel/helper-compilation-targets@7.22.10: + resolution: {integrity: sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 dependencies: '@babel/compat-data': 7.22.9 - '@babel/core': 7.22.9 '@babel/helper-validator-option': 7.22.5 browserslist: 4.21.10 lru-cache: 5.1.1 semver: 6.3.1 - /@babel/helper-create-class-features-plugin@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ==} + /@babel/helper-create-class-features-plugin@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.9) + '@babel/helper-replace-supers': 7.22.9(@babel/core@7.22.10) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 @@ -1147,33 +1145,33 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.5 - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 /@babel/helper-member-expression-to-functions@7.22.5: resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 /@babel/helper-module-imports@7.22.5: resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 - /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.9): + /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.10): resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-module-imports': 7.22.5 '@babel/helper-simple-access': 7.22.5 @@ -1184,19 +1182,19 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} - /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.9): + /@babel/helper-replace-supers@7.22.9(@babel/core@7.22.10): resolution: {integrity: sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-member-expression-to-functions': 7.22.5 '@babel/helper-optimise-call-expression': 7.22.5 @@ -1205,19 +1203,19 @@ packages: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 /@babel/helper-skip-transparent-expression-wrappers@7.22.5: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 /@babel/helper-string-parser@7.22.5: resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} @@ -1231,170 +1229,169 @@ packages: resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} engines: {node: '>=6.9.0'} - /@babel/helpers@7.22.6: - resolution: {integrity: sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==} + /@babel/helpers@7.22.10: + resolution: {integrity: sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 transitivePeerDependencies: - supports-color - /@babel/highlight@7.22.5: - resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} + /@babel/highlight@7.22.10: + resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==} engines: {node: '>=6.9.0'} - requiresBuild: true dependencies: '@babel/helper-validator-identifier': 7.22.5 chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser@7.22.7: - resolution: {integrity: sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==} + /@babel/parser@7.22.10: + resolution: {integrity: sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.9): + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.10): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.9): + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.10): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.9): + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.22.10): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.9): + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.10): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.9): + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.10): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.9): + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.10): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.9): + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.10): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.9): + /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.22.10): resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-transform-typescript@7.22.9(@babel/core@7.22.9): - resolution: {integrity: sha512-BnVR1CpKiuD0iobHPaM1iLvcwPYN2uVFAqoLVSpEDKWuOikoCv5HbKLxclhKYUXlWkX86DoZGtqI4XhbOsyrMg==} + /@babel/plugin-transform-typescript@7.22.10(@babel/core@7.22.10): + resolution: {integrity: sha512-7++c8I/ymsDo4QQBAgbraXLzIM6jmfao11KgIBEYZRReWzNWH9NtNgJcyrZiXsOPh523FQm6LfpLyy/U5fn46A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.22.9(@babel/core@7.22.9) + '@babel/helper-create-class-features-plugin': 7.22.10(@babel/core@7.22.10) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.10) /@babel/standalone@7.22.9: resolution: {integrity: sha512-RRUFpN2WiHaczMqIhmy7VoruvSw+c3NSq6BczondQ6elJXtKzr9cAWWsWWZvtZ/rYFQpoQlch5VxQe4aWTt8LA==} @@ -1404,29 +1401,29 @@ packages: resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/code-frame': 7.22.10 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 - /@babel/traverse@7.22.8: - resolution: {integrity: sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==} + /@babel/traverse@7.22.10: + resolution: {integrity: sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.9 + '@babel/code-frame': 7.22.10 + '@babel/generator': 7.22.10 '@babel/helper-environment-visitor': 7.22.5 '@babel/helper-function-name': 7.22.5 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - /@babel/types@7.22.5: - resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} + /@babel/types@7.22.10: + resolution: {integrity: sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.22.5 @@ -2182,7 +2179,7 @@ packages: resolution: {integrity: sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@jest/types': 29.6.1 '@jridgewell/trace-mapping': 0.3.18 babel-plugin-istanbul: 6.1.1 @@ -2457,7 +2454,7 @@ packages: fs-extra: 11.1.1 git-url-parse: 13.1.0 is-docker: 3.0.0 - jiti: 1.19.1 + jiti: 1.19.3 mri: 1.2.0 nanoid: 4.0.2 node-fetch: 3.3.2 @@ -2465,7 +2462,7 @@ packages: parse-git-config: 3.0.0 pathe: 1.1.1 rc9: 2.1.1 - std-env: 3.3.3 + std-env: 3.4.0 /@nuxt/ui-templates@1.3.1: resolution: {integrity: sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA==} @@ -3307,23 +3304,23 @@ packages: - encoding - supports-color - /@vitejs/plugin-vue-jsx@3.0.1(vite@4.4.9)(vue@3.3.4): - resolution: {integrity: sha512-+Jb7ggL48FSPS1uhPnJbJwWa9Sr90vQ+d0InW+AhBM22n+cfuYqJZDckBc+W3QSHe1WDvewMZfa4wZOtk5pRgw==} + /@vitejs/plugin-vue-jsx@3.0.2(vite@4.4.9)(vue@3.3.4): + resolution: {integrity: sha512-obF26P2Z4Ogy3cPp07B4VaW6rpiu0ue4OT2Y15UxT5BZZ76haUY9guOsZV3uWh/I6xc+VeiW+ZVabRE82FyzWw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-transform-typescript': 7.22.9(@babel/core@7.22.9) - '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/plugin-transform-typescript': 7.22.10(@babel/core@7.22.10) + '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.10) vite: 4.4.9(@types/node@18.17.5) vue: 3.3.4 transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@4.2.3(vite@4.4.9)(vue@3.3.4): - resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==} + /@vitejs/plugin-vue@4.3.1(vite@4.4.9)(vue@3.3.4): + resolution: {integrity: sha512-tUBEtWcF7wFtII7ayNiLNDTCE1X1afySEo+XNVMNkFXaThENyCowIEX095QqbJZGTgoOcSVDJGlnde2NG4jtbQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 @@ -3340,14 +3337,6 @@ packages: chai: 4.3.7 dev: true - /@vitest/expect@0.34.1: - resolution: {integrity: sha512-q2CD8+XIsQ+tHwypnoCk8Mnv5e6afLFvinVGCq3/BOT4kQdVQmY6rRfyKkwcg635lbliLPqbunXZr+L1ssUWiQ==} - dependencies: - '@vitest/spy': 0.34.1 - '@vitest/utils': 0.34.1 - chai: 4.3.7 - dev: true - /@vitest/runner@0.33.0: resolution: {integrity: sha512-UPfACnmCB6HKRHTlcgCoBh6ppl6fDn+J/xR8dTufWiKt/74Y9bHci5CKB8tESSV82zKYtkBJo9whU3mNvfaisg==} dependencies: @@ -3356,14 +3345,6 @@ packages: pathe: 1.1.1 dev: true - /@vitest/runner@0.34.1: - resolution: {integrity: sha512-YfQMpYzDsYB7yqgmlxZ06NI4LurHWfrH7Wy3Pvf/z/vwUSgq1zLAb1lWcItCzQG+NVox+VvzlKQrYEXb47645g==} - dependencies: - '@vitest/utils': 0.34.1 - p-limit: 4.0.0 - pathe: 1.1.1 - dev: true - /@vitest/snapshot@0.33.0: resolution: {integrity: sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA==} dependencies: @@ -3372,26 +3353,12 @@ packages: pretty-format: 29.6.2 dev: true - /@vitest/snapshot@0.34.1: - resolution: {integrity: sha512-0O9LfLU0114OqdF8lENlrLsnn024Tb1CsS9UwG0YMWY2oGTQfPtkW+B/7ieyv0X9R2Oijhi3caB1xgGgEgclSQ==} - dependencies: - magic-string: 0.30.2 - pathe: 1.1.1 - pretty-format: 29.6.2 - dev: true - /@vitest/spy@0.33.0: resolution: {integrity: sha512-Kv+yZ4hnH1WdiAkPUQTpRxW8kGtH8VRTnus7ZTGovFYM1ZezJpvGtb9nPIjPnptHbsyIAxYZsEpVPYgtpjGnrg==} dependencies: tinyspy: 2.1.1 dev: true - /@vitest/spy@0.34.1: - resolution: {integrity: sha512-UT4WcI3EAPUNO8n6y9QoEqynGGEPmmRxC+cLzneFFXpmacivjHZsNbiKD88KUScv5DCHVDgdBsLD7O7s1enFcQ==} - dependencies: - tinyspy: 2.1.1 - dev: true - /@vitest/ui@0.33.0(vitest@0.33.0): resolution: {integrity: sha512-7gbAjLqt30R4bodkJAutdpy4ncv+u5IKTHYTow1c2q+FOxZUC9cKOSqMUxjwaaTwLN+EnDnmXYPtg3CoahaUzQ==} peerDependencies: @@ -3404,7 +3371,7 @@ packages: pathe: 1.1.1 picocolors: 1.0.0 sirv: 2.0.3 - vitest: 0.33.0(happy-dom@10.10.0) + vitest: 0.33.0(happy-dom@10.10.4) dev: true /@vitest/utils@0.33.0: @@ -3415,14 +3382,6 @@ packages: pretty-format: 29.6.2 dev: true - /@vitest/utils@0.34.1: - resolution: {integrity: sha512-/ql9dsFi4iuEbiNcjNHQWXBum7aL8pyhxvfnD9gNtbjR9fUKAjxhj4AA3yfLXg6gJpMGGecvtF8Au2G9y3q47Q==} - dependencies: - diff-sequences: 29.4.3 - loupe: 2.3.6 - pretty-format: 29.6.2 - dev: true - /@volar/language-core@1.10.0: resolution: {integrity: sha512-ddyWwSYqcbEZNFHm+Z3NZd6M7Ihjcwl/9B5cZd8kECdimVXUFdFi60XHWD27nrWtUQIsUYIG7Ca1WBwV2u2LSQ==} dependencies: @@ -3473,7 +3432,7 @@ packages: vue: optional: true dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 '@rollup/pluginutils': 5.0.2(rollup@3.27.2) '@vue/compiler-sfc': 3.3.4 ast-kit: 0.9.4(rollup@3.27.2) @@ -3487,17 +3446,17 @@ packages: /@vue/babel-helper-vue-transform-on@1.1.5: resolution: {integrity: sha512-SgUymFpMoAyWeYWLAY+MkCK3QEROsiUnfaw5zxOVD/M64KQs8D/4oK6Q5omVA2hnvEOE0SCkH2TZxs/jnnUj7w==} - /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.22.9): + /@vue/babel-plugin-jsx@1.1.5(@babel/core@7.22.10): resolution: {integrity: sha512-nKs1/Bg9U1n3qSWnsHhCVQtAzI6aQXqua8j/bZrau8ywT1ilXQbK4FwEJGmU8fV7tcpuFvWmmN7TMmV1OBma1g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/helper-module-imports': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) '@babel/template': 7.22.5 - '@babel/traverse': 7.22.8 - '@babel/types': 7.22.5 + '@babel/traverse': 7.22.10 + '@babel/types': 7.22.10 '@vue/babel-helper-vue-transform-on': 1.1.5 camelcase: 6.3.0 html-tags: 3.3.1 @@ -3508,7 +3467,7 @@ packages: /@vue/compiler-core@3.3.4: resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} dependencies: - '@babel/parser': 7.22.7 + '@babel/parser': 7.22.10 '@vue/shared': 3.3.4 estree-walker: 2.0.2 source-map-js: 1.0.2 @@ -3522,7 +3481,7 @@ packages: /@vue/compiler-sfc@3.3.4: resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} dependencies: - '@babel/parser': 7.22.7 + '@babel/parser': 7.22.10 '@vue/compiler-core': 3.3.4 '@vue/compiler-dom': 3.3.4 '@vue/compiler-ssr': 3.3.4 @@ -3563,7 +3522,7 @@ packages: /@vue/reactivity-transform@3.3.4: resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} dependencies: - '@babel/parser': 7.22.7 + '@babel/parser': 7.22.10 '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 estree-walker: 2.0.2 @@ -4120,7 +4079,7 @@ packages: resolution: {integrity: sha512-UrZHsdj87OS6NM+IXRii+asdAUA/P0SMa4r1NrZvsUy72hDvCYwk8c9PsbKf1MvJ0BvP+rF1B8tFP54eT370Tg==} engines: {node: '>=16.14.0'} dependencies: - '@babel/parser': 7.22.7 + '@babel/parser': 7.22.10 '@rollup/pluginutils': 5.0.2(rollup@3.27.2) pathe: 1.1.1 transitivePeerDependencies: @@ -4138,8 +4097,8 @@ packages: resolution: {integrity: sha512-vdCU9JvpsrxWxvJiRHAr8If8cu07LWJXDPhkqLiP4ErbN1fu/mK623QGmU4Qbn2Nq4Mx0vR/Q017B6+HcHg1aQ==} engines: {node: '>=16.14.0'} dependencies: - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 dev: false /async-sema@3.1.1: @@ -4182,31 +4141,31 @@ packages: - supports-color dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.22.9): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.22.10): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.22.9 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.9) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.9) + '@babel/core': 7.22.10 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.10) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.10) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.22.10) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.10) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.10) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.10) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.22.10) dev: true /babel-walk@3.0.0-canary-5: resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 dev: false /bail@2.0.2: @@ -4328,7 +4287,7 @@ packages: defu: 6.1.2 dotenv: 16.3.1 giget: 1.1.2 - jiti: 1.19.1 + jiti: 1.19.3 mlly: 1.4.0 ohash: 1.1.3 pathe: 1.1.1 @@ -4463,7 +4422,7 @@ packages: pkg-types: 1.0.3 scule: 1.0.0 semver: 7.5.4 - std-env: 3.3.3 + std-env: 3.4.0 yaml: 2.3.1 transitivePeerDependencies: - supports-color @@ -4687,8 +4646,8 @@ packages: /constantinople@4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} dependencies: - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 dev: false /convert-gitmoji@0.1.3: @@ -6028,7 +5987,7 @@ packages: typescript: '>3.6.0' webpack: ^5.11.0 dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 chalk: 4.1.2 chokidar: 3.5.3 cosmiconfig: 7.1.0 @@ -6350,8 +6309,8 @@ packages: uncrypto: 0.1.3 unenv: 1.7.1 - /happy-dom@10.10.0: - resolution: {integrity: sha512-rpWFSemZoid3OKuzMs47CDUOnAYV10vYlXaVBPD+dBDHTAFkyIIpkHXx8gd/uWMyf+XOluQNnxImWp17SprE2Q==} + /happy-dom@10.10.4: + resolution: {integrity: sha512-aEEFGSSs4DEJbxXvSMsIvJvvdsZbJZQEgtHsU4GgwNKbSbFxtgu6vXHmn4XoXnuElIbXV0xhbJiiQTxPnTmJcw==} dependencies: css.escape: 1.5.1 entities: 4.5.0 @@ -6931,8 +6890,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.22.9 - '@babel/parser': 7.22.7 + '@babel/core': 7.22.10 + '@babel/parser': 7.22.10 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -6997,7 +6956,7 @@ packages: resolution: {integrity: sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 '@jest/types': 29.6.1 '@types/stack-utils': 2.0.1 chalk: 4.1.2 @@ -7026,15 +6985,15 @@ packages: resolution: {integrity: sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.22.9 - '@babel/generator': 7.22.9 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.9) - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.9) - '@babel/types': 7.22.5 + '@babel/core': 7.22.10 + '@babel/generator': 7.22.10 + '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) + '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.10) + '@babel/types': 7.22.10 '@jest/expect-utils': 29.6.2 '@jest/transform': 29.6.2 '@jest/types': 29.6.1 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.9) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.10) chalk: 4.1.2 expect: 29.6.2 graceful-fs: 4.2.11 @@ -7078,8 +7037,8 @@ packages: merge-stream: 2.0.0 supports-color: 8.1.1 - /jiti@1.19.1: - resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==} + /jiti@1.19.3: + resolution: {integrity: sha512-5eEbBDQT/jF1xg6l36P+mWGGoH9Spuy0PCdSr2dtWRDGC6ph/w9ZCL4lmESW8f8F7MwT3XKescfP0wnZWAKL9w==} hasBin: true /js-beautify@1.14.9: @@ -7237,7 +7196,7 @@ packages: get-port-please: 3.0.1 h3: 1.8.0 http-shutdown: 1.2.2 - jiti: 1.19.1 + jiti: 1.19.3 mlly: 1.4.0 node-forge: 1.3.1 pathe: 1.1.1 @@ -8010,7 +7969,7 @@ packages: esbuild: 0.18.20 fs-extra: 11.1.1 globby: 13.2.2 - jiti: 1.19.1 + jiti: 1.19.3 mlly: 1.4.0 mri: 1.2.0 pathe: 1.1.1 @@ -8111,7 +8070,7 @@ packages: http-graceful-shutdown: 3.1.13 http-proxy: 1.18.1 is-primitive: 3.0.1 - jiti: 1.19.1 + jiti: 1.19.3 klona: 2.0.6 knitwork: 1.0.0 listhen: 1.3.0 @@ -8135,7 +8094,7 @@ packages: serve-placeholder: 2.0.1 serve-static: 1.15.0 source-map-support: 0.5.21 - std-env: 3.3.3 + std-env: 3.4.0 ufo: 1.2.0 uncrypto: 0.1.3 unenv: 1.7.1 @@ -8288,7 +8247,7 @@ packages: dependencies: '@nuxt/kit': link:packages/kit defu: 6.1.2 - jiti: 1.19.1 + jiti: 1.19.3 pathe: 1.1.1 untyped: 1.4.0 transitivePeerDependencies: @@ -8306,7 +8265,7 @@ packages: - vue dev: true - /nuxt-vitest@0.10.2(@vitejs/plugin-vue-jsx@3.0.1)(@vitejs/plugin-vue@4.2.3)(happy-dom@10.10.0)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): + /nuxt-vitest@0.10.2(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.1)(happy-dom@10.10.4)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): resolution: {integrity: sha512-cYEvFY5iU0fV3xccdunV1vAlgyda3Tf7HEyPGrI/4KMAouwtIDIyuu2SgU3WOFqpNbhbAQbI5COLISodOeUHBQ==} peerDependencies: '@vitejs/plugin-vue': '*' @@ -8315,16 +8274,16 @@ packages: vitest: ^0.24.5 || ^0.26.0 || ^0.27.0 || ^0.28.0 || ^0.29.0 || ^0.30.0 || ^0.33.0 dependencies: '@nuxt/kit': link:packages/kit - '@vitejs/plugin-vue': 4.2.3(vite@4.4.9)(vue@3.3.4) - '@vitejs/plugin-vue-jsx': 3.0.1(vite@4.4.9)(vue@3.3.4) + '@vitejs/plugin-vue': 4.3.1(vite@4.4.9)(vue@3.3.4) + '@vitejs/plugin-vue-jsx': 3.0.2(vite@4.4.9)(vue@3.3.4) '@vitest/ui': 0.33.0(vitest@0.33.0) defu: 6.1.2 get-port-please: 3.0.1 perfect-debounce: 1.0.0 - std-env: 3.3.3 + std-env: 3.4.0 vite: 4.4.9(@types/node@18.17.5) - vitest: 0.33.0(happy-dom@10.10.0) - vitest-environment-nuxt: 0.10.2(happy-dom@10.10.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + vitest: 0.33.0(happy-dom@10.10.4) + vitest-environment-nuxt: 0.10.2(happy-dom@10.10.4)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) transitivePeerDependencies: - '@vue/server-renderer' - happy-dom @@ -8519,7 +8478,7 @@ packages: resolution: {integrity: sha512-SZfJe/y9fbpeXZU+Kf7cSG2G7rnGP50hUYzCvcWyhp7hYzA3YXGthpkGfv6NSt0oo6QbcRyKwycg/6dpG5p8aw==} deprecated: Please migrate to https://github.com/unjs/magicast dependencies: - '@babel/parser': 7.22.7 + '@babel/parser': 7.22.10 '@types/estree': 1.0.1 recast: 0.22.0 dev: true @@ -8561,7 +8520,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -8710,8 +8669,8 @@ packages: mlly: 1.4.0 pathe: 1.1.1 - /playwright-core@1.37.0: - resolution: {integrity: sha512-1c46jhTH/myQw6sesrcuHVtLoSNfJv8Pfy9t3rs6subY7kARv0HRw5PpyfPYPpPtQvBOmgbE6K+qgYUpj81LAA==} + /playwright-core@1.37.1: + resolution: {integrity: sha512-17EuQxlSIYCmEMwzMqusJ2ztDgJePjrbttaefgdsiqeLWidjYz9BxXaTaZWxH1J95SHGk6tjE+dwgWILJoUZfA==} engines: {node: '>=16'} hasBin: true dev: true @@ -8840,7 +8799,7 @@ packages: webpack: ^5.0.0 dependencies: cosmiconfig: 8.2.0 - jiti: 1.19.1 + jiti: 1.19.3 postcss: 8.4.28 semver: 7.5.4 webpack: 5.88.2 @@ -9603,7 +9562,7 @@ packages: rollup: 3.27.2 typescript: 5.1.6 optionalDependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 dev: true /rollup-plugin-visualizer@5.9.2(rollup@3.27.2): @@ -9976,8 +9935,8 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - /std-env@3.3.3: - resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} + /std-env@3.4.0: + resolution: {integrity: sha512-YqHeQIIQ8r1VtUZOTOyjsAXAsjr369SplZ5rlQaiJTBsvodvPSCME7vuz8pnQltbQ0Cw0lyFo5Q8uyNwYQ58Xw==} /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} @@ -10094,7 +10053,7 @@ packages: commander: 10.0.1 consola: 2.15.3 glob: 8.1.0 - jiti: 1.19.1 + jiti: 1.19.3 json5: 2.2.3 jsonc-parser: 3.2.0 lodash.template: 4.5.0 @@ -10275,11 +10234,6 @@ packages: engines: {node: '>=14.0.0'} dev: true - /tinypool@0.7.0: - resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} - engines: {node: '>=14.0.0'} - dev: true - /tinyspy@2.1.1: resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} engines: {node: '>=14.0.0'} @@ -10481,7 +10435,7 @@ packages: esbuild: 0.17.19 globby: 13.2.2 hookable: 5.5.3 - jiti: 1.19.1 + jiti: 1.19.3 magic-string: 0.30.2 mkdist: 1.3.0(typescript@5.1.6) mlly: 1.4.0 @@ -10651,7 +10605,7 @@ packages: vue-router: optional: true dependencies: - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 '@rollup/pluginutils': 5.0.2(rollup@3.27.2) '@vue-macros/common': 1.6.2(rollup@3.27.2)(vue@3.3.4) ast-walker-scope: 0.4.2 @@ -10741,11 +10695,11 @@ packages: resolution: {integrity: sha512-Egkr/s4zcMTEuulcIb7dgURS6QpN7DyqQYdf+jBtiaJvQ+eRsrtWUoX84SbvQWuLkXsOjM+8sJC9u6KoMK/U7Q==} hasBin: true dependencies: - '@babel/core': 7.22.9 + '@babel/core': 7.22.10 '@babel/standalone': 7.22.9 - '@babel/types': 7.22.5 + '@babel/types': 7.22.10 defu: 6.1.2 - jiti: 1.19.1 + jiti: 1.19.3 mri: 1.2.0 scule: 1.0.0 transitivePeerDependencies: @@ -10878,28 +10832,6 @@ packages: - supports-color - terser - /vite-node@0.34.1(@types/node@18.17.5): - resolution: {integrity: sha512-odAZAL9xFMuAg8aWd7nSPT+hU8u2r9gU3LRm9QKjxBEF2rRdWpMuqkrkjvyVQEdNFiBctqr2Gg4uJYizm5Le6w==} - engines: {node: '>=v14.18.0'} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4 - mlly: 1.4.0 - pathe: 1.1.1 - picocolors: 1.0.0 - vite: 4.4.9(@types/node@18.17.5) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /vite-plugin-checker@0.6.1(eslint@8.47.0)(typescript@5.1.6)(vite@4.4.9)(vue-tsc@1.8.8): resolution: {integrity: sha512-4fAiu3W/IwRJuJkkUZlWbLunSzsvijDf0eDN6g/MGh6BUK4SMclOTGbLJCPvdAcMOQvVmm8JyJeYLYd4//8CkA==} engines: {node: '>=14.16'} @@ -10931,7 +10863,7 @@ packages: vue-tsc: optional: true dependencies: - '@babel/code-frame': 7.22.5 + '@babel/code-frame': 7.22.10 ansi-escapes: 4.3.2 chalk: 4.1.2 chokidar: 3.5.3 @@ -10989,7 +10921,7 @@ packages: optionalDependencies: fsevents: 2.3.2 - /vitest-environment-nuxt@0.10.2(happy-dom@10.10.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): + /vitest-environment-nuxt@0.10.2(happy-dom@10.10.4)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): resolution: {integrity: sha512-CgOS0KW0zhyDVvfHbq+CbkCa/sA2Ui/SMrp0W0vDgzhaUTCuo7WtJ211HwYqGhj3YvSRopOByRPkUDFQjr3wiw==} peerDependencies: happy-dom: ^9.10.9 || ^10.0.0 @@ -11008,11 +10940,11 @@ packages: defu: 6.1.2 estree-walker: 3.0.3 h3: 1.8.0 - happy-dom: 10.10.0 + happy-dom: 10.10.4 magic-string: 0.30.2 ofetch: 1.1.1 unenv: 1.7.1 - vitest: 0.33.0(happy-dom@10.10.0) + vitest: 0.33.0(happy-dom@10.10.4) vue: 3.3.4 vue-router: 4.2.4(vue@3.3.4) whatwg-fetch: 3.6.17 @@ -11020,7 +10952,7 @@ packages: - '@vue/server-renderer' dev: true - /vitest@0.33.0(happy-dom@10.10.0): + /vitest@0.33.0(happy-dom@10.10.4): resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} engines: {node: '>=v14.18.0'} hasBin: true @@ -11064,12 +10996,12 @@ packages: cac: 6.7.14 chai: 4.3.7 debug: 4.3.4 - happy-dom: 10.10.0 + happy-dom: 10.10.4 local-pkg: 0.4.3 magic-string: 0.30.2 pathe: 1.1.1 picocolors: 1.0.0 - std-env: 3.3.3 + std-env: 3.4.0 strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.6.0 @@ -11086,72 +11018,6 @@ packages: - terser dev: true - /vitest@0.34.1(happy-dom@10.10.0): - resolution: {integrity: sha512-G1PzuBEq9A75XSU88yO5G4vPT20UovbC/2osB2KEuV/FisSIIsw7m5y2xMdB7RsAGHAfg2lPmp2qKr3KWliVlQ==} - engines: {node: '>=v14.18.0'} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' - happy-dom: '*' - jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true - dependencies: - '@types/chai': 4.3.5 - '@types/chai-subset': 1.3.3 - '@types/node': 18.17.5 - '@vitest/expect': 0.34.1 - '@vitest/runner': 0.34.1 - '@vitest/snapshot': 0.34.1 - '@vitest/spy': 0.34.1 - '@vitest/utils': 0.34.1 - acorn: 8.10.0 - acorn-walk: 8.2.0 - cac: 6.7.14 - chai: 4.3.7 - debug: 4.3.4 - happy-dom: 10.10.0 - local-pkg: 0.4.3 - magic-string: 0.30.2 - pathe: 1.1.1 - picocolors: 1.0.0 - std-env: 3.3.3 - strip-literal: 1.3.0 - tinybench: 2.5.0 - tinypool: 0.7.0 - vite: 4.4.9(@types/node@18.17.5) - vite-node: 0.34.1(@types/node@18.17.5) - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /void-elements@3.1.0: resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} engines: {node: '>=0.10.0'} @@ -11448,7 +11314,7 @@ packages: chalk: 4.1.2 consola: 2.15.3 pretty-time: 1.1.0 - std-env: 3.3.3 + std-env: 3.4.0 webpack: 5.88.2 dev: false @@ -11520,8 +11386,8 @@ packages: resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/parser': 7.22.7 - '@babel/types': 7.22.5 + '@babel/parser': 7.22.10 + '@babel/types': 7.22.10 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 dev: false diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 3cd19a653c..2ce5d99d22 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -35,7 +35,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"64.6k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2352k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2348k"') const packages = modules.files .filter(m => m.endsWith('package.json')) diff --git a/test/fixtures/basic-types/package.json b/test/fixtures/basic-types/package.json index 560bf99f72..a286c1ef0d 100644 --- a/test/fixtures/basic-types/package.json +++ b/test/fixtures/basic-types/package.json @@ -10,7 +10,7 @@ }, "devDependencies": { "ofetch": "latest", - "vitest": "latest", + "vitest": "0.33.0", "vue-router": "latest", "vue": "latest" } From 09971c62a0d66e44f30329e1c581a7f271b00e62 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Sat, 19 Aug 2023 16:37:12 +0200 Subject: [PATCH 698/912] docs: mention `NuxtIsland` in server only components docs (#22685) --- docs/2.guide/2.directory-structure/1.components.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/2.guide/2.directory-structure/1.components.md b/docs/2.guide/2.directory-structure/1.components.md index 89c7db94b2..70fab5e8c8 100644 --- a/docs/2.guide/2.directory-structure/1.components.md +++ b/docs/2.guide/2.directory-structure/1.components.md @@ -312,6 +312,8 @@ Now you can register server-only components with the `.server` suffix and use th ``` +Server-only components use `` under the hood, meaning that `lazy` prop and `#fallback` slot are both passed down to ``. + ::alert{type=info} Slots can be interactive and are wrapped within a `
` with `display: contents;` :: From 7b35a1fe4faed49fffe3427a0db4aabae138f4ae Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 21 Aug 2023 09:25:51 +0200 Subject: [PATCH 699/912] chore(deps): update all non-major dependencies (main) (#22705) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 4 +- packages/nuxt/package.json | 6 +- packages/schema/package.json | 4 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 230 ++++++++++++++++++++++------------ 6 files changed, 157 insertions(+), 91 deletions(-) diff --git a/package.json b/package.json index ed78ff9195..52455bd1cf 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@nuxt/webpack-builder": "workspace:*", "@nuxtjs/eslint-config-typescript": "12.0.0", "@types/fs-extra": "11.0.1", - "@types/node": "18.17.5", + "@types/node": "18.17.6", "@types/semver": "7.5.0", "case-police": "0.6.1", "chalk": "5.3.0", @@ -54,7 +54,7 @@ "consola": "3.2.3", "devalue": "4.3.2", "eslint": "8.47.0", - "eslint-plugin-import": "2.28.0", + "eslint-plugin-import": "2.28.1", "eslint-plugin-jsdoc": "41.1.2", "eslint-plugin-no-only-tests": "3.1.0", "execa": "7.2.0", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 4858e5e330..c3cf5a807f 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -58,9 +58,9 @@ "@nuxt/telemetry": "^2.4.1", "@nuxt/ui-templates": "^1.3.1", "@nuxt/vite-builder": "workspace:../vite", - "@unhead/dom": "^1.3.4", - "@unhead/ssr": "^1.3.4", - "@unhead/vue": "^1.3.4", + "@unhead/dom": "^1.3.5", + "@unhead/ssr": "^1.3.5", + "@unhead/vue": "^1.3.5", "@vue/shared": "^3.3.4", "acorn": "8.10.0", "c12": "^1.4.2", diff --git a/packages/schema/package.json b/packages/schema/package.json index 69bd3b349b..c05afaefc7 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -30,11 +30,11 @@ "@types/file-loader": "5.0.1", "@types/pug": "2.0.6", "@types/sass-loader": "8.0.5", - "@unhead/schema": "1.3.4", + "@unhead/schema": "1.3.5", "@vitejs/plugin-vue": "4.3.1", "@vitejs/plugin-vue-jsx": "3.0.2", "@vue/compiler-core": "3.3.4", - "esbuild-loader": "4.0.0", + "esbuild-loader": "4.0.1", "h3": "1.8.0", "ignore": "5.2.4", "nitropack": "2.5.2", diff --git a/packages/vite/package.json b/packages/vite/package.json index 7bcd7c2aee..0b174d10a3 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -59,7 +59,7 @@ "unplugin": "^1.4.0", "vite": "^4.4.9", "vite-node": "^0.33.0", - "vite-plugin-checker": "^0.6.1", + "vite-plugin-checker": "^0.6.2", "vue-bundle-renderer": "^2.0.0" }, "peerDependencies": { diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 67313fff0c..99b154c49a 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -26,7 +26,7 @@ "css-minimizer-webpack-plugin": "^5.0.1", "cssnano": "^6.0.1", "defu": "^6.1.2", - "esbuild-loader": "^4.0.0", + "esbuild-loader": "^4.0.1", "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", "file-loader": "^6.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ee3c22e6b..f3304391ca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,8 +36,8 @@ importers: specifier: 11.0.1 version: 11.0.1 '@types/node': - specifier: 18.17.5 - version: 18.17.5 + specifier: 18.17.6 + version: 18.17.6 '@types/semver': specifier: 7.5.0 version: 7.5.0 @@ -63,8 +63,8 @@ importers: specifier: 8.47.0 version: 8.47.0 eslint-plugin-import: - specifier: 2.28.0 - version: 2.28.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) + specifier: 2.28.1 + version: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) eslint-plugin-jsdoc: specifier: 41.1.2 version: 41.1.2(eslint@8.47.0) @@ -130,7 +130,7 @@ importers: version: 1.2.0 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.5) + version: 4.4.9(@types/node@18.17.6) vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.10.4) @@ -233,7 +233,7 @@ importers: version: 1.2.1 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.5) + version: 4.4.9(@types/node@18.17.6) vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.10.4) @@ -368,14 +368,14 @@ importers: specifier: ^14.18.0 || >=16.10.0 version: 18.17.5 '@unhead/dom': - specifier: ^1.3.4 - version: 1.3.4 + specifier: ^1.3.5 + version: 1.3.5 '@unhead/ssr': - specifier: ^1.3.4 - version: 1.3.4 + specifier: ^1.3.5 + version: 1.3.5 '@unhead/vue': - specifier: ^1.3.4 - version: 1.3.4(vue@3.3.4) + specifier: ^1.3.5 + version: 1.3.5(vue@3.3.4) '@vue/shared': specifier: ^3.3.4 version: 3.3.4 @@ -583,8 +583,8 @@ importers: specifier: 8.0.5 version: 8.0.5 '@unhead/schema': - specifier: 1.3.4 - version: 1.3.4 + specifier: 1.3.5 + version: 1.3.5 '@vitejs/plugin-vue': specifier: 4.3.1 version: 4.3.1(vite@4.4.9)(vue@3.3.4) @@ -595,8 +595,8 @@ importers: specifier: 3.3.4 version: 3.3.4 esbuild-loader: - specifier: 4.0.0 - version: 4.0.0(webpack@5.88.2) + specifier: 4.0.1 + version: 4.0.1(webpack@5.88.2) h3: specifier: 1.8.0 version: 1.8.0 @@ -614,7 +614,7 @@ importers: version: 2.3.1 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.5) + version: 4.4.9(@types/node@18.17.6) vue: specifier: 3.3.4 version: 3.3.4 @@ -777,13 +777,13 @@ importers: version: 1.4.0 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.5) + version: 4.4.9(@types/node@18.17.6) vite-node: specifier: ^0.33.0 - version: 0.33.0(@types/node@18.17.5) + version: 0.33.0(@types/node@18.17.6) vite-plugin-checker: - specifier: ^0.6.1 - version: 0.6.1(eslint@8.47.0)(typescript@5.1.6)(vite@4.4.9)(vue-tsc@1.8.8) + specifier: ^0.6.2 + version: 0.6.2(eslint@8.47.0)(typescript@5.1.6)(vite@4.4.9)(vue-tsc@1.8.8) vue-bundle-renderer: specifier: ^2.0.0 version: 2.0.0 @@ -831,8 +831,8 @@ importers: specifier: ^6.1.2 version: 6.1.2 esbuild-loader: - specifier: ^4.0.0 - version: 4.0.0(webpack@5.88.2) + specifier: ^4.0.1 + version: 4.0.1(webpack@5.88.2) escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -2124,7 +2124,7 @@ packages: dependencies: '@jest/fake-timers': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 18.17.5 + '@types/node': 18.17.6 jest-mock: 29.6.2 dev: true @@ -2151,7 +2151,7 @@ packages: dependencies: '@jest/types': 29.6.1 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 18.17.5 + '@types/node': 18.17.6 jest-message-util: 29.6.2 jest-mock: 29.6.2 jest-util: 29.6.2 @@ -2205,7 +2205,7 @@ packages: '@jest/schemas': 29.6.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.17.5 + '@types/node': 18.17.6 '@types/yargs': 17.0.24 chalk: 4.1.2 @@ -2500,8 +2500,8 @@ packages: '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6) '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) eslint: 8.47.0 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0) - eslint-plugin-import: 2.28.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.47.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) eslint-plugin-vue: 9.16.1(eslint@8.47.0) transitivePeerDependencies: - eslint-import-resolver-node @@ -2516,8 +2516,8 @@ packages: eslint: ^8.23.0 dependencies: eslint: 8.47.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.28.0)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.47.0) - eslint-plugin-import: 2.28.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) + eslint-config-standard: 17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.47.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) eslint-plugin-n: 15.7.0(eslint@8.47.0) eslint-plugin-node: 11.1.0(eslint@8.47.0) eslint-plugin-promise: 6.1.1(eslint@8.47.0) @@ -2855,7 +2855,7 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.17.5 + '@types/node': 18.17.6 dev: true /@types/debug@4.1.8: @@ -2899,7 +2899,7 @@ packages: /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 18.17.5 + '@types/node': 18.17.6 dev: true /@types/hash-sum@1.0.0: @@ -2915,7 +2915,7 @@ packages: /@types/http-proxy@1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: - '@types/node': 18.17.5 + '@types/node': 18.17.6 /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} @@ -2940,7 +2940,7 @@ packages: /@types/jsonfile@6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 18.17.5 + '@types/node': 18.17.6 dev: true /@types/lodash-es@4.17.8: @@ -2970,12 +2970,15 @@ packages: /@types/node-sass@4.11.3: resolution: {integrity: sha512-wXPCn3t9uu5rR4zXNSLasZHQMuRzUKBsdi4MsgT8uq4Lp1gQQo+T2G23tGj4SSgDHeNBle6vGseZtM2XV/X9bw==} dependencies: - '@types/node': 18.17.5 + '@types/node': 18.17.6 dev: true /@types/node@18.17.5: resolution: {integrity: sha512-xNbS75FxH6P4UXTPUJp/zNPq6/xsfdJKussCWNOnz4aULWIRwMgP1LgaB5RiBnMX1DPCYenuqGZfnIAx5mbFLA==} + /@types/node@18.17.6: + resolution: {integrity: sha512-fGmT/P7z7ecA6bv/ia5DlaWCH4YeZvAQMNpUhrJjtAhOhZfoxS1VLUgU2pdk63efSjQaOJWdXMuAJsws+8I6dg==} + /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true @@ -3082,7 +3085,7 @@ packages: /@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 18.17.5 + '@types/node': 18.17.6 '@types/source-list-map': 0.1.2 source-map: 0.7.4 dev: true @@ -3096,7 +3099,7 @@ packages: /@types/webpack@4.41.33: resolution: {integrity: sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==} dependencies: - '@types/node': 18.17.5 + '@types/node': 18.17.6 '@types/tapable': 1.0.8 '@types/uglify-js': 3.17.1 '@types/webpack-sources': 3.2.0 @@ -3242,41 +3245,41 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@unhead/dom@1.3.4: - resolution: {integrity: sha512-wQK31cqjcZHqmMLI0PEDbzigp0KwQjG4P/H8BybcARvGQoaWdgZkiOu+iYmW0sl7e5V08CBL+PXiyiJ1TU6K3Q==} + /@unhead/dom@1.3.5: + resolution: {integrity: sha512-WwwiJ85VugfvCgydizuOXlGGbVUY+JLOB1Ls7gEqJO2WIMGSKYA+5ILn17UmCUXGBVWpLdELbedjkTmxIdXPJw==} dependencies: - '@unhead/schema': 1.3.4 - '@unhead/shared': 1.3.4 + '@unhead/schema': 1.3.5 + '@unhead/shared': 1.3.5 dev: false - /@unhead/schema@1.3.4: - resolution: {integrity: sha512-9a/5l6YpyW36ud0AKRkHzIVc9mWBxFqvE/ASFLjef2trmHhIVNewu5hjegotAO3uNSxC32AX4FoeJBgTDpYmHA==} + /@unhead/schema@1.3.5: + resolution: {integrity: sha512-K1ubX/0pFGhjhiPRBemWl94ca6fyZYAQP5DUSwyW+VMqjWqzlE5rdjtUU0vsmHQOaFRFUCpTX4w4dtHdv3ut+Q==} dependencies: hookable: 5.5.3 zhead: 2.0.10 - /@unhead/shared@1.3.4: - resolution: {integrity: sha512-cBi6gIdSxl5kNrVWJS3zTXsyTeF6JQmub2SQEWzLnCy/+S/1K0pmrbj5d1B01AKBVKgJ4UVS+AaAfKfXKyv4tg==} + /@unhead/shared@1.3.5: + resolution: {integrity: sha512-r5diAXP9qxhZz3Nvxjk69dkhsdduvW+cPnOdzPWhpbCk1lHugGz+if09AX+M7NoAlLJQBmqFiFkTZS/JrtTZhg==} dependencies: - '@unhead/schema': 1.3.4 + '@unhead/schema': 1.3.5 dev: false - /@unhead/ssr@1.3.4: - resolution: {integrity: sha512-aovNY0LPMZbOSJ46arLIV9y7kj6agqFnI1HtK+mupbGgTkEIwQhlrL1Xm8P8SP0HijR4j4Wkv9qOErMeVmzlUg==} + /@unhead/ssr@1.3.5: + resolution: {integrity: sha512-5akS3enT8kZxxaL8PPJh7uK/vCfJ8SI7A6JO8RvF9SOUfv3pwqvw5GboKiAgzEbIf1oDzka/vDGaLD8TvtJSCw==} dependencies: - '@unhead/schema': 1.3.4 - '@unhead/shared': 1.3.4 + '@unhead/schema': 1.3.5 + '@unhead/shared': 1.3.5 dev: false - /@unhead/vue@1.3.4(vue@3.3.4): - resolution: {integrity: sha512-+LIQ/2W2Kyo0+Z3OvdpOh54tx+LOVURt9dbudHdol2wpioZ6JN6VJlOBBaesIrHqj48fSQP10GdaZDqrIkNUgw==} + /@unhead/vue@1.3.5(vue@3.3.4): + resolution: {integrity: sha512-9i5dvtk27BFqNrrTLv1A9hHfbAaKDn6NuzMI8945Js41A/uEs0kVAmvdtVMCL9s3dy6jWqme/Th4JUzVS5tl+g==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@unhead/schema': 1.3.4 - '@unhead/shared': 1.3.4 + '@unhead/schema': 1.3.5 + '@unhead/shared': 1.3.5 hookable: 5.5.3 - unhead: 1.3.4 + unhead: 1.3.5 vue: 3.3.4 dev: false @@ -3314,7 +3317,7 @@ packages: '@babel/core': 7.22.10 '@babel/plugin-transform-typescript': 7.22.10(@babel/core@7.22.10) '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.10) - vite: 4.4.9(@types/node@18.17.5) + vite: 4.4.9(@types/node@18.17.6) vue: 3.3.4 transitivePeerDependencies: - supports-color @@ -5285,13 +5288,13 @@ packages: resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} dev: true - /esbuild-loader@4.0.0(webpack@5.88.2): - resolution: {integrity: sha512-J7TJWyHV2YHmflZaXLZ0Vf4wYmixDyGTw26bt4Ok+XOqSyYA4VWAVt2zJGqIfCA7TwZRDKN8hvus4akN2yAbmA==} + /esbuild-loader@4.0.1(webpack@5.88.2): + resolution: {integrity: sha512-y65bkn+qJX+FEXQESLL3cv8c1KSjVRXE0+TDT4bBBYxqaOcq4AidQL03bgHqnDgS+HZBhqtEPdM9tWk36/cWjQ==} peerDependencies: webpack: ^4.40.0 || ^5.0.0 dependencies: esbuild: 0.19.2 - get-tsconfig: 4.6.2 + get-tsconfig: 4.7.0 loader-utils: 2.0.4 webpack: 5.88.2 webpack-sources: 1.4.3 @@ -5408,7 +5411,7 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - /eslint-config-standard@17.1.0(eslint-plugin-import@2.28.0)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.47.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.47.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -5418,7 +5421,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.47.0 - eslint-plugin-import: 2.28.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) eslint-plugin-n: 15.7.0(eslint@8.47.0) eslint-plugin-promise: 6.1.1(eslint@8.47.0) dev: true @@ -5433,7 +5436,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.47.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5444,7 +5447,7 @@ packages: enhanced-resolve: 5.15.0 eslint: 8.47.0 eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) - eslint-plugin-import: 2.28.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) get-tsconfig: 4.6.2 globby: 13.2.2 is-core-module: 2.13.0 @@ -5482,7 +5485,7 @@ packages: debug: 3.2.7 eslint: 8.47.0 eslint-import-resolver-node: 0.3.8 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.0)(eslint@8.47.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.47.0) transitivePeerDependencies: - supports-color dev: true @@ -5509,8 +5512,8 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-import@2.28.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0): - resolution: {integrity: sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q==} + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0): + resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -5536,7 +5539,6 @@ packages: object.fromentries: 2.0.6 object.groupby: 1.0.0 object.values: 1.1.6 - resolve: 1.22.4 semver: 6.3.1 tsconfig-paths: 3.14.2 transitivePeerDependencies: @@ -5831,7 +5833,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/expect-utils': 29.6.2 - '@types/node': 18.17.5 + '@types/node': 18.17.6 jest-get-type: 29.4.3 jest-matcher-utils: 29.6.2 jest-message-util: 29.6.2 @@ -6141,6 +6143,12 @@ packages: resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} dependencies: resolve-pkg-maps: 1.0.0 + dev: true + + /get-tsconfig@4.7.0: + resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} + dependencies: + resolve-pkg-maps: 1.0.0 /giget@1.1.2: resolution: {integrity: sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==} @@ -6929,7 +6937,7 @@ packages: dependencies: '@jest/types': 29.6.1 '@types/graceful-fs': 4.1.6 - '@types/node': 18.17.5 + '@types/node': 18.17.6 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -6972,7 +6980,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 18.17.5 + '@types/node': 18.17.6 jest-util: 29.6.2 dev: true @@ -7014,7 +7022,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 18.17.5 + '@types/node': 18.17.6 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -7024,7 +7032,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.17.5 + '@types/node': 18.17.6 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -7032,7 +7040,7 @@ packages: resolution: {integrity: sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.17.5 + '@types/node': 18.17.6 jest-util: 29.6.2 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -8281,7 +8289,7 @@ packages: get-port-please: 3.0.1 perfect-debounce: 1.0.0 std-env: 3.4.0 - vite: 4.4.9(@types/node@18.17.5) + vite: 4.4.9(@types/node@18.17.6) vitest: 0.33.0(happy-dom@10.10.4) vitest-environment-nuxt: 0.10.2(happy-dom@10.10.4)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) transitivePeerDependencies: @@ -10479,12 +10487,12 @@ packages: node-fetch-native: 1.2.0 pathe: 1.1.1 - /unhead@1.3.4: - resolution: {integrity: sha512-cSl5Xsmb99JzV0lE0D9TQxU9sU2vu3ZMdeIBy48Y0J6XVVY4WXVAyhbeSzhLVRaBfjYn7O43BGsgN7TjxSCSrg==} + /unhead@1.3.5: + resolution: {integrity: sha512-T7WBnrRvpvYw4PntaSfz45atpr83ZlZvZ5vULhbMZtiv/wlFYuknd/wWT8+EPfCJjVStyJX4MZ1DH8ux0h3QIQ==} dependencies: - '@unhead/dom': 1.3.4 - '@unhead/schema': 1.3.4 - '@unhead/shared': 1.3.4 + '@unhead/dom': 1.3.5 + '@unhead/schema': 1.3.5 + '@unhead/shared': 1.3.5 hookable: 5.5.3 dev: false @@ -10831,9 +10839,32 @@ packages: - sugarss - supports-color - terser + dev: true - /vite-plugin-checker@0.6.1(eslint@8.47.0)(typescript@5.1.6)(vite@4.4.9)(vue-tsc@1.8.8): - resolution: {integrity: sha512-4fAiu3W/IwRJuJkkUZlWbLunSzsvijDf0eDN6g/MGh6BUK4SMclOTGbLJCPvdAcMOQvVmm8JyJeYLYd4//8CkA==} + /vite-node@0.33.0(@types/node@18.17.6): + resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==} + engines: {node: '>=v14.18.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + mlly: 1.4.0 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 4.4.9(@types/node@18.17.6) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: false + + /vite-plugin-checker@0.6.2(eslint@8.47.0)(typescript@5.1.6)(vite@4.4.9)(vue-tsc@1.8.8): + resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==} engines: {node: '>=14.16'} peerDependencies: eslint: '>=7' @@ -10878,7 +10909,7 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.1.6 - vite: 4.4.9(@types/node@18.17.5) + vite: 4.4.9(@types/node@18.17.6) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 @@ -10921,6 +10952,41 @@ packages: optionalDependencies: fsevents: 2.3.2 + /vite@4.4.9(@types/node@18.17.6): + resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 18.17.6 + esbuild: 0.18.20 + postcss: 8.4.28 + rollup: 3.27.2 + optionalDependencies: + fsevents: 2.3.2 + /vitest-environment-nuxt@0.10.2(happy-dom@10.10.4)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): resolution: {integrity: sha512-CgOS0KW0zhyDVvfHbq+CbkCa/sA2Ui/SMrp0W0vDgzhaUTCuo7WtJ211HwYqGhj3YvSRopOByRPkUDFQjr3wiw==} peerDependencies: From a2f2a4748e30dfa1f9141bd0aad6b008efdae9df Mon Sep 17 00:00:00 2001 From: pooya parsa Date: Wed, 23 Aug 2023 09:30:53 +0200 Subject: [PATCH 700/912] feat(nuxt): upgrade nitro + reduce node-specific usage (#22515) Co-authored-by: Heb --- .../2.guide/2.directory-structure/1.server.md | 2 +- docs/3.api/1.composables/use-request-event.md | 2 +- package.json | 2 +- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxi/src/commands/analyze.ts | 4 +- packages/nuxt/package.json | 2 +- packages/nuxt/src/app/composables/cookie.ts | 4 +- packages/nuxt/src/app/composables/ssr.ts | 5 +- packages/nuxt/src/core/nitro.ts | 6 +- packages/nuxt/src/core/runtime/nitro/error.ts | 14 +- .../nuxt/src/core/runtime/nitro/renderer.ts | 38 +- packages/schema/package.json | 2 +- packages/vite/src/client.ts | 9 +- packages/vite/src/vite-node.ts | 2 +- pnpm-lock.yaml | 582 ++++++++++-------- test/bundle.test.ts | 53 +- 17 files changed, 367 insertions(+), 364 deletions(-) diff --git a/docs/2.guide/2.directory-structure/1.server.md b/docs/2.guide/2.directory-structure/1.server.md index 55b10d5747..68e418f4ff 100644 --- a/docs/2.guide/2.directory-structure/1.server.md +++ b/docs/2.guide/2.directory-structure/1.server.md @@ -14,7 +14,7 @@ Nuxt automatically scans files inside these directories to register API and serv Each file should export a default function defined with `defineEventHandler()` or `eventHandler()` (alias). -The handler can directly return JSON data, a `Promise` or use `event.node.res.end()` to send a response. +The handler can directly return JSON data, a `Promise`, or use `event.node.res.end()` to send a response. **Example:** Create the `/api/hello` route with `server/api/hello.ts` file: diff --git a/docs/3.api/1.composables/use-request-event.md b/docs/3.api/1.composables/use-request-event.md index bb71f4e75f..68ddeeec85 100644 --- a/docs/3.api/1.composables/use-request-event.md +++ b/docs/3.api/1.composables/use-request-event.md @@ -12,7 +12,7 @@ Within your pages, components, and plugins you can use `useRequestEvent` to acce const event = useRequestEvent() // Get the URL -const url = event.node.req.url +const url = event.path ``` ::alert{icon=👉} diff --git a/package.json b/package.json index 52455bd1cf..d6fc6ed6dd 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "happy-dom": "10.10.4", "jiti": "1.19.3", "markdownlint-cli": "^0.33.0", - "nitropack": "2.5.2", + "nitropack": "2.6.0", "nuxi": "workspace:*", "nuxt": "workspace:*", "nuxt-vitest": "0.10.2", diff --git a/packages/kit/package.json b/packages/kit/package.json index e6f552bf90..a81789ecaf 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -44,7 +44,7 @@ "@types/lodash-es": "4.17.8", "@types/semver": "7.5.0", "lodash-es": "4.17.21", - "nitropack": "2.5.2", + "nitropack": "2.6.0", "unbuild": "latest", "vite": "4.4.9", "vitest": "0.33.0", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index da0a5a5aa6..ec0070de6d 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -41,7 +41,7 @@ "listhen": "1.3.0", "mlly": "1.4.0", "mri": "1.2.0", - "nitropack": "2.5.2", + "nitropack": "2.6.0", "ohash": "1.1.3", "pathe": "1.1.1", "perfect-debounce": "1.0.0", diff --git a/packages/nuxi/src/commands/analyze.ts b/packages/nuxi/src/commands/analyze.ts index 36323082d6..caf21d29cc 100644 --- a/packages/nuxi/src/commands/analyze.ts +++ b/packages/nuxi/src/commands/analyze.ts @@ -1,6 +1,6 @@ import { promises as fsp } from 'node:fs' import { join, resolve } from 'pathe' -import { createApp, eventHandler, lazyEventHandler, toNodeListener } from 'h3' +import { createApp, eventHandler, lazyEventHandler, send, toNodeListener } from 'h3' import { listen } from 'listhen' import type { NuxtAnalyzeMeta } from '@nuxt/schema' import { defu } from 'defu' @@ -77,7 +77,7 @@ export default defineNuxtCommand({ const serveFile = (filePath: string) => lazyEventHandler(async () => { const contents = await fsp.readFile(filePath, 'utf-8') - return eventHandler((event) => { event.node.res.end(contents) }) + return eventHandler(event => send(event, contents)) }) console.info('Starting stats server...') diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index c3cf5a807f..e22aab143f 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -81,7 +81,7 @@ "knitwork": "^1.0.0", "magic-string": "^0.30.2", "mlly": "^1.4.0", - "nitropack": "^2.5.2", + "nitropack": "^2.6.0", "nuxi": "workspace:../nuxi", "nypm": "^0.3.0", "ofetch": "^1.1.1", diff --git a/packages/nuxt/src/app/composables/cookie.ts b/packages/nuxt/src/app/composables/cookie.ts index c5925c892d..a6eaed8511 100644 --- a/packages/nuxt/src/app/composables/cookie.ts +++ b/packages/nuxt/src/app/composables/cookie.ts @@ -2,7 +2,7 @@ import type { Ref } from 'vue' import { getCurrentInstance, nextTick, onUnmounted, ref, toRaw, watch } from 'vue' import type { CookieParseOptions, CookieSerializeOptions } from 'cookie-es' import { parse, serialize } from 'cookie-es' -import { deleteCookie, getCookie, setCookie } from 'h3' +import { deleteCookie, getCookie, getRequestHeader, setCookie } from 'h3' import type { H3Event } from 'h3' import destr from 'destr' import { isEqual } from 'ohash' @@ -80,7 +80,7 @@ export function useCookie (name: string, _opts?: function readRawCookies (opts: CookieOptions = {}): Record | undefined { if (import.meta.server) { - return parse(useRequestEvent()?.node.req.headers.cookie || '', opts) + return parse(getRequestHeader(useRequestEvent(), 'cookie') || '', opts) } else if (import.meta.client) { return parse(document.cookie, opts) } diff --git a/packages/nuxt/src/app/composables/ssr.ts b/packages/nuxt/src/app/composables/ssr.ts index c72e3c1373..f81b0d8d5c 100644 --- a/packages/nuxt/src/app/composables/ssr.ts +++ b/packages/nuxt/src/app/composables/ssr.ts @@ -1,5 +1,5 @@ import type { H3Event } from 'h3' -import { setResponseStatus as _setResponseStatus } from 'h3' +import { setResponseStatus as _setResponseStatus, getRequestHeaders } from 'h3' import type { NuxtApp } from '../nuxt' import { useNuxtApp } from '../nuxt' @@ -7,7 +7,8 @@ export function useRequestHeaders (include: K[]): { [ export function useRequestHeaders (): Readonly> export function useRequestHeaders (include?: any[]) { if (import.meta.client) { return {} } - const headers = useNuxtApp().ssrContext?.event.node.req.headers ?? {} + const event = useNuxtApp().ssrContext?.event + const headers = event ? getRequestHeaders(event) : {} if (!include) { return headers } return Object.fromEntries(include.map(key => key.toLowerCase()).filter(key => headers[key]).map(key => [key, headers[key]])) } diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index eaed6dd2d6..686af285a5 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -35,7 +35,6 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { console.warn(`[nuxt] Could not load custom \`spaLoadingTemplate\` path as it does not exist: \`${spaLoadingTemplate}\`.`) } - // @ts-expect-error `typescriptBundlerResolution` coming in next nitro version const nitroConfig: NitroConfig = defu(_nitroConfig, { debug: nuxt.options.debug, rootDir: nuxt.options.rootDir, @@ -44,9 +43,8 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { dev: nuxt.options.dev, buildDir: nuxt.options.buildDir, experimental: { - // @ts-expect-error `typescriptBundlerResolution` coming in next nitro version - typescriptBundlerResolution: nuxt.options.experimental.typescriptBundlerResolution || nuxt.options.typescript?.tsConfig?.compilerOptions?.moduleResolution?.toLowerCase() === 'bundler' || _nitroConfig.typescript?.tsConfig?.compilerOptions?.moduleResolution?.toLowerCase() === 'bundler', - asyncContext: nuxt.options.experimental.asyncContext + asyncContext: nuxt.options.experimental.asyncContext, + typescriptBundlerResolution: nuxt.options.experimental.typescriptBundlerResolution || nuxt.options.typescript?.tsConfig?.compilerOptions?.moduleResolution?.toLowerCase() === 'bundler' || _nitroConfig.typescript?.tsConfig?.compilerOptions?.moduleResolution?.toLowerCase() === 'bundler' }, imports: { autoImport: nuxt.options.imports.autoImport as boolean, diff --git a/packages/nuxt/src/core/runtime/nitro/error.ts b/packages/nuxt/src/core/runtime/nitro/error.ts index 1a0fc62023..a85570f523 100644 --- a/packages/nuxt/src/core/runtime/nitro/error.ts +++ b/packages/nuxt/src/core/runtime/nitro/error.ts @@ -1,7 +1,7 @@ import { joinURL, withQuery } from 'ufo' import type { NitroErrorHandler } from 'nitropack' import type { H3Error } from 'h3' -import { getRequestHeaders, setResponseHeader, setResponseStatus } from 'h3' +import { getRequestHeaders, send, setResponseHeader, setResponseStatus } from 'h3' import { useNitroApp, useRuntimeConfig } from '#internal/nitro' import { isJsonRequest, normalizeError } from '#internal/nitro/utils' @@ -11,7 +11,7 @@ export default async function errorhandler (error: H3Error, // Create an error object const errorObject = { - url: event.node.req.url, + url: event.path, statusCode, statusMessage, message, @@ -41,12 +41,11 @@ export default async function errorhandler (error: H3Error, // JSON response if (isJsonRequest(event)) { setResponseHeader(event, 'Content-Type', 'application/json') - event.node.res.end(JSON.stringify(errorObject)) - return + return send(event, JSON.stringify(errorObject)) } // HTML response (via SSR) - const isErrorPage = event.node.req.url?.startsWith('/__nuxt_error') + const isErrorPage = event.path.startsWith('/__nuxt_error') const res = !isErrorPage ? await useNitroApp().localFetch(withQuery(joinURL(useRuntimeConfig().app.baseURL, '/__nuxt_error'), errorObject), { headers: getRequestHeaders(event) as Record, @@ -67,8 +66,7 @@ export default async function errorhandler (error: H3Error, } if (event.handled) { return } setResponseHeader(event, 'Content-Type', 'text/html;charset=UTF-8') - event.node.res.end(template(errorObject)) - return + return send(event, template(errorObject)) } const html = await res.text() @@ -79,5 +77,5 @@ export default async function errorhandler (error: H3Error, } setResponseStatus(event, res.status && res.status !== 200 ? res.status : undefined, res.statusText) - event.node.res.end(html) + return send(event, html) } diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 1cfda97721..bc2b75cb9a 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -9,7 +9,7 @@ import { import type { RenderResponse } from 'nitropack' import type { Manifest } from 'vite' import type { H3Event } from 'h3' -import { appendResponseHeader, createError, getQuery, readBody, writeEarlyHints } from 'h3' +import { appendResponseHeader, createError, getQuery, getResponseStatus, getResponseStatusText, readBody, writeEarlyHints } from 'h3' import devalue from '@nuxt/devalue' import { stringify, uneval } from 'devalue' import destr from 'destr' @@ -170,16 +170,16 @@ const islandPropCache = import.meta.prerender ? useStorage('internal:nuxt:preren async function getIslandContext (event: H3Event): Promise { // TODO: Strict validation for url - let url = event.node.req.url || '' - if (import.meta.prerender && event.node.req.url && await islandPropCache!.hasItem(event.node.req.url)) { + let url = event.path || '' + if (import.meta.prerender && event.path && await islandPropCache!.hasItem(event.path)) { // rehydrate props from cache so we can rerender island if cache does not have it any more - url = await islandPropCache!.getItem(event.node.req.url) as string + url = await islandPropCache!.getItem(event.path) as string } url = url.substring('/__nuxt_island'.length + 1) || '' const [componentName, hashId] = url.split('?')[0].split('_') // TODO: Validate context - const context = event.node.req.method === 'GET' ? getQuery(event) : await readBody(event) + const context = event.method === 'GET' ? getQuery(event) : await readBody(event) const ctx: NuxtIslandContext = { url: '/', @@ -202,7 +202,7 @@ export default defineRenderHandler(async (event): Promise : null @@ -210,7 +210,7 @@ export default defineRenderHandler(async (event): Promise> + if (import.meta.prerender && islandContext && event.path && await islandCache!.hasItem(event.path)) { + return islandCache!.getItem(event.path) as Promise> } // Request url - let url = ssrError?.url as string || islandContext?.url || event.node.req.url! + let url = ssrError?.url as string || islandContext?.url || event.path // Whether we are rendering payload route const isRenderingPayload = PAYLOAD_URL_RE.test(url) && !islandContext if (isRenderingPayload) { url = url.substring(0, url.lastIndexOf('/')) || '/' + + event._path = url event.node.req.url = url if (import.meta.prerender && await payloadCache!.hasItem(url)) { return payloadCache!.getItem(url) as Promise> @@ -435,8 +437,8 @@ export default defineRenderHandler(async (event): Promise { - // Workaround: vite devmiddleware modifies req.url - const originalURL = event.node.req.url! - const viteRoutes = viteServer.middlewares.stack.map(m => m.route).filter(r => r.length > 1) - if (!originalURL.startsWith(clientConfig.base!) && !viteRoutes.some(route => originalURL.startsWith(route))) { + if (!event.path.startsWith(clientConfig.base!) && !viteRoutes.some(route => event.path.startsWith(route))) { // @ts-expect-error _skip_transform is a private property event.node.req._skip_transform = true } + // Workaround: vite devmiddleware modifies req.url + const _originalPath = event.node.req.url await new Promise((resolve, reject) => { viteServer.middlewares.handle(event.node.req, event.node.res, (err: Error) => { - event.node.req.url = originalURL + event.node.req.url = _originalPath return err ? reject(err) : resolve(null) }) }) diff --git a/packages/vite/src/vite-node.ts b/packages/vite/src/vite-node.ts index 72252af725..9f3a8e93cc 100644 --- a/packages/vite/src/vite-node.ts +++ b/packages/vite/src/vite-node.ts @@ -141,7 +141,7 @@ function createViteNodeApp (ctx: ViteBuildContext, invalidates: Set = ne } return eventHandler(async (event) => { - const moduleId = decodeURI(event.node.req.url!).substring(1) + const moduleId = decodeURI(event.path).substring(1) if (moduleId === '/') { throw createError({ statusCode: 400 }) } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f3304391ca..ff09d7714f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -93,8 +93,8 @@ importers: specifier: ^0.33.0 version: 0.33.0 nitropack: - specifier: 2.5.2 - version: 2.5.2 + specifier: 2.6.0 + version: 2.6.0 nuxi: specifier: workspace:* version: link:packages/nuxi @@ -208,7 +208,7 @@ importers: version: 2.3.1 unimport: specifier: ^3.1.3 - version: 3.1.3(rollup@3.27.2) + version: 3.1.3(rollup@3.28.1) untyped: specifier: ^1.4.0 version: 1.4.0 @@ -226,11 +226,11 @@ importers: specifier: 4.17.21 version: 4.17.21 nitropack: - specifier: 2.5.2 - version: 2.5.2 + specifier: 2.6.0 + version: 2.6.0 unbuild: specifier: latest - version: 1.2.1 + version: 2.0.0(typescript@5.1.6) vite: specifier: 4.4.9 version: 4.4.9(@types/node@18.17.6) @@ -317,8 +317,8 @@ importers: specifier: 1.2.0 version: 1.2.0 nitropack: - specifier: 2.5.2 - version: 2.5.2 + specifier: 2.6.0 + version: 2.6.0 ohash: specifier: 1.1.3 version: 1.1.3 @@ -342,7 +342,7 @@ importers: version: 1.2.0 unbuild: specifier: latest - version: 1.2.1 + version: 2.0.0(typescript@5.1.6) packages/nuxt: dependencies: @@ -366,7 +366,7 @@ importers: version: link:../vite '@types/node': specifier: ^14.18.0 || >=16.10.0 - version: 18.17.5 + version: 18.17.6 '@unhead/dom': specifier: ^1.3.5 version: 1.3.5 @@ -437,8 +437,8 @@ importers: specifier: ^1.4.0 version: 1.4.0 nitropack: - specifier: ^2.5.2 - version: 2.5.2 + specifier: ^2.6.0 + version: 2.6.0 nuxi: specifier: workspace:* version: link:../nuxi @@ -447,7 +447,7 @@ importers: version: 0.3.0 ofetch: specifier: ^1.1.1 - version: 1.1.1 + version: 1.2.1 ohash: specifier: ^1.1.3 version: 1.1.3 @@ -489,13 +489,13 @@ importers: version: 1.7.1 unimport: specifier: ^3.1.3 - version: 3.1.3(rollup@3.27.2) + version: 3.1.3(rollup@3.28.1) unplugin: specifier: ^1.4.0 version: 1.4.0 unplugin-vue-router: specifier: ^0.6.4 - version: 0.6.4(rollup@3.27.2)(vue-router@4.2.4)(vue@3.3.4) + version: 0.6.4(rollup@3.28.1)(vue-router@4.2.4)(vue@3.3.4) untyped: specifier: ^1.4.0 version: 1.4.0 @@ -529,10 +529,10 @@ importers: version: 4.3.1(vite@4.4.9)(vue@3.3.4) unbuild: specifier: latest - version: 1.2.1 + version: 2.0.0(typescript@5.1.6) vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.5) + version: 4.4.9(@types/node@18.17.6) vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.10.4) @@ -565,7 +565,7 @@ importers: version: 1.2.0 unimport: specifier: ^3.1.3 - version: 3.1.3(rollup@3.27.2) + version: 3.1.3(rollup@3.28.1) untyped: specifier: ^1.4.0 version: 1.4.0 @@ -604,11 +604,11 @@ importers: specifier: 5.2.4 version: 5.2.4 nitropack: - specifier: 2.5.2 - version: 2.5.2 + specifier: 2.6.0 + version: 2.6.0 unbuild: specifier: latest - version: 1.2.1 + version: 2.0.0(typescript@5.1.6) unctx: specifier: 2.3.1 version: 2.3.1 @@ -656,7 +656,7 @@ importers: version: 3.0.1 ofetch: specifier: ^1.1.1 - version: 1.1.1 + version: 1.2.1 pathe: specifier: ^1.1.1 version: 1.1.1 @@ -675,7 +675,7 @@ importers: version: 1.37.1 unbuild: specifier: latest - version: 1.2.1 + version: 2.0.0(typescript@5.1.6) vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.10.4) @@ -687,7 +687,7 @@ importers: version: link:../kit '@rollup/plugin-replace': specifier: ^5.0.2 - version: 5.0.2(rollup@3.27.2) + version: 5.0.2(rollup@3.28.1) '@vitejs/plugin-vue': specifier: ^4.3.1 version: 4.3.1(vite@4.4.9)(vue@3.3.4) @@ -762,7 +762,7 @@ importers: version: 10.1.3(postcss@8.4.28) rollup-plugin-visualizer: specifier: ^5.9.2 - version: 5.9.2(rollup@3.27.2) + version: 5.9.2(rollup@3.28.1) std-env: specifier: ^3.4.0 version: 3.4.0 @@ -802,7 +802,7 @@ importers: version: 11.0.1 unbuild: specifier: latest - version: 1.2.1 + version: 2.0.0(typescript@5.1.6) vue: specifier: 3.3.4 version: 3.3.4 @@ -959,7 +959,7 @@ importers: version: 0.1.1 unbuild: specifier: latest - version: 1.2.1 + version: 2.0.0(typescript@5.1.6) vue: specifier: 3.3.4 version: 3.3.4 @@ -1000,7 +1000,7 @@ importers: devDependencies: ofetch: specifier: latest - version: 1.1.1 + version: 1.2.1 vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.10.4) @@ -1064,6 +1064,7 @@ packages: /@babel/code-frame@7.22.10: resolution: {integrity: sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==} engines: {node: '>=6.9.0'} + requiresBuild: true dependencies: '@babel/highlight': 7.22.10 chalk: 2.4.2 @@ -1242,6 +1243,7 @@ packages: /@babel/highlight@7.22.10: resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==} engines: {node: '>=6.9.0'} + requiresBuild: true dependencies: '@babel/helper-validator-identifier': 7.22.5 chalk: 2.4.2 @@ -2260,12 +2262,24 @@ packages: - encoding - supports-color - /@netlify/functions@1.6.0: - resolution: {integrity: sha512-6G92AlcpFrQG72XU8YH8pg94eDnq7+Q0YJhb8x4qNpdGsvuzvrfHWBmqFGp/Yshmv4wex9lpsTRZOocdrA2erQ==} + /@netlify/functions@2.0.1: + resolution: {integrity: sha512-YrgCmz078II0LKknXKj5NbtGBuzek1JC+ZYi4xHcLhZD+HIGlerlmkhnVydWVPoA7fdd2IeSUd9CFFL7bY+y5Q==} engines: {node: '>=14.0.0'} dependencies: + '@netlify/serverless-functions-api': 1.7.1 is-promise: 4.0.0 + /@netlify/node-cookies@0.1.0: + resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} + engines: {node: ^14.16.0 || >=16.0.0} + + /@netlify/serverless-functions-api@1.7.1: + resolution: {integrity: sha512-vF9g62n+BFfBXtWtmVBJ5debyMERVDtuLlMlKDPYBp6QjEuJnaggxczLlRofZ2mtsBXs7mAlna6gIcBswFLJJQ==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@netlify/node-cookies': 0.1.0 + urlpattern-polyfill: 8.0.2 + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2303,6 +2317,7 @@ packages: - '@azure/identity' - '@azure/keyvault-secrets' - '@azure/storage-blob' + - '@capacitor/preferences' - '@planetscale/database' - '@upstash/redis' - '@vercel/kv' @@ -2405,7 +2420,7 @@ packages: unist-util-position: 5.0.0 unist-util-stringify-position: 4.0.0 unist-util-visit: 5.0.0 - unstorage: 1.8.0 + unstorage: 1.9.0 ws: 8.13.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -2414,10 +2429,12 @@ packages: - '@azure/identity' - '@azure/keyvault-secrets' - '@azure/storage-blob' + - '@capacitor/preferences' - '@planetscale/database' - '@upstash/redis' - '@vercel/kv' - bufferutil + - idb-keyval - supports-color - utf-8-validate dev: true @@ -2458,7 +2475,7 @@ packages: mri: 1.2.0 nanoid: 4.0.2 node-fetch: 3.3.2 - ofetch: 1.1.1 + ofetch: 1.2.1 parse-git-config: 3.0.0 pathe: 1.1.1 rc9: 2.1.1 @@ -2607,6 +2624,15 @@ packages: micromatch: 4.0.5 napi-wasm: 1.1.0 + /@parcel/watcher-wasm@2.3.0-alpha.3: + resolution: {integrity: sha512-kTkqlYhGhCM9EaoZMyjNzqKRSdTyp/vN+/uoJ2fzN+UCiWUI+jMKacwnBgu13T1F0mrcNqEWtYEXTRaZmnml1w==} + engines: {node: '>= 10.0.0'} + dependencies: + is-glob: 4.0.3 + micromatch: 4.0.5 + bundledDependencies: + - napi-wasm + /@parcel/watcher-win32-arm64@2.2.0: resolution: {integrity: sha512-z225cPn3aygJsyVUOWwfyW+fY0Tvk7N3XCOl66qUPFxpbuXeZuiuuJemmtm8vxyqa3Ur7peU/qJxrpC64aeI7Q==} engines: {node: '>= 10.0.0'} @@ -2665,7 +2691,7 @@ packages: /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} - /@rollup/plugin-alias@5.0.0(rollup@3.27.2): + /@rollup/plugin-alias@5.0.0(rollup@3.28.1): resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2674,10 +2700,10 @@ packages: rollup: optional: true dependencies: - rollup: 3.27.2 + rollup: 3.28.1 slash: 4.0.0 - /@rollup/plugin-commonjs@24.1.0(rollup@3.27.2): + /@rollup/plugin-commonjs@24.1.0(rollup@3.28.1): resolution: {integrity: sha512-eSL45hjhCWI0jCCXcNtLVqM5N1JlBGvlFfY0m6oOYnLCJ6N0qEXoZql4sY2MOUArzhH4SA/qBpTxvvZp2Sc+DQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2686,17 +2712,17 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.27.2) + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.30.2 - rollup: 3.27.2 + rollup: 3.28.1 dev: true - /@rollup/plugin-commonjs@25.0.3(rollup@3.27.2): - resolution: {integrity: sha512-uBdtWr/H3BVcgm97MUdq2oJmqBR23ny1hOrWe2PKo9FTbjsGqg32jfasJUKYAI5ouqacjRnj65mBB/S79F+GQA==} + /@rollup/plugin-commonjs@25.0.4(rollup@3.28.1): + resolution: {integrity: sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.68.0||^3.0.0 @@ -2704,15 +2730,15 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.27.2) + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 magic-string: 0.30.2 - rollup: 3.27.2 + rollup: 3.28.1 - /@rollup/plugin-inject@5.0.3(rollup@3.27.2): + /@rollup/plugin-inject@5.0.3(rollup@3.28.1): resolution: {integrity: sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2721,12 +2747,12 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.27.2) + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) estree-walker: 2.0.2 magic-string: 0.30.2 - rollup: 3.27.2 + rollup: 3.28.1 - /@rollup/plugin-json@6.0.0(rollup@3.27.2): + /@rollup/plugin-json@6.0.0(rollup@3.28.1): resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2735,11 +2761,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.27.2) - rollup: 3.27.2 + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + rollup: 3.28.1 - /@rollup/plugin-node-resolve@15.1.0(rollup@3.27.2): - resolution: {integrity: sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA==} + /@rollup/plugin-node-resolve@15.2.1(rollup@3.28.1): + resolution: {integrity: sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^2.78.0||^3.0.0 @@ -2747,15 +2773,15 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.27.2) + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 is-module: 1.0.0 resolve: 1.22.4 - rollup: 3.27.2 + rollup: 3.28.1 - /@rollup/plugin-replace@5.0.2(rollup@3.27.2): + /@rollup/plugin-replace@5.0.2(rollup@3.28.1): resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2764,11 +2790,11 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.27.2) + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) magic-string: 0.30.2 - rollup: 3.27.2 + rollup: 3.28.1 - /@rollup/plugin-terser@0.4.3(rollup@3.27.2): + /@rollup/plugin-terser@0.4.3(rollup@3.28.1): resolution: {integrity: sha512-EF0oejTMtkyhrkwCdg0HJ0IpkcaVg1MMSf2olHb2Jp+1mnLM04OhjpJWGma4HobiDTF0WCyViWuvadyE9ch2XA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2777,12 +2803,12 @@ packages: rollup: optional: true dependencies: - rollup: 3.27.2 + rollup: 3.28.1 serialize-javascript: 6.0.1 smob: 1.4.0 terser: 5.19.2 - /@rollup/plugin-wasm@6.1.3(rollup@3.27.2): + /@rollup/plugin-wasm@6.1.3(rollup@3.28.1): resolution: {integrity: sha512-7ItTTeyauE6lwdDtQWceEHZ9+txbi4RRy0mYPFn9BW7rD7YdgBDu7HTHsLtHrRzJc313RM/1m6GKgV3np/aEaw==} engines: {node: '>=14.0.0'} peerDependencies: @@ -2791,7 +2817,7 @@ packages: rollup: optional: true dependencies: - rollup: 3.27.2 + rollup: 3.28.1 /@rollup/pluginutils@4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} @@ -2800,8 +2826,8 @@ packages: estree-walker: 2.0.2 picomatch: 2.3.1 - /@rollup/pluginutils@5.0.2(rollup@3.27.2): - resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + /@rollup/pluginutils@5.0.3(rollup@3.28.1): + resolution: {integrity: sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0 @@ -2812,7 +2838,7 @@ packages: '@types/estree': 1.0.1 estree-walker: 2.0.2 picomatch: 2.3.1 - rollup: 3.27.2 + rollup: 3.28.1 /@sinclair/typebox@0.27.8: resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -2893,7 +2919,7 @@ packages: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 18.17.5 + '@types/node': 18.17.6 dev: true /@types/graceful-fs@4.1.6: @@ -2973,9 +2999,6 @@ packages: '@types/node': 18.17.6 dev: true - /@types/node@18.17.5: - resolution: {integrity: sha512-xNbS75FxH6P4UXTPUJp/zNPq6/xsfdJKussCWNOnz4aULWIRwMgP1LgaB5RiBnMX1DPCYenuqGZfnIAx5mbFLA==} - /@types/node@18.17.6: resolution: {integrity: sha512-fGmT/P7z7ecA6bv/ia5DlaWCH4YeZvAQMNpUhrJjtAhOhZfoxS1VLUgU2pdk63efSjQaOJWdXMuAJsws+8I6dg==} @@ -2998,7 +3021,7 @@ packages: /@types/prompts@2.4.4: resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} dependencies: - '@types/node': 18.17.5 + '@types/node': 18.17.6 kleur: 3.0.3 dev: true @@ -3012,7 +3035,7 @@ packages: /@types/sass-loader@8.0.5: resolution: {integrity: sha512-3b3lQ+UwWanaPBzOcP1YeNTR4q0Klt2UEezhdIjDXkTnQ93F+fnv+z1tMsQBAopY0b+c5ATN5pHQ+vfzxaRnFg==} dependencies: - '@types/node': 18.17.5 + '@types/node': 18.17.6 '@types/node-sass': 4.11.3 '@types/webpack': 4.41.33 sass: 1.64.2 @@ -3059,7 +3082,7 @@ packages: /@types/webpack-bundle-analyzer@4.6.0: resolution: {integrity: sha512-XeQmQCCXdZdap+A/60UKmxW5Mz31Vp9uieGlHB3T4z/o2OLVLtTI3bvTuS6A2OWd/rbAAQiGGWIEFQACu16szA==} dependencies: - '@types/node': 18.17.5 + '@types/node': 18.17.6 tapable: 2.2.1 webpack: 5.88.2 transitivePeerDependencies: @@ -3287,8 +3310,8 @@ packages: resolution: {integrity: sha512-2WoM6O9VyuHDPAnvCXr7LBJQ8ZRHDnuQAFsL1dWXp561Iq2l9whdNtPuMcozLGJGUUrFfVBXIrHY4sfxxScgWg==} dev: true - /@vercel/nft@0.22.6: - resolution: {integrity: sha512-gTsFnnT4mGxodr4AUlW3/urY+8JKKB452LwF3m477RFUJTAaDmcz2JqFuInzvdybYIeyIv1sSONEJxsxnbQ5JQ==} + /@vercel/nft@0.23.1: + resolution: {integrity: sha512-NE0xSmGWVhgHF1OIoir71XAd0W0C1UE3nzFyhpFiMr3rVhetww7NvM1kc41trBsPG37Bh+dE5FYCTMzM/gBu0w==} engines: {node: '>=14'} hasBin: true dependencies: @@ -3329,7 +3352,7 @@ packages: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.4.9(@types/node@18.17.5) + vite: 4.4.9(@types/node@18.17.6) vue: 3.3.4 /@vitest/expect@0.33.0: @@ -3426,7 +3449,7 @@ packages: vue-template-compiler: 2.7.14 dev: true - /@vue-macros/common@1.6.2(rollup@3.27.2)(vue@3.3.4): + /@vue-macros/common@1.6.2(rollup@3.28.1)(vue@3.3.4): resolution: {integrity: sha512-1RtMew9RxBvPgUhwQPBismenqHzfeFGycJbrseZ7RQsofE0FG7zoHeElYS1LADTcLXN6lA7FAnE7VlW7MaHu2w==} engines: {node: '>=16.14.0'} peerDependencies: @@ -3436,9 +3459,9 @@ packages: optional: true dependencies: '@babel/types': 7.22.10 - '@rollup/pluginutils': 5.0.2(rollup@3.27.2) + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) '@vue/compiler-sfc': 3.3.4 - ast-kit: 0.9.4(rollup@3.27.2) + ast-kit: 0.9.4(rollup@3.28.1) local-pkg: 0.4.3 magic-string-ast: 0.3.0 vue: 3.3.4 @@ -3954,11 +3977,26 @@ packages: normalize-path: 3.0.0 readable-stream: 2.3.8 - /archiver@5.3.1: - resolution: {integrity: sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==} + /archiver-utils@3.0.3: + resolution: {integrity: sha512-fXzpEZTKgBJMWy0eUT0/332CAQnJ27OJd7sGcvNZzxS2Yzg7iITivMhXOm+zUTO4vT8ZqlPCqiaLPmB8qWhWRA==} engines: {node: '>= 10'} dependencies: - archiver-utils: 2.1.0 + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + /archiver@6.0.0: + resolution: {integrity: sha512-EPGa+bYaxaMiCT8DCbEDqFz8IjeBSExrJzyUOJx2FBkFJ/OZzJuso3lMSk901M50gMqXxTQcumlGajOFlXhVhw==} + engines: {node: '>= 12.0.0'} + dependencies: + archiver-utils: 3.0.3 async: 3.2.4 buffer-crc32: 0.2.13 readable-stream: 3.6.2 @@ -4078,12 +4116,12 @@ packages: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /ast-kit@0.9.4(rollup@3.27.2): + /ast-kit@0.9.4(rollup@3.28.1): resolution: {integrity: sha512-UrZHsdj87OS6NM+IXRii+asdAUA/P0SMa4r1NrZvsUy72hDvCYwk8c9PsbKf1MvJ0BvP+rF1B8tFP54eT370Tg==} engines: {node: '>=16.14.0'} dependencies: '@babel/parser': 7.22.10 - '@rollup/pluginutils': 5.0.2(rollup@3.27.2) + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) pathe: 1.1.1 transitivePeerDependencies: - rollup @@ -4418,8 +4456,8 @@ packages: convert-gitmoji: 0.1.3 execa: 7.2.0 mri: 1.2.0 - node-fetch-native: 1.2.0 - ofetch: 1.1.1 + node-fetch-native: 1.4.0 + ofetch: 1.2.1 open: 9.1.0 pathe: 1.1.1 pkg-types: 1.0.3 @@ -5092,11 +5130,11 @@ packages: tslib: 2.6.1 dev: true - /dot-prop@7.2.0: - resolution: {integrity: sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + /dot-prop@8.0.2: + resolution: {integrity: sha512-xaBe6ZT4DHPkg0k4Ytbvn5xoxgpG0jOS1dYxSOwAHPuNLjP3/OzN0gH55SrLqpx8cBfSaVt91lXYkApjb+nYdQ==} + engines: {node: '>=16'} dependencies: - type-fest: 2.19.0 + type-fest: 3.13.1 /dotenv@16.3.1: resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} @@ -5448,7 +5486,7 @@ packages: eslint: 8.47.0 eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) - get-tsconfig: 4.6.2 + get-tsconfig: 4.7.0 globby: 13.2.2 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -5793,9 +5831,6 @@ packages: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} engines: {node: '>= 0.6'} - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - /events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -5959,15 +5994,6 @@ packages: tabbable: 6.2.0 dev: true - /follow-redirects@1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: @@ -6139,12 +6165,6 @@ packages: get-intrinsic: 1.2.1 dev: true - /get-tsconfig@4.6.2: - resolution: {integrity: sha512-E5XrT4CbbXcXWy+1jChlZmrmCwd5KGx502kDCXJJ7y898TtWW9FwoG5HfOLVRKmlmDGkWN2HM9Ho+/Y8F0sJDg==} - dependencies: - resolve-pkg-maps: 1.0.0 - dev: true - /get-tsconfig@4.7.0: resolution: {integrity: sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw==} dependencies: @@ -6158,7 +6178,7 @@ packages: defu: 6.1.2 https-proxy-agent: 5.0.1 mri: 1.2.0 - node-fetch-native: 1.2.0 + node-fetch-native: 1.4.0 pathe: 1.1.1 tar: 6.1.15 transitivePeerDependencies: @@ -6312,10 +6332,10 @@ packages: defu: 6.1.2 destr: 2.0.1 iron-webcrypto: 0.8.0 - radix3: 1.0.1 + radix3: 1.1.0 ufo: 1.2.0 uncrypto: 0.1.3 - unenv: 1.7.1 + unenv: 1.7.3 /happy-dom@10.10.4: resolution: {integrity: sha512-aEEFGSSs4DEJbxXvSMsIvJvvdsZbJZQEgtHsU4GgwNKbSbFxtgu6vXHmn4XoXnuElIbXV0xhbJiiQTxPnTmJcw==} @@ -6499,24 +6519,6 @@ packages: statuses: 2.0.1 toidentifier: 1.0.1 - /http-graceful-shutdown@3.1.13: - resolution: {integrity: sha512-Ci5LRufQ8AtrQ1U26AevS8QoMXDOhnAHCJI3eZu1com7mZGHxREmw3dNj85ftpQokQCvak8nI2pnFS8zyM1M+Q==} - engines: {node: '>=4.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - - /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} - dependencies: - eventemitter3: 4.0.7 - follow-redirects: 1.15.2 - requires-port: 1.0.0 - transitivePeerDependencies: - - debug - /http-shutdown@1.2.2: resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -6530,6 +6532,9 @@ packages: transitivePeerDependencies: - supports-color + /httpxy@0.1.2: + resolution: {integrity: sha512-8IldwriN7eS7Pe1pPRE6L7S1LW551lBJ3N9oI4HLYGZTXl2JBkdINEi+mDZwhwykw1OBVI2li3zhPSi7r1N8lQ==} + /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -7210,7 +7215,28 @@ packages: pathe: 1.1.1 ufo: 1.2.0 untun: 0.1.1 - uqr: 0.1.0 + uqr: 0.1.2 + + /listhen@1.4.0: + resolution: {integrity: sha512-gEOMJKTak+WLjPITBVbv2kR0WKVUSnl5XPwvoFYheyaQPzh/jdA+pRZeUujJkjabNMDsBxwuaYH7HYLpzzGEJA==} + hasBin: true + dependencies: + '@parcel/watcher': 2.2.0 + '@parcel/watcher-wasm': 2.3.0-alpha.3 + citty: 0.1.2 + clipboardy: 3.0.0 + consola: 3.2.3 + defu: 6.1.2 + get-port-please: 3.0.1 + h3: 1.8.0 + http-shutdown: 1.2.2 + jiti: 1.19.3 + mlly: 1.4.0 + node-forge: 1.3.1 + pathe: 1.1.1 + ufo: 1.2.0 + untun: 0.1.1 + uqr: 0.1.2 /loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} @@ -7334,8 +7360,8 @@ packages: tslib: 2.6.1 dev: true - /lru-cache@10.0.0: - resolution: {integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==} + /lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} engines: {node: 14 || >=16.14} /lru-cache@5.1.1: @@ -8039,25 +8065,25 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - /nitropack@2.5.2: - resolution: {integrity: sha512-hXEHY9NJmOOETFFTPCBB9PB0+txoAbU/fB2ovUF6UMRo4ucQZztYnZdX+YSxa6FVz6eONvcxXvf9/9s6t08KWw==} - engines: {node: ^14.16.0 || ^16.11.0 || >=17.0.0} + /nitropack@2.6.0: + resolution: {integrity: sha512-swhwjrNz0Zc5pBBrL3jdd4v1aJKNv0XbjCk1OreOm0zRbP8WxreGP5sAGpwDVpMH9mpIxyz5A5OSBzKa2lkkuQ==} + engines: {node: ^16.11.0 || >=17.0.0} hasBin: true dependencies: '@cloudflare/kv-asset-handler': 0.3.0 - '@netlify/functions': 1.6.0 - '@rollup/plugin-alias': 5.0.0(rollup@3.27.2) - '@rollup/plugin-commonjs': 25.0.3(rollup@3.27.2) - '@rollup/plugin-inject': 5.0.3(rollup@3.27.2) - '@rollup/plugin-json': 6.0.0(rollup@3.27.2) - '@rollup/plugin-node-resolve': 15.1.0(rollup@3.27.2) - '@rollup/plugin-replace': 5.0.2(rollup@3.27.2) - '@rollup/plugin-terser': 0.4.3(rollup@3.27.2) - '@rollup/plugin-wasm': 6.1.3(rollup@3.27.2) - '@rollup/pluginutils': 5.0.2(rollup@3.27.2) + '@netlify/functions': 2.0.1 + '@rollup/plugin-alias': 5.0.0(rollup@3.28.1) + '@rollup/plugin-commonjs': 25.0.4(rollup@3.28.1) + '@rollup/plugin-inject': 5.0.3(rollup@3.28.1) + '@rollup/plugin-json': 6.0.0(rollup@3.28.1) + '@rollup/plugin-node-resolve': 15.2.1(rollup@3.28.1) + '@rollup/plugin-replace': 5.0.2(rollup@3.28.1) + '@rollup/plugin-terser': 0.4.3(rollup@3.28.1) + '@rollup/plugin-wasm': 6.1.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) '@types/http-proxy': 1.17.11 - '@vercel/nft': 0.22.6 - archiver: 5.3.1 + '@vercel/nft': 0.23.1 + archiver: 6.0.0 c12: 1.4.2 chalk: 5.3.0 chokidar: 3.5.3 @@ -8066,8 +8092,8 @@ packages: cookie-es: 1.0.0 defu: 6.1.2 destr: 2.0.1 - dot-prop: 7.2.0 - esbuild: 0.18.20 + dot-prop: 8.0.2 + esbuild: 0.19.2 escape-string-regexp: 5.0.0 etag: 1.8.1 fs-extra: 11.1.1 @@ -8075,39 +8101,38 @@ packages: gzip-size: 7.0.0 h3: 1.8.0 hookable: 5.5.3 - http-graceful-shutdown: 3.1.13 - http-proxy: 1.18.1 + httpxy: 0.1.2 is-primitive: 3.0.1 jiti: 1.19.3 klona: 2.0.6 knitwork: 1.0.0 - listhen: 1.3.0 + listhen: 1.4.0 magic-string: 0.30.2 mime: 3.0.0 mlly: 1.4.0 mri: 1.2.0 - node-fetch-native: 1.2.0 - ofetch: 1.1.1 + node-fetch-native: 1.4.0 + ofetch: 1.2.1 ohash: 1.1.3 - openapi-typescript: 6.4.0 + openapi-typescript: 6.5.3 pathe: 1.1.1 perfect-debounce: 1.0.0 pkg-types: 1.0.3 pretty-bytes: 6.1.1 - radix3: 1.0.1 - rollup: 3.27.2 - rollup-plugin-visualizer: 5.9.2(rollup@3.27.2) + radix3: 1.1.0 + rollup: 3.28.1 + rollup-plugin-visualizer: 5.9.2(rollup@3.28.1) scule: 1.0.0 semver: 7.5.4 serve-placeholder: 2.0.1 serve-static: 1.15.0 - source-map-support: 0.5.21 - std-env: 3.4.0 + std-env: 3.4.3 ufo: 1.2.0 uncrypto: 0.1.3 - unenv: 1.7.1 - unimport: 3.1.3(rollup@3.27.2) - unstorage: 1.8.0 + unctx: 2.3.1 + unenv: 1.7.3 + unimport: 3.1.3(rollup@3.28.1) + unstorage: 1.9.0 transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -8115,11 +8140,12 @@ packages: - '@azure/identity' - '@azure/keyvault-secrets' - '@azure/storage-blob' + - '@capacitor/preferences' - '@planetscale/database' - '@upstash/redis' - '@vercel/kv' - - debug - encoding + - idb-keyval - supports-color /no-case@3.0.4: @@ -8146,8 +8172,8 @@ packages: lodash: 4.17.21 dev: true - /node-fetch-native@1.2.0: - resolution: {integrity: sha512-5IAMBTl9p6PaAjYCnMv5FmqIF6GcZnawAVnzaCG0rX2aYZJ4CxEkZNtVPuTRug7fL7wyM5BQYTlAzcyMPi6oTQ==} + /node-fetch-native@1.4.0: + resolution: {integrity: sha512-F5kfEj95kX8tkDhUCYdV8dg3/8Olx/94zB8+ZNthFs6Bz31UpUi8Xh40TN3thLwXgrwXry1pEg9lJ++tLWTcqA==} /node-fetch@2.6.12: resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} @@ -8370,7 +8396,15 @@ packages: resolution: {integrity: sha512-SSMoktrp9SNLi20BWfB/BnnKcL0RDigXThD/mZBeQxkIRv1xrd9183MtLdsqRYLYSqW0eTr5t8w8MqjNhvoOQQ==} dependencies: destr: 2.0.1 - node-fetch-native: 1.2.0 + node-fetch-native: 1.4.0 + ufo: 1.2.0 + dev: true + + /ofetch@1.2.1: + resolution: {integrity: sha512-WEX1TEfGuAFJhzRW6Qv9RcxCyek+YogEeXlCWl1XoqBSW2fc6jU4LTk3VotwC1YfXv8Uz06LSofU6uW/ZIT+6g==} + dependencies: + destr: 2.0.1 + node-fetch-native: 1.4.0 ufo: 1.2.0 /ohash@1.1.3: @@ -8417,8 +8451,8 @@ packages: is-wsl: 2.2.0 dev: true - /openapi-typescript@6.4.0: - resolution: {integrity: sha512-qTa5HGcVdTic2zmvC+aE3tEJqFUZGkXFk8ygAexTPzsHY3a0etay8bBSQjdNP4ZI8TaA+gtHJtTKvhkUhJd6Jw==} + /openapi-typescript@6.5.3: + resolution: {integrity: sha512-iVOgf1wf/6R73Cg9wcxMAD/P3+/TJ8HQruLyv3WRDu29Pwnmp7ZUJ897Kb401jW7Ao/L4JjisropHQJW62BXtA==} hasBin: true dependencies: ansi-colors: 4.1.3 @@ -8601,7 +8635,7 @@ packages: resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.0.0 + lru-cache: 10.0.1 minipass: 7.0.2 dev: true @@ -9276,8 +9310,8 @@ packages: lodash.isequal: 4.5.0 dev: false - /radix3@1.0.1: - resolution: {integrity: sha512-y+AcwZ3HcUIGc9zGsNVf5+BY/LxL+z+4h4J3/pp8jxSmy1STaCocPS3qrj4tA5ehUSzqtqK+0Aygvz/r/8vy4g==} + /radix3@1.1.0: + resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==} /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -9519,9 +9553,6 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -9559,7 +9590,7 @@ packages: glob: 10.3.3 dev: true - /rollup-plugin-dts@5.3.1(rollup@3.27.2)(typescript@5.1.6): + /rollup-plugin-dts@5.3.1(rollup@3.28.1)(typescript@5.1.6): resolution: {integrity: sha512-gusMi+Z4gY/JaEQeXnB0RUdU82h1kF0WYzCWgVmV4p3hWXqelaKuCvcJawfeg+EKn2T1Ie+YWF2OiN1/L8bTVg==} engines: {node: '>=v14.21.3'} peerDependencies: @@ -9567,13 +9598,27 @@ packages: typescript: ^4.1 || ^5.0 dependencies: magic-string: 0.30.2 - rollup: 3.27.2 + rollup: 3.28.1 typescript: 5.1.6 optionalDependencies: '@babel/code-frame': 7.22.10 dev: true - /rollup-plugin-visualizer@5.9.2(rollup@3.27.2): + /rollup-plugin-dts@6.0.0(rollup@3.28.1)(typescript@5.1.6): + resolution: {integrity: sha512-A996xSZDAqnx/KfFttzC8mDEuyMjsRpiLCrlGc8effhK8KhE3AG0g1woQiITgFc5HSE8HWU7ccR9CiQ3vXgUlQ==} + engines: {node: '>=v18.17.1'} + peerDependencies: + rollup: ^3.25.0 + typescript: ^4.5 || ^5.0 + dependencies: + magic-string: 0.30.2 + rollup: 3.28.1 + typescript: 5.1.6 + optionalDependencies: + '@babel/code-frame': 7.22.10 + dev: true + + /rollup-plugin-visualizer@5.9.2(rollup@3.28.1): resolution: {integrity: sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A==} engines: {node: '>=14'} hasBin: true @@ -9585,12 +9630,12 @@ packages: dependencies: open: 8.4.2 picomatch: 2.3.1 - rollup: 3.27.2 + rollup: 3.28.1 source-map: 0.7.4 yargs: 17.7.2 - /rollup@3.27.2: - resolution: {integrity: sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==} + /rollup@3.28.1: + resolution: {integrity: sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: @@ -9946,6 +9991,9 @@ packages: /std-env@3.4.0: resolution: {integrity: sha512-YqHeQIIQ8r1VtUZOTOyjsAXAsjr369SplZ5rlQaiJTBsvodvPSCME7vuz8pnQltbQ0Cw0lyFo5Q8uyNwYQ58Xw==} + /std-env@3.4.3: + resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} + /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} @@ -10356,9 +10404,9 @@ packages: engines: {node: '>=8'} dev: true - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + /type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} /typed-array-buffer@1.0.0: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} @@ -10431,12 +10479,12 @@ packages: resolution: {integrity: sha512-J4efk69Aye43tWcBPCsLK7TIRppGrEN4pAlDzRKo3HSE6MgTSTBxSEuE3ccx7ixc62JvGQ/CoFXYqqF2AHozow==} hasBin: true dependencies: - '@rollup/plugin-alias': 5.0.0(rollup@3.27.2) - '@rollup/plugin-commonjs': 24.1.0(rollup@3.27.2) - '@rollup/plugin-json': 6.0.0(rollup@3.27.2) - '@rollup/plugin-node-resolve': 15.1.0(rollup@3.27.2) - '@rollup/plugin-replace': 5.0.2(rollup@3.27.2) - '@rollup/pluginutils': 5.0.2(rollup@3.27.2) + '@rollup/plugin-alias': 5.0.0(rollup@3.28.1) + '@rollup/plugin-commonjs': 24.1.0(rollup@3.28.1) + '@rollup/plugin-json': 6.0.0(rollup@3.28.1) + '@rollup/plugin-node-resolve': 15.2.1(rollup@3.28.1) + '@rollup/plugin-replace': 5.0.2(rollup@3.28.1) + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) chalk: 5.3.0 consola: 3.2.3 defu: 6.1.2 @@ -10451,8 +10499,47 @@ packages: pathe: 1.1.1 pkg-types: 1.0.3 pretty-bytes: 6.1.1 - rollup: 3.27.2 - rollup-plugin-dts: 5.3.1(rollup@3.27.2)(typescript@5.1.6) + rollup: 3.28.1 + rollup-plugin-dts: 5.3.1(rollup@3.28.1)(typescript@5.1.6) + scule: 1.0.0 + typescript: 5.1.6 + untyped: 1.4.0 + transitivePeerDependencies: + - sass + - supports-color + dev: true + + /unbuild@2.0.0(typescript@5.1.6): + resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} + hasBin: true + peerDependencies: + typescript: ^5.1.6 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@rollup/plugin-alias': 5.0.0(rollup@3.28.1) + '@rollup/plugin-commonjs': 25.0.4(rollup@3.28.1) + '@rollup/plugin-json': 6.0.0(rollup@3.28.1) + '@rollup/plugin-node-resolve': 15.2.1(rollup@3.28.1) + '@rollup/plugin-replace': 5.0.2(rollup@3.28.1) + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + chalk: 5.3.0 + citty: 0.1.2 + consola: 3.2.3 + defu: 6.1.2 + esbuild: 0.19.2 + globby: 13.2.2 + hookable: 5.5.3 + jiti: 1.19.3 + magic-string: 0.30.2 + mkdist: 1.3.0(typescript@5.1.6) + mlly: 1.4.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + pretty-bytes: 6.1.1 + rollup: 3.28.1 + rollup-plugin-dts: 6.0.0(rollup@3.28.1)(typescript@5.1.6) scule: 1.0.0 typescript: 5.1.6 untyped: 1.4.0 @@ -10484,7 +10571,17 @@ packages: consola: 3.2.3 defu: 6.1.2 mime: 3.0.0 - node-fetch-native: 1.2.0 + node-fetch-native: 1.4.0 + pathe: 1.1.1 + dev: false + + /unenv@1.7.3: + resolution: {integrity: sha512-5NGaBSP0acq5FAnjw9m6sA/QaImYkEjpYXPc99l/KUIb1qbxki1PSvX3ZNnK3pWIC2XwIHrOul2P7FiHyWgeXA==} + dependencies: + consola: 3.2.3 + defu: 6.1.2 + mime: 3.0.0 + node-fetch-native: 1.4.0 pathe: 1.1.1 /unhead@1.3.5: @@ -10508,10 +10605,10 @@ packages: vfile: 5.3.7 dev: true - /unimport@3.1.3(rollup@3.27.2): + /unimport@3.1.3(rollup@3.28.1): resolution: {integrity: sha512-up4TE2yA+nMyyErGTjbYGVw95MriGa2hVRXQ3/JRp7984cwwqULcnBjHaovVpsO8tZc2j0fvgGu9yiBKOyxvYw==} dependencies: - '@rollup/pluginutils': 5.0.2(rollup@3.27.2) + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) escape-string-regexp: 5.0.0 fast-glob: 3.3.1 local-pkg: 0.4.3 @@ -10605,7 +10702,7 @@ packages: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} - /unplugin-vue-router@0.6.4(rollup@3.27.2)(vue-router@4.2.4)(vue@3.3.4): + /unplugin-vue-router@0.6.4(rollup@3.28.1)(vue-router@4.2.4)(vue@3.3.4): resolution: {integrity: sha512-9THVhhtbVFxbsIibjK59oPwMI1UCxRWRPX7azSkTUABsxovlOXJys5SJx0kd/0oKIqNJuYgkRfAgPuO77SqCOg==} peerDependencies: vue-router: ^4.1.0 @@ -10614,8 +10711,8 @@ packages: optional: true dependencies: '@babel/types': 7.22.10 - '@rollup/pluginutils': 5.0.2(rollup@3.27.2) - '@vue-macros/common': 1.6.2(rollup@3.27.2)(vue@3.3.4) + '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@vue-macros/common': 1.6.2(rollup@3.28.1)(vue@3.3.4) ast-walker-scope: 0.4.2 chokidar: 3.5.3 fast-glob: 3.3.1 @@ -10640,8 +10737,8 @@ packages: webpack-sources: 3.2.3 webpack-virtual-modules: 0.5.0 - /unstorage@1.8.0: - resolution: {integrity: sha512-Wl6a0fYIIPx8yWIHAVNzsNRcIpagVnBV05UXeIFCNqPZ5tu0w0MPE+eTjpRe/yxCD60K7qX55K5Px/PeKvNntw==} + /unstorage@1.9.0: + resolution: {integrity: sha512-VpD8ZEYc/le8DZCrny3bnqKE4ZjioQxBRnWE+j5sGNvziPjeDlaS1NaFFHzl/kkXaO3r7UaF8MGQrs14+1B4pQ==} peerDependencies: '@azure/app-configuration': ^1.4.1 '@azure/cosmos': ^3.17.3 @@ -10649,9 +10746,11 @@ packages: '@azure/identity': ^3.2.3 '@azure/keyvault-secrets': ^4.7.0 '@azure/storage-blob': ^12.14.0 - '@planetscale/database': ^1.7.0 - '@upstash/redis': ^1.21.0 + '@capacitor/preferences': ^5.0.0 + '@planetscale/database': ^1.8.0 + '@upstash/redis': ^1.22.0 '@vercel/kv': ^0.2.2 + idb-keyval: ^6.2.1 peerDependenciesMeta: '@azure/app-configuration': optional: true @@ -10665,12 +10764,16 @@ packages: optional: true '@azure/storage-blob': optional: true + '@capacitor/preferences': + optional: true '@planetscale/database': optional: true '@upstash/redis': optional: true '@vercel/kv': optional: true + idb-keyval: + optional: true dependencies: anymatch: 3.1.3 chokidar: 3.5.3 @@ -10678,10 +10781,10 @@ packages: h3: 1.8.0 ioredis: 5.3.2 listhen: 1.3.0 - lru-cache: 10.0.0 + lru-cache: 10.0.1 mri: 1.2.0 - node-fetch-native: 1.2.0 - ofetch: 1.1.1 + node-fetch-native: 1.4.0 + ofetch: 1.2.1 ufo: 1.2.0 transitivePeerDependencies: - supports-color @@ -10735,8 +10838,8 @@ packages: tslib: 2.6.1 dev: true - /uqr@0.1.0: - resolution: {integrity: sha512-jFCDB0ptDeUbNyU52pY2TMawACz0gBNo20Aw8R58s/4Avux/ZuqP8qZh3Q9XA4wU8ztWwEWsStI+tNNEEUHdyQ==} + /uqr@0.1.2: + resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -10760,6 +10863,9 @@ packages: webpack: 5.88.2 dev: false + /urlpattern-polyfill@8.0.2: + resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -10819,28 +10925,6 @@ packages: vfile-message: 3.1.4 dev: true - /vite-node@0.33.0(@types/node@18.17.5): - resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==} - engines: {node: '>=v14.18.0'} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4 - mlly: 1.4.0 - pathe: 1.1.1 - picocolors: 1.0.0 - vite: 4.4.9(@types/node@18.17.5) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /vite-node@0.33.0(@types/node@18.17.6): resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==} engines: {node: '>=v14.18.0'} @@ -10861,7 +10945,6 @@ packages: - sugarss - supports-color - terser - dev: false /vite-plugin-checker@0.6.2(eslint@8.47.0)(typescript@5.1.6)(vite@4.4.9)(vue-tsc@1.8.8): resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==} @@ -10917,41 +11000,6 @@ packages: vue-tsc: 1.8.8(typescript@5.1.6) dev: false - /vite@4.4.9(@types/node@18.17.5): - resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 18.17.5 - esbuild: 0.18.20 - postcss: 8.4.28 - rollup: 3.27.2 - optionalDependencies: - fsevents: 2.3.2 - /vite@4.4.9(@types/node@18.17.6): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -10983,7 +11031,7 @@ packages: '@types/node': 18.17.6 esbuild: 0.18.20 postcss: 8.4.28 - rollup: 3.27.2 + rollup: 3.28.1 optionalDependencies: fsevents: 2.3.2 @@ -11008,8 +11056,8 @@ packages: h3: 1.8.0 happy-dom: 10.10.4 magic-string: 0.30.2 - ofetch: 1.1.1 - unenv: 1.7.1 + ofetch: 1.2.1 + unenv: 1.7.3 vitest: 0.33.0(happy-dom@10.10.4) vue: 3.3.4 vue-router: 4.2.4(vue@3.3.4) @@ -11051,7 +11099,7 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 18.17.5 + '@types/node': 18.17.6 '@vitest/expect': 0.33.0 '@vitest/runner': 0.33.0 '@vitest/snapshot': 0.33.0 @@ -11071,8 +11119,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.4.9(@types/node@18.17.5) - vite-node: 0.33.0(@types/node@18.17.5) + vite: 4.4.9(@types/node@18.17.6) + vite-node: 0.33.0(@types/node@18.17.6) why-is-node-running: 2.2.2 transitivePeerDependencies: - less diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 2ce5d99d22..cdbfb53a0b 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -19,7 +19,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM for (const outputDir of ['.output', '.output-inline']) { it('default client bundle size', async () => { const clientStats = await analyzeSizes('**/*.js', join(rootDir, outputDir, 'public')) - expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"95.7k"') + expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"96.4k"') expect(clientStats.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -32,10 +32,10 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"64.6k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"305k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"2348k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"1822k"') const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -55,33 +55,12 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM "@vue/runtime-dom", "@vue/server-renderer", "@vue/shared", - "cookie-es", - "debug", - "defu", - "destr", "devalue", "estree-walker", - "h3", - "has-flag", "hookable", - "http-graceful-shutdown", - "iron-webcrypto", - "klona", - "ms", - "node-fetch-native", - "ofetch", - "ohash", - "pathe", - "radix3", - "scule", "source-map-js", - "supports-color", "ufo", - "uncrypto", - "unctx", - "unenv", "unhead", - "unstorage", "vue", "vue-bundle-renderer", ] @@ -92,10 +71,10 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output-inline/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"370k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"611k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"613k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"70.9k"') const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -106,31 +85,9 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM "@unhead/dom", "@unhead/shared", "@unhead/ssr", - "cookie-es", - "debug", - "defu", - "destr", "devalue", - "h3", - "has-flag", "hookable", - "http-graceful-shutdown", - "iron-webcrypto", - "klona", - "ms", - "node-fetch-native", - "ofetch", - "ohash", - "pathe", - "radix3", - "scule", - "supports-color", - "ufo", - "uncrypto", - "unctx", - "unenv", "unhead", - "unstorage", ] `) }) From 60c1eec047d951358cc6f49e2262c64015adfda7 Mon Sep 17 00:00:00 2001 From: eternalltruth <72864060+eternalltruth@users.noreply.github.com> Date: Wed, 23 Aug 2023 15:46:44 +0800 Subject: [PATCH 701/912] docs: add additional type generics to `useFetch` docs (#22755) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 李杰 --- docs/3.api/1.composables/use-fetch.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/3.api/1.composables/use-fetch.md b/docs/3.api/1.composables/use-fetch.md index bdfdab9af2..f25564539c 100644 --- a/docs/3.api/1.composables/use-fetch.md +++ b/docs/3.api/1.composables/use-fetch.md @@ -10,12 +10,12 @@ It automatically generates a key based on URL and fetch options, provides type h ## Type ```ts [Signature] -function useFetch( +function useFetch( url: string | Request | Ref | () => string | Request, options?: UseFetchOptions -): Promise> +): Promise> -type UseFetchOptions = { +type UseFetchOptions = { key?: string method?: string query?: SearchParams From 16a200a65aa9d97adea875a66303f5d8d15fb1ef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 23 Aug 2023 09:11:00 +0100 Subject: [PATCH 702/912] chore(deps): update all non-major dependencies (main) (#22721) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- package.json | 12 +- packages/nuxi/package.json | 4 +- packages/nuxt/package.json | 10 +- packages/schema/package.json | 4 +- packages/test-utils/package.json | 4 +- packages/vite/package.json | 6 +- packages/webpack/package.json | 4 +- pnpm-lock.yaml | 547 +++++++++++++++---------------- test/bundle.test.ts | 4 +- 9 files changed, 283 insertions(+), 312 deletions(-) diff --git a/package.json b/package.json index d6fc6ed6dd..5e5c7c0d2f 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "nuxt": "workspace:*", "vite": "4.4.9", "vue": "3.3.4", - "magic-string": "^0.30.2" + "magic-string": "^0.30.3" }, "devDependencies": { "@actions/core": "1.10.0", @@ -45,11 +45,11 @@ "@nuxt/webpack-builder": "workspace:*", "@nuxtjs/eslint-config-typescript": "12.0.0", "@types/fs-extra": "11.0.1", - "@types/node": "18.17.6", + "@types/node": "18.17.8", "@types/semver": "7.5.0", "case-police": "0.6.1", "chalk": "5.3.0", - "changelogen": "0.5.4", + "changelogen": "0.5.5", "cheerio": "1.0.0-rc.12", "consola": "3.2.3", "devalue": "4.3.2", @@ -61,19 +61,19 @@ "fs-extra": "11.1.1", "globby": "13.2.2", "h3": "1.8.0", - "happy-dom": "10.10.4", + "happy-dom": "10.11.0", "jiti": "1.19.3", "markdownlint-cli": "^0.33.0", "nitropack": "2.6.0", "nuxi": "workspace:*", "nuxt": "workspace:*", "nuxt-vitest": "0.10.2", - "ofetch": "1.1.1", + "ofetch": "1.2.1", "pathe": "1.1.1", "playwright-core": "1.37.1", "rimraf": "5.0.1", "semver": "7.5.4", - "std-env": "3.4.0", + "std-env": "3.4.3", "typescript": "5.1.6", "ufo": "1.2.0", "vite": "4.4.9", diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index ec0070de6d..408b3d502b 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -38,7 +38,7 @@ "giget": "1.1.2", "h3": "1.8.0", "jiti": "1.19.3", - "listhen": "1.3.0", + "listhen": "1.4.0", "mlly": "1.4.0", "mri": "1.2.0", "nitropack": "2.6.0", @@ -52,7 +52,7 @@ "unbuild": "latest" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "engines": { "node": "^14.18.0 || >=16.10.0" diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index e22aab143f..f19b9a3678 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -79,25 +79,25 @@ "jiti": "^1.19.3", "klona": "^2.0.6", "knitwork": "^1.0.0", - "magic-string": "^0.30.2", + "magic-string": "^0.30.3", "mlly": "^1.4.0", "nitropack": "^2.6.0", "nuxi": "workspace:../nuxi", "nypm": "^0.3.0", - "ofetch": "^1.1.1", + "ofetch": "^1.2.1", "ohash": "^1.1.3", "pathe": "^1.1.1", "perfect-debounce": "^1.0.0", "pkg-types": "^1.0.3", "prompts": "^2.4.2", "scule": "^1.0.0", - "std-env": "^3.4.0", + "std-env": "^3.4.3", "strip-literal": "^1.3.0", "ufo": "^1.2.0", "ultrahtml": "^1.3.0", "uncrypto": "^0.1.3", "unctx": "^2.3.1", - "unenv": "^1.7.1", + "unenv": "^1.7.3", "unimport": "^3.1.3", "unplugin": "^1.4.0", "unplugin-vue-router": "^0.6.4", @@ -112,7 +112,7 @@ "@types/estree": "1.0.1", "@types/fs-extra": "11.0.1", "@types/prompts": "2.4.4", - "@vitejs/plugin-vue": "4.3.1", + "@vitejs/plugin-vue": "4.3.3", "unbuild": "latest", "vite": "4.4.9", "vitest": "0.33.0" diff --git a/packages/schema/package.json b/packages/schema/package.json index a57e39321f..edf63f0e4f 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -31,7 +31,7 @@ "@types/pug": "2.0.6", "@types/sass-loader": "8.0.5", "@unhead/schema": "1.3.5", - "@vitejs/plugin-vue": "4.3.1", + "@vitejs/plugin-vue": "4.3.3", "@vitejs/plugin-vue-jsx": "3.0.2", "@vue/compiler-core": "3.3.4", "esbuild-loader": "4.0.1", @@ -55,7 +55,7 @@ "pathe": "^1.1.1", "pkg-types": "^1.0.3", "postcss-import-resolver": "^2.0.0", - "std-env": "^3.4.0", + "std-env": "^3.4.3", "ufo": "^1.2.0", "unimport": "^3.1.3", "untyped": "^1.4.0" diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index ae57d9e7b1..6738f00b6e 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -28,12 +28,12 @@ "defu": "^6.1.2", "execa": "^7.2.0", "get-port-please": "^3.0.1", - "ofetch": "^1.1.1", + "ofetch": "^1.2.1", "pathe": "^1.1.1", "ufo": "^1.2.0" }, "devDependencies": { - "@jest/globals": "29.6.2", + "@jest/globals": "29.6.3", "playwright-core": "1.37.1", "unbuild": "latest", "vitest": "0.33.0" diff --git a/packages/vite/package.json b/packages/vite/package.json index 0b174d10a3..ebbf827bdd 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -28,7 +28,7 @@ "dependencies": { "@nuxt/kit": "workspace:../kit", "@rollup/plugin-replace": "^5.0.2", - "@vitejs/plugin-vue": "^4.3.1", + "@vitejs/plugin-vue": "^4.3.3", "@vitejs/plugin-vue-jsx": "^3.0.2", "autoprefixer": "^10.4.15", "clear": "^0.1.0", @@ -43,7 +43,7 @@ "get-port-please": "^3.0.1", "h3": "^1.8.0", "knitwork": "^1.0.0", - "magic-string": "^0.30.2", + "magic-string": "^0.30.3", "mlly": "^1.4.0", "ohash": "^1.1.3", "pathe": "^1.1.1", @@ -53,7 +53,7 @@ "postcss-import": "^15.1.0", "postcss-url": "^10.1.3", "rollup-plugin-visualizer": "^5.9.2", - "std-env": "^3.4.0", + "std-env": "^3.4.3", "strip-literal": "^1.3.0", "ufo": "^1.2.0", "unplugin": "^1.4.0", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 99b154c49a..c8e6d86f45 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -35,7 +35,7 @@ "h3": "^1.8.0", "hash-sum": "^2.0.0", "lodash-es": "^4.17.21", - "magic-string": "^0.30.2", + "magic-string": "^0.30.3", "memfs": "^4.2.1", "mini-css-extract-plugin": "^2.7.6", "mlly": "^1.4.0", @@ -47,7 +47,7 @@ "postcss-loader": "^7.3.3", "postcss-url": "^10.1.3", "pug-plain-loader": "^1.1.0", - "std-env": "^3.4.0", + "std-env": "^3.4.3", "time-fix-plugin": "^2.0.7", "ufo": "^1.2.0", "unplugin": "^1.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ff09d7714f..87c809a91b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,7 +14,7 @@ overrides: nuxt: workspace:* vite: 4.4.9 vue: 3.3.4 - magic-string: ^0.30.2 + magic-string: ^0.30.3 importers: @@ -36,8 +36,8 @@ importers: specifier: 11.0.1 version: 11.0.1 '@types/node': - specifier: 18.17.6 - version: 18.17.6 + specifier: 18.17.8 + version: 18.17.8 '@types/semver': specifier: 7.5.0 version: 7.5.0 @@ -48,8 +48,8 @@ importers: specifier: 5.3.0 version: 5.3.0 changelogen: - specifier: 0.5.4 - version: 0.5.4 + specifier: 0.5.5 + version: 0.5.5 cheerio: specifier: 1.0.0-rc.12 version: 1.0.0-rc.12 @@ -84,8 +84,8 @@ importers: specifier: 1.8.0 version: 1.8.0 happy-dom: - specifier: 10.10.4 - version: 10.10.4 + specifier: 10.11.0 + version: 10.11.0 jiti: specifier: 1.19.3 version: 1.19.3 @@ -103,10 +103,10 @@ importers: version: link:packages/nuxt nuxt-vitest: specifier: 0.10.2 - version: 0.10.2(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.1)(happy-dom@10.10.4)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + version: 0.10.2(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.3)(happy-dom@10.11.0)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) ofetch: - specifier: 1.1.1 - version: 1.1.1 + specifier: 1.2.1 + version: 1.2.1 pathe: specifier: 1.1.1 version: 1.1.1 @@ -120,8 +120,8 @@ importers: specifier: 7.5.4 version: 7.5.4 std-env: - specifier: 3.4.0 - version: 3.4.0 + specifier: 3.4.3 + version: 3.4.3 typescript: specifier: 5.1.6 version: 5.1.6 @@ -130,13 +130,13 @@ importers: version: 1.2.0 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.6) + version: 4.4.9(@types/node@18.17.8) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.10.4) + version: 0.33.0(happy-dom@10.11.0) vitest-environment-nuxt: specifier: 0.10.2 - version: 0.10.2(happy-dom@10.10.4)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + version: 0.10.2(happy-dom@10.11.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) vue: specifier: 3.3.4 version: 3.3.4 @@ -233,10 +233,10 @@ importers: version: 2.0.0(typescript@5.1.6) vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.6) + version: 4.4.9(@types/node@18.17.8) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.10.4) + version: 0.33.0(happy-dom@10.11.0) webpack: specifier: 5.88.2 version: 5.88.2 @@ -244,8 +244,8 @@ importers: packages/nuxi: optionalDependencies: fsevents: - specifier: ~2.3.2 - version: 2.3.2 + specifier: ~2.3.3 + version: 2.3.3 devDependencies: '@nuxt/kit': specifier: workspace:* @@ -308,8 +308,8 @@ importers: specifier: 1.19.3 version: 1.19.3 listhen: - specifier: 1.3.0 - version: 1.3.0 + specifier: 1.4.0 + version: 1.4.0 mlly: specifier: 1.4.0 version: 1.4.0 @@ -366,7 +366,7 @@ importers: version: link:../vite '@types/node': specifier: ^14.18.0 || >=16.10.0 - version: 18.17.6 + version: 18.17.8 '@unhead/dom': specifier: ^1.3.5 version: 1.3.5 @@ -431,8 +431,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 magic-string: - specifier: ^0.30.2 - version: 0.30.2 + specifier: ^0.30.3 + version: 0.30.3 mlly: specifier: ^1.4.0 version: 1.4.0 @@ -446,7 +446,7 @@ importers: specifier: ^0.3.0 version: 0.3.0 ofetch: - specifier: ^1.1.1 + specifier: ^1.2.1 version: 1.2.1 ohash: specifier: ^1.1.3 @@ -467,8 +467,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 std-env: - specifier: ^3.4.0 - version: 3.4.0 + specifier: ^3.4.3 + version: 3.4.3 strip-literal: specifier: ^1.3.0 version: 1.3.0 @@ -485,8 +485,8 @@ importers: specifier: ^2.3.1 version: 2.3.1 unenv: - specifier: ^1.7.1 - version: 1.7.1 + specifier: ^1.7.3 + version: 1.7.3 unimport: specifier: ^3.1.3 version: 3.1.3(rollup@3.28.1) @@ -525,17 +525,17 @@ importers: specifier: 2.4.4 version: 2.4.4 '@vitejs/plugin-vue': - specifier: 4.3.1 - version: 4.3.1(vite@4.4.9)(vue@3.3.4) + specifier: 4.3.3 + version: 4.3.3(vite@4.4.9)(vue@3.3.4) unbuild: specifier: latest version: 2.0.0(typescript@5.1.6) vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.6) + version: 4.4.9(@types/node@18.17.8) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.10.4) + version: 0.33.0(happy-dom@10.11.0) packages/schema: dependencies: @@ -558,8 +558,8 @@ importers: specifier: ^2.0.0 version: 2.0.0 std-env: - specifier: ^3.4.0 - version: 3.4.0 + specifier: ^3.4.3 + version: 3.4.3 ufo: specifier: ^1.2.0 version: 1.2.0 @@ -586,8 +586,8 @@ importers: specifier: 1.3.5 version: 1.3.5 '@vitejs/plugin-vue': - specifier: 4.3.1 - version: 4.3.1(vite@4.4.9)(vue@3.3.4) + specifier: 4.3.3 + version: 4.3.3(vite@4.4.9)(vue@3.3.4) '@vitejs/plugin-vue-jsx': specifier: 3.0.2 version: 3.0.2(vite@4.4.9)(vue@3.3.4) @@ -614,7 +614,7 @@ importers: version: 2.3.1 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.6) + version: 4.4.9(@types/node@18.17.8) vue: specifier: 3.3.4 version: 3.3.4 @@ -655,7 +655,7 @@ importers: specifier: ^3.0.1 version: 3.0.1 ofetch: - specifier: ^1.1.1 + specifier: ^1.2.1 version: 1.2.1 pathe: specifier: ^1.1.1 @@ -668,8 +668,8 @@ importers: version: 3.3.4 devDependencies: '@jest/globals': - specifier: 29.6.2 - version: 29.6.2 + specifier: 29.6.3 + version: 29.6.3 playwright-core: specifier: 1.37.1 version: 1.37.1 @@ -678,7 +678,7 @@ importers: version: 2.0.0(typescript@5.1.6) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.10.4) + version: 0.33.0(happy-dom@10.11.0) packages/vite: dependencies: @@ -689,8 +689,8 @@ importers: specifier: ^5.0.2 version: 5.0.2(rollup@3.28.1) '@vitejs/plugin-vue': - specifier: ^4.3.1 - version: 4.3.1(vite@4.4.9)(vue@3.3.4) + specifier: ^4.3.3 + version: 4.3.3(vite@4.4.9)(vue@3.3.4) '@vitejs/plugin-vue-jsx': specifier: ^3.0.2 version: 3.0.2(vite@4.4.9)(vue@3.3.4) @@ -734,8 +734,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 magic-string: - specifier: ^0.30.2 - version: 0.30.2 + specifier: ^0.30.3 + version: 0.30.3 mlly: specifier: ^1.4.0 version: 1.4.0 @@ -764,8 +764,8 @@ importers: specifier: ^5.9.2 version: 5.9.2(rollup@3.28.1) std-env: - specifier: ^3.4.0 - version: 3.4.0 + specifier: ^3.4.3 + version: 3.4.3 strip-literal: specifier: ^1.3.0 version: 1.3.0 @@ -777,10 +777,10 @@ importers: version: 1.4.0 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.6) + version: 4.4.9(@types/node@18.17.8) vite-node: specifier: ^0.33.0 - version: 0.33.0(@types/node@18.17.6) + version: 0.33.0(@types/node@18.17.8) vite-plugin-checker: specifier: ^0.6.2 version: 0.6.2(eslint@8.47.0)(typescript@5.1.6)(vite@4.4.9)(vue-tsc@1.8.8) @@ -858,8 +858,8 @@ importers: specifier: ^4.17.21 version: 4.17.21 magic-string: - specifier: ^0.30.2 - version: 0.30.2 + specifier: ^0.30.3 + version: 0.30.3 memfs: specifier: ^4.2.1 version: 4.2.1(quill-delta@5.1.0)(rxjs@7.8.1)(tslib@2.6.1) @@ -894,8 +894,8 @@ importers: specifier: ^1.1.0 version: 1.1.0(pug@3.0.2) std-env: - specifier: ^3.4.0 - version: 3.4.0 + specifier: ^3.4.3 + version: 3.4.3 time-fix-plugin: specifier: ^2.0.7 version: 2.0.7(webpack@5.88.2) @@ -1003,7 +1003,7 @@ importers: version: 1.2.1 vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.10.4) + version: 0.33.0(happy-dom@10.11.0) vue: specifier: 3.3.4 version: 3.3.4 @@ -2120,78 +2120,78 @@ packages: engines: {node: '>=8'} dev: true - /@jest/environment@29.6.2: - resolution: {integrity: sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q==} + /@jest/environment@29.6.3: + resolution: {integrity: sha512-u/u3cCztYCfgBiGHsamqP5x+XvucftOGPbf5RJQxfpeC1y4AL8pCjKvPDA3oCmdhZYPgk5AE0VOD/flweR69WA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.6.2 - '@jest/types': 29.6.1 - '@types/node': 18.17.6 - jest-mock: 29.6.2 + '@jest/fake-timers': 29.6.3 + '@jest/types': 29.6.3 + '@types/node': 18.17.8 + jest-mock: 29.6.3 dev: true - /@jest/expect-utils@29.6.2: - resolution: {integrity: sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg==} + /@jest/expect-utils@29.6.3: + resolution: {integrity: sha512-nvOEW4YoqRKD9HBJ9OJ6przvIvP9qilp5nAn1462P5ZlL/MM9SgPEZFyjTGPfs7QkocdUsJa6KjHhyRn4ueItA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 29.4.3 + jest-get-type: 29.6.3 dev: true - /@jest/expect@29.6.2: - resolution: {integrity: sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg==} + /@jest/expect@29.6.3: + resolution: {integrity: sha512-Ic08XbI2jlg6rECy+CGwk/8NDa6VE7UmIG6++9OTPAMnQmNGY28hu69Nf629CWv6T7YMODLbONxDFKdmQeI9FA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.6.2 - jest-snapshot: 29.6.2 + expect: 29.6.3 + jest-snapshot: 29.6.3 transitivePeerDependencies: - supports-color dev: true - /@jest/fake-timers@29.6.2: - resolution: {integrity: sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA==} + /@jest/fake-timers@29.6.3: + resolution: {integrity: sha512-pa1wmqvbj6eX0nMvOM2VDAWvJOI5A/Mk3l8O7n7EsAh71sMZblaKO9iT4GjIj0LwwK3CP/Jp1ypEV0x3m89RvA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 18.17.6 - jest-message-util: 29.6.2 - jest-mock: 29.6.2 - jest-util: 29.6.2 + '@types/node': 18.17.8 + jest-message-util: 29.6.3 + jest-mock: 29.6.3 + jest-util: 29.6.3 dev: true - /@jest/globals@29.6.2: - resolution: {integrity: sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw==} + /@jest/globals@29.6.3: + resolution: {integrity: sha512-RB+uI+CZMHntzlnOPlll5x/jgRff3LEPl/td/jzMXiIgR0iIhKq9qm1HLU+EC52NuoVy/1swit/sDGjVn4bc6A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.2 - '@jest/expect': 29.6.2 - '@jest/types': 29.6.1 - jest-mock: 29.6.2 + '@jest/environment': 29.6.3 + '@jest/expect': 29.6.3 + '@jest/types': 29.6.3 + jest-mock: 29.6.3 transitivePeerDependencies: - supports-color dev: true - /@jest/schemas@29.6.0: - resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 - /@jest/transform@29.6.2: - resolution: {integrity: sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg==} + /@jest/transform@29.6.3: + resolution: {integrity: sha512-dPIc3DsvMZ/S8ut4L2ViCj265mKO0owB0wfzBv2oGzL9pQ+iRvJewHqLBmsGb7XFb5UotWIEtvY5A/lnylaIoQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.22.10 - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.18 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 29.6.2 - jest-regex-util: 29.4.3 - jest-util: 29.6.2 + jest-haste-map: 29.6.3 + jest-regex-util: 29.6.3 + jest-util: 29.6.3 micromatch: 4.0.5 pirates: 4.0.6 slash: 3.0.0 @@ -2200,14 +2200,14 @@ packages: - supports-color dev: true - /@jest/types@29.6.1: - resolution: {integrity: sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==} + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.6.0 + '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.17.6 + '@types/node': 18.17.8 '@types/yargs': 17.0.24 chalk: 4.1.2 @@ -2393,7 +2393,7 @@ packages: detab: 3.0.2 json5: 2.2.3 knitwork: 1.0.0 - listhen: 1.3.0 + listhen: 1.4.0 mdast-util-to-hast: 12.3.0 mdurl: 1.0.1 ohash: 1.1.3 @@ -2479,7 +2479,7 @@ packages: parse-git-config: 3.0.0 pathe: 1.1.1 rc9: 2.1.1 - std-env: 3.4.0 + std-env: 3.4.3 /@nuxt/ui-templates@1.3.1: resolution: {integrity: sha512-5gc02Pu1HycOVUWJ8aYsWeeXcSTPe8iX8+KIrhyEtEoOSkY0eMBuo0ssljB8wALuEmepv31DlYe5gpiRwkjESA==} @@ -2616,14 +2616,6 @@ packages: requiresBuild: true optional: true - /@parcel/watcher-wasm@2.3.0-alpha.1: - resolution: {integrity: sha512-wo6065l1MQ6SJPPchYw/q8J+pFL40qBXLu4Td2CXeQ/+mUk8NenNqC75P/P1Cyvpam0kfk91iszd+XL+xKDQww==} - engines: {node: '>= 10.0.0'} - dependencies: - is-glob: 4.0.3 - micromatch: 4.0.5 - napi-wasm: 1.1.0 - /@parcel/watcher-wasm@2.3.0-alpha.3: resolution: {integrity: sha512-kTkqlYhGhCM9EaoZMyjNzqKRSdTyp/vN+/uoJ2fzN+UCiWUI+jMKacwnBgu13T1F0mrcNqEWtYEXTRaZmnml1w==} engines: {node: '>= 10.0.0'} @@ -2717,7 +2709,7 @@ packages: estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 - magic-string: 0.30.2 + magic-string: 0.30.3 rollup: 3.28.1 dev: true @@ -2735,7 +2727,7 @@ packages: estree-walker: 2.0.2 glob: 8.1.0 is-reference: 1.2.1 - magic-string: 0.30.2 + magic-string: 0.30.3 rollup: 3.28.1 /@rollup/plugin-inject@5.0.3(rollup@3.28.1): @@ -2749,7 +2741,7 @@ packages: dependencies: '@rollup/pluginutils': 5.0.3(rollup@3.28.1) estree-walker: 2.0.2 - magic-string: 0.30.2 + magic-string: 0.30.3 rollup: 3.28.1 /@rollup/plugin-json@6.0.0(rollup@3.28.1): @@ -2791,7 +2783,7 @@ packages: optional: true dependencies: '@rollup/pluginutils': 5.0.3(rollup@3.28.1) - magic-string: 0.30.2 + magic-string: 0.30.3 rollup: 3.28.1 /@rollup/plugin-terser@0.4.3(rollup@3.28.1): @@ -2881,7 +2873,7 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.17.6 + '@types/node': 18.17.8 dev: true /@types/debug@4.1.8: @@ -2919,13 +2911,13 @@ packages: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 18.17.6 + '@types/node': 18.17.8 dev: true /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 18.17.6 + '@types/node': 18.17.8 dev: true /@types/hash-sum@1.0.0: @@ -2941,7 +2933,7 @@ packages: /@types/http-proxy@1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: - '@types/node': 18.17.6 + '@types/node': 18.17.8 /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} @@ -2966,7 +2958,7 @@ packages: /@types/jsonfile@6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 18.17.6 + '@types/node': 18.17.8 dev: true /@types/lodash-es@4.17.8: @@ -2996,11 +2988,11 @@ packages: /@types/node-sass@4.11.3: resolution: {integrity: sha512-wXPCn3t9uu5rR4zXNSLasZHQMuRzUKBsdi4MsgT8uq4Lp1gQQo+T2G23tGj4SSgDHeNBle6vGseZtM2XV/X9bw==} dependencies: - '@types/node': 18.17.6 + '@types/node': 18.17.8 dev: true - /@types/node@18.17.6: - resolution: {integrity: sha512-fGmT/P7z7ecA6bv/ia5DlaWCH4YeZvAQMNpUhrJjtAhOhZfoxS1VLUgU2pdk63efSjQaOJWdXMuAJsws+8I6dg==} + /@types/node@18.17.8: + resolution: {integrity: sha512-Av/7MqX/iNKwT9Tr60V85NqMnsmh8ilfJoBlIVibkXfitk9Q22D9Y5mSpm+FvG5DET7EbVfB40bOiLzKgYFgPw==} /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -3021,7 +3013,7 @@ packages: /@types/prompts@2.4.4: resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} dependencies: - '@types/node': 18.17.6 + '@types/node': 18.17.8 kleur: 3.0.3 dev: true @@ -3035,7 +3027,7 @@ packages: /@types/sass-loader@8.0.5: resolution: {integrity: sha512-3b3lQ+UwWanaPBzOcP1YeNTR4q0Klt2UEezhdIjDXkTnQ93F+fnv+z1tMsQBAopY0b+c5ATN5pHQ+vfzxaRnFg==} dependencies: - '@types/node': 18.17.6 + '@types/node': 18.17.8 '@types/node-sass': 4.11.3 '@types/webpack': 4.41.33 sass: 1.64.2 @@ -3082,7 +3074,7 @@ packages: /@types/webpack-bundle-analyzer@4.6.0: resolution: {integrity: sha512-XeQmQCCXdZdap+A/60UKmxW5Mz31Vp9uieGlHB3T4z/o2OLVLtTI3bvTuS6A2OWd/rbAAQiGGWIEFQACu16szA==} dependencies: - '@types/node': 18.17.6 + '@types/node': 18.17.8 tapable: 2.2.1 webpack: 5.88.2 transitivePeerDependencies: @@ -3108,7 +3100,7 @@ packages: /@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 18.17.6 + '@types/node': 18.17.8 '@types/source-list-map': 0.1.2 source-map: 0.7.4 dev: true @@ -3122,7 +3114,7 @@ packages: /@types/webpack@4.41.33: resolution: {integrity: sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==} dependencies: - '@types/node': 18.17.6 + '@types/node': 18.17.8 '@types/tapable': 1.0.8 '@types/uglify-js': 3.17.1 '@types/webpack-sources': 3.2.0 @@ -3340,19 +3332,19 @@ packages: '@babel/core': 7.22.10 '@babel/plugin-transform-typescript': 7.22.10(@babel/core@7.22.10) '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.10) - vite: 4.4.9(@types/node@18.17.6) + vite: 4.4.9(@types/node@18.17.8) vue: 3.3.4 transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@4.3.1(vite@4.4.9)(vue@3.3.4): - resolution: {integrity: sha512-tUBEtWcF7wFtII7ayNiLNDTCE1X1afySEo+XNVMNkFXaThENyCowIEX095QqbJZGTgoOcSVDJGlnde2NG4jtbQ==} + /@vitejs/plugin-vue@4.3.3(vite@4.4.9)(vue@3.3.4): + resolution: {integrity: sha512-ssxyhIAZqB0TrpUg6R0cBpCuMk9jTIlO1GNSKKQD6S8VjnXi6JXKfUXjSsxey9IwQiaRGsO1WnW9Rkl1L6AJVw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.4.9(@types/node@18.17.6) + vite: 4.4.9(@types/node@18.17.8) vue: 3.3.4 /@vitest/expect@0.33.0: @@ -3374,9 +3366,9 @@ packages: /@vitest/snapshot@0.33.0: resolution: {integrity: sha512-tJjrl//qAHbyHajpFvr8Wsk8DIOODEebTu7pgBrP07iOepR5jYkLFiqLq2Ltxv+r0uptUb4izv1J8XBOwKkVYA==} dependencies: - magic-string: 0.30.2 + magic-string: 0.30.3 pathe: 1.1.1 - pretty-format: 29.6.2 + pretty-format: 29.6.3 dev: true /@vitest/spy@0.33.0: @@ -3397,15 +3389,15 @@ packages: pathe: 1.1.1 picocolors: 1.0.0 sirv: 2.0.3 - vitest: 0.33.0(happy-dom@10.10.4) + vitest: 0.33.0(happy-dom@10.11.0) dev: true /@vitest/utils@0.33.0: resolution: {integrity: sha512-pF1w22ic965sv+EN6uoePkAOTkAPWM03Ri/jXNyMIKBb/XHLDPfhLvf/Fa9g0YECevAIz56oVYXhodLvLQ/awA==} dependencies: - diff-sequences: 29.4.3 + diff-sequences: 29.6.3 loupe: 2.3.6 - pretty-format: 29.6.2 + pretty-format: 29.6.3 dev: true /@volar/language-core@1.10.0: @@ -3514,7 +3506,7 @@ packages: '@vue/reactivity-transform': 3.3.4 '@vue/shared': 3.3.4 estree-walker: 2.0.2 - magic-string: 0.30.2 + magic-string: 0.30.3 postcss: 8.4.28 source-map-js: 1.0.2 @@ -3552,7 +3544,7 @@ packages: '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 estree-walker: 2.0.2 - magic-string: 0.30.2 + magic-string: 0.30.3 /@vue/reactivity@3.3.4: resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} @@ -4446,15 +4438,15 @@ packages: tslib: 2.6.1 dev: true - /changelogen@0.5.4: - resolution: {integrity: sha512-ady7TjLW3ZKMWzVF8MG3vJRqLVctNTGIZnO5XoFbMbcC59BVNTZXNXL8tovB+OK6DHLk4NeTHUWzdwMaKmFyUA==} + /changelogen@0.5.5: + resolution: {integrity: sha512-IzgToIJ/R9NhVKmL+PW33ozYkv53bXvufDNUSH3GTKXq1iCHGgkbgbtqEWbo8tnWNnt7nPDpjL8PwSG2iS8RVw==} hasBin: true dependencies: c12: 1.4.2 colorette: 2.0.20 consola: 3.2.3 convert-gitmoji: 0.1.3 - execa: 7.2.0 + execa: 8.0.1 mri: 1.2.0 node-fetch-native: 1.4.0 ofetch: 1.2.1 @@ -4463,7 +4455,7 @@ packages: pkg-types: 1.0.3 scule: 1.0.0 semver: 7.5.4 - std-env: 3.4.0 + std-env: 3.4.3 yaml: 2.3.1 transitivePeerDependencies: - supports-color @@ -4531,7 +4523,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 /chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} @@ -4805,7 +4797,7 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.18 cssnano: 6.0.1(postcss@8.4.28) - jest-worker: 29.6.2 + jest-worker: 29.6.3 postcss: 8.4.28 schema-utils: 4.2.0 serialize-javascript: 6.0.1 @@ -5067,8 +5059,8 @@ packages: /devalue@4.3.2: resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} - /diff-sequences@29.4.3: - resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true @@ -5863,16 +5855,30 @@ packages: signal-exit: 3.0.7 strip-final-newline: 3.0.0 - /expect@29.6.2: - resolution: {integrity: sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA==} + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /expect@29.6.3: + resolution: {integrity: sha512-x1vY4LlEMWUYVZQrFi4ZANXFwqYbJ/JNQspLVvzhW2BNY28aNcXMQH6imBbt+RBf5sVRTodYHXtSP/TLEU0Dxw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/expect-utils': 29.6.2 - '@types/node': 18.17.6 - jest-get-type: 29.4.3 - jest-matcher-utils: 29.6.2 - jest-message-util: 29.6.2 - jest-util: 29.6.2 + '@jest/expect-utils': 29.6.3 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.6.3 + jest-message-util: 29.6.3 + jest-util: 29.6.3 dev: true /extend@3.0.2: @@ -6077,8 +6083,8 @@ packages: /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true @@ -6157,6 +6163,11 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -6337,8 +6348,8 @@ packages: uncrypto: 0.1.3 unenv: 1.7.3 - /happy-dom@10.10.4: - resolution: {integrity: sha512-aEEFGSSs4DEJbxXvSMsIvJvvdsZbJZQEgtHsU4GgwNKbSbFxtgu6vXHmn4XoXnuElIbXV0xhbJiiQTxPnTmJcw==} + /happy-dom@10.11.0: + resolution: {integrity: sha512-CmUT4LOLzvAsbYqgTJESrPyvF0gxLDkDG/KK1o/HYU7+c9o/VVIKXl3feJZnuCYbGqemw7meiQaZcL4SMgn1jQ==} dependencies: css.escape: 1.5.1 entities: 4.5.0 @@ -6543,6 +6554,11 @@ packages: resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} engines: {node: '>=14.18.0'} + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + /hyperdyperid@1.2.0: resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} engines: {node: '>=10.18'} @@ -6921,81 +6937,81 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jest-diff@29.6.2: - resolution: {integrity: sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA==} + /jest-diff@29.6.3: + resolution: {integrity: sha512-3sw+AdWnwH9sSNohMRKA7JiYUJSRr/WS6+sEFfBuhxU5V5GlEVKfvUn8JuMHE0wqKowemR1C2aHy8VtXbaV8dQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - diff-sequences: 29.4.3 - jest-get-type: 29.4.3 - pretty-format: 29.6.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.6.3 dev: true - /jest-get-type@29.4.3: - resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==} + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map@29.6.2: - resolution: {integrity: sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA==} + /jest-haste-map@29.6.3: + resolution: {integrity: sha512-GecR5YavfjkhOytEFHAeI6aWWG3f/cOKNB1YJvj/B76xAmeVjy4zJUYobGF030cRmKaO1FBw3V8CZZ6KVh9ZSw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.6 - '@types/node': 18.17.6 + '@types/node': 18.17.8 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 - jest-regex-util: 29.4.3 - jest-util: 29.6.2 - jest-worker: 29.6.2 + jest-regex-util: 29.6.3 + jest-util: 29.6.3 + jest-worker: 29.6.3 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: true - /jest-matcher-utils@29.6.2: - resolution: {integrity: sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ==} + /jest-matcher-utils@29.6.3: + resolution: {integrity: sha512-6ZrMYINZdwduSt5Xu18/n49O1IgXdjsfG7NEZaQws9k69eTKWKcVbJBw/MZsjOZe2sSyJFmuzh8042XWwl54Zg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 29.6.2 - jest-get-type: 29.4.3 - pretty-format: 29.6.2 + jest-diff: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.6.3 dev: true - /jest-message-util@29.6.2: - resolution: {integrity: sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ==} + /jest-message-util@29.6.3: + resolution: {integrity: sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.22.10 - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.5 - pretty-format: 29.6.2 + pretty-format: 29.6.3 slash: 3.0.0 stack-utils: 2.0.6 dev: true - /jest-mock@29.6.2: - resolution: {integrity: sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg==} + /jest-mock@29.6.3: + resolution: {integrity: sha512-Z7Gs/mOyTSR4yPsaZ72a/MtuK6RnC3JYqWONe48oLaoEcYwEDxqvbXz85G4SJrm2Z5Ar9zp6MiHF4AlFlRM4Pg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.1 - '@types/node': 18.17.6 - jest-util: 29.6.2 + '@jest/types': 29.6.3 + '@types/node': 18.17.8 + jest-util: 29.6.3 dev: true - /jest-regex-util@29.4.3: - resolution: {integrity: sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==} + /jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-snapshot@29.6.2: - resolution: {integrity: sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA==} + /jest-snapshot@29.6.3: + resolution: {integrity: sha512-66Iu7H1ojiveQMGFnKecHIZPPPBjZwfQEnF6wxqpxGf57sV3YSUtAb5/sTKM5TPa3OndyxZp1wxHFbmgVhc53w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.22.10 @@ -7003,31 +7019,31 @@ packages: '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.10) '@babel/types': 7.22.10 - '@jest/expect-utils': 29.6.2 - '@jest/transform': 29.6.2 - '@jest/types': 29.6.1 + '@jest/expect-utils': 29.6.3 + '@jest/transform': 29.6.3 + '@jest/types': 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.10) chalk: 4.1.2 - expect: 29.6.2 + expect: 29.6.3 graceful-fs: 4.2.11 - jest-diff: 29.6.2 - jest-get-type: 29.4.3 - jest-matcher-utils: 29.6.2 - jest-message-util: 29.6.2 - jest-util: 29.6.2 + jest-diff: 29.6.3 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.6.3 + jest-message-util: 29.6.3 + jest-util: 29.6.3 natural-compare: 1.4.0 - pretty-format: 29.6.2 + pretty-format: 29.6.3 semver: 7.5.4 transitivePeerDependencies: - supports-color dev: true - /jest-util@29.6.2: - resolution: {integrity: sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w==} + /jest-util@29.6.3: + resolution: {integrity: sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.1 - '@types/node': 18.17.6 + '@jest/types': 29.6.3 + '@types/node': 18.17.8 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -7037,16 +7053,16 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.17.6 + '@types/node': 18.17.8 merge-stream: 2.0.0 supports-color: 8.1.1 - /jest-worker@29.6.2: - resolution: {integrity: sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ==} + /jest-worker@29.6.3: + resolution: {integrity: sha512-wacANXecZ/GbQakpf2CClrqrlwsYYDSXFd4fIGdL+dXpM2GWoJ+6bhQ7vR3TKi3+gkSfBkjy1/khH/WrYS4Q6g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.17.6 - jest-util: 29.6.2 + '@types/node': 18.17.8 + jest-util: 29.6.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -7196,27 +7212,6 @@ packages: uc.micro: 1.0.6 dev: true - /listhen@1.3.0: - resolution: {integrity: sha512-QhlP01ReqSXpu8OgBaFQjYMU/4YJTCWLFtoDTxBhitPQWfu0UuBoG2HizMysaRkUEAr/CVxB/20T8ni0zQDPtw==} - hasBin: true - dependencies: - '@parcel/watcher': 2.2.0 - '@parcel/watcher-wasm': 2.3.0-alpha.1 - citty: 0.1.2 - clipboardy: 3.0.0 - consola: 3.2.3 - defu: 6.1.2 - get-port-please: 3.0.1 - h3: 1.8.0 - http-shutdown: 1.2.2 - jiti: 1.19.3 - mlly: 1.4.0 - node-forge: 1.3.1 - pathe: 1.1.1 - ufo: 1.2.0 - untun: 0.1.1 - uqr: 0.1.2 - /listhen@1.4.0: resolution: {integrity: sha512-gEOMJKTak+WLjPITBVbv2kR0WKVUSnl5XPwvoFYheyaQPzh/jdA+pRZeUujJkjabNMDsBxwuaYH7HYLpzzGEJA==} hasBin: true @@ -7379,11 +7374,11 @@ packages: resolution: {integrity: sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==} engines: {node: '>=16.14.0'} dependencies: - magic-string: 0.30.2 + magic-string: 0.30.3 dev: false - /magic-string@0.30.2: - resolution: {integrity: sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==} + /magic-string@0.30.3: + resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -8052,9 +8047,6 @@ packages: engines: {node: ^14 || ^16 || >=18} hasBin: true - /napi-wasm@1.1.0: - resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} - /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true @@ -8107,7 +8099,7 @@ packages: klona: 2.0.6 knitwork: 1.0.0 listhen: 1.4.0 - magic-string: 0.30.2 + magic-string: 0.30.3 mime: 3.0.0 mlly: 1.4.0 mri: 1.2.0 @@ -8299,7 +8291,7 @@ packages: - vue dev: true - /nuxt-vitest@0.10.2(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.1)(happy-dom@10.10.4)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): + /nuxt-vitest@0.10.2(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.3)(happy-dom@10.11.0)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): resolution: {integrity: sha512-cYEvFY5iU0fV3xccdunV1vAlgyda3Tf7HEyPGrI/4KMAouwtIDIyuu2SgU3WOFqpNbhbAQbI5COLISodOeUHBQ==} peerDependencies: '@vitejs/plugin-vue': '*' @@ -8308,16 +8300,16 @@ packages: vitest: ^0.24.5 || ^0.26.0 || ^0.27.0 || ^0.28.0 || ^0.29.0 || ^0.30.0 || ^0.33.0 dependencies: '@nuxt/kit': link:packages/kit - '@vitejs/plugin-vue': 4.3.1(vite@4.4.9)(vue@3.3.4) + '@vitejs/plugin-vue': 4.3.3(vite@4.4.9)(vue@3.3.4) '@vitejs/plugin-vue-jsx': 3.0.2(vite@4.4.9)(vue@3.3.4) '@vitest/ui': 0.33.0(vitest@0.33.0) defu: 6.1.2 get-port-please: 3.0.1 perfect-debounce: 1.0.0 - std-env: 3.4.0 - vite: 4.4.9(@types/node@18.17.6) - vitest: 0.33.0(happy-dom@10.10.4) - vitest-environment-nuxt: 0.10.2(happy-dom@10.10.4)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + std-env: 3.4.3 + vite: 4.4.9(@types/node@18.17.8) + vitest: 0.33.0(happy-dom@10.11.0) + vitest-environment-nuxt: 0.10.2(happy-dom@10.11.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) transitivePeerDependencies: - '@vue/server-renderer' - happy-dom @@ -8392,14 +8384,6 @@ packages: es-abstract: 1.22.1 dev: true - /ofetch@1.1.1: - resolution: {integrity: sha512-SSMoktrp9SNLi20BWfB/BnnKcL0RDigXThD/mZBeQxkIRv1xrd9183MtLdsqRYLYSqW0eTr5t8w8MqjNhvoOQQ==} - dependencies: - destr: 2.0.1 - node-fetch-native: 1.4.0 - ufo: 1.2.0 - dev: true - /ofetch@1.2.1: resolution: {integrity: sha512-WEX1TEfGuAFJhzRW6Qv9RcxCyek+YogEeXlCWl1XoqBSW2fc6jU4LTk3VotwC1YfXv8Uz06LSofU6uW/ZIT+6g==} dependencies: @@ -8680,7 +8664,7 @@ packages: consola: 3.2.3 csstype: 3.1.2 defu: 6.1.2 - magic-string: 0.30.2 + magic-string: 0.30.3 nanoid: 4.0.2 ohash: 1.1.3 paneer: 0.1.0 @@ -9148,11 +9132,11 @@ packages: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} - /pretty-format@29.6.2: - resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} + /pretty-format@29.6.3: + resolution: {integrity: sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.6.0 + '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 dev: true @@ -9597,7 +9581,7 @@ packages: rollup: ^3.0 typescript: ^4.1 || ^5.0 dependencies: - magic-string: 0.30.2 + magic-string: 0.30.3 rollup: 3.28.1 typescript: 5.1.6 optionalDependencies: @@ -9611,7 +9595,7 @@ packages: rollup: ^3.25.0 typescript: ^4.5 || ^5.0 dependencies: - magic-string: 0.30.2 + magic-string: 0.30.3 rollup: 3.28.1 typescript: 5.1.6 optionalDependencies: @@ -9639,7 +9623,7 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 /run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} @@ -9988,9 +9972,6 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - /std-env@3.4.0: - resolution: {integrity: sha512-YqHeQIIQ8r1VtUZOTOyjsAXAsjr369SplZ5rlQaiJTBsvodvPSCME7vuz8pnQltbQ0Cw0lyFo5Q8uyNwYQ58Xw==} - /std-env@3.4.3: resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} @@ -10492,7 +10473,7 @@ packages: globby: 13.2.2 hookable: 5.5.3 jiti: 1.19.3 - magic-string: 0.30.2 + magic-string: 0.30.3 mkdist: 1.3.0(typescript@5.1.6) mlly: 1.4.0 mri: 1.2.0 @@ -10532,7 +10513,7 @@ packages: globby: 13.2.2 hookable: 5.5.3 jiti: 1.19.3 - magic-string: 0.30.2 + magic-string: 0.30.3 mkdist: 1.3.0(typescript@5.1.6) mlly: 1.4.0 pathe: 1.1.1 @@ -10556,7 +10537,7 @@ packages: dependencies: acorn: 8.10.0 estree-walker: 3.0.3 - magic-string: 0.30.2 + magic-string: 0.30.3 unplugin: 1.4.0 /undici@5.23.0: @@ -10565,16 +10546,6 @@ packages: dependencies: busboy: 1.6.0 - /unenv@1.7.1: - resolution: {integrity: sha512-iINrdDcqoAjGqoIeOW85TIfI13KGgW1VWwqNO/IzcvvZ/JGBApMAQPZhWcKhE5oC/woFSpCSXg5lc7r1UaLPng==} - dependencies: - consola: 3.2.3 - defu: 6.1.2 - mime: 3.0.0 - node-fetch-native: 1.4.0 - pathe: 1.1.1 - dev: false - /unenv@1.7.3: resolution: {integrity: sha512-5NGaBSP0acq5FAnjw9m6sA/QaImYkEjpYXPc99l/KUIb1qbxki1PSvX3ZNnK3pWIC2XwIHrOul2P7FiHyWgeXA==} dependencies: @@ -10612,7 +10583,7 @@ packages: escape-string-regexp: 5.0.0 fast-glob: 3.3.1 local-pkg: 0.4.3 - magic-string: 0.30.2 + magic-string: 0.30.3 mlly: 1.4.0 pathe: 1.1.1 pkg-types: 1.0.3 @@ -10780,7 +10751,7 @@ packages: destr: 2.0.1 h3: 1.8.0 ioredis: 5.3.2 - listhen: 1.3.0 + listhen: 1.4.0 lru-cache: 10.0.1 mri: 1.2.0 node-fetch-native: 1.4.0 @@ -10925,7 +10896,7 @@ packages: vfile-message: 3.1.4 dev: true - /vite-node@0.33.0(@types/node@18.17.6): + /vite-node@0.33.0(@types/node@18.17.8): resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10935,7 +10906,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.9(@types/node@18.17.6) + vite: 4.4.9(@types/node@18.17.8) transitivePeerDependencies: - '@types/node' - less @@ -10992,7 +10963,7 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.1.6 - vite: 4.4.9(@types/node@18.17.6) + vite: 4.4.9(@types/node@18.17.8) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 @@ -11000,7 +10971,7 @@ packages: vue-tsc: 1.8.8(typescript@5.1.6) dev: false - /vite@4.4.9(@types/node@18.17.6): + /vite@4.4.9(@types/node@18.17.8): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -11028,14 +10999,14 @@ packages: terser: optional: true dependencies: - '@types/node': 18.17.6 + '@types/node': 18.17.8 esbuild: 0.18.20 postcss: 8.4.28 rollup: 3.28.1 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 - /vitest-environment-nuxt@0.10.2(happy-dom@10.10.4)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): + /vitest-environment-nuxt@0.10.2(happy-dom@10.11.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): resolution: {integrity: sha512-CgOS0KW0zhyDVvfHbq+CbkCa/sA2Ui/SMrp0W0vDgzhaUTCuo7WtJ211HwYqGhj3YvSRopOByRPkUDFQjr3wiw==} peerDependencies: happy-dom: ^9.10.9 || ^10.0.0 @@ -11054,11 +11025,11 @@ packages: defu: 6.1.2 estree-walker: 3.0.3 h3: 1.8.0 - happy-dom: 10.10.4 - magic-string: 0.30.2 + happy-dom: 10.11.0 + magic-string: 0.30.3 ofetch: 1.2.1 unenv: 1.7.3 - vitest: 0.33.0(happy-dom@10.10.4) + vitest: 0.33.0(happy-dom@10.11.0) vue: 3.3.4 vue-router: 4.2.4(vue@3.3.4) whatwg-fetch: 3.6.17 @@ -11066,7 +11037,7 @@ packages: - '@vue/server-renderer' dev: true - /vitest@0.33.0(happy-dom@10.10.4): + /vitest@0.33.0(happy-dom@10.11.0): resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} engines: {node: '>=v14.18.0'} hasBin: true @@ -11099,7 +11070,7 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 18.17.6 + '@types/node': 18.17.8 '@vitest/expect': 0.33.0 '@vitest/runner': 0.33.0 '@vitest/snapshot': 0.33.0 @@ -11110,17 +11081,17 @@ packages: cac: 6.7.14 chai: 4.3.7 debug: 4.3.4 - happy-dom: 10.10.4 + happy-dom: 10.11.0 local-pkg: 0.4.3 - magic-string: 0.30.2 + magic-string: 0.30.3 pathe: 1.1.1 picocolors: 1.0.0 - std-env: 3.4.0 + std-env: 3.4.3 strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.4.9(@types/node@18.17.6) - vite-node: 0.33.0(@types/node@18.17.6) + vite: 4.4.9(@types/node@18.17.8) + vite-node: 0.33.0(@types/node@18.17.8) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -11428,7 +11399,7 @@ packages: chalk: 4.1.2 consola: 2.15.3 pretty-time: 1.1.0 - std-env: 3.4.0 + std-env: 3.4.3 webpack: 5.88.2 dev: false diff --git a/test/bundle.test.ts b/test/bundle.test.ts index cdbfb53a0b..1329c90ff8 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -32,7 +32,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"305k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"297k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"1822k"') @@ -71,7 +71,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output-inline/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"611k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"603k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"70.9k"') From e058a10525518f0c290a2432172734b7596e5387 Mon Sep 17 00:00:00 2001 From: Jabin <37999218+JabinPeng@users.noreply.github.com> Date: Wed, 23 Aug 2023 19:09:52 +0800 Subject: [PATCH 703/912] docs: add additional type generics to `useAsyncData` (#22760) --- docs/3.api/1.composables/use-async-data.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/3.api/1.composables/use-async-data.md b/docs/3.api/1.composables/use-async-data.md index 169a8d6a51..6577e5c19c 100644 --- a/docs/3.api/1.composables/use-async-data.md +++ b/docs/3.api/1.composables/use-async-data.md @@ -12,15 +12,15 @@ Within your pages, components, and plugins you can use useAsyncData to get acces ## Type ```ts [Signature] -function useAsyncData( +function useAsyncData( handler: (nuxtApp?: NuxtApp) => Promise, options?: AsyncDataOptions -): AsyncData -function useAsyncData( +): AsyncData +function useAsyncData( key: string, handler: (nuxtApp?: NuxtApp) => Promise, options?: AsyncDataOptions -): Promise> +): Promise type AsyncDataOptions = { server?: boolean From aa37de48f7131686b8040eb7a55883e6b8feb452 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Wed, 23 Aug 2023 17:23:17 +0200 Subject: [PATCH 704/912] fix(nuxt): warn when ignoring duplicate island/server component (#22709) --- packages/nuxt/src/components/scan.ts | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/nuxt/src/components/scan.ts b/packages/nuxt/src/components/scan.ts index 3ca401816c..bad558dd38 100644 --- a/packages/nuxt/src/components/scan.ts +++ b/packages/nuxt/src/components/scan.ts @@ -95,10 +95,7 @@ export async function scanComponents (dirs: ComponentsDir[], srcDir: string): Pr const componentName = resolveComponentName(fileName, prefixParts) if (resolvedNames.has(componentName + suffix) || resolvedNames.has(componentName)) { - console.warn(`[nuxt] Two component files resolving to the same name \`${componentName}\`:\n` + - `\n - ${filePath}` + - `\n - ${resolvedNames.get(componentName)}` - ) + warnAboutDuplicateComponent(componentName, filePath, resolvedNames.get(componentName) || resolvedNames.get(componentName + suffix)!) continue } resolvedNames.set(componentName + suffix, filePath) @@ -136,10 +133,14 @@ export async function scanComponents (dirs: ComponentsDir[], srcDir: string): Pr continue } - // Ignore component if component is already defined (with same mode) - if (!components.some(c => c.pascalName === component.pascalName && ['all', component.mode].includes(c.mode))) { - components.push(component) + const existingComponent = components.find(c => c.pascalName === component.pascalName && ['all', component.mode].includes(c.mode)) + if (existingComponent) { + // Ignore component if component is already defined (with same mode) + warnAboutDuplicateComponent(componentName, filePath, existingComponent.filePath) + continue } + + components.push(component) } scannedPaths.push(dir.path) } @@ -174,3 +175,10 @@ export function resolveComponentName (fileName: string, prefixParts: string[]) { return pascalCase(componentNameParts) + pascalCase(fileNameParts) } + +function warnAboutDuplicateComponent (componentName: string, filePath: string, duplicatePath: string) { + console.warn(`[nuxt] Two component files resolving to the same name \`${componentName}\`:\n` + + `\n - ${filePath}` + + `\n - ${duplicatePath}` + ) +} From e94b30d31407c63533ca249c6e339c596477e9aa Mon Sep 17 00:00:00 2001 From: Mihailo Bursac Date: Wed, 23 Aug 2023 18:58:10 +0200 Subject: [PATCH 705/912] perf(nuxt): reduce multiple calls to `.toLowerCase()` (#22743) --- packages/nuxt/src/components/scan.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/components/scan.ts b/packages/nuxt/src/components/scan.ts index bad558dd38..cfee6e2ad0 100644 --- a/packages/nuxt/src/components/scan.ts +++ b/packages/nuxt/src/components/scan.ts @@ -38,7 +38,8 @@ export async function scanComponents (dirs: ComponentsDir[], srcDir: string): Pr const directory = basename(dir.path) if (!siblings.includes(directory)) { - const caseCorrected = siblings.find(sibling => sibling.toLowerCase() === directory.toLowerCase()) + const directoryLowerCase = directory.toLowerCase() + const caseCorrected = siblings.find(sibling => sibling.toLowerCase() === directoryLowerCase) if (caseCorrected) { const nuxt = useNuxt() const original = relative(nuxt.options.srcDir, dir.path) From 585c26e973085b3a6f1000e0a34df0ae459f125b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 23 Aug 2023 18:44:33 +0100 Subject: [PATCH 706/912] chore(deps): update all non-major dependencies (main) (#22770) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- packages/kit/package.json | 2 +- packages/nuxt/package.json | 8 ++-- packages/schema/package.json | 4 +- pnpm-lock.yaml | 80 ++++++++++++++++++------------------ test/bundle.test.ts | 4 +- 5 files changed, 49 insertions(+), 49 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index a81789ecaf..c8a5fe64fa 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -36,7 +36,7 @@ "semver": "^7.5.4", "ufo": "^1.2.0", "unctx": "^2.3.1", - "unimport": "^3.1.3", + "unimport": "^3.2.0", "untyped": "^1.4.0" }, "devDependencies": { diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index f19b9a3678..c54d17d535 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -58,9 +58,9 @@ "@nuxt/telemetry": "^2.4.1", "@nuxt/ui-templates": "^1.3.1", "@nuxt/vite-builder": "workspace:../vite", - "@unhead/dom": "^1.3.5", - "@unhead/ssr": "^1.3.5", - "@unhead/vue": "^1.3.5", + "@unhead/dom": "^1.3.7", + "@unhead/ssr": "^1.3.7", + "@unhead/vue": "^1.3.7", "@vue/shared": "^3.3.4", "acorn": "8.10.0", "c12": "^1.4.2", @@ -98,7 +98,7 @@ "uncrypto": "^0.1.3", "unctx": "^2.3.1", "unenv": "^1.7.3", - "unimport": "^3.1.3", + "unimport": "^3.2.0", "unplugin": "^1.4.0", "unplugin-vue-router": "^0.6.4", "untyped": "^1.4.0", diff --git a/packages/schema/package.json b/packages/schema/package.json index edf63f0e4f..d033688982 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -30,7 +30,7 @@ "@types/file-loader": "5.0.1", "@types/pug": "2.0.6", "@types/sass-loader": "8.0.5", - "@unhead/schema": "1.3.5", + "@unhead/schema": "1.3.7", "@vitejs/plugin-vue": "4.3.3", "@vitejs/plugin-vue-jsx": "3.0.2", "@vue/compiler-core": "3.3.4", @@ -57,7 +57,7 @@ "postcss-import-resolver": "^2.0.0", "std-env": "^3.4.3", "ufo": "^1.2.0", - "unimport": "^3.1.3", + "unimport": "^3.2.0", "untyped": "^1.4.0" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 87c809a91b..cc343156c0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -207,8 +207,8 @@ importers: specifier: ^2.3.1 version: 2.3.1 unimport: - specifier: ^3.1.3 - version: 3.1.3(rollup@3.28.1) + specifier: ^3.2.0 + version: 3.2.0(rollup@3.28.1) untyped: specifier: ^1.4.0 version: 1.4.0 @@ -368,14 +368,14 @@ importers: specifier: ^14.18.0 || >=16.10.0 version: 18.17.8 '@unhead/dom': - specifier: ^1.3.5 - version: 1.3.5 + specifier: ^1.3.7 + version: 1.3.7 '@unhead/ssr': - specifier: ^1.3.5 - version: 1.3.5 + specifier: ^1.3.7 + version: 1.3.7 '@unhead/vue': - specifier: ^1.3.5 - version: 1.3.5(vue@3.3.4) + specifier: ^1.3.7 + version: 1.3.7(vue@3.3.4) '@vue/shared': specifier: ^3.3.4 version: 3.3.4 @@ -488,8 +488,8 @@ importers: specifier: ^1.7.3 version: 1.7.3 unimport: - specifier: ^3.1.3 - version: 3.1.3(rollup@3.28.1) + specifier: ^3.2.0 + version: 3.2.0(rollup@3.28.1) unplugin: specifier: ^1.4.0 version: 1.4.0 @@ -564,8 +564,8 @@ importers: specifier: ^1.2.0 version: 1.2.0 unimport: - specifier: ^3.1.3 - version: 3.1.3(rollup@3.28.1) + specifier: ^3.2.0 + version: 3.2.0(rollup@3.28.1) untyped: specifier: ^1.4.0 version: 1.4.0 @@ -583,8 +583,8 @@ importers: specifier: 8.0.5 version: 8.0.5 '@unhead/schema': - specifier: 1.3.5 - version: 1.3.5 + specifier: 1.3.7 + version: 1.3.7 '@vitejs/plugin-vue': specifier: 4.3.3 version: 4.3.3(vite@4.4.9)(vue@3.3.4) @@ -3260,41 +3260,41 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@unhead/dom@1.3.5: - resolution: {integrity: sha512-WwwiJ85VugfvCgydizuOXlGGbVUY+JLOB1Ls7gEqJO2WIMGSKYA+5ILn17UmCUXGBVWpLdELbedjkTmxIdXPJw==} + /@unhead/dom@1.3.7: + resolution: {integrity: sha512-utDjimElXvPrpArysKbrUFWacF4exwXB5tOZ9H3SUJOJxIPtz4GZZgkPTPv+UHV9Z+21MP/a6dFldc5j9EAO4A==} dependencies: - '@unhead/schema': 1.3.5 - '@unhead/shared': 1.3.5 + '@unhead/schema': 1.3.7 + '@unhead/shared': 1.3.7 dev: false - /@unhead/schema@1.3.5: - resolution: {integrity: sha512-K1ubX/0pFGhjhiPRBemWl94ca6fyZYAQP5DUSwyW+VMqjWqzlE5rdjtUU0vsmHQOaFRFUCpTX4w4dtHdv3ut+Q==} + /@unhead/schema@1.3.7: + resolution: {integrity: sha512-C0+wA2ZZl4d2Aj0z3mFoDKDTv/22z0Tu5giXj+T+iEmfAir9k6kH2UrrCDMkHUP/mRnBSEg1URBrFq2al34VKg==} dependencies: hookable: 5.5.3 zhead: 2.0.10 - /@unhead/shared@1.3.5: - resolution: {integrity: sha512-r5diAXP9qxhZz3Nvxjk69dkhsdduvW+cPnOdzPWhpbCk1lHugGz+if09AX+M7NoAlLJQBmqFiFkTZS/JrtTZhg==} + /@unhead/shared@1.3.7: + resolution: {integrity: sha512-73bs2B5wCMCr+X81qbEVPwFd/7pN8SXSgsSSwq9KkhmB+hC3bipiDST+Fe1h7F80lZ4iu9EwjrNxNlXw+tLjsw==} dependencies: - '@unhead/schema': 1.3.5 + '@unhead/schema': 1.3.7 dev: false - /@unhead/ssr@1.3.5: - resolution: {integrity: sha512-5akS3enT8kZxxaL8PPJh7uK/vCfJ8SI7A6JO8RvF9SOUfv3pwqvw5GboKiAgzEbIf1oDzka/vDGaLD8TvtJSCw==} + /@unhead/ssr@1.3.7: + resolution: {integrity: sha512-6FNA2h4AA3I52YQUJ7JqAi0JmixFTa/hM9UWoLDGu9FpFJKiQfRX4s1bm8RPaLC+HTR/GhGdUcwkT4gxU54SLg==} dependencies: - '@unhead/schema': 1.3.5 - '@unhead/shared': 1.3.5 + '@unhead/schema': 1.3.7 + '@unhead/shared': 1.3.7 dev: false - /@unhead/vue@1.3.5(vue@3.3.4): - resolution: {integrity: sha512-9i5dvtk27BFqNrrTLv1A9hHfbAaKDn6NuzMI8945Js41A/uEs0kVAmvdtVMCL9s3dy6jWqme/Th4JUzVS5tl+g==} + /@unhead/vue@1.3.7(vue@3.3.4): + resolution: {integrity: sha512-ekvE592mAJxwoscCt/6Z2gwXHb4IzWIUsy/vcBXd/aEo0bOPww9qObCyS3/GxhknRdItDhJOwfO9CId+bSRG8Q==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@unhead/schema': 1.3.5 - '@unhead/shared': 1.3.5 + '@unhead/schema': 1.3.7 + '@unhead/shared': 1.3.7 hookable: 5.5.3 - unhead: 1.3.5 + unhead: 1.3.7 vue: 3.3.4 dev: false @@ -8123,7 +8123,7 @@ packages: uncrypto: 0.1.3 unctx: 2.3.1 unenv: 1.7.3 - unimport: 3.1.3(rollup@3.28.1) + unimport: 3.2.0(rollup@3.28.1) unstorage: 1.9.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -10555,12 +10555,12 @@ packages: node-fetch-native: 1.4.0 pathe: 1.1.1 - /unhead@1.3.5: - resolution: {integrity: sha512-T7WBnrRvpvYw4PntaSfz45atpr83ZlZvZ5vULhbMZtiv/wlFYuknd/wWT8+EPfCJjVStyJX4MZ1DH8ux0h3QIQ==} + /unhead@1.3.7: + resolution: {integrity: sha512-XRkDIaIK325UyKwSqV6fDbFKJ4HYuT5mCEnIhUqNBtUYv6b7jdXzYTfUiZSb1ciJyTqvzRHFWDtmGtJo1L375Q==} dependencies: - '@unhead/dom': 1.3.5 - '@unhead/schema': 1.3.5 - '@unhead/shared': 1.3.5 + '@unhead/dom': 1.3.7 + '@unhead/schema': 1.3.7 + '@unhead/shared': 1.3.7 hookable: 5.5.3 dev: false @@ -10576,8 +10576,8 @@ packages: vfile: 5.3.7 dev: true - /unimport@3.1.3(rollup@3.28.1): - resolution: {integrity: sha512-up4TE2yA+nMyyErGTjbYGVw95MriGa2hVRXQ3/JRp7984cwwqULcnBjHaovVpsO8tZc2j0fvgGu9yiBKOyxvYw==} + /unimport@3.2.0(rollup@3.28.1): + resolution: {integrity: sha512-9buxPxkNwxwxAlH/RfOFHxtQTUrlmBGi9Ai9HezY2yYbkoOhgJTYPI6+WqxI1EZphoM9cw1SHoCFRkXSb8/fjQ==} dependencies: '@rollup/pluginutils': 5.0.3(rollup@3.28.1) escape-string-regexp: 5.0.0 diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 1329c90ff8..f4f94d924e 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -19,7 +19,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM for (const outputDir of ['.output', '.output-inline']) { it('default client bundle size', async () => { const clientStats = await analyzeSizes('**/*.js', join(rootDir, outputDir, 'public')) - expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"96.4k"') + expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"96.1k"') expect(clientStats.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -74,7 +74,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"603k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"70.9k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"70.5k"') const packages = modules.files .filter(m => m.endsWith('package.json')) From 815230c1b5c0116290e75cf26483e5ca03889eff Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 23 Aug 2023 21:03:10 +0100 Subject: [PATCH 707/912] test: add regression test for escaping payload (#22774) --- test/fixtures/basic/pages/json-payload.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/test/fixtures/basic/pages/json-payload.vue b/test/fixtures/basic/pages/json-payload.vue index 40f2e4177e..586db8fe33 100644 --- a/test/fixtures/basic/pages/json-payload.vue +++ b/test/fixtures/basic/pages/json-payload.vue @@ -1,6 +1,7 @@ + + diff --git a/test/hmr.test.ts b/test/hmr.test.ts index bf1d241021..1af0b08de7 100644 --- a/test/hmr.test.ts +++ b/test/hmr.test.ts @@ -3,7 +3,7 @@ import { fileURLToPath } from 'node:url' import { describe, expect, it } from 'vitest' import { isWindows } from 'std-env' import { join } from 'pathe' -import { $fetch, setup } from '@nuxt/test-utils' +import { $fetch, fetch, setup } from '@nuxt/test-utils' import { expectWithPolling, renderPage } from './utils' @@ -70,15 +70,33 @@ if (process.env.TEST_ENV !== 'built' && !isWindows) { }, 60_000) it('should detect new routes', async () => { - const html = await $fetch('/some-404') - expect(html).toContain('catchall at some-404') + await expectWithPolling( + () => $fetch('/some-404').then(r => r.includes('catchall at some-404')).catch(() => null), + true + ) // write new page route const indexVue = await fsp.readFile(join(fixturePath, 'pages/index.vue'), 'utf8') await fsp.writeFile(join(fixturePath, 'pages/some-404.vue'), indexVue) await expectWithPolling( - () => $fetch('/some-404').then(r => r.includes('Hello Nuxt 3')), + () => $fetch('/some-404').then(r => r.includes('Hello Nuxt 3')).catch(() => null), + true + ) + }) + + it('should hot reload route rules', async () => { + await expectWithPolling( + () => fetch('/route-rules/inline').then(r => r.headers.get('x-extend') === 'added in routeRules').catch(() => null), + true + ) + + // write new page route + const file = await fsp.readFile(join(fixturePath, 'pages/route-rules/inline.vue'), 'utf8') + await fsp.writeFile(join(fixturePath, 'pages/route-rules/inline.vue'), file.replace('added in routeRules', 'edited in dev')) + + await expectWithPolling( + () => fetch('/route-rules/inline').then(r => r.headers.get('x-extend') === 'edited in dev').catch(() => null), true ) }) From 330900bcbe6c6de41d7f7aa97affef70c20dba30 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 23 Aug 2023 21:40:42 +0100 Subject: [PATCH 710/912] chore(deps): update dependency ofetch to v1.3.2 (main) (#22772) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- package.json | 2 +- packages/nuxt/package.json | 2 +- packages/test-utils/package.json | 2 +- pnpm-lock.yaml | 28 ++++++++++++++-------------- test/bundle.test.ts | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/package.json b/package.json index 5e5c7c0d2f..b061da781d 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "nuxi": "workspace:*", "nuxt": "workspace:*", "nuxt-vitest": "0.10.2", - "ofetch": "1.2.1", + "ofetch": "1.3.2", "pathe": "1.1.1", "playwright-core": "1.37.1", "rimraf": "5.0.1", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index c54d17d535..7237fe0a6d 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -84,7 +84,7 @@ "nitropack": "^2.6.0", "nuxi": "workspace:../nuxi", "nypm": "^0.3.0", - "ofetch": "^1.2.1", + "ofetch": "^1.3.2", "ohash": "^1.1.3", "pathe": "^1.1.1", "perfect-debounce": "^1.0.0", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 6738f00b6e..bff1c0d997 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -28,7 +28,7 @@ "defu": "^6.1.2", "execa": "^7.2.0", "get-port-please": "^3.0.1", - "ofetch": "^1.2.1", + "ofetch": "^1.3.2", "pathe": "^1.1.1", "ufo": "^1.2.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc343156c0..642f3aa238 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -105,8 +105,8 @@ importers: specifier: 0.10.2 version: 0.10.2(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.3)(happy-dom@10.11.0)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) ofetch: - specifier: 1.2.1 - version: 1.2.1 + specifier: 1.3.2 + version: 1.3.2 pathe: specifier: 1.1.1 version: 1.1.1 @@ -446,8 +446,8 @@ importers: specifier: ^0.3.0 version: 0.3.0 ofetch: - specifier: ^1.2.1 - version: 1.2.1 + specifier: ^1.3.2 + version: 1.3.2 ohash: specifier: ^1.1.3 version: 1.1.3 @@ -655,8 +655,8 @@ importers: specifier: ^3.0.1 version: 3.0.1 ofetch: - specifier: ^1.2.1 - version: 1.2.1 + specifier: ^1.3.2 + version: 1.3.2 pathe: specifier: ^1.1.1 version: 1.1.1 @@ -1000,7 +1000,7 @@ importers: devDependencies: ofetch: specifier: latest - version: 1.2.1 + version: 1.3.2 vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.11.0) @@ -2475,7 +2475,7 @@ packages: mri: 1.2.0 nanoid: 4.0.2 node-fetch: 3.3.2 - ofetch: 1.2.1 + ofetch: 1.3.2 parse-git-config: 3.0.0 pathe: 1.1.1 rc9: 2.1.1 @@ -4449,7 +4449,7 @@ packages: execa: 8.0.1 mri: 1.2.0 node-fetch-native: 1.4.0 - ofetch: 1.2.1 + ofetch: 1.3.2 open: 9.1.0 pathe: 1.1.1 pkg-types: 1.0.3 @@ -8104,7 +8104,7 @@ packages: mlly: 1.4.0 mri: 1.2.0 node-fetch-native: 1.4.0 - ofetch: 1.2.1 + ofetch: 1.3.2 ohash: 1.1.3 openapi-typescript: 6.5.3 pathe: 1.1.1 @@ -8384,8 +8384,8 @@ packages: es-abstract: 1.22.1 dev: true - /ofetch@1.2.1: - resolution: {integrity: sha512-WEX1TEfGuAFJhzRW6Qv9RcxCyek+YogEeXlCWl1XoqBSW2fc6jU4LTk3VotwC1YfXv8Uz06LSofU6uW/ZIT+6g==} + /ofetch@1.3.2: + resolution: {integrity: sha512-XphiqMCUugscBfS7EjEfe8s3Hb5kfrTqdk9QAYl9z/wvhI3g97EpQdldqd0zAWqQXInHEqkRBQ08reMFHQwjDA==} dependencies: destr: 2.0.1 node-fetch-native: 1.4.0 @@ -10755,7 +10755,7 @@ packages: lru-cache: 10.0.1 mri: 1.2.0 node-fetch-native: 1.4.0 - ofetch: 1.2.1 + ofetch: 1.3.2 ufo: 1.2.0 transitivePeerDependencies: - supports-color @@ -11027,7 +11027,7 @@ packages: h3: 1.8.0 happy-dom: 10.11.0 magic-string: 0.30.3 - ofetch: 1.2.1 + ofetch: 1.3.2 unenv: 1.7.3 vitest: 0.33.0(happy-dom@10.11.0) vue: 3.3.4 diff --git a/test/bundle.test.ts b/test/bundle.test.ts index f4f94d924e..d3bb320390 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -19,7 +19,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM for (const outputDir of ['.output', '.output-inline']) { it('default client bundle size', async () => { const clientStats = await analyzeSizes('**/*.js', join(rootDir, outputDir, 'public')) - expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"96.1k"') + expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"96.4k"') expect(clientStats.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -71,7 +71,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output-inline/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"603k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"604k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"70.5k"') From 9d3702c7c2e0abce706e5deb3b4a5be25e6b32db Mon Sep 17 00:00:00 2001 From: Colin McDonnell Date: Wed, 23 Aug 2023 23:44:43 -0700 Subject: [PATCH 711/912] docs: add instructions for Bun package manager (#22779) --- docs/1.getting-started/2.installation.md | 8 ++++++++ docs/2.guide/2.directory-structure/1.node_modules.md | 2 +- docs/2.guide/3.going-further/11.edge-channel.md | 4 ++-- docs/5.community/4.contribution.md | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/1.getting-started/2.installation.md b/docs/1.getting-started/2.installation.md index e04c15e7c1..fc88fa668d 100644 --- a/docs/1.getting-started/2.installation.md +++ b/docs/1.getting-started/2.installation.md @@ -88,6 +88,10 @@ npm install pnpm install ``` +```bash [bun] +bun install +``` + :: ## Development Server @@ -108,6 +112,10 @@ npm run dev -- -o pnpm dev -o ``` +```bash [pnpm] +bun run dev -o +``` + :: ::alert{type=success icon=✨ .font-bold} diff --git a/docs/2.guide/2.directory-structure/1.node_modules.md b/docs/2.guide/2.directory-structure/1.node_modules.md index fdbccb4062..08a598ae28 100644 --- a/docs/2.guide/2.directory-structure/1.node_modules.md +++ b/docs/2.guide/2.directory-structure/1.node_modules.md @@ -7,4 +7,4 @@ head.title: "node_modules/" # Node modules Directory -The package manager ([`npm`](https://docs.npmjs.com/cli/v7/commands/npm) or [`yarn`](https://yarnpkg.com/) or [`pnpm`](https://pnpm.io/cli/install)) creates the [`node_modules/` directory](/docs/guide/directory-structure/node_modules) to store the dependencies of your project. +The package manager ([`npm`](https://docs.npmjs.com/cli/v7/commands/npm) or [`yarn`](https://yarnpkg.com/) or [`pnpm`](https://pnpm.io/cli/install) or [`bun`](https://bun.sh/package-manager)) creates the [`node_modules/` directory](/docs/guide/directory-structure/node_modules) to store the dependencies of your project. diff --git a/docs/2.guide/3.going-further/11.edge-channel.md b/docs/2.guide/3.going-further/11.edge-channel.md index b78e2c4dfd..3bfe1ecaca 100644 --- a/docs/2.guide/3.going-further/11.edge-channel.md +++ b/docs/2.guide/3.going-further/11.edge-channel.md @@ -30,7 +30,7 @@ Update `nuxt` dependency inside `package.json`: } ``` -Remove lockfile (`package-lock.json`, `yarn.lock`, or `pnpm-lock.yaml`) and reinstall dependencies. +Remove lockfile (`package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`, or `bun.lockb`) and reinstall dependencies. ## Opting Out From the Edge Channel @@ -45,7 +45,7 @@ Update `nuxt` dependency inside `package.json`: } ``` -Remove lockfile (`package-lock.json`, `yarn.lock`, or `pnpm-lock.yaml`) and reinstall dependencies. +Remove lockfile (`package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`, or `bun.lockb`) and reinstall dependencies. ## Using Latest `nuxi` CLI From Edge diff --git a/docs/5.community/4.contribution.md b/docs/5.community/4.contribution.md index aa90003391..2651311756 100644 --- a/docs/5.community/4.contribution.md +++ b/docs/5.community/4.contribution.md @@ -157,7 +157,7 @@ We recommend using [VS Code](https://code.visualstudio.com/) along with the [ESL #### No Prettier -Since ESLint is already configured to format the code, there is no need to duplicate the functionality with Prettier. To format the code, you can run `yarn lint --fix` or `pnpm lint --fix` or referring the [ESLint section](#use-eslint) for IDE Setup. +Since ESLint is already configured to format the code, there is no need to duplicate the functionality with Prettier. To format the code, you can run `yarn lint --fix`, `pnpm lint --fix`, or `bun run lint --fix` or referring the [ESLint section](#use-eslint) for IDE Setup. If you have Prettier installed in your editor, we recommend you disable it when working on the project to avoid conflict. From a28ee6b0141c71a6d34d631bc310a63e5df0a110 Mon Sep 17 00:00:00 2001 From: Muhammad Mahmoud Date: Thu, 24 Aug 2023 11:12:21 +0300 Subject: [PATCH 712/912] docs: fix typo in bun package manager name (#22781) --- docs/1.getting-started/2.installation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/1.getting-started/2.installation.md b/docs/1.getting-started/2.installation.md index fc88fa668d..7c6b4cb12d 100644 --- a/docs/1.getting-started/2.installation.md +++ b/docs/1.getting-started/2.installation.md @@ -112,7 +112,7 @@ npm run dev -- -o pnpm dev -o ``` -```bash [pnpm] +```bash [bun] bun run dev -o ``` From 6f7d86be787eea78dba12ad00caa7af9891a93b9 Mon Sep 17 00:00:00 2001 From: Jongmin Yoon Date: Thu, 24 Aug 2023 21:06:29 +0900 Subject: [PATCH 713/912] fix(nuxt): recreate `asyncData` when `immediate` is disabled (#20980) --- docs/3.api/1.composables/use-async-data.md | 8 +++---- docs/3.api/1.composables/use-fetch.md | 19 ++++++++-------- .../nuxt/src/app/composables/asyncData.ts | 2 +- test/basic.test.ts | 20 +++++++++++++++++ test/fixtures/basic/pages/index.vue | 3 +++ .../immediate-remove-unmounted.vue | 22 +++++++++++++++++++ 6 files changed, 60 insertions(+), 14 deletions(-) create mode 100644 test/fixtures/basic/pages/useAsyncData/immediate-remove-unmounted.vue diff --git a/docs/3.api/1.composables/use-async-data.md b/docs/3.api/1.composables/use-async-data.md index 6577e5c19c..841f5d6085 100644 --- a/docs/3.api/1.composables/use-async-data.md +++ b/docs/3.api/1.composables/use-async-data.md @@ -25,11 +25,11 @@ function useAsyncData( type AsyncDataOptions = { server?: boolean lazy?: boolean + immediate?: boolean default?: () => DataT | Ref | null transform?: (input: DataT) => DataT pick?: string[] watch?: WatchSource[] - immediate?: boolean } type AsyncData = { @@ -53,13 +53,13 @@ type AsyncDataRequestStatus = 'idle' | 'pending' | 'success' | 'error' * **key**: a unique key to ensure that data fetching can be properly de-duplicated across requests. If you do not provide a key, then a key that is unique to the file name and line number of the instance of [`useAsyncData`](/docs/api/composables/use-async-data) will be generated for you. * **handler**: an asynchronous function that returns a value * **options**: - * _lazy_: whether to resolve the async function after loading the route, instead of blocking client-side navigation (defaults to `false`) - * _default_: a factory function to set the default value of the data, before the async function resolves - particularly useful with the `lazy: true` option * _server_: whether to fetch the data on the server (defaults to `true`) + * _lazy_: whether to resolve the async function after loading the route, instead of blocking client-side navigation (defaults to `false`) + * _immediate_: when set to `false`, will prevent the request from firing immediately. (defaults to `true`) + * _default_: a factory function to set the default value of the `data`, before the async function resolves - useful with the `lazy: true` or `immediate: false` option * _transform_: a function that can be used to alter `handler` function result after resolving * _pick_: only pick specified keys in this array from the `handler` function result * _watch_: watch reactive sources to auto-refresh - * _immediate_: When set to `false`, will prevent the request from firing immediately. (defaults to `true`) Under the hood, `lazy: false` uses `` to block the loading of the route before the data has been fetched. Consider using `lazy: true` and implementing a loading state instead for a snappier user experience. diff --git a/docs/3.api/1.composables/use-fetch.md b/docs/3.api/1.composables/use-fetch.md index f25564539c..b3bdc3cd11 100644 --- a/docs/3.api/1.composables/use-fetch.md +++ b/docs/3.api/1.composables/use-fetch.md @@ -29,7 +29,7 @@ type UseFetchOptions = { default?: () => DataT transform?: (input: DataT) => DataT pick?: string[] - watch?: WatchSource[] + watch?: WatchSource[] | false } type AsyncData = { @@ -63,14 +63,15 @@ type AsyncDataRequestStatus = 'idle' | 'pending' | 'success' | 'error' All fetch options can be given a `computed` or `ref` value. These will be watched and new requests made automatically with any new values if they are updated. :: -* **Options (from [`useAsyncData`](/docs/api/composables/use-async-data) )**: - * `key`: a unique key to ensure that data fetching can be properly de-duplicated across requests, if not provided, it will be generated based on the static code location where [`useAsyncData`](/docs/api/composables/use-async-data) is used. - * `server`: Whether to fetch the data on the server (defaults to `true`). - * `default`: A factory function to set the default value of the data, before the async function resolves - particularly useful with the `lazy: true` option. - * `pick`: Only pick specified keys in this array from the `handler` function result. - * `watch`: Watch an array of reactive sources and auto-refresh the fetch result when they change. Fetch options and URL are watched by default. You can completely ignore reactive sources by using `watch: false`. Together with `immediate: false`, this allows for a fully-manual `useFetch`. - * `transform`: A function that can be used to alter `handler` function result after resolving. - * `immediate`: When set to `false`, will prevent the request from firing immediately. (defaults to `true`) +* **Options (from `useAsyncData`)**: + * `key`: a unique key to ensure that data fetching can be properly de-duplicated across requests, if not provided, it will be generated based on the static code location where `useAsyncData` is used. + * `server`: whether to fetch the data on the server (defaults to `true`) + * `lazy`: whether to resolve the async function after loading the route, instead of blocking client-side navigation (defaults to `false`) + * `immediate`: when set to `false`, will prevent the request from firing immediately. (defaults to `true`) + * `default`: a factory function to set the default value of the `data`, before the async function resolves - useful with the `lazy: true` or `immediate: false` option + * `transform`: a function that can be used to alter `handler` function result after resolving + * `pick`: only pick specified keys in this array from the `handler` function result + * `watch`: watch an array of reactive sources and auto-refresh the fetch result when they change. Fetch options and URL are watched by default. You can completely ignore reactive sources by using `watch: false`. Together with `immediate: false`, this allows for a fully-manual `useFetch`. ::alert{type=warning} If you provide a function or ref as the `url` parameter, or if you provide functions as arguments to the `options` parameter, then the [`useFetch`](/docs/api/composables/use-fetch) call will not match other [`useFetch`](/docs/api/composables/use-fetch) calls elsewhere in your codebase, even if the options seem to be identical. If you wish to force a match, you may provide your own key in `options`. diff --git a/packages/nuxt/src/app/composables/asyncData.ts b/packages/nuxt/src/app/composables/asyncData.ts index b086e705bc..cd50a3c549 100644 --- a/packages/nuxt/src/app/composables/asyncData.ts +++ b/packages/nuxt/src/app/composables/asyncData.ts @@ -145,7 +145,7 @@ export function useAsyncData< const hasCachedData = () => getCachedData() !== undefined // Create or use a shared asyncData entity - if (!nuxt._asyncData[key]) { + if (!nuxt._asyncData[key] || !options.immediate) { nuxt._asyncData[key] = { data: ref(getCachedData() ?? options.default!()), pending: ref(!hasCachedData()), diff --git a/test/basic.test.ts b/test/basic.test.ts index b6748654f5..9e8e7d40ff 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1848,6 +1848,26 @@ describe.skipIf(isWindows)('useAsyncData', () => { await page.locator('#status5-values').getByText('idle,pending,success').waitFor() await page.close() }) + + it('data is null after navigation when immediate false', async () => { + const page = await createPage('/useAsyncData/immediate-remove-unmounted') + await page.waitForLoadState('networkidle') + await page.waitForFunction(() => window.useNuxtApp?.()._route.fullPath === '/useAsyncData/immediate-remove-unmounted') + expect(await page.locator('#immediate-data').getByText('null').textContent()).toBe('null') + + await page.click('#execute-btn') + expect(await page.locator('#immediate-data').getByText(',').textContent()).not.toContain('null') + + await page.click('#to-index') + + await page.click('#to-immediate-remove-unmounted') + expect(await page.locator('#immediate-data').getByText('null').textContent()).toBe('null') + + await page.click('#execute-btn') + expect(await page.locator('#immediate-data').getByText(',').textContent()).not.toContain('null') + + await page.close() + }) }) describe.runIf(isDev())('component testing', () => { diff --git a/test/fixtures/basic/pages/index.vue b/test/fixtures/basic/pages/index.vue index eda06465a9..3d7d5fe2f0 100644 --- a/test/fixtures/basic/pages/index.vue +++ b/test/fixtures/basic/pages/index.vue @@ -26,6 +26,9 @@ islands + + Immediate remove unmounted + Chunk error diff --git a/test/fixtures/basic/pages/useAsyncData/immediate-remove-unmounted.vue b/test/fixtures/basic/pages/useAsyncData/immediate-remove-unmounted.vue new file mode 100644 index 0000000000..eded79b477 --- /dev/null +++ b/test/fixtures/basic/pages/useAsyncData/immediate-remove-unmounted.vue @@ -0,0 +1,22 @@ + + + From 23723305dacf0a0d951e14c37e5795fba8c5a752 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 24 Aug 2023 13:06:44 +0100 Subject: [PATCH 714/912] feat(schema): support setting `hidden` sourcemaps (#22787) --- packages/nuxt/src/components/module.ts | 12 ++++++------ packages/nuxt/src/core/nuxt.ts | 14 +++++++------- packages/nuxt/src/imports/module.ts | 4 ++-- packages/nuxt/src/pages/module.ts | 2 +- packages/schema/src/config/build.ts | 2 +- packages/vite/src/client.ts | 10 +++++----- packages/vite/src/server.ts | 4 ++-- packages/vite/src/vite.ts | 2 +- packages/webpack/src/configs/client.ts | 6 ++++-- packages/webpack/src/configs/server.ts | 7 ++++++- packages/webpack/src/webpack.ts | 4 ++-- 11 files changed, 37 insertions(+), 30 deletions(-) diff --git a/packages/nuxt/src/components/module.ts b/packages/nuxt/src/components/module.ts index d9a638872f..b0c858692e 100644 --- a/packages/nuxt/src/components/module.ts +++ b/packages/nuxt/src/components/module.ts @@ -208,16 +208,16 @@ export default defineNuxtModule({ config.plugins = config.plugins || [] if (nuxt.options.experimental.treeshakeClientOnly && isServer) { config.plugins.push(TreeShakeTemplatePlugin.vite({ - sourcemap: nuxt.options.sourcemap[mode], + sourcemap: !!nuxt.options.sourcemap[mode], getComponents })) } config.plugins.push(clientFallbackAutoIdPlugin.vite({ - sourcemap: nuxt.options.sourcemap[mode], + sourcemap: !!nuxt.options.sourcemap[mode], rootDir: nuxt.options.rootDir })) config.plugins.push(loaderPlugin.vite({ - sourcemap: nuxt.options.sourcemap[mode], + sourcemap: !!nuxt.options.sourcemap[mode], getComponents, mode, transform: typeof nuxt.options.components === 'object' && !Array.isArray(nuxt.options.components) ? nuxt.options.components.transform : undefined, @@ -252,16 +252,16 @@ export default defineNuxtModule({ config.plugins = config.plugins || [] if (nuxt.options.experimental.treeshakeClientOnly && mode === 'server') { config.plugins.push(TreeShakeTemplatePlugin.webpack({ - sourcemap: nuxt.options.sourcemap[mode], + sourcemap: !!nuxt.options.sourcemap[mode], getComponents })) } config.plugins.push(clientFallbackAutoIdPlugin.webpack({ - sourcemap: nuxt.options.sourcemap[mode], + sourcemap: !!nuxt.options.sourcemap[mode], rootDir: nuxt.options.rootDir })) config.plugins.push(loaderPlugin.webpack({ - sourcemap: nuxt.options.sourcemap[mode], + sourcemap: !!nuxt.options.sourcemap[mode], getComponents, mode, transform: typeof nuxt.options.components === 'object' && !Array.isArray(nuxt.options.components) ? nuxt.options.components.transform : undefined, diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index b703f64944..f992ec2433 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -94,14 +94,14 @@ async function initNuxt (nuxt: Nuxt) { if (nuxt.options.experimental.localLayerAliases) { // Add layer aliasing support for ~, ~~, @ and @@ aliases addVitePlugin(() => LayerAliasingPlugin.vite({ - sourcemap: nuxt.options.sourcemap.server || nuxt.options.sourcemap.client, + sourcemap: !!nuxt.options.sourcemap.server || !!nuxt.options.sourcemap.client, dev: nuxt.options.dev, root: nuxt.options.srcDir, // skip top-level layer (user's project) as the aliases will already be correctly resolved layers: nuxt.options._layers.slice(1) })) addWebpackPlugin(() => LayerAliasingPlugin.webpack({ - sourcemap: nuxt.options.sourcemap.server || nuxt.options.sourcemap.client, + sourcemap: !!nuxt.options.sourcemap.server || !!nuxt.options.sourcemap.client, dev: nuxt.options.dev, root: nuxt.options.srcDir, // skip top-level layer (user's project) as the aliases will already be correctly resolved @@ -113,7 +113,7 @@ async function initNuxt (nuxt: Nuxt) { nuxt.hook('modules:done', () => { // Add unctx transform const options = { - sourcemap: nuxt.options.sourcemap.server || nuxt.options.sourcemap.client, + sourcemap: !!nuxt.options.sourcemap.server || !!nuxt.options.sourcemap.client, transformerOptions: nuxt.options.optimization.asyncTransforms } addVitePlugin(() => UnctxTransformPlugin.vite(options)) @@ -121,7 +121,7 @@ async function initNuxt (nuxt: Nuxt) { // Add composable tree-shaking optimisations const serverTreeShakeOptions: TreeShakeComposablesPluginOptions = { - sourcemap: nuxt.options.sourcemap.server, + sourcemap: !!nuxt.options.sourcemap.server, composables: nuxt.options.optimization.treeShake.composables.server } if (Object.keys(serverTreeShakeOptions.composables).length) { @@ -129,7 +129,7 @@ async function initNuxt (nuxt: Nuxt) { addWebpackPlugin(() => TreeShakeComposablesPlugin.webpack(serverTreeShakeOptions), { client: false }) } const clientTreeShakeOptions: TreeShakeComposablesPluginOptions = { - sourcemap: nuxt.options.sourcemap.client, + sourcemap: !!nuxt.options.sourcemap.client, composables: nuxt.options.optimization.treeShake.composables.client } if (Object.keys(clientTreeShakeOptions.composables).length) { @@ -140,8 +140,8 @@ async function initNuxt (nuxt: Nuxt) { if (!nuxt.options.dev) { // DevOnly component tree-shaking - build time only - addVitePlugin(() => DevOnlyPlugin.vite({ sourcemap: nuxt.options.sourcemap.server || nuxt.options.sourcemap.client })) - addWebpackPlugin(() => DevOnlyPlugin.webpack({ sourcemap: nuxt.options.sourcemap.server || nuxt.options.sourcemap.client })) + addVitePlugin(() => DevOnlyPlugin.vite({ sourcemap: !!nuxt.options.sourcemap.server || !!nuxt.options.sourcemap.client })) + addWebpackPlugin(() => DevOnlyPlugin.webpack({ sourcemap: !!nuxt.options.sourcemap.server || !!nuxt.options.sourcemap.client })) } // Transform initial composable call within ` + + From 53f7c1dfaad369df2be36884828e485fb5b065dc Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 24 Aug 2023 13:45:24 +0100 Subject: [PATCH 716/912] refactor(nuxt): import `useNitroApp` from subpath (#22785) --- packages/nuxt/src/core/runtime/nitro/error.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/core/runtime/nitro/error.ts b/packages/nuxt/src/core/runtime/nitro/error.ts index a85570f523..d0f176b189 100644 --- a/packages/nuxt/src/core/runtime/nitro/error.ts +++ b/packages/nuxt/src/core/runtime/nitro/error.ts @@ -2,7 +2,8 @@ import { joinURL, withQuery } from 'ufo' import type { NitroErrorHandler } from 'nitropack' import type { H3Error } from 'h3' import { getRequestHeaders, send, setResponseHeader, setResponseStatus } from 'h3' -import { useNitroApp, useRuntimeConfig } from '#internal/nitro' +import { useRuntimeConfig } from '#internal/nitro' +import { useNitroApp } from '#internal/nitro/app' import { isJsonRequest, normalizeError } from '#internal/nitro/utils' export default async function errorhandler (error: H3Error, event) { From b633764e0d3129a3a3d3edaea6da5dd9e40bd18a Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 24 Aug 2023 14:48:55 +0100 Subject: [PATCH 717/912] fix(schema): mark schema as free of side effects (#22793) --- packages/schema/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/schema/package.json b/packages/schema/package.json index d033688982..2dc97aebff 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -5,6 +5,7 @@ "license": "MIT", "type": "module", "types": "./dist/index.d.ts", + "sideEffects": false, "exports": { ".": { "types": "./dist/index.d.ts", From f06ee59d4a6bccd6645b61031a9df09f95b5b42f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 24 Aug 2023 20:33:21 +0100 Subject: [PATCH 718/912] chore(deps): update all non-major dependencies (main) (#22777) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- .github/workflows/autofix-docs.yml | 2 +- .github/workflows/autofix.yml | 2 +- .github/workflows/changelogensets.yml | 2 +- .github/workflows/ci.yml | 14 +- .github/workflows/dependency-review.yml | 2 +- .github/workflows/docs-e2e.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/introspect.yml | 2 +- .github/workflows/nuxt2-edge.yml | 2 +- .github/workflows/release-pr.yml | 2 +- .github/workflows/reproduire.yml | 2 +- .github/workflows/scorecards.yml | 2 +- package.json | 6 +- packages/kit/package.json | 2 +- packages/nuxi/package.json | 2 +- packages/nuxt/package.json | 6 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 4 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 474 ++++++++++++------------ test/bundle.test.ts | 4 +- 22 files changed, 277 insertions(+), 263 deletions(-) diff --git a/.github/workflows/autofix-docs.yml b/.github/workflows/autofix-docs.yml index a205803360..2e16eabe9e 100644 --- a/.github/workflows/autofix-docs.yml +++ b/.github/workflows/autofix-docs.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index dd160355a9..432cde27aa 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: diff --git a/.github/workflows/changelogensets.yml b/.github/workflows/changelogensets.yml index 0d961caefa..3ebb3ee07e 100644 --- a/.github/workflows/changelogensets.yml +++ b/.github/workflows/changelogensets.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: fetch-depth: 0 - run: corepack enable diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 685e6777a4..ee6b278093 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,7 +38,7 @@ jobs: timeout-minutes: 10 steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: @@ -75,7 +75,7 @@ jobs: - build steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: @@ -114,7 +114,7 @@ jobs: module: ['bundler', 'node'] steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: @@ -142,7 +142,7 @@ jobs: timeout-minutes: 10 steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: @@ -178,7 +178,7 @@ jobs: timeout-minutes: 15 steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: @@ -250,7 +250,7 @@ jobs: timeout-minutes: 20 steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: fetch-depth: 0 - run: corepack enable @@ -289,7 +289,7 @@ jobs: timeout-minutes: 20 steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: fetch-depth: 0 - run: corepack enable diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 072a9ae47c..da83c3abfe 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -17,6 +17,6 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Checkout Repository' - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - name: 'Dependency Review' uses: actions/dependency-review-action@f6fff72a3217f580d5afd49a46826795305b63c7 # v3.0.8 diff --git a/.github/workflows/docs-e2e.yml b/.github/workflows/docs-e2e.yml index d8bd4c8d32..ba94c2f8da 100644 --- a/.github/workflows/docs-e2e.yml +++ b/.github/workflows/docs-e2e.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index e60a7c8790..461316066e 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: diff --git a/.github/workflows/introspect.yml b/.github/workflows/introspect.yml index 82d22a5cbb..9d94f7beb1 100644 --- a/.github/workflows/introspect.yml +++ b/.github/workflows/introspect.yml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 # From https://github.com/rhysd/actionlint/blob/main/docs/usage.md#use-actionlint-on-github-actions - name: Check workflow files run: | diff --git a/.github/workflows/nuxt2-edge.yml b/.github/workflows/nuxt2-edge.yml index bcb463d81a..057f0b4ee3 100644 --- a/.github/workflows/nuxt2-edge.yml +++ b/.github/workflows/nuxt2-edge.yml @@ -21,7 +21,7 @@ jobs: permissions: id-token: write steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: ref: '2.x' fetch-depth: 0 # All history diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 7705caeecd..64f47e6a69 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -29,7 +29,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: ref: refs/pull/${{ github.event.issue.number }}/merge fetch-depth: 0 diff --git a/.github/workflows/reproduire.yml b/.github/workflows/reproduire.yml index 9eeb4f7ac3..9586bd970b 100644 --- a/.github/workflows/reproduire.yml +++ b/.github/workflows/reproduire.yml @@ -10,7 +10,7 @@ jobs: reproduire: runs-on: ubuntu-latest steps: - - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 - uses: Hebilicious/reproduire@4b686ae9cbb72dad60f001d278b6e3b2ce40a9ac # v0.0.9-mp with: label: needs reproduction diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index d6f8357a9c..db434826b4 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -31,7 +31,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 with: persist-credentials: false diff --git a/package.json b/package.json index b061da781d..24ca871be5 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@nuxt/webpack-builder": "workspace:*", "@nuxtjs/eslint-config-typescript": "12.0.0", "@types/fs-extra": "11.0.1", - "@types/node": "18.17.8", + "@types/node": "18.17.9", "@types/semver": "7.5.0", "case-police": "0.6.1", "chalk": "5.3.0", @@ -74,8 +74,8 @@ "rimraf": "5.0.1", "semver": "7.5.4", "std-env": "3.4.3", - "typescript": "5.1.6", - "ufo": "1.2.0", + "typescript": "5.2.2", + "ufo": "1.3.0", "vite": "4.4.9", "vitest": "0.33.0", "vitest-environment-nuxt": "0.10.2", diff --git a/packages/kit/package.json b/packages/kit/package.json index c8a5fe64fa..41bcaf5137 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -34,7 +34,7 @@ "pkg-types": "^1.0.3", "scule": "^1.0.0", "semver": "^7.5.4", - "ufo": "^1.2.0", + "ufo": "^1.3.0", "unctx": "^2.3.1", "unimport": "^3.2.0", "untyped": "^1.4.0" diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json index 408b3d502b..230c7839fa 100644 --- a/packages/nuxi/package.json +++ b/packages/nuxi/package.json @@ -48,7 +48,7 @@ "pkg-types": "1.0.3", "scule": "1.0.0", "semver": "7.5.4", - "ufo": "1.2.0", + "ufo": "1.3.0", "unbuild": "latest" }, "optionalDependencies": { diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 7237fe0a6d..ba4dc821c1 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -83,7 +83,7 @@ "mlly": "^1.4.0", "nitropack": "^2.6.0", "nuxi": "workspace:../nuxi", - "nypm": "^0.3.0", + "nypm": "^0.3.1", "ofetch": "^1.3.2", "ohash": "^1.1.3", "pathe": "^1.1.1", @@ -93,7 +93,7 @@ "scule": "^1.0.0", "std-env": "^3.4.3", "strip-literal": "^1.3.0", - "ufo": "^1.2.0", + "ufo": "^1.3.0", "ultrahtml": "^1.3.0", "uncrypto": "^0.1.3", "unctx": "^2.3.1", @@ -108,7 +108,7 @@ "vue-router": "^4.2.4" }, "devDependencies": { - "@parcel/watcher": "2.2.0", + "@parcel/watcher": "2.3.0", "@types/estree": "1.0.1", "@types/fs-extra": "11.0.1", "@types/prompts": "2.4.4", diff --git a/packages/schema/package.json b/packages/schema/package.json index 2dc97aebff..ef7d5d3955 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -57,7 +57,7 @@ "pkg-types": "^1.0.3", "postcss-import-resolver": "^2.0.0", "std-env": "^3.4.3", - "ufo": "^1.2.0", + "ufo": "^1.3.0", "unimport": "^3.2.0", "untyped": "^1.4.0" }, diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index bff1c0d997..58c5778d48 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -30,10 +30,10 @@ "get-port-please": "^3.0.1", "ofetch": "^1.3.2", "pathe": "^1.1.1", - "ufo": "^1.2.0" + "ufo": "^1.3.0" }, "devDependencies": { - "@jest/globals": "29.6.3", + "@jest/globals": "29.6.4", "playwright-core": "1.37.1", "unbuild": "latest", "vitest": "0.33.0" diff --git a/packages/vite/package.json b/packages/vite/package.json index ebbf827bdd..de42a2e9c4 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -55,7 +55,7 @@ "rollup-plugin-visualizer": "^5.9.2", "std-env": "^3.4.3", "strip-literal": "^1.3.0", - "ufo": "^1.2.0", + "ufo": "^1.3.0", "unplugin": "^1.4.0", "vite": "^4.4.9", "vite-node": "^0.33.0", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index c8e6d86f45..538f452a7b 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -49,7 +49,7 @@ "pug-plain-loader": "^1.1.0", "std-env": "^3.4.3", "time-fix-plugin": "^2.0.7", - "ufo": "^1.2.0", + "ufo": "^1.3.0", "unplugin": "^1.4.0", "url-loader": "^4.1.1", "vue-bundle-renderer": "^2.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 642f3aa238..79db541785 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,13 +31,13 @@ importers: version: link:packages/webpack '@nuxtjs/eslint-config-typescript': specifier: 12.0.0 - version: 12.0.0(eslint@8.47.0)(typescript@5.1.6) + version: 12.0.0(eslint@8.47.0)(typescript@5.2.2) '@types/fs-extra': specifier: 11.0.1 version: 11.0.1 '@types/node': - specifier: 18.17.8 - version: 18.17.8 + specifier: 18.17.9 + version: 18.17.9 '@types/semver': specifier: 7.5.0 version: 7.5.0 @@ -123,14 +123,14 @@ importers: specifier: 3.4.3 version: 3.4.3 typescript: - specifier: 5.1.6 - version: 5.1.6 + specifier: 5.2.2 + version: 5.2.2 ufo: - specifier: 1.2.0 - version: 1.2.0 + specifier: 1.3.0 + version: 1.3.0 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.8) + version: 4.4.9(@types/node@18.17.9) vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.11.0) @@ -148,7 +148,7 @@ importers: version: 4.2.4(vue@3.3.4) vue-tsc: specifier: 1.8.8 - version: 1.8.8(typescript@5.1.6) + version: 1.8.8(typescript@5.2.2) .website: devDependencies: @@ -201,8 +201,8 @@ importers: specifier: ^7.5.4 version: 7.5.4 ufo: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.3.0 + version: 1.3.0 unctx: specifier: ^2.3.1 version: 2.3.1 @@ -230,10 +230,10 @@ importers: version: 2.6.0 unbuild: specifier: latest - version: 2.0.0(typescript@5.1.6) + version: 2.0.0(typescript@5.2.2) vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.8) + version: 4.4.9(@types/node@18.17.9) vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.11.0) @@ -338,11 +338,11 @@ importers: specifier: 7.5.4 version: 7.5.4 ufo: - specifier: 1.2.0 - version: 1.2.0 + specifier: 1.3.0 + version: 1.3.0 unbuild: specifier: latest - version: 2.0.0(typescript@5.1.6) + version: 2.0.0(typescript@5.2.2) packages/nuxt: dependencies: @@ -366,7 +366,7 @@ importers: version: link:../vite '@types/node': specifier: ^14.18.0 || >=16.10.0 - version: 18.17.8 + version: 18.17.9 '@unhead/dom': specifier: ^1.3.7 version: 1.3.7 @@ -443,8 +443,8 @@ importers: specifier: workspace:* version: link:../nuxi nypm: - specifier: ^0.3.0 - version: 0.3.0 + specifier: ^0.3.1 + version: 0.3.1 ofetch: specifier: ^1.3.2 version: 1.3.2 @@ -473,8 +473,8 @@ importers: specifier: ^1.3.0 version: 1.3.0 ufo: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.3.0 + version: 1.3.0 ultrahtml: specifier: ^1.3.0 version: 1.3.0 @@ -513,8 +513,8 @@ importers: version: 4.2.4(vue@3.3.4) devDependencies: '@parcel/watcher': - specifier: 2.2.0 - version: 2.2.0 + specifier: 2.3.0 + version: 2.3.0 '@types/estree': specifier: 1.0.1 version: 1.0.1 @@ -529,10 +529,10 @@ importers: version: 4.3.3(vite@4.4.9)(vue@3.3.4) unbuild: specifier: latest - version: 2.0.0(typescript@5.1.6) + version: 2.0.0(typescript@5.2.2) vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.8) + version: 4.4.9(@types/node@18.17.9) vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.11.0) @@ -561,8 +561,8 @@ importers: specifier: ^3.4.3 version: 3.4.3 ufo: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.3.0 + version: 1.3.0 unimport: specifier: ^3.2.0 version: 3.2.0(rollup@3.28.1) @@ -608,13 +608,13 @@ importers: version: 2.6.0 unbuild: specifier: latest - version: 2.0.0(typescript@5.1.6) + version: 2.0.0(typescript@5.2.2) unctx: specifier: 2.3.1 version: 2.3.1 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.8) + version: 4.4.9(@types/node@18.17.9) vue: specifier: 3.3.4 version: 3.3.4 @@ -661,21 +661,21 @@ importers: specifier: ^1.1.1 version: 1.1.1 ufo: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.3.0 + version: 1.3.0 vue: specifier: ^3.3.4 version: 3.3.4 devDependencies: '@jest/globals': - specifier: 29.6.3 - version: 29.6.3 + specifier: 29.6.4 + version: 29.6.4 playwright-core: specifier: 1.37.1 version: 1.37.1 unbuild: specifier: latest - version: 2.0.0(typescript@5.1.6) + version: 2.0.0(typescript@5.2.2) vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.11.0) @@ -770,20 +770,20 @@ importers: specifier: ^1.3.0 version: 1.3.0 ufo: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.3.0 + version: 1.3.0 unplugin: specifier: ^1.4.0 version: 1.4.0 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.8) + version: 4.4.9(@types/node@18.17.9) vite-node: specifier: ^0.33.0 - version: 0.33.0(@types/node@18.17.8) + version: 0.33.0(@types/node@18.17.9) vite-plugin-checker: specifier: ^0.6.2 - version: 0.6.2(eslint@8.47.0)(typescript@5.1.6)(vite@4.4.9)(vue-tsc@1.8.8) + version: 0.6.2(eslint@8.47.0)(typescript@5.2.2)(vite@4.4.9)(vue-tsc@1.8.8) vue-bundle-renderer: specifier: ^2.0.0 version: 2.0.0 @@ -802,7 +802,7 @@ importers: version: 11.0.1 unbuild: specifier: latest - version: 2.0.0(typescript@5.1.6) + version: 2.0.0(typescript@5.2.2) vue: specifier: 3.3.4 version: 3.3.4 @@ -844,7 +844,7 @@ importers: version: 6.2.0(webpack@5.88.2) fork-ts-checker-webpack-plugin: specifier: ^8.0.0 - version: 8.0.0(typescript@5.1.6)(webpack@5.88.2) + version: 8.0.0(typescript@5.2.2)(webpack@5.88.2) fs-extra: specifier: ^11.1.1 version: 11.1.1 @@ -900,8 +900,8 @@ importers: specifier: ^2.0.7 version: 2.0.7(webpack@5.88.2) ufo: - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.3.0 + version: 1.3.0 unplugin: specifier: ^1.4.0 version: 1.4.0 @@ -959,7 +959,7 @@ importers: version: 0.1.1 unbuild: specifier: latest - version: 2.0.0(typescript@5.1.6) + version: 2.0.0(typescript@5.2.2) vue: specifier: 3.3.4 version: 3.3.4 @@ -984,7 +984,7 @@ importers: devDependencies: ufo: specifier: latest - version: 1.2.0 + version: 1.3.0 unplugin: specifier: latest version: 1.4.0 @@ -2120,51 +2120,51 @@ packages: engines: {node: '>=8'} dev: true - /@jest/environment@29.6.3: - resolution: {integrity: sha512-u/u3cCztYCfgBiGHsamqP5x+XvucftOGPbf5RJQxfpeC1y4AL8pCjKvPDA3oCmdhZYPgk5AE0VOD/flweR69WA==} + /@jest/environment@29.6.4: + resolution: {integrity: sha512-sQ0SULEjA1XUTHmkBRl7A1dyITM9yb1yb3ZNKPX3KlTd6IG7mWUe3e2yfExtC2Zz1Q+mMckOLHmL/qLiuQJrBQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.6.3 + '@jest/fake-timers': 29.6.4 '@jest/types': 29.6.3 - '@types/node': 18.17.8 + '@types/node': 18.17.9 jest-mock: 29.6.3 dev: true - /@jest/expect-utils@29.6.3: - resolution: {integrity: sha512-nvOEW4YoqRKD9HBJ9OJ6przvIvP9qilp5nAn1462P5ZlL/MM9SgPEZFyjTGPfs7QkocdUsJa6KjHhyRn4ueItA==} + /@jest/expect-utils@29.6.4: + resolution: {integrity: sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 dev: true - /@jest/expect@29.6.3: - resolution: {integrity: sha512-Ic08XbI2jlg6rECy+CGwk/8NDa6VE7UmIG6++9OTPAMnQmNGY28hu69Nf629CWv6T7YMODLbONxDFKdmQeI9FA==} + /@jest/expect@29.6.4: + resolution: {integrity: sha512-Warhsa7d23+3X5bLbrbYvaehcgX5TLYhI03JKoedTiI8uJU4IhqYBWF7OSSgUyz4IgLpUYPkK0AehA5/fRclAA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.6.3 - jest-snapshot: 29.6.3 + expect: 29.6.4 + jest-snapshot: 29.6.4 transitivePeerDependencies: - supports-color dev: true - /@jest/fake-timers@29.6.3: - resolution: {integrity: sha512-pa1wmqvbj6eX0nMvOM2VDAWvJOI5A/Mk3l8O7n7EsAh71sMZblaKO9iT4GjIj0LwwK3CP/Jp1ypEV0x3m89RvA==} + /@jest/fake-timers@29.6.4: + resolution: {integrity: sha512-6UkCwzoBK60edXIIWb0/KWkuj7R7Qq91vVInOe3De6DSpaEiqjKcJw4F7XUet24Wupahj9J6PlR09JqJ5ySDHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 18.17.8 + '@types/node': 18.17.9 jest-message-util: 29.6.3 jest-mock: 29.6.3 jest-util: 29.6.3 dev: true - /@jest/globals@29.6.3: - resolution: {integrity: sha512-RB+uI+CZMHntzlnOPlll5x/jgRff3LEPl/td/jzMXiIgR0iIhKq9qm1HLU+EC52NuoVy/1swit/sDGjVn4bc6A==} + /@jest/globals@29.6.4: + resolution: {integrity: sha512-wVIn5bdtjlChhXAzVXavcY/3PEjf4VqM174BM3eGL5kMxLiZD5CLnbmkEyA1Dwh9q8XjP6E8RwjBsY/iCWrWsA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.3 - '@jest/expect': 29.6.3 + '@jest/environment': 29.6.4 + '@jest/expect': 29.6.4 '@jest/types': 29.6.3 jest-mock: 29.6.3 transitivePeerDependencies: @@ -2177,8 +2177,8 @@ packages: dependencies: '@sinclair/typebox': 0.27.8 - /@jest/transform@29.6.3: - resolution: {integrity: sha512-dPIc3DsvMZ/S8ut4L2ViCj265mKO0owB0wfzBv2oGzL9pQ+iRvJewHqLBmsGb7XFb5UotWIEtvY5A/lnylaIoQ==} + /@jest/transform@29.6.4: + resolution: {integrity: sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.22.10 @@ -2189,7 +2189,7 @@ packages: convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 29.6.3 + jest-haste-map: 29.6.4 jest-regex-util: 29.6.3 jest-util: 29.6.3 micromatch: 4.0.5 @@ -2207,7 +2207,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.17.8 + '@types/node': 18.17.9 '@types/yargs': 17.0.24 chalk: 4.1.2 @@ -2375,7 +2375,7 @@ packages: nuxt-config-schema: 0.4.6 nuxt-icon: 0.3.3(vue@3.3.4) pinceau: 0.18.9(postcss@8.4.28) - ufo: 1.2.0 + ufo: 1.3.0 transitivePeerDependencies: - postcss - sass @@ -2414,7 +2414,7 @@ packages: shiki-es: 0.14.0 slugify: 1.6.6 socket.io-client: 4.7.2 - ufo: 1.2.0 + ufo: 1.3.0 unified: 10.1.2 unist-builder: 4.0.0 unist-util-position: 5.0.0 @@ -2493,7 +2493,7 @@ packages: nuxt-component-meta: 0.5.3 nuxt-config-schema: 0.4.6 socket.io-client: 4.7.2 - ufo: 1.2.0 + ufo: 1.3.0 transitivePeerDependencies: - bufferutil - supports-color @@ -2508,14 +2508,14 @@ packages: pathe: 1.1.1 dev: true - /@nuxtjs/eslint-config-typescript@12.0.0(eslint@8.47.0)(typescript@5.1.6): + /@nuxtjs/eslint-config-typescript@12.0.0(eslint@8.47.0)(typescript@5.2.2): resolution: {integrity: sha512-HJR0ho5MYuOCFjkL+eMX/VXbUwy36J12DUMVy+dj3Qz1GYHwX92Saxap3urFzr8oPkzzFiuOknDivfCeRBWakg==} peerDependencies: eslint: ^8.23.0 dependencies: '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6) - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.2.2) eslint: 8.47.0 eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.47.0) eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) @@ -2552,64 +2552,72 @@ packages: resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} dev: true - /@parcel/watcher-android-arm64@2.2.0: - resolution: {integrity: sha512-nU2wh00CTQT9rr1TIKTjdQ9lAGYpmz6XuKw0nAwAN+S2A5YiD55BK1u+E5WMCT8YOIDe/n6gaj4o/Bi9294SSQ==} + /@parcel/watcher-android-arm64@2.3.0: + resolution: {integrity: sha512-f4o9eA3dgk0XRT3XhB0UWpWpLnKgrh1IwNJKJ7UJek7eTYccQ8LR7XUWFKqw6aEq5KUNlCcGvSzKqSX/vtWVVA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@parcel/watcher-darwin-arm64@2.2.0: - resolution: {integrity: sha512-cJl0UZDcodciy3TDMomoK/Huxpjlkkim3SyMgWzjovHGOZKNce9guLz2dzuFwfObBFCjfznbFMIvAZ5syXotYw==} + /@parcel/watcher-darwin-arm64@2.3.0: + resolution: {integrity: sha512-mKY+oijI4ahBMc/GygVGvEdOq0L4DxhYgwQqYAz/7yPzuGi79oXrZG52WdpGA1wLBPrYb0T8uBaGFo7I6rvSKw==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@parcel/watcher-darwin-x64@2.2.0: - resolution: {integrity: sha512-QI77zxaGrCV1StKcoRYfsUfmUmvPMPfQrubkBBy5XujV2fwaLgZivQOTQMBgp5K2+E19u1ufpspKXAPqSzpbyg==} + /@parcel/watcher-darwin-x64@2.3.0: + resolution: {integrity: sha512-20oBj8LcEOnLE3mgpy6zuOq8AplPu9NcSSSfyVKgfOhNAc4eF4ob3ldj0xWjGGbOF7Dcy1Tvm6ytvgdjlfUeow==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@parcel/watcher-linux-arm-glibc@2.2.0: - resolution: {integrity: sha512-I2GPBcAXazPzabCmfsa3HRRW+MGlqxYd8g8RIueJU+a4o5nyNZDz0CR1cu0INT0QSQXEZV7w6UE8Hz9CF8u3Pg==} + /@parcel/watcher-freebsd-x64@2.3.0: + resolution: {integrity: sha512-7LftKlaHunueAEiojhCn+Ef2CTXWsLgTl4hq0pkhkTBFI3ssj2bJXmH2L67mKpiAD5dz66JYk4zS66qzdnIOgw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + /@parcel/watcher-linux-arm-glibc@2.3.0: + resolution: {integrity: sha512-1apPw5cD2xBv1XIHPUlq0cO6iAaEUQ3BcY0ysSyD9Kuyw4MoWm1DV+W9mneWI+1g6OeP6dhikiFE6BlU+AToTQ==} engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@parcel/watcher-linux-arm64-glibc@2.2.0: - resolution: {integrity: sha512-St5mlfp+2lS9AmgixUqfwJa/DwVmTCJxC1HcOubUTz6YFOKIlkHCeUa1Bxi4E/tR/HSez8+heXHL8HQkJ4Bd8g==} + /@parcel/watcher-linux-arm64-glibc@2.3.0: + resolution: {integrity: sha512-mQ0gBSQEiq1k/MMkgcSB0Ic47UORZBmWoAWlMrTW6nbAGoLZP+h7AtUM7H3oDu34TBFFvjy4JCGP43JlylkTQA==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@parcel/watcher-linux-arm64-musl@2.2.0: - resolution: {integrity: sha512-jS+qfhhoOBVWwMLP65MaG8xdInMK30pPW8wqTCg2AAuVJh5xepMbzkhHJ4zURqHiyY3EiIRuYu4ONJKCxt8iqA==} + /@parcel/watcher-linux-arm64-musl@2.3.0: + resolution: {integrity: sha512-LXZAExpepJew0Gp8ZkJ+xDZaTQjLHv48h0p0Vw2VMFQ8A+RKrAvpFuPVCVwKJCr5SE+zvaG+Etg56qXvTDIedw==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@parcel/watcher-linux-x64-glibc@2.2.0: - resolution: {integrity: sha512-xJvJ7R2wJdi47WZBFS691RDOWvP1j/IAs3EXaWVhDI8FFITbWrWaln7KoNcR0Y3T+ZwimFY/cfb0PNht1q895g==} + /@parcel/watcher-linux-x64-glibc@2.3.0: + resolution: {integrity: sha512-P7Wo91lKSeSgMTtG7CnBS6WrA5otr1K7shhSjKHNePVmfBHDoAOHYRXgUmhiNfbcGk0uMCHVcdbfxtuiZCHVow==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@parcel/watcher-linux-x64-musl@2.2.0: - resolution: {integrity: sha512-D+NMpgr23a+RI5mu8ZPKWy7AqjBOkURFDgP5iIXXEf/K3hm0jJ3ogzi0Ed2237B/CdYREimCgXyeiAlE/FtwyA==} + /@parcel/watcher-linux-x64-musl@2.3.0: + resolution: {integrity: sha512-+kiRE1JIq8QdxzwoYY+wzBs9YbJ34guBweTK8nlzLKimn5EQ2b2FSC+tAOpq302BuIMjyuUGvBiUhEcLIGMQ5g==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] @@ -2625,24 +2633,32 @@ packages: bundledDependencies: - napi-wasm - /@parcel/watcher-win32-arm64@2.2.0: - resolution: {integrity: sha512-z225cPn3aygJsyVUOWwfyW+fY0Tvk7N3XCOl66qUPFxpbuXeZuiuuJemmtm8vxyqa3Ur7peU/qJxrpC64aeI7Q==} + /@parcel/watcher-win32-arm64@2.3.0: + resolution: {integrity: sha512-35gXCnaz1AqIXpG42evcoP2+sNL62gZTMZne3IackM+6QlfMcJLy3DrjuL6Iks7Czpd3j4xRBzez3ADCj1l7Aw==} engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@parcel/watcher-win32-x64@2.2.0: - resolution: {integrity: sha512-JqGW0RJ61BkKx+yYzIURt9s53P7xMVbv0uxYPzAXLBINGaFmkIKSuUPyBVfy8TMbvp93lvF4SPBNDzVRJfvgOw==} + /@parcel/watcher-win32-ia32@2.3.0: + resolution: {integrity: sha512-FJS/IBQHhRpZ6PiCjFt1UAcPr0YmCLHRbTc00IBTrelEjlmmgIVLeOx4MSXzx2HFEy5Jo5YdhGpxCuqCyDJ5ow==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + /@parcel/watcher-win32-x64@2.3.0: + resolution: {integrity: sha512-dLx+0XRdMnVI62kU3wbXvbIRhLck4aE28bIGKbRGS7BJNt54IIj9+c/Dkqb+7DJEbHUZAX1bwaoM8PqVlHJmCA==} engines: {node: '>= 10.0.0'} cpu: [x64] os: [win32] requiresBuild: true optional: true - /@parcel/watcher@2.2.0: - resolution: {integrity: sha512-71S4TF+IMyAn24PK4KSkdKtqJDR3zRzb0HE3yXpacItqTM7XfF2f5q9NEGLEVl0dAaBAGfNwDCjH120y25F6Tg==} + /@parcel/watcher@2.3.0: + resolution: {integrity: sha512-pW7QaFiL11O0BphO+bq3MgqeX/INAk9jgBldVDYjlQPO4VddoZnF22TcF9onMhnLVHuNqBJeRf+Fj7eezi/+rQ==} engines: {node: '>= 10.0.0'} dependencies: detect-libc: 1.0.3 @@ -2650,16 +2666,18 @@ packages: micromatch: 4.0.5 node-addon-api: 7.0.0 optionalDependencies: - '@parcel/watcher-android-arm64': 2.2.0 - '@parcel/watcher-darwin-arm64': 2.2.0 - '@parcel/watcher-darwin-x64': 2.2.0 - '@parcel/watcher-linux-arm-glibc': 2.2.0 - '@parcel/watcher-linux-arm64-glibc': 2.2.0 - '@parcel/watcher-linux-arm64-musl': 2.2.0 - '@parcel/watcher-linux-x64-glibc': 2.2.0 - '@parcel/watcher-linux-x64-musl': 2.2.0 - '@parcel/watcher-win32-arm64': 2.2.0 - '@parcel/watcher-win32-x64': 2.2.0 + '@parcel/watcher-android-arm64': 2.3.0 + '@parcel/watcher-darwin-arm64': 2.3.0 + '@parcel/watcher-darwin-x64': 2.3.0 + '@parcel/watcher-freebsd-x64': 2.3.0 + '@parcel/watcher-linux-arm-glibc': 2.3.0 + '@parcel/watcher-linux-arm64-glibc': 2.3.0 + '@parcel/watcher-linux-arm64-musl': 2.3.0 + '@parcel/watcher-linux-x64-glibc': 2.3.0 + '@parcel/watcher-linux-x64-musl': 2.3.0 + '@parcel/watcher-win32-arm64': 2.3.0 + '@parcel/watcher-win32-ia32': 2.3.0 + '@parcel/watcher-win32-x64': 2.3.0 /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} @@ -2873,7 +2891,7 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 dev: true /@types/debug@4.1.8: @@ -2911,13 +2929,13 @@ packages: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 18.17.8 + '@types/node': 18.17.9 dev: true /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 dev: true /@types/hash-sum@1.0.0: @@ -2933,7 +2951,7 @@ packages: /@types/http-proxy@1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} @@ -2958,7 +2976,7 @@ packages: /@types/jsonfile@6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 dev: true /@types/lodash-es@4.17.8: @@ -2988,11 +3006,11 @@ packages: /@types/node-sass@4.11.3: resolution: {integrity: sha512-wXPCn3t9uu5rR4zXNSLasZHQMuRzUKBsdi4MsgT8uq4Lp1gQQo+T2G23tGj4SSgDHeNBle6vGseZtM2XV/X9bw==} dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 dev: true - /@types/node@18.17.8: - resolution: {integrity: sha512-Av/7MqX/iNKwT9Tr60V85NqMnsmh8ilfJoBlIVibkXfitk9Q22D9Y5mSpm+FvG5DET7EbVfB40bOiLzKgYFgPw==} + /@types/node@18.17.9: + resolution: {integrity: sha512-fxaKquqYcPOGwE7tC1anJaPJ0GHyOVzfA2oUoXECjBjrtsIz4YJvtNYsq8LUcjEUehEF+jGpx8Z+lFrtT6z0tg==} /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -3013,7 +3031,7 @@ packages: /@types/prompts@2.4.4: resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 kleur: 3.0.3 dev: true @@ -3027,7 +3045,7 @@ packages: /@types/sass-loader@8.0.5: resolution: {integrity: sha512-3b3lQ+UwWanaPBzOcP1YeNTR4q0Klt2UEezhdIjDXkTnQ93F+fnv+z1tMsQBAopY0b+c5ATN5pHQ+vfzxaRnFg==} dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 '@types/node-sass': 4.11.3 '@types/webpack': 4.41.33 sass: 1.64.2 @@ -3074,7 +3092,7 @@ packages: /@types/webpack-bundle-analyzer@4.6.0: resolution: {integrity: sha512-XeQmQCCXdZdap+A/60UKmxW5Mz31Vp9uieGlHB3T4z/o2OLVLtTI3bvTuS6A2OWd/rbAAQiGGWIEFQACu16szA==} dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 tapable: 2.2.1 webpack: 5.88.2 transitivePeerDependencies: @@ -3100,7 +3118,7 @@ packages: /@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 '@types/source-list-map': 0.1.2 source-map: 0.7.4 dev: true @@ -3114,7 +3132,7 @@ packages: /@types/webpack@4.41.33: resolution: {integrity: sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==} dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 '@types/tapable': 1.0.8 '@types/uglify-js': 3.17.1 '@types/webpack-sources': 3.2.0 @@ -3130,7 +3148,7 @@ packages: dependencies: '@types/yargs-parser': 21.0.0 - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.1.6): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.2.2): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3142,23 +3160,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.47.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.2.2) debug: 4.3.4 eslint: 8.47.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.1.6) - typescript: 5.1.6 + tsutils: 3.21.0(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.1.6): + /@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.2.2): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3170,10 +3188,10 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) debug: 4.3.4 eslint: 8.47.0 - typescript: 5.1.6 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -3186,7 +3204,7 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.47.0)(typescript@5.1.6): + /@typescript-eslint/type-utils@5.62.0(eslint@8.47.0)(typescript@5.2.2): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3196,12 +3214,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) - '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.2.2) debug: 4.3.4 eslint: 8.47.0 - tsutils: 3.21.0(typescript@5.1.6) - typescript: 5.1.6 + tsutils: 3.21.0(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -3211,7 +3229,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3226,13 +3244,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.1.6) - typescript: 5.1.6 + tsutils: 3.21.0(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.47.0)(typescript@5.1.6): + /@typescript-eslint/utils@5.62.0(eslint@8.47.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3243,7 +3261,7 @@ packages: '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) eslint: 8.47.0 eslint-scope: 5.1.1 semver: 7.5.4 @@ -3332,7 +3350,7 @@ packages: '@babel/core': 7.22.10 '@babel/plugin-transform-typescript': 7.22.10(@babel/core@7.22.10) '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.10) - vite: 4.4.9(@types/node@18.17.8) + vite: 4.4.9(@types/node@18.17.9) vue: 3.3.4 transitivePeerDependencies: - supports-color @@ -3344,7 +3362,7 @@ packages: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.4.9(@types/node@18.17.8) + vite: 4.4.9(@types/node@18.17.9) vue: 3.3.4 /@vitest/expect@0.33.0: @@ -3519,7 +3537,7 @@ packages: /@vue/devtools-api@6.5.0: resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} - /@vue/language-core@1.8.8(typescript@5.1.6): + /@vue/language-core@1.8.8(typescript@5.2.2): resolution: {integrity: sha512-i4KMTuPazf48yMdYoebTkgSOJdFraE4pQf0B+FTOFkbB+6hAfjrSou/UmYWRsWyZV6r4Rc6DDZdI39CJwL0rWw==} peerDependencies: typescript: '*' @@ -3534,7 +3552,7 @@ packages: '@vue/shared': 3.3.4 minimatch: 9.0.3 muggle-string: 0.3.1 - typescript: 5.1.6 + typescript: 5.2.2 vue-template-compiler: 2.7.14 /@vue/reactivity-transform@3.3.4: @@ -3590,11 +3608,11 @@ packages: vue-component-type-helpers: 1.8.4 dev: true - /@vue/typescript@1.8.8(typescript@5.1.6): + /@vue/typescript@1.8.8(typescript@5.2.2): resolution: {integrity: sha512-jUnmMB6egu5wl342eaUH236v8tdcEPXXkPgj+eI/F6JwW/lb+yAU6U07ZbQ3MVabZRlupIlPESB7ajgAGixhow==} dependencies: '@volar/typescript': 1.10.0 - '@vue/language-core': 1.8.8(typescript@5.1.6) + '@vue/language-core': 1.8.8(typescript@5.2.2) transitivePeerDependencies: - typescript @@ -4797,7 +4815,7 @@ packages: dependencies: '@jridgewell/trace-mapping': 0.3.18 cssnano: 6.0.1(postcss@8.4.28) - jest-worker: 29.6.3 + jest-worker: 29.6.4 postcss: 8.4.28 schema-utils: 4.2.0 serialize-javascript: 6.0.1 @@ -5511,7 +5529,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.2.2) debug: 3.2.7 eslint: 8.47.0 eslint-import-resolver-node: 0.3.8 @@ -5552,7 +5570,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.2.2) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 @@ -5868,15 +5886,14 @@ packages: onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 - dev: true - /expect@29.6.3: - resolution: {integrity: sha512-x1vY4LlEMWUYVZQrFi4ZANXFwqYbJ/JNQspLVvzhW2BNY28aNcXMQH6imBbt+RBf5sVRTodYHXtSP/TLEU0Dxw==} + /expect@29.6.4: + resolution: {integrity: sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/expect-utils': 29.6.3 + '@jest/expect-utils': 29.6.4 jest-get-type: 29.6.3 - jest-matcher-utils: 29.6.3 + jest-matcher-utils: 29.6.4 jest-message-util: 29.6.3 jest-util: 29.6.3 dev: true @@ -5891,7 +5908,7 @@ packages: enhanced-resolve: 5.15.0 mlly: 1.4.0 pathe: 1.1.1 - ufo: 1.2.0 + ufo: 1.3.0 dev: false /fast-deep-equal@3.1.3: @@ -6014,7 +6031,7 @@ packages: signal-exit: 4.1.0 dev: true - /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.1.6)(webpack@5.88.2): + /fork-ts-checker-webpack-plugin@8.0.0(typescript@5.2.2)(webpack@5.88.2): resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: @@ -6033,7 +6050,7 @@ packages: schema-utils: 3.3.0 semver: 7.5.4 tapable: 2.2.1 - typescript: 5.1.6 + typescript: 5.2.2 webpack: 5.88.2 dev: false @@ -6166,7 +6183,6 @@ packages: /get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} - dev: true /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} @@ -6344,7 +6360,7 @@ packages: destr: 2.0.1 iron-webcrypto: 0.8.0 radix3: 1.1.0 - ufo: 1.2.0 + ufo: 1.3.0 uncrypto: 0.1.3 unenv: 1.7.3 @@ -6557,7 +6573,6 @@ packages: /human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} - dev: true /hyperdyperid@1.2.0: resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} @@ -6937,8 +6952,8 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jest-diff@29.6.3: - resolution: {integrity: sha512-3sw+AdWnwH9sSNohMRKA7JiYUJSRr/WS6+sEFfBuhxU5V5GlEVKfvUn8JuMHE0wqKowemR1C2aHy8VtXbaV8dQ==} + /jest-diff@29.6.4: + resolution: {integrity: sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 @@ -6952,31 +6967,31 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map@29.6.3: - resolution: {integrity: sha512-GecR5YavfjkhOytEFHAeI6aWWG3f/cOKNB1YJvj/B76xAmeVjy4zJUYobGF030cRmKaO1FBw3V8CZZ6KVh9ZSw==} + /jest-haste-map@29.6.4: + resolution: {integrity: sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.6 - '@types/node': 18.17.8 + '@types/node': 18.17.9 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 jest-regex-util: 29.6.3 jest-util: 29.6.3 - jest-worker: 29.6.3 + jest-worker: 29.6.4 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 dev: true - /jest-matcher-utils@29.6.3: - resolution: {integrity: sha512-6ZrMYINZdwduSt5Xu18/n49O1IgXdjsfG7NEZaQws9k69eTKWKcVbJBw/MZsjOZe2sSyJFmuzh8042XWwl54Zg==} + /jest-matcher-utils@29.6.4: + resolution: {integrity: sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 29.6.3 + jest-diff: 29.6.4 jest-get-type: 29.6.3 pretty-format: 29.6.3 dev: true @@ -7001,7 +7016,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.17.8 + '@types/node': 18.17.9 jest-util: 29.6.3 dev: true @@ -7010,8 +7025,8 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-snapshot@29.6.3: - resolution: {integrity: sha512-66Iu7H1ojiveQMGFnKecHIZPPPBjZwfQEnF6wxqpxGf57sV3YSUtAb5/sTKM5TPa3OndyxZp1wxHFbmgVhc53w==} + /jest-snapshot@29.6.4: + resolution: {integrity: sha512-VC1N8ED7+4uboUKGIDsbvNAZb6LakgIPgAF4RSpF13dN6YaMokfRqO+BaqK4zIh6X3JffgwbzuGqDEjHm/MrvA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.22.10 @@ -7019,16 +7034,16 @@ packages: '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.22.10) '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.22.10) '@babel/types': 7.22.10 - '@jest/expect-utils': 29.6.3 - '@jest/transform': 29.6.3 + '@jest/expect-utils': 29.6.4 + '@jest/transform': 29.6.4 '@jest/types': 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.22.10) chalk: 4.1.2 - expect: 29.6.3 + expect: 29.6.4 graceful-fs: 4.2.11 - jest-diff: 29.6.3 + jest-diff: 29.6.4 jest-get-type: 29.6.3 - jest-matcher-utils: 29.6.3 + jest-matcher-utils: 29.6.4 jest-message-util: 29.6.3 jest-util: 29.6.3 natural-compare: 1.4.0 @@ -7043,7 +7058,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.17.8 + '@types/node': 18.17.9 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -7053,15 +7068,15 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 merge-stream: 2.0.0 supports-color: 8.1.1 - /jest-worker@29.6.3: - resolution: {integrity: sha512-wacANXecZ/GbQakpf2CClrqrlwsYYDSXFd4fIGdL+dXpM2GWoJ+6bhQ7vR3TKi3+gkSfBkjy1/khH/WrYS4Q6g==} + /jest-worker@29.6.4: + resolution: {integrity: sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 jest-util: 29.6.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -7216,7 +7231,7 @@ packages: resolution: {integrity: sha512-gEOMJKTak+WLjPITBVbv2kR0WKVUSnl5XPwvoFYheyaQPzh/jdA+pRZeUujJkjabNMDsBxwuaYH7HYLpzzGEJA==} hasBin: true dependencies: - '@parcel/watcher': 2.2.0 + '@parcel/watcher': 2.3.0 '@parcel/watcher-wasm': 2.3.0-alpha.3 citty: 0.1.2 clipboardy: 3.0.0 @@ -7229,7 +7244,7 @@ packages: mlly: 1.4.0 node-forge: 1.3.1 pathe: 1.1.1 - ufo: 1.2.0 + ufo: 1.3.0 untun: 0.1.1 uqr: 0.1.2 @@ -7981,7 +7996,7 @@ packages: engines: {node: '>=10'} hasBin: true - /mkdist@1.3.0(typescript@5.1.6): + /mkdist@1.3.0(typescript@5.2.2): resolution: {integrity: sha512-ZQrUvcL7LkRdzMREpDyg9AT18N9Tl5jc2qeKAUeEw0KGsgykbHbuRvysGAzTuGtwuSg0WQyNit5jh/k+Er3JEg==} hasBin: true peerDependencies: @@ -8002,7 +8017,7 @@ packages: mlly: 1.4.0 mri: 1.2.0 pathe: 1.1.1 - typescript: 5.1.6 + typescript: 5.2.2 dev: true /mlly@1.4.0: @@ -8011,7 +8026,7 @@ packages: acorn: 8.10.0 pathe: 1.1.1 pkg-types: 1.0.3 - ufo: 1.2.0 + ufo: 1.3.0 /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} @@ -8119,7 +8134,7 @@ packages: serve-placeholder: 2.0.1 serve-static: 1.15.0 std-env: 3.4.3 - ufo: 1.2.0 + ufo: 1.3.0 uncrypto: 0.1.3 unctx: 2.3.1 unenv: 1.7.3 @@ -8264,8 +8279,8 @@ packages: dependencies: '@nuxt/kit': link:packages/kit scule: 1.0.0 - typescript: 5.1.6 - vue-component-meta: 1.8.8(typescript@5.1.6) + typescript: 5.2.2 + vue-component-meta: 1.8.8(typescript@5.2.2) dev: true /nuxt-config-schema@0.4.6: @@ -8307,7 +8322,7 @@ packages: get-port-please: 3.0.1 perfect-debounce: 1.0.0 std-env: 3.4.3 - vite: 4.4.9(@types/node@18.17.8) + vite: 4.4.9(@types/node@18.17.9) vitest: 0.33.0(happy-dom@10.11.0) vitest-environment-nuxt: 0.10.2(happy-dom@10.11.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) transitivePeerDependencies: @@ -8318,12 +8333,12 @@ packages: - vue-router dev: true - /nypm@0.3.0: - resolution: {integrity: sha512-OTyAXouN2VMCEHWnM5V+QWb+TwhIZjnB0X6yCH5sD/LgD74xbsH67YnTMEG97LMhDp8MPoWLPwskM71+wDdTzg==} + /nypm@0.3.1: + resolution: {integrity: sha512-WbyW4kp5TEIchdfdAUW4PdFlxl508nPAJsZml0ONk+A29vNHSW+3HEq3OmLvbDWYZrSVZ+Ios++7D/ENnv1YlA==} engines: {node: ^14.16.0 || >=16.10.0} dependencies: - execa: 7.2.0 - ufo: 1.2.0 + execa: 8.0.1 + ufo: 1.3.0 dev: false /object-assign@4.1.1: @@ -8389,7 +8404,7 @@ packages: dependencies: destr: 2.0.1 node-fetch-native: 1.4.0 - ufo: 1.2.0 + ufo: 1.3.0 /ohash@1.1.3: resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} @@ -9574,7 +9589,7 @@ packages: glob: 10.3.3 dev: true - /rollup-plugin-dts@5.3.1(rollup@3.28.1)(typescript@5.1.6): + /rollup-plugin-dts@5.3.1(rollup@3.28.1)(typescript@5.2.2): resolution: {integrity: sha512-gusMi+Z4gY/JaEQeXnB0RUdU82h1kF0WYzCWgVmV4p3hWXqelaKuCvcJawfeg+EKn2T1Ie+YWF2OiN1/L8bTVg==} engines: {node: '>=v14.21.3'} peerDependencies: @@ -9583,12 +9598,12 @@ packages: dependencies: magic-string: 0.30.3 rollup: 3.28.1 - typescript: 5.1.6 + typescript: 5.2.2 optionalDependencies: '@babel/code-frame': 7.22.10 dev: true - /rollup-plugin-dts@6.0.0(rollup@3.28.1)(typescript@5.1.6): + /rollup-plugin-dts@6.0.0(rollup@3.28.1)(typescript@5.2.2): resolution: {integrity: sha512-A996xSZDAqnx/KfFttzC8mDEuyMjsRpiLCrlGc8effhK8KhE3AG0g1woQiITgFc5HSE8HWU7ccR9CiQ3vXgUlQ==} engines: {node: '>=v18.17.1'} peerDependencies: @@ -9597,7 +9612,7 @@ packages: dependencies: magic-string: 0.30.3 rollup: 3.28.1 - typescript: 5.1.6 + typescript: 5.2.2 optionalDependencies: '@babel/code-frame': 7.22.10 dev: true @@ -9827,7 +9842,6 @@ packages: /signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - dev: true /sirv@1.0.19: resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} @@ -10340,14 +10354,14 @@ packages: /tslib@2.6.1: resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} - /tsutils@3.21.0(typescript@5.1.6): + /tsutils@3.21.0(typescript@5.2.2): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.1.6 + typescript: 5.2.2 dev: true /tunnel@0.0.6: @@ -10431,8 +10445,8 @@ packages: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} dev: true - /typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true @@ -10440,8 +10454,8 @@ packages: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} dev: true - /ufo@1.2.0: - resolution: {integrity: sha512-RsPyTbqORDNDxqAdQPQBpgqhWle1VcTSou/FraClYlHf6TZnQcGslpLcAphNR+sQW4q5lLWLbOsRlh9j24baQg==} + /ufo@1.3.0: + resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} /ultrahtml@1.3.0: resolution: {integrity: sha512-xmXvE8tC8t4PVqy0/g1fe7H9USY/Brr425q4dD/0QbQMQit7siCtb06+SCqE4GfU24nwsZz8Th1g7L7mm1lL5g==} @@ -10474,23 +10488,23 @@ packages: hookable: 5.5.3 jiti: 1.19.3 magic-string: 0.30.3 - mkdist: 1.3.0(typescript@5.1.6) + mkdist: 1.3.0(typescript@5.2.2) mlly: 1.4.0 mri: 1.2.0 pathe: 1.1.1 pkg-types: 1.0.3 pretty-bytes: 6.1.1 rollup: 3.28.1 - rollup-plugin-dts: 5.3.1(rollup@3.28.1)(typescript@5.1.6) + rollup-plugin-dts: 5.3.1(rollup@3.28.1)(typescript@5.2.2) scule: 1.0.0 - typescript: 5.1.6 + typescript: 5.2.2 untyped: 1.4.0 transitivePeerDependencies: - sass - supports-color dev: true - /unbuild@2.0.0(typescript@5.1.6): + /unbuild@2.0.0(typescript@5.2.2): resolution: {integrity: sha512-JWCUYx3Oxdzvw2J9kTAp+DKE8df/BnH/JTSj6JyA4SH40ECdFu7FoJJcrm8G92B7TjofQ6GZGjJs50TRxoH6Wg==} hasBin: true peerDependencies: @@ -10514,15 +10528,15 @@ packages: hookable: 5.5.3 jiti: 1.19.3 magic-string: 0.30.3 - mkdist: 1.3.0(typescript@5.1.6) + mkdist: 1.3.0(typescript@5.2.2) mlly: 1.4.0 pathe: 1.1.1 pkg-types: 1.0.3 pretty-bytes: 6.1.1 rollup: 3.28.1 - rollup-plugin-dts: 6.0.0(rollup@3.28.1)(typescript@5.1.6) + rollup-plugin-dts: 6.0.0(rollup@3.28.1)(typescript@5.2.2) scule: 1.0.0 - typescript: 5.1.6 + typescript: 5.2.2 untyped: 1.4.0 transitivePeerDependencies: - sass @@ -10756,7 +10770,7 @@ packages: mri: 1.2.0 node-fetch-native: 1.4.0 ofetch: 1.3.2 - ufo: 1.2.0 + ufo: 1.3.0 transitivePeerDependencies: - supports-color @@ -10896,7 +10910,7 @@ packages: vfile-message: 3.1.4 dev: true - /vite-node@0.33.0(@types/node@18.17.8): + /vite-node@0.33.0(@types/node@18.17.9): resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10906,7 +10920,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.9(@types/node@18.17.8) + vite: 4.4.9(@types/node@18.17.9) transitivePeerDependencies: - '@types/node' - less @@ -10917,7 +10931,7 @@ packages: - supports-color - terser - /vite-plugin-checker@0.6.2(eslint@8.47.0)(typescript@5.1.6)(vite@4.4.9)(vue-tsc@1.8.8): + /vite-plugin-checker@0.6.2(eslint@8.47.0)(typescript@5.2.2)(vite@4.4.9)(vue-tsc@1.8.8): resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==} engines: {node: '>=14.16'} peerDependencies: @@ -10962,16 +10976,16 @@ packages: semver: 7.5.4 strip-ansi: 6.0.1 tiny-invariant: 1.3.1 - typescript: 5.1.6 - vite: 4.4.9(@types/node@18.17.8) + typescript: 5.2.2 + vite: 4.4.9(@types/node@18.17.9) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 vscode-uri: 3.0.7 - vue-tsc: 1.8.8(typescript@5.1.6) + vue-tsc: 1.8.8(typescript@5.2.2) dev: false - /vite@4.4.9(@types/node@18.17.8): + /vite@4.4.9(@types/node@18.17.9): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -10999,7 +11013,7 @@ packages: terser: optional: true dependencies: - '@types/node': 18.17.8 + '@types/node': 18.17.9 esbuild: 0.18.20 postcss: 8.4.28 rollup: 3.28.1 @@ -11070,7 +11084,7 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 18.17.8 + '@types/node': 18.17.9 '@vitest/expect': 0.33.0 '@vitest/runner': 0.33.0 '@vitest/snapshot': 0.33.0 @@ -11090,8 +11104,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.4.9(@types/node@18.17.8) - vite-node: 0.33.0(@types/node@18.17.8) + vite: 4.4.9(@types/node@18.17.9) + vite-node: 0.33.0(@types/node@18.17.9) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -11151,9 +11165,9 @@ packages: /vue-bundle-renderer@2.0.0: resolution: {integrity: sha512-oYATTQyh8XVkUWe2kaKxhxKVuuzK2Qcehe+yr3bGiaQAhK3ry2kYE4FWOfL+KO3hVFwCdLmzDQTzYhTi9C+R2A==} dependencies: - ufo: 1.2.0 + ufo: 1.3.0 - /vue-component-meta@1.8.8(typescript@5.1.6): + /vue-component-meta@1.8.8(typescript@5.2.2): resolution: {integrity: sha512-iVwH7wGm6VpOAvQoMjFmv8Coe9oV61JqbRkUVx95Xegwb3hEYmltvv4hYvLwUjaev07JRkskPQctyzPBU3YFyQ==} peerDependencies: typescript: '*' @@ -11162,9 +11176,9 @@ packages: optional: true dependencies: '@volar/typescript': 1.10.0 - '@vue/language-core': 1.8.8(typescript@5.1.6) + '@vue/language-core': 1.8.8(typescript@5.2.2) typesafe-path: 0.2.2 - typescript: 5.1.6 + typescript: 5.2.2 vue-component-type-helpers: 1.8.8 dev: true @@ -11245,16 +11259,16 @@ packages: de-indent: 1.0.2 he: 1.2.0 - /vue-tsc@1.8.8(typescript@5.1.6): + /vue-tsc@1.8.8(typescript@5.2.2): resolution: {integrity: sha512-bSydNFQsF7AMvwWsRXD7cBIXaNs/KSjvzWLymq/UtKE36697sboX4EccSHFVxvgdBlI1frYPc/VMKJNB7DFeDQ==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.8(typescript@5.1.6) - '@vue/typescript': 1.8.8(typescript@5.1.6) + '@vue/language-core': 1.8.8(typescript@5.2.2) + '@vue/typescript': 1.8.8(typescript@5.2.2) semver: 7.5.4 - typescript: 5.1.6 + typescript: 5.2.2 /vue@3.3.4: resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==} diff --git a/test/bundle.test.ts b/test/bundle.test.ts index d3bb320390..33668ab4c6 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -19,7 +19,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM for (const outputDir of ['.output', '.output-inline']) { it('default client bundle size', async () => { const clientStats = await analyzeSizes('**/*.js', join(rootDir, outputDir, 'public')) - expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"96.4k"') + expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"96.6k"') expect(clientStats.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -32,7 +32,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"297k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"298k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"1822k"') From a70904fd8b354ae40966027c5b841bc33ad00b7e Mon Sep 17 00:00:00 2001 From: Mihailo Bursac Date: Fri, 25 Aug 2023 09:50:46 +0200 Subject: [PATCH 719/912] perf(nuxt): reduce multiple calls to dirname (#22800) --- packages/vite/src/plugins/ssr-styles.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/plugins/ssr-styles.ts b/packages/vite/src/plugins/ssr-styles.ts index c436c2fa8c..cb779f689b 100644 --- a/packages/vite/src/plugins/ssr-styles.ts +++ b/packages/vite/src/plugins/ssr-styles.ts @@ -75,11 +75,13 @@ export function ssrStylesPlugin (options: SSRStylePluginOptions): Plugin { source: '' }) + const baseDir = dirname(base) + emitted[file] = this.emitFile({ type: 'asset', name: `${filename(file)}-styles.mjs`, source: [ - ...files.map((css, i) => `import style_${i} from './${relative(dirname(base), this.getFileName(css))}';`), + ...files.map((css, i) => `import style_${i} from './${relative(baseDir, this.getFileName(css))}';`), `export default [${files.map((_, i) => `style_${i}`).join(', ')}]` ].join('\n') }) From 54a6eab406c839a7aff47e247b8955179a6f92e9 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 25 Aug 2023 13:08:38 +0100 Subject: [PATCH 720/912] feat(kit,nuxt): respect nuxt ignore patterns in nitro (#22808) --- packages/kit/src/ignore.ts | 36 ++++++++++++++----- packages/kit/src/index.ts | 2 +- packages/nuxt/src/core/nitro.ts | 3 +- packages/schema/src/types/nuxt.ts | 1 + test/basic.test.ts | 8 +++++ test/fixtures/basic/.nuxtignore | 2 ++ .../fixtures/basic/public/ignore/public-asset | 1 + .../basic/server/routes/ignore/scanned.ts | 3 ++ 8 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 test/fixtures/basic/public/ignore/public-asset create mode 100644 test/fixtures/basic/server/routes/ignore/scanned.ts diff --git a/packages/kit/src/ignore.ts b/packages/kit/src/ignore.ts index 825c3dbb6c..76e181df62 100644 --- a/packages/kit/src/ignore.ts +++ b/packages/kit/src/ignore.ts @@ -1,6 +1,6 @@ import { existsSync, readFileSync } from 'node:fs' import ignore from 'ignore' -import { join, relative } from 'pathe' +import { join, relative, resolve } from 'pathe' import { tryUseNuxt } from './context' /** @@ -16,14 +16,7 @@ export function isIgnored (pathname: string): boolean { if (!nuxt._ignore) { nuxt._ignore = ignore(nuxt.options.ignoreOptions) - const resolvedIgnore = nuxt.options.ignore.flatMap(s => resolveGroupSyntax(s)) - - nuxt._ignore.add(resolvedIgnore) - - const nuxtignoreFile = join(nuxt.options.rootDir, '.nuxtignore') - if (existsSync(nuxtignoreFile)) { - nuxt._ignore.add(readFileSync(nuxtignoreFile, 'utf-8')) - } + nuxt._ignore.add(resolveIgnorePatterns()) } const cwds = nuxt.options._layers?.map(layer => layer.cwd).sort((a, b) => b.length - a.length) @@ -35,6 +28,31 @@ export function isIgnored (pathname: string): boolean { return !!(relativePath && nuxt._ignore.ignores(relativePath)) } +export function resolveIgnorePatterns (relativePath?: string): string[] { + const nuxt = tryUseNuxt() + + // Happens with CLI reloads + if (!nuxt) { + return [] + } + + if (!nuxt._ignorePatterns) { + nuxt._ignorePatterns = nuxt.options.ignore.flatMap(s => resolveGroupSyntax(s)) + + const nuxtignoreFile = join(nuxt.options.rootDir, '.nuxtignore') + if (existsSync(nuxtignoreFile)) { + const contents = readFileSync(nuxtignoreFile, 'utf-8') + nuxt._ignorePatterns.push(...contents.trim().split(/\r?\n/)) + } + } + + if (relativePath) { + return nuxt._ignorePatterns.map(p => p.startsWith('*') || p.startsWith('!*') ? p : relative(relativePath, resolve(nuxt.options.rootDir, p))) + } + + return nuxt._ignorePatterns +} + /** * This function turns string containing groups '**\/*.{spec,test}.{js,ts}' into an array of strings. * For example will '**\/*.{spec,test}.{js,ts}' be resolved to: diff --git a/packages/kit/src/index.ts b/packages/kit/src/index.ts index cdbba6e351..da2fe614ad 100644 --- a/packages/kit/src/index.ts +++ b/packages/kit/src/index.ts @@ -14,7 +14,7 @@ export * from './build' export * from './compatibility' export * from './components' export * from './context' -export { isIgnored } from './ignore' +export { isIgnored, resolveIgnorePatterns } from './ignore' export * from './layout' export * from './pages' export * from './plugin' diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index 80f66b0892..917df7dc35 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -3,7 +3,7 @@ import { cpus } from 'node:os' import { join, relative, resolve } from 'pathe' import { build, copyPublicAssets, createDevServer, createNitro, prepare, prerender, scanHandlers, writeTypes } from 'nitropack' import type { Nitro, NitroConfig } from 'nitropack' -import { logger } from '@nuxt/kit' +import { logger, resolveIgnorePatterns } from '@nuxt/kit' import escapeRE from 'escape-string-regexp' import { defu } from 'defu' import fsExtra from 'fs-extra' @@ -207,6 +207,7 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { // Resolve user-provided paths nitroConfig.srcDir = resolve(nuxt.options.rootDir, nuxt.options.srcDir, nitroConfig.srcDir!) + nitroConfig.ignore = [...(nitroConfig.ignore || []), ...resolveIgnorePatterns(nitroConfig.srcDir)] // Add fallback server for `ssr: false` if (!nuxt.options.ssr) { diff --git a/packages/schema/src/types/nuxt.ts b/packages/schema/src/types/nuxt.ts index 52f68bb60d..224c1190ca 100644 --- a/packages/schema/src/types/nuxt.ts +++ b/packages/schema/src/types/nuxt.ts @@ -59,6 +59,7 @@ export interface Nuxt { // Private fields. _version: string _ignore?: Ignore + _ignorePatterns?: string[] /** The resolved Nuxt configuration. */ options: NuxtOptions diff --git a/test/basic.test.ts b/test/basic.test.ts index dcdd42ab5a..ec0b6ab1be 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -894,6 +894,14 @@ describe('ignore list', () => { const html = await $fetch('/ignore/composables') expect(html).toContain('was import ignored: true') }) + it('should ignore scanned nitro handlers in .nuxtignore', async () => { + const html = await $fetch('/ignore/scanned') + expect(html).not.toContain('this should be ignored') + }) + it.skipIf(isDev())('should ignore public assets in .nuxtignore', async () => { + const html = await $fetch('/ignore/public-asset') + expect(html).not.toContain('this should be ignored') + }) }) describe('server tree shaking', () => { diff --git a/test/fixtures/basic/.nuxtignore b/test/fixtures/basic/.nuxtignore index 03aa617801..59e57a9454 100644 --- a/test/fixtures/basic/.nuxtignore +++ b/test/fixtures/basic/.nuxtignore @@ -1 +1,3 @@ composables/ignored.* +**/ignore/public-asset +server/routes/ignore/scanned.ts diff --git a/test/fixtures/basic/public/ignore/public-asset b/test/fixtures/basic/public/ignore/public-asset new file mode 100644 index 0000000000..9a0adbcc4b --- /dev/null +++ b/test/fixtures/basic/public/ignore/public-asset @@ -0,0 +1 @@ +this should be ignored diff --git a/test/fixtures/basic/server/routes/ignore/scanned.ts b/test/fixtures/basic/server/routes/ignore/scanned.ts new file mode 100644 index 0000000000..8b4f8b7d3b --- /dev/null +++ b/test/fixtures/basic/server/routes/ignore/scanned.ts @@ -0,0 +1,3 @@ +export default defineEventHandler(() => { + return 'this should be ignored' +}) From a352d59a582164e05a6afe3dd580c79eabc43970 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 25 Aug 2023 13:26:23 +0100 Subject: [PATCH 721/912] fix(nuxt): default `spaLoadingTemplate` to `false` (#22798) --- packages/nuxt/src/core/nitro.ts | 6 ++++-- packages/schema/src/config/app.ts | 4 ++-- test/bundle.test.ts | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index 917df7dc35..73a7a83377 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -31,7 +31,7 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { : [/node_modules/] const spaLoadingTemplate = nuxt.options.spaLoadingTemplate ?? resolve(nuxt.options.srcDir, 'app/spa-loading-template.html') - if (spaLoadingTemplate && nuxt.options.spaLoadingTemplate && !existsSync(spaLoadingTemplate)) { + if (spaLoadingTemplate && nuxt.options.spaLoadingTemplate && typeof spaLoadingTemplate !== 'boolean' && !existsSync(spaLoadingTemplate)) { console.warn(`[nuxt] Could not load custom \`spaLoadingTemplate\` path as it does not exist: \`${spaLoadingTemplate}\`.`) } @@ -89,7 +89,9 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { '#spa-template': () => { if (!spaLoadingTemplate) { return 'export const template = ""' } try { - return `export const template = ${JSON.stringify(readFileSync(spaLoadingTemplate, 'utf-8'))}` + if (spaLoadingTemplate !== true) { + return `export const template = ${JSON.stringify(readFileSync(spaLoadingTemplate, 'utf-8'))}` + } } catch {} return `export const template = ${JSON.stringify(defaultSpaLoadingTemplate({}))}` } diff --git a/packages/schema/src/config/app.ts b/packages/schema/src/config/app.ts index af468b54b0..d7b75d1523 100644 --- a/packages/schema/src/config/app.ts +++ b/packages/schema/src/config/app.ts @@ -241,10 +241,10 @@ export default defineUntypedSchema({ * } * * ``` - * @type {string | false} + * @type {string | boolean} */ spaLoadingTemplate: { - $resolve: async (val, get) => typeof val === 'string' ? resolve(await get('srcDir'), val) : (val ?? null) + $resolve: async (val, get) => typeof val === 'string' ? resolve(await get('srcDir'), val) : (val ?? false) }, /** diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 33668ab4c6..f1005e216e 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -32,7 +32,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"298k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"297k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"1822k"') @@ -71,7 +71,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output-inline/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"604k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"603k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"70.5k"') From 9bee320c7a83a9837b5a199844ca81537f6f3600 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 25 Aug 2023 14:57:25 +0100 Subject: [PATCH 722/912] fix(nuxt): fully resolve `unctx` where possible (#22811) --- packages/nuxt/src/core/nuxt.ts | 10 +++++++--- packages/nuxt/src/core/plugins/unctx.ts | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index f992ec2433..36ccb593be 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -16,6 +16,7 @@ import importsModule from '../imports/module' import { distDir, pkgDir } from '../dirs' import { version } from '../../package.json' import { ImportProtectionPlugin, vueAppPatterns } from './plugins/import-protection' +import type { UnctxTransformPluginOptions } from './plugins/unctx' import { UnctxTransformPlugin } from './plugins/unctx' import type { TreeShakeComposablesPluginOptions } from './plugins/tree-shake' import { TreeShakeComposablesPlugin } from './plugins/tree-shake' @@ -110,12 +111,15 @@ async function initNuxt (nuxt: Nuxt) { })) } - nuxt.hook('modules:done', () => { + nuxt.hook('modules:done', async () => { // Add unctx transform const options = { sourcemap: !!nuxt.options.sourcemap.server || !!nuxt.options.sourcemap.client, - transformerOptions: nuxt.options.optimization.asyncTransforms - } + transformerOptions: { + ...nuxt.options.optimization.asyncTransforms, + helperModule: await tryResolveModule('unctx', nuxt.options.modulesDir) ?? 'unctx' + } + } satisfies UnctxTransformPluginOptions addVitePlugin(() => UnctxTransformPlugin.vite(options)) addWebpackPlugin(() => UnctxTransformPlugin.webpack(options)) diff --git a/packages/nuxt/src/core/plugins/unctx.ts b/packages/nuxt/src/core/plugins/unctx.ts index 19ce781e94..1e458eda49 100644 --- a/packages/nuxt/src/core/plugins/unctx.ts +++ b/packages/nuxt/src/core/plugins/unctx.ts @@ -6,7 +6,7 @@ import { isJS, isVue } from '../utils' const TRANSFORM_MARKER = '/* _processed_nuxt_unctx_transform */\n' -interface UnctxTransformPluginOptions { +export interface UnctxTransformPluginOptions { sourcemap?: boolean transformerOptions: TransformerOptions } From b319087c9fcfb6e22782d03cbbb2a60e6918cc0d Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 25 Aug 2023 14:57:41 +0100 Subject: [PATCH 723/912] fix(vite): only mark nitro deps as externals when building (#22812) --- packages/vite/src/server.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts index 741cd48d35..03898ca7e3 100644 --- a/packages/vite/src/server.ts +++ b/packages/vite/src/server.ts @@ -15,7 +15,6 @@ import { transpile } from './utils/transpile' export async function buildServer (ctx: ViteBuildContext) { const helper = ctx.nuxt.options.nitro.imports !== false ? '' : 'globalThis.' const entry = ctx.nuxt.options.ssr ? ctx.entry : await resolvePath(resolve(ctx.nuxt.options.appDir, 'entry-spa')) - const nitroDependencies = await tryResolveModule('nitropack/package.json', ctx.nuxt.options.modulesDir).then(r => import(r!)).then(r => Object.keys(r.dependencies || {})).catch(() => []) const serverConfig: ViteConfig = vite.mergeConfig(ctx.config, vite.mergeConfig({ configFile: false, base: ctx.nuxt.options.dev @@ -62,11 +61,7 @@ export async function buildServer (ctx: ViteBuildContext) { }, ssr: { external: [ - '#internal/nitro', '#internal/nitro/utils', - // explicit dependencies we use in our ssr renderer - these can be inlined (if necessary) in the nitro build - 'unhead', '@unhead/ssr', '@unhead/vue', 'unctx', 'h3', 'devalue', '@nuxt/devalue', 'radix3', 'unstorage', 'hookable', - // dependencies we might share with nitro - these can be inlined (if necessary) in the nitro build - ...nitroDependencies + '#internal/nitro', '#internal/nitro/utils' ], noExternal: [ ...transpile({ isServer: true, isDev: ctx.nuxt.options.dev }), @@ -112,6 +107,17 @@ export async function buildServer (ctx: ViteBuildContext) { ] } satisfies vite.InlineConfig, ctx.nuxt.options.vite.$server || {})) + if (!ctx.nuxt.options.dev) { + const nitroDependencies = await tryResolveModule('nitropack/package.json', ctx.nuxt.options.modulesDir) + .then(r => import(r!)).then(r => Object.keys(r.dependencies || {})).catch(() => []) + serverConfig.ssr!.external!.push( + // explicit dependencies we use in our ssr renderer - these can be inlined (if necessary) in the nitro build + 'unhead', '@unhead/ssr', 'unctx', 'h3', 'devalue', '@nuxt/devalue', 'radix3', 'unstorage', 'hookable', + // dependencies we might share with nitro - these can be inlined (if necessary) in the nitro build + ...nitroDependencies + ) + } + serverConfig.customLogger = createViteLogger(serverConfig) await ctx.nuxt.callHook('vite:extendConfig', serverConfig, { isClient: false, isServer: true }) From da117ec616edb394f8aaa173056a31a4a22db247 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 25 Aug 2023 15:44:19 +0100 Subject: [PATCH 724/912] chore(deps): update all non-major dependencies (main) (#22803) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- package.json | 4 +- packages/nuxt/package.json | 2 +- packages/test-utils/package.json | 2 +- pnpm-lock.yaml | 110 +++++++++++++++---------------- 4 files changed, 59 insertions(+), 59 deletions(-) diff --git a/package.json b/package.json index 24ca871be5..642d9c5714 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@nuxt/webpack-builder": "workspace:*", "@nuxtjs/eslint-config-typescript": "12.0.0", "@types/fs-extra": "11.0.1", - "@types/node": "18.17.9", + "@types/node": "18.17.11", "@types/semver": "7.5.0", "case-police": "0.6.1", "chalk": "5.3.0", @@ -68,7 +68,7 @@ "nuxi": "workspace:*", "nuxt": "workspace:*", "nuxt-vitest": "0.10.2", - "ofetch": "1.3.2", + "ofetch": "1.3.3", "pathe": "1.1.1", "playwright-core": "1.37.1", "rimraf": "5.0.1", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index ba4dc821c1..d09b63cf8d 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -84,7 +84,7 @@ "nitropack": "^2.6.0", "nuxi": "workspace:../nuxi", "nypm": "^0.3.1", - "ofetch": "^1.3.2", + "ofetch": "^1.3.3", "ohash": "^1.1.3", "pathe": "^1.1.1", "perfect-debounce": "^1.0.0", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 58c5778d48..03cde41644 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -28,7 +28,7 @@ "defu": "^6.1.2", "execa": "^7.2.0", "get-port-please": "^3.0.1", - "ofetch": "^1.3.2", + "ofetch": "^1.3.3", "pathe": "^1.1.1", "ufo": "^1.3.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 79db541785..872722a2e9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,8 +36,8 @@ importers: specifier: 11.0.1 version: 11.0.1 '@types/node': - specifier: 18.17.9 - version: 18.17.9 + specifier: 18.17.11 + version: 18.17.11 '@types/semver': specifier: 7.5.0 version: 7.5.0 @@ -105,8 +105,8 @@ importers: specifier: 0.10.2 version: 0.10.2(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.3)(happy-dom@10.11.0)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) ofetch: - specifier: 1.3.2 - version: 1.3.2 + specifier: 1.3.3 + version: 1.3.3 pathe: specifier: 1.1.1 version: 1.1.1 @@ -130,7 +130,7 @@ importers: version: 1.3.0 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.9) + version: 4.4.9(@types/node@18.17.11) vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.11.0) @@ -233,7 +233,7 @@ importers: version: 2.0.0(typescript@5.2.2) vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.9) + version: 4.4.9(@types/node@18.17.11) vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.11.0) @@ -366,7 +366,7 @@ importers: version: link:../vite '@types/node': specifier: ^14.18.0 || >=16.10.0 - version: 18.17.9 + version: 18.17.11 '@unhead/dom': specifier: ^1.3.7 version: 1.3.7 @@ -446,8 +446,8 @@ importers: specifier: ^0.3.1 version: 0.3.1 ofetch: - specifier: ^1.3.2 - version: 1.3.2 + specifier: ^1.3.3 + version: 1.3.3 ohash: specifier: ^1.1.3 version: 1.1.3 @@ -532,7 +532,7 @@ importers: version: 2.0.0(typescript@5.2.2) vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.9) + version: 4.4.9(@types/node@18.17.11) vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.11.0) @@ -614,7 +614,7 @@ importers: version: 2.3.1 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.9) + version: 4.4.9(@types/node@18.17.11) vue: specifier: 3.3.4 version: 3.3.4 @@ -655,8 +655,8 @@ importers: specifier: ^3.0.1 version: 3.0.1 ofetch: - specifier: ^1.3.2 - version: 1.3.2 + specifier: ^1.3.3 + version: 1.3.3 pathe: specifier: ^1.1.1 version: 1.1.1 @@ -777,10 +777,10 @@ importers: version: 1.4.0 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.9) + version: 4.4.9(@types/node@18.17.11) vite-node: specifier: ^0.33.0 - version: 0.33.0(@types/node@18.17.9) + version: 0.33.0(@types/node@18.17.11) vite-plugin-checker: specifier: ^0.6.2 version: 0.6.2(eslint@8.47.0)(typescript@5.2.2)(vite@4.4.9)(vue-tsc@1.8.8) @@ -1000,7 +1000,7 @@ importers: devDependencies: ofetch: specifier: latest - version: 1.3.2 + version: 1.3.3 vitest: specifier: 0.33.0 version: 0.33.0(happy-dom@10.11.0) @@ -2126,7 +2126,7 @@ packages: dependencies: '@jest/fake-timers': 29.6.4 '@jest/types': 29.6.3 - '@types/node': 18.17.9 + '@types/node': 18.17.11 jest-mock: 29.6.3 dev: true @@ -2153,7 +2153,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 18.17.9 + '@types/node': 18.17.11 jest-message-util: 29.6.3 jest-mock: 29.6.3 jest-util: 29.6.3 @@ -2207,7 +2207,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.17.9 + '@types/node': 18.17.11 '@types/yargs': 17.0.24 chalk: 4.1.2 @@ -2475,7 +2475,7 @@ packages: mri: 1.2.0 nanoid: 4.0.2 node-fetch: 3.3.2 - ofetch: 1.3.2 + ofetch: 1.3.3 parse-git-config: 3.0.0 pathe: 1.1.1 rc9: 2.1.1 @@ -2891,7 +2891,7 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 dev: true /@types/debug@4.1.8: @@ -2929,13 +2929,13 @@ packages: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 18.17.9 + '@types/node': 18.17.11 dev: true /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 dev: true /@types/hash-sum@1.0.0: @@ -2951,7 +2951,7 @@ packages: /@types/http-proxy@1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} @@ -2976,7 +2976,7 @@ packages: /@types/jsonfile@6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 dev: true /@types/lodash-es@4.17.8: @@ -3006,11 +3006,11 @@ packages: /@types/node-sass@4.11.3: resolution: {integrity: sha512-wXPCn3t9uu5rR4zXNSLasZHQMuRzUKBsdi4MsgT8uq4Lp1gQQo+T2G23tGj4SSgDHeNBle6vGseZtM2XV/X9bw==} dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 dev: true - /@types/node@18.17.9: - resolution: {integrity: sha512-fxaKquqYcPOGwE7tC1anJaPJ0GHyOVzfA2oUoXECjBjrtsIz4YJvtNYsq8LUcjEUehEF+jGpx8Z+lFrtT6z0tg==} + /@types/node@18.17.11: + resolution: {integrity: sha512-r3hjHPBu+3LzbGBa8DHnr/KAeTEEOrahkcL+cZc4MaBMTM+mk8LtXR+zw+nqfjuDZZzYTYgTcpHuP+BEQk069g==} /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -3031,7 +3031,7 @@ packages: /@types/prompts@2.4.4: resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 kleur: 3.0.3 dev: true @@ -3045,7 +3045,7 @@ packages: /@types/sass-loader@8.0.5: resolution: {integrity: sha512-3b3lQ+UwWanaPBzOcP1YeNTR4q0Klt2UEezhdIjDXkTnQ93F+fnv+z1tMsQBAopY0b+c5ATN5pHQ+vfzxaRnFg==} dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 '@types/node-sass': 4.11.3 '@types/webpack': 4.41.33 sass: 1.64.2 @@ -3092,7 +3092,7 @@ packages: /@types/webpack-bundle-analyzer@4.6.0: resolution: {integrity: sha512-XeQmQCCXdZdap+A/60UKmxW5Mz31Vp9uieGlHB3T4z/o2OLVLtTI3bvTuS6A2OWd/rbAAQiGGWIEFQACu16szA==} dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 tapable: 2.2.1 webpack: 5.88.2 transitivePeerDependencies: @@ -3118,7 +3118,7 @@ packages: /@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 '@types/source-list-map': 0.1.2 source-map: 0.7.4 dev: true @@ -3132,7 +3132,7 @@ packages: /@types/webpack@4.41.33: resolution: {integrity: sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==} dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 '@types/tapable': 1.0.8 '@types/uglify-js': 3.17.1 '@types/webpack-sources': 3.2.0 @@ -3350,7 +3350,7 @@ packages: '@babel/core': 7.22.10 '@babel/plugin-transform-typescript': 7.22.10(@babel/core@7.22.10) '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.10) - vite: 4.4.9(@types/node@18.17.9) + vite: 4.4.9(@types/node@18.17.11) vue: 3.3.4 transitivePeerDependencies: - supports-color @@ -3362,7 +3362,7 @@ packages: vite: ^4.0.0 vue: ^3.2.25 dependencies: - vite: 4.4.9(@types/node@18.17.9) + vite: 4.4.9(@types/node@18.17.11) vue: 3.3.4 /@vitest/expect@0.33.0: @@ -4467,7 +4467,7 @@ packages: execa: 8.0.1 mri: 1.2.0 node-fetch-native: 1.4.0 - ofetch: 1.3.2 + ofetch: 1.3.3 open: 9.1.0 pathe: 1.1.1 pkg-types: 1.0.3 @@ -6973,7 +6973,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.6 - '@types/node': 18.17.9 + '@types/node': 18.17.11 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -7016,7 +7016,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.17.9 + '@types/node': 18.17.11 jest-util: 29.6.3 dev: true @@ -7058,7 +7058,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.17.9 + '@types/node': 18.17.11 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -7068,7 +7068,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -7076,7 +7076,7 @@ packages: resolution: {integrity: sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 jest-util: 29.6.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -8119,7 +8119,7 @@ packages: mlly: 1.4.0 mri: 1.2.0 node-fetch-native: 1.4.0 - ofetch: 1.3.2 + ofetch: 1.3.3 ohash: 1.1.3 openapi-typescript: 6.5.3 pathe: 1.1.1 @@ -8322,7 +8322,7 @@ packages: get-port-please: 3.0.1 perfect-debounce: 1.0.0 std-env: 3.4.3 - vite: 4.4.9(@types/node@18.17.9) + vite: 4.4.9(@types/node@18.17.11) vitest: 0.33.0(happy-dom@10.11.0) vitest-environment-nuxt: 0.10.2(happy-dom@10.11.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) transitivePeerDependencies: @@ -8399,8 +8399,8 @@ packages: es-abstract: 1.22.1 dev: true - /ofetch@1.3.2: - resolution: {integrity: sha512-XphiqMCUugscBfS7EjEfe8s3Hb5kfrTqdk9QAYl9z/wvhI3g97EpQdldqd0zAWqQXInHEqkRBQ08reMFHQwjDA==} + /ofetch@1.3.3: + resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} dependencies: destr: 2.0.1 node-fetch-native: 1.4.0 @@ -10769,7 +10769,7 @@ packages: lru-cache: 10.0.1 mri: 1.2.0 node-fetch-native: 1.4.0 - ofetch: 1.3.2 + ofetch: 1.3.3 ufo: 1.3.0 transitivePeerDependencies: - supports-color @@ -10910,7 +10910,7 @@ packages: vfile-message: 3.1.4 dev: true - /vite-node@0.33.0(@types/node@18.17.9): + /vite-node@0.33.0(@types/node@18.17.11): resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10920,7 +10920,7 @@ packages: mlly: 1.4.0 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.9(@types/node@18.17.9) + vite: 4.4.9(@types/node@18.17.11) transitivePeerDependencies: - '@types/node' - less @@ -10977,7 +10977,7 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.2.2 - vite: 4.4.9(@types/node@18.17.9) + vite: 4.4.9(@types/node@18.17.11) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 @@ -10985,7 +10985,7 @@ packages: vue-tsc: 1.8.8(typescript@5.2.2) dev: false - /vite@4.4.9(@types/node@18.17.9): + /vite@4.4.9(@types/node@18.17.11): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -11013,7 +11013,7 @@ packages: terser: optional: true dependencies: - '@types/node': 18.17.9 + '@types/node': 18.17.11 esbuild: 0.18.20 postcss: 8.4.28 rollup: 3.28.1 @@ -11041,7 +11041,7 @@ packages: h3: 1.8.0 happy-dom: 10.11.0 magic-string: 0.30.3 - ofetch: 1.3.2 + ofetch: 1.3.3 unenv: 1.7.3 vitest: 0.33.0(happy-dom@10.11.0) vue: 3.3.4 @@ -11084,7 +11084,7 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 18.17.9 + '@types/node': 18.17.11 '@vitest/expect': 0.33.0 '@vitest/runner': 0.33.0 '@vitest/snapshot': 0.33.0 @@ -11104,8 +11104,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.4.9(@types/node@18.17.9) - vite-node: 0.33.0(@types/node@18.17.9) + vite: 4.4.9(@types/node@18.17.11) + vite-node: 0.33.0(@types/node@18.17.11) why-is-node-running: 2.2.2 transitivePeerDependencies: - less From abd5d857705fa830d6ef019cb8a5ed3c763b7cd5 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 25 Aug 2023 16:20:32 +0100 Subject: [PATCH 725/912] feat(nuxt): migrate to new `nuxt/cli` (#22799) --- .gitignore | 1 + .stackblitz/codeflow.json | 1 - package.json | 3 +- packages/nuxi/README.md | 5 + packages/nuxi/bin/nuxi.mjs | 2 - packages/nuxi/build.config.ts | 31 ---- packages/nuxi/package.json | 60 ------- packages/nuxi/src/cli-run.ts | 5 - packages/nuxi/src/cli-wrapper.ts | 58 ------- packages/nuxi/src/cli.ts | 87 ---------- packages/nuxi/src/commands/add.ts | 62 ------- packages/nuxi/src/commands/analyze.ts | 110 ------------ packages/nuxi/src/commands/build-module.ts | 34 ---- packages/nuxi/src/commands/build.ts | 70 -------- packages/nuxi/src/commands/cleanup.ts | 15 -- packages/nuxi/src/commands/dev.ts | 190 --------------------- packages/nuxi/src/commands/devtools.ts | 24 --- packages/nuxi/src/commands/generate.ts | 14 -- packages/nuxi/src/commands/index.ts | 46 ----- packages/nuxi/src/commands/info.ts | 161 ----------------- packages/nuxi/src/commands/init.ts | 68 -------- packages/nuxi/src/commands/prepare.ts | 35 ---- packages/nuxi/src/commands/preview.ts | 55 ------ packages/nuxi/src/commands/test.ts | 43 ----- packages/nuxi/src/commands/typecheck.ts | 43 ----- packages/nuxi/src/commands/upgrade.ts | 74 -------- packages/nuxi/src/commands/usage.ts | 21 --- packages/nuxi/src/index.ts | 1 - packages/nuxi/src/run.ts | 13 -- packages/nuxi/src/utils/banner.ts | 21 --- packages/nuxi/src/utils/cjs.ts | 27 --- packages/nuxi/src/utils/diff.ts | 31 ---- packages/nuxi/src/utils/engines.ts | 12 -- packages/nuxi/src/utils/env.ts | 8 - packages/nuxi/src/utils/esm.ts | 13 -- packages/nuxi/src/utils/fs.ts | 45 ----- packages/nuxi/src/utils/help.ts | 20 --- packages/nuxi/src/utils/kit.ts | 24 --- packages/nuxi/src/utils/nuxt.ts | 68 -------- packages/nuxi/src/utils/packageManagers.ts | 28 --- packages/nuxi/src/utils/templates.ts | 119 ------------- packages/nuxt/package.json | 2 +- packages/test-utils/src/server.ts | 5 +- pnpm-lock.yaml | 136 ++------------- 44 files changed, 27 insertions(+), 1864 deletions(-) create mode 100644 packages/nuxi/README.md delete mode 100755 packages/nuxi/bin/nuxi.mjs delete mode 100644 packages/nuxi/build.config.ts delete mode 100644 packages/nuxi/package.json delete mode 100644 packages/nuxi/src/cli-run.ts delete mode 100644 packages/nuxi/src/cli-wrapper.ts delete mode 100755 packages/nuxi/src/cli.ts delete mode 100644 packages/nuxi/src/commands/add.ts delete mode 100644 packages/nuxi/src/commands/analyze.ts delete mode 100644 packages/nuxi/src/commands/build-module.ts delete mode 100644 packages/nuxi/src/commands/build.ts delete mode 100644 packages/nuxi/src/commands/cleanup.ts delete mode 100644 packages/nuxi/src/commands/dev.ts delete mode 100644 packages/nuxi/src/commands/devtools.ts delete mode 100644 packages/nuxi/src/commands/generate.ts delete mode 100644 packages/nuxi/src/commands/index.ts delete mode 100644 packages/nuxi/src/commands/info.ts delete mode 100644 packages/nuxi/src/commands/init.ts delete mode 100644 packages/nuxi/src/commands/prepare.ts delete mode 100644 packages/nuxi/src/commands/preview.ts delete mode 100644 packages/nuxi/src/commands/test.ts delete mode 100644 packages/nuxi/src/commands/typecheck.ts delete mode 100644 packages/nuxi/src/commands/upgrade.ts delete mode 100644 packages/nuxi/src/commands/usage.ts delete mode 100755 packages/nuxi/src/index.ts delete mode 100644 packages/nuxi/src/run.ts delete mode 100644 packages/nuxi/src/utils/banner.ts delete mode 100644 packages/nuxi/src/utils/cjs.ts delete mode 100644 packages/nuxi/src/utils/diff.ts delete mode 100644 packages/nuxi/src/utils/engines.ts delete mode 100644 packages/nuxi/src/utils/env.ts delete mode 100644 packages/nuxi/src/utils/esm.ts delete mode 100644 packages/nuxi/src/utils/fs.ts delete mode 100644 packages/nuxi/src/utils/help.ts delete mode 100644 packages/nuxi/src/utils/kit.ts delete mode 100644 packages/nuxi/src/utils/nuxt.ts delete mode 100644 packages/nuxi/src/utils/packageManagers.ts delete mode 100644 packages/nuxi/src/utils/templates.ts diff --git a/.gitignore b/.gitignore index 621e946021..7c284d1371 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ jspm_packages package-lock.json packages/*/README.md +!packages/nuxi/README.md packages/*/LICENSE */**/yarn.lock /.yarn diff --git a/.stackblitz/codeflow.json b/.stackblitz/codeflow.json index 06a7fa58ac..c6f914a9e6 100644 --- a/.stackblitz/codeflow.json +++ b/.stackblitz/codeflow.json @@ -6,7 +6,6 @@ "@nuxt/test-utils": "./packages/test-utils", "@nuxt/vite": "./packages/vite", "@nuxt/webpack": "./packages/webpack", - "nuxi": "./packages/nuxi", "nuxt": "./packages/nuxt" } } diff --git a/package.json b/package.json index 642d9c5714..1b1f2101f0 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "@nuxt/test-utils": "workspace:*", "@nuxt/vite-builder": "workspace:*", "@nuxt/webpack-builder": "workspace:*", - "nuxi": "workspace:*", "nuxt": "workspace:*", "vite": "4.4.9", "vue": "3.3.4", @@ -65,7 +64,7 @@ "jiti": "1.19.3", "markdownlint-cli": "^0.33.0", "nitropack": "2.6.0", - "nuxi": "workspace:*", + "nuxi": "npm:nuxi-ng@0.3.0-1692970235.c259efa", "nuxt": "workspace:*", "nuxt-vitest": "0.10.2", "ofetch": "1.3.3", diff --git a/packages/nuxi/README.md b/packages/nuxi/README.md new file mode 100644 index 0000000000..4edd42b0e9 --- /dev/null +++ b/packages/nuxi/README.md @@ -0,0 +1,5 @@ +# Nuxt CLI (nuxi) + +⚡️ Next Generation CLI Experience for [Nuxt](https://nuxt.com/). + +- 👉 View on GitHub at https://github.com/nuxt/cli diff --git a/packages/nuxi/bin/nuxi.mjs b/packages/nuxi/bin/nuxi.mjs deleted file mode 100755 index 8dcfc256bd..0000000000 --- a/packages/nuxi/bin/nuxi.mjs +++ /dev/null @@ -1,2 +0,0 @@ -#!/usr/bin/env node -import('../dist/cli-wrapper.mjs') diff --git a/packages/nuxi/build.config.ts b/packages/nuxi/build.config.ts deleted file mode 100644 index 522086d61a..0000000000 --- a/packages/nuxi/build.config.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { defineBuildConfig } from 'unbuild' - -export default defineBuildConfig({ - declaration: true, - rollup: { - inlineDependencies: true, - resolve: { - exportConditions: ['production', 'node'] as any - } - }, - entries: [ - 'src/cli', - 'src/cli-run', - 'src/cli-wrapper', - 'src/index' - ], - externals: [ - '@nuxt/kit', - '@nuxt/schema', - '@nuxt/test-utils', - 'fsevents', - // TODO: Fix rollup/unbuild issue - 'node:url', - 'node:buffer', - 'node:path', - 'node:child_process', - 'node:process', - 'node:path', - 'node:os' - ] -}) diff --git a/packages/nuxi/package.json b/packages/nuxi/package.json deleted file mode 100644 index 230c7839fa..0000000000 --- a/packages/nuxi/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "name": "nuxi", - "version": "3.6.5", - "repository": "nuxt/nuxt", - "license": "MIT", - "type": "module", - "types": "./dist/index.d.ts", - "exports": { - ".": "./dist/index.mjs", - "./cli": "./bin/nuxi.mjs" - }, - "bin": "./bin/nuxi.mjs", - "files": [ - "bin", - "dist" - ], - "scripts": { - "prepack": "unbuild" - }, - "devDependencies": { - "@nuxt/kit": "workspace:../kit", - "@nuxt/schema": "workspace:../schema", - "@types/clear": "0.1.2", - "@types/flat": "5.0.2", - "@types/mri": "1.1.1", - "@types/semver": "7.5.0", - "c12": "1.4.2", - "chokidar": "3.5.3", - "clear": "0.1.0", - "clipboardy": "3.0.0", - "colorette": "2.0.20", - "consola": "3.2.3", - "deep-object-diff": "1.1.9", - "defu": "6.1.2", - "destr": "2.0.1", - "execa": "7.2.0", - "flat": "5.0.2", - "giget": "1.1.2", - "h3": "1.8.0", - "jiti": "1.19.3", - "listhen": "1.4.0", - "mlly": "1.4.0", - "mri": "1.2.0", - "nitropack": "2.6.0", - "ohash": "1.1.3", - "pathe": "1.1.1", - "perfect-debounce": "1.0.0", - "pkg-types": "1.0.3", - "scule": "1.0.0", - "semver": "7.5.4", - "ufo": "1.3.0", - "unbuild": "latest" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "engines": { - "node": "^14.18.0 || >=16.10.0" - } -} diff --git a/packages/nuxi/src/cli-run.ts b/packages/nuxi/src/cli-run.ts deleted file mode 100644 index bca8a2e7d2..0000000000 --- a/packages/nuxi/src/cli-run.ts +++ /dev/null @@ -1,5 +0,0 @@ -// @ts-expect-error internal property for tracking start time -process._startTime = Date.now() - -// @ts-expect-error `default` property is not declared -import('./cli').then(r => (r.default || r).main()) diff --git a/packages/nuxi/src/cli-wrapper.ts b/packages/nuxi/src/cli-wrapper.ts deleted file mode 100644 index ad3d0c990f..0000000000 --- a/packages/nuxi/src/cli-wrapper.ts +++ /dev/null @@ -1,58 +0,0 @@ -/** - * This file is used to wrap the CLI entrypoint in a restartable process. - */ -import { fileURLToPath } from 'node:url' -import { fork } from 'node:child_process' -import type { ChildProcess } from 'node:child_process' - -const cliEntry = new URL('../dist/cli-run.mjs', import.meta.url) - -// Only enable wrapper for nuxt dev command -if (process.argv[2] === 'dev') { - process.env.__CLI_ARGV__ = JSON.stringify(process.argv) - startSubprocess() -} else { - import(cliEntry.href) -} - -function startSubprocess () { - let childProc: ChildProcess | undefined - - const onShutdown = () => { - if (childProc) { - childProc.kill() - childProc = undefined - } - } - - process.on('exit', onShutdown) - process.on('SIGTERM', onShutdown) // Graceful shutdown - process.on('SIGINT', onShutdown) // Ctrl-C - process.on('SIGQUIT', onShutdown) // Ctrl-\ - - start() - - function start () { - const _argv: string[] = (process.env.__CLI_ARGV__ ? JSON.parse(process.env.__CLI_ARGV__) : process.argv).slice(2) - const execArguments: string[] = getInspectArgs() - - childProc = fork(fileURLToPath(cliEntry), [], { execArgv: execArguments }) - childProc.on('close', (code) => { if (code) { process.exit(code) } }) - childProc.on('message', (message) => { - if ((message as { type: string })?.type === 'nuxt:restart') { - childProc?.kill() - startSubprocess() - } - }) - - function getInspectArgs (): string[] { - const inspectArgv = _argv.find(argvItem => argvItem.includes('--inspect')) - - if (!inspectArgv) { - return [] - } - - return [inspectArgv] - } - } -} diff --git a/packages/nuxi/src/cli.ts b/packages/nuxi/src/cli.ts deleted file mode 100755 index f90c98f72e..0000000000 --- a/packages/nuxi/src/cli.ts +++ /dev/null @@ -1,87 +0,0 @@ -import mri from 'mri' -import { red } from 'colorette' -import type { ConsolaReporter } from 'consola' -import { consola } from 'consola' -import { checkEngines } from './utils/engines' -import type { Command, NuxtCommand } from './commands' -import { commands } from './commands' -import { showHelp } from './utils/help' -import { showBanner } from './utils/banner' - -async function _main () { - const _argv = (process.env.__CLI_ARGV__ ? JSON.parse(process.env.__CLI_ARGV__) : process.argv).slice(2) - const args = mri(_argv, { - boolean: [ - 'no-clear' - ] - }) - const command = args._.shift() || 'usage' - - showBanner(command === 'dev' && args.clear !== false && !args.help) - - if (!(command in commands)) { - console.log('\n' + red('Invalid command ' + command)) - - await commands.usage().then(r => r.invoke()) - process.exit(1) - } - - // Check Node.js version in background - setTimeout(() => { checkEngines().catch(() => {}) }, 1000) - - const cmd = await commands[command as Command]() as NuxtCommand - if (args.h || args.help) { - showHelp(cmd.meta) - } else { - const result = await cmd.invoke(args) - return result - } -} - -// Wrap all console logs with consola for better DX -consola.wrapAll() - -// Filter out unwanted logs -// TODO: Use better API from consola for intercepting logs -const wrapReporter = (reporter: ConsolaReporter) => ({ - log (logObj, ctx) { - if (!logObj.args || !logObj.args.length) { return } - const msg = logObj.args[0] - if (typeof msg === 'string' && !process.env.DEBUG) { - // Hide vue-router 404 warnings - if (msg.startsWith('[Vue Router warn]: No match found for location with path')) { - return - } - // Suppress warning about native Node.js fetch - if (msg.includes('ExperimentalWarning: The Fetch API is an experimental feature')) { - return - } - // TODO: resolve upstream in Vite - // Hide sourcemap warnings related to node_modules - if (msg.startsWith('Sourcemap') && msg.includes('node_modules')) { - return - } - } - return reporter.log(logObj, ctx) - } -}) satisfies ConsolaReporter - -consola.options.reporters = consola.options.reporters.map(wrapReporter) - -process.on('unhandledRejection', err => consola.error('[unhandledRejection]', err)) -process.on('uncaughtException', err => consola.error('[uncaughtException]', err)) - -export function main () { - _main() - .then((result) => { - if (result === 'error') { - process.exit(1) - } else if (result !== 'wait') { - process.exit() - } - }) - .catch((error) => { - consola.error(error) - process.exit(1) - }) -} diff --git a/packages/nuxi/src/commands/add.ts b/packages/nuxi/src/commands/add.ts deleted file mode 100644 index 1b795f4720..0000000000 --- a/packages/nuxi/src/commands/add.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { existsSync, promises as fsp } from 'node:fs' -import { dirname, resolve } from 'pathe' -import { consola } from 'consola' -import { loadKit } from '../utils/kit' -import { templates } from '../utils/templates' -import { defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'add', - usage: `npx nuxi add [--cwd] [--force] ${Object.keys(templates).join('|')} `, - description: 'Create a new template file.' - }, - async invoke (args) { - const cwd = resolve(args.cwd || '.') - - const template = args._[0] - const name = args._[1] - - // Validate template name - if (!templates[template]) { - consola.error(`Template ${template} is not supported. Possible values: ${Object.keys(templates).join(', ')}`) - process.exit(1) - } - - // Validate options - if (!name) { - consola.error('name argument is missing!') - process.exit(1) - } - - // Load config in order to respect srcDir - const kit = await loadKit(cwd) - const config = await kit.loadNuxtConfig({ cwd }) - - // Resolve template - const res = templates[template]({ name, args }) - - // Resolve full path to generated file - const path = resolve(config.srcDir, res.path) - - // Ensure not overriding user code - if (!args.force && existsSync(path)) { - consola.error(`File exists: ${path} . Use --force to override or use a different name.`) - process.exit(1) - } - - // Ensure parent directory exists - const parentDir = dirname(path) - if (!existsSync(parentDir)) { - consola.info('Creating directory', parentDir) - if (template === 'page') { - consola.info('This enables vue-router functionality!') - } - await fsp.mkdir(parentDir, { recursive: true }) - } - - // Write file - await fsp.writeFile(path, res.contents.trim() + '\n') - consola.info(`🪄 Generated a new ${template} in ${path}`) - } -}) diff --git a/packages/nuxi/src/commands/analyze.ts b/packages/nuxi/src/commands/analyze.ts deleted file mode 100644 index caf21d29cc..0000000000 --- a/packages/nuxi/src/commands/analyze.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { promises as fsp } from 'node:fs' -import { join, resolve } from 'pathe' -import { createApp, eventHandler, lazyEventHandler, send, toNodeListener } from 'h3' -import { listen } from 'listhen' -import type { NuxtAnalyzeMeta } from '@nuxt/schema' -import { defu } from 'defu' -import { loadKit } from '../utils/kit' -import { clearDir } from '../utils/fs' -import { overrideEnv } from '../utils/env' -import { defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'analyze', - usage: 'npx nuxi analyze [--log-level] [--name] [--no-serve] [rootDir]', - description: 'Build nuxt and analyze production bundle (experimental)' - }, - async invoke (args, options = {}) { - overrideEnv('production') - - const name = args.name || 'default' - const slug = name.trim().replace(/[^a-z0-9_-]/gi, '_') - const rootDir = resolve(args._[0] || '.') - - let analyzeDir = join(rootDir, '.nuxt/analyze', slug) - let buildDir = join(analyzeDir, '.nuxt') - let outDir = join(analyzeDir, '.output') - - const startTime = Date.now() - - const { loadNuxt, buildNuxt } = await loadKit(rootDir) - - const nuxt = await loadNuxt({ - rootDir, - overrides: defu(options.overrides, { - build: { - analyze: true - }, - analyzeDir, - buildDir, - nitro: { - output: { - dir: outDir - } - }, - logLevel: args['log-level'] - }) - }) - - analyzeDir = nuxt.options.analyzeDir - buildDir = nuxt.options.buildDir - outDir = nuxt.options.nitro.output?.dir || outDir - - await clearDir(analyzeDir) - await buildNuxt(nuxt) - - const endTime = Date.now() - - const meta: NuxtAnalyzeMeta = { - name, - slug, - startTime, - endTime, - analyzeDir, - buildDir, - outDir - } - - await nuxt.callHook('build:analyze:done', meta) - await fsp.writeFile(join(analyzeDir, 'meta.json'), JSON.stringify(meta, null, 2), 'utf-8') - - console.info('Analyze results are available at: `' + analyzeDir + '`') - console.warn('Do not deploy analyze results! Use `nuxi build` before deploying.') - - if (args.serve !== false && !process.env.CI) { - const app = createApp() - - const serveFile = (filePath: string) => lazyEventHandler(async () => { - const contents = await fsp.readFile(filePath, 'utf-8') - return eventHandler(event => send(event, contents)) - }) - - console.info('Starting stats server...') - - app.use('/client', serveFile(join(analyzeDir, 'client.html'))) - app.use('/nitro', serveFile(join(analyzeDir, 'nitro.html'))) - app.use(eventHandler(() => ` - - - - Nuxt Bundle Stats (experimental) - -

Nuxt Bundle Stats (experimental)

-
- - `)) - - await listen(toNodeListener(app)) - - return 'wait' as const - } - } -}) diff --git a/packages/nuxi/src/commands/build-module.ts b/packages/nuxi/src/commands/build-module.ts deleted file mode 100644 index 9ceebbf6f9..0000000000 --- a/packages/nuxi/src/commands/build-module.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { execa } from 'execa' -import { consola } from 'consola' -import { resolve } from 'pathe' -import { tryResolveModule } from '../utils/esm' -import { defineNuxtCommand } from './index' - -const MODULE_BUILDER_PKG = '@nuxt/module-builder' - -export default defineNuxtCommand({ - meta: { - name: 'build-module', - usage: 'npx nuxi build-module [--stub] [rootDir]', - description: `Helper command for using ${MODULE_BUILDER_PKG}` - }, - async invoke (args) { - // Find local installed version - const rootDir = resolve(args._[0] || '.') - const hasLocal = await tryResolveModule(`${MODULE_BUILDER_PKG}/package.json`, rootDir) - - const execArgs = Object.entries({ - '--stub': args.stub, - '--prepare': args.prepare - }).filter(([, value]) => value).map(([key]) => key) - - let cmd = 'nuxt-module-build' - if (!hasLocal) { - consola.warn(`Cannot find locally installed version of \`${MODULE_BUILDER_PKG}\` (>=0.2.0). Falling back to \`npx ${MODULE_BUILDER_PKG}\``) - cmd = 'npx' - execArgs.unshift(MODULE_BUILDER_PKG) - } - - await execa(cmd, execArgs, { preferLocal: true, stdio: 'inherit', cwd: rootDir }) - } -}) diff --git a/packages/nuxi/src/commands/build.ts b/packages/nuxi/src/commands/build.ts deleted file mode 100644 index c41f7e668c..0000000000 --- a/packages/nuxi/src/commands/build.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { relative, resolve } from 'pathe' -import { consola } from 'consola' -import type { Nitro } from 'nitropack' - -// we are deliberately inlining this code as a backup in case user has `@nuxt/schema<3.7` -import { writeTypes as writeTypesLegacy } from '../../../kit/src/template' -import { loadKit } from '../utils/kit' -import { clearBuildDir } from '../utils/fs' -import { overrideEnv } from '../utils/env' -import { showVersions } from '../utils/banner' -import { defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'build', - usage: 'npx nuxi build [--prerender] [--dotenv] [--log-level] [rootDir]', - description: 'Build nuxt for production deployment' - }, - async invoke (args, options = {}) { - overrideEnv('production') - - const rootDir = resolve(args._[0] || '.') - showVersions(rootDir) - - const { loadNuxt, buildNuxt, useNitro, writeTypes = writeTypesLegacy } = await loadKit(rootDir) - - const nuxt = await loadNuxt({ - rootDir, - dotenv: { - cwd: rootDir, - fileName: args.dotenv - }, - overrides: { - logLevel: args['log-level'], - // TODO: remove in 3.8 - _generate: args.prerender, - ...(args.prerender ? { nitro: { static: true } } : {}), - ...(options?.overrides || {}) - } - }) - - let nitro: Nitro | undefined - // In Bridge, if nitro is not enabled, useNitro will throw an error - try { - // Use ? for backward compatibility for Nuxt <= RC.10 - nitro = useNitro?.() - } catch {} - - await clearBuildDir(nuxt.options.buildDir) - - await writeTypes(nuxt) - - nuxt.hook('build:error', (err) => { - consola.error('Nuxt Build Error:', err) - process.exit(1) - }) - - await buildNuxt(nuxt) - - if (args.prerender) { - if (!nuxt.options.ssr) { - consola.warn('HTML content not prerendered because `ssr: false` was set. You can read more in `https://nuxt.com/docs/getting-started/deployment#static-hosting`.') - } - // TODO: revisit later if/when nuxt build --prerender will output hybrid - const dir = nitro?.options.output.publicDir - const publicDir = dir ? relative(process.cwd(), dir) : '.output/public' - consola.success(`You can now deploy \`${publicDir}\` to any static hosting!`) - } - } -}) diff --git a/packages/nuxi/src/commands/cleanup.ts b/packages/nuxi/src/commands/cleanup.ts deleted file mode 100644 index 46a257aac3..0000000000 --- a/packages/nuxi/src/commands/cleanup.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { resolve } from 'pathe' -import { cleanupNuxtDirs } from '../utils/nuxt' -import { defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'cleanup', - usage: 'npx nuxi clean|cleanup', - description: 'Cleanup generated nuxt files and caches' - }, - async invoke (args) { - const rootDir = resolve(args._[0] || '.') - await cleanupNuxtDirs(rootDir) - } -}) diff --git a/packages/nuxi/src/commands/dev.ts b/packages/nuxi/src/commands/dev.ts deleted file mode 100644 index 2b73fc20b9..0000000000 --- a/packages/nuxi/src/commands/dev.ts +++ /dev/null @@ -1,190 +0,0 @@ -import type { AddressInfo } from 'node:net' -import type { RequestListener } from 'node:http' -import { relative, resolve } from 'pathe' -import chokidar from 'chokidar' -import { debounce } from 'perfect-debounce' -import type { Nuxt } from '@nuxt/schema' -import { consola } from 'consola' -import { withTrailingSlash } from 'ufo' -import { setupDotenv } from 'c12' - -// we are deliberately inlining this code as a backup in case user has `@nuxt/schema<3.7` -import { writeTypes as writeTypesLegacy } from '../../../kit/src/template' -import { showBanner, showVersions } from '../utils/banner' -import { loadKit } from '../utils/kit' -import { importModule } from '../utils/esm' -import { overrideEnv } from '../utils/env' -import { loadNuxtManifest, writeNuxtManifest } from '../utils/nuxt' -import { clearBuildDir } from '../utils/fs' -import { defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'dev', - usage: 'npx nuxi dev [rootDir] [--dotenv] [--log-level] [--clipboard] [--open, -o] [--port, -p] [--host, -h] [--https] [--ssl-cert] [--ssl-key]', - description: 'Run nuxt development server' - }, - async invoke (args, options = {}) { - overrideEnv('development') - - const rootDir = resolve(args._[0] || '.') - showVersions(rootDir) - - await setupDotenv({ cwd: rootDir, fileName: args.dotenv }) - - const { loadNuxt, loadNuxtConfig, buildNuxt, writeTypes = writeTypesLegacy } = await loadKit(rootDir) - - const config = await loadNuxtConfig({ - cwd: rootDir, - overrides: { - dev: true, - logLevel: args['log-level'], - ...(options.overrides || {}) - } - }) - - const { listen } = await import('listhen') - const { toNodeListener } = await import('h3') - let currentHandler: RequestListener | undefined - let loadingMessage = 'Nuxt is starting...' - const loadingHandler: RequestListener = async (_req, res) => { - const loadingTemplate = config.devServer.loadingTemplate ?? await importModule('@nuxt/ui-templates', config.modulesDir).then(r => r.loading) - res.setHeader('Content-Type', 'text/html; charset=UTF-8') - res.statusCode = 503 // Service Unavailable - res.end(loadingTemplate({ loading: loadingMessage })) - } - const serverHandler: RequestListener = (req, res) => { - return currentHandler ? currentHandler(req, res) : loadingHandler(req, res) - } - - const listener = await listen(serverHandler, { - showURL: false, - clipboard: args.clipboard, - open: args.open || args.o, - port: args.port || args.p || process.env.NUXT_PORT || process.env.NITRO_PORT || config.devServer.port, - hostname: args.host || args.h || process.env.NUXT_HOST || process.env.NITRO_HOST || config.devServer.host, - https: (args.https !== false && (args.https || config.devServer.https)) - ? { - cert: args['ssl-cert'] || process.env.NUXT_SSL_CERT || process.env.NITRO_SSL_CERT || (typeof config.devServer.https !== 'boolean' && config.devServer.https.cert) || undefined, - key: args['ssl-key'] || process.env.NUXT_SSL_KEY || process.env.NITRO_SSL_KEY || (typeof config.devServer.https !== 'boolean' && config.devServer.https.key) || undefined - } - : false - }) - - let currentNuxt: Nuxt - let distWatcher: chokidar.FSWatcher - - const showURL = () => { - listener.showURL({ - // TODO: Normalize URL with trailing slash within schema - baseURL: withTrailingSlash(currentNuxt?.options.app.baseURL) || '/' - }) - } - async function hardRestart (reason?: string) { - if (process.send) { - await listener.close().catch(() => {}) - await currentNuxt.close().catch(() => {}) - await watcher.close().catch(() => {}) - await distWatcher.close().catch(() => {}) - consola.info(`${reason ? reason + '. ' : ''}Restarting nuxt...`) - process.send({ type: 'nuxt:restart' }) - } else { - await load(true, reason) - } - } - const load = async (isRestart: boolean, reason?: string) => { - try { - loadingMessage = `${reason ? reason + '. ' : ''}${isRestart ? 'Restarting' : 'Starting'} nuxt...` - currentHandler = undefined - if (isRestart) { - consola.info(loadingMessage) - } - if (currentNuxt) { - await currentNuxt.close() - } - if (distWatcher) { - await distWatcher.close() - } - - currentNuxt = await loadNuxt({ - rootDir, - dev: true, - ready: false, - overrides: { - logLevel: args['log-level'], - vite: { - clearScreen: args.clear - }, - ...(options.overrides || {}) - } - }) - - if (!isRestart) { - showURL() - } - - // Write manifest and also check if we need cache invalidation - if (!isRestart) { - const previousManifest = await loadNuxtManifest(currentNuxt.options.buildDir) - const newManifest = await writeNuxtManifest(currentNuxt) - if (previousManifest && newManifest && previousManifest._hash !== newManifest._hash) { - await clearBuildDir(currentNuxt.options.buildDir) - } - } - - await currentNuxt.ready() - - const unsub = currentNuxt.hooks.hook('restart', async (options) => { - unsub() // we use this instead of `hookOnce` for Nuxt Bridge support - if (options?.hard) { return hardRestart() } - await load(true) - }) - - await currentNuxt.hooks.callHook('listen', listener.server, listener) - const address = (listener.server.address() || {}) as AddressInfo - currentNuxt.options.devServer.url = listener.url - currentNuxt.options.devServer.port = address.port - currentNuxt.options.devServer.host = address.address - currentNuxt.options.devServer.https = listener.https - - await Promise.all([ - writeTypes(currentNuxt).catch(console.error), - buildNuxt(currentNuxt) - ]) - - distWatcher = chokidar.watch(resolve(currentNuxt.options.buildDir, 'dist'), { ignoreInitial: true, depth: 0 }) - distWatcher.on('unlinkDir', () => { - dLoad(true, '.nuxt/dist directory has been removed') - }) - - currentHandler = toNodeListener(currentNuxt.server.app) - if (isRestart && args.clear !== false) { - showBanner() - showURL() - } - } catch (err) { - consola.error(`Cannot ${isRestart ? 'restart' : 'start'} nuxt: `, err) - currentHandler = undefined - loadingMessage = 'Error while loading nuxt. Please check console and fix errors.' - } - } - - // Watch for config changes - // TODO: Watcher service, modules, and requireTree - const dLoad = debounce(load) - const watcher = chokidar.watch([rootDir], { ignoreInitial: true, depth: 0 }) - watcher.on('all', (_event, _file) => { - const file = relative(rootDir, _file) - if (file === (args.dotenv || '.env')) { return hardRestart('.env updated') } - if (RESTART_RE.test(file)) { - dLoad(true, `${file} updated`) - } - }) - - await load(false) - - return 'wait' as const - } -}) - -const RESTART_RE = /^(nuxt\.config\.(js|ts|mjs|cjs)|\.nuxtignore|\.nuxtrc)$/ diff --git a/packages/nuxi/src/commands/devtools.ts b/packages/nuxi/src/commands/devtools.ts deleted file mode 100644 index 9b3e3998cd..0000000000 --- a/packages/nuxi/src/commands/devtools.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { resolve } from 'pathe' -import { execa } from 'execa' -import { showHelp } from '../utils/help' -import { defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'enable', - usage: 'npx nuxi devtools enable|disable [rootDir]', - description: 'Enable or disable features in a Nuxt project' - }, - async invoke (args) { - const [command, _rootDir = '.'] = args._ - const rootDir = resolve(_rootDir) - - if (!['enable', 'disable'].includes(command)) { - console.error(`Unknown command \`${command}\`.`) - showHelp(this.meta) - process.exit(1) - } - - await execa('npx', ['@nuxt/devtools-wizard@latest', command, rootDir], { stdio: 'inherit', cwd: rootDir }) - } -}) diff --git a/packages/nuxi/src/commands/generate.ts b/packages/nuxi/src/commands/generate.ts deleted file mode 100644 index 4cee6f840d..0000000000 --- a/packages/nuxi/src/commands/generate.ts +++ /dev/null @@ -1,14 +0,0 @@ -import buildCommand from './build' -import { defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'generate', - usage: 'npx nuxi generate [rootDir] [--dotenv]', - description: 'Build Nuxt and prerender static routes' - }, - async invoke (args, options = {}) { - args.prerender = true - await buildCommand.invoke(args, options) - } -}) diff --git a/packages/nuxi/src/commands/index.ts b/packages/nuxi/src/commands/index.ts deleted file mode 100644 index 36019a785c..0000000000 --- a/packages/nuxi/src/commands/index.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type { Argv } from 'mri' - -const _rDefault = (r: any) => r.default || r - -export const commands = { - dev: () => import('./dev').then(_rDefault), - build: () => import('./build').then(_rDefault), - 'build-module': () => import('./build-module').then(_rDefault), - cleanup: () => import('./cleanup').then(_rDefault), - clean: () => import('./cleanup').then(_rDefault), - preview: () => import('./preview').then(_rDefault), - start: () => import('./preview').then(_rDefault), - analyze: () => import('./analyze').then(_rDefault), - generate: () => import('./generate').then(_rDefault), - prepare: () => import('./prepare').then(_rDefault), - typecheck: () => import('./typecheck').then(_rDefault), - usage: () => import('./usage').then(_rDefault), - info: () => import('./info').then(_rDefault), - init: () => import('./init').then(_rDefault), - create: () => import('./init').then(_rDefault), - devtools: () => import('./devtools').then(_rDefault), - upgrade: () => import('./upgrade').then(_rDefault), - test: () => import('./test').then(_rDefault), - add: () => import('./add').then(_rDefault), - new: () => import('./add').then(_rDefault) -} - -export type Command = keyof typeof commands - -export interface NuxtCommandMeta { - name: string; - usage: string; - description: string; - [key: string]: any; -} - -export type CLIInvokeResult = void | 'error' | 'wait' - -export interface NuxtCommand { - invoke(args: Argv, options?: Record): Promise | CLIInvokeResult - meta: NuxtCommandMeta -} - -export function defineNuxtCommand (command: NuxtCommand): NuxtCommand { - return command -} diff --git a/packages/nuxi/src/commands/info.ts b/packages/nuxi/src/commands/info.ts deleted file mode 100644 index 0bae405f7f..0000000000 --- a/packages/nuxi/src/commands/info.ts +++ /dev/null @@ -1,161 +0,0 @@ -import os from 'node:os' -import { existsSync, readFileSync } from 'node:fs' -import { createRequire } from 'node:module' -import { resolve } from 'pathe' -import jiti from 'jiti' -import destr from 'destr' -import type { PackageJson } from 'pkg-types' -import { splitByCase } from 'scule' -import clipboardy from 'clipboardy' -import type { NuxtModule } from '@nuxt/schema' -import type { packageManagerLocks } from '../utils/packageManagers' -import { getPackageManager, getPackageManagerVersion } from '../utils/packageManagers' -import { findup } from '../utils/fs' -import { defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'info', - usage: 'npx nuxi info [rootDir]', - description: 'Get information about nuxt project' - }, - async invoke (args) { - // Resolve rootDir - const rootDir = resolve(args._[0] || '.') - - // Load nuxt.config - const nuxtConfig = getNuxtConfig(rootDir) - - // Find nearest package.json - const { dependencies = {}, devDependencies = {} } = findPackage(rootDir) - - // Utils to query a dependency version - const getDepVersion = (name: string) => getPkg(name, rootDir)?.version || dependencies[name] || devDependencies[name] - - const listModules = (arr = []) => arr - .map(m => normalizeConfigModule(m, rootDir)) - .filter(Boolean) - .map((name) => { - const npmName = name!.split('/').splice(0, 2).join('/') // @foo/bar/baz => @foo/bar - const v = getDepVersion(npmName) - return '`' + (v ? `${name}@${v}` : name) + '`' - }) - .join(', ') - - // Check nuxt version - const nuxtVersion = getDepVersion('nuxt') || getDepVersion('nuxt-edge') || getDepVersion('nuxt3') || '0.0.0' - const isNuxt3 = nuxtVersion.startsWith('3') - const builder = isNuxt3 - ? nuxtConfig.builder /* latest schema */ || (nuxtConfig.vite !== false ? 'vite' : 'webpack') /* previous schema */ - : nuxtConfig.bridge?.vite - ? 'vite' /* bridge vite implementation */ - : (nuxtConfig.buildModules?.includes('nuxt-vite') - ? 'vite' /* nuxt-vite */ - : 'webpack') - - let packageManager: keyof typeof packageManagerLocks | 'unknown' | null = getPackageManager(rootDir) - if (packageManager) { - packageManager += '@' + getPackageManagerVersion(packageManager) - } else { - packageManager = 'unknown' - } - - const infoObj = { - OperatingSystem: os.type(), - NodeVersion: process.version, - NuxtVersion: nuxtVersion, - NitroVersion: getDepVersion('nitropack'), - PackageManager: packageManager, - Builder: builder, - UserConfig: Object.keys(nuxtConfig).map(key => '`' + key + '`').join(', '), - RuntimeModules: listModules(nuxtConfig.modules), - BuildModules: listModules(nuxtConfig.buildModules || []) - } - - console.log('RootDir:', rootDir) - - let maxLength = 0 - const entries = Object.entries(infoObj).map(([key, val]) => { - const label = splitByCase(key).join(' ') - if (label.length > maxLength) { maxLength = label.length } - return [label, val || '-'] - }) - let infoStr = '' - for (const [label, value] of entries) { - infoStr += '- ' + (label + ': ').padEnd(maxLength + 2) + (value.includes('`') ? value : '`' + value + '`') + '\n' - } - - const copied = await clipboardy.write(infoStr).then(() => true).catch(() => false) - const splitter = '------------------------------' - console.log(`Nuxt project info: ${copied ? '(copied to clipboard)' : ''}\n\n${splitter}\n${infoStr}${splitter}\n`) - - const isNuxt3OrBridge = infoObj.NuxtVersion.startsWith('3') || infoObj.BuildModules.includes('bridge') - console.log([ - '👉 Report an issue: https://github.com/nuxt/nuxt/issues/new', - '👉 Suggest an improvement: https://github.com/nuxt/nuxt/discussions/new', - `👉 Read documentation: ${isNuxt3OrBridge ? 'https://nuxt.com' : 'https://v2.nuxt.com'}` - ].join('\n\n') + '\n') - } -}) - -function normalizeConfigModule (module: NuxtModule | string | null | undefined, rootDir: string): string | null { - if (!module) { - return null - } - if (typeof module === 'string') { - return module - .split(rootDir).pop()! // Strip rootDir - .split('node_modules').pop()! // Strip node_modules - .replace(/^\//, '') - } - if (typeof module === 'function') { - return `${module.name}()` - } - if (Array.isArray(module)) { - return normalizeConfigModule(module[0], rootDir) - } - return null -} - -function getNuxtConfig (rootDir: string) { - try { - (globalThis as any).defineNuxtConfig = (c: any) => c - const result = jiti(rootDir, { interopDefault: true, esmResolve: true })('./nuxt.config') - delete (globalThis as any).defineNuxtConfig - return result - } catch (err) { - // TODO: Show error as warning if it is not 404 - return {} - } -} - -function getPkg (name: string, rootDir: string) { - // Assume it is in {rootDir}/node_modules/${name}/package.json - let pkgPath = resolve(rootDir, 'node_modules', name, 'package.json') - - // Try to resolve for more accuracy - const _require = createRequire(rootDir) - try { pkgPath = _require.resolve(name + '/package.json') } catch (_err) { - // console.log('not found:', name) - } - - return readJSONSync(pkgPath) as PackageJson -} - -function findPackage (rootDir: string) { - return findup(rootDir, (dir) => { - const p = resolve(dir, 'package.json') - if (existsSync(p)) { - return readJSONSync(p) as PackageJson - } - }) || {} -} - -function readJSONSync (filePath: string) { - try { - return destr(readFileSync(filePath, 'utf-8')) - } catch (err) { - // TODO: Warn error - return null - } -} diff --git a/packages/nuxi/src/commands/init.ts b/packages/nuxi/src/commands/init.ts deleted file mode 100644 index 26cf9beaff..0000000000 --- a/packages/nuxi/src/commands/init.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { writeFile } from 'node:fs/promises' -import { downloadTemplate, startShell } from 'giget' -import { relative } from 'pathe' -import { consola } from 'consola' -import { defineNuxtCommand } from './index' - -const rpath = (p: string) => relative(process.cwd(), p) - -const DEFAULT_REGISTRY = 'https://raw.githubusercontent.com/nuxt/starter/templates/templates' - -export default defineNuxtCommand({ - meta: { - name: 'init', - usage: 'npx nuxi init|create [--template,-t] [--force] [--offline] [--prefer-offline] [--shell] [dir]', - description: 'Initialize a fresh project' - }, - async invoke (args) { - // Clone template - const template = args.template || args.t || 'v3' - - if (typeof template === 'boolean') { - consola.error('Please specify a template!') - process.exit(1) - } - - let t - - try { - t = await downloadTemplate(template, { - dir: args._[0] as string, - force: args.force, - offline: args.offline, - preferOffline: args['prefer-offline'], - registry: process.env.NUXI_INIT_REGISTRY || DEFAULT_REGISTRY - }) - } catch (err) { - if (process.env.DEBUG) { - throw err - } - consola.error((err as Error).toString()) - process.exit(1) - } - - // Show next steps - const relativeDist = rpath(t.dir) - - // Write .nuxtrc with `shamefully-hoist=true` for pnpm - const usingPnpm = (process.env.npm_config_user_agent || '').includes('pnpm') - if (usingPnpm) { - await writeFile(`${relativeDist}/.npmrc`, 'shamefully-hoist=true') - } - - const nextSteps = [ - !args.shell && relativeDist.length > 1 && `\`cd ${relativeDist}\``, - 'Install dependencies with `npm install` or `yarn install` or `pnpm install`', - 'Start development server with `npm run dev` or `yarn dev` or `pnpm run dev`' - ].filter(Boolean) - - consola.log(`✨ Nuxt project is created with \`${t.name}\` template. Next steps:`) - for (const step of nextSteps) { - consola.log(` › ${step}`) - } - - if (args.shell) { - startShell(t.dir) - } - } -}) diff --git a/packages/nuxi/src/commands/prepare.ts b/packages/nuxi/src/commands/prepare.ts deleted file mode 100644 index dfec71e16e..0000000000 --- a/packages/nuxi/src/commands/prepare.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { relative, resolve } from 'pathe' -import { consola } from 'consola' - -// we are deliberately inlining this code as a backup in case user has `@nuxt/schema<3.7` -import { writeTypes as writeTypesLegacy } from '../../../kit/src/template' -import { clearBuildDir } from '../utils/fs' -import { loadKit } from '../utils/kit' -import { defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'prepare', - usage: 'npx nuxi prepare [--log-level] [rootDir]', - description: 'Prepare nuxt for development/build' - }, - async invoke (args, options = {}) { - process.env.NODE_ENV = process.env.NODE_ENV || 'production' - const rootDir = resolve(args._[0] || '.') - - const { loadNuxt, buildNuxt, writeTypes = writeTypesLegacy } = await loadKit(rootDir) - const nuxt = await loadNuxt({ - rootDir, - overrides: { - _prepare: true, - logLevel: args['log-level'], - ...(options.overrides || {}) - } - }) - await clearBuildDir(nuxt.options.buildDir) - - await buildNuxt(nuxt) - await writeTypes(nuxt) - consola.success('Types generated in', relative(process.cwd(), nuxt.options.buildDir)) - } -}) diff --git a/packages/nuxi/src/commands/preview.ts b/packages/nuxi/src/commands/preview.ts deleted file mode 100644 index 06559b1215..0000000000 --- a/packages/nuxi/src/commands/preview.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { existsSync, promises as fsp } from 'node:fs' -import { dirname, relative } from 'node:path' -import { execa } from 'execa' -import { setupDotenv } from 'c12' -import { resolve } from 'pathe' -import { consola } from 'consola' -import { loadKit } from '../utils/kit' - -import { defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'preview', - usage: 'npx nuxi preview|start [--dotenv] [rootDir]', - description: 'Launches nitro server for local testing after `nuxi build`.' - }, - async invoke (args, options = {}) { - process.env.NODE_ENV = process.env.NODE_ENV || 'production' - const rootDir = resolve(args._[0] || '.') - const { loadNuxtConfig } = await loadKit(rootDir) - const config = await loadNuxtConfig({ cwd: rootDir, overrides: options?.overrides || {} }) - - const resolvedOutputDir = resolve(config.srcDir || rootDir, config.nitro.srcDir || 'server', config.nitro.output?.dir || '.output', 'nitro.json') - const defaultOutput = resolve(rootDir, '.output', 'nitro.json') // for backwards compatibility - - const nitroJSONPaths = [resolvedOutputDir, defaultOutput] - const nitroJSONPath = nitroJSONPaths.find(p => existsSync(p)) - if (!nitroJSONPath) { - consola.error('Cannot find `nitro.json`. Did you run `nuxi build` first? Search path:\n', nitroJSONPaths) - process.exit(1) - } - const outputPath = dirname(nitroJSONPath) - const nitroJSON = JSON.parse(await fsp.readFile(nitroJSONPath, 'utf-8')) - - consola.info('Node.js version:', process.versions.node) - consola.info('Preset:', nitroJSON.preset) - consola.info('Working dir:', relative(process.cwd(), outputPath)) - - if (!nitroJSON.commands.preview) { - consola.error('Preview is not supported for this build.') - process.exit(1) - } - - const envExists = args.dotenv ? existsSync(resolve(rootDir, args.dotenv)) : existsSync(rootDir) - if (envExists) { - consola.info('Loading `.env`. This will not be loaded when running the server in production.') - await setupDotenv({ cwd: rootDir, fileName: args.dotenv }) - } - - consola.info('Starting preview command:', nitroJSON.commands.preview) - const [command, ...commandArgs] = nitroJSON.commands.preview.split(' ') - consola.log('') - await execa(command, commandArgs, { stdio: 'inherit', cwd: outputPath }) - } -}) diff --git a/packages/nuxi/src/commands/test.ts b/packages/nuxi/src/commands/test.ts deleted file mode 100644 index 3a96b832d4..0000000000 --- a/packages/nuxi/src/commands/test.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { resolve } from 'pathe' -import { defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'test', - usage: 'npx nuxi test [--dev] [--watch] [rootDir]', - description: 'Run tests' - }, - async invoke (args, options = {}) { - process.env.NODE_ENV = process.env.NODE_ENV || 'test' - const rootDir = resolve(args._[0] || '.') - const { runTests } = await importTestUtils() - await runTests({ - rootDir, - dev: !!args.dev, - watch: !!args.watch, - ...(options || {}) - }) - - if (args.watch) { - return 'wait' as const - } - } -}) - -async function importTestUtils (): Promise { - let err - for (const pkg of ['@nuxt/test-utils-edge', '@nuxt/test-utils']) { - try { - const exports = await import(pkg) - // Detect old @nuxt/test-utils - if (!exports.runTests) { - throw new Error('Invalid version of `@nuxt/test-utils` is installed!') - } - return exports - } catch (_err) { - err = _err - } - } - console.error(err) - throw new Error('`@nuxt/test-utils-edge` seems missing. Run `npm i -D @nuxt/test-utils-edge` or `yarn add -D @nuxt/test-utils-edge` to install.') -} diff --git a/packages/nuxi/src/commands/typecheck.ts b/packages/nuxi/src/commands/typecheck.ts deleted file mode 100644 index ee5a28ab56..0000000000 --- a/packages/nuxi/src/commands/typecheck.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { execa } from 'execa' -import { resolve } from 'pathe' - -// we are deliberately inlining this code as a backup in case user has `@nuxt/schema<3.7` -import { writeTypes as writeTypesLegacy } from '../../../kit/src/template' -import { tryResolveModule } from '../utils/esm' -import { loadKit } from '../utils/kit' -import { defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'typecheck', - usage: 'npx nuxi typecheck [--log-level] [rootDir]', - description: 'Runs `vue-tsc` to check types throughout your app.' - }, - async invoke (args, options = {}) { - process.env.NODE_ENV = process.env.NODE_ENV || 'production' - const rootDir = resolve(args._[0] || '.') - - const { loadNuxt, buildNuxt, writeTypes = writeTypesLegacy } = await loadKit(rootDir) - const nuxt = await loadNuxt({ - rootDir, - overrides: { - _prepare: true, - logLevel: args['log-level'], - ...(options?.overrides || {}) - } - }) - - // Generate types and build nuxt instance - await writeTypes(nuxt) - await buildNuxt(nuxt) - await nuxt.close() - - // Prefer local install if possible - const hasLocalInstall = await tryResolveModule('typescript', rootDir) && await tryResolveModule('vue-tsc/package.json', rootDir) - if (hasLocalInstall) { - await execa('vue-tsc', ['--noEmit'], { preferLocal: true, stdio: 'inherit', cwd: rootDir }) - } else { - await execa('npx', '-p vue-tsc -p typescript vue-tsc --noEmit'.split(' '), { stdio: 'inherit', cwd: rootDir }) - } - } -}) diff --git a/packages/nuxi/src/commands/upgrade.ts b/packages/nuxi/src/commands/upgrade.ts deleted file mode 100644 index d229cbf3f4..0000000000 --- a/packages/nuxi/src/commands/upgrade.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { execSync } from 'node:child_process' -import { consola } from 'consola' -import { resolve } from 'pathe' -import { readPackageJSON } from 'pkg-types' -import { getPackageManager, packageManagerLocks } from '../utils/packageManagers' -import { rmRecursive, touchFile } from '../utils/fs' -import { cleanupNuxtDirs, nuxtVersionToGitIdentifier } from '../utils/nuxt' -import { defineNuxtCommand } from './index' - -async function getNuxtVersion (path: string): Promise { - try { - const pkg = await readPackageJSON('nuxt', { url: path }) - if (!pkg.version) { - consola.warn('Cannot find any installed nuxt versions in ', path) - } - return pkg.version || null - } catch { - return null - } -} - -export default defineNuxtCommand({ - meta: { - name: 'upgrade', - usage: 'npx nuxi upgrade [--force|-f]', - description: 'Upgrade nuxt' - }, - async invoke (args) { - const rootDir = resolve(args._[0] || '.') - - // Check package manager - const packageManager = getPackageManager(rootDir) - if (!packageManager) { - console.error('Cannot detect Package Manager in', rootDir) - process.exit(1) - } - const packageManagerVersion = execSync(`${packageManager} --version`).toString('utf8').trim() - consola.info('Package Manager:', packageManager, packageManagerVersion) - - // Check currently installed nuxt version - const currentVersion = await getNuxtVersion(rootDir) || '[unknown]' - consola.info('Current nuxt version:', currentVersion) - - // Force install - if (args.force || args.f) { - consola.info('Removing lock-file and node_modules...') - const pmLockFile = resolve(rootDir, packageManagerLocks[packageManager]) - await rmRecursive([pmLockFile, resolve(rootDir, 'node_modules')]) - await touchFile(pmLockFile) - } - - // Install latest version - consola.info('Installing latest Nuxt 3 release...') - execSync(`${packageManager} ${packageManager === 'yarn' ? 'add' : 'install'} -D nuxt`, { stdio: 'inherit', cwd: rootDir }) - - // Cleanup after upgrade - await cleanupNuxtDirs(rootDir) - - // Check installed nuxt version again - const upgradedVersion = await getNuxtVersion(rootDir) || '[unknown]' - consola.info('Upgraded nuxt version:', upgradedVersion) - - if (upgradedVersion === currentVersion) { - consola.success('You\'re already using the latest version of nuxt.') - } else { - consola.success('Successfully upgraded nuxt from', currentVersion, 'to', upgradedVersion) - const commitA = nuxtVersionToGitIdentifier(currentVersion) - const commitB = nuxtVersionToGitIdentifier(upgradedVersion) - if (commitA && commitB) { - consola.info('Changelog:', `https://github.com/nuxt/nuxt/compare/${commitA}...${commitB}`) - } - } - } -}) diff --git a/packages/nuxi/src/commands/usage.ts b/packages/nuxi/src/commands/usage.ts deleted file mode 100644 index 2aad941a18..0000000000 --- a/packages/nuxi/src/commands/usage.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { cyan } from 'colorette' -import { showHelp } from '../utils/help' -import { commands, defineNuxtCommand } from './index' - -export default defineNuxtCommand({ - meta: { - name: 'help', - usage: 'nuxt help', - description: 'Show help' - }, - invoke (_args) { - const sections: string[] = [] - - sections.push(`Usage: ${cyan(`npx nuxi ${Object.keys(commands).join('|')} [args]`)}`) - - console.log(sections.join('\n\n') + '\n') - - // Reuse the same wording as in `-h` commands - showHelp({}) - } -}) diff --git a/packages/nuxi/src/index.ts b/packages/nuxi/src/index.ts deleted file mode 100755 index b8492c1b01..0000000000 --- a/packages/nuxi/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './run' diff --git a/packages/nuxi/src/run.ts b/packages/nuxi/src/run.ts deleted file mode 100644 index 6640fe6b7d..0000000000 --- a/packages/nuxi/src/run.ts +++ /dev/null @@ -1,13 +0,0 @@ -import mri from 'mri' -import type { Command, NuxtCommand } from './commands' -import { commands } from './commands' - -export async function runCommand (command: string, argv = process.argv.slice(2), options: Record = {}) { - const args = mri(argv) - args.clear = false // used by dev - const cmd = await commands[command as Command]() as NuxtCommand - if (!cmd) { - throw new Error(`Invalid command ${command}`) - } - await cmd.invoke(args, options) -} diff --git a/packages/nuxi/src/utils/banner.ts b/packages/nuxi/src/utils/banner.ts deleted file mode 100644 index 3617a4c44d..0000000000 --- a/packages/nuxi/src/utils/banner.ts +++ /dev/null @@ -1,21 +0,0 @@ -import clear from 'clear' -import { bold, gray, green } from 'colorette' -import { version } from '../../package.json' -import { tryRequireModule } from './cjs' - -export function showBanner (_clear?: boolean) { - if (_clear) { clear() } - console.log(gray(`Nuxi ${(bold(version))}`)) -} - -export function showVersions (cwd: string) { - const getPkgVersion = (pkg: string) => { - return tryRequireModule(`${pkg}/package.json`, cwd)?.version || '' - } - const nuxtVersion = getPkgVersion('nuxt') || getPkgVersion('nuxt-edge') - const nitroVersion = getPkgVersion('nitropack') - console.log(gray( - green(`Nuxt ${bold(nuxtVersion)}`) + - (nitroVersion ? ` with Nitro ${(bold(nitroVersion))}` : '') - )) -} diff --git a/packages/nuxi/src/utils/cjs.ts b/packages/nuxi/src/utils/cjs.ts deleted file mode 100644 index 1f9c1125a0..0000000000 --- a/packages/nuxi/src/utils/cjs.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { createRequire } from 'node:module' -import { normalize } from 'pathe' - -function getModulePaths (paths?: string | string[]): string[] { - return ([] as Array) - .concat( - global.__NUXT_PREPATHS__, - paths, - process.cwd(), - global.__NUXT_PATHS__ - ) - .filter(Boolean) as string[] -} - -const _require = createRequire(process.cwd()) - -function resolveModule (id: string, paths?: string | string[]) { - return normalize(_require.resolve(id, { paths: getModulePaths(paths) })) -} - -function requireModule (id: string, paths?: string | string[]) { - return _require(resolveModule(id, paths)) -} - -export function tryRequireModule (id: string, paths?: string | string[]) { - try { return requireModule(id, paths) } catch { return null } -} diff --git a/packages/nuxi/src/utils/diff.ts b/packages/nuxi/src/utils/diff.ts deleted file mode 100644 index 748002fcf8..0000000000 --- a/packages/nuxi/src/utils/diff.ts +++ /dev/null @@ -1,31 +0,0 @@ -import flatten from 'flat' -import { detailedDiff } from 'deep-object-diff' -import { blue, cyan, green, red } from 'colorette' - -function normalizeDiff (diffObj: any, type: 'added' | 'deleted' | 'updated', ignore: string[]) { - return Object.entries(flatten(diffObj) as Record) - .map(([key, value]) => ({ key, value, type })) - .filter(item => !ignore.includes(item.key) && typeof item.value !== 'function') -} - -export function diff (a: any, b: any, ignore: string[]) { - const _diff: any = detailedDiff(a, b) - return [ - ...normalizeDiff(_diff.added, 'added', ignore), - ...normalizeDiff(_diff.deleted, 'deleted', ignore), - ...normalizeDiff(_diff.updated, 'updated', ignore) - ] -} - -const typeMap = { - added: green('added'), - deleted: red('deleted'), - updated: blue('updated') -} - -export function printDiff (diff: any) { - for (const item of diff) { - console.log(' ', typeMap[item.type as keyof typeof typeMap] || item.type, cyan(item.key), item.value ? `~> ${cyan(item.value)}` : '') - } - console.log() -} diff --git a/packages/nuxi/src/utils/engines.ts b/packages/nuxi/src/utils/engines.ts deleted file mode 100644 index 949db35831..0000000000 --- a/packages/nuxi/src/utils/engines.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { engines } from '../../package.json' - -export async function checkEngines () { - const satisfies = await import('semver/functions/satisfies.js') - .then(r => r.default || r as any as typeof import('semver/functions/satisfies.js')) // npm/node-semver#381 - const currentNode = process.versions.node - const nodeRange = engines.node - - if (!satisfies(currentNode, nodeRange)) { - console.warn(`Current version of Node.js (\`${currentNode}\`) is unsupported and might cause issues.\n Please upgrade to a compatible version (${nodeRange}).`) - } -} diff --git a/packages/nuxi/src/utils/env.ts b/packages/nuxi/src/utils/env.ts deleted file mode 100644 index 16816f09da..0000000000 --- a/packages/nuxi/src/utils/env.ts +++ /dev/null @@ -1,8 +0,0 @@ -export const overrideEnv = (targetEnv: string) => { - const currentEnv = process.env.NODE_ENV - if (currentEnv && currentEnv !== targetEnv) { - console.warn(`Changing \`NODE_ENV\` from \`${currentEnv}\` to \`${targetEnv}\`, to avoid unintended behavior.`) - } - - process.env.NODE_ENV = targetEnv -} diff --git a/packages/nuxi/src/utils/esm.ts b/packages/nuxi/src/utils/esm.ts deleted file mode 100644 index 38cc1f1fa7..0000000000 --- a/packages/nuxi/src/utils/esm.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { pathToFileURL } from 'node:url' -import { interopDefault, resolvePath } from 'mlly' - -export async function tryResolveModule (id: string, url = import.meta.url) { - try { - return await resolvePath(id, { url }) - } catch { } -} - -export async function importModule (id: string, url: string | string[] = import.meta.url) { - const resolvedPath = await resolvePath(id, { url }) - return import(pathToFileURL(resolvedPath).href).then(interopDefault) -} diff --git a/packages/nuxi/src/utils/fs.ts b/packages/nuxi/src/utils/fs.ts deleted file mode 100644 index 4ca49ff4a8..0000000000 --- a/packages/nuxi/src/utils/fs.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { existsSync, promises as fsp } from 'node:fs' -import { dirname, join } from 'pathe' -import { consola } from 'consola' - -export async function clearDir (path: string, exclude?: string[]) { - if (!exclude) { - await fsp.rm(path, { recursive: true, force: true }) - } else if (existsSync(path)) { - const files = await fsp.readdir(path) - await Promise.all(files.map(async (name) => { - if (!exclude.includes(name)) { - await fsp.rm(join(path, name), { recursive: true, force: true }) - } - })) - } - await fsp.mkdir(path, { recursive: true }) -} - -export function clearBuildDir (path: string) { - return clearDir(path, ['cache', 'analyze']) -} - -export async function rmRecursive (paths: string[]) { - await Promise.all(paths.filter(p => typeof p === 'string').map(async (path) => { - consola.debug('Removing recursive path', path) - await fsp.rm(path, { recursive: true, force: true }).catch(() => {}) - })) -} - -export async function touchFile (path: string) { - const time = new Date() - await fsp.utimes(path, time, time).catch(() => {}) -} - -export function findup (rootDir: string, fn: (dir: string) => T | undefined): T | null { - let dir = rootDir - while (dir !== dirname(dir)) { - const res = fn(dir) - if (res) { - return res - } - dir = dirname(dir) - } - return null -} diff --git a/packages/nuxi/src/utils/help.ts b/packages/nuxi/src/utils/help.ts deleted file mode 100644 index c55575cfbb..0000000000 --- a/packages/nuxi/src/utils/help.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { cyan, magenta } from 'colorette' -import type { NuxtCommandMeta } from '../commands' - -export function showHelp (meta?: Partial) { - const sections: string[] = [] - - if (meta) { - if (meta.usage) { - sections.push(magenta('> ') + 'Usage: ' + cyan(meta.usage)) - } - - if (meta.description) { - sections.push(magenta('⋮ ') + meta.description) - } - } - - sections.push(`Use ${cyan('npx nuxi [command] --help')} to see help for each command`) - - console.log(sections.join('\n\n') + '\n') -} diff --git a/packages/nuxi/src/utils/kit.ts b/packages/nuxi/src/utils/kit.ts deleted file mode 100644 index 9a6a8bff54..0000000000 --- a/packages/nuxi/src/utils/kit.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { importModule, tryResolveModule } from './esm' - -export const loadKit = async (rootDir: string): Promise => { - try { - // Without PNP (or if users have a local install of kit, we bypass resolving from nuxt) - const localKit = await tryResolveModule('@nuxt/kit', rootDir) - // Otherwise, we resolve Nuxt _first_ as it is Nuxt's kit dependency that will be used - const rootURL = localKit ? rootDir : await tryResolveNuxt() || rootDir - return await importModule('@nuxt/kit', rootURL) as typeof import('@nuxt/kit') - } catch (e: any) { - if (e.toString().includes("Cannot find module '@nuxt/kit'")) { - throw new Error('nuxi requires `@nuxt/kit` to be installed in your project. Try installing `nuxt` v3 or `@nuxt/bridge` first.') - } - throw e - } -} - -async function tryResolveNuxt () { - for (const pkg of ['nuxt3', 'nuxt', 'nuxt-edge']) { - const path = await tryResolveModule(pkg) - if (path) { return path } - } - return null -} diff --git a/packages/nuxi/src/utils/nuxt.ts b/packages/nuxi/src/utils/nuxt.ts deleted file mode 100644 index e990bcec86..0000000000 --- a/packages/nuxi/src/utils/nuxt.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { promises as fsp } from 'node:fs' -import { dirname, resolve } from 'pathe' -import { consola } from 'consola' -import { hash } from 'ohash' -import type { Nuxt } from '@nuxt/schema' -import { rmRecursive } from './fs' - -interface NuxtProjectManifest { - _hash: string | null - project: { - rootDir: string - }, - versions: { - nuxt: string - } -} - -export async function cleanupNuxtDirs (rootDir: string) { - consola.info('Cleaning up generated nuxt files and caches...') - - await rmRecursive([ - '.nuxt', - '.output', - 'dist', - 'node_modules/.vite', - 'node_modules/.cache' - ].map(dir => resolve(rootDir, dir))) -} - -export function nuxtVersionToGitIdentifier (version: string) { - // match the git identifier in the release, for example: 3.0.0-rc.8-27677607.a3a8706 - const id = /\.([0-9a-f]{7,8})$/.exec(version) - if (id?.[1]) { - return id[1] - } - // match github tag, for example 3.0.0-rc.8 - return `v${version}` -} - -function resolveNuxtManifest (nuxt: Nuxt): NuxtProjectManifest { - const manifest: NuxtProjectManifest = { - _hash: null, - project: { - rootDir: nuxt.options.rootDir - }, - versions: { - nuxt: nuxt._version - } - } - manifest._hash = hash(manifest) - return manifest -} - -export async function writeNuxtManifest (nuxt: Nuxt): Promise { - const manifest = resolveNuxtManifest(nuxt) - const manifestPath = resolve(nuxt.options.buildDir, 'nuxt.json') - await fsp.mkdir(dirname(manifestPath), { recursive: true }) - await fsp.writeFile(manifestPath, JSON.stringify(manifest, null, 2), 'utf-8') - return manifest -} - -export async function loadNuxtManifest (buildDir: string): Promise { - const manifestPath = resolve(buildDir, 'nuxt.json') - const manifest: NuxtProjectManifest | null = await fsp.readFile(manifestPath, 'utf-8') - .then(data => JSON.parse(data) as NuxtProjectManifest) - .catch(() => null) - return manifest -} diff --git a/packages/nuxi/src/utils/packageManagers.ts b/packages/nuxi/src/utils/packageManagers.ts deleted file mode 100644 index 8717b869d1..0000000000 --- a/packages/nuxi/src/utils/packageManagers.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { execSync } from 'node:child_process' -import { existsSync } from 'node:fs' -import { resolve } from 'pathe' -import { findup } from './fs' - -export const packageManagerLocks = { - yarn: 'yarn.lock', - npm: 'package-lock.json', - pnpm: 'pnpm-lock.yaml', - bun: 'bun.lockb' -} - -type PackageManager = keyof typeof packageManagerLocks - -export function getPackageManager (rootDir: string) { - return findup(rootDir, (dir) => { - for (const name in packageManagerLocks) { - const path = packageManagerLocks[name as PackageManager] - if (path && existsSync(resolve(dir, path))) { - return name - } - } - }) as PackageManager | null -} - -export function getPackageManagerVersion (name: string) { - return execSync(`${name} --version`).toString('utf8').trim() -} diff --git a/packages/nuxi/src/utils/templates.ts b/packages/nuxi/src/utils/templates.ts deleted file mode 100644 index 11c89820e7..0000000000 --- a/packages/nuxi/src/utils/templates.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { upperFirst } from 'scule' - -interface TemplateOptions { - name: string, - args: Record -} - -interface Template { - (options: TemplateOptions): { path: string, contents: string } -} - -const httpMethods = ['connect', 'delete', 'get', 'head', 'options', 'post', 'put', 'trace', 'patch'] -const api: Template = ({ name, args }) => ({ - path: `server/api/${name}${applySuffix(args, httpMethods, 'method')}.ts`, - contents: ` -export default defineEventHandler((event) => { - return 'Hello ${name}' -}) -` -}) - -const plugin: Template = ({ name, args }) => ({ - path: `plugins/${name}${applySuffix(args, ['client', 'server'], 'mode')}.ts`, - contents: ` -export default defineNuxtPlugin((nuxtApp) => {}) - ` -}) - -const component: Template = ({ name, args }) => ({ - path: `components/${name}${applySuffix(args, ['client', 'server'], 'mode')}.vue`, - contents: ` - - - - - -` -}) - -const composable: Template = ({ name }) => { - const nameWithUsePrefix = name.startsWith('use') ? name : `use${upperFirst(name)}` - return { - path: `composables/${name}.ts`, - contents: ` -export const ${nameWithUsePrefix} = () => { - return ref() -} - ` - } -} - -const middleware: Template = ({ name, args }) => ({ - path: `middleware/${name}${applySuffix(args, ['global'])}.ts`, - contents: ` -export default defineNuxtRouteMiddleware((to, from) => {}) -` -}) - -const layout: Template = ({ name }) => ({ - path: `layouts/${name}.vue`, - contents: ` - - - - - -` -}) - -const page: Template = ({ name }) => ({ - path: `pages/${name}.vue`, - contents: ` - - - - - -` -}) - -export const templates = { - api, - plugin, - component, - composable, - middleware, - layout, - page -} as Record - -// -- internal utils -- - -function applySuffix (args: TemplateOptions['args'], suffixes: string[], unwrapFrom?: string): string { - let suffix = '' - // --client - for (const s of suffixes) { - if (args[s]) { - suffix += '.' + s - } - } - // --mode=server - if (unwrapFrom && args[unwrapFrom] && suffixes.includes(args[unwrapFrom])) { - suffix += '.' + args[unwrapFrom] - } - return suffix -} diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index d09b63cf8d..3edd31a440 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -82,7 +82,7 @@ "magic-string": "^0.30.3", "mlly": "^1.4.0", "nitropack": "^2.6.0", - "nuxi": "workspace:../nuxi", + "nuxi": "npm:nuxi-ng@0.3.0-1692970235.c259efa", "nypm": "^0.3.1", "ofetch": "^1.3.3", "ohash": "^1.1.3", diff --git a/packages/test-utils/src/server.ts b/packages/test-utils/src/server.ts index 01e51cd946..aed891f633 100644 --- a/packages/test-utils/src/server.ts +++ b/packages/test-utils/src/server.ts @@ -17,11 +17,12 @@ export async function startServer () { ctx.url = 'http://127.0.0.1:' + port if (ctx.options.dev) { const nuxiCLI = await kit.resolvePath('nuxi/cli') - ctx.serverProcess = execa(nuxiCLI, ['dev'], { + ctx.serverProcess = execa(nuxiCLI, ['_dev'], { cwd: ctx.nuxt!.options.rootDir, stdio: 'inherit', env: { ...process.env, + _PORT: String(port), PORT: String(port), NITRO_PORT: String(port), NODE_ENV: 'development' @@ -29,7 +30,7 @@ export async function startServer () { }) await waitForPort(port, { retries: 32 }) let lastError - for (let i = 0; i < 50; i++) { + for (let i = 0; i < 150; i++) { await new Promise(resolve => setTimeout(resolve, 100)) try { const res = await $fetch(ctx.nuxt!.options.app.baseURL) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 872722a2e9..e57430b2c9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,6 @@ overrides: '@nuxt/test-utils': workspace:* '@nuxt/vite-builder': workspace:* '@nuxt/webpack-builder': workspace:* - nuxi: workspace:* nuxt: workspace:* vite: 4.4.9 vue: 3.3.4 @@ -96,8 +95,8 @@ importers: specifier: 2.6.0 version: 2.6.0 nuxi: - specifier: workspace:* - version: link:packages/nuxi + specifier: npm:nuxi-ng@0.3.0-1692970235.c259efa + version: /nuxi-ng@0.3.0-1692970235.c259efa nuxt: specifier: workspace:* version: link:packages/nuxt @@ -241,109 +240,6 @@ importers: specifier: 5.88.2 version: 5.88.2 - packages/nuxi: - optionalDependencies: - fsevents: - specifier: ~2.3.3 - version: 2.3.3 - devDependencies: - '@nuxt/kit': - specifier: workspace:* - version: link:../kit - '@nuxt/schema': - specifier: workspace:* - version: link:../schema - '@types/clear': - specifier: 0.1.2 - version: 0.1.2 - '@types/flat': - specifier: 5.0.2 - version: 5.0.2 - '@types/mri': - specifier: 1.1.1 - version: 1.1.1 - '@types/semver': - specifier: 7.5.0 - version: 7.5.0 - c12: - specifier: 1.4.2 - version: 1.4.2 - chokidar: - specifier: 3.5.3 - version: 3.5.3 - clear: - specifier: 0.1.0 - version: 0.1.0 - clipboardy: - specifier: 3.0.0 - version: 3.0.0 - colorette: - specifier: 2.0.20 - version: 2.0.20 - consola: - specifier: 3.2.3 - version: 3.2.3 - deep-object-diff: - specifier: 1.1.9 - version: 1.1.9 - defu: - specifier: 6.1.2 - version: 6.1.2 - destr: - specifier: 2.0.1 - version: 2.0.1 - execa: - specifier: 7.2.0 - version: 7.2.0 - flat: - specifier: 5.0.2 - version: 5.0.2 - giget: - specifier: 1.1.2 - version: 1.1.2 - h3: - specifier: 1.8.0 - version: 1.8.0 - jiti: - specifier: 1.19.3 - version: 1.19.3 - listhen: - specifier: 1.4.0 - version: 1.4.0 - mlly: - specifier: 1.4.0 - version: 1.4.0 - mri: - specifier: 1.2.0 - version: 1.2.0 - nitropack: - specifier: 2.6.0 - version: 2.6.0 - ohash: - specifier: 1.1.3 - version: 1.1.3 - pathe: - specifier: 1.1.1 - version: 1.1.1 - perfect-debounce: - specifier: 1.0.0 - version: 1.0.0 - pkg-types: - specifier: 1.0.3 - version: 1.0.3 - scule: - specifier: 1.0.0 - version: 1.0.0 - semver: - specifier: 7.5.4 - version: 7.5.4 - ufo: - specifier: 1.3.0 - version: 1.3.0 - unbuild: - specifier: latest - version: 2.0.0(typescript@5.2.2) - packages/nuxt: dependencies: '@nuxt/devalue': @@ -440,8 +336,8 @@ importers: specifier: ^2.6.0 version: 2.6.0 nuxi: - specifier: workspace:* - version: link:../nuxi + specifier: npm:nuxi-ng@0.3.0-1692970235.c259efa + version: /nuxi-ng@0.3.0-1692970235.c259efa nypm: specifier: ^0.3.1 version: 0.3.1 @@ -2630,6 +2526,7 @@ packages: dependencies: is-glob: 4.0.3 micromatch: 4.0.5 + napi-wasm: 1.1.0 bundledDependencies: - napi-wasm @@ -2921,10 +2818,6 @@ packages: '@types/webpack': 4.41.33 dev: true - /@types/flat@5.0.2: - resolution: {integrity: sha512-3zsplnP2djeps5P9OyarTxwRpMLoe5Ash8aL9iprw0JxB+FAHjY+ifn4yZUuW4/9hqtnmor6uvjSRzJhiVbrEQ==} - dev: true - /@types/fs-extra@11.0.1: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: @@ -2995,10 +2888,6 @@ packages: '@types/unist': 2.0.7 dev: true - /@types/mri@1.1.1: - resolution: {integrity: sha512-nJOuiTlsvmClSr3+a/trTSx4DTuY/VURsWGKSf/eeavh0LRMqdsK60ti0TlwM5iHiGOK3/Ibkxsbr7i9rzGreA==} - dev: true - /@types/ms@0.7.31: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true @@ -4573,6 +4462,7 @@ packages: /clear@0.1.0: resolution: {integrity: sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==} + dev: false /clipboardy@3.0.0: resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==} @@ -4992,10 +4882,6 @@ packages: /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - /deep-object-diff@1.1.9: - resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==} - dev: true - /deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} @@ -8062,6 +7948,9 @@ packages: engines: {node: ^14 || ^16 || >=18} hasBin: true + /napi-wasm@1.1.0: + resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} + /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true @@ -8274,6 +8163,13 @@ packages: dependencies: boolbase: 1.0.0 + /nuxi-ng@0.3.0-1692970235.c259efa: + resolution: {integrity: sha512-/yp+V+Vpype1fau39yktrkFu2UZ2jo5bSdvDB8lI3LEdYT7sF9zg+6HqP+0OAV4Vnmst6ATxwY+pZiK+ds5mig==} + engines: {node: ^14.18.0 || >=16.10.0} + hasBin: true + optionalDependencies: + fsevents: 2.3.3 + /nuxt-component-meta@0.5.3: resolution: {integrity: sha512-+MHUrESdr+Si9PdbkxQrzQv+X6RdRd/ffmFWVVsZAHA7X9vGoNAYxwvoB1Pbs15TaPtFBWA1P5a4VGqtp+bhAg==} dependencies: From df2bc8a72e444bf90e906e2efad5d53d1a4bdb29 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 25 Aug 2023 16:39:27 +0100 Subject: [PATCH 726/912] build: skip releasing `nuxi` --- scripts/release-edge.sh | 3 +++ scripts/release-rc.sh | 3 +++ scripts/release.sh | 3 +++ 3 files changed, 9 insertions(+) diff --git a/scripts/release-edge.sh b/scripts/release-edge.sh index a419169524..88bdde3218 100755 --- a/scripts/release-edge.sh +++ b/scripts/release-edge.sh @@ -20,6 +20,9 @@ fi # Release packages for p in packages/* ; do + if [[ $p == "packages/nuxi" ]] ; then + continue + fi pushd $p echo "Publishing $p" cp ../../LICENSE . diff --git a/scripts/release-rc.sh b/scripts/release-rc.sh index d362b2a4b1..3fefacc757 100755 --- a/scripts/release-rc.sh +++ b/scripts/release-rc.sh @@ -10,6 +10,9 @@ pnpm build # Release packages for PKG in packages/* ; do + if [[ $p == "packages/nuxi" ]] ; then + continue + fi pushd $PKG TAG="latest" if [ "$PKG" == "packages/nuxt" ]; then diff --git a/scripts/release.sh b/scripts/release.sh index 47e082fe5e..eefc2c9178 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -10,6 +10,9 @@ pnpm build # Release packages for PKG in packages/* ; do + if [[ $p == "packages/nuxi" ]] ; then + continue + fi pushd $PKG TAG="latest" echo "⚡ Publishing $PKG with tag $TAG" From 0094b569c713f3cfc9b49b07e1af5733dc45da99 Mon Sep 17 00:00:00 2001 From: pooya parsa Date: Fri, 25 Aug 2023 18:19:22 +0200 Subject: [PATCH 727/912] feat(schema): export `./schema/config.schema.json` subpath (#22813) --- packages/schema/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/schema/package.json b/packages/schema/package.json index ef7d5d3955..8dab752194 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -16,6 +16,7 @@ "types": "./dist/builder-env.d.ts", "import": "./dist/builder-env.mjs" }, + "./schema/config.schema.json": "./schema/config.schema.json", "./package.json": "./package.json" }, "files": [ From 536a4aa24927d3087e338f87403434b0fa39498e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 25 Aug 2023 23:16:43 +0100 Subject: [PATCH 728/912] chore: update `nuxi` to v3.7.0 --- package.json | 2 +- packages/nuxt/package.json | 2 +- pnpm-lock.yaml | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 1b1f2101f0..1cc211f14a 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "jiti": "1.19.3", "markdownlint-cli": "^0.33.0", "nitropack": "2.6.0", - "nuxi": "npm:nuxi-ng@0.3.0-1692970235.c259efa", + "nuxi": "3.7.0", "nuxt": "workspace:*", "nuxt-vitest": "0.10.2", "ofetch": "1.3.3", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 3edd31a440..8aac6f5597 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -82,7 +82,7 @@ "magic-string": "^0.30.3", "mlly": "^1.4.0", "nitropack": "^2.6.0", - "nuxi": "npm:nuxi-ng@0.3.0-1692970235.c259efa", + "nuxi": "^3.7.0", "nypm": "^0.3.1", "ofetch": "^1.3.3", "ohash": "^1.1.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e57430b2c9..36aa01e909 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,8 +95,8 @@ importers: specifier: 2.6.0 version: 2.6.0 nuxi: - specifier: npm:nuxi-ng@0.3.0-1692970235.c259efa - version: /nuxi-ng@0.3.0-1692970235.c259efa + specifier: 3.7.0 + version: 3.7.0 nuxt: specifier: workspace:* version: link:packages/nuxt @@ -336,8 +336,8 @@ importers: specifier: ^2.6.0 version: 2.6.0 nuxi: - specifier: npm:nuxi-ng@0.3.0-1692970235.c259efa - version: /nuxi-ng@0.3.0-1692970235.c259efa + specifier: ^3.7.0 + version: 3.7.0 nypm: specifier: ^0.3.1 version: 0.3.1 @@ -8163,8 +8163,8 @@ packages: dependencies: boolbase: 1.0.0 - /nuxi-ng@0.3.0-1692970235.c259efa: - resolution: {integrity: sha512-/yp+V+Vpype1fau39yktrkFu2UZ2jo5bSdvDB8lI3LEdYT7sF9zg+6HqP+0OAV4Vnmst6ATxwY+pZiK+ds5mig==} + /nuxi@3.7.0: + resolution: {integrity: sha512-FZEwNCGeEdE+CyKCoThZm+Lv+u4TnbClTyYvvby3a2joK5t8nc7upNiZ7hsd+xoOeNuZW7CZHsQp9szJm2ev9Q==} engines: {node: ^14.18.0 || >=16.10.0} hasBin: true optionalDependencies: From bf843636b9ad87eb139c201159bd211368dde234 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 25 Aug 2023 23:46:13 +0100 Subject: [PATCH 729/912] chore(deps): update all non-major dependencies (main) (#22819) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- package.json | 4 +- packages/kit/package.json | 4 +- packages/nuxt/package.json | 4 +- packages/schema/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 272 +++++++++++++++++----------------- 7 files changed, 143 insertions(+), 147 deletions(-) diff --git a/package.json b/package.json index 1cc211f14a..0b210ee960 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "cheerio": "1.0.0-rc.12", "consola": "3.2.3", "devalue": "4.3.2", - "eslint": "8.47.0", + "eslint": "8.48.0", "eslint-plugin-import": "2.28.1", "eslint-plugin-jsdoc": "41.1.2", "eslint-plugin-no-only-tests": "3.1.0", @@ -63,7 +63,7 @@ "happy-dom": "10.11.0", "jiti": "1.19.3", "markdownlint-cli": "^0.33.0", - "nitropack": "2.6.0", + "nitropack": "2.6.1", "nuxi": "3.7.0", "nuxt": "workspace:*", "nuxt-vitest": "0.10.2", diff --git a/packages/kit/package.json b/packages/kit/package.json index 41bcaf5137..4105a26e0d 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -29,7 +29,7 @@ "ignore": "^5.2.4", "jiti": "^1.19.3", "knitwork": "^1.0.0", - "mlly": "^1.4.0", + "mlly": "^1.4.1", "pathe": "^1.1.1", "pkg-types": "^1.0.3", "scule": "^1.0.0", @@ -44,7 +44,7 @@ "@types/lodash-es": "4.17.8", "@types/semver": "7.5.0", "lodash-es": "4.17.21", - "nitropack": "2.6.0", + "nitropack": "2.6.1", "unbuild": "latest", "vite": "4.4.9", "vitest": "0.33.0", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 8aac6f5597..114f08d08a 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -80,8 +80,8 @@ "klona": "^2.0.6", "knitwork": "^1.0.0", "magic-string": "^0.30.3", - "mlly": "^1.4.0", - "nitropack": "^2.6.0", + "mlly": "^1.4.1", + "nitropack": "^2.6.1", "nuxi": "^3.7.0", "nypm": "^0.3.1", "ofetch": "^1.3.3", diff --git a/packages/schema/package.json b/packages/schema/package.json index 8dab752194..c7119fa0c3 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -39,7 +39,7 @@ "esbuild-loader": "4.0.1", "h3": "1.8.0", "ignore": "5.2.4", - "nitropack": "2.6.0", + "nitropack": "2.6.1", "unbuild": "latest", "unctx": "2.3.1", "vite": "4.4.9", diff --git a/packages/vite/package.json b/packages/vite/package.json index de42a2e9c4..fd5dceebf3 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -44,7 +44,7 @@ "h3": "^1.8.0", "knitwork": "^1.0.0", "magic-string": "^0.30.3", - "mlly": "^1.4.0", + "mlly": "^1.4.1", "ohash": "^1.1.3", "pathe": "^1.1.1", "perfect-debounce": "^1.0.0", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 538f452a7b..d70db33cef 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -38,7 +38,7 @@ "magic-string": "^0.30.3", "memfs": "^4.2.1", "mini-css-extract-plugin": "^2.7.6", - "mlly": "^1.4.0", + "mlly": "^1.4.1", "ohash": "^1.1.3", "pathe": "^1.1.1", "pify": "^6.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 36aa01e909..75c019dfaa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,7 +30,7 @@ importers: version: link:packages/webpack '@nuxtjs/eslint-config-typescript': specifier: 12.0.0 - version: 12.0.0(eslint@8.47.0)(typescript@5.2.2) + version: 12.0.0(eslint@8.48.0)(typescript@5.2.2) '@types/fs-extra': specifier: 11.0.1 version: 11.0.1 @@ -59,14 +59,14 @@ importers: specifier: 4.3.2 version: 4.3.2 eslint: - specifier: 8.47.0 - version: 8.47.0 + specifier: 8.48.0 + version: 8.48.0 eslint-plugin-import: specifier: 2.28.1 - version: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) + version: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) eslint-plugin-jsdoc: specifier: 41.1.2 - version: 41.1.2(eslint@8.47.0) + version: 41.1.2(eslint@8.48.0) eslint-plugin-no-only-tests: specifier: 3.1.0 version: 3.1.0 @@ -92,8 +92,8 @@ importers: specifier: ^0.33.0 version: 0.33.0 nitropack: - specifier: 2.6.0 - version: 2.6.0 + specifier: 2.6.1 + version: 2.6.1 nuxi: specifier: 3.7.0 version: 3.7.0 @@ -141,7 +141,7 @@ importers: version: 3.3.4 vue-eslint-parser: specifier: 9.3.1 - version: 9.3.1(eslint@8.47.0) + version: 9.3.1(eslint@8.48.0) vue-router: specifier: 4.2.4 version: 4.2.4(vue@3.3.4) @@ -185,8 +185,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 mlly: - specifier: ^1.4.0 - version: 1.4.0 + specifier: ^1.4.1 + version: 1.4.1 pathe: specifier: ^1.1.1 version: 1.1.1 @@ -225,8 +225,8 @@ importers: specifier: 4.17.21 version: 4.17.21 nitropack: - specifier: 2.6.0 - version: 2.6.0 + specifier: 2.6.1 + version: 2.6.1 unbuild: specifier: latest version: 2.0.0(typescript@5.2.2) @@ -330,11 +330,11 @@ importers: specifier: ^0.30.3 version: 0.30.3 mlly: - specifier: ^1.4.0 - version: 1.4.0 + specifier: ^1.4.1 + version: 1.4.1 nitropack: - specifier: ^2.6.0 - version: 2.6.0 + specifier: ^2.6.1 + version: 2.6.1 nuxi: specifier: ^3.7.0 version: 3.7.0 @@ -500,8 +500,8 @@ importers: specifier: 5.2.4 version: 5.2.4 nitropack: - specifier: 2.6.0 - version: 2.6.0 + specifier: 2.6.1 + version: 2.6.1 unbuild: specifier: latest version: 2.0.0(typescript@5.2.2) @@ -633,8 +633,8 @@ importers: specifier: ^0.30.3 version: 0.30.3 mlly: - specifier: ^1.4.0 - version: 1.4.0 + specifier: ^1.4.1 + version: 1.4.1 ohash: specifier: ^1.1.3 version: 1.1.3 @@ -679,7 +679,7 @@ importers: version: 0.33.0(@types/node@18.17.11) vite-plugin-checker: specifier: ^0.6.2 - version: 0.6.2(eslint@8.47.0)(typescript@5.2.2)(vite@4.4.9)(vue-tsc@1.8.8) + version: 0.6.2(eslint@8.48.0)(typescript@5.2.2)(vite@4.4.9)(vue-tsc@1.8.8) vue-bundle-renderer: specifier: ^2.0.0 version: 2.0.0 @@ -763,8 +763,8 @@ importers: specifier: ^2.7.6 version: 2.7.6(webpack@5.88.2) mlly: - specifier: ^1.4.0 - version: 1.4.0 + specifier: ^1.4.1 + version: 1.4.1 ohash: specifier: ^1.1.3 version: 1.1.3 @@ -1922,13 +1922,13 @@ packages: requiresBuild: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.47.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.48.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.47.0 + eslint: 8.48.0 eslint-visitor-keys: 3.4.3 /@eslint-community/regexpp@4.6.2: @@ -1951,8 +1951,8 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/js@8.47.0: - resolution: {integrity: sha512-P6omY1zv5MItm93kLM8s2vr1HICJH8v0dvddDhysbIuZ+vcjOHg5Zbkf1mTkcmi2JA9oBG2anOkRnW8WJTS8Og==} + /@eslint/js@8.48.0: + resolution: {integrity: sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} /@humanwhocodes/config-array@0.11.10: @@ -2158,19 +2158,19 @@ packages: - encoding - supports-color - /@netlify/functions@2.0.1: - resolution: {integrity: sha512-YrgCmz078II0LKknXKj5NbtGBuzek1JC+ZYi4xHcLhZD+HIGlerlmkhnVydWVPoA7fdd2IeSUd9CFFL7bY+y5Q==} + /@netlify/functions@2.0.2: + resolution: {integrity: sha512-goWRtaIPUK/q47qLYtfGGj7HgJIRaT0snw7zZ0yeoNTfQfCRwQwvRrMAsXkCsCtq2N2Oo81L26SpkMxEQMk9hg==} engines: {node: '>=14.0.0'} dependencies: - '@netlify/serverless-functions-api': 1.7.1 + '@netlify/serverless-functions-api': 1.7.3 is-promise: 4.0.0 /@netlify/node-cookies@0.1.0: resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} engines: {node: ^14.16.0 || >=16.0.0} - /@netlify/serverless-functions-api@1.7.1: - resolution: {integrity: sha512-vF9g62n+BFfBXtWtmVBJ5debyMERVDtuLlMlKDPYBp6QjEuJnaggxczLlRofZ2mtsBXs7mAlna6gIcBswFLJJQ==} + /@netlify/serverless-functions-api@1.7.3: + resolution: {integrity: sha512-n6/7cJlSWvvbBlUOEAbkGyEld80S6KbG/ldQI9OhLfe1lTatgKmrTNIgqVNpaWpUdTgP2OHWFjmFBzkxxBWs5w==} engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@netlify/node-cookies': 0.1.0 @@ -2404,18 +2404,18 @@ packages: pathe: 1.1.1 dev: true - /@nuxtjs/eslint-config-typescript@12.0.0(eslint@8.47.0)(typescript@5.2.2): + /@nuxtjs/eslint-config-typescript@12.0.0(eslint@8.48.0)(typescript@5.2.2): resolution: {integrity: sha512-HJR0ho5MYuOCFjkL+eMX/VXbUwy36J12DUMVy+dj3Qz1GYHwX92Saxap3urFzr8oPkzzFiuOknDivfCeRBWakg==} peerDependencies: eslint: ^8.23.0 dependencies: - '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.2.2) - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.2.2) - eslint: 8.47.0 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.47.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) - eslint-plugin-vue: 9.16.1(eslint@8.47.0) + '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@5.2.2) + eslint: 8.48.0 + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.48.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) + eslint-plugin-vue: 9.16.1(eslint@8.48.0) transitivePeerDependencies: - eslint-import-resolver-node - eslint-import-resolver-webpack @@ -2423,19 +2423,19 @@ packages: - typescript dev: true - /@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0): + /@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0): resolution: {integrity: sha512-ewenelo75x0eYEUK+9EBXjc/OopQCvdkmYmlZuoHq5kub/vtiRpyZ/autppwokpHUq8tiVyl2ejMakoiHiDTrg==} peerDependencies: eslint: ^8.23.0 dependencies: - eslint: 8.47.0 - eslint-config-standard: 17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.47.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) - eslint-plugin-n: 15.7.0(eslint@8.47.0) - eslint-plugin-node: 11.1.0(eslint@8.47.0) - eslint-plugin-promise: 6.1.1(eslint@8.47.0) - eslint-plugin-unicorn: 44.0.2(eslint@8.47.0) - eslint-plugin-vue: 9.16.1(eslint@8.47.0) + eslint: 8.48.0 + eslint-config-standard: 17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.48.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) + eslint-plugin-n: 15.7.0(eslint@8.48.0) + eslint-plugin-node: 11.1.0(eslint@8.48.0) + eslint-plugin-promise: 6.1.1(eslint@8.48.0) + eslint-plugin-unicorn: 44.0.2(eslint@8.48.0) + eslint-plugin-vue: 9.16.1(eslint@8.48.0) local-pkg: 0.4.3 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -2526,7 +2526,6 @@ packages: dependencies: is-glob: 4.0.3 micromatch: 4.0.5 - napi-wasm: 1.1.0 bundledDependencies: - napi-wasm @@ -3037,7 +3036,7 @@ packages: dependencies: '@types/yargs-parser': 21.0.0 - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.47.0)(typescript@5.2.2): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.48.0)(typescript@5.2.2): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3049,12 +3048,12 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.47.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.2.2) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.48.0)(typescript@5.2.2) debug: 4.3.4 - eslint: 8.47.0 + eslint: 8.48.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare-lite: 1.4.0 @@ -3065,7 +3064,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.47.0)(typescript@5.2.2): + /@typescript-eslint/parser@5.62.0(eslint@8.48.0)(typescript@5.2.2): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3079,7 +3078,7 @@ packages: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) debug: 4.3.4 - eslint: 8.47.0 + eslint: 8.48.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color @@ -3093,7 +3092,7 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.47.0)(typescript@5.2.2): + /@typescript-eslint/type-utils@5.62.0(eslint@8.48.0)(typescript@5.2.2): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -3104,9 +3103,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.47.0)(typescript@5.2.2) + '@typescript-eslint/utils': 5.62.0(eslint@8.48.0)(typescript@5.2.2) debug: 4.3.4 - eslint: 8.47.0 + eslint: 8.48.0 tsutils: 3.21.0(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: @@ -3139,19 +3138,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.47.0)(typescript@5.2.2): + /@typescript-eslint/utils@5.62.0(eslint@8.48.0)(typescript@5.2.2): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - eslint: 8.47.0 + eslint: 8.48.0 eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: @@ -4228,7 +4227,7 @@ packages: dotenv: 16.3.1 giget: 1.1.2 jiti: 1.19.3 - mlly: 1.4.0 + mlly: 1.4.1 ohash: 1.1.3 pathe: 1.1.1 perfect-debounce: 1.0.0 @@ -4448,8 +4447,8 @@ packages: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} - /citty@0.1.2: - resolution: {integrity: sha512-Me9nf0/BEmMOnuQzMOVXgpzkMUNbd0Am8lTl/13p0aRGAoLGk5T5sdet/42CrIGmWdG67BgHUhcKK1my1ujUEg==} + /citty@0.1.3: + resolution: {integrity: sha512-tb6zTEb2BDSrzFedqFYFUKUuKNaxVJWCm7o02K4kADGkBDyyiz7D40rDMpguczdZyAN3aetd5fhpB01HkreNyg==} dependencies: consola: 3.2.3 @@ -5345,7 +5344,7 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - /eslint-config-standard@17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.47.0): + /eslint-config-standard@17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.48.0): resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} engines: {node: '>=12.0.0'} peerDependencies: @@ -5354,10 +5353,10 @@ packages: eslint-plugin-n: '^15.0.0 || ^16.0.0 ' eslint-plugin-promise: ^6.0.0 dependencies: - eslint: 8.47.0 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) - eslint-plugin-n: 15.7.0(eslint@8.47.0) - eslint-plugin-promise: 6.1.1(eslint@8.47.0) + eslint: 8.48.0 + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) + eslint-plugin-n: 15.7.0(eslint@8.48.0) + eslint-plugin-promise: 6.1.1(eslint@8.48.0) dev: true /eslint-import-resolver-node@0.3.8: @@ -5370,7 +5369,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.47.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.48.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5379,9 +5378,9 @@ packages: dependencies: debug: 4.3.4 enhanced-resolve: 5.15.0 - eslint: 8.47.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) + eslint: 8.48.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) get-tsconfig: 4.7.0 globby: 13.2.2 is-core-module: 2.13.0 @@ -5394,7 +5393,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -5415,38 +5414,38 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@5.2.2) debug: 3.2.7 - eslint: 8.47.0 + eslint: 8.48.0 eslint-import-resolver-node: 0.3.8 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.47.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.48.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-es@3.0.1(eslint@8.47.0): + /eslint-plugin-es@3.0.1(eslint@8.48.0): resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.47.0 + eslint: 8.48.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-es@4.1.0(eslint@8.47.0): + /eslint-plugin-es@4.1.0(eslint@8.48.0): resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.47.0 + eslint: 8.48.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0): + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0): resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: @@ -5456,16 +5455,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.47.0)(typescript@5.2.2) + '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@5.2.2) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.47.0 + eslint: 8.48.0 eslint-import-resolver-node: 0.3.8 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.47.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) has: 1.0.3 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -5481,7 +5480,7 @@ packages: - supports-color dev: true - /eslint-plugin-jsdoc@41.1.2(eslint@8.47.0): + /eslint-plugin-jsdoc@41.1.2(eslint@8.48.0): resolution: {integrity: sha512-MePJXdGiPW7AG06CU5GbKzYtKpoHwTq1lKijjq+RwL/cQkZtBZ59Zbv5Ep0RVxSMnq6242249/n+w4XrTZ1Afg==} engines: {node: ^14 || ^16 || ^17 || ^18 || ^19} peerDependencies: @@ -5492,7 +5491,7 @@ packages: comment-parser: 1.3.1 debug: 4.3.4 escape-string-regexp: 4.0.0 - eslint: 8.47.0 + eslint: 8.48.0 esquery: 1.5.0 semver: 7.5.4 spdx-expression-parse: 3.0.1 @@ -5500,16 +5499,16 @@ packages: - supports-color dev: true - /eslint-plugin-n@15.7.0(eslint@8.47.0): + /eslint-plugin-n@15.7.0(eslint@8.48.0): resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' dependencies: builtins: 5.0.1 - eslint: 8.47.0 - eslint-plugin-es: 4.1.0(eslint@8.47.0) - eslint-utils: 3.0.0(eslint@8.47.0) + eslint: 8.48.0 + eslint-plugin-es: 4.1.0(eslint@8.48.0) + eslint-utils: 3.0.0(eslint@8.48.0) ignore: 5.2.4 is-core-module: 2.13.0 minimatch: 3.1.2 @@ -5522,14 +5521,14 @@ packages: engines: {node: '>=5.0.0'} dev: true - /eslint-plugin-node@11.1.0(eslint@8.47.0): + /eslint-plugin-node@11.1.0(eslint@8.48.0): resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.47.0 - eslint-plugin-es: 3.0.1(eslint@8.47.0) + eslint: 8.48.0 + eslint-plugin-es: 3.0.1(eslint@8.48.0) eslint-utils: 2.1.0 ignore: 5.2.4 minimatch: 3.1.2 @@ -5537,16 +5536,16 @@ packages: semver: 6.3.1 dev: true - /eslint-plugin-promise@6.1.1(eslint@8.47.0): + /eslint-plugin-promise@6.1.1(eslint@8.48.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.47.0 + eslint: 8.48.0 dev: true - /eslint-plugin-unicorn@44.0.2(eslint@8.47.0): + /eslint-plugin-unicorn@44.0.2(eslint@8.48.0): resolution: {integrity: sha512-GLIDX1wmeEqpGaKcnMcqRvMVsoabeF0Ton0EX4Th5u6Kmf7RM9WBl705AXFEsns56ESkEs0uyelLuUTvz9Tr0w==} engines: {node: '>=14.18'} peerDependencies: @@ -5555,8 +5554,8 @@ packages: '@babel/helper-validator-identifier': 7.22.5 ci-info: 3.8.0 clean-regexp: 1.0.0 - eslint: 8.47.0 - eslint-utils: 3.0.0(eslint@8.47.0) + eslint: 8.48.0 + eslint-utils: 3.0.0(eslint@8.48.0) esquery: 1.5.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 @@ -5569,19 +5568,19 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vue@9.16.1(eslint@8.47.0): + /eslint-plugin-vue@9.16.1(eslint@8.48.0): resolution: {integrity: sha512-2FtnTqazA6aYONfDuOZTk0QzwhAwi7Z4+uJ7+GHeGxcKapjqWlDsRWDenvyG/utyOfAS5bVRmAG3cEWiYEz2bA==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) - eslint: 8.47.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) + eslint: 8.48.0 natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.0.13 semver: 7.5.4 - vue-eslint-parser: 9.3.1(eslint@8.47.0) + vue-eslint-parser: 9.3.1(eslint@8.48.0) xml-name-validator: 4.0.0 transitivePeerDependencies: - supports-color @@ -5608,13 +5607,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils@3.0.0(eslint@8.47.0): + /eslint-utils@3.0.0(eslint@8.48.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.47.0 + eslint: 8.48.0 eslint-visitor-keys: 2.1.0 dev: true @@ -5632,15 +5631,15 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /eslint@8.47.0: - resolution: {integrity: sha512-spUQWrdPt+pRVP1TTJLmfRNJJHHZryFmptzcafwSvHsceV81djHOdnEeDmkdotZyLNjDhrOasNK8nikkoG1O8Q==} + /eslint@8.48.0: + resolution: {integrity: sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) '@eslint-community/regexpp': 4.6.2 '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.47.0 + '@eslint/js': 8.48.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -5792,7 +5791,7 @@ packages: resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} dependencies: enhanced-resolve: 5.15.0 - mlly: 1.4.0 + mlly: 1.4.1 pathe: 1.1.1 ufo: 1.3.0 dev: false @@ -7119,7 +7118,7 @@ packages: dependencies: '@parcel/watcher': 2.3.0 '@parcel/watcher-wasm': 2.3.0-alpha.3 - citty: 0.1.2 + citty: 0.1.3 clipboardy: 3.0.0 consola: 3.2.3 defu: 6.1.2 @@ -7127,7 +7126,7 @@ packages: h3: 1.8.0 http-shutdown: 1.2.2 jiti: 1.19.3 - mlly: 1.4.0 + mlly: 1.4.1 node-forge: 1.3.1 pathe: 1.1.1 ufo: 1.3.0 @@ -7894,20 +7893,20 @@ packages: typescript: optional: true dependencies: - citty: 0.1.2 + citty: 0.1.3 defu: 6.1.2 esbuild: 0.18.20 fs-extra: 11.1.1 globby: 13.2.2 jiti: 1.19.3 - mlly: 1.4.0 + mlly: 1.4.1 mri: 1.2.0 pathe: 1.1.1 typescript: 5.2.2 dev: true - /mlly@1.4.0: - resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} + /mlly@1.4.1: + resolution: {integrity: sha512-SCDs78Q2o09jiZiE2WziwVBEqXQ02XkGdUy45cbJf+BpYRIjArXRJ1Wbowxkb+NaM9DWvS3UC9GiO/6eqvQ/pg==} dependencies: acorn: 8.10.0 pathe: 1.1.1 @@ -7948,9 +7947,6 @@ packages: engines: {node: ^14 || ^16 || >=18} hasBin: true - /napi-wasm@1.1.0: - resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} - /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true @@ -7961,13 +7957,13 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - /nitropack@2.6.0: - resolution: {integrity: sha512-swhwjrNz0Zc5pBBrL3jdd4v1aJKNv0XbjCk1OreOm0zRbP8WxreGP5sAGpwDVpMH9mpIxyz5A5OSBzKa2lkkuQ==} + /nitropack@2.6.1: + resolution: {integrity: sha512-BoVM7nWx/S5S7TUU3z0DqiY/VVIHu6zng3vJyGMjESIW/FDhc3ecPDJRkNzdUXG5zZ3Ex7ZNll2AsdNHZImcpA==} engines: {node: ^16.11.0 || >=17.0.0} hasBin: true dependencies: '@cloudflare/kv-asset-handler': 0.3.0 - '@netlify/functions': 2.0.1 + '@netlify/functions': 2.0.2 '@rollup/plugin-alias': 5.0.0(rollup@3.28.1) '@rollup/plugin-commonjs': 25.0.4(rollup@3.28.1) '@rollup/plugin-inject': 5.0.3(rollup@3.28.1) @@ -7983,7 +7979,7 @@ packages: c12: 1.4.2 chalk: 5.3.0 chokidar: 3.5.3 - citty: 0.1.2 + citty: 0.1.3 consola: 3.2.3 cookie-es: 1.0.0 defu: 6.1.2 @@ -8005,7 +8001,7 @@ packages: listhen: 1.4.0 magic-string: 0.30.3 mime: 3.0.0 - mlly: 1.4.0 + mlly: 1.4.1 mri: 1.2.0 node-fetch-native: 1.4.0 ofetch: 1.3.3 @@ -8603,7 +8599,7 @@ packages: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 - mlly: 1.4.0 + mlly: 1.4.1 pathe: 1.1.1 /playwright-core@1.37.1: @@ -10385,7 +10381,7 @@ packages: jiti: 1.19.3 magic-string: 0.30.3 mkdist: 1.3.0(typescript@5.2.2) - mlly: 1.4.0 + mlly: 1.4.1 mri: 1.2.0 pathe: 1.1.1 pkg-types: 1.0.3 @@ -10416,7 +10412,7 @@ packages: '@rollup/plugin-replace': 5.0.2(rollup@3.28.1) '@rollup/pluginutils': 5.0.3(rollup@3.28.1) chalk: 5.3.0 - citty: 0.1.2 + citty: 0.1.3 consola: 3.2.3 defu: 6.1.2 esbuild: 0.19.2 @@ -10425,7 +10421,7 @@ packages: jiti: 1.19.3 magic-string: 0.30.3 mkdist: 1.3.0(typescript@5.2.2) - mlly: 1.4.0 + mlly: 1.4.1 pathe: 1.1.1 pkg-types: 1.0.3 pretty-bytes: 6.1.1 @@ -10494,7 +10490,7 @@ packages: fast-glob: 3.3.1 local-pkg: 0.4.3 magic-string: 0.30.3 - mlly: 1.4.0 + mlly: 1.4.1 pathe: 1.1.1 pkg-types: 1.0.3 scule: 1.0.0 @@ -10599,7 +10595,7 @@ packages: fast-glob: 3.3.1 json5: 2.2.3 local-pkg: 0.4.3 - mlly: 1.4.0 + mlly: 1.4.1 pathe: 1.1.1 scule: 1.0.0 unplugin: 1.4.0 @@ -10679,7 +10675,7 @@ packages: resolution: {integrity: sha512-Xyo/3TLi2pMLr8SFSXAHVTEpEtVrqXZTzXkZAglRIairiO+utD6y7bCemYejj7GazEwomMwpNB1Gg3hoehY+zA==} hasBin: true dependencies: - citty: 0.1.2 + citty: 0.1.3 consola: 3.2.3 pathe: 1.1.1 @@ -10813,7 +10809,7 @@ packages: dependencies: cac: 6.7.14 debug: 4.3.4 - mlly: 1.4.0 + mlly: 1.4.1 pathe: 1.1.1 picocolors: 1.0.0 vite: 4.4.9(@types/node@18.17.11) @@ -10827,7 +10823,7 @@ packages: - supports-color - terser - /vite-plugin-checker@0.6.2(eslint@8.47.0)(typescript@5.2.2)(vite@4.4.9)(vue-tsc@1.8.8): + /vite-plugin-checker@0.6.2(eslint@8.48.0)(typescript@5.2.2)(vite@4.4.9)(vue-tsc@1.8.8): resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==} engines: {node: '>=14.16'} peerDependencies: @@ -10863,7 +10859,7 @@ packages: chalk: 4.1.2 chokidar: 3.5.3 commander: 8.3.0 - eslint: 8.47.0 + eslint: 8.48.0 fast-glob: 3.3.1 fs-extra: 11.1.1 lodash.debounce: 4.0.8 @@ -11105,14 +11101,14 @@ packages: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} dev: false - /vue-eslint-parser@9.3.1(eslint@8.47.0): + /vue-eslint-parser@9.3.1(eslint@8.48.0): resolution: {integrity: sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: '>=6.0.0' dependencies: debug: 4.3.4 - eslint: 8.47.0 + eslint: 8.48.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 From 9013f88e75f499e650463e3c80d116d0ce898a14 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 26 Aug 2023 00:26:08 +0100 Subject: [PATCH 730/912] v3.7.0 --- packages/kit/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 4105a26e0d..63d9db093e 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.6.5", + "version": "3.7.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 114f08d08a..020c990a5e 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.6.5", + "version": "3.7.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/schema/package.json b/packages/schema/package.json index c7119fa0c3..083adef852 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.6.5", + "version": "3.7.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 03cde41644..64e6c7cb4a 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.6.5", + "version": "3.7.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/vite/package.json b/packages/vite/package.json index fd5dceebf3..1d56db32a1 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.6.5", + "version": "3.7.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index d70db33cef..90a838d263 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.6.5", + "version": "3.7.0", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", From adb6ec6742395a68cb95961a9ad3b5faf962387b Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Sat, 26 Aug 2023 00:44:57 +0100 Subject: [PATCH 731/912] chore: fix variable name in release scripts --- scripts/release-rc.sh | 2 +- scripts/release.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/release-rc.sh b/scripts/release-rc.sh index 3fefacc757..8c9ade8f7e 100755 --- a/scripts/release-rc.sh +++ b/scripts/release-rc.sh @@ -10,7 +10,7 @@ pnpm build # Release packages for PKG in packages/* ; do - if [[ $p == "packages/nuxi" ]] ; then + if [[ $PKG == "packages/nuxi" ]] ; then continue fi pushd $PKG diff --git a/scripts/release.sh b/scripts/release.sh index eefc2c9178..f33fcb7f34 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -10,7 +10,7 @@ pnpm build # Release packages for PKG in packages/* ; do - if [[ $p == "packages/nuxi" ]] ; then + if [[ $PKG == "packages/nuxi" ]] ; then continue fi pushd $PKG From 424dc8d7c0448b4bdc3051791adbeed15907220f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20S=C3=A1nchez?= Date: Sat, 26 Aug 2023 16:45:17 +0200 Subject: [PATCH 732/912] fix(nuxt): exclude resolved vite virtual modules prefix (#22834) --- packages/nuxt/src/components/transform.ts | 2 +- packages/nuxt/src/core/plugins/resolve-deep-imports.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/components/transform.ts b/packages/nuxt/src/components/transform.ts index 579cf42e7b..6d1a45af39 100644 --- a/packages/nuxt/src/components/transform.ts +++ b/packages/nuxt/src/components/transform.ts @@ -47,7 +47,7 @@ export function createTransformPlugin (nuxt: Nuxt, getComponents: getComponentsT name: 'nuxt:components:imports', transformInclude (id) { id = normalize(id) - return id.startsWith('virtual:') || id.startsWith(nuxt.options.buildDir) || !isIgnored(id) + return id.startsWith('virtual:') || id.startsWith('\0virtual:') || id.startsWith(nuxt.options.buildDir) || !isIgnored(id) }, async transform (code, id) { // Virtual component wrapper diff --git a/packages/nuxt/src/core/plugins/resolve-deep-imports.ts b/packages/nuxt/src/core/plugins/resolve-deep-imports.ts index ba4aaf7bd4..032117178e 100644 --- a/packages/nuxt/src/core/plugins/resolve-deep-imports.ts +++ b/packages/nuxt/src/core/plugins/resolve-deep-imports.ts @@ -7,11 +7,12 @@ import type { Nuxt } from '@nuxt/schema' import { pkgDir } from '../../dirs' export function resolveDeepImportsPlugin (nuxt: Nuxt): Plugin { + const exclude: string[] = ['virtual:', '\0virtual:', '/__skip_vite'] return { name: 'nuxt:resolve-bare-imports', enforce: 'post', async resolveId (id, importer, options) { - if (!importer || isAbsolute(id) || !isAbsolute(importer) || id.startsWith('virtual:') || id.startsWith('/__skip_vite')) { + if (!importer || isAbsolute(id) || !isAbsolute(importer) || exclude.some(e => id.startsWith(e))) { return } id = normalize(id) From a256c8740675aca23f3afcd7d41fe9f9b1b3291f Mon Sep 17 00:00:00 2001 From: Maik Kowol Date: Sun, 27 Aug 2023 21:44:43 +0200 Subject: [PATCH 733/912] fix(nuxt): ensure typed layout prop persists through build (#22855) --- packages/nuxt/src/app/components/nuxt-layout.ts | 2 +- test/fixtures/basic-types/types.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-layout.ts b/packages/nuxt/src/app/components/nuxt-layout.ts index 82c321479d..752978b2ab 100644 --- a/packages/nuxt/src/app/components/nuxt-layout.ts +++ b/packages/nuxt/src/app/components/nuxt-layout.ts @@ -81,7 +81,7 @@ export default defineComponent({ } } }) as unknown as DefineComponent<{ - name?: unknown extends PageMeta['layout'] ? MaybeRef : PageMeta['layout'] + name?: (unknown extends PageMeta['layout'] ? MaybeRef : PageMeta['layout']) | undefined; }> const LayoutProvider = defineComponent({ diff --git a/test/fixtures/basic-types/types.ts b/test/fixtures/basic-types/types.ts index d0a46e66fa..2adf7b4d34 100644 --- a/test/fixtures/basic-types/types.ts +++ b/test/fixtures/basic-types/types.ts @@ -7,7 +7,7 @@ import type { AppConfig, RuntimeValue } from 'nuxt/schema' import { defineNuxtConfig } from 'nuxt/config' import { callWithNuxt, isVue3 } from '#app' import type { NavigateToOptions } from '#app/composables/router' -import { NuxtLink, NuxtPage, WithTypes } from '#components' +import { NuxtLayout, NuxtLink, NuxtPage, WithTypes } from '#components' import { useRouter } from '#imports' interface TestResponse { message: string } @@ -207,6 +207,13 @@ describe('layouts', () => { // @ts-expect-error Invalid layout definePageMeta({ layout: 'invalid-layout' }) }) + + it('allows typing layouts', () => { + h(NuxtLayout, { name: 'custom' }) + + // @ts-expect-error Invalid layout + h(NuxtLayout, { name: 'invalid-layout' }) + }) }) describe('modules', () => { From d905e5f51916dbe797b90800f7f590e1b7857239 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 27 Aug 2023 23:06:15 +0100 Subject: [PATCH 734/912] chore(deps): update all non-major dependencies (main) (#22822) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- package.json | 2 +- packages/nuxt/package.json | 10 +-- packages/schema/package.json | 4 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 4 +- packages/webpack/package.json | 2 +- pnpm-lock.yaml | 124 +++++++++++++++---------------- test/bundle.test.ts | 8 +- 8 files changed, 78 insertions(+), 78 deletions(-) diff --git a/package.json b/package.json index 0b210ee960..6dcdd3d001 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "execa": "7.2.0", "fs-extra": "11.1.1", "globby": "13.2.2", - "h3": "1.8.0", + "h3": "1.8.1", "happy-dom": "10.11.0", "jiti": "1.19.3", "markdownlint-cli": "^0.33.0", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 020c990a5e..cbd130ee9a 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -58,9 +58,9 @@ "@nuxt/telemetry": "^2.4.1", "@nuxt/ui-templates": "^1.3.1", "@nuxt/vite-builder": "workspace:../vite", - "@unhead/dom": "^1.3.7", - "@unhead/ssr": "^1.3.7", - "@unhead/vue": "^1.3.7", + "@unhead/dom": "^1.3.9", + "@unhead/ssr": "^1.3.9", + "@unhead/vue": "^1.3.9", "@vue/shared": "^3.3.4", "acorn": "8.10.0", "c12": "^1.4.2", @@ -74,7 +74,7 @@ "estree-walker": "^3.0.3", "fs-extra": "^11.1.1", "globby": "^13.2.2", - "h3": "^1.8.0", + "h3": "^1.8.1", "hookable": "^5.5.3", "jiti": "^1.19.3", "klona": "^2.0.6", @@ -97,7 +97,7 @@ "ultrahtml": "^1.3.0", "uncrypto": "^0.1.3", "unctx": "^2.3.1", - "unenv": "^1.7.3", + "unenv": "^1.7.4", "unimport": "^3.2.0", "unplugin": "^1.4.0", "unplugin-vue-router": "^0.6.4", diff --git a/packages/schema/package.json b/packages/schema/package.json index 083adef852..b54a073a40 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -32,12 +32,12 @@ "@types/file-loader": "5.0.1", "@types/pug": "2.0.6", "@types/sass-loader": "8.0.5", - "@unhead/schema": "1.3.7", + "@unhead/schema": "1.3.9", "@vitejs/plugin-vue": "4.3.3", "@vitejs/plugin-vue-jsx": "3.0.2", "@vue/compiler-core": "3.3.4", "esbuild-loader": "4.0.1", - "h3": "1.8.0", + "h3": "1.8.1", "ignore": "5.2.4", "nitropack": "2.6.1", "unbuild": "latest", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 64e6c7cb4a..767d2e48e9 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -27,7 +27,7 @@ "consola": "^3.2.3", "defu": "^6.1.2", "execa": "^7.2.0", - "get-port-please": "^3.0.1", + "get-port-please": "^3.0.2", "ofetch": "^1.3.3", "pathe": "^1.1.1", "ufo": "^1.3.0" diff --git a/packages/vite/package.json b/packages/vite/package.json index 1d56db32a1..479852c8e2 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -40,8 +40,8 @@ "estree-walker": "^3.0.3", "externality": "^1.0.2", "fs-extra": "^11.1.1", - "get-port-please": "^3.0.1", - "h3": "^1.8.0", + "get-port-please": "^3.0.2", + "h3": "^1.8.1", "knitwork": "^1.0.0", "magic-string": "^0.30.3", "mlly": "^1.4.1", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 90a838d263..c708960276 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -32,7 +32,7 @@ "file-loader": "^6.2.0", "fork-ts-checker-webpack-plugin": "^8.0.0", "fs-extra": "^11.1.1", - "h3": "^1.8.0", + "h3": "^1.8.1", "hash-sum": "^2.0.0", "lodash-es": "^4.17.21", "magic-string": "^0.30.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 75c019dfaa..e9f880e266 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,8 +80,8 @@ importers: specifier: 13.2.2 version: 13.2.2 h3: - specifier: 1.8.0 - version: 1.8.0 + specifier: 1.8.1 + version: 1.8.1 happy-dom: specifier: 10.11.0 version: 10.11.0 @@ -264,14 +264,14 @@ importers: specifier: ^14.18.0 || >=16.10.0 version: 18.17.11 '@unhead/dom': - specifier: ^1.3.7 - version: 1.3.7 + specifier: ^1.3.9 + version: 1.3.9 '@unhead/ssr': - specifier: ^1.3.7 - version: 1.3.7 + specifier: ^1.3.9 + version: 1.3.9 '@unhead/vue': - specifier: ^1.3.7 - version: 1.3.7(vue@3.3.4) + specifier: ^1.3.9 + version: 1.3.9(vue@3.3.4) '@vue/shared': specifier: ^3.3.4 version: 3.3.4 @@ -312,8 +312,8 @@ importers: specifier: ^13.2.2 version: 13.2.2 h3: - specifier: ^1.8.0 - version: 1.8.0 + specifier: ^1.8.1 + version: 1.8.1 hookable: specifier: ^5.5.3 version: 5.5.3 @@ -381,8 +381,8 @@ importers: specifier: ^2.3.1 version: 2.3.1 unenv: - specifier: ^1.7.3 - version: 1.7.3 + specifier: ^1.7.4 + version: 1.7.4 unimport: specifier: ^3.2.0 version: 3.2.0(rollup@3.28.1) @@ -479,8 +479,8 @@ importers: specifier: 8.0.5 version: 8.0.5 '@unhead/schema': - specifier: 1.3.7 - version: 1.3.7 + specifier: 1.3.9 + version: 1.3.9 '@vitejs/plugin-vue': specifier: 4.3.3 version: 4.3.3(vite@4.4.9)(vue@3.3.4) @@ -494,8 +494,8 @@ importers: specifier: 4.0.1 version: 4.0.1(webpack@5.88.2) h3: - specifier: 1.8.0 - version: 1.8.0 + specifier: 1.8.1 + version: 1.8.1 ignore: specifier: 5.2.4 version: 5.2.4 @@ -548,8 +548,8 @@ importers: specifier: ^7.2.0 version: 7.2.0 get-port-please: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.0.2 + version: 3.0.2 ofetch: specifier: ^1.3.3 version: 1.3.3 @@ -621,11 +621,11 @@ importers: specifier: ^11.1.1 version: 11.1.1 get-port-please: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.0.2 + version: 3.0.2 h3: - specifier: ^1.8.0 - version: 1.8.0 + specifier: ^1.8.1 + version: 1.8.1 knitwork: specifier: ^1.0.0 version: 1.0.0 @@ -745,8 +745,8 @@ importers: specifier: ^11.1.1 version: 11.1.1 h3: - specifier: ^1.8.0 - version: 1.8.0 + specifier: ^1.8.1 + version: 1.8.1 hash-sum: specifier: ^2.0.0 version: 2.0.0 @@ -3166,41 +3166,41 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@unhead/dom@1.3.7: - resolution: {integrity: sha512-utDjimElXvPrpArysKbrUFWacF4exwXB5tOZ9H3SUJOJxIPtz4GZZgkPTPv+UHV9Z+21MP/a6dFldc5j9EAO4A==} + /@unhead/dom@1.3.9: + resolution: {integrity: sha512-bTbPFjXjmk8MC0cBC+7Bgf0Mcw62gsE2XqOhMH/qQo6NP4vR2XGxqy054Y7MGurznR1JVAqxUiU3cR/oxWFk3g==} dependencies: - '@unhead/schema': 1.3.7 - '@unhead/shared': 1.3.7 + '@unhead/schema': 1.3.9 + '@unhead/shared': 1.3.9 dev: false - /@unhead/schema@1.3.7: - resolution: {integrity: sha512-C0+wA2ZZl4d2Aj0z3mFoDKDTv/22z0Tu5giXj+T+iEmfAir9k6kH2UrrCDMkHUP/mRnBSEg1URBrFq2al34VKg==} + /@unhead/schema@1.3.9: + resolution: {integrity: sha512-iIa0dczd2qTOxwYZbVR+iAKdlELnLTlKSFsN/YuJ/33sRi5VFa9D8TDBEPLec9gpcjB/bH0FhERfR4bb4UbRuA==} dependencies: hookable: 5.5.3 zhead: 2.0.10 - /@unhead/shared@1.3.7: - resolution: {integrity: sha512-73bs2B5wCMCr+X81qbEVPwFd/7pN8SXSgsSSwq9KkhmB+hC3bipiDST+Fe1h7F80lZ4iu9EwjrNxNlXw+tLjsw==} + /@unhead/shared@1.3.9: + resolution: {integrity: sha512-lBXK1gzsg3XOnsOgYUVTT2RKOvM+AB0myDXkwQb0jsJB3Tc1qVOSz9JAOR+ZGrosSr7+Iv91+Fu/0E+knxaj2Q==} dependencies: - '@unhead/schema': 1.3.7 + '@unhead/schema': 1.3.9 dev: false - /@unhead/ssr@1.3.7: - resolution: {integrity: sha512-6FNA2h4AA3I52YQUJ7JqAi0JmixFTa/hM9UWoLDGu9FpFJKiQfRX4s1bm8RPaLC+HTR/GhGdUcwkT4gxU54SLg==} + /@unhead/ssr@1.3.9: + resolution: {integrity: sha512-FTt4IQOAxHiSfRM7IoJJiFnUEBH8CG5zkJOQ/LydG19QpYa9/AGOi4xvngeCr++1as51p2hWoRO6gPxSRhV8cA==} dependencies: - '@unhead/schema': 1.3.7 - '@unhead/shared': 1.3.7 + '@unhead/schema': 1.3.9 + '@unhead/shared': 1.3.9 dev: false - /@unhead/vue@1.3.7(vue@3.3.4): - resolution: {integrity: sha512-ekvE592mAJxwoscCt/6Z2gwXHb4IzWIUsy/vcBXd/aEo0bOPww9qObCyS3/GxhknRdItDhJOwfO9CId+bSRG8Q==} + /@unhead/vue@1.3.9(vue@3.3.4): + resolution: {integrity: sha512-rVAsRLBc+3Y//NRmr7vmRs5yhIf65jYSvcj0V5DtDfDwql7BbGgc3VIIEvY0+EjLQuNsS5kxwm78LSPCIl/3Xw==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@unhead/schema': 1.3.7 - '@unhead/shared': 1.3.7 + '@unhead/schema': 1.3.9 + '@unhead/shared': 1.3.9 hookable: 5.5.3 - unhead: 1.3.7 + unhead: 1.3.9 vue: 3.3.4 dev: false @@ -6053,8 +6053,8 @@ packages: engines: {node: '>=8.0.0'} dev: true - /get-port-please@3.0.1: - resolution: {integrity: sha512-R5pcVO8Z1+pVDu8Ml3xaJCEkBiiy1VQN9za0YqH8GIi1nIqD4IzQhzY6dDzMRtdS1lyiGlucRzm8IN8wtLIXng==} + /get-port-please@3.0.2: + resolution: {integrity: sha512-c14cAITf0E+uqdxGALvyYHwOL7UsnWcv3oDtgDAZksiVSGN87xlWVUWGZcmWQU3cICdaOxT+6LdQzUfK2ei1SA==} /get-stdin@9.0.0: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} @@ -6237,8 +6237,8 @@ packages: dependencies: duplexer: 0.1.2 - /h3@1.8.0: - resolution: {integrity: sha512-057VY83X7Tg5n4XU2GV9M3dsCWUU4jtw2Lc/r4GjAcf9Jb6GI1mD5F8TCQHUcvLMEgtx6lbfobOFu7Vdmejihg==} + /h3@1.8.1: + resolution: {integrity: sha512-m5rFuu+5bpwBBHqqS0zexjK+Q8dhtFRvO9JXQG0RvSPL6QrIT6vv42vuBM22SLOgGMoZYsHk0y7VPidt9s+nkw==} dependencies: cookie-es: 1.0.0 defu: 6.1.2 @@ -6247,7 +6247,7 @@ packages: radix3: 1.1.0 ufo: 1.3.0 uncrypto: 0.1.3 - unenv: 1.7.3 + unenv: 1.7.4 /happy-dom@10.11.0: resolution: {integrity: sha512-CmUT4LOLzvAsbYqgTJESrPyvF0gxLDkDG/KK1o/HYU7+c9o/VVIKXl3feJZnuCYbGqemw7meiQaZcL4SMgn1jQ==} @@ -7122,8 +7122,8 @@ packages: clipboardy: 3.0.0 consola: 3.2.3 defu: 6.1.2 - get-port-please: 3.0.1 - h3: 1.8.0 + get-port-please: 3.0.2 + h3: 1.8.1 http-shutdown: 1.2.2 jiti: 1.19.3 mlly: 1.4.1 @@ -7991,7 +7991,7 @@ packages: fs-extra: 11.1.1 globby: 13.2.2 gzip-size: 7.0.0 - h3: 1.8.0 + h3: 1.8.1 hookable: 5.5.3 httpxy: 0.1.2 is-primitive: 3.0.1 @@ -8022,7 +8022,7 @@ packages: ufo: 1.3.0 uncrypto: 0.1.3 unctx: 2.3.1 - unenv: 1.7.3 + unenv: 1.7.4 unimport: 3.2.0(rollup@3.28.1) unstorage: 1.9.0 transitivePeerDependencies: @@ -8211,7 +8211,7 @@ packages: '@vitejs/plugin-vue-jsx': 3.0.2(vite@4.4.9)(vue@3.3.4) '@vitest/ui': 0.33.0(vitest@0.33.0) defu: 6.1.2 - get-port-please: 3.0.1 + get-port-please: 3.0.2 perfect-debounce: 1.0.0 std-env: 3.4.3 vite: 4.4.9(@types/node@18.17.11) @@ -10452,8 +10452,8 @@ packages: dependencies: busboy: 1.6.0 - /unenv@1.7.3: - resolution: {integrity: sha512-5NGaBSP0acq5FAnjw9m6sA/QaImYkEjpYXPc99l/KUIb1qbxki1PSvX3ZNnK3pWIC2XwIHrOul2P7FiHyWgeXA==} + /unenv@1.7.4: + resolution: {integrity: sha512-fjYsXYi30It0YCQYqLOcT6fHfMXsBr2hw9XC7ycf8rTG7Xxpe3ZssiqUnD0khrjiZEmkBXWLwm42yCSCH46fMw==} dependencies: consola: 3.2.3 defu: 6.1.2 @@ -10461,12 +10461,12 @@ packages: node-fetch-native: 1.4.0 pathe: 1.1.1 - /unhead@1.3.7: - resolution: {integrity: sha512-XRkDIaIK325UyKwSqV6fDbFKJ4HYuT5mCEnIhUqNBtUYv6b7jdXzYTfUiZSb1ciJyTqvzRHFWDtmGtJo1L375Q==} + /unhead@1.3.9: + resolution: {integrity: sha512-vzWZJW8l6dlNM5egJs3c7NMHWZ+iw2x7jCZtU2rrhwFINlKCaA3J42fvOeDxx6t5QR9dfZ96HF2AeNlCcPT+bQ==} dependencies: - '@unhead/dom': 1.3.7 - '@unhead/schema': 1.3.7 - '@unhead/shared': 1.3.7 + '@unhead/dom': 1.3.9 + '@unhead/schema': 1.3.9 + '@unhead/shared': 1.3.9 hookable: 5.5.3 dev: false @@ -10655,7 +10655,7 @@ packages: anymatch: 3.1.3 chokidar: 3.5.3 destr: 2.0.1 - h3: 1.8.0 + h3: 1.8.1 ioredis: 5.3.2 listhen: 1.4.0 lru-cache: 10.0.1 @@ -10930,11 +10930,11 @@ packages: '@vue/test-utils': 2.4.1(vue@3.3.4) defu: 6.1.2 estree-walker: 3.0.3 - h3: 1.8.0 + h3: 1.8.1 happy-dom: 10.11.0 magic-string: 0.30.3 ofetch: 1.3.3 - unenv: 1.7.3 + unenv: 1.7.4 vitest: 0.33.0(happy-dom@10.11.0) vue: 3.3.4 vue-router: 4.2.4(vue@3.3.4) diff --git a/test/bundle.test.ts b/test/bundle.test.ts index f1005e216e..8d12b77efa 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -19,7 +19,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM for (const outputDir of ['.output', '.output-inline']) { it('default client bundle size', async () => { const clientStats = await analyzeSizes('**/*.js', join(rootDir, outputDir, 'public')) - expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"96.6k"') + expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"96.9k"') expect(clientStats.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -32,7 +32,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"297k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"300k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"1822k"') @@ -71,10 +71,10 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output-inline/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"603k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"606k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"70.5k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"70.6k"') const packages = modules.files .filter(m => m.endsWith('package.json')) From bfd06589fdc6d062596e27059135be7337391815 Mon Sep 17 00:00:00 2001 From: Heb Date: Mon, 28 Aug 2023 15:34:47 +0700 Subject: [PATCH 735/912] docs: add info about dynamic nested routes (#22862) --- docs/2.guide/2.directory-structure/1.pages.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/2.guide/2.directory-structure/1.pages.md b/docs/2.guide/2.directory-structure/1.pages.md index 079cd39827..dec282c074 100644 --- a/docs/2.guide/2.directory-structure/1.pages.md +++ b/docs/2.guide/2.directory-structure/1.pages.md @@ -134,6 +134,10 @@ if (route.params.group === 'admins' && !route.params.id) { ``` +::alert{type="info"} +Named parent routes will take priority over nested dynamic routes. For the `/foo/hello` route, `~/pages/foo.vue` will take priority over `~/pages/foo/[slug].vue` . Use `~/pages/foo/index.vue` and `~/pages/foo/[slug].vue` to match `/foo` and `/foo/hello` with different pages,. +:: + ## Catch-all Route If you need a catch-all route, you create it by using a file named like `[...slug].vue`. This will match _all_ routes under that path. From a5cc858a4c390fc4d95a39d6c0851da60f381350 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 28 Aug 2023 10:07:48 +0100 Subject: [PATCH 736/912] chore(deps): update all non-major dependencies (main) (#22858) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- package.json | 4 +- packages/kit/package.json | 2 +- packages/nuxt/package.json | 4 +- packages/schema/package.json | 2 +- pnpm-lock.yaml | 90 ++++++++++++++++++------------------ 5 files changed, 51 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index 6dcdd3d001..f91f47cec6 100644 --- a/package.json +++ b/package.json @@ -63,8 +63,8 @@ "happy-dom": "10.11.0", "jiti": "1.19.3", "markdownlint-cli": "^0.33.0", - "nitropack": "2.6.1", - "nuxi": "3.7.0", + "nitropack": "2.6.2", + "nuxi": "3.7.2", "nuxt": "workspace:*", "nuxt-vitest": "0.10.2", "ofetch": "1.3.3", diff --git a/packages/kit/package.json b/packages/kit/package.json index 63d9db093e..1900cd6339 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -44,7 +44,7 @@ "@types/lodash-es": "4.17.8", "@types/semver": "7.5.0", "lodash-es": "4.17.21", - "nitropack": "2.6.1", + "nitropack": "2.6.2", "unbuild": "latest", "vite": "4.4.9", "vitest": "0.33.0", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index cbd130ee9a..c2d5de5467 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -81,8 +81,8 @@ "knitwork": "^1.0.0", "magic-string": "^0.30.3", "mlly": "^1.4.1", - "nitropack": "^2.6.1", - "nuxi": "^3.7.0", + "nitropack": "^2.6.2", + "nuxi": "^3.7.2", "nypm": "^0.3.1", "ofetch": "^1.3.3", "ohash": "^1.1.3", diff --git a/packages/schema/package.json b/packages/schema/package.json index b54a073a40..f8618b6a96 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -39,7 +39,7 @@ "esbuild-loader": "4.0.1", "h3": "1.8.1", "ignore": "5.2.4", - "nitropack": "2.6.1", + "nitropack": "2.6.2", "unbuild": "latest", "unctx": "2.3.1", "vite": "4.4.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e9f880e266..8fd2669033 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -92,11 +92,11 @@ importers: specifier: ^0.33.0 version: 0.33.0 nitropack: - specifier: 2.6.1 - version: 2.6.1 + specifier: 2.6.2 + version: 2.6.2 nuxi: - specifier: 3.7.0 - version: 3.7.0 + specifier: 3.7.2 + version: 3.7.2 nuxt: specifier: workspace:* version: link:packages/nuxt @@ -225,8 +225,8 @@ importers: specifier: 4.17.21 version: 4.17.21 nitropack: - specifier: 2.6.1 - version: 2.6.1 + specifier: 2.6.2 + version: 2.6.2 unbuild: specifier: latest version: 2.0.0(typescript@5.2.2) @@ -333,11 +333,11 @@ importers: specifier: ^1.4.1 version: 1.4.1 nitropack: - specifier: ^2.6.1 - version: 2.6.1 + specifier: ^2.6.2 + version: 2.6.2 nuxi: - specifier: ^3.7.0 - version: 3.7.0 + specifier: ^3.7.2 + version: 3.7.2 nypm: specifier: ^0.3.1 version: 0.3.1 @@ -500,8 +500,8 @@ importers: specifier: 5.2.4 version: 5.2.4 nitropack: - specifier: 2.6.1 - version: 2.6.1 + specifier: 2.6.2 + version: 2.6.2 unbuild: specifier: latest version: 2.0.0(typescript@5.2.2) @@ -2289,7 +2289,7 @@ packages: detab: 3.0.2 json5: 2.2.3 knitwork: 1.0.0 - listhen: 1.4.0 + listhen: 1.4.3 mdast-util-to-hast: 12.3.0 mdurl: 1.0.1 ohash: 1.1.3 @@ -2520,8 +2520,8 @@ packages: requiresBuild: true optional: true - /@parcel/watcher-wasm@2.3.0-alpha.3: - resolution: {integrity: sha512-kTkqlYhGhCM9EaoZMyjNzqKRSdTyp/vN+/uoJ2fzN+UCiWUI+jMKacwnBgu13T1F0mrcNqEWtYEXTRaZmnml1w==} + /@parcel/watcher-wasm@2.3.0: + resolution: {integrity: sha512-ejBAX8H0ZGsD8lSICDNyMbSEtPMWgDL0WFCt/0z7hyf5v8Imz4rAM8xY379mBsECkq/Wdqa5WEDLqtjZ+6NxfA==} engines: {node: '>= 10.0.0'} dependencies: is-glob: 4.0.3 @@ -2618,7 +2618,7 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 @@ -2636,7 +2636,7 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) commondir: 1.0.1 estree-walker: 2.0.2 glob: 8.1.0 @@ -2653,7 +2653,7 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) estree-walker: 2.0.2 magic-string: 0.30.3 rollup: 3.28.1 @@ -2667,7 +2667,7 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) rollup: 3.28.1 /@rollup/plugin-node-resolve@15.2.1(rollup@3.28.1): @@ -2679,7 +2679,7 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-builtin-module: 3.2.1 @@ -2696,7 +2696,7 @@ packages: rollup: optional: true dependencies: - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) magic-string: 0.30.3 rollup: 3.28.1 @@ -2732,8 +2732,8 @@ packages: estree-walker: 2.0.2 picomatch: 2.3.1 - /@rollup/pluginutils@5.0.3(rollup@3.28.1): - resolution: {integrity: sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g==} + /@rollup/pluginutils@5.0.4(rollup@3.28.1): + resolution: {integrity: sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0 @@ -3357,7 +3357,7 @@ packages: optional: true dependencies: '@babel/types': 7.22.10 - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) '@vue/compiler-sfc': 3.3.4 ast-kit: 0.9.4(rollup@3.28.1) local-pkg: 0.4.3 @@ -4019,7 +4019,7 @@ packages: engines: {node: '>=16.14.0'} dependencies: '@babel/parser': 7.22.10 - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) pathe: 1.1.1 transitivePeerDependencies: - rollup @@ -6444,8 +6444,8 @@ packages: transitivePeerDependencies: - supports-color - /httpxy@0.1.2: - resolution: {integrity: sha512-8IldwriN7eS7Pe1pPRE6L7S1LW551lBJ3N9oI4HLYGZTXl2JBkdINEi+mDZwhwykw1OBVI2li3zhPSi7r1N8lQ==} + /httpxy@0.1.4: + resolution: {integrity: sha512-ArXKNWhU5taozl6fFnu01M9HiInAqSOw4mUp+7DY/zbTHPmS8JBqH0IC3VLovRBd9b8ZE03ztemcxzeWT6pCoA==} /human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} @@ -7112,12 +7112,12 @@ packages: uc.micro: 1.0.6 dev: true - /listhen@1.4.0: - resolution: {integrity: sha512-gEOMJKTak+WLjPITBVbv2kR0WKVUSnl5XPwvoFYheyaQPzh/jdA+pRZeUujJkjabNMDsBxwuaYH7HYLpzzGEJA==} + /listhen@1.4.3: + resolution: {integrity: sha512-qVWeM07q7q5R3jwB+Zm603khFQ3yq5OLmAwLIlE3Ftv1K9yfwx4R6/tbCkkr0/SrIyKnHK9xY1C6j03uGOSnIQ==} hasBin: true dependencies: '@parcel/watcher': 2.3.0 - '@parcel/watcher-wasm': 2.3.0-alpha.3 + '@parcel/watcher-wasm': 2.3.0 citty: 0.1.3 clipboardy: 3.0.0 consola: 3.2.3 @@ -7130,7 +7130,7 @@ packages: node-forge: 1.3.1 pathe: 1.1.1 ufo: 1.3.0 - untun: 0.1.1 + untun: 0.1.2 uqr: 0.1.2 /loader-runner@4.3.0: @@ -7957,8 +7957,8 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - /nitropack@2.6.1: - resolution: {integrity: sha512-BoVM7nWx/S5S7TUU3z0DqiY/VVIHu6zng3vJyGMjESIW/FDhc3ecPDJRkNzdUXG5zZ3Ex7ZNll2AsdNHZImcpA==} + /nitropack@2.6.2: + resolution: {integrity: sha512-gzbxLIhCoQrK+NrgW5Szuo6zzFEU/bqoohimyJ8IkETI3MXlYtLphlW/UVE8pv8UQ0IJ2HzxFpZ7Ldd0+bQ35A==} engines: {node: ^16.11.0 || >=17.0.0} hasBin: true dependencies: @@ -7972,7 +7972,7 @@ packages: '@rollup/plugin-replace': 5.0.2(rollup@3.28.1) '@rollup/plugin-terser': 0.4.3(rollup@3.28.1) '@rollup/plugin-wasm': 6.1.3(rollup@3.28.1) - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) '@types/http-proxy': 1.17.11 '@vercel/nft': 0.23.1 archiver: 6.0.0 @@ -7993,12 +7993,12 @@ packages: gzip-size: 7.0.0 h3: 1.8.1 hookable: 5.5.3 - httpxy: 0.1.2 + httpxy: 0.1.4 is-primitive: 3.0.1 jiti: 1.19.3 klona: 2.0.6 knitwork: 1.0.0 - listhen: 1.4.0 + listhen: 1.4.3 magic-string: 0.30.3 mime: 3.0.0 mlly: 1.4.1 @@ -8159,8 +8159,8 @@ packages: dependencies: boolbase: 1.0.0 - /nuxi@3.7.0: - resolution: {integrity: sha512-FZEwNCGeEdE+CyKCoThZm+Lv+u4TnbClTyYvvby3a2joK5t8nc7upNiZ7hsd+xoOeNuZW7CZHsQp9szJm2ev9Q==} + /nuxi@3.7.2: + resolution: {integrity: sha512-WNczi4X5ms8v63BTlCH+ZZDPzoFI0/V5KW8an4Zv6qOngtONHALw1u6qvtcAqG2tuMDu8gdJuzxMZL2845Dbig==} engines: {node: ^14.18.0 || >=16.10.0} hasBin: true optionalDependencies: @@ -10371,7 +10371,7 @@ packages: '@rollup/plugin-json': 6.0.0(rollup@3.28.1) '@rollup/plugin-node-resolve': 15.2.1(rollup@3.28.1) '@rollup/plugin-replace': 5.0.2(rollup@3.28.1) - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) chalk: 5.3.0 consola: 3.2.3 defu: 6.1.2 @@ -10410,7 +10410,7 @@ packages: '@rollup/plugin-json': 6.0.0(rollup@3.28.1) '@rollup/plugin-node-resolve': 15.2.1(rollup@3.28.1) '@rollup/plugin-replace': 5.0.2(rollup@3.28.1) - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) chalk: 5.3.0 citty: 0.1.3 consola: 3.2.3 @@ -10485,7 +10485,7 @@ packages: /unimport@3.2.0(rollup@3.28.1): resolution: {integrity: sha512-9buxPxkNwxwxAlH/RfOFHxtQTUrlmBGi9Ai9HezY2yYbkoOhgJTYPI6+WqxI1EZphoM9cw1SHoCFRkXSb8/fjQ==} dependencies: - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) escape-string-regexp: 5.0.0 fast-glob: 3.3.1 local-pkg: 0.4.3 @@ -10588,7 +10588,7 @@ packages: optional: true dependencies: '@babel/types': 7.22.10 - '@rollup/pluginutils': 5.0.3(rollup@3.28.1) + '@rollup/pluginutils': 5.0.4(rollup@3.28.1) '@vue-macros/common': 1.6.2(rollup@3.28.1)(vue@3.3.4) ast-walker-scope: 0.4.2 chokidar: 3.5.3 @@ -10657,7 +10657,7 @@ packages: destr: 2.0.1 h3: 1.8.1 ioredis: 5.3.2 - listhen: 1.4.0 + listhen: 1.4.3 lru-cache: 10.0.1 mri: 1.2.0 node-fetch-native: 1.4.0 @@ -10671,8 +10671,8 @@ packages: engines: {node: '>=8'} dev: true - /untun@0.1.1: - resolution: {integrity: sha512-Xyo/3TLi2pMLr8SFSXAHVTEpEtVrqXZTzXkZAglRIairiO+utD6y7bCemYejj7GazEwomMwpNB1Gg3hoehY+zA==} + /untun@0.1.2: + resolution: {integrity: sha512-wLAMWvxfqyTiBODA1lg3IXHQtjggYLeTK7RnSfqtOXixWJ3bAa2kK/HHmOOg19upteqO3muLvN6O/icbyQY33Q==} hasBin: true dependencies: citty: 0.1.3 From 6198a1151485882e4e27bdd31d112c69fff230ff Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 28 Aug 2023 17:46:49 +0100 Subject: [PATCH 737/912] fix(nuxt): render server components when `ssr: false` (#22869) --- packages/nuxt/src/app/components/nuxt-island.ts | 2 +- packages/nuxt/src/core/nuxt.ts | 7 +++++++ packages/nuxt/src/core/runtime/nitro/renderer.ts | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index 3955b8d8ef..0c4fb8c67b 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -171,7 +171,7 @@ export default defineComponent({ if (import.meta.client && !nuxtApp.isHydrating && props.lazy) { fetchComponent() - } else if (import.meta.server || !nuxtApp.isHydrating) { + } else if (import.meta.server || !nuxtApp.isHydrating || !nuxtApp.payload.serverRendered) { await fetchComponent() } diff --git a/packages/nuxt/src/core/nuxt.ts b/packages/nuxt/src/core/nuxt.ts index 36ccb593be..03b4f0a398 100644 --- a/packages/nuxt/src/core/nuxt.ts +++ b/packages/nuxt/src/core/nuxt.ts @@ -8,6 +8,7 @@ import escapeRE from 'escape-string-regexp' import fse from 'fs-extra' import { withoutLeadingSlash } from 'ufo' /* eslint-disable import/no-restricted-paths */ +import defu from 'defu' import pagesModule from '../pages/module' import metaModule from '../head/module' import componentsModule from '../components/module' @@ -283,6 +284,12 @@ async function initNuxt (nuxt: Nuxt) { priority: 10, // built-in that we do not expect the user to override filePath: resolve(nuxt.options.appDir, 'components/nuxt-island') }) + + if (!nuxt.options.ssr) { + nuxt.options.ssr = true + nuxt.options.nitro.routeRules ||= {} + nuxt.options.nitro.routeRules['/**'] = defu(nuxt.options.nitro.routeRules['/**'], { ssr: false }) + } } // Add experimental cross-origin prefetch support using Speculation Rules API diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index bc2b75cb9a..13c053a3ca 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -259,7 +259,7 @@ export default defineRenderHandler(async (event): Promise Date: Tue, 29 Aug 2023 18:55:59 +0900 Subject: [PATCH 738/912] docs: update nuxt bridge migration guide (#22815) --- docs/6.bridge/1.overview.md | 284 ++---------------- docs/6.bridge/10.configuration.md | 83 +++++ docs/6.bridge/2.typescript.md | 32 ++ docs/6.bridge/3.bridge-composition-api.md | 122 ++++++++ docs/6.bridge/4.plugins-and-middleware.md | 44 +++ ...ition-api.md => 5.nuxt3-compatible-api.md} | 174 ++++------- docs/6.bridge/6.meta.md | 109 +++++++ docs/6.bridge/7.runtime-config.md | 31 ++ docs/6.bridge/8.nitro.md | 75 +++++ docs/6.bridge/9.vite.md | 34 +++ 10 files changed, 604 insertions(+), 384 deletions(-) create mode 100644 docs/6.bridge/10.configuration.md create mode 100644 docs/6.bridge/2.typescript.md create mode 100644 docs/6.bridge/3.bridge-composition-api.md create mode 100644 docs/6.bridge/4.plugins-and-middleware.md rename docs/6.bridge/{2.bridge-composition-api.md => 5.nuxt3-compatible-api.md} (55%) create mode 100644 docs/6.bridge/6.meta.md create mode 100644 docs/6.bridge/7.runtime-config.md create mode 100644 docs/6.bridge/8.nitro.md create mode 100644 docs/6.bridge/9.vite.md diff --git a/docs/6.bridge/1.overview.md b/docs/6.bridge/1.overview.md index 704fe3717b..0871c4d9a0 100644 --- a/docs/6.bridge/1.overview.md +++ b/docs/6.bridge/1.overview.md @@ -1,6 +1,6 @@ # Overview -Experience Nuxt 3 features on existing Nuxt 2 projects. +Reduce the differences with Nuxt 3 and reduce the burden of migration to Nuxt 3. ::alert If you're starting a fresh Nuxt 3 project, please skip this section and go to [Nuxt 3 Installation](/docs/getting-started/introduction). @@ -12,9 +12,11 @@ Nuxt Bridge provides identical features to Nuxt 3 ([docs](/docs/guide/concepts/a Bridge is a forward-compatibility layer that allows you to experience many of the new Nuxt 3 features by simply installing and enabling a Nuxt module. -Using Nuxt Bridge, you can make sure your project is (almost) ready for Nuxt 3 and have the best developer experience without needing a major rewrite or risk breaking changes. +Using Nuxt Bridge, you can make sure your project is (almost) ready for Nuxt 3 and you can gradually proceed with the transition to Nuxt 3. -## Upgrade Nuxt 2 +## First Step + +### Upgrade Nuxt 2 Make sure your dev server (`nuxt dev`) isn't running, remove any package lock files (`package-lock.json` and `yarn.lock`), and install the latest Nuxt 2 version: @@ -41,7 +43,7 @@ npm install Once the installation is complete, make sure both development and production builds are working as expected before proceeding. :: -## Install Nuxt Bridge +### Install Nuxt Bridge Install `@nuxt/bridge-edge` as a development dependency: @@ -57,57 +59,7 @@ npm install -D @nuxt/bridge@npm:@nuxt/bridge-edge :: -## Update Your Scripts - -You will also need to update your scripts within your `package.json` to reflect the fact that Nuxt will now produce a Nitro server as build output. - -### Nuxi - -Nuxt 3 introduced the new Nuxt CLI command [`nuxi`](/docs/api/commands/add). Update your scripts as follows to leverage the better support from Nuxt Bridge: - -```diff -{ - "scripts": { -- "dev": "nuxt", -+ "dev": "nuxi dev", -- "build": "nuxt build", -+ "build": "nuxi build", -- "start": "nuxt start", -+ "start": "nuxi preview" - } -} -``` - -::alert -If `nitro: false`, use the `nuxt` command. -:: - -### Static Target - -If you have set `target: 'static'` in your `nuxt.config` then you need to ensure that you update your build script to be `nuxi generate`. - -```json [package.json] -{ - "scripts": { - "build": "nuxi generate" - } -} -``` - -### Server Target - -For all other situations, you can use the `nuxi build` command. - -```json [package.json] -{ - "scripts": { - "build": "nuxi build", - "start": "nuxi preview" - } -} -``` - -## Update `nuxt.config` +### Update `nuxt.config` Please make sure to avoid any CommonJS syntax such as `module.exports`, `require` or `require.resolve` in your config file. It will soon be deprecated and unsupported. @@ -117,227 +69,35 @@ You can use static `import`, dynamic `import()` and `export default` instead. Us import { defineNuxtConfig } from '@nuxt/bridge' export default defineNuxtConfig({ - // Your existing configuration + bridge: false }) ``` -## Update `tsconfig.json` +Try running `nuxt dev` once here. You will see that the application works as before. -If you are using TypeScript, you can edit your `tsconfig.json` to benefit from auto-generated Nuxt types: +(If 'bridge' is set to false, your application will operate without any changes as before.) -```diff [tsconfig.json] -{ -+ "extends": "./.nuxt/tsconfig.json", - "compilerOptions": { - ... - } -} -``` +## Upgrade Steps -::alert -As `.nuxt/tsconfig.json` is generated and not checked into version control, you'll need to generate that file before running your tests. Add `nuxi prepare` as a step before your tests, otherwise you'll see `TS5083: Cannot read file '~/.nuxt/tsconfig.json'` -:: -::alert -You may also need to add `@vue/runtime-dom` as a devDependency if you are struggling to get template type inference working with [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar). -:: -::alert -Keep in mind that all options extended from `./.nuxt/tsconfig.json` will be overwritten by the options defined in your `tsconfig.json`. -Overwriting options such as `"compilerOptions.paths"` with your own configuration will lead TypeScript to not factor in the module resolutions from `./.nuxt/tsconfig.json`. This can lead to module resolutions such as `#imports` not being recognized. +With Nuxt Bridge, the migration to Nuxt 3 can proceed in steps. +The below `Upgrade Steps` does not need to be done all at once. -In case you need to extend options provided by `./.nuxt/tsconfig.json` further, you can use the `alias` property within your `nuxt.config`. `nuxi` will pick them up and extend `./.nuxt/tsconfig.json` accordingly. -:: +- [TypeScript](/docs/bridge/typescript) -## Update Runtime Config +- [Migrate Legacy Composition API](/docs/bridge/bridge-composition-api) -Nuxt 3 approaches runtime config differently than Nuxt 2, using a new combined `runtimeConfig` option. +- [Plugins and Middleware](/docs/bridge/plugins-and-middleware) -First, you'll need to combine your `publicRuntimeConfig` and `privateRuntimeConfig` properties into a new one called `runtimeConfig`, with the public config within a key called `public`. +- [Migrate New Composition API](/docs/bridge/nuxt3-compatible-api) -```diff -// nuxt.config.js -- privateRuntimeConfig: { -- apiKey: process.env.NUXT_API_KEY || 'super-secret-key' -- }, -- publicRuntimeConfig: { -- websiteURL: 'https://public-data.com' -- } -+ runtimeConfig: { -+ apiKey: process.env.NUXT_API_KEY || 'super-secret-key', -+ public: { -+ websiteURL: 'https://public-data.com' -+ } -+ } -``` +- [Meta Tags](/docs/bridge/meta) -This also means that when you need to access public runtime config, it's behind a property called `public`. If you use public runtime config, you'll need to update your code. +- [Runtime Config](/docs/bridge/runtime-config) -```diff -// MyWidget.vue --
Website: {{ $config.websiteURL }}
-+
Website: {{ $config.public.websiteURL }}
-``` +- [Nitro](/docs/bridge/nitro) -## Migrate Composition API +- [Vite](/docs/bridge/vite) -If you were using `@vue/composition-api` or `@nuxtjs/composition-api`, please read the [composition api migration guide](/docs/bridge/bridge-composition-api). - -### Migrate from CommonJS to ESM +## Migrate from CommonJS to ESM Nuxt 3 natively supports TypeScript and ECMAScript Modules. Please check [Native ES Modules](/docs/guide/concepts/esm) for more info and upgrading. - -## Remove Incompatible and Obsolete Modules - -- Remove `@nuxt/content` (1.x). A rewrite for Nuxt 3 [is available](https://content.nuxtjs.org/) (2.x) -- Remove `nuxt-vite`: Bridge enables same functionality -- Remove `@nuxt/typescript-build`: Bridge enables same functionality -- Remove `@nuxt/typescript-runtime` and `nuxt-ts`: Nuxt 2 has built-in runtime support -- Remove `@nuxt/nitro`: Bridge injects same functionality -- Remove `@vue/composition-api` from your dependencies ([migration guide](/docs/bridge/bridge-composition-api)). -- Remove `@nuxtjs/composition-api` from your dependencies (and from your modules in `nuxt.config`) ([migration guide](/docs/bridge/bridge-composition-api)). - -## Exclude Built Nitro Folder From Git - -Add the folder `.output` to the `.gitignore` file. - -## Ensure Everything Goes Well - -✔️ Try with `nuxi dev` and `nuxi build` (or `nuxi generate`) to see if everything goes well. - -🐛 Is something wrong? Please let us know by creating an issue. Also, you can easily disable the bridge in the meantime: - -```ts [nuxt.config.js|ts] -import { defineNuxtConfig } from '@nuxt/bridge' -export default defineNuxtConfig({ - bridge: false // Temporarily disable bridge integration -}) -``` - -## New Plugins Format (Optional) - -You can now migrate to the Nuxt 3 plugins API, which is slightly different in format from Nuxt 2. - -Plugins now take only one argument (`nuxtApp`). You can find out more in [the docs](/docs/guide/directory-structure/plugins). - -```js -export default defineNuxtPlugin(nuxtApp => { - nuxtApp.provide('injected', () => 'my injected function') - // now available on `nuxtApp.$injected` -}) -``` - -::alert -If you want to use the new Nuxt composables (such as [`useNuxtApp`](/docs/api/composables/use-nuxt-app) or `useRuntimeConfig`) within your plugins, you will need to use the `defineNuxtPlugin` helper for those plugins. -:: - -::alert{type=warning} -Although a compatibility interface is provided via `nuxtApp.vueApp` you should avoid registering plugins, directives, mixins or components this way without adding your own logic to ensure they are not installed more than once, or this may cause a memory leak. -:: - -## New Middleware Format (Optional) - -You can now migrate to the Nuxt 3 middleware API, which is slightly different in format from Nuxt 2. - -Middleware now take only two argument (`to`, `from`). You can find out more in [the docs](/docs/guide/directory-structure/middleware). - -```js -export default defineNuxtRouteMiddleware((to) => { - if (to.path !== '/') { - return navigateTo('/') - } -}) -``` - -::alert{type=warning} -Use of `defineNuxtRouteMiddleware` is not supported outside of the middleware directory. -:: - -::alert{type=warning} -Nuxt Bridge does not support `definePageMeta`. -:: - -## New `useHead` (Optional) - -Nuxt Bridge provides a new Nuxt 3 meta API that can be accessed with a new [`useHead`](/docs/api/composables/use-head) composable. - -```vue - -``` - -You will also need to enable this feature explicitly in your `nuxt.config`: - -```js -import { defineNuxtConfig } from '@nuxt/bridge' -export default defineNuxtConfig({ - bridge: { - meta: true - } -}) -``` - -::alert -This [`useHead`](/docs/api/composables/use-head) composable uses `@vueuse/head` under the hood (rather than `vue-meta`) to manipulate your ``. You need to add `@vueuse/head` to your package.json file for it to work properly. -:: - -::alert{type=warning} -We recommend not using the native Nuxt 2 `head()` properties in addition to [`useHead`](/docs/api/composables/use-head) , as they may conflict. -:: - -For more information on how to use this composable, see [the docs](/docs/getting-started/seo-meta). - -## Feature Flags - -You can optionally disable some features from bridge or opt-in to less stable ones. In normal circumstances, it is always best to stick with defaults! - -You can check [bridge/src/module.ts](https://github.com/nuxt/bridge/blob/main/packages/bridge/src/module.ts) for latest defaults. - -```ts [nuxt.config.js|ts] -import { defineNuxtConfig } from '@nuxt/bridge' -export default defineNuxtConfig({ - bridge: { - - // -- Opt-in features -- - - // Use Vite as the bundler instead of webpack 4 - // vite: true, - - // Enable Nuxt 3 compatible useHead - // meta: true, - - // -- Default features -- - - // Use legacy server instead of Nitro - // nitro: false, - - // Disable Nuxt 3 compatible `nuxtApp` interface - // app: false, - - // Disable Composition API support - // capi: false, - - // ... or just disable legacy Composition API support - // capi: { - // legacy: false - // }, - - // Do not transpile modules - // transpile: false, - - // Disable +``` + +### Disabling Auto-imports + +If you want to disable auto-importing composables and utilities, you can set `imports.autoImport` to `false` in the `nuxt.config` file. + +```ts [nuxt.config.ts] +export default defineNuxtConfig({ + imports: { + autoImport: false + } +}) +``` + +This will disable auto-imports completely but it's still possible to use [explicit imports](#explicit-imports) from `#imports`. diff --git a/docs/6.bridge/6.meta.md b/docs/6.bridge/6.meta.md new file mode 100644 index 0000000000..346dd45145 --- /dev/null +++ b/docs/6.bridge/6.meta.md @@ -0,0 +1,109 @@ +# Meta Tags + +If you need to access the component state with `head`, you should migrate to using [`useHead`](/docs/api/composables/use-head) . + +If you need to use the Options API, there is a `head()` method you can use when you use `defineNuxtComponent`. + +## Migration + +### Set `bridge.meta` + +```js +import { defineNuxtConfig } from '@nuxt/bridge' +export default defineNuxtConfig({ + bridge: { + meta: true + } +}) +``` + +### Update head properties + +In your `nuxt.config`, rename `head` to `meta`. (Note that objects no longer have a `hid` key for deduplication.) + +::code-group + +```ts [Nuxt 2] +export default { + head: { + titleTemplate: '%s - Nuxt', + meta: [ + { charset: 'utf-8' }, + { name: 'viewport', content: 'width=device-width, initial-scale=1' }, + { hid: 'description', name: 'description', content: 'Meta description' } + ] + } +} +``` + +```ts [Nuxt 3] +export default defineNuxtConfig({ + app: { + head: { + titleTemplate: '%s - Nuxt', + meta: [ + { charset: 'utf-8' }, + { name: 'viewport', content: 'width=device-width, initial-scale=1' }, + { name: 'description', content: 'Meta description' } + ] + } + } +}) +``` + +:: + +## `useHead` Composables + +Nuxt Bridge provides a new Nuxt 3 meta API that can be accessed with a new [`useHead`](/docs/api/composables/use-head) composable. + +```vue + +``` + +::alert +This [`useHead`](/docs/api/composables/use-head) composable uses `@unhead/vue` under the hood (rather than `vue-meta`) to manipulate your ``. +:: + +::alert{type=warning} +We recommend not using the native Nuxt 2 `head()` properties in addition to [`useHead`](/docs/api/composables/use-head) , as they may conflict. +:: + +For more information on how to use this composable, see [the docs](/docs/getting-started/seo-meta). + +## Options API + +```vue + +``` + +## Title Template + +If you want to use a function (for full control), then this cannot be set in your nuxt.config, and it is recommended instead to set it within your `/layouts` directory. + +```vue [layouts/default.vue] + +``` diff --git a/docs/6.bridge/7.runtime-config.md b/docs/6.bridge/7.runtime-config.md new file mode 100644 index 0000000000..73e8e7d703 --- /dev/null +++ b/docs/6.bridge/7.runtime-config.md @@ -0,0 +1,31 @@ +# Runtime Config + +## Update Runtime Config + +Nuxt 3 approaches runtime config differently than Nuxt 2, using a new combined `runtimeConfig` option. + +First, you'll need to combine your `publicRuntimeConfig` and `privateRuntimeConfig` properties into a new one called `runtimeConfig`, with the public config within a key called `public`. + +```diff +// nuxt.config.js +- privateRuntimeConfig: { +- apiKey: process.env.NUXT_API_KEY || 'super-secret-key' +- }, +- publicRuntimeConfig: { +- websiteURL: 'https://public-data.com' +- } ++ runtimeConfig: { ++ apiKey: process.env.NUXT_API_KEY || 'super-secret-key', ++ public: { ++ websiteURL: 'https://public-data.com' ++ } ++ } +``` + +This also means that when you need to access public runtime config, it's behind a property called `public`. If you use public runtime config, you'll need to update your code. + +```diff +// MyWidget.vue +-
Website: {{ $config.websiteURL }}
++
Website: {{ $config.public.websiteURL }}
+``` diff --git a/docs/6.bridge/8.nitro.md b/docs/6.bridge/8.nitro.md new file mode 100644 index 0000000000..e5cb531579 --- /dev/null +++ b/docs/6.bridge/8.nitro.md @@ -0,0 +1,75 @@ +# Nitro + +## Remove Modules + +- Remove `@nuxt/nitro`: Bridge injects same functionality + +## Update Config + +```ts [nuxt.config.js|ts] +import { defineNuxtConfig } from '@nuxt/bridge' + +export default defineNuxtConfig({ + bridge: { + nitro: true + } +}) +``` + +## Update Your Scripts + +You will also need to update your scripts within your `package.json` to reflect the fact that Nuxt will now produce a Nitro server as build output. + +### Nuxi + +Nuxt 3 introduced the new Nuxt CLI command [`nuxi`](/docs/api/commands/add). Update your scripts as follows to leverage the better support from Nuxt Bridge: + +```diff +{ + "scripts": { +- "dev": "nuxt", ++ "dev": "nuxi dev", +- "build": "nuxt build", ++ "build": "nuxi build", +- "start": "nuxt start", ++ "start": "nuxi preview" + } +} +``` + +::alert +If `nitro: false`, use the `nuxt` command. +:: + +### Static Target + +If you have set `target: 'static'` in your `nuxt.config` then you need to ensure that you update your build script to be `nuxi generate`. + +```json [package.json] +{ + "scripts": { + "build": "nuxi generate" + } +} +``` + +### Server Target + +For all other situations, you can use the `nuxi build` command. + +```json [package.json] +{ + "scripts": { + "build": "nuxi build", + "start": "nuxi preview" + } +} +``` + +## Exclude Built Nitro Folder From Git + +Add the folder `.output` to the `.gitignore` file. + +## Ensure Everything Goes Well + +✔️ Try with `nuxi dev` and `nuxi build` (or `nuxi generate`) to see if everything goes well. diff --git a/docs/6.bridge/9.vite.md b/docs/6.bridge/9.vite.md new file mode 100644 index 0000000000..4bf7d289aa --- /dev/null +++ b/docs/6.bridge/9.vite.md @@ -0,0 +1,34 @@ +# Vite + +::alert{type=warning} +When using `vite`, [nitro](/docs/bridge/nitro) must have been configured. +:: + +## Remove Modules + +- Remove `nuxt-vite`: Bridge enables same functionality + +## Update Config + +```ts [nuxt.config.js|ts] +import { defineNuxtConfig } from '@nuxt/bridge' + +export default defineNuxtConfig({ + bridge: { + vite: true, + nitro: true + } +}) +``` + +## Configuration + +```ts [nuxt.config.js|ts] +import { defineNuxtConfig } from '@nuxt/bridge' + +export default defineNuxtConfig({ + vite: { + // Config for Vite + } +}) +``` From 6036e9d6a27d64430182f97f36ebb7fdbb5a4508 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 29 Aug 2023 23:06:41 +0100 Subject: [PATCH 739/912] fix(kit): respect `priority` when registering components dirs (#22882) --- packages/kit/src/components.ts | 1 + packages/nuxt/src/components/scan.ts | 12 +++++++++--- packages/schema/src/types/components.ts | 8 ++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/packages/kit/src/components.ts b/packages/kit/src/components.ts index 9200c91c3c..294714d273 100644 --- a/packages/kit/src/components.ts +++ b/packages/kit/src/components.ts @@ -12,6 +12,7 @@ export async function addComponentsDir (dir: ComponentsDir) { const nuxt = useNuxt() await assertNuxtCompatibility({ nuxt: '>=2.13' }, nuxt) nuxt.options.components = nuxt.options.components || [] + dir.priority ||= 0 nuxt.hook('components:dirs', (dirs) => { dirs.push(dir) }) } diff --git a/packages/nuxt/src/components/scan.ts b/packages/nuxt/src/components/scan.ts index cfee6e2ad0..4f367370b8 100644 --- a/packages/nuxt/src/components/scan.ts +++ b/packages/nuxt/src/components/scan.ts @@ -121,7 +121,7 @@ export async function scanComponents (dirs: ComponentsDir[], srcDir: string): Pr shortPath, export: 'default', // by default, give priority to scanned components - priority: 1 + priority: dir.priority ?? 1 } if (typeof dir.extendComponent === 'function') { @@ -135,9 +135,15 @@ export async function scanComponents (dirs: ComponentsDir[], srcDir: string): Pr } const existingComponent = components.find(c => c.pascalName === component.pascalName && ['all', component.mode].includes(c.mode)) + // Ignore component if component is already defined (with same mode) if (existingComponent) { - // Ignore component if component is already defined (with same mode) - warnAboutDuplicateComponent(componentName, filePath, existingComponent.filePath) + const existingPriority = existingComponent.priority ?? 0 + const newPriority = component.priority ?? 0 + + if (newPriority >= existingPriority) { + warnAboutDuplicateComponent(componentName, filePath, existingComponent.filePath) + } + continue } diff --git a/packages/schema/src/types/components.ts b/packages/schema/src/types/components.ts index 6ca1ab773f..010fae5ef0 100644 --- a/packages/schema/src/types/components.ts +++ b/packages/schema/src/types/components.ts @@ -85,6 +85,14 @@ export interface ComponentsDir extends ScanDir { * By default ('auto') it will set transpile: true if node_modules/ is in path. */ transpile?: 'auto' | boolean + /** + * This number allows configuring the behavior of overriding Nuxt components. + * It will be inherited by any components within the directory. + * + * If multiple components are provided with the same name, then higher priority + * components will be used instead of lower priority components. + */ + priority?: number } export interface ComponentsOptions { From 9991da6340b82bf39ac9d17431204192d82a32bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Wed, 30 Aug 2023 10:49:55 +0200 Subject: [PATCH 740/912] docs: rename nuxt-community to nuxt-modules --- docs/5.community/4.contribution.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/5.community/4.contribution.md b/docs/5.community/4.contribution.md index 2651311756..4e10ba1e41 100644 --- a/docs/5.community/4.contribution.md +++ b/docs/5.community/4.contribution.md @@ -13,8 +13,7 @@ There is a range of different ways you might be able to contribute to the Nuxt e The Nuxt ecosystem includes many different projects and organizations. For example: * [nuxt/](https://github.com/nuxt) - core repositories for the Nuxt framework itself. [**nuxt/nuxt**](https://github.com/nuxt/nuxt) contains the Nuxt framework (both versions 2 and 3). -* [nuxt-community/](https://github.com/nuxt-community) - community-contributed and maintained modules and libraries. There is a [process to migrate a module](/docs/guide/going-further/modules/#joining-nuxt-community) to `nuxt-community`. While these modules have individual maintainers, they are not dependent on a single person. -* [nuxt-contrib/](https://github.com/nuxt-contrib) - the previous home for libraries that are not specific to Nuxt but produced and used by the Nuxt team. +* [nuxt-modules/](https://github.com/nuxt-modules) - community-contributed and maintained modules and libraries. There is a [process to migrate a module](/docs/guide/going-further/modules/#joining-nuxt-modules-and-nuxtjs) to `nuxt-modules`. While these modules have individual maintainers, they are not dependent on a single person. * [unjs/](https://github.com/unjs) - many of these libraries are used throughout the Nuxt ecosystem. They are designed to be universal libraries that are framework- and environment-agnostic. We welcome contributions and usage by other frameworks and projects. ## How To Contribute From e92d99db34965625a6af7a543588c2421bc6b303 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Wed, 30 Aug 2023 11:05:19 +0200 Subject: [PATCH 741/912] docs: add banner for readme --- .github/assets/banner.svg | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/assets/banner.svg diff --git a/.github/assets/banner.svg b/.github/assets/banner.svg new file mode 100644 index 0000000000..ffe147f28a --- /dev/null +++ b/.github/assets/banner.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 681f9291584fac870938ccdc3fdf25e4d2031571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Wed, 30 Aug 2023 11:06:45 +0200 Subject: [PATCH 742/912] docs: simplify readme --- README.md | 145 ++++++++++++++++-------------------------------------- 1 file changed, 42 insertions(+), 103 deletions(-) diff --git a/README.md b/README.md index f5ea693f94..156b8e3525 100644 --- a/README.md +++ b/README.md @@ -1,113 +1,52 @@ +[![Nuxt banner](./.github/assets/banner.svg)](https://nuxt.com) -[![Nuxt banner](./.github/assets/banner.png)](https://nuxt.com) +# Nuxt -# 👋 Welcome to Nuxt - - -Nuxt's goal is to make web development intuitive and performant, with a great developer experience.
Learn more in the ['What is Nuxt?'](https://nuxt.com/docs/getting-started/introduction) section of our documentation. - - -

+

Version Downloads License - Website - Volta board -

+ Website + Discord +

- - - - - - - - - - - - - - - - - - - - -
-
-
- -
-

Documentation

-

- We highly recommend you take a look at the Nuxt documentation to level up. -

-
-
- -
-

Modules

-

- Discover our list of modules to supercharge your Nuxt project. Created by the Nuxt team and community. -

-
-
- -
-

Examples

-

- Explore different ways of using Nuxt features and get inspired with our list of examples. -

-
+Nuxt is a free and open-source framework with an intuitive and extendable way to create type-safe, performant and production-grade full-stack web applications and websites with Vue.js. - - - - - - - - - - - - - - - - - - - - -
-
-
- -
-

Reporting bugs

-

- Check out the Reporting Bugs page.

-

-
-
- -
-

Suggestions

-

- Check out the Contribution page. -

-
-
- -
-

Questions

-

- Check out the Getting Help page. -

-
+It provides a number of features that make it easy to build fast, SEO-friendly, and scalable web applications, including: +- Server-side rendering, Static Site Generation or Hybrid Rendering +- Automatic routing with code-splitting +- State management +- SEO Optimization +- Extandable with [100+ modules](https://nuxt.com/modules) +- Deployment to a variety of hosting platforms +- ...[and much more](https://nuxt.com) 🚀 + +## Getting Started + +Use the following command to create a new starter project. This will create a starter project with all the necessary files and dependencies: + +```bash +npx nuxi@latest nuxi init +``` + +Discover also [nuxt.new](https://nuxt.new): Open a Nuxt starter on CodeSandbox, StackBlitz or locally to get up and running in a few seconds. + +## Documentation + +We highly recommend you take a look at the [Nuxt documentation](https://nuxt.com/docs) to level up. It’s a great resource for learning more about the framework. It covers everything from getting started to advanced topics. + +## Modules + +Discover our [list of modules](https://nuxt.com/modules) to supercharge your Nuxt project, created by the Nuxt team and community. + +## Contribute + +We invite you to contribute and help improve Nuxt 💚 + +Here are a few ways you can get involved: +- **Reporting Bugs:** If you come across any bugs or issues, please check out the [reporting bugs guide](https://nuxt.com/docs/community/reporting-bugs) to learn how to submit a bug report. +- **Suggestions:** Have ideas to enhance Nuxt? We'd love to hear them! Check out the [contribution guide](https://nuxt.com/docs/community/contribution#creating-an-issue) to share your suggestions. +- **Questions:** If you have questions or need assistance, the [getting help guide](https://nuxt.com/docs/community/getting-help) provides resources to help you out. ## Local Development From ea5142176804e7d499d84cc8f544196170c8e04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Wed, 30 Aug 2023 11:09:45 +0200 Subject: [PATCH 743/912] docs: text center on banner --- .github/assets/banner.svg | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/.github/assets/banner.svg b/.github/assets/banner.svg index ffe147f28a..9a7abed71b 100644 --- a/.github/assets/banner.svg +++ b/.github/assets/banner.svg @@ -1,28 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + From aa0ea8bf2d71b59344a773bcebd776f89f4cdafd Mon Sep 17 00:00:00 2001 From: Andrey Yolkin Date: Wed, 30 Aug 2023 13:45:16 +0300 Subject: [PATCH 744/912] fix(kit): allow passing a string to `addLayout` (#22902) --- packages/kit/src/layout.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/src/layout.ts b/packages/kit/src/layout.ts index 01d176e968..91e50310c4 100644 --- a/packages/kit/src/layout.ts +++ b/packages/kit/src/layout.ts @@ -6,7 +6,7 @@ import { useNuxt } from './context' import { logger } from './logger' import { addTemplate } from './template' -export function addLayout (this: any, template: NuxtTemplate, name?: string) { +export function addLayout (this: any, template: NuxtTemplate | string, name?: string) { const nuxt = useNuxt() const { filename, src } = addTemplate(template) const layoutName = kebabCase(name || parse(filename).name).replace(/["']/g, '') From 9610cf03dbf92c202a8b755c4cdcc6985bfacd56 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 30 Aug 2023 15:37:57 +0100 Subject: [PATCH 745/912] chore: track `nuxi-edge` rather than `nuxi-ng` --- scripts/bump-edge.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/bump-edge.ts b/scripts/bump-edge.ts index ca968d1440..c2050ef3fa 100644 --- a/scripts/bump-edge.ts +++ b/scripts/bump-edge.ts @@ -5,7 +5,7 @@ import { determineBumpType, loadWorkspace } from './_utils' const nightlyPackages = { nitropack: 'nitropack-edge', h3: 'h3-nightly', - nuxi: 'nuxi-ng' + nuxi: 'nuxi-edge' } async function main () { From 1f98f34c8e6911eb7c9713398c09fcbf66a51d78 Mon Sep 17 00:00:00 2001 From: Jonas Thelemann Date: Thu, 31 Aug 2023 10:42:05 +0200 Subject: [PATCH 746/912] docs: clarify that 'it' is `` (#22912) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Damian Głowala --- docs/2.guide/2.directory-structure/3.app.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/2.guide/2.directory-structure/3.app.md b/docs/2.guide/2.directory-structure/3.app.md index dc8a5744ec..da3facadba 100644 --- a/docs/2.guide/2.directory-structure/3.app.md +++ b/docs/2.guide/2.directory-structure/3.app.md @@ -34,7 +34,7 @@ If you have a [`pages/`](/docs/guide/directory-structure/pages) directory, to di ``` ::alert{type=danger} -Since Nuxt 3 uses [``](https://vuejs.org/guide/built-ins/suspense.html#suspense) inside ``, it cannot be set as a root element. +Since `` internally uses the [``](https://vuejs.org/guide/built-ins/suspense.html#suspense) component, `` cannot be set as a root element. :: ::alert{type=warning} From 2d469711627f5b864cec6127f3597358861539f7 Mon Sep 17 00:00:00 2001 From: Alex Liu Date: Thu, 31 Aug 2023 17:19:26 +0800 Subject: [PATCH 747/912] fix(nuxt): ensure middleware is processed when returning `true` (#22905) --- packages/nuxt/src/app/plugins/router.ts | 5 +++-- packages/nuxt/src/pages/runtime/plugins/router.ts | 1 + test/fixtures/basic/middleware/abort.global.ts | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/app/plugins/router.ts b/packages/nuxt/src/app/plugins/router.ts index 06c5764c31..4060ca79fa 100644 --- a/packages/nuxt/src/app/plugins/router.ts +++ b/packages/nuxt/src/app/plugins/router.ts @@ -58,7 +58,7 @@ function getRouteFromPath (fullPath: string | Partial) { } } -type RouteGuardReturn = void | Error | string | false +type RouteGuardReturn = void | Error | string | boolean interface RouteGuard { (to: Route, from: Route): RouteGuardReturn | Promise @@ -130,7 +130,7 @@ export default defineNuxtPlugin<{ route: Route, router: Router }>({ // Cancel navigation if (result === false || result instanceof Error) { return } // Redirect - if (result) { return handleNavigation(result, true) } + if (typeof result === 'string' && result.length) { return handleNavigation(result, true) } } for (const handler of hooks['resolve:before']) { @@ -250,6 +250,7 @@ export default defineNuxtPlugin<{ route: Route, router: Router }>({ return nuxtApp.runWithContext(() => showError(error)) } } + if (result === true) { continue } if (result || result === false) { return result } } } diff --git a/packages/nuxt/src/pages/runtime/plugins/router.ts b/packages/nuxt/src/pages/runtime/plugins/router.ts index c535db1b6e..b8de9504b9 100644 --- a/packages/nuxt/src/pages/runtime/plugins/router.ts +++ b/packages/nuxt/src/pages/runtime/plugins/router.ts @@ -179,6 +179,7 @@ const plugin: Plugin<{ router: Router }> = defineNuxtPlugin({ } } + if (result === true) { continue } if (result || result === false) { return result } diff --git a/test/fixtures/basic/middleware/abort.global.ts b/test/fixtures/basic/middleware/abort.global.ts index efc4f51753..d278883f76 100644 --- a/test/fixtures/basic/middleware/abort.global.ts +++ b/test/fixtures/basic/middleware/abort.global.ts @@ -4,4 +4,5 @@ export default defineNuxtRouteMiddleware((to) => { statusCode: 401 }) } + return true }) From 559a72370b12dc05f9d0d225e46fafd299695bcc Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Thu, 31 Aug 2023 11:27:23 +0100 Subject: [PATCH 748/912] docs: update examples of dynamic `pageKey` (#22920) --- docs/2.guide/2.directory-structure/1.pages.md | 2 +- docs/3.api/2.components/2.nuxt-page.md | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/2.guide/2.directory-structure/1.pages.md b/docs/2.guide/2.directory-structure/1.pages.md index dec282c074..3caab9c2ae 100644 --- a/docs/2.guide/2.directory-structure/1.pages.md +++ b/docs/2.guide/2.directory-structure/1.pages.md @@ -205,7 +205,7 @@ If you want more control over when the `` component is re-rendered (fo ``` diff --git a/docs/3.api/2.components/2.nuxt-page.md b/docs/3.api/2.components/2.nuxt-page.md index 19b5878b7b..9d050c5c86 100644 --- a/docs/3.api/2.components/2.nuxt-page.md +++ b/docs/3.api/2.components/2.nuxt-page.md @@ -34,6 +34,12 @@ For example, passing `static` key, `NuxtPage` component is rendered only once wh ``` +You can also use a dynamic key based on the current route. (Don't use `$route` object here as it can cause problems with how `` renders pages with ``.) + +```html + +``` + Alternatively, `pageKey` can be passed as a `key` value via `definePageMeta` from the ` +``` + ## Layout and Transition `` renders incoming content via ``, which is then wrapped around Vue’s `` component to activate layout transition. For this to work as expected, it is recommended that `` is **not** the root element of the page component. From 19145386e3388d31d2db071a6dea0885ef18c8cf Mon Sep 17 00:00:00 2001 From: Harlan Wilton Date: Tue, 5 Sep 2023 12:25:46 +0200 Subject: [PATCH 766/912] fix(nuxt): resolve head instance from Nuxt app (#22973) --- docs/1.getting-started/4.styling.md | 2 +- docs/1.getting-started/5.seo-meta.md | 2 +- docs/3.api/1.composables/use-head-safe.md | 2 +- docs/3.api/1.composables/use-head.md | 2 +- packages/nuxt/package.json | 6 +- .../nuxt/src/head/runtime/plugins/unhead.ts | 9 ++- packages/schema/package.json | 2 +- pnpm-lock.yaml | 70 ++++++++++--------- test/bundle.test.ts | 8 +-- 9 files changed, 57 insertions(+), 46 deletions(-) diff --git a/docs/1.getting-started/4.styling.md b/docs/1.getting-started/4.styling.md index 9178f331a9..2059a445a1 100644 --- a/docs/1.getting-started/4.styling.md +++ b/docs/1.getting-started/4.styling.md @@ -129,7 +129,7 @@ useHead({ }) ``` -Nuxt uses `unhead` under the hood, and you can refer to its full documentation [here](https://unhead.harlanzw.com/). +Nuxt uses `unhead` under the hood, and you can refer to its full documentation [here](https://unhead.unjs.io/). ### Modifying The Rendered Head With A Nitro Plugin diff --git a/docs/1.getting-started/5.seo-meta.md b/docs/1.getting-started/5.seo-meta.md index 5a9a336e67..74cc43861f 100644 --- a/docs/1.getting-started/5.seo-meta.md +++ b/docs/1.getting-started/5.seo-meta.md @@ -36,7 +36,7 @@ Shortcuts are available to make configuration easier: `charset` and `viewport`. ## `useHead` The [`useHead`](/docs/api/composables/use-head) composable function allows you to manage your head tags in a programmatic and reactive way, -powered by [Unhead](https://unhead.harlanzw.com/). +powered by [Unhead](https://unhead.unjs.io/). As with all composables, it can only be used with a components `setup` and lifecycle hooks. diff --git a/docs/3.api/1.composables/use-head-safe.md b/docs/3.api/1.composables/use-head-safe.md index 5f44f93a7f..62dc5c2f3e 100644 --- a/docs/3.api/1.composables/use-head-safe.md +++ b/docs/3.api/1.composables/use-head-safe.md @@ -24,7 +24,7 @@ useHeadSafe({ // ``` -Read more on [unhead documentation](https://unhead.harlanzw.com/guide/composables/use-head-safe). +Read more on [unhead documentation](https://unhead.unjs.io/usage/composables/use-head-safe). ## Type diff --git a/docs/3.api/1.composables/use-head.md b/docs/3.api/1.composables/use-head.md index 71475a6604..6a03e5ada0 100644 --- a/docs/3.api/1.composables/use-head.md +++ b/docs/3.api/1.composables/use-head.md @@ -4,7 +4,7 @@ description: useHead customizes the head properties of individual pages of your # useHead -The [`useHead`](/docs/api/composables/use-head) composable function allows you to manage your head tags in a programmatic and reactive way, powered by [Unhead](https://unhead.harlanzw.com/). If the data comes from a user or other untrusted source, we recommend you check out [`useHeadSafe`](/docs/api/composables/use-head-safe) +The [`useHead`](/docs/api/composables/use-head) composable function allows you to manage your head tags in a programmatic and reactive way, powered by [Unhead](https://unhead.unjs.io/). If the data comes from a user or other untrusted source, we recommend you check out [`useHeadSafe`](/docs/api/composables/use-head-safe) :ReadMore{link="/docs/getting-started/seo-meta"} diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index c2d5de5467..d9accd9039 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -58,9 +58,9 @@ "@nuxt/telemetry": "^2.4.1", "@nuxt/ui-templates": "^1.3.1", "@nuxt/vite-builder": "workspace:../vite", - "@unhead/dom": "^1.3.9", - "@unhead/ssr": "^1.3.9", - "@unhead/vue": "^1.3.9", + "@unhead/dom": "^1.5.2", + "@unhead/ssr": "^1.5.2", + "@unhead/vue": "^1.5.2", "@vue/shared": "^3.3.4", "acorn": "8.10.0", "c12": "^1.4.2", diff --git a/packages/nuxt/src/head/runtime/plugins/unhead.ts b/packages/nuxt/src/head/runtime/plugins/unhead.ts index 64394f402b..2b691be843 100644 --- a/packages/nuxt/src/head/runtime/plugins/unhead.ts +++ b/packages/nuxt/src/head/runtime/plugins/unhead.ts @@ -1,18 +1,25 @@ -import { createHead as createClientHead } from '@unhead/vue' +import { createHead as createClientHead, setHeadInjectionHandler } from '@unhead/vue' import { renderDOMHead } from '@unhead/dom' import { defineNuxtPlugin } from '#app/nuxt' +import { useNuxtApp } from '#app' // @ts-expect-error virtual file import unheadPlugins from '#build/unhead-plugins.mjs' export default defineNuxtPlugin({ name: 'nuxt:head', + enforce: 'pre', setup (nuxtApp) { const head = import.meta.server ? nuxtApp.ssrContext!.head : createClientHead({ plugins: unheadPlugins }) + // allow useHead to be used outside a Vue context but within a Nuxt context + setHeadInjectionHandler( + // need a fresh instance of the nuxt app to avoid parallel requests interfering with each other + () => useNuxtApp().vueApp._context.provides.usehead + ) // nuxt.config appHead is set server-side within the renderer nuxtApp.vueApp.use(head) diff --git a/packages/schema/package.json b/packages/schema/package.json index f8618b6a96..c3683d4d56 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -32,7 +32,7 @@ "@types/file-loader": "5.0.1", "@types/pug": "2.0.6", "@types/sass-loader": "8.0.5", - "@unhead/schema": "1.3.9", + "@unhead/schema": "1.5.2", "@vitejs/plugin-vue": "4.3.3", "@vitejs/plugin-vue-jsx": "3.0.2", "@vue/compiler-core": "3.3.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8fd2669033..5cc2e13fbb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -264,14 +264,14 @@ importers: specifier: ^14.18.0 || >=16.10.0 version: 18.17.11 '@unhead/dom': - specifier: ^1.3.9 - version: 1.3.9 + specifier: ^1.5.2 + version: 1.5.2 '@unhead/ssr': - specifier: ^1.3.9 - version: 1.3.9 + specifier: ^1.5.2 + version: 1.5.2 '@unhead/vue': - specifier: ^1.3.9 - version: 1.3.9(vue@3.3.4) + specifier: ^1.5.2 + version: 1.5.2(vue@3.3.4) '@vue/shared': specifier: ^3.3.4 version: 3.3.4 @@ -479,8 +479,8 @@ importers: specifier: 8.0.5 version: 8.0.5 '@unhead/schema': - specifier: 1.3.9 - version: 1.3.9 + specifier: 1.5.2 + version: 1.5.2 '@vitejs/plugin-vue': specifier: 4.3.3 version: 4.3.3(vite@4.4.9)(vue@3.3.4) @@ -2526,6 +2526,7 @@ packages: dependencies: is-glob: 4.0.3 micromatch: 4.0.5 + napi-wasm: 1.1.0 bundledDependencies: - napi-wasm @@ -3166,41 +3167,41 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@unhead/dom@1.3.9: - resolution: {integrity: sha512-bTbPFjXjmk8MC0cBC+7Bgf0Mcw62gsE2XqOhMH/qQo6NP4vR2XGxqy054Y7MGurznR1JVAqxUiU3cR/oxWFk3g==} + /@unhead/dom@1.5.2: + resolution: {integrity: sha512-lEDxqFSGb3Ye1TD7Kr3kRsMOSv5R2ldJ/uYh2mRFungYfv3TjOUfxvGgMs2vRjatPDpV4IUWr3E1BASayN8CnA==} dependencies: - '@unhead/schema': 1.3.9 - '@unhead/shared': 1.3.9 + '@unhead/schema': 1.5.2 + '@unhead/shared': 1.5.2 dev: false - /@unhead/schema@1.3.9: - resolution: {integrity: sha512-iIa0dczd2qTOxwYZbVR+iAKdlELnLTlKSFsN/YuJ/33sRi5VFa9D8TDBEPLec9gpcjB/bH0FhERfR4bb4UbRuA==} + /@unhead/schema@1.5.2: + resolution: {integrity: sha512-7nmcN332yuXzWPzzlqD/F/wOXTaIKn3cRaPxTkU+eJLNGmAsQ9i5p4P5x9AgduZD/NGbJG/h+wM+/cB0psMiKQ==} dependencies: hookable: 5.5.3 zhead: 2.0.10 - /@unhead/shared@1.3.9: - resolution: {integrity: sha512-lBXK1gzsg3XOnsOgYUVTT2RKOvM+AB0myDXkwQb0jsJB3Tc1qVOSz9JAOR+ZGrosSr7+Iv91+Fu/0E+knxaj2Q==} + /@unhead/shared@1.5.2: + resolution: {integrity: sha512-gHjquSnyJ9SOV20zxGffZP0t9mkBAHTGgFhUl9HB8FrL9tp4Jovjc01O0jn/NRNaBICsQBxDryj5lpuTHFIM9g==} dependencies: - '@unhead/schema': 1.3.9 + '@unhead/schema': 1.5.2 dev: false - /@unhead/ssr@1.3.9: - resolution: {integrity: sha512-FTt4IQOAxHiSfRM7IoJJiFnUEBH8CG5zkJOQ/LydG19QpYa9/AGOi4xvngeCr++1as51p2hWoRO6gPxSRhV8cA==} + /@unhead/ssr@1.5.2: + resolution: {integrity: sha512-wse2uOg2Fh+MM9unoM0T1Q/dYwmaNdUWzR4ovnMKvQ6K7HpzCJaETHLzbS5g/TXLRIFd7eA3mTQCnp0iPoaoYw==} dependencies: - '@unhead/schema': 1.3.9 - '@unhead/shared': 1.3.9 + '@unhead/schema': 1.5.2 + '@unhead/shared': 1.5.2 dev: false - /@unhead/vue@1.3.9(vue@3.3.4): - resolution: {integrity: sha512-rVAsRLBc+3Y//NRmr7vmRs5yhIf65jYSvcj0V5DtDfDwql7BbGgc3VIIEvY0+EjLQuNsS5kxwm78LSPCIl/3Xw==} + /@unhead/vue@1.5.2(vue@3.3.4): + resolution: {integrity: sha512-DkKJJfNmiwkq41PiNmPcONVdNN1wRp8KTHCCOnOBt1nAdhIAj83ykIdpkLGLseJTzy4C2efiR1lips/42ZsNTg==} peerDependencies: vue: '>=2.7 || >=3' dependencies: - '@unhead/schema': 1.3.9 - '@unhead/shared': 1.3.9 + '@unhead/schema': 1.5.2 + '@unhead/shared': 1.5.2 hookable: 5.5.3 - unhead: 1.3.9 + unhead: 1.5.2 vue: 3.3.4 dev: false @@ -7063,7 +7064,7 @@ packages: graceful-fs: 4.2.11 /jstransformer@1.0.0: - resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==} + resolution: {integrity: sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=} dependencies: is-promise: 2.2.2 promise: 7.3.1 @@ -7947,6 +7948,9 @@ packages: engines: {node: ^14 || ^16 || >=18} hasBin: true + /napi-wasm@1.1.0: + resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} + /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true @@ -10206,7 +10210,7 @@ packages: engines: {node: '>=0.6'} /token-stream@1.0.0: - resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} + resolution: {integrity: sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=} dev: false /totalist@1.1.0: @@ -10461,12 +10465,12 @@ packages: node-fetch-native: 1.4.0 pathe: 1.1.1 - /unhead@1.3.9: - resolution: {integrity: sha512-vzWZJW8l6dlNM5egJs3c7NMHWZ+iw2x7jCZtU2rrhwFINlKCaA3J42fvOeDxx6t5QR9dfZ96HF2AeNlCcPT+bQ==} + /unhead@1.5.2: + resolution: {integrity: sha512-KLsz9MCMEhVEeaI4YsoALnr4xk6k+xZ2JW9xjJxsae6AvHNTZQzRbavuPRQ3tIw2hIHoGetyPKiYjFteORNQMg==} dependencies: - '@unhead/dom': 1.3.9 - '@unhead/schema': 1.3.9 - '@unhead/shared': 1.3.9 + '@unhead/dom': 1.5.2 + '@unhead/schema': 1.5.2 + '@unhead/shared': 1.5.2 hookable: 5.5.3 dev: false diff --git a/test/bundle.test.ts b/test/bundle.test.ts index 9ea2358084..dd56092c01 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -19,7 +19,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM for (const outputDir of ['.output', '.output-inline']) { it('default client bundle size', async () => { const clientStats = await analyzeSizes('**/*.js', join(rootDir, outputDir, 'public')) - expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"95.5k"') + expect.soft(roundToKilobytes(clientStats.totalBytes)).toMatchInlineSnapshot('"95.9k"') expect(clientStats.files.map(f => f.replace(/\..*\.js/, '.js'))).toMatchInlineSnapshot(` [ "_nuxt/entry.js", @@ -32,7 +32,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"299k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"300k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"1822k"') @@ -71,10 +71,10 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM const serverDir = join(rootDir, '.output-inline/server') const serverStats = await analyzeSizes(['**/*.mjs', '!node_modules'], serverDir) - expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"605k"') + expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"607k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"70.6k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"71.0k"') const packages = modules.files .filter(m => m.endsWith('package.json')) From beb7410777b170a318d3dd901c6e57453764a9aa Mon Sep 17 00:00:00 2001 From: Saman Date: Tue, 5 Sep 2023 12:27:00 +0200 Subject: [PATCH 767/912] fix(nuxt): always use increment for id with client side islands (#22975) --- packages/nuxt/src/app/components/nuxt-island.ts | 2 +- test/basic.test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index 0c4fb8c67b..63f1303b0b 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -86,7 +86,7 @@ export default defineComponent({ ssrHTML.value = renderedHTML } const slotProps = computed(() => getSlotProps(ssrHTML.value)) - const uid = ref(ssrHTML.value.match(SSR_UID_RE)?.[1] ?? randomUUID()) + const uid = ref(ssrHTML.value.match(SSR_UID_RE)?.[1] ?? getId()) const availableSlots = computed(() => [...ssrHTML.value.matchAll(SLOTNAME_RE)].map(m => m[1])) const html = computed(() => { diff --git a/test/basic.test.ts b/test/basic.test.ts index 3e4db35cdc..1f1df4b479 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1386,7 +1386,7 @@ describe('server components/islands', () => { await page.getByText('Go to page without lazy server component').click() const text = await page.innerText('pre') - expect(text).toMatchInlineSnapshot('" End page
This is a .server (20ms) async component that was very long ...
42
This is a .server (20ms) async component that was very long ...
42
"') + expect(text).toMatchInlineSnapshot('" End page
This is a .server (20ms) async component that was very long ...
42
This is a .server (20ms) async component that was very long ...
42
"') expect(text).toContain('async component that was very long') // Wait for all pending micro ticks to be cleared From 5390ca43212656b7f169153024f9b19bcd10ec25 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Tue, 5 Sep 2023 12:29:28 +0200 Subject: [PATCH 768/912] docs: add information about server component context (#22964) --- docs/2.guide/2.directory-structure/1.components.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/2.guide/2.directory-structure/1.components.md b/docs/2.guide/2.directory-structure/1.components.md index 70fab5e8c8..fcabd10a68 100644 --- a/docs/2.guide/2.directory-structure/1.components.md +++ b/docs/2.guide/2.directory-structure/1.components.md @@ -314,6 +314,19 @@ Now you can register server-only components with the `.server` suffix and use th Server-only components use `` under the hood, meaning that `lazy` prop and `#fallback` slot are both passed down to ``. +#### Server Component Context + +When rendering a server-only or island component, `` makes a fetch request which comes back with a `NuxtIslandResponse`. (This is an internal request if rendered on the server, or a request that you can see in the network tab if it's rendering on client-side navigation.) + +This means: + +- A new Vue app will be created server-side to create the `NuxtIslandResponse`. +- A new 'island context' will be created while rendering the component. +- You can't access the 'island context' from the rest of your app and you can't access the context of the rest of your app from the island component. In other words, the server component or island is _isolated_ from the rest of your app. +- Your plugins will run again when rendering the island, unless they have `env: { islands: false }` set (which you can do in an object-syntax plugin). + +Within an island component, you can access its island context through `nuxtApp.ssrContext.islandContext`. Note that while island components are still marked as experimental, the format of this context may change. + ::alert{type=info} Slots can be interactive and are wrapped within a `
` with `display: contents;` :: From 754955545ec83a61e2f0f456deb530acae59d7a0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 12:27:41 +0100 Subject: [PATCH 769/912] chore(deps): update all non-major dependencies (main) (#22866) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- .github/workflows/ci.yml | 4 +- .github/workflows/ecosystem-ci-trigger.yml | 2 +- .github/workflows/scorecards.yml | 2 +- package.json | 18 +- packages/kit/package.json | 10 +- packages/nuxt/package.json | 18 +- .../app/components/client-fallback.client.ts | 1 - .../src/app/components/nuxt-error-page.vue | 1 - .../nuxt/src/app/components/nuxt-layout.ts | 3 +- .../app/components/nuxt-loading-indicator.ts | 1 - .../nuxt/src/app/components/route-provider.ts | 2 - packages/schema/package.json | 6 +- packages/test-utils/package.json | 4 +- packages/vite/package.json | 10 +- packages/webpack/package.json | 14 +- pnpm-lock.yaml | 921 +++++++++--------- 16 files changed, 496 insertions(+), 521 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b2ee4cac54..6a9caed8de 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -86,7 +86,7 @@ jobs: run: pnpm install - name: Initialize CodeQL - uses: github/codeql-action/init@a09933a12a80f87b87005513f0abb1494c27a716 # v2.21.4 + uses: github/codeql-action/init@00e563ead9f72a8461b24876bee2d0c2e8bd2ee8 # v2.21.5 with: languages: javascript queries: +security-and-quality @@ -98,7 +98,7 @@ jobs: path: packages - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@a09933a12a80f87b87005513f0abb1494c27a716 # v2.21.4 + uses: github/codeql-action/analyze@00e563ead9f72a8461b24876bee2d0c2e8bd2ee8 # v2.21.5 with: category: "/language:javascript" diff --git a/.github/workflows/ecosystem-ci-trigger.yml b/.github/workflows/ecosystem-ci-trigger.yml index 559feb0b81..57c6fc26a6 100644 --- a/.github/workflows/ecosystem-ci-trigger.yml +++ b/.github/workflows/ecosystem-ci-trigger.yml @@ -64,7 +64,7 @@ jobs: repo: pr.head.repo.full_name } - id: generate-token - uses: tibdex/github-app-token@b62528385c34dbc9f38e5f4225ac829252d1ea92 # v1.8.0 + uses: tibdex/github-app-token@0d49dd721133f900ebd5e0dff2810704e8defbc6 # v1.8.2 with: app_id: ${{ secrets.ECOSYSTEM_CI_GITHUB_APP_ID }} private_key: ${{ secrets.ECOSYSTEM_CI_GITHUB_APP_PRIVATE_KEY }} diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 4b655b8560..6a381b5d85 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -66,6 +66,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@a09933a12a80f87b87005513f0abb1494c27a716 # v2.21.4 + uses: github/codeql-action/upload-sarif@00e563ead9f72a8461b24876bee2d0c2e8bd2ee8 # v2.21.5 with: sarif_file: results.sarif diff --git a/package.json b/package.json index f91f47cec6..f45371e990 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "scripts": { "build": "pnpm --filter './packages/**' prepack", "build:stub": "pnpm --filter './packages/**' prepack --stub", - "cleanup": "rimraf 'packages/**/node_modules' 'examples/**/node_modules' 'docs/node_modules' 'playground/node_modules' 'node_modules'", + "cleanup": "rimraf 'packages/**/node_modules' 'playground/node_modules' 'node_modules'", "dev": "pnpm play", "lint": "eslint --ext .vue,.ts,.js,.mjs .", "lint:fix": "eslint --ext .vue,.ts,.js,.mjs . --fix", @@ -42,10 +42,10 @@ "@actions/core": "1.10.0", "@nuxt/test-utils": "workspace:*", "@nuxt/webpack-builder": "workspace:*", - "@nuxtjs/eslint-config-typescript": "12.0.0", + "@nuxtjs/eslint-config-typescript": "12.1.0", "@types/fs-extra": "11.0.1", - "@types/node": "18.17.11", - "@types/semver": "7.5.0", + "@types/node": "18.17.14", + "@types/semver": "7.5.1", "case-police": "0.6.1", "chalk": "5.3.0", "changelogen": "0.5.5", @@ -60,13 +60,13 @@ "fs-extra": "11.1.1", "globby": "13.2.2", "h3": "1.8.1", - "happy-dom": "10.11.0", + "happy-dom": "10.11.2", "jiti": "1.19.3", "markdownlint-cli": "^0.33.0", "nitropack": "2.6.2", - "nuxi": "3.7.2", + "nuxi": "3.7.3", "nuxt": "workspace:*", - "nuxt-vitest": "0.10.2", + "nuxt-vitest": "0.10.4", "ofetch": "1.3.3", "pathe": "1.1.1", "playwright-core": "1.37.1", @@ -77,13 +77,13 @@ "ufo": "1.3.0", "vite": "4.4.9", "vitest": "0.33.0", - "vitest-environment-nuxt": "0.10.2", + "vitest-environment-nuxt": "0.10.4", "vue": "3.3.4", "vue-eslint-parser": "9.3.1", "vue-router": "4.2.4", "vue-tsc": "1.8.8" }, - "packageManager": "pnpm@8.6.12", + "packageManager": "pnpm@8.7.1", "engines": { "node": "^14.18.0 || >=16.10.0" } diff --git a/packages/kit/package.json b/packages/kit/package.json index 1900cd6339..18763b70a1 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -20,7 +20,7 @@ "prepack": "unbuild" }, "dependencies": { - "@nuxt/schema": "workspace:../schema", + "@nuxt/schema": "workspace:*", "c12": "^1.4.2", "consola": "^3.2.3", "defu": "^6.1.2", @@ -29,20 +29,20 @@ "ignore": "^5.2.4", "jiti": "^1.19.3", "knitwork": "^1.0.0", - "mlly": "^1.4.1", + "mlly": "^1.4.2", "pathe": "^1.1.1", "pkg-types": "^1.0.3", "scule": "^1.0.0", "semver": "^7.5.4", "ufo": "^1.3.0", "unctx": "^2.3.1", - "unimport": "^3.2.0", + "unimport": "^3.3.0", "untyped": "^1.4.0" }, "devDependencies": { "@types/hash-sum": "1.0.0", - "@types/lodash-es": "4.17.8", - "@types/semver": "7.5.0", + "@types/lodash-es": "4.17.9", + "@types/semver": "7.5.1", "lodash-es": "4.17.21", "nitropack": "2.6.2", "unbuild": "latest", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index d9accd9039..7bd5d2c41d 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -53,11 +53,11 @@ }, "dependencies": { "@nuxt/devalue": "^2.0.2", - "@nuxt/kit": "workspace:../kit", - "@nuxt/schema": "workspace:../schema", + "@nuxt/kit": "workspace:*", + "@nuxt/schema": "workspace:*", "@nuxt/telemetry": "^2.4.1", "@nuxt/ui-templates": "^1.3.1", - "@nuxt/vite-builder": "workspace:../vite", + "@nuxt/vite-builder": "workspace:*", "@unhead/dom": "^1.5.2", "@unhead/ssr": "^1.5.2", "@unhead/vue": "^1.5.2", @@ -80,10 +80,10 @@ "klona": "^2.0.6", "knitwork": "^1.0.0", "magic-string": "^0.30.3", - "mlly": "^1.4.1", + "mlly": "^1.4.2", "nitropack": "^2.6.2", - "nuxi": "^3.7.2", - "nypm": "^0.3.1", + "nuxi": "^3.7.3", + "nypm": "^0.3.2", "ofetch": "^1.3.3", "ohash": "^1.1.3", "pathe": "^1.1.1", @@ -94,11 +94,11 @@ "std-env": "^3.4.3", "strip-literal": "^1.3.0", "ufo": "^1.3.0", - "ultrahtml": "^1.3.0", + "ultrahtml": "^1.4.0", "uncrypto": "^0.1.3", "unctx": "^2.3.1", "unenv": "^1.7.4", - "unimport": "^3.2.0", + "unimport": "^3.3.0", "unplugin": "^1.4.0", "unplugin-vue-router": "^0.6.4", "untyped": "^1.4.0", @@ -112,7 +112,7 @@ "@types/estree": "1.0.1", "@types/fs-extra": "11.0.1", "@types/prompts": "2.4.4", - "@vitejs/plugin-vue": "4.3.3", + "@vitejs/plugin-vue": "4.3.4", "unbuild": "latest", "vite": "4.4.9", "vitest": "0.33.0" diff --git a/packages/nuxt/src/app/components/client-fallback.client.ts b/packages/nuxt/src/app/components/client-fallback.client.ts index 2f32e0530c..d1f249ba3f 100644 --- a/packages/nuxt/src/app/components/client-fallback.client.ts +++ b/packages/nuxt/src/app/components/client-fallback.client.ts @@ -31,7 +31,6 @@ export default defineComponent({ setup (props, ctx) { const mounted = ref(false) // This is deliberate - `uid` should not be provided by user but by a transform plugin and will not be reactive. - // eslint-disable-next-line vue/no-setup-props-destructure const ssrFailed = useState(`${props.uid}`) if (ssrFailed.value) { diff --git a/packages/nuxt/src/app/components/nuxt-error-page.vue b/packages/nuxt/src/app/components/nuxt-error-page.vue index cf32d26835..d3fa6e2636 100644 --- a/packages/nuxt/src/app/components/nuxt-error-page.vue +++ b/packages/nuxt/src/app/components/nuxt-error-page.vue @@ -10,7 +10,6 @@ const props = defineProps({ }) // Deliberately prevent reactive update when error is cleared -// eslint-disable-next-line vue/no-setup-props-destructure const _error = props.error // TODO: extract to a separate utility diff --git a/packages/nuxt/src/app/components/nuxt-layout.ts b/packages/nuxt/src/app/components/nuxt-layout.ts index 752978b2ab..2b19a8d6d5 100644 --- a/packages/nuxt/src/app/components/nuxt-layout.ts +++ b/packages/nuxt/src/app/components/nuxt-layout.ts @@ -26,7 +26,6 @@ const LayoutLoader = defineComponent({ // This is a deliberate hack - this component must always be called with an explicit key to ensure // that setup reruns when the name changes. - // eslint-disable-next-line vue/no-setup-props-destructure const LayoutComponent = await layouts[props.name]().then((r: any) => r.default || r) return () => h(LayoutComponent, props.layoutProps, context.slots) @@ -103,7 +102,7 @@ const LayoutProvider = defineComponent({ }, setup (props, context) { // Prevent reactivity when the page will be rerendered in a different suspense fork - // eslint-disable-next-line vue/no-setup-props-destructure + const name = props.name if (props.shouldProvide) { provide(LayoutMetaSymbol, { diff --git a/packages/nuxt/src/app/components/nuxt-loading-indicator.ts b/packages/nuxt/src/app/components/nuxt-loading-indicator.ts index 01cf194bb2..a3ee0c937a 100644 --- a/packages/nuxt/src/app/components/nuxt-loading-indicator.ts +++ b/packages/nuxt/src/app/components/nuxt-loading-indicator.ts @@ -27,7 +27,6 @@ export default defineComponent({ }, setup (props, { slots }) { // TODO: use computed values in useLoadingIndicator - // eslint-disable-next-line vue/no-setup-props-destructure const indicator = useLoadingIndicator({ duration: props.duration, throttle: props.throttle diff --git a/packages/nuxt/src/app/components/route-provider.ts b/packages/nuxt/src/app/components/route-provider.ts index 5db44c3f79..96a2bf0296 100644 --- a/packages/nuxt/src/app/components/route-provider.ts +++ b/packages/nuxt/src/app/components/route-provider.ts @@ -20,9 +20,7 @@ export const RouteProvider = defineComponent({ }, setup (props) { // Prevent reactivity when the page will be rerendered in a different suspense fork - // eslint-disable-next-line vue/no-setup-props-destructure const previousKey = props.renderKey - // eslint-disable-next-line vue/no-setup-props-destructure const previousRoute = props.route // Provide a reactive route within the page diff --git a/packages/schema/package.json b/packages/schema/package.json index c3683d4d56..d1f61c7c12 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -33,10 +33,10 @@ "@types/pug": "2.0.6", "@types/sass-loader": "8.0.5", "@unhead/schema": "1.5.2", - "@vitejs/plugin-vue": "4.3.3", + "@vitejs/plugin-vue": "4.3.4", "@vitejs/plugin-vue-jsx": "3.0.2", "@vue/compiler-core": "3.3.4", - "esbuild-loader": "4.0.1", + "esbuild-loader": "4.0.2", "h3": "1.8.1", "ignore": "5.2.4", "nitropack": "2.6.2", @@ -59,7 +59,7 @@ "postcss-import-resolver": "^2.0.0", "std-env": "^3.4.3", "ufo": "^1.3.0", - "unimport": "^3.2.0", + "unimport": "^3.3.0", "untyped": "^1.4.0" }, "engines": { diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index 767d2e48e9..b4907512a0 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -22,8 +22,8 @@ "prepack": "unbuild" }, "dependencies": { - "@nuxt/kit": "workspace:../kit", - "@nuxt/schema": "workspace:../schema", + "@nuxt/kit": "workspace:*", + "@nuxt/schema": "workspace:*", "consola": "^3.2.3", "defu": "^6.1.2", "execa": "^7.2.0", diff --git a/packages/vite/package.json b/packages/vite/package.json index 479852c8e2..2e323cf18f 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -18,7 +18,7 @@ "prepack": "unbuild" }, "devDependencies": { - "@nuxt/schema": "workspace:../schema", + "@nuxt/schema": "workspace:*", "@types/clear": "0.1.2", "@types/estree": "1.0.1", "@types/fs-extra": "11.0.1", @@ -26,9 +26,9 @@ "vue": "3.3.4" }, "dependencies": { - "@nuxt/kit": "workspace:../kit", + "@nuxt/kit": "workspace:*", "@rollup/plugin-replace": "^5.0.2", - "@vitejs/plugin-vue": "^4.3.3", + "@vitejs/plugin-vue": "^4.3.4", "@vitejs/plugin-vue-jsx": "^3.0.2", "autoprefixer": "^10.4.15", "clear": "^0.1.0", @@ -44,12 +44,12 @@ "h3": "^1.8.1", "knitwork": "^1.0.0", "magic-string": "^0.30.3", - "mlly": "^1.4.1", + "mlly": "^1.4.2", "ohash": "^1.1.3", "pathe": "^1.1.1", "perfect-debounce": "^1.0.0", "pkg-types": "^1.0.3", - "postcss": "^8.4.28", + "postcss": "^8.4.29", "postcss-import": "^15.1.0", "postcss-url": "^10.1.3", "rollup-plugin-visualizer": "^5.9.2", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index c708960276..461283910b 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -20,13 +20,13 @@ }, "dependencies": { "@nuxt/friendly-errors-webpack-plugin": "^2.5.2", - "@nuxt/kit": "workspace:../kit", + "@nuxt/kit": "workspace:*", "autoprefixer": "^10.4.15", "css-loader": "^6.8.1", "css-minimizer-webpack-plugin": "^5.0.1", "cssnano": "^6.0.1", "defu": "^6.1.2", - "esbuild-loader": "^4.0.1", + "esbuild-loader": "^4.0.2", "escape-string-regexp": "^5.0.0", "estree-walker": "^3.0.3", "file-loader": "^6.2.0", @@ -38,11 +38,11 @@ "magic-string": "^0.30.3", "memfs": "^4.2.1", "mini-css-extract-plugin": "^2.7.6", - "mlly": "^1.4.1", + "mlly": "^1.4.2", "ohash": "^1.1.3", "pathe": "^1.1.1", "pify": "^6.1.0", - "postcss": "^8.4.28", + "postcss": "^8.4.29", "postcss-import": "^15.1.0", "postcss-loader": "^7.3.3", "postcss-url": "^10.1.3", @@ -55,17 +55,17 @@ "vue-bundle-renderer": "^2.0.0", "vue-loader": "^17.2.2", "webpack": "^5.88.2", - "webpack-bundle-analyzer": "^4.9.0", + "webpack-bundle-analyzer": "^4.9.1", "webpack-dev-middleware": "^6.1.1", "webpack-hot-middleware": "^2.25.4", "webpack-virtual-modules": "^0.5.0", "webpackbar": "^5.0.2" }, "devDependencies": { - "@nuxt/schema": "workspace:../schema", + "@nuxt/schema": "workspace:*", "@types/fs-extra": "11.0.1", "@types/hash-sum": "1.0.0", - "@types/lodash-es": "4.17.8", + "@types/lodash-es": "4.17.9", "@types/pify": "5.0.1", "@types/webpack-bundle-analyzer": "4.6.0", "@types/webpack-hot-middleware": "2.25.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5cc2e13fbb..cfaf9ceb09 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,17 +29,17 @@ importers: specifier: workspace:* version: link:packages/webpack '@nuxtjs/eslint-config-typescript': - specifier: 12.0.0 - version: 12.0.0(eslint@8.48.0)(typescript@5.2.2) + specifier: 12.1.0 + version: 12.1.0(eslint@8.48.0)(typescript@5.2.2) '@types/fs-extra': specifier: 11.0.1 version: 11.0.1 '@types/node': - specifier: 18.17.11 - version: 18.17.11 + specifier: 18.17.14 + version: 18.17.14 '@types/semver': - specifier: 7.5.0 - version: 7.5.0 + specifier: 7.5.1 + version: 7.5.1 case-police: specifier: 0.6.1 version: 0.6.1 @@ -63,7 +63,7 @@ importers: version: 8.48.0 eslint-plugin-import: specifier: 2.28.1 - version: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) + version: 2.28.1(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) eslint-plugin-jsdoc: specifier: 41.1.2 version: 41.1.2(eslint@8.48.0) @@ -83,8 +83,8 @@ importers: specifier: 1.8.1 version: 1.8.1 happy-dom: - specifier: 10.11.0 - version: 10.11.0 + specifier: 10.11.2 + version: 10.11.2 jiti: specifier: 1.19.3 version: 1.19.3 @@ -95,14 +95,14 @@ importers: specifier: 2.6.2 version: 2.6.2 nuxi: - specifier: 3.7.2 - version: 3.7.2 + specifier: 3.7.3 + version: 3.7.3 nuxt: specifier: workspace:* version: link:packages/nuxt nuxt-vitest: - specifier: 0.10.2 - version: 0.10.2(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.3)(happy-dom@10.11.0)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + specifier: 0.10.4 + version: 0.10.4(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.4)(happy-dom@10.11.2)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) ofetch: specifier: 1.3.3 version: 1.3.3 @@ -129,13 +129,13 @@ importers: version: 1.3.0 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.11) + version: 4.4.9(@types/node@18.17.14) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.11.0) + version: 0.33.0(happy-dom@10.11.2) vitest-environment-nuxt: - specifier: 0.10.2 - version: 0.10.2(happy-dom@10.11.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + specifier: 0.10.4 + version: 0.10.4(happy-dom@10.11.2)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) vue: specifier: 3.3.4 version: 3.3.4 @@ -153,7 +153,7 @@ importers: devDependencies: '@nuxt-themes/docus': specifier: 1.14.6 - version: 1.14.6(nuxt@packages+nuxt)(postcss@8.4.28)(vue@3.3.4) + version: 1.14.6(nuxt@packages+nuxt)(postcss@8.4.29)(vue@3.3.4) packages/kit: dependencies: @@ -185,8 +185,8 @@ importers: specifier: ^1.0.0 version: 1.0.0 mlly: - specifier: ^1.4.1 - version: 1.4.1 + specifier: ^1.4.2 + version: 1.4.2 pathe: specifier: ^1.1.1 version: 1.1.1 @@ -206,8 +206,8 @@ importers: specifier: ^2.3.1 version: 2.3.1 unimport: - specifier: ^3.2.0 - version: 3.2.0(rollup@3.28.1) + specifier: ^3.3.0 + version: 3.3.0(rollup@3.28.1) untyped: specifier: ^1.4.0 version: 1.4.0 @@ -216,11 +216,11 @@ importers: specifier: 1.0.0 version: 1.0.0 '@types/lodash-es': - specifier: 4.17.8 - version: 4.17.8 + specifier: 4.17.9 + version: 4.17.9 '@types/semver': - specifier: 7.5.0 - version: 7.5.0 + specifier: 7.5.1 + version: 7.5.1 lodash-es: specifier: 4.17.21 version: 4.17.21 @@ -232,10 +232,10 @@ importers: version: 2.0.0(typescript@5.2.2) vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.11) + version: 4.4.9(@types/node@18.17.14) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.11.0) + version: 0.33.0(happy-dom@10.11.2) webpack: specifier: 5.88.2 version: 5.88.2 @@ -262,7 +262,7 @@ importers: version: link:../vite '@types/node': specifier: ^14.18.0 || >=16.10.0 - version: 18.17.11 + version: 18.17.14 '@unhead/dom': specifier: ^1.5.2 version: 1.5.2 @@ -330,17 +330,17 @@ importers: specifier: ^0.30.3 version: 0.30.3 mlly: - specifier: ^1.4.1 - version: 1.4.1 + specifier: ^1.4.2 + version: 1.4.2 nitropack: specifier: ^2.6.2 version: 2.6.2 nuxi: - specifier: ^3.7.2 - version: 3.7.2 + specifier: ^3.7.3 + version: 3.7.3 nypm: - specifier: ^0.3.1 - version: 0.3.1 + specifier: ^0.3.2 + version: 0.3.2 ofetch: specifier: ^1.3.3 version: 1.3.3 @@ -372,8 +372,8 @@ importers: specifier: ^1.3.0 version: 1.3.0 ultrahtml: - specifier: ^1.3.0 - version: 1.3.0 + specifier: ^1.4.0 + version: 1.4.0 uncrypto: specifier: ^0.1.3 version: 0.1.3 @@ -384,8 +384,8 @@ importers: specifier: ^1.7.4 version: 1.7.4 unimport: - specifier: ^3.2.0 - version: 3.2.0(rollup@3.28.1) + specifier: ^3.3.0 + version: 3.3.0(rollup@3.28.1) unplugin: specifier: ^1.4.0 version: 1.4.0 @@ -421,17 +421,17 @@ importers: specifier: 2.4.4 version: 2.4.4 '@vitejs/plugin-vue': - specifier: 4.3.3 - version: 4.3.3(vite@4.4.9)(vue@3.3.4) + specifier: 4.3.4 + version: 4.3.4(vite@4.4.9)(vue@3.3.4) unbuild: specifier: latest version: 2.0.0(typescript@5.2.2) vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.11) + version: 4.4.9(@types/node@18.17.14) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.11.0) + version: 0.33.0(happy-dom@10.11.2) packages/schema: dependencies: @@ -460,8 +460,8 @@ importers: specifier: ^1.3.0 version: 1.3.0 unimport: - specifier: ^3.2.0 - version: 3.2.0(rollup@3.28.1) + specifier: ^3.3.0 + version: 3.3.0(rollup@3.28.1) untyped: specifier: ^1.4.0 version: 1.4.0 @@ -482,8 +482,8 @@ importers: specifier: 1.5.2 version: 1.5.2 '@vitejs/plugin-vue': - specifier: 4.3.3 - version: 4.3.3(vite@4.4.9)(vue@3.3.4) + specifier: 4.3.4 + version: 4.3.4(vite@4.4.9)(vue@3.3.4) '@vitejs/plugin-vue-jsx': specifier: 3.0.2 version: 3.0.2(vite@4.4.9)(vue@3.3.4) @@ -491,8 +491,8 @@ importers: specifier: 3.3.4 version: 3.3.4 esbuild-loader: - specifier: 4.0.1 - version: 4.0.1(webpack@5.88.2) + specifier: 4.0.2 + version: 4.0.2(webpack@5.88.2) h3: specifier: 1.8.1 version: 1.8.1 @@ -510,7 +510,7 @@ importers: version: 2.3.1 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.11) + version: 4.4.9(@types/node@18.17.14) vue: specifier: 3.3.4 version: 3.3.4 @@ -560,7 +560,7 @@ importers: specifier: ^1.3.0 version: 1.3.0 vue: - specifier: ^3.3.4 + specifier: 3.3.4 version: 3.3.4 devDependencies: '@jest/globals': @@ -574,7 +574,7 @@ importers: version: 2.0.0(typescript@5.2.2) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.11.0) + version: 0.33.0(happy-dom@10.11.2) packages/vite: dependencies: @@ -585,14 +585,14 @@ importers: specifier: ^5.0.2 version: 5.0.2(rollup@3.28.1) '@vitejs/plugin-vue': - specifier: ^4.3.3 - version: 4.3.3(vite@4.4.9)(vue@3.3.4) + specifier: ^4.3.4 + version: 4.3.4(vite@4.4.9)(vue@3.3.4) '@vitejs/plugin-vue-jsx': specifier: ^3.0.2 version: 3.0.2(vite@4.4.9)(vue@3.3.4) autoprefixer: specifier: ^10.4.15 - version: 10.4.15(postcss@8.4.28) + version: 10.4.15(postcss@8.4.29) clear: specifier: ^0.1.0 version: 0.1.0 @@ -601,7 +601,7 @@ importers: version: 3.2.3 cssnano: specifier: ^6.0.1 - version: 6.0.1(postcss@8.4.28) + version: 6.0.1(postcss@8.4.29) defu: specifier: ^6.1.2 version: 6.1.2 @@ -633,8 +633,8 @@ importers: specifier: ^0.30.3 version: 0.30.3 mlly: - specifier: ^1.4.1 - version: 1.4.1 + specifier: ^1.4.2 + version: 1.4.2 ohash: specifier: ^1.1.3 version: 1.1.3 @@ -648,14 +648,14 @@ importers: specifier: ^1.0.3 version: 1.0.3 postcss: - specifier: ^8.4.28 - version: 8.4.28 + specifier: ^8.4.29 + version: 8.4.29 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.28) + version: 15.1.0(postcss@8.4.29) postcss-url: specifier: ^10.1.3 - version: 10.1.3(postcss@8.4.28) + version: 10.1.3(postcss@8.4.29) rollup-plugin-visualizer: specifier: ^5.9.2 version: 5.9.2(rollup@3.28.1) @@ -673,10 +673,10 @@ importers: version: 1.4.0 vite: specifier: 4.4.9 - version: 4.4.9(@types/node@18.17.11) + version: 4.4.9(@types/node@18.17.14) vite-node: specifier: ^0.33.0 - version: 0.33.0(@types/node@18.17.11) + version: 0.33.0(@types/node@18.17.14) vite-plugin-checker: specifier: ^0.6.2 version: 0.6.2(eslint@8.48.0)(typescript@5.2.2)(vite@4.4.9)(vue-tsc@1.8.8) @@ -713,7 +713,7 @@ importers: version: link:../kit autoprefixer: specifier: ^10.4.15 - version: 10.4.15(postcss@8.4.28) + version: 10.4.15(postcss@8.4.29) css-loader: specifier: ^6.8.1 version: 6.8.1(webpack@5.88.2) @@ -722,13 +722,13 @@ importers: version: 5.0.1(webpack@5.88.2) cssnano: specifier: ^6.0.1 - version: 6.0.1(postcss@8.4.28) + version: 6.0.1(postcss@8.4.29) defu: specifier: ^6.1.2 version: 6.1.2 esbuild-loader: - specifier: ^4.0.1 - version: 4.0.1(webpack@5.88.2) + specifier: ^4.0.2 + version: 4.0.2(webpack@5.88.2) escape-string-regexp: specifier: ^5.0.0 version: 5.0.0 @@ -763,8 +763,8 @@ importers: specifier: ^2.7.6 version: 2.7.6(webpack@5.88.2) mlly: - specifier: ^1.4.1 - version: 1.4.1 + specifier: ^1.4.2 + version: 1.4.2 ohash: specifier: ^1.1.3 version: 1.1.3 @@ -775,17 +775,17 @@ importers: specifier: ^6.1.0 version: 6.1.0 postcss: - specifier: ^8.4.28 - version: 8.4.28 + specifier: ^8.4.29 + version: 8.4.29 postcss-import: specifier: ^15.1.0 - version: 15.1.0(postcss@8.4.28) + version: 15.1.0(postcss@8.4.29) postcss-loader: specifier: ^7.3.3 - version: 7.3.3(postcss@8.4.28)(webpack@5.88.2) + version: 7.3.3(postcss@8.4.29)(webpack@5.88.2) postcss-url: specifier: ^10.1.3 - version: 10.1.3(postcss@8.4.28) + version: 10.1.3(postcss@8.4.29) pug-plain-loader: specifier: ^1.1.0 version: 1.1.0(pug@3.0.2) @@ -814,8 +814,8 @@ importers: specifier: ^5.88.2 version: 5.88.2 webpack-bundle-analyzer: - specifier: ^4.9.0 - version: 4.9.0 + specifier: ^4.9.1 + version: 4.9.1 webpack-dev-middleware: specifier: ^6.1.1 version: 6.1.1(webpack@5.88.2) @@ -839,8 +839,8 @@ importers: specifier: 1.0.0 version: 1.0.0 '@types/lodash-es': - specifier: 4.17.8 - version: 4.17.8 + specifier: 4.17.9 + version: 4.17.9 '@types/pify': specifier: 5.0.1 version: 5.0.1 @@ -899,7 +899,7 @@ importers: version: 1.3.3 vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.11.0) + version: 0.33.0(happy-dom@10.11.2) vue: specifier: 3.3.4 version: 3.3.4 @@ -1979,7 +1979,7 @@ packages: /@iconify/vue@4.1.1(vue@3.3.4): resolution: {integrity: sha512-RL85Bm/DAe8y6rT6pux7D2FJSiUEM/TPfyK7GrbAOfTSwrhvwJW+S5yijdGcmtXouA8MtuH9C7l4hiSE4mLMjg==} peerDependencies: - vue: '>=3' + vue: 3.3.4 dependencies: '@iconify/types': 2.0.0 vue: 3.3.4 @@ -2022,7 +2022,7 @@ packages: dependencies: '@jest/fake-timers': 29.6.4 '@jest/types': 29.6.3 - '@types/node': 18.17.11 + '@types/node': 18.17.14 jest-mock: 29.6.3 dev: true @@ -2049,7 +2049,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 18.17.11 + '@types/node': 18.17.14 jest-message-util: 29.6.3 jest-mock: 29.6.3 jest-util: 29.6.3 @@ -2103,7 +2103,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 18.17.11 + '@types/node': 18.17.14 '@types/yargs': 17.0.24 chalk: 4.1.2 @@ -2194,12 +2194,12 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 - /@nuxt-themes/docus@1.14.6(nuxt@packages+nuxt)(postcss@8.4.28)(vue@3.3.4): + /@nuxt-themes/docus@1.14.6(nuxt@packages+nuxt)(postcss@8.4.29)(vue@3.3.4): resolution: {integrity: sha512-tkSG7j0jhVo53wEpK9V48hIvaK0XEzVU64hXhFfnIMv6LJu99cKOC//boebPbN9qLbJmkBdo4IAIJ0tN5MD0qw==} dependencies: - '@nuxt-themes/elements': 0.9.4(postcss@8.4.28)(vue@3.3.4) - '@nuxt-themes/tokens': 1.9.1(postcss@8.4.28)(vue@3.3.4) - '@nuxt-themes/typography': 0.11.0(postcss@8.4.28)(vue@3.3.4) + '@nuxt-themes/elements': 0.9.4(postcss@8.4.29)(vue@3.3.4) + '@nuxt-themes/tokens': 1.9.1(postcss@8.4.29)(vue@3.3.4) + '@nuxt-themes/typography': 0.11.0(postcss@8.4.29)(vue@3.3.4) '@nuxt/content': 2.7.2 '@nuxthq/studio': 0.13.4 '@vueuse/integrations': 10.3.0(focus-trap@7.5.2)(fuse.js@6.6.2)(vue@3.3.4) @@ -2237,10 +2237,10 @@ packages: - vue dev: true - /@nuxt-themes/elements@0.9.4(postcss@8.4.28)(vue@3.3.4): + /@nuxt-themes/elements@0.9.4(postcss@8.4.29)(vue@3.3.4): resolution: {integrity: sha512-d7XgHc/gjMpre26+N76APL1vlnQHiZTOk61GC4I/ZYQuioSfoKuoIP+Ixrr0QgM22j4MRBtAaBnDAg1wRJrDCQ==} dependencies: - '@nuxt-themes/tokens': 1.9.1(postcss@8.4.28)(vue@3.3.4) + '@nuxt-themes/tokens': 1.9.1(postcss@8.4.29)(vue@3.3.4) '@vueuse/core': 9.13.0(vue@3.3.4) transitivePeerDependencies: - '@vue/composition-api' @@ -2250,12 +2250,12 @@ packages: - vue dev: true - /@nuxt-themes/tokens@1.9.1(postcss@8.4.28)(vue@3.3.4): + /@nuxt-themes/tokens@1.9.1(postcss@8.4.29)(vue@3.3.4): resolution: {integrity: sha512-5C28kfRvKnTX8Tux+xwyaf+2pxKgQ53dC9l6C33sZwRRyfUJulGDZCFjKbuNq4iqVwdGvkFSQBYBYjFAv6t75g==} dependencies: '@nuxtjs/color-mode': 3.3.0 '@vueuse/core': 9.13.0(vue@3.3.4) - pinceau: 0.18.9(postcss@8.4.28) + pinceau: 0.18.9(postcss@8.4.29) transitivePeerDependencies: - '@vue/composition-api' - postcss @@ -2264,13 +2264,13 @@ packages: - vue dev: true - /@nuxt-themes/typography@0.11.0(postcss@8.4.28)(vue@3.3.4): + /@nuxt-themes/typography@0.11.0(postcss@8.4.29)(vue@3.3.4): resolution: {integrity: sha512-TqyvD7sDWnqGmL00VtuI7JdmNTPL5/g957HCAWNzcNp+S20uJjW/FXSdkM76d4JSVDHvBqw7Wer3RsqVhqvA4w==} dependencies: '@nuxtjs/color-mode': 3.3.0 nuxt-config-schema: 0.4.6 nuxt-icon: 0.3.3(vue@3.3.4) - pinceau: 0.18.9(postcss@8.4.28) + pinceau: 0.18.9(postcss@8.4.29) ufo: 1.3.0 transitivePeerDependencies: - postcss @@ -2404,18 +2404,18 @@ packages: pathe: 1.1.1 dev: true - /@nuxtjs/eslint-config-typescript@12.0.0(eslint@8.48.0)(typescript@5.2.2): - resolution: {integrity: sha512-HJR0ho5MYuOCFjkL+eMX/VXbUwy36J12DUMVy+dj3Qz1GYHwX92Saxap3urFzr8oPkzzFiuOknDivfCeRBWakg==} + /@nuxtjs/eslint-config-typescript@12.1.0(eslint@8.48.0)(typescript@5.2.2): + resolution: {integrity: sha512-l2fLouDYwdAvCZEEw7wGxOBj+i8TQcHFu3zMPTLqKuv1qu6WcZIr0uztkbaa8ND1uKZ9YPqKx6UlSOjM4Le69Q==} peerDependencies: - eslint: ^8.23.0 + eslint: ^8.48.0 dependencies: - '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.48.0)(typescript@5.2.2) - '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@5.2.2) + '@nuxtjs/eslint-config': 12.0.0(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) + '@typescript-eslint/eslint-plugin': 6.6.0(@typescript-eslint/parser@6.6.0)(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.6.0(eslint@8.48.0)(typescript@5.2.2) eslint: 8.48.0 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.48.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) - eslint-plugin-vue: 9.16.1(eslint@8.48.0) + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.6.0)(eslint-plugin-import@2.28.1)(eslint@8.48.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) + eslint-plugin-vue: 9.17.0(eslint@8.48.0) transitivePeerDependencies: - eslint-import-resolver-node - eslint-import-resolver-webpack @@ -2423,19 +2423,19 @@ packages: - typescript dev: true - /@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0): + /@nuxtjs/eslint-config@12.0.0(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0): resolution: {integrity: sha512-ewenelo75x0eYEUK+9EBXjc/OopQCvdkmYmlZuoHq5kub/vtiRpyZ/autppwokpHUq8tiVyl2ejMakoiHiDTrg==} peerDependencies: eslint: ^8.23.0 dependencies: eslint: 8.48.0 eslint-config-standard: 17.1.0(eslint-plugin-import@2.28.1)(eslint-plugin-n@15.7.0)(eslint-plugin-promise@6.1.1)(eslint@8.48.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) eslint-plugin-n: 15.7.0(eslint@8.48.0) eslint-plugin-node: 11.1.0(eslint@8.48.0) eslint-plugin-promise: 6.1.1(eslint@8.48.0) eslint-plugin-unicorn: 44.0.2(eslint@8.48.0) - eslint-plugin-vue: 9.16.1(eslint@8.48.0) + eslint-plugin-vue: 9.17.0(eslint@8.48.0) local-pkg: 0.4.3 transitivePeerDependencies: - '@typescript-eslint/parser' @@ -2526,7 +2526,6 @@ packages: dependencies: is-glob: 4.0.3 micromatch: 4.0.5 - napi-wasm: 1.1.0 bundledDependencies: - napi-wasm @@ -2583,18 +2582,6 @@ packages: dev: true optional: true - /@pkgr/utils@2.4.2: - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dependencies: - cross-spawn: 7.0.3 - fast-glob: 3.3.1 - is-glob: 4.0.3 - open: 9.1.0 - picocolors: 1.0.0 - tslib: 2.6.1 - dev: true - /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} @@ -2788,7 +2775,7 @@ packages: /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 dev: true /@types/debug@4.1.8: @@ -2822,13 +2809,13 @@ packages: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} dependencies: '@types/jsonfile': 6.1.1 - '@types/node': 18.17.11 + '@types/node': 18.17.14 dev: true /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 dev: true /@types/hash-sum@1.0.0: @@ -2844,7 +2831,7 @@ packages: /@types/http-proxy@1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 /@types/istanbul-lib-coverage@2.0.4: resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} @@ -2869,11 +2856,11 @@ packages: /@types/jsonfile@6.1.1: resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 dev: true - /@types/lodash-es@4.17.8: - resolution: {integrity: sha512-euY3XQcZmIzSy7YH5+Unb3b2X12Wtk54YWINBvvGQ5SmMvwb11JQskGsfkH/5HXK77Kr8GF0wkVDIxzAisWtog==} + /@types/lodash-es@4.17.9: + resolution: {integrity: sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==} dependencies: '@types/lodash': 4.14.196 dev: true @@ -2895,11 +2882,11 @@ packages: /@types/node-sass@4.11.3: resolution: {integrity: sha512-wXPCn3t9uu5rR4zXNSLasZHQMuRzUKBsdi4MsgT8uq4Lp1gQQo+T2G23tGj4SSgDHeNBle6vGseZtM2XV/X9bw==} dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 dev: true - /@types/node@18.17.11: - resolution: {integrity: sha512-r3hjHPBu+3LzbGBa8DHnr/KAeTEEOrahkcL+cZc4MaBMTM+mk8LtXR+zw+nqfjuDZZzYTYgTcpHuP+BEQk069g==} + /@types/node@18.17.14: + resolution: {integrity: sha512-ZE/5aB73CyGqgQULkLG87N9GnyGe5TcQjv34pwS8tfBs1IkCh0ASM69mydb2znqd6v0eX+9Ytvk6oQRqu8T1Vw==} /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -2920,7 +2907,7 @@ packages: /@types/prompts@2.4.4: resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==} dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 kleur: 3.0.3 dev: true @@ -2934,14 +2921,14 @@ packages: /@types/sass-loader@8.0.5: resolution: {integrity: sha512-3b3lQ+UwWanaPBzOcP1YeNTR4q0Klt2UEezhdIjDXkTnQ93F+fnv+z1tMsQBAopY0b+c5ATN5pHQ+vfzxaRnFg==} dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 '@types/node-sass': 4.11.3 '@types/webpack': 4.41.33 sass: 1.64.2 dev: true - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + /@types/semver@7.5.1: + resolution: {integrity: sha512-cJRQXpObxfNKkFAZbJl2yjWtJCqELQIdShsogr1d2MilP8dKD9TE/nEKHkJgUNHdGKCQaf9HbIynuV2csLGVLg==} dev: true /@types/source-list-map@0.1.2: @@ -2981,7 +2968,7 @@ packages: /@types/webpack-bundle-analyzer@4.6.0: resolution: {integrity: sha512-XeQmQCCXdZdap+A/60UKmxW5Mz31Vp9uieGlHB3T4z/o2OLVLtTI3bvTuS6A2OWd/rbAAQiGGWIEFQACu16szA==} dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 tapable: 2.2.1 webpack: 5.88.2 transitivePeerDependencies: @@ -3007,7 +2994,7 @@ packages: /@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 '@types/source-list-map': 0.1.2 source-map: 0.7.4 dev: true @@ -3021,7 +3008,7 @@ packages: /@types/webpack@4.41.33: resolution: {integrity: sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==} dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 '@types/tapable': 1.0.8 '@types/uglify-js': 3.17.1 '@types/webpack-sources': 3.2.0 @@ -3037,47 +3024,49 @@ packages: dependencies: '@types/yargs-parser': 21.0.0 - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.48.0)(typescript@5.2.2): - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@6.6.0(@typescript-eslint/parser@6.6.0)(eslint@8.48.0)(typescript@5.2.2): + resolution: {integrity: sha512-CW9YDGTQnNYMIo5lMeuiIG08p4E0cXrXTbcZ2saT/ETE7dWUrNxlijsQeU04qAAKkILiLzdQz+cGFxCJjaZUmA==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.48.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.6.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.6.0 + '@typescript-eslint/type-utils': 6.6.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.6.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.6.0 debug: 4.3.4 eslint: 8.48.0 graphemer: 1.4.0 ignore: 5.2.4 - natural-compare-lite: 1.4.0 + natural-compare: 1.4.0 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.2.2) + ts-api-utils: 1.0.2(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.48.0)(typescript@5.2.2): - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@6.6.0(eslint@8.48.0)(typescript@5.2.2): + resolution: {integrity: sha512-setq5aJgUwtzGrhW177/i+DMLqBaJbdwGj2CPIVFFLE0NCliy5ujIdLHd2D1ysmlmsjdL2GWW+hR85neEfc12w==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.6.0 + '@typescript-eslint/types': 6.6.0 + '@typescript-eslint/typescript-estree': 6.6.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.6.0 debug: 4.3.4 eslint: 8.48.0 typescript: 5.2.2 @@ -3085,85 +3074,84 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@5.62.0: - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/scope-manager@6.6.0: + resolution: {integrity: sha512-pT08u5W/GT4KjPUmEtc2kSYvrH8x89cVzkA0Sy2aaOUIw6YxOIjA8ilwLr/1fLjOedX1QAuBpG9XggWqIIfERw==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/types': 6.6.0 + '@typescript-eslint/visitor-keys': 6.6.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.48.0)(typescript@5.2.2): - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/type-utils@6.6.0(eslint@8.48.0)(typescript@5.2.2): + resolution: {integrity: sha512-8m16fwAcEnQc69IpeDyokNO+D5spo0w1jepWWY2Q6y5ZKNuj5EhVQXjtVAeDDqvW6Yg7dhclbsz6rTtOvcwpHg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: '*' + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.6.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.6.0(eslint@8.48.0)(typescript@5.2.2) debug: 4.3.4 eslint: 8.48.0 - tsutils: 3.21.0(typescript@5.2.2) + ts-api-utils: 1.0.2(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.62.0: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/types@6.6.0: + resolution: {integrity: sha512-CB6QpJQ6BAHlJXdwUmiaXDBmTqIE2bzGTDLADgvqtHWuhfNP3rAOK7kAgRMAET5rDRr9Utt+qAzRBdu3AhR3sg==} + engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2): - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/typescript-estree@6.6.0(typescript@5.2.2): + resolution: {integrity: sha512-hMcTQ6Al8MP2E6JKBAaSxSVw5bDhdmbCEhGW/V8QXkb9oNsFkA4SBuOMYVPxD3jbtQ4R/vSODBsr76R6fP3tbA==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@typescript-eslint/types': 6.6.0 + '@typescript-eslint/visitor-keys': 6.6.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.2.2) + ts-api-utils: 1.0.2(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.48.0)(typescript@5.2.2): - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/utils@6.6.0(eslint@8.48.0)(typescript@5.2.2): + resolution: {integrity: sha512-mPHFoNa2bPIWWglWYdR0QfY9GN0CfvvXX1Sv6DlSTive3jlMTUy+an67//Gysc+0Me9pjitrq0LJp0nGtLgftw==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) '@types/json-schema': 7.0.12 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) + '@types/semver': 7.5.1 + '@typescript-eslint/scope-manager': 6.6.0 + '@typescript-eslint/types': 6.6.0 + '@typescript-eslint/typescript-estree': 6.6.0(typescript@5.2.2) eslint: 8.48.0 - eslint-scope: 5.1.1 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/visitor-keys@6.6.0: + resolution: {integrity: sha512-L61uJT26cMOfFQ+lMZKoJNbAEckLe539VhTxiGHrWl5XSKQgA0RTBZJW2HFPy5T0ZvPVSD93QsrTKDkfNwJGyQ==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.62.0 + '@typescript-eslint/types': 6.6.0 eslint-visitor-keys: 3.4.3 dev: true @@ -3196,7 +3184,7 @@ packages: /@unhead/vue@1.5.2(vue@3.3.4): resolution: {integrity: sha512-DkKJJfNmiwkq41PiNmPcONVdNN1wRp8KTHCCOnOBt1nAdhIAj83ykIdpkLGLseJTzy4C2efiR1lips/42ZsNTg==} peerDependencies: - vue: '>=2.7 || >=3' + vue: 3.3.4 dependencies: '@unhead/schema': 1.5.2 '@unhead/shared': 1.5.2 @@ -3233,25 +3221,25 @@ packages: resolution: {integrity: sha512-obF26P2Z4Ogy3cPp07B4VaW6rpiu0ue4OT2Y15UxT5BZZ76haUY9guOsZV3uWh/I6xc+VeiW+ZVabRE82FyzWw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.0.0 - vue: ^3.0.0 + vite: 4.4.9 + vue: 3.3.4 dependencies: '@babel/core': 7.22.10 '@babel/plugin-transform-typescript': 7.22.10(@babel/core@7.22.10) '@vue/babel-plugin-jsx': 1.1.5(@babel/core@7.22.10) - vite: 4.4.9(@types/node@18.17.11) + vite: 4.4.9(@types/node@18.17.14) vue: 3.3.4 transitivePeerDependencies: - supports-color - /@vitejs/plugin-vue@4.3.3(vite@4.4.9)(vue@3.3.4): - resolution: {integrity: sha512-ssxyhIAZqB0TrpUg6R0cBpCuMk9jTIlO1GNSKKQD6S8VjnXi6JXKfUXjSsxey9IwQiaRGsO1WnW9Rkl1L6AJVw==} + /@vitejs/plugin-vue@4.3.4(vite@4.4.9)(vue@3.3.4): + resolution: {integrity: sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.0.0 - vue: ^3.2.25 + vite: 4.4.9 + vue: 3.3.4 dependencies: - vite: 4.4.9(@types/node@18.17.11) + vite: 4.4.9(@types/node@18.17.14) vue: 3.3.4 /@vitest/expect@0.33.0: @@ -3296,7 +3284,7 @@ packages: pathe: 1.1.1 picocolors: 1.0.0 sirv: 2.0.3 - vitest: 0.33.0(happy-dom@10.11.0) + vitest: 0.33.0(happy-dom@10.11.2) dev: true /@vitest/utils@0.33.0: @@ -3352,7 +3340,7 @@ packages: resolution: {integrity: sha512-1RtMew9RxBvPgUhwQPBismenqHzfeFGycJbrseZ7RQsofE0FG7zoHeElYS1LADTcLXN6lA7FAnE7VlW7MaHu2w==} engines: {node: '>=16.14.0'} peerDependencies: - vue: ^2.7.0 || ^3.2.25 + vue: 3.3.4 peerDependenciesMeta: vue: optional: true @@ -3414,7 +3402,7 @@ packages: '@vue/shared': 3.3.4 estree-walker: 2.0.2 magic-string: 0.30.3 - postcss: 8.4.28 + postcss: 8.4.29 source-map-js: 1.0.2 /@vue/compiler-ssr@3.3.4: @@ -3487,7 +3475,7 @@ packages: resolution: {integrity: sha512-VO8nragneNzUZUah6kOjiFmD/gwRjUauG9DROh6oaOeFwX1cZRUNHhdeogE8635cISigXFTtGLUQWx5KCb0xeg==} peerDependencies: '@vue/server-renderer': ^3.0.1 - vue: ^3.0.1 + vue: 3.3.4 peerDependenciesMeta: '@vue/server-renderer': optional: true @@ -3591,7 +3579,7 @@ packages: /@vueuse/nuxt@10.3.0(nuxt@packages+nuxt)(vue@3.3.4): resolution: {integrity: sha512-Dmkm9H5Ubq279+FHhlJtlFP99wKrn2apuo4hk/0GbEi/6+zif7MJRtAjDBBV4VjmY6XV3kO8dQR8940FStbxsA==} peerDependencies: - nuxt: ^3.0.0 + nuxt: workspace:* dependencies: '@nuxt/kit': link:packages/kit '@vueuse/core': 10.3.0(vue@3.3.4) @@ -4047,7 +4035,7 @@ packages: /async@3.2.4: resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - /autoprefixer@10.4.15(postcss@8.4.28): + /autoprefixer@10.4.15(postcss@8.4.29): resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -4059,7 +4047,7 @@ packages: fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false @@ -4228,7 +4216,7 @@ packages: dotenv: 16.3.1 giget: 1.1.2 jiti: 1.19.3 - mlly: 1.4.1 + mlly: 1.4.2 ohash: 1.1.3 pathe: 1.1.1 perfect-debounce: 1.0.0 @@ -4652,13 +4640,13 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /css-declaration-sorter@6.4.1(postcss@8.4.28): + /css-declaration-sorter@6.4.1(postcss@8.4.29): resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 dev: false /css-loader@6.8.1(webpack@5.88.2): @@ -4667,12 +4655,12 @@ packages: peerDependencies: webpack: ^5.0.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.28) - postcss: 8.4.28 - postcss-modules-extract-imports: 3.0.0(postcss@8.4.28) - postcss-modules-local-by-default: 4.0.3(postcss@8.4.28) - postcss-modules-scope: 3.0.0(postcss@8.4.28) - postcss-modules-values: 4.0.0(postcss@8.4.28) + icss-utils: 5.1.0(postcss@8.4.29) + postcss: 8.4.29 + postcss-modules-extract-imports: 3.0.0(postcss@8.4.29) + postcss-modules-local-by-default: 4.0.3(postcss@8.4.29) + postcss-modules-scope: 3.0.0(postcss@8.4.29) + postcss-modules-values: 4.0.0(postcss@8.4.29) postcss-value-parser: 4.2.0 semver: 7.5.4 webpack: 5.88.2 @@ -4704,9 +4692,9 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.18 - cssnano: 6.0.1(postcss@8.4.28) + cssnano: 6.0.1(postcss@8.4.29) jest-worker: 29.6.4 - postcss: 8.4.28 + postcss: 8.4.29 schema-utils: 4.2.0 serialize-javascript: 6.0.1 webpack: 5.88.2 @@ -4750,62 +4738,62 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-preset-default@6.0.1(postcss@8.4.28): + /cssnano-preset-default@6.0.1(postcss@8.4.29): resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.4.1(postcss@8.4.28) - cssnano-utils: 4.0.0(postcss@8.4.28) - postcss: 8.4.28 - postcss-calc: 9.0.1(postcss@8.4.28) - postcss-colormin: 6.0.0(postcss@8.4.28) - postcss-convert-values: 6.0.0(postcss@8.4.28) - postcss-discard-comments: 6.0.0(postcss@8.4.28) - postcss-discard-duplicates: 6.0.0(postcss@8.4.28) - postcss-discard-empty: 6.0.0(postcss@8.4.28) - postcss-discard-overridden: 6.0.0(postcss@8.4.28) - postcss-merge-longhand: 6.0.0(postcss@8.4.28) - postcss-merge-rules: 6.0.1(postcss@8.4.28) - postcss-minify-font-values: 6.0.0(postcss@8.4.28) - postcss-minify-gradients: 6.0.0(postcss@8.4.28) - postcss-minify-params: 6.0.0(postcss@8.4.28) - postcss-minify-selectors: 6.0.0(postcss@8.4.28) - postcss-normalize-charset: 6.0.0(postcss@8.4.28) - postcss-normalize-display-values: 6.0.0(postcss@8.4.28) - postcss-normalize-positions: 6.0.0(postcss@8.4.28) - postcss-normalize-repeat-style: 6.0.0(postcss@8.4.28) - postcss-normalize-string: 6.0.0(postcss@8.4.28) - postcss-normalize-timing-functions: 6.0.0(postcss@8.4.28) - postcss-normalize-unicode: 6.0.0(postcss@8.4.28) - postcss-normalize-url: 6.0.0(postcss@8.4.28) - postcss-normalize-whitespace: 6.0.0(postcss@8.4.28) - postcss-ordered-values: 6.0.0(postcss@8.4.28) - postcss-reduce-initial: 6.0.0(postcss@8.4.28) - postcss-reduce-transforms: 6.0.0(postcss@8.4.28) - postcss-svgo: 6.0.0(postcss@8.4.28) - postcss-unique-selectors: 6.0.0(postcss@8.4.28) + css-declaration-sorter: 6.4.1(postcss@8.4.29) + cssnano-utils: 4.0.0(postcss@8.4.29) + postcss: 8.4.29 + postcss-calc: 9.0.1(postcss@8.4.29) + postcss-colormin: 6.0.0(postcss@8.4.29) + postcss-convert-values: 6.0.0(postcss@8.4.29) + postcss-discard-comments: 6.0.0(postcss@8.4.29) + postcss-discard-duplicates: 6.0.0(postcss@8.4.29) + postcss-discard-empty: 6.0.0(postcss@8.4.29) + postcss-discard-overridden: 6.0.0(postcss@8.4.29) + postcss-merge-longhand: 6.0.0(postcss@8.4.29) + postcss-merge-rules: 6.0.1(postcss@8.4.29) + postcss-minify-font-values: 6.0.0(postcss@8.4.29) + postcss-minify-gradients: 6.0.0(postcss@8.4.29) + postcss-minify-params: 6.0.0(postcss@8.4.29) + postcss-minify-selectors: 6.0.0(postcss@8.4.29) + postcss-normalize-charset: 6.0.0(postcss@8.4.29) + postcss-normalize-display-values: 6.0.0(postcss@8.4.29) + postcss-normalize-positions: 6.0.0(postcss@8.4.29) + postcss-normalize-repeat-style: 6.0.0(postcss@8.4.29) + postcss-normalize-string: 6.0.0(postcss@8.4.29) + postcss-normalize-timing-functions: 6.0.0(postcss@8.4.29) + postcss-normalize-unicode: 6.0.0(postcss@8.4.29) + postcss-normalize-url: 6.0.0(postcss@8.4.29) + postcss-normalize-whitespace: 6.0.0(postcss@8.4.29) + postcss-ordered-values: 6.0.0(postcss@8.4.29) + postcss-reduce-initial: 6.0.0(postcss@8.4.29) + postcss-reduce-transforms: 6.0.0(postcss@8.4.29) + postcss-svgo: 6.0.0(postcss@8.4.29) + postcss-unique-selectors: 6.0.0(postcss@8.4.29) dev: false - /cssnano-utils@4.0.0(postcss@8.4.28): + /cssnano-utils@4.0.0(postcss@8.4.29): resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 dev: false - /cssnano@6.0.1(postcss@8.4.28): + /cssnano@6.0.1(postcss@8.4.29): resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 6.0.1(postcss@8.4.28) + cssnano-preset-default: 6.0.1(postcss@8.4.29) lilconfig: 2.1.0 - postcss: 8.4.28 + postcss: 8.4.29 dev: false /csso@5.0.5: @@ -5222,8 +5210,8 @@ packages: resolution: {integrity: sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==} dev: true - /esbuild-loader@4.0.1(webpack@5.88.2): - resolution: {integrity: sha512-y65bkn+qJX+FEXQESLL3cv8c1KSjVRXE0+TDT4bBBYxqaOcq4AidQL03bgHqnDgS+HZBhqtEPdM9tWk36/cWjQ==} + /esbuild-loader@4.0.2(webpack@5.88.2): + resolution: {integrity: sha512-kj88m0yrtTEJDeUEF+3TZsq7t9VPzQQj7UmXAzUbIaipoYSrd0UxKAcg4l9CBgP8uVoploiw+nKr8DIv6Y9gXw==} peerDependencies: webpack: ^4.40.0 || ^5.0.0 dependencies: @@ -5355,7 +5343,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.48.0 - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) eslint-plugin-n: 15.7.0(eslint@8.48.0) eslint-plugin-promise: 6.1.1(eslint@8.48.0) dev: true @@ -5370,8 +5358,8 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.48.0): - resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} + /eslint-import-resolver-typescript@3.6.0(@typescript-eslint/parser@6.6.0)(eslint-plugin-import@2.28.1)(eslint@8.48.0): + resolution: {integrity: sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -5380,13 +5368,12 @@ packages: debug: 4.3.4 enhanced-resolve: 5.15.0 eslint: 8.48.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) + eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) + fast-glob: 3.3.1 get-tsconfig: 4.7.0 - globby: 13.2.2 is-core-module: 2.13.0 is-glob: 4.0.3 - synckit: 0.8.5 transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node @@ -5394,7 +5381,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -5415,11 +5402,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.6.0(eslint@8.48.0)(typescript@5.2.2) debug: 3.2.7 eslint: 8.48.0 eslint-import-resolver-node: 0.3.8 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.28.1)(eslint@8.48.0) + eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.6.0)(eslint-plugin-import@2.28.1)(eslint@8.48.0) transitivePeerDependencies: - supports-color dev: true @@ -5446,7 +5433,7 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-import@2.28.1(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0): + /eslint-plugin-import@2.28.1(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0): resolution: {integrity: sha512-9I9hFlITvOV55alzoKBI+K9q74kv0iKMeY6av5+umsNwayt59fz692daGyjR+oStBQgx6nwR9rXldDev3Clw+A==} engines: {node: '>=4'} peerDependencies: @@ -5456,7 +5443,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.62.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.6.0(eslint@8.48.0)(typescript@5.2.2) array-includes: 3.1.6 array.prototype.findlastindex: 1.2.2 array.prototype.flat: 1.3.1 @@ -5465,7 +5452,7 @@ packages: doctrine: 2.1.0 eslint: 8.48.0 eslint-import-resolver-node: 0.3.8 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.5.5)(eslint@8.48.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.6.0)(eslint-import-resolver-node@0.3.8)(eslint-import-resolver-typescript@3.6.0)(eslint@8.48.0) has: 1.0.3 is-core-module: 2.13.0 is-glob: 4.0.3 @@ -5569,8 +5556,8 @@ packages: strip-indent: 3.0.0 dev: true - /eslint-plugin-vue@9.16.1(eslint@8.48.0): - resolution: {integrity: sha512-2FtnTqazA6aYONfDuOZTk0QzwhAwi7Z4+uJ7+GHeGxcKapjqWlDsRWDenvyG/utyOfAS5bVRmAG3cEWiYEz2bA==} + /eslint-plugin-vue@9.17.0(eslint@8.48.0): + resolution: {integrity: sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 @@ -5792,7 +5779,7 @@ packages: resolution: {integrity: sha512-LyExtJWKxtgVzmgtEHyQtLFpw1KFhQphF9nTG8TpAIVkiI/xQ3FJh75tRFLYl4hkn7BNIIdLJInuDAavX35pMw==} dependencies: enhanced-resolve: 5.15.0 - mlly: 1.4.1 + mlly: 1.4.2 pathe: 1.1.1 ufo: 1.3.0 dev: false @@ -6250,8 +6237,8 @@ packages: uncrypto: 0.1.3 unenv: 1.7.4 - /happy-dom@10.11.0: - resolution: {integrity: sha512-CmUT4LOLzvAsbYqgTJESrPyvF0gxLDkDG/KK1o/HYU7+c9o/VVIKXl3feJZnuCYbGqemw7meiQaZcL4SMgn1jQ==} + /happy-dom@10.11.2: + resolution: {integrity: sha512-rzgmLjLkhyaOdFEyU8CWXzbgyCyM7wJHLqhaoeEVSTyur1fjcUaiNTHx+D4CPaLvx16tGy+SBPd9TVnP/kzL3w==} dependencies: css.escape: 1.5.1 entities: 4.5.0 @@ -6472,13 +6459,13 @@ packages: safer-buffer: 2.1.2 dev: true - /icss-utils@5.1.0(postcss@8.4.28): + /icss-utils@5.1.0(postcss@8.4.29): resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 dev: false /ieee754@1.2.1: @@ -6726,6 +6713,11 @@ packages: engines: {node: '>=12'} dev: true + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: false + /is-primitive@3.0.1: resolution: {integrity: sha512-GljRxhWvlCNRfZyORiH77FwdFwGcMO620o37EOYC0ORWdq+WYNVqW0w2Juzew4M+L81l6/QS3t5gkkihyRqv9w==} engines: {node: '>=0.10.0'} @@ -6859,7 +6851,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.6 - '@types/node': 18.17.11 + '@types/node': 18.17.14 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -6902,7 +6894,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.17.11 + '@types/node': 18.17.14 jest-util: 29.6.3 dev: true @@ -6944,7 +6936,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 18.17.11 + '@types/node': 18.17.14 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -6954,7 +6946,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -6962,7 +6954,7 @@ packages: resolution: {integrity: sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 jest-util: 29.6.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -7064,7 +7056,7 @@ packages: graceful-fs: 4.2.11 /jstransformer@1.0.0: - resolution: {integrity: sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=} + resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==} dependencies: is-promise: 2.2.2 promise: 7.3.1 @@ -7127,7 +7119,7 @@ packages: h3: 1.8.1 http-shutdown: 1.2.2 jiti: 1.19.3 - mlly: 1.4.1 + mlly: 1.4.2 node-forge: 1.3.1 pathe: 1.1.1 ufo: 1.3.0 @@ -7193,9 +7185,17 @@ packages: /lodash.difference@4.5.0: resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + /lodash.escape@4.0.1: + resolution: {integrity: sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==} + dev: false + /lodash.flatten@4.4.0: resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + /lodash.invokemap@4.6.0: + resolution: {integrity: sha512-CfkycNtMqgUlfjfdh2BhKO/ZXrP8ePOX5lEU/g0R3ItJcnuxWDwokMGKx1hWcfOikmyOVx6X9IwWnDGlgKl61w==} + dev: false + /lodash.isarguments@3.1.0: resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} @@ -7217,6 +7217,10 @@ packages: resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} dev: false + /lodash.pullall@4.2.0: + resolution: {integrity: sha512-VhqxBKH0ZxPpLhiu68YD1KnHmbhQJQctcipvmFnqIBDYzcIHzf3Zpu0tpeOKtR4x76p9yohc506eGdOjTmyIBg==} + dev: false + /lodash.template@4.5.0: resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==} dependencies: @@ -7237,8 +7241,13 @@ packages: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} dev: false + /lodash.uniqby@4.7.0: + resolution: {integrity: sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==} + dev: false + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true /longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -7900,14 +7909,14 @@ packages: fs-extra: 11.1.1 globby: 13.2.2 jiti: 1.19.3 - mlly: 1.4.1 + mlly: 1.4.2 mri: 1.2.0 pathe: 1.1.1 typescript: 5.2.2 dev: true - /mlly@1.4.1: - resolution: {integrity: sha512-SCDs78Q2o09jiZiE2WziwVBEqXQ02XkGdUy45cbJf+BpYRIjArXRJ1Wbowxkb+NaM9DWvS3UC9GiO/6eqvQ/pg==} + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} dependencies: acorn: 8.10.0 pathe: 1.1.1 @@ -7948,13 +7957,6 @@ packages: engines: {node: ^14 || ^16 || >=18} hasBin: true - /napi-wasm@1.1.0: - resolution: {integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg==} - - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -8005,7 +8007,7 @@ packages: listhen: 1.4.3 magic-string: 0.30.3 mime: 3.0.0 - mlly: 1.4.1 + mlly: 1.4.2 mri: 1.2.0 node-fetch-native: 1.4.0 ofetch: 1.3.3 @@ -8027,7 +8029,7 @@ packages: uncrypto: 0.1.3 unctx: 2.3.1 unenv: 1.7.4 - unimport: 3.2.0(rollup@3.28.1) + unimport: 3.3.0(rollup@3.28.1) unstorage: 1.9.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -8163,8 +8165,8 @@ packages: dependencies: boolbase: 1.0.0 - /nuxi@3.7.2: - resolution: {integrity: sha512-WNczi4X5ms8v63BTlCH+ZZDPzoFI0/V5KW8an4Zv6qOngtONHALw1u6qvtcAqG2tuMDu8gdJuzxMZL2845Dbig==} + /nuxi@3.7.3: + resolution: {integrity: sha512-Cg+ygRmhonE6PwAtDeKvKU/0VRqEyzmSSoJYfr0MzwIxQYrBSnLvw0z3UgJl/8MgFKjiZ5Y4wBUEiRsUw8O6uw==} engines: {node: ^14.18.0 || >=16.10.0} hasBin: true optionalDependencies: @@ -8202,26 +8204,27 @@ packages: - vue dev: true - /nuxt-vitest@0.10.2(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.3)(happy-dom@10.11.0)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): - resolution: {integrity: sha512-cYEvFY5iU0fV3xccdunV1vAlgyda3Tf7HEyPGrI/4KMAouwtIDIyuu2SgU3WOFqpNbhbAQbI5COLISodOeUHBQ==} + /nuxt-vitest@0.10.4(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.4)(happy-dom@10.11.2)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): + resolution: {integrity: sha512-Ct2amuHLl/WlmTc4VCLwGYpSjHiCYL51Lw9D7e4xUGiQwz8UOZxDJiGSzGqo7mMnt2E368lAjjFKEWkqiOH4ew==} peerDependencies: '@vitejs/plugin-vue': '*' '@vitejs/plugin-vue-jsx': '*' - vite: '*' + vite: 4.4.9 vitest: ^0.24.5 || ^0.26.0 || ^0.27.0 || ^0.28.0 || ^0.29.0 || ^0.30.0 || ^0.33.0 dependencies: '@nuxt/kit': link:packages/kit - '@vitejs/plugin-vue': 4.3.3(vite@4.4.9)(vue@3.3.4) + '@vitejs/plugin-vue': 4.3.4(vite@4.4.9)(vue@3.3.4) '@vitejs/plugin-vue-jsx': 3.0.2(vite@4.4.9)(vue@3.3.4) '@vitest/ui': 0.33.0(vitest@0.33.0) defu: 6.1.2 get-port-please: 3.0.2 perfect-debounce: 1.0.0 std-env: 3.4.3 - vite: 4.4.9(@types/node@18.17.11) - vitest: 0.33.0(happy-dom@10.11.0) - vitest-environment-nuxt: 0.10.2(happy-dom@10.11.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + vite: 4.4.9(@types/node@18.17.14) + vitest: 0.33.0(happy-dom@10.11.2) + vitest-environment-nuxt: 0.10.4(happy-dom@10.11.2)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) transitivePeerDependencies: + - '@testing-library/vue' - '@vue/server-renderer' - happy-dom - jsdom @@ -8229,8 +8232,8 @@ packages: - vue-router dev: true - /nypm@0.3.1: - resolution: {integrity: sha512-WbyW4kp5TEIchdfdAUW4PdFlxl508nPAJsZml0ONk+A29vNHSW+3HEq3OmLvbDWYZrSVZ+Ios++7D/ENnv1YlA==} + /nypm@0.3.2: + resolution: {integrity: sha512-a49F06faGtgflUVvqIkBmrYkijbbhjEoR40gzgw7I43J1p3DkHQegNcRhaGaHddIYQ0KwrmvD1W/h16jn/2puA==} engines: {node: ^14.16.0 || >=16.10.0} dependencies: execa: 8.0.1 @@ -8565,7 +8568,7 @@ packages: engines: {node: '>=14.16'} dev: false - /pinceau@0.18.9(postcss@8.4.28): + /pinceau@0.18.9(postcss@8.4.29): resolution: {integrity: sha512-GJ+l8a5Y+7PP/diwuajJhd2QONTIFkk2YXjrVTh7QKC3sMQEphpLH6ZJfXSeeSonQ0/BnhrrMi9a5e14mmqXug==} dependencies: '@unocss/reset': 0.50.8 @@ -8580,9 +8583,9 @@ packages: ohash: 1.1.3 paneer: 0.1.0 pathe: 1.1.1 - postcss-custom-properties: 13.1.4(postcss@8.4.28) - postcss-dark-theme-class: 0.7.3(postcss@8.4.28) - postcss-nested: 6.0.1(postcss@8.4.28) + postcss-custom-properties: 13.1.4(postcss@8.4.29) + postcss-dark-theme-class: 0.7.3(postcss@8.4.29) + postcss-nested: 6.0.1(postcss@8.4.29) recast: 0.22.0 scule: 1.0.0 style-dictionary-esm: 1.3.7 @@ -8603,7 +8606,7 @@ packages: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: jsonc-parser: 3.2.0 - mlly: 1.4.1 + mlly: 1.4.2 pathe: 1.1.1 /playwright-core@1.37.1: @@ -8617,18 +8620,18 @@ packages: engines: {node: '>=4'} dev: true - /postcss-calc@9.0.1(postcss@8.4.28): + /postcss-calc@9.0.1(postcss@8.4.29): resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: false - /postcss-colormin@6.0.0(postcss@8.4.28): + /postcss-colormin@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -8637,22 +8640,22 @@ packages: browserslist: 4.21.10 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-convert-values@6.0.0(postcss@8.4.28): + /postcss-convert-values@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.10 - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-custom-properties@13.1.4(postcss@8.4.28): + /postcss-custom-properties@13.1.4(postcss@8.4.29): resolution: {integrity: sha512-iSAdaZrM3KMec8cOSzeTUNXPYDlhqsMJHpt62yrjwG6nAnMtRHPk5JdMzGosBJtqEahDolvD5LNbcq+EZ78o5g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: @@ -8661,53 +8664,53 @@ packages: '@csstools/cascade-layer-name-parser': 1.0.4(@csstools/css-parser-algorithms@2.3.1)(@csstools/css-tokenizer@2.2.0) '@csstools/css-parser-algorithms': 2.3.1(@csstools/css-tokenizer@2.2.0) '@csstools/css-tokenizer': 2.2.0 - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: true - /postcss-dark-theme-class@0.7.3(postcss@8.4.28): + /postcss-dark-theme-class@0.7.3(postcss@8.4.29): resolution: {integrity: sha512-M9vtfh8ORzQsVdT9BWb+xpEDAzC7nHBn7wVc988/JkEVLPupKcUnV0jw7RZ8sSj0ovpqN1POf6PLdt19JCHfhQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 dev: true - /postcss-discard-comments@6.0.0(postcss@8.4.28): + /postcss-discard-comments@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 dev: false - /postcss-discard-duplicates@6.0.0(postcss@8.4.28): + /postcss-discard-duplicates@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 dev: false - /postcss-discard-empty@6.0.0(postcss@8.4.28): + /postcss-discard-empty@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 dev: false - /postcss-discard-overridden@6.0.0(postcss@8.4.28): + /postcss-discard-overridden@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 dev: false /postcss-import-resolver@2.0.0: @@ -8716,19 +8719,19 @@ packages: enhanced-resolve: 4.5.0 dev: false - /postcss-import@15.1.0(postcss@8.4.28): + /postcss-import@15.1.0(postcss@8.4.29): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.4 dev: false - /postcss-loader@7.3.3(postcss@8.4.28)(webpack@5.88.2): + /postcss-loader@7.3.3(postcss@8.4.29)(webpack@5.88.2): resolution: {integrity: sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==} engines: {node: '>= 14.15.0'} peerDependencies: @@ -8737,23 +8740,23 @@ packages: dependencies: cosmiconfig: 8.2.0 jiti: 1.19.3 - postcss: 8.4.28 + postcss: 8.4.29 semver: 7.5.4 webpack: 5.88.2 dev: false - /postcss-merge-longhand@6.0.0(postcss@8.4.28): + /postcss-merge-longhand@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 - stylehacks: 6.0.0(postcss@8.4.28) + stylehacks: 6.0.0(postcss@8.4.29) dev: false - /postcss-merge-rules@6.0.1(postcss@8.4.28): + /postcss-merge-rules@6.0.1(postcss@8.4.29): resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -8761,208 +8764,208 @@ packages: dependencies: browserslist: 4.21.10 caniuse-api: 3.0.0 - cssnano-utils: 4.0.0(postcss@8.4.28) - postcss: 8.4.28 + cssnano-utils: 4.0.0(postcss@8.4.29) + postcss: 8.4.29 postcss-selector-parser: 6.0.13 dev: false - /postcss-minify-font-values@6.0.0(postcss@8.4.28): + /postcss-minify-font-values@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-gradients@6.0.0(postcss@8.4.28): + /postcss-minify-gradients@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 4.0.0(postcss@8.4.28) - postcss: 8.4.28 + cssnano-utils: 4.0.0(postcss@8.4.29) + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-params@6.0.0(postcss@8.4.28): + /postcss-minify-params@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.10 - cssnano-utils: 4.0.0(postcss@8.4.28) - postcss: 8.4.28 + cssnano-utils: 4.0.0(postcss@8.4.29) + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-selectors@6.0.0(postcss@8.4.28): + /postcss-minify-selectors@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-selector-parser: 6.0.13 dev: false - /postcss-modules-extract-imports@3.0.0(postcss@8.4.28): + /postcss-modules-extract-imports@3.0.0(postcss@8.4.29): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 dev: false - /postcss-modules-local-by-default@4.0.3(postcss@8.4.28): + /postcss-modules-local-by-default@4.0.3(postcss@8.4.29): resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.28) - postcss: 8.4.28 + icss-utils: 5.1.0(postcss@8.4.29) + postcss: 8.4.29 postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: false - /postcss-modules-scope@3.0.0(postcss@8.4.28): + /postcss-modules-scope@3.0.0(postcss@8.4.29): resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-selector-parser: 6.0.13 dev: false - /postcss-modules-values@4.0.0(postcss@8.4.28): + /postcss-modules-values@4.0.0(postcss@8.4.29): resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} engines: {node: ^10 || ^12 || >= 14} peerDependencies: postcss: ^8.1.0 dependencies: - icss-utils: 5.1.0(postcss@8.4.28) - postcss: 8.4.28 + icss-utils: 5.1.0(postcss@8.4.29) + postcss: 8.4.29 dev: false - /postcss-nested@6.0.1(postcss@8.4.28): + /postcss-nested@6.0.1(postcss@8.4.29): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-selector-parser: 6.0.13 dev: true - /postcss-normalize-charset@6.0.0(postcss@8.4.28): + /postcss-normalize-charset@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 dev: false - /postcss-normalize-display-values@6.0.0(postcss@8.4.28): + /postcss-normalize-display-values@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-positions@6.0.0(postcss@8.4.28): + /postcss-normalize-positions@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-repeat-style@6.0.0(postcss@8.4.28): + /postcss-normalize-repeat-style@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-string@6.0.0(postcss@8.4.28): + /postcss-normalize-string@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-timing-functions@6.0.0(postcss@8.4.28): + /postcss-normalize-timing-functions@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-unicode@6.0.0(postcss@8.4.28): + /postcss-normalize-unicode@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.10 - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-url@6.0.0(postcss@8.4.28): + /postcss-normalize-url@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-whitespace@6.0.0(postcss@8.4.28): + /postcss-normalize-whitespace@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-ordered-values@6.0.0(postcss@8.4.28): + /postcss-ordered-values@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 4.0.0(postcss@8.4.28) - postcss: 8.4.28 + cssnano-utils: 4.0.0(postcss@8.4.29) + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false - /postcss-reduce-initial@6.0.0(postcss@8.4.28): + /postcss-reduce-initial@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: @@ -8970,16 +8973,16 @@ packages: dependencies: browserslist: 4.21.10 caniuse-api: 3.0.0 - postcss: 8.4.28 + postcss: 8.4.29 dev: false - /postcss-reduce-transforms@6.0.0(postcss@8.4.28): + /postcss-reduce-transforms@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 dev: false @@ -8990,28 +8993,28 @@ packages: cssesc: 3.0.0 util-deprecate: 1.0.2 - /postcss-svgo@6.0.0(postcss@8.4.28): + /postcss-svgo@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-value-parser: 4.2.0 svgo: 3.0.2 dev: false - /postcss-unique-selectors@6.0.0(postcss@8.4.28): + /postcss-unique-selectors@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.28 + postcss: 8.4.29 postcss-selector-parser: 6.0.13 dev: false - /postcss-url@10.1.3(postcss@8.4.28): + /postcss-url@10.1.3(postcss@8.4.29): resolution: {integrity: sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==} engines: {node: '>=10'} peerDependencies: @@ -9020,15 +9023,15 @@ packages: make-dir: 3.1.0 mime: 2.5.2 minimatch: 3.0.8 - postcss: 8.4.28 + postcss: 8.4.29 xxhashjs: 0.2.2 dev: false /postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - /postcss@8.4.28: - resolution: {integrity: sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==} + /postcss@8.4.29: + resolution: {integrity: sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.6 @@ -9739,15 +9742,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - /sirv@1.0.19: - resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} - engines: {node: '>= 10'} - dependencies: - '@polka/url': 1.0.0-next.21 - mrmime: 1.0.1 - totalist: 1.1.0 - dev: false - /sirv@2.0.3: resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} engines: {node: '>= 10'} @@ -9755,7 +9749,6 @@ packages: '@polka/url': 1.0.0-next.21 mrmime: 1.0.1 totalist: 3.0.1 - dev: true /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -10007,14 +10000,14 @@ packages: tinycolor2: 1.6.0 dev: true - /stylehacks@6.0.0(postcss@8.4.28): + /stylehacks@6.0.0(postcss@8.4.29): resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: browserslist: 4.21.10 - postcss: 8.4.28 + postcss: 8.4.29 postcss-selector-parser: 6.0.13 dev: false @@ -10060,14 +10053,6 @@ packages: picocolors: 1.0.0 dev: false - /synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} - engines: {node: ^14.18.0 || >=16.0.0} - dependencies: - '@pkgr/utils': 2.4.2 - tslib: 2.6.1 - dev: true - /tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} dev: true @@ -10210,18 +10195,12 @@ packages: engines: {node: '>=0.6'} /token-stream@1.0.0: - resolution: {integrity: sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=} - dev: false - - /totalist@1.1.0: - resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==} - engines: {node: '>=6'} + resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} dev: false /totalist@3.0.1: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} - dev: true /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -10234,6 +10213,15 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true + /ts-api-utils@1.0.2(typescript@5.2.2): + resolution: {integrity: sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.2.2 + dev: true + /tsconfig-paths@3.14.2: resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} dependencies: @@ -10243,23 +10231,9 @@ packages: strip-bom: 3.0.0 dev: true - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true - /tslib@2.6.1: resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} - /tsutils@3.21.0(typescript@5.2.2): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 5.2.2 - dev: true - /tunnel@0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} @@ -10353,8 +10327,8 @@ packages: /ufo@1.3.0: resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} - /ultrahtml@1.3.0: - resolution: {integrity: sha512-xmXvE8tC8t4PVqy0/g1fe7H9USY/Brr425q4dD/0QbQMQit7siCtb06+SCqE4GfU24nwsZz8Th1g7L7mm1lL5g==} + /ultrahtml@1.4.0: + resolution: {integrity: sha512-2SbudS8oD4GNq4en+3ivp25JTCwP5O2soJhIBxGJrjojjLVaLcP84xVU6Xdf0wKMhZvr68rTtrXtO6uvEr2llQ==} dev: false /unbox-primitive@1.0.2: @@ -10385,7 +10359,7 @@ packages: jiti: 1.19.3 magic-string: 0.30.3 mkdist: 1.3.0(typescript@5.2.2) - mlly: 1.4.1 + mlly: 1.4.2 mri: 1.2.0 pathe: 1.1.1 pkg-types: 1.0.3 @@ -10425,7 +10399,7 @@ packages: jiti: 1.19.3 magic-string: 0.30.3 mkdist: 1.3.0(typescript@5.2.2) - mlly: 1.4.1 + mlly: 1.4.2 pathe: 1.1.1 pkg-types: 1.0.3 pretty-bytes: 6.1.1 @@ -10486,15 +10460,15 @@ packages: vfile: 5.3.7 dev: true - /unimport@3.2.0(rollup@3.28.1): - resolution: {integrity: sha512-9buxPxkNwxwxAlH/RfOFHxtQTUrlmBGi9Ai9HezY2yYbkoOhgJTYPI6+WqxI1EZphoM9cw1SHoCFRkXSb8/fjQ==} + /unimport@3.3.0(rollup@3.28.1): + resolution: {integrity: sha512-3jhq3ZG5hFZzrWGDCpx83kjPzefP/EeuKkIO1T0MA4Zwj+dO/Og1mFvZ4aZ5WSDm0FVbbdVIRH1zKBG7c4wOpg==} dependencies: '@rollup/pluginutils': 5.0.4(rollup@3.28.1) escape-string-regexp: 5.0.0 fast-glob: 3.3.1 local-pkg: 0.4.3 magic-string: 0.30.3 - mlly: 1.4.1 + mlly: 1.4.2 pathe: 1.1.1 pkg-types: 1.0.3 scule: 1.0.0 @@ -10599,7 +10573,7 @@ packages: fast-glob: 3.3.1 json5: 2.2.3 local-pkg: 0.4.3 - mlly: 1.4.1 + mlly: 1.4.2 pathe: 1.1.1 scule: 1.0.0 unplugin: 1.4.0 @@ -10806,17 +10780,17 @@ packages: vfile-message: 3.1.4 dev: true - /vite-node@0.33.0(@types/node@18.17.11): + /vite-node@0.33.0(@types/node@18.17.14): resolution: {integrity: sha512-19FpHYbwWWxDr73ruNahC+vtEdza52kA90Qb3La98yZ0xULqV8A5JLNPUff0f5zID4984tW7l3DH2przTJUZSw==} engines: {node: '>=v14.18.0'} hasBin: true dependencies: cac: 6.7.14 debug: 4.3.4 - mlly: 1.4.1 + mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 4.4.9(@types/node@18.17.11) + vite: 4.4.9(@types/node@18.17.14) transitivePeerDependencies: - '@types/node' - less @@ -10836,7 +10810,7 @@ packages: optionator: ^0.9.1 stylelint: '>=13' typescript: '*' - vite: '>=2.0.0' + vite: 4.4.9 vls: '*' vti: '*' vue-tsc: '>=1.3.9' @@ -10873,7 +10847,7 @@ packages: strip-ansi: 6.0.1 tiny-invariant: 1.3.1 typescript: 5.2.2 - vite: 4.4.9(@types/node@18.17.11) + vite: 4.4.9(@types/node@18.17.14) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 @@ -10881,7 +10855,7 @@ packages: vue-tsc: 1.8.8(typescript@5.2.2) dev: false - /vite@4.4.9(@types/node@18.17.11): + /vite@4.4.9(@types/node@18.17.14): resolution: {integrity: sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -10909,22 +10883,25 @@ packages: terser: optional: true dependencies: - '@types/node': 18.17.11 + '@types/node': 18.17.14 esbuild: 0.18.20 - postcss: 8.4.28 + postcss: 8.4.29 rollup: 3.28.1 optionalDependencies: fsevents: 2.3.3 - /vitest-environment-nuxt@0.10.2(happy-dom@10.11.0)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): - resolution: {integrity: sha512-CgOS0KW0zhyDVvfHbq+CbkCa/sA2Ui/SMrp0W0vDgzhaUTCuo7WtJ211HwYqGhj3YvSRopOByRPkUDFQjr3wiw==} + /vitest-environment-nuxt@0.10.4(happy-dom@10.11.2)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): + resolution: {integrity: sha512-6YRG+Y28oCO35sg7u2jnGx4o/nVdv1VtRuYLxiqG2JpEJB5KsA2M6sLeMm24BKRvYxCDIxHJyo2EQFgNCDmL8Q==} peerDependencies: + '@testing-library/vue': 7.0.0 happy-dom: ^9.10.9 || ^10.0.0 jsdom: ^22.0.0 vitest: ^0.24.5 || ^0.26.0 || ^0.27.0 || ^0.28.0 || ^0.29.0 || ^0.30.0 || ^0.33.0 - vue: ^3.2.45 + vue: 3.3.4 vue-router: ^4.0.0 peerDependenciesMeta: + '@testing-library/vue': + optional: true happy-dom: optional: true jsdom: @@ -10935,19 +10912,20 @@ packages: defu: 6.1.2 estree-walker: 3.0.3 h3: 1.8.1 - happy-dom: 10.11.0 + happy-dom: 10.11.2 + local-pkg: 0.4.3 magic-string: 0.30.3 ofetch: 1.3.3 + ufo: 1.3.0 unenv: 1.7.4 - vitest: 0.33.0(happy-dom@10.11.0) + vitest: 0.33.0(happy-dom@10.11.2) vue: 3.3.4 vue-router: 4.2.4(vue@3.3.4) - whatwg-fetch: 3.6.17 transitivePeerDependencies: - '@vue/server-renderer' dev: true - /vitest@0.33.0(happy-dom@10.11.0): + /vitest@0.33.0(happy-dom@10.11.2): resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10980,7 +10958,7 @@ packages: dependencies: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.3 - '@types/node': 18.17.11 + '@types/node': 18.17.14 '@vitest/expect': 0.33.0 '@vitest/runner': 0.33.0 '@vitest/snapshot': 0.33.0 @@ -10991,7 +10969,7 @@ packages: cac: 6.7.14 chai: 4.3.7 debug: 4.3.4 - happy-dom: 10.11.0 + happy-dom: 10.11.2 local-pkg: 0.4.3 magic-string: 0.30.3 pathe: 1.1.1 @@ -11000,8 +10978,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.0 tinypool: 0.6.0 - vite: 4.4.9(@types/node@18.17.11) - vite-node: 0.33.0(@types/node@18.17.11) + vite: 4.4.9(@types/node@18.17.14) + vite-node: 0.33.0(@types/node@18.17.14) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -11093,7 +11071,7 @@ packages: requiresBuild: true peerDependencies: '@vue/composition-api': ^1.0.0-rc.1 - vue: ^3.0.0-0 || ^2.6.0 + vue: 3.3.4 peerDependenciesMeta: '@vue/composition-api': optional: true @@ -11144,7 +11122,7 @@ packages: /vue-router@4.2.4(vue@3.3.4): resolution: {integrity: sha512-9PISkmaCO02OzPVOMq2w82ilty6+xJmQrarYZDkjZBfl4RvYAlt4PKnEX21oW4KTtWfa9OuO/b3qk1Od3AEdCQ==} peerDependencies: - vue: ^3.2.0 + vue: 3.3.4 dependencies: '@vue/devtools-api': 6.5.0 vue: 3.3.4 @@ -11204,20 +11182,27 @@ packages: engines: {node: '>=12'} dev: true - /webpack-bundle-analyzer@4.9.0: - resolution: {integrity: sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw==} + /webpack-bundle-analyzer@4.9.1: + resolution: {integrity: sha512-jnd6EoYrf9yMxCyYDPj8eutJvtjQNp8PHmni/e/ulydHBWhT5J3menXt3HEkScsu9YqMAcG4CfFjs3rj5pVU1w==} engines: {node: '>= 10.13.0'} hasBin: true dependencies: '@discoveryjs/json-ext': 0.5.7 acorn: 8.10.0 acorn-walk: 8.2.0 - chalk: 4.1.2 commander: 7.2.0 + escape-string-regexp: 4.0.0 gzip-size: 6.0.0 - lodash: 4.17.21 + is-plain-object: 5.0.0 + lodash.debounce: 4.0.8 + lodash.escape: 4.0.1 + lodash.flatten: 4.4.0 + lodash.invokemap: 4.6.0 + lodash.pullall: 4.2.0 + lodash.uniqby: 4.7.0 opener: 1.5.2 - sirv: 1.0.19 + picocolors: 1.0.0 + sirv: 2.0.3 ws: 7.5.9 transitivePeerDependencies: - bufferutil @@ -11320,10 +11305,6 @@ packages: iconv-lite: 0.6.3 dev: true - /whatwg-fetch@3.6.17: - resolution: {integrity: sha512-c4ghIvG6th0eudYwKZY5keb81wtFz9/WeAHAoy8+r18kcWlitUIrmGFQ2rWEl4UCKUilD3zCLHOIPheHx5ypRQ==} - dev: true - /whatwg-mimetype@3.0.0: resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} engines: {node: '>=12'} From 88a6d0a499cc7696bff94c02548cd9cc60f7820b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 14:49:23 +0100 Subject: [PATCH 770/912] v3.7.1 --- packages/kit/package.json | 2 +- packages/nuxt/package.json | 2 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- packages/webpack/package.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/kit/package.json b/packages/kit/package.json index 18763b70a1..1c19de2b34 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/kit", - "version": "3.7.0", + "version": "3.7.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 7bd5d2c41d..8baadb3eb1 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -1,6 +1,6 @@ { "name": "nuxt", - "version": "3.7.0", + "version": "3.7.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/schema/package.json b/packages/schema/package.json index d1f61c7c12..9b0fe6e1c8 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/schema", - "version": "3.7.0", + "version": "3.7.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index b4907512a0..afb232d9f2 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/test-utils", - "version": "3.7.0", + "version": "3.7.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/vite/package.json b/packages/vite/package.json index 2e323cf18f..cb6e185054 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/vite-builder", - "version": "3.7.0", + "version": "3.7.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", diff --git a/packages/webpack/package.json b/packages/webpack/package.json index 461283910b..1c4dab07c3 100644 --- a/packages/webpack/package.json +++ b/packages/webpack/package.json @@ -1,6 +1,6 @@ { "name": "@nuxt/webpack-builder", - "version": "3.7.0", + "version": "3.7.1", "repository": "nuxt/nuxt", "license": "MIT", "type": "module", From fe29948febed1981222a6185a9a03ade2aa73af1 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 6 Sep 2023 10:31:54 +0100 Subject: [PATCH 771/912] docs: remove 'caching' section from data fetching --- docs/1.getting-started/6.data-fetching.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/1.getting-started/6.data-fetching.md b/docs/1.getting-started/6.data-fetching.md index 3284c3c225..9611257a28 100644 --- a/docs/1.getting-started/6.data-fetching.md +++ b/docs/1.getting-started/6.data-fetching.md @@ -29,10 +29,6 @@ The [`useFetch`](/docs/api/composables/use-fetch) and [`useAsyncData`](/docs/api Use the [Nuxt DevTools](https://devtools.nuxtjs.org) to inspect this data in the payload tab. :: -### Effective caching - -[`useFetch`](/docs/api/composables/use-fetch) and [`useAsyncData`](/docs/api/composables/use-async-data) both use a key to cache API responses and further reduce API calls. We will detail later how to invalidate this cache. - ### Suspense Nuxt uses Vue’s `` component under the hood to prevent navigation before every async data is available to the view. The data fetching composables can help you leverage this feature and use what suits best on a per-calls basis. From a998cb6e3b7606af9a715d2fd7fba79b935d8083 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 6 Sep 2023 12:15:50 +0100 Subject: [PATCH 772/912] ci: test on node 20.5 rather than 20.6 (#23041) --- .github/workflows/autofix-docs.yml | 2 +- .github/workflows/autofix.yml | 2 +- .github/workflows/changelogensets.yml | 2 +- .github/workflows/ci.yml | 12 ++++++------ .github/workflows/docs.yml | 2 +- .github/workflows/release-pr.yml | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/autofix-docs.yml b/.github/workflows/autofix-docs.yml index bf8e7f5999..1e4cd322d2 100644 --- a/.github/workflows/autofix-docs.yml +++ b/.github/workflows/autofix-docs.yml @@ -21,7 +21,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: - node-version: 20 + node-version: 20.5 cache: "pnpm" - name: Install dependencies diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index ce70704f9e..19883d8740 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -17,7 +17,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: - node-version: 20 + node-version: 20.5 cache: "pnpm" - name: Install dependencies diff --git a/.github/workflows/changelogensets.yml b/.github/workflows/changelogensets.yml index 127a93ca2d..444dcfdca5 100644 --- a/.github/workflows/changelogensets.yml +++ b/.github/workflows/changelogensets.yml @@ -26,7 +26,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: - node-version: 20 + node-version: 20.5 cache: "pnpm" - name: Install dependencies diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a9caed8de..50090c582e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,7 +42,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: - node-version: 20 + node-version: 20.5 cache: "pnpm" - name: Install dependencies @@ -79,7 +79,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: - node-version: 20 + node-version: 20.5 cache: "pnpm" - name: Install dependencies @@ -118,7 +118,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: - node-version: 20 + node-version: 20.5 cache: "pnpm" - name: Install dependencies @@ -146,7 +146,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: - node-version: 20 + node-version: 20.5 cache: "pnpm" - name: Install dependencies @@ -256,7 +256,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: - node-version: 20 + node-version: 20.5 cache: "pnpm" - name: Install dependencies @@ -295,7 +295,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: - node-version: 20 + node-version: 20.5 cache: "pnpm" - name: Install dependencies diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index ef9616c62d..ee41245f4f 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,7 +24,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: - node-version: 20 + node-version: 20.5 cache: "pnpm" - name: Install dependencies diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 6cd8eb7042..3cccec6b5e 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -37,7 +37,7 @@ jobs: - run: corepack enable - uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1 with: - node-version: 20 + node-version: 20.5 cache: "pnpm" - name: Install dependencies From 48fb6e243bcdd306b39627cd31beb3f80d644e47 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Wed, 6 Sep 2023 21:44:59 +0200 Subject: [PATCH 773/912] fix(nuxt): scroll to top by default on dynamic routes (#22403) --- .../nuxt/src/pages/runtime/router.options.ts | 10 +--- test/basic.test.ts | 50 +++++++++++++++++++ .../{page-extend.ts => page-extend/index.ts} | 8 ++- .../modules/page-extend/pages/big-page.vue | 36 +++++++++++++ test/fixtures/basic/pages/index.vue | 3 ++ .../nested/{[foo]/index.vue => [foo].vue} | 11 ++++ .../basic/pages/nested/[foo]/[bar].vue | 6 +++ .../basic/pages/nested/[foo]/user-[group].vue | 7 +++ 8 files changed, 121 insertions(+), 10 deletions(-) rename test/fixtures/basic/modules/{page-extend.ts => page-extend/index.ts} (60%) create mode 100644 test/fixtures/basic/modules/page-extend/pages/big-page.vue rename test/fixtures/basic/pages/nested/{[foo]/index.vue => [foo].vue} (56%) diff --git a/packages/nuxt/src/pages/runtime/router.options.ts b/packages/nuxt/src/pages/runtime/router.options.ts index 42de00df3d..8703a3b518 100644 --- a/packages/nuxt/src/pages/runtime/router.options.ts +++ b/packages/nuxt/src/pages/runtime/router.options.ts @@ -63,13 +63,5 @@ function _getHashElementScrollMarginTop (selector: string): number { } function _isDifferentRoute (from: RouteLocationNormalized, to: RouteLocationNormalized): boolean { - const samePageComponent = to.matched.every((comp, index) => comp.components?.default === from.matched[index]?.components?.default) - - if (!samePageComponent) { - return true - } - if (samePageComponent && JSON.stringify(from.params) !== JSON.stringify(to.params)) { - return true - } - return false + return to.path !== from.path || JSON.stringify(from.params) !== JSON.stringify(to.params) } diff --git a/test/basic.test.ts b/test/basic.test.ts index 1f1df4b479..152b812d84 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -533,6 +533,56 @@ describe('nuxt links', () => { await page.close() }) + + it('expect scroll to top on routes with same component', async () => { + // #22402 + const page = await createPage('/big-page-1') + await page.setViewportSize({ + width: 1000, + height: 1000 + }) + await page.waitForLoadState('networkidle') + + await page.locator('#big-page-2').scrollIntoViewIfNeeded() + expect(await page.evaluate(() => window.scrollY)).toBeGreaterThan(0) + await page.locator('#big-page-2').click() + await page.waitForURL(url => url.href.includes('/big-page-2')) + await page.waitForTimeout(25) + expect(await page.evaluate(() => window.scrollY)).toBe(0) + + await page.locator('#big-page-1').scrollIntoViewIfNeeded() + expect(await page.evaluate(() => window.scrollY)).toBeGreaterThan(0) + await page.locator('#big-page-1').click() + await page.waitForURL(url => url.href.includes('/big-page-1')) + await page.waitForTimeout(25) + expect(await page.evaluate(() => window.scrollY)).toBe(0) + await page.close() + }) + + it('expect scroll to top on nested pages', async () => { + // #20523 + const page = await createPage('/nested/foo/test') + await page.setViewportSize({ + width: 1000, + height: 1000 + }) + await page.waitForLoadState('networkidle') + + await page.locator('#user-test').scrollIntoViewIfNeeded() + expect(await page.evaluate(() => window.scrollY)).toBeGreaterThan(0) + await page.locator('#user-test').click() + await page.waitForURL(url => url.href.includes('/nested/foo/user-test')) + await page.waitForTimeout(25) + expect(await page.evaluate(() => window.scrollY)).toBe(0) + + await page.locator('#test').scrollIntoViewIfNeeded() + expect(await page.evaluate(() => window.scrollY)).toBeGreaterThan(0) + await page.locator('#test').click() + await page.waitForURL(url => url.href.includes('/nested/foo/test')) + await page.waitForTimeout(25) + expect(await page.evaluate(() => window.scrollY)).toBe(0) + await page.close() + }) }) describe('head tags', () => { diff --git a/test/fixtures/basic/modules/page-extend.ts b/test/fixtures/basic/modules/page-extend/index.ts similarity index 60% rename from test/fixtures/basic/modules/page-extend.ts rename to test/fixtures/basic/modules/page-extend/index.ts index 1f794eeee6..62723a909d 100644 --- a/test/fixtures/basic/modules/page-extend.ts +++ b/test/fixtures/basic/modules/page-extend/index.ts @@ -12,7 +12,13 @@ export default defineNuxtModule({ pages.push({ name: 'page-extend', path: '/page-extend', - file: resolver.resolve('./runtime/page.vue') + file: resolver.resolve('../runtime/page.vue') + }, { + path: '/big-page-1', + file: resolver.resolve('./pages/big-page.vue') + }, { + path: '/big-page-2', + file: resolver.resolve('./pages/big-page.vue') }) }) } diff --git a/test/fixtures/basic/modules/page-extend/pages/big-page.vue b/test/fixtures/basic/modules/page-extend/pages/big-page.vue new file mode 100644 index 0000000000..9e448d9a55 --- /dev/null +++ b/test/fixtures/basic/modules/page-extend/pages/big-page.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/test/fixtures/basic/pages/index.vue b/test/fixtures/basic/pages/index.vue index 3d7d5fe2f0..18f5dcf355 100644 --- a/test/fixtures/basic/pages/index.vue +++ b/test/fixtures/basic/pages/index.vue @@ -53,6 +53,9 @@ + + to big 1 +
diff --git a/test/fixtures/basic/pages/nested/[foo]/index.vue b/test/fixtures/basic/pages/nested/[foo].vue similarity index 56% rename from test/fixtures/basic/pages/nested/[foo]/index.vue rename to test/fixtures/basic/pages/nested/[foo].vue index beab2f220e..1afdd3b4ab 100644 --- a/test/fixtures/basic/pages/nested/[foo]/index.vue +++ b/test/fixtures/basic/pages/nested/[foo].vue @@ -6,5 +6,16 @@ const route = useRoute('nested-foo')
nested/[foo]/index.vue
foo: {{ route.params.foo }}
+ +
+
+
+ + diff --git a/test/fixtures/basic/pages/nested/[foo]/[bar].vue b/test/fixtures/basic/pages/nested/[foo]/[bar].vue index 168f7737dd..a0dce6983d 100644 --- a/test/fixtures/basic/pages/nested/[foo]/[bar].vue +++ b/test/fixtures/basic/pages/nested/[foo]/[bar].vue @@ -7,5 +7,11 @@ const route = useRoute('nested-foo-bar')
nested/[foo]/[bar].vue
foo: {{ route.params.foo }}
bar: {{ route.params.bar }}
+ + to /nested/foo/user-test + + + to /nested/foo/test +
diff --git a/test/fixtures/basic/pages/nested/[foo]/user-[group].vue b/test/fixtures/basic/pages/nested/[foo]/user-[group].vue index 4a4da9fe55..9847e51563 100644 --- a/test/fixtures/basic/pages/nested/[foo]/user-[group].vue +++ b/test/fixtures/basic/pages/nested/[foo]/user-[group].vue @@ -7,5 +7,12 @@ const route = useRoute('nested-foo-user-group')
nested/[foo]/user-[group].vue
foo: {{ route.params.foo }}
group: {{ route.params.group }}
+ + + to /nested/foo/user-test + + + to /nested/foo/test +
From 25bf10e180059dbb73b959c161bf55c35714c7dd Mon Sep 17 00:00:00 2001 From: Michel EDIGHOFFER Date: Thu, 7 Sep 2023 10:58:53 +0200 Subject: [PATCH 774/912] docs: fix broken links on experimental features (#23052) --- docs/2.guide/3.going-further/1.experimental-features.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/2.guide/3.going-further/1.experimental-features.md b/docs/2.guide/3.going-further/1.experimental-features.md index d2c6421ec0..8a24b16db4 100644 --- a/docs/2.guide/3.going-further/1.experimental-features.md +++ b/docs/2.guide/3.going-further/1.experimental-features.md @@ -28,7 +28,7 @@ Enables Vue's reactivity transform. Note that this feature has been marked as de export defineNuxtConfig({ experimental: { reactivityTransform: true } }) ``` -::ReadMore{link="docs/getting-started/configuration#enabling-experimental-vue-features"} +::ReadMore{link="/docs/getting-started/configuration#enabling-experimental-vue-features"} :: ## externalVue @@ -143,7 +143,7 @@ Enables View Transition API integration with client-side router. export defineNuxtConfig({ experimental: { viewTransition: true } }) ``` -::ReadMore{link="docs/getting-started/transitions#view-transitions-api-experimental"} +::ReadMore{link="/docs/getting-started/transitions#view-transitions-api-experimental"} :: ## writeEarlyHints @@ -162,7 +162,7 @@ Enables experimental component islands support with `` and `.island. export defineNuxtConfig({ experimental: { componentIslands: true } }) ``` -::ReadMore{link="docs/guide/directory-structure/components#server-components"} +::ReadMore{link="/docs/guide/directory-structure/components#server-components"} :: You can follow the server components roadmap on [GitHub](https://github.com/nuxt/nuxt/issues/19772). From 5660a36a06c09fe6bd264661cf1924f3344fd783 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Sep 2023 10:47:47 +0100 Subject: [PATCH 775/912] chore(deps): update all non-major dependencies (main) (#23022) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- .github/workflows/ci.yml | 2 +- .github/workflows/scorecards.yml | 2 +- package.json | 4 +- packages/nuxt/package.json | 6 +- packages/schema/package.json | 2 +- packages/test-utils/package.json | 2 +- packages/vite/package.json | 2 +- pnpm-lock.yaml | 121 ++++++++++++++++++------------- test/bundle.test.ts | 4 +- 9 files changed, 82 insertions(+), 63 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50090c582e..47a554bd33 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,7 +58,7 @@ jobs: run: pnpm build - name: Cache dist - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 + uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 with: retention-days: 3 name: dist diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index 6a381b5d85..d4ff06ab82 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -58,7 +58,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 + uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 with: name: SARIF file path: results.sarif diff --git a/package.json b/package.json index f45371e990..eb870dd9f3 100644 --- a/package.json +++ b/package.json @@ -81,9 +81,9 @@ "vue": "3.3.4", "vue-eslint-parser": "9.3.1", "vue-router": "4.2.4", - "vue-tsc": "1.8.8" + "vue-tsc": "1.8.10" }, - "packageManager": "pnpm@8.7.1", + "packageManager": "pnpm@8.7.4", "engines": { "node": "^14.18.0 || >=16.10.0" } diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 8baadb3eb1..7fe99482e9 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -58,9 +58,9 @@ "@nuxt/telemetry": "^2.4.1", "@nuxt/ui-templates": "^1.3.1", "@nuxt/vite-builder": "workspace:*", - "@unhead/dom": "^1.5.2", - "@unhead/ssr": "^1.5.2", - "@unhead/vue": "^1.5.2", + "@unhead/dom": "^1.5.3", + "@unhead/ssr": "^1.5.3", + "@unhead/vue": "^1.5.3", "@vue/shared": "^3.3.4", "acorn": "8.10.0", "c12": "^1.4.2", diff --git a/packages/schema/package.json b/packages/schema/package.json index 9b0fe6e1c8..28338a229e 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -32,7 +32,7 @@ "@types/file-loader": "5.0.1", "@types/pug": "2.0.6", "@types/sass-loader": "8.0.5", - "@unhead/schema": "1.5.2", + "@unhead/schema": "1.5.3", "@vitejs/plugin-vue": "4.3.4", "@vitejs/plugin-vue-jsx": "3.0.2", "@vue/compiler-core": "3.3.4", diff --git a/packages/test-utils/package.json b/packages/test-utils/package.json index afb232d9f2..4539e500c4 100644 --- a/packages/test-utils/package.json +++ b/packages/test-utils/package.json @@ -27,7 +27,7 @@ "consola": "^3.2.3", "defu": "^6.1.2", "execa": "^7.2.0", - "get-port-please": "^3.0.2", + "get-port-please": "^3.1.1", "ofetch": "^1.3.3", "pathe": "^1.1.1", "ufo": "^1.3.0" diff --git a/packages/vite/package.json b/packages/vite/package.json index cb6e185054..458cba6a56 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -40,7 +40,7 @@ "estree-walker": "^3.0.3", "externality": "^1.0.2", "fs-extra": "^11.1.1", - "get-port-please": "^3.0.2", + "get-port-please": "^3.1.1", "h3": "^1.8.1", "knitwork": "^1.0.0", "magic-string": "^0.30.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cfaf9ceb09..1e183eff8d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -146,8 +146,8 @@ importers: specifier: 4.2.4 version: 4.2.4(vue@3.3.4) vue-tsc: - specifier: 1.8.8 - version: 1.8.8(typescript@5.2.2) + specifier: 1.8.10 + version: 1.8.10(typescript@5.2.2) .website: devDependencies: @@ -264,14 +264,14 @@ importers: specifier: ^14.18.0 || >=16.10.0 version: 18.17.14 '@unhead/dom': - specifier: ^1.5.2 - version: 1.5.2 + specifier: ^1.5.3 + version: 1.5.3 '@unhead/ssr': - specifier: ^1.5.2 - version: 1.5.2 + specifier: ^1.5.3 + version: 1.5.3 '@unhead/vue': - specifier: ^1.5.2 - version: 1.5.2(vue@3.3.4) + specifier: ^1.5.3 + version: 1.5.3(vue@3.3.4) '@vue/shared': specifier: ^3.3.4 version: 3.3.4 @@ -479,8 +479,8 @@ importers: specifier: 8.0.5 version: 8.0.5 '@unhead/schema': - specifier: 1.5.2 - version: 1.5.2 + specifier: 1.5.3 + version: 1.5.3 '@vitejs/plugin-vue': specifier: 4.3.4 version: 4.3.4(vite@4.4.9)(vue@3.3.4) @@ -548,8 +548,8 @@ importers: specifier: ^7.2.0 version: 7.2.0 get-port-please: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^3.1.1 + version: 3.1.1 ofetch: specifier: ^1.3.3 version: 1.3.3 @@ -621,8 +621,8 @@ importers: specifier: ^11.1.1 version: 11.1.1 get-port-please: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^3.1.1 + version: 3.1.1 h3: specifier: ^1.8.1 version: 1.8.1 @@ -679,7 +679,7 @@ importers: version: 0.33.0(@types/node@18.17.14) vite-plugin-checker: specifier: ^0.6.2 - version: 0.6.2(eslint@8.48.0)(typescript@5.2.2)(vite@4.4.9)(vue-tsc@1.8.8) + version: 0.6.2(eslint@8.48.0)(typescript@5.2.2)(vite@4.4.9)(vue-tsc@1.8.10) vue-bundle-renderer: specifier: ^2.0.0 version: 2.0.0 @@ -3155,41 +3155,41 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@unhead/dom@1.5.2: - resolution: {integrity: sha512-lEDxqFSGb3Ye1TD7Kr3kRsMOSv5R2ldJ/uYh2mRFungYfv3TjOUfxvGgMs2vRjatPDpV4IUWr3E1BASayN8CnA==} + /@unhead/dom@1.5.3: + resolution: {integrity: sha512-0a9aO34lzy40jT3DycpyaQCMbksveKajkhEACxcs2VdG04tndRK0s3UzdvJFV8nnTfRZAI+y3yEIjTLWswgFWQ==} dependencies: - '@unhead/schema': 1.5.2 - '@unhead/shared': 1.5.2 + '@unhead/schema': 1.5.3 + '@unhead/shared': 1.5.3 dev: false - /@unhead/schema@1.5.2: - resolution: {integrity: sha512-7nmcN332yuXzWPzzlqD/F/wOXTaIKn3cRaPxTkU+eJLNGmAsQ9i5p4P5x9AgduZD/NGbJG/h+wM+/cB0psMiKQ==} + /@unhead/schema@1.5.3: + resolution: {integrity: sha512-UpvxfEn+2CJAO6Ytr/Mnps67/zm4ezWjP5JrisjTx8NqWQtIsuvkdp81GpTGVYGHuaPe9c/SqtlsL9aL9oUv8Q==} dependencies: hookable: 5.5.3 zhead: 2.0.10 - /@unhead/shared@1.5.2: - resolution: {integrity: sha512-gHjquSnyJ9SOV20zxGffZP0t9mkBAHTGgFhUl9HB8FrL9tp4Jovjc01O0jn/NRNaBICsQBxDryj5lpuTHFIM9g==} + /@unhead/shared@1.5.3: + resolution: {integrity: sha512-JMRHlOmKTOlC949u3LTZIObwB9vRPLwLqbI5SRp9Cb1hheizTaHHsj7R7UfYpXzrbfNrx6wvnOosb5RF6Urikw==} dependencies: - '@unhead/schema': 1.5.2 + '@unhead/schema': 1.5.3 dev: false - /@unhead/ssr@1.5.2: - resolution: {integrity: sha512-wse2uOg2Fh+MM9unoM0T1Q/dYwmaNdUWzR4ovnMKvQ6K7HpzCJaETHLzbS5g/TXLRIFd7eA3mTQCnp0iPoaoYw==} + /@unhead/ssr@1.5.3: + resolution: {integrity: sha512-zgSQzh33Q/1wtTM15hEYwkWVxJA8ENt++bM6acjQvx8vdaDTgNlD6ZokRBmKDvZ0dj9rNZDmQD34IFsJhuaW+A==} dependencies: - '@unhead/schema': 1.5.2 - '@unhead/shared': 1.5.2 + '@unhead/schema': 1.5.3 + '@unhead/shared': 1.5.3 dev: false - /@unhead/vue@1.5.2(vue@3.3.4): - resolution: {integrity: sha512-DkKJJfNmiwkq41PiNmPcONVdNN1wRp8KTHCCOnOBt1nAdhIAj83ykIdpkLGLseJTzy4C2efiR1lips/42ZsNTg==} + /@unhead/vue@1.5.3(vue@3.3.4): + resolution: {integrity: sha512-9xo7/ArTE+sunIK5RomfQWOPJYw3Vbvs/aJ1/vzaSQandqrgzSX8THiaZ+ZveefdJUqBXlq8tuTIf9ggzrW5Ww==} peerDependencies: vue: 3.3.4 dependencies: - '@unhead/schema': 1.5.2 - '@unhead/shared': 1.5.2 + '@unhead/schema': 1.5.3 + '@unhead/shared': 1.5.3 hookable: 5.5.3 - unhead: 1.5.2 + unhead: 1.5.3 vue: 3.3.4 dev: false @@ -3414,6 +3414,24 @@ packages: /@vue/devtools-api@6.5.0: resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==} + /@vue/language-core@1.8.10(typescript@5.2.2): + resolution: {integrity: sha512-db8PtM4ZZr7SYNH30XpKxUYnUBYaTvcuJ4c2whKK04fuAjbtjAIZ2al5GzGEfUlesmvkpgdbiSviRXUxgD9Omw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@volar/language-core': 1.10.0 + '@volar/source-map': 1.10.0 + '@vue/compiler-dom': 3.3.4 + '@vue/reactivity': 3.3.4 + '@vue/shared': 3.3.4 + minimatch: 9.0.3 + muggle-string: 0.3.1 + typescript: 5.2.2 + vue-template-compiler: 2.7.14 + /@vue/language-core@1.8.8(typescript@5.2.2): resolution: {integrity: sha512-i4KMTuPazf48yMdYoebTkgSOJdFraE4pQf0B+FTOFkbB+6hAfjrSou/UmYWRsWyZV6r4Rc6DDZdI39CJwL0rWw==} peerDependencies: @@ -3431,6 +3449,7 @@ packages: muggle-string: 0.3.1 typescript: 5.2.2 vue-template-compiler: 2.7.14 + dev: true /@vue/reactivity-transform@3.3.4: resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} @@ -3485,11 +3504,11 @@ packages: vue-component-type-helpers: 1.8.4 dev: true - /@vue/typescript@1.8.8(typescript@5.2.2): - resolution: {integrity: sha512-jUnmMB6egu5wl342eaUH236v8tdcEPXXkPgj+eI/F6JwW/lb+yAU6U07ZbQ3MVabZRlupIlPESB7ajgAGixhow==} + /@vue/typescript@1.8.10(typescript@5.2.2): + resolution: {integrity: sha512-vPSpTXMk4chYwvyTGjM891cKgnx2r6vtbdANOp2mRU31f4HYGyLrZBlGgiua7SaO2cLjUg8y91OipJe0t8OFhA==} dependencies: '@volar/typescript': 1.10.0 - '@vue/language-core': 1.8.8(typescript@5.2.2) + '@vue/language-core': 1.8.10(typescript@5.2.2) transitivePeerDependencies: - typescript @@ -6041,8 +6060,8 @@ packages: engines: {node: '>=8.0.0'} dev: true - /get-port-please@3.0.2: - resolution: {integrity: sha512-c14cAITf0E+uqdxGALvyYHwOL7UsnWcv3oDtgDAZksiVSGN87xlWVUWGZcmWQU3cICdaOxT+6LdQzUfK2ei1SA==} + /get-port-please@3.1.1: + resolution: {integrity: sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA==} /get-stdin@9.0.0: resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} @@ -7115,7 +7134,7 @@ packages: clipboardy: 3.0.0 consola: 3.2.3 defu: 6.1.2 - get-port-please: 3.0.2 + get-port-please: 3.1.1 h3: 1.8.1 http-shutdown: 1.2.2 jiti: 1.19.3 @@ -8217,7 +8236,7 @@ packages: '@vitejs/plugin-vue-jsx': 3.0.2(vite@4.4.9)(vue@3.3.4) '@vitest/ui': 0.33.0(vitest@0.33.0) defu: 6.1.2 - get-port-please: 3.0.2 + get-port-please: 3.1.1 perfect-debounce: 1.0.0 std-env: 3.4.3 vite: 4.4.9(@types/node@18.17.14) @@ -10439,12 +10458,12 @@ packages: node-fetch-native: 1.4.0 pathe: 1.1.1 - /unhead@1.5.2: - resolution: {integrity: sha512-KLsz9MCMEhVEeaI4YsoALnr4xk6k+xZ2JW9xjJxsae6AvHNTZQzRbavuPRQ3tIw2hIHoGetyPKiYjFteORNQMg==} + /unhead@1.5.3: + resolution: {integrity: sha512-4hkVcX74zs+bv5s6ubIGd/iLgAN4D58u+z2wYbczPwUVFUxKyElTqT+9VjNX3T1SikKbOSl1pFyNKqBc+342lw==} dependencies: - '@unhead/dom': 1.5.2 - '@unhead/schema': 1.5.2 - '@unhead/shared': 1.5.2 + '@unhead/dom': 1.5.3 + '@unhead/schema': 1.5.3 + '@unhead/shared': 1.5.3 hookable: 5.5.3 dev: false @@ -10801,7 +10820,7 @@ packages: - supports-color - terser - /vite-plugin-checker@0.6.2(eslint@8.48.0)(typescript@5.2.2)(vite@4.4.9)(vue-tsc@1.8.8): + /vite-plugin-checker@0.6.2(eslint@8.48.0)(typescript@5.2.2)(vite@4.4.9)(vue-tsc@1.8.10): resolution: {integrity: sha512-YvvvQ+IjY09BX7Ab+1pjxkELQsBd4rPhWNw8WLBeFVxu/E7O+n6VYAqNsKdK/a2luFlX/sMpoWdGFfg4HvwdJQ==} engines: {node: '>=14.16'} peerDependencies: @@ -10852,7 +10871,7 @@ packages: vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.8 vscode-uri: 3.0.7 - vue-tsc: 1.8.8(typescript@5.2.2) + vue-tsc: 1.8.10(typescript@5.2.2) dev: false /vite@4.4.9(@types/node@18.17.14): @@ -11133,14 +11152,14 @@ packages: de-indent: 1.0.2 he: 1.2.0 - /vue-tsc@1.8.8(typescript@5.2.2): - resolution: {integrity: sha512-bSydNFQsF7AMvwWsRXD7cBIXaNs/KSjvzWLymq/UtKE36697sboX4EccSHFVxvgdBlI1frYPc/VMKJNB7DFeDQ==} + /vue-tsc@1.8.10(typescript@5.2.2): + resolution: {integrity: sha512-ptpTFFDoHQgkWJF7i5iERxooiQzOGtG1uKTfmAUuS3qPuSQGq+Ky/S8BFHhnFGwoOxq/PjmGN2QSZEfg1rtzQA==} hasBin: true peerDependencies: typescript: '*' dependencies: - '@vue/language-core': 1.8.8(typescript@5.2.2) - '@vue/typescript': 1.8.8(typescript@5.2.2) + '@vue/language-core': 1.8.10(typescript@5.2.2) + '@vue/typescript': 1.8.10(typescript@5.2.2) semver: 7.5.4 typescript: 5.2.2 diff --git a/test/bundle.test.ts b/test/bundle.test.ts index dd56092c01..1d26a7b925 100644 --- a/test/bundle.test.ts +++ b/test/bundle.test.ts @@ -35,7 +35,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"300k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"1822k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"1823k"') const packages = modules.files .filter(m => m.endsWith('package.json')) @@ -74,7 +74,7 @@ describe.skipIf(process.env.SKIP_BUNDLE_SIZE === 'true' || process.env.ECOSYSTEM expect.soft(roundToKilobytes(serverStats.totalBytes)).toMatchInlineSnapshot('"607k"') const modules = await analyzeSizes('node_modules/**/*', serverDir) - expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"71.0k"') + expect.soft(roundToKilobytes(modules.totalBytes)).toMatchInlineSnapshot('"71.1k"') const packages = modules.files .filter(m => m.endsWith('package.json')) From 8cf119f9a7a6df0c124f7d1265fd54077dc2228d Mon Sep 17 00:00:00 2001 From: Sma11X <540351143@qq.com> Date: Thu, 7 Sep 2023 17:49:28 +0800 Subject: [PATCH 776/912] docs: fix typo (#23060) --- docs/1.getting-started/4.styling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/1.getting-started/4.styling.md b/docs/1.getting-started/4.styling.md index 2059a445a1..dfd87b4ddb 100644 --- a/docs/1.getting-started/4.styling.md +++ b/docs/1.getting-started/4.styling.md @@ -495,7 +495,7 @@ We would recommend using [Fontaine](https://github.com/nuxt-modules/fontaine) to Always remember to take advantage of the various tools and techniques available in the Web ecosystem at large to make styling your application easier and more efficient. Whether you're using native CSS, a preprocessor, postcss, a UI library or a module, Nuxt has got you covered. Happy styling! :: -### LCP Avanced optimizations +### LCP Advanced optimizations You can do the following to speed-up the download of your global CSS files: From 6645b4f088ddc3575543efe8069983f7b01ec67f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Sep 2023 12:43:39 +0100 Subject: [PATCH 777/912] chore(deps): update devdependency happy-dom to v11 (main) (#23050) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Daniel Roe --- package.json | 2 +- pnpm-lock.yaml | 40 ++++++++++++++++++++-------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index eb870dd9f3..2f2d06cb45 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "fs-extra": "11.1.1", "globby": "13.2.2", "h3": "1.8.1", - "happy-dom": "10.11.2", + "happy-dom": "11.0.1", "jiti": "1.19.3", "markdownlint-cli": "^0.33.0", "nitropack": "2.6.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1e183eff8d..f61a332a58 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,8 +83,8 @@ importers: specifier: 1.8.1 version: 1.8.1 happy-dom: - specifier: 10.11.2 - version: 10.11.2 + specifier: 11.0.1 + version: 11.0.1 jiti: specifier: 1.19.3 version: 1.19.3 @@ -102,7 +102,7 @@ importers: version: link:packages/nuxt nuxt-vitest: specifier: 0.10.4 - version: 0.10.4(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.4)(happy-dom@10.11.2)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + version: 0.10.4(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.4)(happy-dom@11.0.1)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) ofetch: specifier: 1.3.3 version: 1.3.3 @@ -132,10 +132,10 @@ importers: version: 4.4.9(@types/node@18.17.14) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.11.2) + version: 0.33.0(happy-dom@11.0.1) vitest-environment-nuxt: specifier: 0.10.4 - version: 0.10.4(happy-dom@10.11.2)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + version: 0.10.4(happy-dom@11.0.1)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) vue: specifier: 3.3.4 version: 3.3.4 @@ -235,7 +235,7 @@ importers: version: 4.4.9(@types/node@18.17.14) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.11.2) + version: 0.33.0(happy-dom@11.0.1) webpack: specifier: 5.88.2 version: 5.88.2 @@ -431,7 +431,7 @@ importers: version: 4.4.9(@types/node@18.17.14) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.11.2) + version: 0.33.0(happy-dom@11.0.1) packages/schema: dependencies: @@ -574,7 +574,7 @@ importers: version: 2.0.0(typescript@5.2.2) vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.11.2) + version: 0.33.0(happy-dom@11.0.1) packages/vite: dependencies: @@ -899,7 +899,7 @@ importers: version: 1.3.3 vitest: specifier: 0.33.0 - version: 0.33.0(happy-dom@10.11.2) + version: 0.33.0(happy-dom@11.0.1) vue: specifier: 3.3.4 version: 3.3.4 @@ -3284,7 +3284,7 @@ packages: pathe: 1.1.1 picocolors: 1.0.0 sirv: 2.0.3 - vitest: 0.33.0(happy-dom@10.11.2) + vitest: 0.33.0(happy-dom@11.0.1) dev: true /@vitest/utils@0.33.0: @@ -6256,8 +6256,8 @@ packages: uncrypto: 0.1.3 unenv: 1.7.4 - /happy-dom@10.11.2: - resolution: {integrity: sha512-rzgmLjLkhyaOdFEyU8CWXzbgyCyM7wJHLqhaoeEVSTyur1fjcUaiNTHx+D4CPaLvx16tGy+SBPd9TVnP/kzL3w==} + /happy-dom@11.0.1: + resolution: {integrity: sha512-3U3kXpTbHQoCxItf5VhdHSSeX7ZKekcEx6hBZ5Ug12MeEASL89upfz6Nefv7pwTc5jWsXPHlVInjB1gID0HkwQ==} dependencies: css.escape: 1.5.1 entities: 4.5.0 @@ -8223,7 +8223,7 @@ packages: - vue dev: true - /nuxt-vitest@0.10.4(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.4)(happy-dom@10.11.2)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): + /nuxt-vitest@0.10.4(@vitejs/plugin-vue-jsx@3.0.2)(@vitejs/plugin-vue@4.3.4)(happy-dom@11.0.1)(vite@4.4.9)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): resolution: {integrity: sha512-Ct2amuHLl/WlmTc4VCLwGYpSjHiCYL51Lw9D7e4xUGiQwz8UOZxDJiGSzGqo7mMnt2E368lAjjFKEWkqiOH4ew==} peerDependencies: '@vitejs/plugin-vue': '*' @@ -8240,8 +8240,8 @@ packages: perfect-debounce: 1.0.0 std-env: 3.4.3 vite: 4.4.9(@types/node@18.17.14) - vitest: 0.33.0(happy-dom@10.11.2) - vitest-environment-nuxt: 0.10.4(happy-dom@10.11.2)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) + vitest: 0.33.0(happy-dom@11.0.1) + vitest-environment-nuxt: 0.10.4(happy-dom@11.0.1)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4) transitivePeerDependencies: - '@testing-library/vue' - '@vue/server-renderer' @@ -10909,7 +10909,7 @@ packages: optionalDependencies: fsevents: 2.3.3 - /vitest-environment-nuxt@0.10.4(happy-dom@10.11.2)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): + /vitest-environment-nuxt@0.10.4(happy-dom@11.0.1)(vitest@0.33.0)(vue-router@4.2.4)(vue@3.3.4): resolution: {integrity: sha512-6YRG+Y28oCO35sg7u2jnGx4o/nVdv1VtRuYLxiqG2JpEJB5KsA2M6sLeMm24BKRvYxCDIxHJyo2EQFgNCDmL8Q==} peerDependencies: '@testing-library/vue': 7.0.0 @@ -10931,20 +10931,20 @@ packages: defu: 6.1.2 estree-walker: 3.0.3 h3: 1.8.1 - happy-dom: 10.11.2 + happy-dom: 11.0.1 local-pkg: 0.4.3 magic-string: 0.30.3 ofetch: 1.3.3 ufo: 1.3.0 unenv: 1.7.4 - vitest: 0.33.0(happy-dom@10.11.2) + vitest: 0.33.0(happy-dom@11.0.1) vue: 3.3.4 vue-router: 4.2.4(vue@3.3.4) transitivePeerDependencies: - '@vue/server-renderer' dev: true - /vitest@0.33.0(happy-dom@10.11.2): + /vitest@0.33.0(happy-dom@11.0.1): resolution: {integrity: sha512-1CxaugJ50xskkQ0e969R/hW47za4YXDUfWJDxip1hwbnhUjYolpfUn2AMOulqG/Dtd9WYAtkHmM/m3yKVrEejQ==} engines: {node: '>=v14.18.0'} hasBin: true @@ -10988,7 +10988,7 @@ packages: cac: 6.7.14 chai: 4.3.7 debug: 4.3.4 - happy-dom: 10.11.2 + happy-dom: 11.0.1 local-pkg: 0.4.3 magic-string: 0.30.3 pathe: 1.1.1 From dfdebf29191b7ef2c00873b1201bf48a206bf95e Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Fri, 8 Sep 2023 21:48:42 +0200 Subject: [PATCH 778/912] fix(nuxt): don't `joinURL` with remote sources on NuxtIsland (#23093) --- packages/nuxt/src/app/components/nuxt-island.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/app/components/nuxt-island.ts b/packages/nuxt/src/app/components/nuxt-island.ts index 63f1303b0b..434634defa 100644 --- a/packages/nuxt/src/app/components/nuxt-island.ts +++ b/packages/nuxt/src/app/components/nuxt-island.ts @@ -117,7 +117,7 @@ export default defineComponent({ } // TODO: Validate response // $fetch handles the app.baseURL in dev - const r = await eventFetch(withQuery(import.meta.dev && import.meta.client ? url : joinURL(config.app.baseURL ?? '', url), { + const r = await eventFetch(withQuery(((import.meta.dev && import.meta.client) || props.source) ? url : joinURL(config.app.baseURL ?? '', url), { ...props.context, props: props.props ? JSON.stringify(props.props) : undefined })) From 3f9fa008d98d585029860edb93f176f91868ea03 Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Sun, 10 Sep 2023 10:06:11 +0200 Subject: [PATCH 779/912] fix(nuxt): exclude `data-v` attrs from server component props (#23095) --- .../components/runtime/server-component.ts | 13 +++--- test/nuxt/nuxt-island.test.ts | 41 +++++++++++++++++++ 2 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 test/nuxt/nuxt-island.test.ts diff --git a/packages/nuxt/src/components/runtime/server-component.ts b/packages/nuxt/src/components/runtime/server-component.ts index 777204209e..4a308c1b56 100644 --- a/packages/nuxt/src/components/runtime/server-component.ts +++ b/packages/nuxt/src/components/runtime/server-component.ts @@ -7,11 +7,14 @@ export const createServerComponent = (name: string) => { inheritAttrs: false, props: { lazy: Boolean }, setup (props, { attrs, slots }) { - return () => h(NuxtIsland, { - name, - lazy: props.lazy, - props: attrs - }, slots) + return () => { + return h(NuxtIsland, { + name, + lazy: props.lazy, + // #23051 - remove data-v attributes + props: Object.fromEntries(Object.entries(attrs).filter(([key]) => !key.startsWith('data-v-'))) + }, slots) + } } }) } diff --git a/test/nuxt/nuxt-island.test.ts b/test/nuxt/nuxt-island.test.ts new file mode 100644 index 0000000000..90e3a2922b --- /dev/null +++ b/test/nuxt/nuxt-island.test.ts @@ -0,0 +1,41 @@ +import { describe, expect, it, vi } from 'vitest' +import { h } from 'vue' +import { createServerComponent } from '../../packages/nuxt/src/components/runtime/server-component' + +vi.mock('vue', async (original) => { + const vue = await original() + return { + ...vue, + h: vi.fn(vue.h) + } +}) + +describe('runtime server component', () => { + it('expect no data-v- attrbutes #23051', () => { + // @ts-expect-error mock + vi.mocked(h).mockImplementation(() => null) + + // @ts-expect-error test setup + createServerComponent('DummyName').setup!({ + lazy: false + }, { + attrs: { + 'data-v-123': '', + test: 1 + }, + slots: {}, + emit: vi.fn(), + expose: vi.fn() + })() + + expect(h).toHaveBeenCalledOnce() + if (!vi.mocked(h).mock.lastCall) { throw new Error('no last call') } + expect(vi.mocked(h).mock.lastCall![1]?.props).toBeTypeOf('object') + expect(Object.keys(vi.mocked(h).mock.lastCall![1]?.props)).not.toContain('data-v-123') + expect(vi.mocked(h).mock.lastCall![1]?.props).toMatchInlineSnapshot(` + { + "test": 1, + } + `) + }) +}) From 5e33d316aa92137724f1514fc2c467b5ced6819b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 10 Sep 2023 09:56:12 +0100 Subject: [PATCH 780/912] chore(deps): update tibdex/github-app-token action to v2 (main) (#23103) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/ecosystem-ci-trigger.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ecosystem-ci-trigger.yml b/.github/workflows/ecosystem-ci-trigger.yml index 57c6fc26a6..8a67ed25cb 100644 --- a/.github/workflows/ecosystem-ci-trigger.yml +++ b/.github/workflows/ecosystem-ci-trigger.yml @@ -64,7 +64,7 @@ jobs: repo: pr.head.repo.full_name } - id: generate-token - uses: tibdex/github-app-token@0d49dd721133f900ebd5e0dff2810704e8defbc6 # v1.8.2 + uses: tibdex/github-app-token@0914d50df753bbc42180d982a6550f195390069f # v2.0.0 with: app_id: ${{ secrets.ECOSYSTEM_CI_GITHUB_APP_ID }} private_key: ${{ secrets.ECOSYSTEM_CI_GITHUB_APP_PRIVATE_KEY }} From a07b34a6edb2ab900c7397fcf0965b1a468d910a Mon Sep 17 00:00:00 2001 From: Maxim Date: Mon, 11 Sep 2023 01:40:13 +0200 Subject: [PATCH 781/912] docs: add `name` param to `PageMeta` interface description (#23107) --- docs/3.api/3.utils/define-page-meta.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/3.api/3.utils/define-page-meta.md b/docs/3.api/3.utils/define-page-meta.md index 71c460a241..1f43057426 100644 --- a/docs/3.api/3.utils/define-page-meta.md +++ b/docs/3.api/3.utils/define-page-meta.md @@ -25,6 +25,7 @@ definePageMeta(meta: PageMeta) => void interface PageMeta { validate?: (route: RouteLocationNormalized) => boolean | Promise | Partial | Promise> redirect?: RouteRecordRedirectOption + name?: string path?: string alias?: string | string[] pageTransition?: boolean | TransitionProps @@ -46,6 +47,12 @@ interface PageMeta { An object accepting the following page metadata: + **`name`** + + - **Type**: `string` + + You may define a name for this page's route. By default, name is generated based on path inside the [`pages/` directory](/docs/guide/directory-structure/pages). + **`path`** - **Type**: `string` From 48fa30af925289c86fc45e2943f2d2027390f7a4 Mon Sep 17 00:00:00 2001 From: Dmitry Istomin Date: Mon, 11 Sep 2023 11:13:24 +0300 Subject: [PATCH 782/912] fix(nuxt): handle optional params within a path segment (#23070) --- packages/nuxt/src/pages/utils.ts | 2 +- packages/nuxt/test/pages.test.ts | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/pages/utils.ts b/packages/nuxt/src/pages/utils.ts index 7e20e617b3..e095bd3622 100644 --- a/packages/nuxt/src/pages/utils.ts +++ b/packages/nuxt/src/pages/utils.ts @@ -220,7 +220,7 @@ function parseSegment (segment: string) { if (c === '[' && state === SegmentParserState.dynamic) { state = SegmentParserState.optional } - if (c === ']' && (state !== SegmentParserState.optional || buffer[buffer.length - 1] === ']')) { + if (c === ']' && (state !== SegmentParserState.optional || segment[i - 1] === ']')) { if (!buffer) { throw new Error('Empty param') } else { diff --git a/packages/nuxt/test/pages.test.ts b/packages/nuxt/test/pages.test.ts index 8d21d91264..1de27d84f9 100644 --- a/packages/nuxt/test/pages.test.ts +++ b/packages/nuxt/test/pages.test.ts @@ -157,6 +157,10 @@ describe('pages:generateRoutesFromFiles', () => { { path: `${pagesDir}/[slug].vue` }, { path: `${pagesDir}/[[foo]]` }, { path: `${pagesDir}/[[foo]]/index.vue` }, + { path: `${pagesDir}/optional/[[opt]].vue` }, + { path: `${pagesDir}/optional/prefix-[[opt]].vue` }, + { path: `${pagesDir}/optional/[[opt]]-postfix.vue` }, + { path: `${pagesDir}/optional/prefix-[[opt]]-postfix.vue` }, { path: `${pagesDir}/[bar]/index.vue` }, { path: `${pagesDir}/nonopt/[slug].vue` }, { path: `${pagesDir}/opt/[[slug]].vue` }, @@ -188,6 +192,31 @@ describe('pages:generateRoutesFromFiles', () => { file: 'pages/[[foo]]', path: '/:foo?' }, + { + children: [], + path: '/optional/:opt?', + name: 'optional-opt', + file: `${pagesDir}/optional/[[opt]].vue` + }, + { + children: [], + path: '/optional/prefix-:opt?', + name: 'optional-prefix-opt', + file: `${pagesDir}/optional/prefix-[[opt]].vue` + }, + + { + children: [], + path: '/optional/:opt?-postfix', + name: 'optional-opt-postfix', + file: `${pagesDir}/optional/[[opt]]-postfix.vue` + }, + { + children: [], + path: '/optional/prefix-:opt?-postfix', + name: 'optional-prefix-opt-postfix', + file: `${pagesDir}/optional/prefix-[[opt]]-postfix.vue` + }, { children: [], name: 'bar', From aa73cbeaf91766c5091cab59b18a9b00fba2e831 Mon Sep 17 00:00:00 2001 From: Maxime Pauvert Date: Mon, 11 Sep 2023 10:14:01 +0200 Subject: [PATCH 783/912] fix(nuxt): include method when creating `useFetch` auto key (#23086) --- packages/nuxt/src/app/composables/fetch.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/app/composables/fetch.ts b/packages/nuxt/src/app/composables/fetch.ts index e70a1d6907..7e6371b2f7 100644 --- a/packages/nuxt/src/app/composables/fetch.ts +++ b/packages/nuxt/src/app/composables/fetch.ts @@ -1,6 +1,6 @@ import type { FetchError, FetchOptions } from 'ofetch' import type { NitroFetchRequest, TypedInternalResponse, AvailableRouterMethod as _AvailableRouterMethod } from 'nitropack' -import type { Ref } from 'vue' +import type { MaybeRef, Ref } from 'vue' import { computed, reactive, unref } from 'vue' import { hash } from 'ohash' import { useRequestFetch } from './ssr' @@ -85,7 +85,7 @@ export function useFetch< return unref(r) }) - const _key = opts.key || hash([autoKey, unref(opts.baseURL), typeof _request.value === 'string' ? _request.value : '', unref(opts.params || opts.query)]) + const _key = opts.key || hash([autoKey, unref(opts.method as MaybeRef | undefined)?.toUpperCase() || 'GET', unref(opts.baseURL), typeof _request.value === 'string' ? _request.value : '', unref(opts.params || opts.query)]) if (!_key || typeof _key !== 'string') { throw new TypeError('[nuxt] [useFetch] key must be a string: ' + _key) } From 411ecabd1055606fc3581591e8560a897d22e015 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 11 Sep 2023 09:47:57 +0100 Subject: [PATCH 784/912] fix(vite): add css to manifest without `cssCodeSplit` (#23049) --- packages/vite/src/manifest.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/manifest.ts b/packages/vite/src/manifest.ts index b4026fad95..dcd2040aff 100644 --- a/packages/vite/src/manifest.ts +++ b/packages/vite/src/manifest.ts @@ -1,5 +1,5 @@ import fse from 'fs-extra' -import { resolve } from 'pathe' +import { relative, resolve } from 'pathe' import { withTrailingSlash, withoutLeadingSlash } from 'ufo' import escapeRE from 'escape-string-regexp' import { normalizeViteManifest } from 'vue-bundle-renderer' @@ -47,6 +47,15 @@ export async function writeManifest (ctx: ViteBuildContext, css: string[] = []) await fse.mkdirp(serverDist) + if (ctx.config.build?.cssCodeSplit === false) { + const entryCSS = Object.values(clientManifest as Record).find(val => (val).file?.endsWith('.css'))?.file + if (entryCSS) { + const key = relative(ctx.config.root!, ctx.entry) + clientManifest[key].css ||= [] + clientManifest[key].css!.push(entryCSS) + } + } + const manifest = normalizeViteManifest(clientManifest) await ctx.nuxt.callHook('build:manifest', manifest) From 40601ec15faa5daaf0fbb35a94ed4f83bacd6ffc Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 11 Sep 2023 11:50:19 +0100 Subject: [PATCH 785/912] fix(nuxt): find parent routes by exact path match (#23040) --- packages/nuxt/src/pages/utils.ts | 3 +- packages/nuxt/test/pages.test.ts | 92 +++++++++++++++++++++++++++++++- 2 files changed, 92 insertions(+), 3 deletions(-) diff --git a/packages/nuxt/src/pages/utils.ts b/packages/nuxt/src/pages/utils.ts index e095bd3622..0195ae6e0e 100644 --- a/packages/nuxt/src/pages/utils.ts +++ b/packages/nuxt/src/pages/utils.ts @@ -80,7 +80,8 @@ export async function generateRoutesFromFiles (files: string[], pagesDir: string route.name += (route.name && '/') + segmentName // ex: parent.vue + parent/child.vue - const child = parent.find(parentRoute => parentRoute.name === route.name && !parentRoute.path.endsWith('(.*)*')) + const path = route.path + getRoutePath(tokens).replace(/\/index$/, '/') + const child = parent.find(parentRoute => parentRoute.name === route.name && parentRoute.path === path) if (child && child.children) { parent = child.children diff --git a/packages/nuxt/test/pages.test.ts b/packages/nuxt/test/pages.test.ts index 1de27d84f9..70f0b07c24 100644 --- a/packages/nuxt/test/pages.test.ts +++ b/packages/nuxt/test/pages.test.ts @@ -351,6 +351,91 @@ describe('pages:generateRoutesFromFiles', () => { children: [] } ] + }, + { + description: 'should not merge required param as a child of optional param', + files: [ + { path: `${pagesDir}/[[foo]].vue` }, + { path: `${pagesDir}/[foo].vue` } + ], + output: [ + { + name: 'foo', + path: '/:foo?', + file: `${pagesDir}/[[foo]].vue`, + children: [ + ] + }, + { + name: 'foo', + path: '/:foo()', + file: `${pagesDir}/[foo].vue`, + children: [] + } + ] + }, + { + description: 'should correctly merge nested routes', + files: [ + { path: `${pagesDir}/param.vue` }, + { path: `${pagesDir}/param/index.vue` }, + { path: `${pagesDir}/param/index/index.vue` }, + { path: `${pagesDir}/param/index/sibling.vue` }, + { path: `${pagesDir}/wrapper-expose/other.vue` }, + { path: `${pagesDir}/wrapper-expose/other/index.vue` }, + { path: `${pagesDir}/wrapper-expose/other/sibling.vue` }, + { path: `${pagesDir}/param/sibling.vue` } + ], + output: [ + { + children: [ + { + children: [ + { + children: [], + file: 'pages/param/index/index.vue', + name: 'param-index', + path: '' + }, + { + children: [], + file: 'pages/param/index/sibling.vue', + name: 'param-index-sibling', + path: 'sibling' + } + ], + file: 'pages/param/index.vue', + path: '' + }, + { + children: [], + file: 'pages/param/sibling.vue', + name: 'param-sibling', + path: 'sibling' + } + ], + file: 'pages/param.vue', + path: '/param' + }, + { + children: [ + { + children: [], + file: 'pages/wrapper-expose/other/index.vue', + name: 'wrapper-expose-other', + path: '' + }, + { + children: [], + file: 'pages/wrapper-expose/other/sibling.vue', + name: 'wrapper-expose-other-sibling', + path: 'sibling' + } + ], + file: 'pages/wrapper-expose/other.vue', + path: '/wrapper-expose/other' + } + ] } ] @@ -360,12 +445,15 @@ describe('pages:generateRoutesFromFiles', () => { test.files.map(file => [file.path, 'template' in file ? file.template : '']) ) as Record + let result try { - const result = await generateRoutesFromFiles(test.files.map(file => file.path), pagesDir, true, vfs) - expect(result).to.deep.equal(test.output) + result = await generateRoutesFromFiles(test.files.map(file => file.path), pagesDir, true, vfs) } catch (error: any) { expect(error.message).toEqual(test.error) } + if (result) { + expect(result).toEqual(test.output) + } }) } }) From 28af761c74949e3c712ad05ef6bc73f0f50f7ab1 Mon Sep 17 00:00:00 2001 From: David Gonzalez Date: Mon, 11 Sep 2023 13:02:28 +0200 Subject: [PATCH 786/912] fix(nuxt): load `spaLoadingTemplate` if file exists (#23048) --- packages/nuxt/src/core/nitro.ts | 36 +++++++++++++++++++------------ packages/schema/src/config/app.ts | 11 +++++----- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index 73a7a83377..a903a78e9b 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -30,11 +30,6 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { ? [new RegExp(`node_modules\\/(?!${excludePaths.join('|')})`)] : [/node_modules/] - const spaLoadingTemplate = nuxt.options.spaLoadingTemplate ?? resolve(nuxt.options.srcDir, 'app/spa-loading-template.html') - if (spaLoadingTemplate && nuxt.options.spaLoadingTemplate && typeof spaLoadingTemplate !== 'boolean' && !existsSync(spaLoadingTemplate)) { - console.warn(`[nuxt] Could not load custom \`spaLoadingTemplate\` path as it does not exist: \`${spaLoadingTemplate}\`.`) - } - const nitroConfig: NitroConfig = defu(_nitroConfig, { debug: nuxt.options.debug, rootDir: nuxt.options.rootDir, @@ -86,15 +81,7 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { baseURL: nuxt.options.app.baseURL, virtual: { '#internal/nuxt.config.mjs': () => nuxt.vfs['#build/nuxt.config'], - '#spa-template': () => { - if (!spaLoadingTemplate) { return 'export const template = ""' } - try { - if (spaLoadingTemplate !== true) { - return `export const template = ${JSON.stringify(readFileSync(spaLoadingTemplate, 'utf-8'))}` - } - } catch {} - return `export const template = ${JSON.stringify(defaultSpaLoadingTemplate({}))}` - } + '#spa-template': () => `export const template = ${JSON.stringify(spaLoadingTemplate(nuxt))}` }, routeRules: { '/__nuxt_error': { cache: false } @@ -415,3 +402,24 @@ export async function initNitro (nuxt: Nuxt & { _nitro?: Nitro }) { function relativeWithDot (from: string, to: string) { return relative(from, to).replace(/^([^.])/, './$1') || '.' } + +function spaLoadingTemplate (nuxt: Nuxt) { + if (nuxt.options.spaLoadingTemplate === false) { return '' } + + const spaLoadingTemplate = typeof nuxt.options.spaLoadingTemplate === 'string' + ? nuxt.options.spaLoadingTemplate + : resolve(nuxt.options.srcDir, 'app/spa-loading-template.html') + + try { + if (existsSync(spaLoadingTemplate)) { + return readFileSync(spaLoadingTemplate, 'utf-8') + } + } catch {} + + if (nuxt.options.spaLoadingTemplate === true) { + return defaultSpaLoadingTemplate({}) + } + + console.warn(`[nuxt] Could not load custom \`spaLoadingTemplate\` path as it does not exist: \`${nuxt.options.spaLoadingTemplate}\`.`) + return '' +} diff --git a/packages/schema/src/config/app.ts b/packages/schema/src/config/app.ts index d7b75d1523..7ef5c4d79a 100644 --- a/packages/schema/src/config/app.ts +++ b/packages/schema/src/config/app.ts @@ -189,12 +189,11 @@ export default defineUntypedSchema({ }, /** - * A path to an HTML file, the contents of which will be inserted into any HTML page + * Boolean or a path to an HTML file with the contents of which will be inserted into any HTML page * rendered with `ssr: false`. - * - * By default Nuxt will look in `~/app/spa-loading-template.html` for this file. - * - * You can set this to `false` to disable any loading indicator. + * - If it is unset, it will use `~/app/spa-loading-template.html` if it exists. + * - If it is false, no SPA loading indicator will be loaded. + * - If true, Nuxt will look for `~/app/spa-loading-template.html` file or a default Nuxt image will be used. * * Some good sources for spinners are [SpinKit](https://github.com/tobiasahlin/SpinKit) or [SVG Spinners](https://icones.js.org/collection/svg-spinners). * @@ -244,7 +243,7 @@ export default defineUntypedSchema({ * @type {string | boolean} */ spaLoadingTemplate: { - $resolve: async (val, get) => typeof val === 'string' ? resolve(await get('srcDir'), val) : (val ?? false) + $resolve: async (val, get) => typeof val === 'string' ? resolve(await get('srcDir'), val) : val }, /** From df6a992cd66947fb94018220e819e6984ad0ccb4 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 11 Sep 2023 13:07:28 +0100 Subject: [PATCH 787/912] fix(nuxt): handle unset spa-loading fallback (#23120) --- packages/nuxt/src/core/nitro.ts | 5 ++++- packages/schema/src/config/app.ts | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/nuxt/src/core/nitro.ts b/packages/nuxt/src/core/nitro.ts index a903a78e9b..f17a253389 100644 --- a/packages/nuxt/src/core/nitro.ts +++ b/packages/nuxt/src/core/nitro.ts @@ -420,6 +420,9 @@ function spaLoadingTemplate (nuxt: Nuxt) { return defaultSpaLoadingTemplate({}) } - console.warn(`[nuxt] Could not load custom \`spaLoadingTemplate\` path as it does not exist: \`${nuxt.options.spaLoadingTemplate}\`.`) + if (nuxt.options.spaLoadingTemplate) { + console.warn(`[nuxt] Could not load custom \`spaLoadingTemplate\` path as it does not exist: \`${nuxt.options.spaLoadingTemplate}\`.`) + } + return '' } diff --git a/packages/schema/src/config/app.ts b/packages/schema/src/config/app.ts index 7ef5c4d79a..01ad2c02c5 100644 --- a/packages/schema/src/config/app.ts +++ b/packages/schema/src/config/app.ts @@ -243,7 +243,7 @@ export default defineUntypedSchema({ * @type {string | boolean} */ spaLoadingTemplate: { - $resolve: async (val, get) => typeof val === 'string' ? resolve(await get('srcDir'), val) : val + $resolve: async (val, get) => typeof val === 'string' ? resolve(await get('srcDir'), val) : val ?? null }, /** From 63d189a0c7d1d507252b8c1029bbce43710dbdb5 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 11 Sep 2023 14:05:14 +0100 Subject: [PATCH 788/912] ci: update fixtures to node 18 (#23122) --- .github/workflows/ci.yml | 2 +- test/basic.test.ts | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47a554bd33..720c991260 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -170,7 +170,7 @@ jobs: env: ['dev', 'built'] builder: ['vite', 'webpack'] context: ['async', 'default'] - node: [16] + node: [18] exclude: - env: 'dev' builder: 'webpack' diff --git a/test/basic.test.ts b/test/basic.test.ts index 152b812d84..b048d1fe7f 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -751,12 +751,7 @@ describe('errors', () => { it('should render a HTML error page', async () => { const res = await fetch('/error') - // TODO: remove when we update CI to node v18 - if (process.version.startsWith('v16')) { - expect(res.headers.get('Set-Cookie')).toBe('set-in-plugin=true; Path=/') - } else { - expect(res.headers.get('Set-Cookie')).toBe('set-in-plugin=true; Path=/, some-error=was%20set; Path=/') - } + expect(res.headers.get('Set-Cookie')).toBe('set-in-plugin=true; Path=/, some-error=was%20set; Path=/') expect(await res.text()).toContain('This is a custom error') }) From f79f9b3a60249fdf7bcf168ea3198a2d5156813f Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 11 Sep 2023 14:40:36 +0100 Subject: [PATCH 789/912] fix(kit): improve generated `tsconfig.json` defaults (#23121) --- packages/kit/src/template.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/kit/src/template.ts b/packages/kit/src/template.ts index d04e4d63ee..61ae1f817c 100644 --- a/packages/kit/src/template.ts +++ b/packages/kit/src/template.ts @@ -117,6 +117,7 @@ export async function writeTypes (nuxt: Nuxt) { compilerOptions: { forceConsistentCasingInFileNames: true, jsx: 'preserve', + jsxImportSource: 'vue', target: 'ESNext', module: 'ESNext', moduleResolution: nuxt.options.experimental?.typescriptBundlerResolution ? 'Bundler' : 'Node', @@ -124,6 +125,11 @@ export async function writeTypes (nuxt: Nuxt) { isolatedModules: true, useDefineForClassFields: true, strict: nuxt.options.typescript?.strict ?? true, + noImplicitThis: true, + esModuleInterop: true, + // TODO: enable by default in v3.8 + // types: [], + // verbatimModuleSyntax: true, allowJs: true, noEmit: true, resolveJsonModule: true, From c045c4b1546cdbc4a31eabfbed95d78392c45f1d Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Mon, 11 Sep 2023 14:40:47 +0100 Subject: [PATCH 790/912] fix(vite): remove dev styles injected via absolute path (#23126) --- packages/vite/src/plugins/dev-ssr-css.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/plugins/dev-ssr-css.ts b/packages/vite/src/plugins/dev-ssr-css.ts index 381243d4ba..af77e55ce2 100644 --- a/packages/vite/src/plugins/dev-ssr-css.ts +++ b/packages/vite/src/plugins/dev-ssr-css.ts @@ -23,8 +23,8 @@ export function devStyleSSRPlugin (options: DevStyleSSRPluginOptions): Plugin { } // When dev `