[READ-ONLY] Mirror of https://github.com/vitest-dev/vitest. Next generation testing framework powered by Vite. vitest.dev
test testing-tools vite
12

Configure Feed

Select the types of activity you want to include in your feed.

fix(vite-node): correctly resolve virtual modules (#3544)

authored by

Vladimir and committed by
GitHub
(Jun 15, 2023, 10:12 AM +0200) 0cbb07b4 02196f9d

+475 -47
+329 -24
pnpm-lock.yaml
··· 328 328 version: 20.2.5 329 329 '@types/react': 330 330 specifier: latest 331 - version: 18.2.8 331 + version: 18.2.9 332 332 '@vitejs/plugin-react': 333 333 specifier: latest 334 334 version: 4.0.0(vite@4.3.9) ··· 747 747 svelte: 748 748 specifier: latest 749 749 version: 3.59.1 750 + vite: 751 + specifier: ^4.3.9 752 + version: 4.3.9(@types/node@18.16.3) 753 + vitest: 754 + specifier: workspace:* 755 + version: link:../../packages/vitest 756 + 757 + examples/sveltekit: 758 + devDependencies: 759 + '@sveltejs/adapter-auto': 760 + specifier: ^2.1.0 761 + version: 2.1.0(@sveltejs/kit@1.20.2) 762 + '@sveltejs/kit': 763 + specifier: ^1.20.2 764 + version: 1.20.2(svelte@3.59.1)(vite@4.3.9) 765 + prettier: 766 + specifier: ^2.8.8 767 + version: 2.8.8 768 + prettier-plugin-svelte: 769 + specifier: ^2.10.1 770 + version: 2.10.1(prettier@2.8.8)(svelte@3.59.1) 771 + svelte: 772 + specifier: ^3.59.1 773 + version: 3.59.1 774 + svelte-check: 775 + specifier: ^3.4.3 776 + version: 3.4.3(svelte@3.59.1) 777 + tslib: 778 + specifier: ^2.5.3 779 + version: 2.5.3 780 + typescript: 781 + specifier: ^5.1.3 782 + version: 5.1.3 750 783 vite: 751 784 specifier: ^4.3.9 752 785 version: 4.3.9(@types/node@18.16.3) ··· 6532 6565 '@rollup/pluginutils': 3.1.0(rollup@2.79.1) 6533 6566 '@types/resolve': 1.17.1 6534 6567 builtin-modules: 3.3.0 6535 - deepmerge: 4.2.2 6568 + deepmerge: 4.3.1 6536 6569 is-module: 1.0.0 6537 6570 resolve: 1.22.2 6538 6571 rollup: 2.79.1 ··· 7772 7805 flat-cache: 3.0.4 7773 7806 micromatch: 4.0.5 7774 7807 react-docgen-typescript: 2.2.2(typescript@4.8.4) 7775 - tslib: 2.4.0 7808 + tslib: 2.5.3 7776 7809 typescript: 4.8.4 7777 7810 webpack: 5.74.0(esbuild@0.17.18) 7778 7811 transitivePeerDependencies: ··· 8043 8076 string.prototype.matchall: 4.0.7 8044 8077 dev: true 8045 8078 8079 + /@sveltejs/adapter-auto@2.1.0(@sveltejs/kit@1.20.2): 8080 + resolution: {integrity: sha512-o2pZCfATFtA/Gw/BB0Xm7k4EYaekXxaPGER3xGSY3FvzFJGTlJlZjBseaXwYSM94lZ0HniOjTokN3cWaLX6fow==} 8081 + peerDependencies: 8082 + '@sveltejs/kit': ^1.0.0 8083 + dependencies: 8084 + '@sveltejs/kit': 1.20.2(svelte@3.59.1)(vite@4.3.9) 8085 + import-meta-resolve: 3.0.0 8086 + dev: true 8087 + 8088 + /@sveltejs/kit@1.20.2(svelte@3.59.1)(vite@4.3.9): 8089 + resolution: {integrity: sha512-MtR1i+HtmYWcRgtubw1GQqT/+CWXL/z24PegE0xYAdObbhdr7YtEfmoe705D/JZMtMmoPXrmSk4W0MfL5A3lYw==} 8090 + engines: {node: ^16.14 || >=18} 8091 + hasBin: true 8092 + requiresBuild: true 8093 + peerDependencies: 8094 + svelte: ^3.54.0 || ^4.0.0-next.0 8095 + vite: ^4.0.0 8096 + dependencies: 8097 + '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.1)(vite@4.3.9) 8098 + '@types/cookie': 0.5.1 8099 + cookie: 0.5.0 8100 + devalue: 4.3.2 8101 + esm-env: 1.0.0 8102 + kleur: 4.1.5 8103 + magic-string: 0.30.0 8104 + mime: 3.0.0 8105 + sade: 1.8.1 8106 + set-cookie-parser: 2.6.0 8107 + sirv: 2.0.3 8108 + svelte: 3.59.1 8109 + tiny-glob: 0.2.9 8110 + undici: 5.22.1 8111 + vite: 4.3.9(@types/node@18.16.3) 8112 + transitivePeerDependencies: 8113 + - supports-color 8114 + dev: true 8115 + 8116 + /@sveltejs/vite-plugin-svelte-inspector@1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.1)(vite@4.3.9): 8117 + resolution: {integrity: sha512-Cy1dUMcYCnDVV/hPLXa43YZJ2jGKVW5rA0xuNL9dlmYhT0yoS1g7+FOFSRlgk0BXKk/Oc7grs+8BVA5Iz2fr8A==} 8118 + engines: {node: ^14.18.0 || >= 16} 8119 + peerDependencies: 8120 + '@sveltejs/vite-plugin-svelte': ^2.2.0 8121 + svelte: ^3.54.0 || ^4.0.0-next.0 8122 + vite: ^4.0.0 8123 + dependencies: 8124 + '@sveltejs/vite-plugin-svelte': 2.4.1(svelte@3.59.1)(vite@4.3.9) 8125 + debug: 4.3.4(supports-color@8.1.1) 8126 + svelte: 3.59.1 8127 + vite: 4.3.9(@types/node@18.16.3) 8128 + transitivePeerDependencies: 8129 + - supports-color 8130 + dev: true 8131 + 8046 8132 /@sveltejs/vite-plugin-svelte@2.0.0(svelte@3.59.1)(vite@4.3.9): 8047 8133 resolution: {integrity: sha512-oUFrYQarRv4fppmxdrv00qw3wX8Ycdj0uv33MfpRZyR8K67dyxiOcHnqkB0zSy5sDJA8RC/2aNtYhXJ8NINVHQ==} 8048 8134 engines: {node: ^14.18.0 || >= 16} ··· 8058 8144 svelte-hmr: 0.15.1(svelte@3.59.1) 8059 8145 vite: 4.3.9(@types/node@18.16.3) 8060 8146 vitefu: 0.2.3(vite@4.3.9) 8147 + transitivePeerDependencies: 8148 + - supports-color 8149 + dev: true 8150 + 8151 + /@sveltejs/vite-plugin-svelte@2.4.1(svelte@3.59.1)(vite@4.3.9): 8152 + resolution: {integrity: sha512-bNNKvoRY89ptY7udeBSCmTdCVwkjmMcZ0j/z9J5MuedT8jPjq0zrknAo/jF1sToAza4NVaAgR9AkZoD9oJJmnA==} 8153 + engines: {node: ^14.18.0 || >= 16} 8154 + peerDependencies: 8155 + svelte: ^3.54.0 || ^4.0.0-next.0 8156 + vite: ^4.0.0 8157 + dependencies: 8158 + '@sveltejs/vite-plugin-svelte-inspector': 1.0.2(@sveltejs/vite-plugin-svelte@2.4.1)(svelte@3.59.1)(vite@4.3.9) 8159 + debug: 4.3.4(supports-color@8.1.1) 8160 + deepmerge: 4.3.1 8161 + kleur: 4.1.5 8162 + magic-string: 0.30.0 8163 + svelte: 3.59.1 8164 + svelte-hmr: 0.15.1(svelte@3.59.1) 8165 + vite: 4.3.9(@types/node@18.16.3) 8166 + vitefu: 0.2.4(vite@4.3.9) 8061 8167 transitivePeerDependencies: 8062 8168 - supports-color 8063 8169 dev: true ··· 8311 8417 resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} 8312 8418 dev: true 8313 8419 8420 + /@types/cookie@0.5.1: 8421 + resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==} 8422 + dev: true 8423 + 8314 8424 /@types/d3-force@3.0.4: 8315 8425 resolution: {integrity: sha512-q7xbVLrWcXvSBBEoadowIUJ7sRpS1yvgMWnzHJggFy5cUZBq2HZL5k/pBSm0GdYWS1vs5/EDwMjSKF55PDY4Aw==} 8316 8426 dev: true ··· 8333 8443 resolution: {integrity: sha512-xryQlOEIe1TduDWAOphR0ihfebKFSWOXpIsk+70JskCfRfW+xALdnJ0r1ZOTo85F9Qsjk6vtlU7edTYHbls9tA==} 8334 8444 dependencies: 8335 8445 '@types/cheerio': 0.22.31 8336 - '@types/react': 18.2.8 8446 + '@types/react': 18.2.9 8337 8447 dev: true 8338 8448 8339 8449 /@types/eslint-scope@3.7.4: ··· 8562 8672 /@types/prop-types@15.7.5: 8563 8673 resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} 8564 8674 8675 + /@types/pug@2.0.6: 8676 + resolution: {integrity: sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==} 8677 + dev: true 8678 + 8565 8679 /@types/qs@6.9.7: 8566 8680 resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} 8567 8681 dev: true ··· 8575 8689 /@types/react-dom@18.0.6: 8576 8690 resolution: {integrity: sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==} 8577 8691 dependencies: 8578 - '@types/react': 18.2.8 8692 + '@types/react': 18.2.9 8579 8693 dev: true 8580 8694 8581 8695 /@types/react-dom@18.0.8: 8582 8696 resolution: {integrity: sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw==} 8583 8697 dependencies: 8584 - '@types/react': 18.2.8 8698 + '@types/react': 18.2.9 8585 8699 dev: true 8586 8700 8587 8701 /@types/react-is@17.0.3: 8588 8702 resolution: {integrity: sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==} 8589 8703 dependencies: 8590 - '@types/react': 18.2.8 8704 + '@types/react': 18.2.9 8591 8705 dev: false 8592 8706 8593 8707 /@types/react-test-renderer@17.0.2: ··· 8599 8713 /@types/react-transition-group@4.4.5: 8600 8714 resolution: {integrity: sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==} 8601 8715 dependencies: 8602 - '@types/react': 18.2.8 8716 + '@types/react': 18.2.9 8603 8717 dev: false 8604 8718 8605 8719 /@types/react@17.0.49: ··· 8618 8732 csstype: 3.1.0 8619 8733 dev: true 8620 8734 8621 - /@types/react@18.2.8: 8622 - resolution: {integrity: sha512-lTyWUNrd8ntVkqycEEplasWy2OxNlShj3zqS0LuB1ENUGis5HodmhM7DtCoUGbxj3VW/WsGA0DUhpG6XrM7gPA==} 8735 + /@types/react@18.2.9: 8736 + resolution: {integrity: sha512-pL3JAesUkF7PEQGxh5XOwdXGV907te6m1/Qe1ERJLgomojS6Ne790QiA7GUl434JEkFA2aAaB6qJ5z4e1zJn/w==} 8623 8737 dependencies: 8624 8738 '@types/prop-types': 15.7.5 8625 8739 '@types/scheduler': 0.16.2 ··· 10111 10225 resolution: {integrity: sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==} 10112 10226 engines: {node: '>=8'} 10113 10227 dependencies: 10114 - tslib: 2.4.0 10228 + tslib: 2.5.3 10115 10229 dev: false 10116 10230 10117 10231 /@wry/equality@0.5.3: 10118 10232 resolution: {integrity: sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==} 10119 10233 engines: {node: '>=8'} 10120 10234 dependencies: 10121 - tslib: 2.4.0 10235 + tslib: 2.5.3 10122 10236 dev: false 10123 10237 10124 10238 /@wry/trie@0.3.2: 10125 10239 resolution: {integrity: sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==} 10126 10240 engines: {node: '>=8'} 10127 10241 dependencies: 10128 - tslib: 2.4.0 10242 + tslib: 2.5.3 10129 10243 dev: false 10130 10244 10131 10245 /@xmldom/xmldom@0.8.6: ··· 10716 10830 resolution: {integrity: sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==} 10717 10831 engines: {node: '>=4'} 10718 10832 dependencies: 10719 - tslib: 2.4.0 10833 + tslib: 2.5.3 10720 10834 dev: true 10721 10835 10722 10836 /astral-regex@2.0.0: ··· 11563 11677 resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} 11564 11678 dependencies: 11565 11679 pascal-case: 3.1.2 11566 - tslib: 2.4.0 11680 + tslib: 2.5.3 11567 11681 dev: true 11568 11682 11569 11683 /camelcase-css@2.0.1: ··· 12888 13002 engines: {node: '>=0.10.0'} 12889 13003 dev: true 12890 13004 13005 + /deepmerge@4.3.1: 13006 + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 13007 + engines: {node: '>=0.10.0'} 13008 + dev: true 13009 + 12891 13010 /default-browser-id@1.0.4: 12892 13011 resolution: {integrity: sha512-qPy925qewwul9Hifs+3sx1ZYn14obHxpkX+mPD369w4Rzg+YkJBgi3SOvwUq81nWSjqGUegIgEPwD8u+HUnxlw==} 12893 13012 engines: {node: '>=0.10.0'} ··· 12990 13109 repeat-string: 1.6.1 12991 13110 dev: true 12992 13111 13112 + /detect-indent@6.1.0: 13113 + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 13114 + engines: {node: '>=8'} 13115 + dev: true 13116 + 12993 13117 /detect-newline@3.1.0: 12994 13118 resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} 12995 13119 engines: {node: '>=8'} ··· 13014 13138 debug: 2.6.9 13015 13139 transitivePeerDependencies: 13016 13140 - supports-color 13141 + dev: true 13142 + 13143 + /devalue@4.3.2: 13144 + resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} 13017 13145 dev: true 13018 13146 13019 13147 /devtools-protocol@0.0.1107588: ··· 13261 13389 resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} 13262 13390 dependencies: 13263 13391 no-case: 3.0.4 13264 - tslib: 2.4.0 13392 + tslib: 2.5.3 13265 13393 dev: true 13266 13394 13267 13395 /dotenv-expand@5.1.0: ··· 13541 13669 /es5-shim@4.6.7: 13542 13670 resolution: {integrity: sha512-jg21/dmlrNQI7JyyA2w7n+yifSxBng0ZralnSfVZjoCawgNTCnS+yBCyVM9DL5itm7SUnDGgv7hcq2XCZX4iRQ==} 13543 13671 engines: {node: '>=0.4.0'} 13672 + dev: true 13673 + 13674 + /es6-promise@3.3.1: 13675 + resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} 13544 13676 dev: true 13545 13677 13546 13678 /es6-shim@0.35.6: ··· 14458 14590 v8-compile-cache: 2.3.0 14459 14591 transitivePeerDependencies: 14460 14592 - supports-color 14593 + dev: true 14594 + 14595 + /esm-env@1.0.0: 14596 + resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} 14461 14597 dev: true 14462 14598 14463 14599 /esno@0.16.3: ··· 15633 15769 define-properties: 1.1.4 15634 15770 dev: true 15635 15771 15772 + /globalyzer@0.1.0: 15773 + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 15774 + dev: true 15775 + 15636 15776 /globby@11.1.0: 15637 15777 resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 15638 15778 engines: {node: '>=10'} ··· 15659 15799 slash: 2.0.0 15660 15800 transitivePeerDependencies: 15661 15801 - supports-color 15802 + dev: true 15803 + 15804 + /globrex@0.1.2: 15805 + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 15662 15806 dev: true 15663 15807 15664 15808 /glur@1.1.2: ··· 15703 15847 graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 15704 15848 dependencies: 15705 15849 graphql: 16.6.0 15706 - tslib: 2.4.0 15850 + tslib: 2.5.3 15707 15851 dev: false 15708 15852 15709 15853 /graphql@16.6.0: ··· 17029 17173 babel-jest: 27.5.1(@babel/core@7.21.4) 17030 17174 chalk: 4.1.2 17031 17175 ci-info: 3.7.0 17032 - deepmerge: 4.2.2 17176 + deepmerge: 4.3.1 17033 17177 glob: 7.2.3 17034 17178 graceful-fs: 4.2.10 17035 17179 jest-circus: 27.5.1 ··· 18334 18478 /lower-case@2.0.2: 18335 18479 resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} 18336 18480 dependencies: 18337 - tslib: 2.4.0 18481 + tslib: 2.5.3 18338 18482 dev: true 18339 18483 18340 18484 /lowercase-keys@3.0.0: ··· 18688 18832 /mime@2.6.0: 18689 18833 resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} 18690 18834 engines: {node: '>=4.0.0'} 18835 + hasBin: true 18836 + dev: true 18837 + 18838 + /mime@3.0.0: 18839 + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} 18840 + engines: {node: '>=10.0.0'} 18691 18841 hasBin: true 18692 18842 dev: true 18693 18843 ··· 19157 19307 resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} 19158 19308 dependencies: 19159 19309 lower-case: 2.0.2 19160 - tslib: 2.4.0 19310 + tslib: 2.5.3 19161 19311 dev: true 19162 19312 19163 19313 /node-dir@0.1.17: ··· 19765 19915 resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} 19766 19916 dependencies: 19767 19917 dot-case: 3.0.4 19768 - tslib: 2.4.0 19918 + tslib: 2.5.3 19769 19919 dev: true 19770 19920 19771 19921 /parent-module@1.0.1: ··· 19863 20013 resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} 19864 20014 dependencies: 19865 20015 no-case: 3.0.4 19866 - tslib: 2.4.0 20016 + tslib: 2.5.3 19867 20017 dev: true 19868 20018 19869 20019 /pascalcase@0.1.1: ··· 20342 20492 engines: {node: '>= 0.8.0'} 20343 20493 dev: true 20344 20494 20495 + /prettier-plugin-svelte@2.10.1(prettier@2.8.8)(svelte@3.59.1): 20496 + resolution: {integrity: sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==} 20497 + peerDependencies: 20498 + prettier: ^1.16.4 || ^2.0.0 20499 + svelte: ^3.2.0 || ^4.0.0-next.0 20500 + dependencies: 20501 + prettier: 2.8.8 20502 + svelte: 3.59.1 20503 + dev: true 20504 + 20345 20505 /prettier@2.3.0: 20346 20506 resolution: {integrity: sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==} 20347 20507 engines: {node: '>=10.13.0'} ··· 20350 20510 20351 20511 /prettier@2.7.1: 20352 20512 resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} 20513 + engines: {node: '>=10.13.0'} 20514 + hasBin: true 20515 + dev: true 20516 + 20517 + /prettier@2.8.8: 20518 + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 20353 20519 engines: {node: '>=10.13.0'} 20354 20520 hasBin: true 20355 20521 dev: true ··· 21646 21812 /rxjs@7.8.0: 21647 21813 resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} 21648 21814 dependencies: 21649 - tslib: 2.4.0 21815 + tslib: 2.5.3 21816 + dev: true 21817 + 21818 + /sade@1.8.1: 21819 + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 21820 + engines: {node: '>=6'} 21821 + dependencies: 21822 + mri: 1.2.0 21650 21823 dev: true 21651 21824 21652 21825 /safaridriver@0.0.4: ··· 21697 21870 21698 21871 /safer-buffer@2.1.2: 21699 21872 resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 21873 + dev: true 21874 + 21875 + /sander@0.5.1: 21876 + resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} 21877 + dependencies: 21878 + es6-promise: 3.3.1 21879 + graceful-fs: 4.2.10 21880 + mkdirp: 0.5.6 21881 + rimraf: 2.7.1 21700 21882 dev: true 21701 21883 21702 21884 /sane@4.1.0: ··· 21900 22082 21901 22083 /set-cookie-parser@2.5.1: 21902 22084 resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==} 22085 + dev: true 22086 + 22087 + /set-cookie-parser@2.6.0: 22088 + resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} 21903 22089 dev: true 21904 22090 21905 22091 /set-value@2.0.1: ··· 22115 22301 resolution: {integrity: sha512-SbbZ+Kqj/XIunvIAgUZRlqd6CGQYq71tRRbXR92Za8J/R3Yh4Av+TWENiSiEgnlwckYLyP0YZQWVfyNC0dzLaA==} 22116 22302 dependencies: 22117 22303 atomic-sleep: 1.0.0 22304 + dev: true 22305 + 22306 + /sorcery@0.11.0: 22307 + resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} 22308 + hasBin: true 22309 + dependencies: 22310 + '@jridgewell/sourcemap-codec': 1.4.14 22311 + buffer-crc32: 0.2.13 22312 + minimist: 1.2.8 22313 + sander: 0.5.1 22118 22314 dev: true 22119 22315 22120 22316 /source-list-map@2.0.1: ··· 22705 22901 resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 22706 22902 engines: {node: '>= 0.4'} 22707 22903 22904 + /svelte-check@3.4.3(svelte@3.59.1): 22905 + resolution: {integrity: sha512-O07soQFY3X0VDt+bcGc6D5naz0cLtjwnmNP9JsEBPVyMemFEqUhL2OdLqvkl5H/u8Jwm50EiAU4BPRn5iin/kg==} 22906 + hasBin: true 22907 + peerDependencies: 22908 + svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 22909 + dependencies: 22910 + '@jridgewell/trace-mapping': 0.3.18 22911 + chokidar: 3.5.3 22912 + fast-glob: 3.2.12 22913 + import-fresh: 3.3.0 22914 + picocolors: 1.0.0 22915 + sade: 1.8.1 22916 + svelte: 3.59.1 22917 + svelte-preprocess: 5.0.4(svelte@3.59.1)(typescript@5.1.3) 22918 + typescript: 5.1.3 22919 + transitivePeerDependencies: 22920 + - '@babel/core' 22921 + - coffeescript 22922 + - less 22923 + - postcss 22924 + - postcss-load-config 22925 + - pug 22926 + - sass 22927 + - stylus 22928 + - sugarss 22929 + dev: true 22930 + 22708 22931 /svelte-hmr@0.15.1(svelte@3.59.1): 22709 22932 resolution: {integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==} 22710 22933 engines: {node: ^12.20 || ^14.13.1 || >= 16} ··· 22712 22935 svelte: '>=3.19.0' 22713 22936 dependencies: 22714 22937 svelte: 3.59.1 22938 + dev: true 22939 + 22940 + /svelte-preprocess@5.0.4(svelte@3.59.1)(typescript@5.1.3): 22941 + resolution: {integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==} 22942 + engines: {node: '>= 14.10.0'} 22943 + requiresBuild: true 22944 + peerDependencies: 22945 + '@babel/core': ^7.10.2 22946 + coffeescript: ^2.5.1 22947 + less: ^3.11.3 || ^4.0.0 22948 + postcss: ^7 || ^8 22949 + postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 22950 + pug: ^3.0.0 22951 + sass: ^1.26.8 22952 + stylus: ^0.55.0 22953 + sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 22954 + svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 22955 + typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' 22956 + peerDependenciesMeta: 22957 + '@babel/core': 22958 + optional: true 22959 + coffeescript: 22960 + optional: true 22961 + less: 22962 + optional: true 22963 + postcss: 22964 + optional: true 22965 + postcss-load-config: 22966 + optional: true 22967 + pug: 22968 + optional: true 22969 + sass: 22970 + optional: true 22971 + stylus: 22972 + optional: true 22973 + sugarss: 22974 + optional: true 22975 + typescript: 22976 + optional: true 22977 + dependencies: 22978 + '@types/pug': 2.0.6 22979 + detect-indent: 6.1.0 22980 + magic-string: 0.27.0 22981 + sorcery: 0.11.0 22982 + strip-indent: 3.0.0 22983 + svelte: 3.59.1 22984 + typescript: 5.1.3 22715 22985 dev: true 22716 22986 22717 22987 /svelte@3.59.1: ··· 22994 23264 setimmediate: 1.0.5 22995 23265 dev: true 22996 23266 23267 + /tiny-glob@0.2.9: 23268 + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 23269 + dependencies: 23270 + globalyzer: 0.1.0 23271 + globrex: 0.1.2 23272 + dev: true 23273 + 22997 23274 /tiny-lru@8.0.2: 22998 23275 resolution: {integrity: sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg==} 22999 23276 engines: {node: '>=6'} ··· 23173 23450 resolution: {integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==} 23174 23451 engines: {node: '>=8'} 23175 23452 dependencies: 23176 - tslib: 2.4.0 23453 + tslib: 2.5.3 23177 23454 dev: false 23178 23455 23179 23456 /ts-node@10.9.1(@types/node@18.16.3)(typescript@5.0.4): ··· 23234 23511 23235 23512 /tslib@2.4.0: 23236 23513 resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} 23514 + dev: false 23515 + 23516 + /tslib@2.5.3: 23517 + resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} 23237 23518 23238 23519 /tsup@6.7.0(ts-node@10.9.1)(typescript@5.0.4): 23239 23520 resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} ··· 23400 23681 hasBin: true 23401 23682 dev: true 23402 23683 23684 + /typescript@5.1.3: 23685 + resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} 23686 + engines: {node: '>=14.17'} 23687 + hasBin: true 23688 + dev: true 23689 + 23403 23690 /ua-parser-js@1.0.34: 23404 23691 resolution: {integrity: sha512-K9mwJm/DaB6mRLZfw6q8IMXipcrmuT6yfhYmwhAkuh+81sChuYstYA+znlgaflUPaYUa3odxKPKGw6Vw/lANew==} 23405 23692 dev: true ··· 23448 23735 /undici@5.12.0: 23449 23736 resolution: {integrity: sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg==} 23450 23737 engines: {node: '>=12.18'} 23738 + dependencies: 23739 + busboy: 1.6.0 23740 + dev: true 23741 + 23742 + /undici@5.22.1: 23743 + resolution: {integrity: sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==} 23744 + engines: {node: '>=14.0'} 23451 23745 dependencies: 23452 23746 busboy: 1.6.0 23453 23747 dev: true ··· 24244 24538 24245 24539 /vitefu@0.2.3(vite@4.3.9): 24246 24540 resolution: {integrity: sha512-75l7TTuU8isAhz1QFtNKjDkqjxvndfMC1AfIMjJ0ZQ59ZD0Ow9QOIsJJX16Wv9PS8f+zMzp6fHy5cCbKG/yVUQ==} 24541 + peerDependencies: 24542 + vite: ^3.0.0 || ^4.0.0 24543 + peerDependenciesMeta: 24544 + vite: 24545 + optional: true 24546 + dependencies: 24547 + vite: 4.3.9(@types/node@18.16.3) 24548 + dev: true 24549 + 24550 + /vitefu@0.2.4(vite@4.3.9): 24551 + resolution: {integrity: sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==} 24247 24552 peerDependencies: 24248 24553 vite: ^3.0.0 || ^4.0.0 24249 24554 peerDependenciesMeta:
+10
examples/sveltekit/.gitignore
··· 1 + .DS_Store 2 + node_modules 3 + /build 4 + /.svelte-kit 5 + /package 6 + .env 7 + .env.* 8 + !.env.example 9 + vite.config.js.timestamp-* 10 + vite.config.ts.timestamp-*
+28
examples/sveltekit/package.json
··· 1 + { 2 + "name": "vitest-0.32.0-sveltekit", 3 + "type": "module", 4 + "version": "0.0.1", 5 + "private": true, 6 + "scripts": { 7 + "dev": "vite dev", 8 + "build": "vite build", 9 + "preview": "vite preview", 10 + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", 11 + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", 12 + "test:unit": "vitest", 13 + "lint": "prettier --plugin-search-dir . --check .", 14 + "format": "prettier --plugin-search-dir . --write ." 15 + }, 16 + "devDependencies": { 17 + "@sveltejs/adapter-auto": "^2.1.0", 18 + "@sveltejs/kit": "^1.20.2", 19 + "prettier": "^2.8.8", 20 + "prettier-plugin-svelte": "^2.10.1", 21 + "svelte": "^3.59.1", 22 + "svelte-check": "^3.4.3", 23 + "tslib": "^2.5.3", 24 + "typescript": "^5.1.3", 25 + "vite": "^4.3.9", 26 + "vitest": "latest" 27 + } 28 + }
+18
examples/sveltekit/svelte.config.js
··· 1 + import adapter from '@sveltejs/adapter-auto' 2 + import { vitePreprocess } from '@sveltejs/kit/vite' 3 + 4 + /** @type {import('@sveltejs/kit').Config} */ 5 + const config = { 6 + // Consult https://kit.svelte.dev/docs/integrations#preprocessors 7 + // for more information about preprocessors 8 + preprocess: vitePreprocess(), 9 + 10 + kit: { 11 + // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. 12 + // If your environment is not supported or you settled on a specific environment, switch out the adapter. 13 + // See https://kit.svelte.dev/docs/adapters for more information about adapters. 14 + adapter: adapter(), 15 + }, 16 + } 17 + 18 + export default config
+17
examples/sveltekit/tsconfig.json
··· 1 + { 2 + "extends": "./.svelte-kit/tsconfig.json", 3 + "compilerOptions": { 4 + "allowJs": true, 5 + "checkJs": true, 6 + "esModuleInterop": true, 7 + "forceConsistentCasingInFileNames": true, 8 + "resolveJsonModule": true, 9 + "skipLibCheck": true, 10 + "sourceMap": true, 11 + "strict": true 12 + } 13 + // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias 14 + // 15 + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes 16 + // from the referenced tsconfig.json - TypeScript does not merge them in 17 + }
+6
examples/sveltekit/vite.config.ts
··· 1 + import { sveltekit } from '@sveltejs/kit/vite' 2 + import { defineConfig } from 'vitest/config' 3 + 4 + export default defineConfig({ 5 + plugins: [sveltekit()], 6 + })
+1 -1
test/web-worker/vitest.config.ts
··· 12 12 ], 13 13 }, 14 14 onConsoleLog(log) { 15 - if (log.includes('Cannot find module')) 15 + if (log.includes('Failed to load')) 16 16 return false 17 17 }, 18 18 },
+12
examples/sveltekit/src/app.d.ts
··· 1 + // See https://kit.svelte.dev/docs/types#app 2 + // for information about these interfaces 3 + declare global { 4 + namespace App { 5 + // interface Error {} 6 + // interface Locals {} 7 + // interface PageData {} 8 + // interface Platform {} 9 + } 10 + } 11 + 12 + export {};
+12
examples/sveltekit/src/app.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="utf-8" /> 5 + <link rel="icon" href="%sveltekit.assets%/favicon.png" /> 6 + <meta name="viewport" content="width=device-width" /> 7 + %sveltekit.head% 8 + </head> 9 + <body data-sveltekit-preload-data="hover"> 10 + <div style="display: contents">%sveltekit.body%</div> 11 + </body> 12 + </html>
examples/sveltekit/static/favicon.png

This is a binary file and will not be displayed.

+20 -18
packages/vite-node/src/client.ts
··· 234 234 private async _resolveUrl(id: string, importer?: string): Promise<[url: string, fsPath: string]> { 235 235 // we don't pass down importee here, because otherwise Vite doesn't resolve it correctly 236 236 // should be checked before normalization, because it removes this prefix 237 + // TODO: this is a hack, we should find a better way to handle this 237 238 if (importer && id.startsWith(VALID_ID_PREFIX)) 238 239 importer = undefined 239 - id = normalizeRequestId(id, this.options.base) 240 - if (!this.shouldResolveId(id)) 241 - return [id, id] 242 - const { path, exists } = toFilePath(id, this.root) 240 + const dep = normalizeRequestId(id, this.options.base) 241 + if (!this.shouldResolveId(dep)) 242 + return [dep, dep] 243 + const { path, exists } = toFilePath(dep, this.root) 243 244 if (!this.options.resolveId || exists) 244 - return [id, path] 245 - const resolved = await this.options.resolveId(id, importer) 246 - if (!resolved) { 247 - const error = new Error( 248 - `Cannot find module '${id}'${importer ? ` imported from '${importer}'` : ''}.` 249 - + '\n\n- If you rely on tsconfig.json to resolve modules, please install "vite-tsconfig-paths" plugin to handle module resolution.' 250 - + '\n - Make sure you don\'t have relative aliases in your Vitest config. Use absolute paths instead. Read more: https://vitest.dev/guide/common-errors', 251 - ) 252 - Object.defineProperty(error, 'code', { value: 'ERR_MODULE_NOT_FOUND', enumerable: true }) 253 - Object.defineProperty(error, Symbol.for('vitest.error.not_found.data'), { value: { id, importer }, enumerable: false }) 254 - throw error 255 - } 256 - const resolvedId = normalizeRequestId(resolved.id, this.options.base) 245 + return [dep, path] 246 + const resolved = await this.options.resolveId(dep, importer) 247 + // TODO: we need to better handle module resolution when different urls point to the same module 248 + // if (!resolved) { 249 + // const error = new Error( 250 + // `Cannot find module '${id}'${importer ? ` imported from '${importer}'` : ''}.` 251 + // + '\n\n- If you rely on tsconfig.json\'s "paths" to resolve modules, please install "vite-tsconfig-paths" plugin to handle module resolution.' 252 + // + '\n- Make sure you don\'t have relative aliases in your Vitest config. Use absolute paths instead. Read more: https://vitest.dev/guide/common-errors', 253 + // ) 254 + // Object.defineProperty(error, 'code', { value: 'ERR_MODULE_NOT_FOUND', enumerable: true }) 255 + // Object.defineProperty(error, Symbol.for('vitest.error.not_found.data'), { value: { id: dep, importer }, enumerable: false }) 256 + // throw error 257 + // } 258 + const resolvedId = resolved ? normalizeRequestId(resolved.id, this.options.base) : dep 257 259 return [resolvedId, resolvedId] 258 260 } 259 261 ··· 282 284 const mod = this.moduleCache.getByModuleId(moduleId) 283 285 284 286 const request = async (dep: string) => { 285 - const [id, depFsPath] = await this.resolveUrl(`${dep}`, fsPath) 287 + const [id, depFsPath] = await this.resolveUrl(String(dep), fsPath) 286 288 const depMod = this.moduleCache.getByModuleId(depFsPath) 287 289 depMod.importers.add(moduleId) 288 290 mod.imports.add(depFsPath)
+2 -2
test/core/test/imports.test.ts
··· 74 74 test('dynamic import throws an error', async () => { 75 75 const path = './some-unknown-path' 76 76 const imported = import(path) 77 - await expect(imported).rejects.toThrowError(/Cannot find module '\.\/some-unknown-path'/) 77 + await expect(imported).rejects.toThrowError(/Failed to load url \.\/some-unknown-path/) 78 78 // @ts-expect-error path does not exist 79 - await expect(() => import('./some-unknown-path')).rejects.toThrowError(/Cannot find module/) 79 + await expect(() => import('./some-unknown-path')).rejects.toThrowError(/Failed to load/) 80 80 }) 81 81 82 82 test('can import @vite/client', async () => {
+1 -1
test/web-worker/test/init.test.ts
··· 66 66 }) 67 67 expect(event).toBeInstanceOf(ErrorEvent) 68 68 expect(event.error).toBeInstanceOf(Error) 69 - expect(event.error.message).toContain('Cannot find module') 69 + expect(event.error.message).toContain('Failed to load') 70 70 }) 71 71 72 72 it('self injected into worker and its deps should be equal', async () => {
+1 -1
test/web-worker/test/sharedWorker.spec.ts
··· 50 50 }) 51 51 expect(event).toBeInstanceOf(ErrorEvent) 52 52 expect(event.error).toBeInstanceOf(Error) 53 - expect(event.error.message).toContain('Cannot find module') 53 + expect(event.error.message).toContain('Failed to load') 54 54 }) 55 55 56 56 it('doesn\'t trigger events, if closed', async () => {
+8
examples/sveltekit/src/lib/add.test.ts
··· 1 + import { describe, expect, it } from 'vitest' 2 + import { add } from './add' 3 + 4 + describe('sum test', () => { 5 + it('adds 1 + 2 to equal 3', () => { 6 + expect(add(1, 2)).toBe(3) 7 + }) 8 + })
+8
examples/sveltekit/src/lib/add.ts
··· 1 + import { dev } from '$app/environment' 2 + 3 + export function add(a: number, b: number) { 4 + if (dev) 5 + console.warn(`Adding ${a} and ${b}`) 6 + 7 + return a + b 8 + }
+2
examples/sveltekit/src/routes/+page.svelte
··· 1 + <h1>Welcome to SvelteKit</h1> 2 + <p>Visit <a href="https://kit.svelte.dev">kit.svelte.dev</a> to read the documentation</p>