From 445a7b6d4ab906c05c211e7b1a8102779fa35187 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20S=C3=A1nchez?= Date: Tue, 20 Jun 2023 17:52:17 +0200 Subject: [PATCH] docs: switch to local search (#3594) --- docs/.vitepress/components.d.ts | 4 +- docs/.vitepress/config.ts | 31 ++- docs/.vitepress/scripts/fetch-avatars.ts | 5 +- docs/.vitepress/scripts/pwa.ts | 38 +++- docs/.vitepress/scripts/transformHead.ts | 7 +- docs/.vitepress/style/main.css | 2 - docs/.vitepress/style/vars.css | 11 -- docs/guide/index.md | 23 ++- docs/package.json | 12 +- docs/public/apple-touch-icon.png | Bin 2329 -> 840 bytes docs/public/favicon.ico | Bin 15086 -> 814 bytes docs/public/maskable-icon.png | Bin 0 -> 2045 bytes docs/public/pwa-192x192.png | Bin 2471 -> 1135 bytes docs/public/pwa-512x512.png | Bin 5062 -> 2751 bytes docs/public/pwa-64x64.png | Bin 0 -> 493 bytes docs/pwa-assets.config.ts | 21 ++ docs/vite.config.ts | 10 +- examples/vitesse/src/auto-import.d.ts | 11 +- pnpm-lock.yaml | 237 ++++++++++++++++++----- 19 files changed, 308 insertions(+), 104 deletions(-) create mode 100644 docs/public/maskable-icon.png create mode 100644 docs/public/pwa-64x64.png create mode 100644 docs/pwa-assets.config.ts diff --git a/docs/.vitepress/components.d.ts b/docs/.vitepress/components.d.ts index d45cda87c..387f256ae 100644 --- a/docs/.vitepress/components.d.ts +++ b/docs/.vitepress/components.d.ts @@ -3,11 +3,9 @@ // @ts-nocheck // Generated by unplugin-vue-components // Read more: https://github.com/vuejs/core/pull/3399 -import '@vue/runtime-core' - export {} -declare module '@vue/runtime-core' { +declare module 'vue' { export interface GlobalComponents { Contributors: typeof import('./components/Contributors.vue')['default'] CourseLink: typeof import('./components/CourseLink.vue')['default'] diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 35da71da1..59c1e53d6 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -24,9 +24,9 @@ export default withPwa(defineConfig({ locales: { root: { label: 'English', - lang: 'en', + lang: 'en-US', }, - en: { + zh: { label: '简体中文', lang: 'zh', link: 'https://cn.vitest.dev/', @@ -34,8 +34,8 @@ export default withPwa(defineConfig({ }, head: [ ['meta', { name: 'theme-color', content: '#729b1a' }], + ['link', { rel: 'icon', href: '/favicon.ico', sizes: 'any' }], ['link', { rel: 'icon', href: '/logo.svg', type: 'image/svg+xml' }], - ['link', { rel: 'alternate icon', href: '/favicon.ico', type: 'image/png', sizes: '16x16' }], ['meta', { name: 'author', content: `${teamMembers.map(c => c.name).join(', ')} and ${vitestName} contributors` }], ['meta', { name: 'keywords', content: 'vitest, vite, test, coverage, snapshot, react, vue, preact, svelte, solid, lit, ruby, cypress, puppeteer, jsdom, happy-dom, test-runner, jest, typescript, esm, tinypool, tinyspy, c8, node' }], ['meta', { property: 'og:title', content: vitestName }], @@ -66,20 +66,17 @@ export default withPwa(defineConfig({ text: 'Suggest changes to this page', }, - algolia: { - appId: 'ZTF29HGJ69', - apiKey: '9c3ced6fed60d2670bb36ab7e8bed8bc', - indexName: 'vitest', - // searchParameters: { - // facetFilters: ['tags:en'], - // }, - }, - - localeLinks: { - text: 'English', - items: [ - { text: '简体中文', link: 'https://cn.vitest.dev' }, - ], + search: { + provider: 'local', + /* provider: 'algolia', + options: { + appId: 'ZTF29HGJ69', + apiKey: '9c3ced6fed60d2670bb36ab7e8bed8bc', + indexName: 'vitest', + // searchParameters: { + // facetFilters: ['tags:en'], + // }, + }, */ }, socialLinks: [ diff --git a/docs/.vitepress/scripts/fetch-avatars.ts b/docs/.vitepress/scripts/fetch-avatars.ts index 9692b49c9..4de489f7c 100644 --- a/docs/.vitepress/scripts/fetch-avatars.ts +++ b/docs/.vitepress/scripts/fetch-avatars.ts @@ -1,8 +1,9 @@ -import { join, resolve } from 'pathe' +import { fileURLToPath } from 'node:url' +import { dirname, join, resolve } from 'pathe' import fs from 'fs-extra' import { $fetch } from 'ohmyfetch' -const docsDir = resolve(__dirname, '../..') +const docsDir = resolve(dirname(fileURLToPath(import.meta.url)), '../..') const pathContributors = resolve(docsDir, '.vitepress/contributor-names.json') const dirAvatars = resolve(docsDir, 'public/user-avatars/') const dirSponsors = resolve(docsDir, 'public/sponsors/') diff --git a/docs/.vitepress/scripts/pwa.ts b/docs/.vitepress/scripts/pwa.ts index cd4de8475..afd49f99f 100644 --- a/docs/.vitepress/scripts/pwa.ts +++ b/docs/.vitepress/scripts/pwa.ts @@ -1,4 +1,4 @@ -import type { VitePWAOptions } from 'vite-plugin-pwa' +import type { PwaOptions } from '@vite-pwa/vitepress' import { githubusercontentRegex, pwaFontStylesRegex, @@ -8,7 +8,7 @@ import { vitestShortName, } from '../meta' -export const pwa: Partial = { +export const pwa: PwaOptions = { outDir: '.vitepress/dist', registerType: 'autoUpdate', // include all static assets under public/ @@ -18,7 +18,19 @@ export const pwa: Partial = { short_name: vitestShortName, description: vitestDescription, theme_color: '#ffffff', + start_url: '/', + lang: 'en-US', + dir: 'ltr', + orientation: 'natural', + display: 'standalone', + display_override: ['window-controls-overlay'], + categories: ['development', 'developer tools'], icons: [ + { + src: 'pwa-64x64.png', + sizes: '64x64', + type: 'image/png', + }, { src: 'pwa-192x192.png', sizes: '192x192', @@ -28,14 +40,28 @@ export const pwa: Partial = { src: 'pwa-512x512.png', sizes: '512x512', type: 'image/png', + purpose: 'any', }, { - src: 'logo.svg', - sizes: '165x165', - type: 'image/svg', - purpose: 'any maskable', + src: 'maskable-icon.png', + sizes: '512x512', + type: 'image/png', + purpose: 'maskable', }, ], + screenshots: [{ + src: 'og.png', + sizes: '2258x1185', + type: 'image/png', + label: `Screenshot of ${vitestName}`, + }], + handle_links: 'preferred', + launch_handler: { + client_mode: ['navigate-existing', 'auto'], + }, + edge_side_panel: { + preferred_width: 480, + }, }, workbox: { navigateFallbackDenylist: [/^\/new$/], diff --git a/docs/.vitepress/scripts/transformHead.ts b/docs/.vitepress/scripts/transformHead.ts index 4ecbcc2bc..fb8d77964 100644 --- a/docs/.vitepress/scripts/transformHead.ts +++ b/docs/.vitepress/scripts/transformHead.ts @@ -13,8 +13,13 @@ export async function transformHead({ pageData }: TransformContext): PromiseLearn how to install by Video -With npm -```bash -npm install -D vitest -``` -or with yarn -```bash -yarn add -D vitest -``` -or with pnpm -```bash -pnpm add -D vitest -``` +::: code-group + ```bash [npm] + npm install -D vitest + ``` + ```bash [yarn] + yarn add -D vitest + ``` + ```bash [pnpm] + pnpm add -D vitest + ``` +::: :::tip Vitest requires Vite >=v3.0.0 and Node >=v14.18 diff --git a/docs/package.json b/docs/package.json index d2d404115..dff96ccf7 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,5 +1,6 @@ { "name": "docs", + "type": "module", "private": true, "scripts": { "dev": "vitepress --port 3333 --open", @@ -8,7 +9,8 @@ "serve": "vitepress serve", "preview-https": "pnpm run build && serve .vitepress/dist", "preview-https-no-prefetch": "pnpm run build-no-prefetch && serve .vitepress/dist", - "prefetch": "esno .vitepress/scripts/fetch-avatars.ts" + "prefetch": "esno .vitepress/scripts/fetch-avatars.ts", + "generate-pwa-icons": "pwa-assets-generator" }, "dependencies": { "@vueuse/core": "^10.2.0", @@ -18,6 +20,7 @@ "devDependencies": { "@iconify-json/carbon": "^1.1.18", "@unocss/reset": "^0.53.1", + "@vite-pwa/assets-generator": "^0.0.3", "@vite-pwa/vitepress": "^0.2.0", "@vitejs/plugin-vue": "latest", "esno": "^0.16.3", @@ -30,5 +33,12 @@ "vite-plugin-pwa": "^0.16.4", "vitepress": "1.0.0-beta.3", "workbox-window": "^7.0.0" + }, + "pnpm": { + "peerDependencyRules": { + "ignoreMissing": [ + "@algolia/client-search" + ] + } } } diff --git a/docs/public/apple-touch-icon.png b/docs/public/apple-touch-icon.png index 363af09f3abce0957448c0b855b9f1157d1e9411..dd9a8e1466dddc7ea9c9956610ce8f2937210354 100644 GIT binary patch delta 817 zcmbO!bb@VyO1)NqPl)UP|Ns9S*DjhZRWw_A`uch-OTbZ7D2tiShK{=VMw=Tdm- zT!r5C?&tPeZYjKeoPmLXv%n*=n1O-$1qd^4tq#g&U|>4p>EaktaqI1!w?(TJL|PNg z6&TO_jekG0=7k|!Ve-T`wwv$$&zx_y`iRwB9%d&F#TEf4j(RW&A~H^Do2V~ZalvQF z85vLcTa%qif;#w?@c)%#S8aV9&^qt&l`rQx#v_`;{x zuE139m1LiI-JDPK#aj!L1^bUJe3;*`MBuM2-y(rjew9mpo*U+LEftvBE|S+#hyZ{61xBB7W6y$^Lm|n{WE@uG?BH z^EFxJ_@^TV(bd_;8S{Qcyt7QR-s)<7Pyf4|&89Qg%-rg&|F<-MeYn-)H&x&#ZgTwpSVbel zcv9WU-LvMu5>;5vw=l!(?^*t@Q4^v)Zsyb_$hCcJJ`h;H@4%k}Haw3*mfx$N@mBxL z;RmZkjLwwuX+D$clrg@qbn?vA6GoqHE}fB?X!Cia=c1n;s+VKRJWZ#k6rKHTcJi6+ z+??Wj>UZY|pE9ps{hsSge3t05MNw;ZE)dJP7us$1enso-%~>Cx^+YvR27H`X^yQ0p z`_IoeSBQQ7rMX4!^P+hsGw1(bn7wTGzVp3WmwtGLLy{sW5rSFEf3ds$P)fOP_2n%C P0|SGntDnm{r-UW|Vu_wO delta 2318 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 bWnlOt&%gj0!~JK^!0^8wia}$({}~tnKJ-{a diff --git a/docs/public/maskable-icon.png b/docs/public/maskable-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..20a7997dc1c2a257b5e175c5134f4be3868b0766 GIT binary patch literal 2045 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 IIVCg!0P80Kc>n+a literal 2471 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 literal 5062 zcmeAS@N?(olHy`uVBq!ia0y~yU}6Aa4rT@hhQrHLPB1VqNS3%plmzFem6RtIr81P4 zm+NKbWfvzW7NqLs7p2dBXCuYHz`$AH5n0T@pnD#K8E?4#S5%re>`UP=eTy-OsU@|wEvvcDx4|(_k=b`%PHOe z$2CBVV_G2csP>-|+W*fO|2Ynl{d-*dHwfwc0W0>YXZU?WyI`6mSS48fNzFgUwSOMh z`F$M3{c}wF_i-(#$;WjehWt69{R?bb!7M3|vJ={QQ>BV#fzbbxIv@wn2Dz$my2PL3 z+JC_+{~XsYog)3`1c(cA@Nw;;*;0kGBw?~ze~xPv&6a|gUo=bl*9nmAMYAM}W=lcb z{O7p#Z;)fOL5?}0T{KIwaF*1c6I#WyWQt}>LD4KpkTYh2Tv9ko3WR1$|2eMp|Af}x z<63`Cfcydx%$p+j{{+aW-zT*HpU^9sE&UhjB&pxWKyE9VB~>_Es(3aiv`f0hL7oCT z1{CRD1wXJJ`F`bE!}_<3t(srtR*CG^wToLcv3#=F-TMnnW*At^ zRo{I@>C@Mnikr_oOkxeb=(^)yQ`Uiiu#mNfKk3K2Jg@9H>E2&_yeiU5;^Bhx6aIEh zH!l^5R?A)5z2-N+LaL+mshWG6+Y8c??ftm7wI0rDDf{x0fk9xur;B4q#jQ7UUq*|B zi?wswO+GavMeUqP#_j}#29Bl%4-tV#my{R=*ANj`5kW`Sj@^&Wt=J)L9QjM^|Erec z4cvRLthI|RJ->7RcjtNP@w?uB{`V>*bpB=6Ffj(QL4s0cs-;HL);FKAKWwUc4# zhKZ%lS@XVCO*w3JPHZK=%nK*S9P5Af-_~F8`@(Qq@87u<{+Uj`YZg5<{;#!(*LCAd zrUhR>W1UrTR#{zoHE}eXzZ&GZM_t6@FB~;tE^X!vCS({=W<}~N@lE7 z7ycPOJ3y9u$CL~9#~RH7HW(H%SOv&^JTjY6w?OWz;Q5~_|E_Xhaku)I?(kV;k;5TR z1Lj%J4YX9|*n0k59lT;fj@P8$;nM?^E~?C8)Sb{T)wxWswZ2r$bkZ3Qt^cdIU4_nU zo;8K>fPXW~jG}k$*spF z1;Ut?URwBEUc2#-h1kW<{Zkzxr-){nHAr3Y5h7A&3>Vf=%#XSZvg6s0d5npw0WAO0 zK_PPRaLM0f)d{AxnZJ*FDWqST$#~Yd&1jSAT9C(o8aq6Q?_JOrz)QjXn*5?q{Zk#L*(?E5Jd;4O z?qzG1ayzJ=I@vd;x#ZtQp%W7ro&K+q|N6u&+&q{o%e-5>{xg*tBn22JhQ)}bwLLOB+RUkeUcNdCa|TLTmF3`b)YgrdC7#i|GmyMaDYrdw;`KBcY+(oe)oeR z32ZK$yLA`j{jn_cTJ&Ze1K(+(4L=Ld-%GXscE?ue((m`jcuokrPn&05TXk~x`i%Im zr*_x-S-p?ko95{+@qC+P+P~~;tqT9A-=1rJ_dCz~*)d*UHwD*Q%rAO=N4&9qhg%vW z$G`JVU+?^w{#)~Uz1oZGmBHn6j;5^tW%rw|`F|C;A9)*8N5OZluky=7u@;yw!U-n9MeX%2S&3?A2g&p#Mi!5du~2ozvf(FkJkZP zwd;*b)6af-zbn6H?}s3D(|GnO`x)nxRree<`Ty>0v0dDck4xGaSne<{Vpc!#BW!PyKEs$GMGtPkO9p>0vQv z<_}j~{=fUE`8Ho{51YaVIfMVAsRzG3U?Gbk4|Iz*E&!J^n z+35~a|L#7%|6=dA%wC3;tIT#*iZUjtiGQXn{1^MZ?H)@(kUB%+w}w`cIa%vC>eH9p zjrjj=#WnNq)v~ru?-=U?<34OzsdeV}kwr$ye|NvD&)CmmvYx%Ae!j#^!yEgn-Jd`G zzfPLLxyoV3_s)KwZ|lE@9*}OYWP0{q*qixFyr}8T{l8$&e-qx<`R&%Gx7lb>O-oPop3{hf{V;jhJ&X5Y6sRPDfhSTZ2$ z-}={kuUooT@GI23sClBq{J(1Rf;DT7ua>=On=nU@;jzr0_xo4>EL$#n)3)KA{&_YN zX0P-6pE+Haf9GtO%l8JWG~)#(fBEAt)*aunj_J&M#=jwq6$cOQpD*7oTlw1K9iynr zzv|PLKmOl6@Bj0?pVvD^cgwR4m%iG+dOtJJ_GVMHgS0OLo5hd&_D?_ePG39iHgm?a zMqW#vKkH+j{$4x%)LTZC-HOul3_tvTJIUl;Ob*kjn`auFzUrGZri%QNKlNSTj4^uV znFgot`lgJmHfauQKg4G-G^P8SM?Z>BW9loM!6^ACK81-*@=Qa|M}0%a%=Ii`x1Yo( zFtPQ_XOw&zAIB8sGoMlNS$qsr7VmsU$>;G=Ota3;W0ZUmAHj4fiu2Bft8V`{2?eBo z;yDrUf059Hb6yW7to^5|y5P_q$q5Jlv8o>U@0IXm)6suVRT7rJXV?<;Hr|J+#@=|< z+8cTQgM=P@|Jk^6ckXw6WyYsz=Nck@h)--VQcid9`Qz=;aDM86Ue*u#%8Yj5O!5cz zPhfdtmd|$Nl>KiO8RI;*BWLWtvwZo+ zpM(}{6xvb7{^zuJ!!fT1sXxSLG~_0pZ(#YAK9%9Tc4O}Ahw({Fd)BeINj;2DVfy7X zm$CEfd38p)aHf8@hw*7laxE6jLT~4LGaa*GeIWG5+t(pC!&u?tze<$@r@a!shcW+M zZ*t$ho24R>Q>L+gC#M8gI$KI-Jsal>{#3S<-ulnN1`~}KR6pojGEP-I)3D}Keic*D zT9$V){QnmT2MGV*IbrobOx4 zSX5#;*PLjsf5~~m{~PHQtwvhMGzUBB+`jNkK3|DQf!uXWSw!NZ;( z^GogjgkS!@YK=~}(1+V4&kJ(q{f*zZYwARnFRbRwRqyS;HAbHPldbyT*ypJm{deB1 zv}Wd%;LKq&d0zi*^ZAsS_3t@%eEpNA!#DTl6HbpkLO0ys{7>EEFY>v@NZ{f9Y^G)3 zk3agnJ@b|J!4~bt>W;tt=hS}qY&QG(eM*Dy`Q*-*dz^m1U&))swxzuCQNPLSg`6E9 z-#^Uz;F7K*xwzW%za?iFld|!ajq&ro7$0r9|3C9ssHKGns_eu*_5cd*c2d z!$Imdc;eA>J^pq5uC*F@x;0ALp-OpCi#**|d(GC-qmk!@NG2_!9O# zU6n0s*hA7Q*q*%o;a?*pQ29sw4WoKk#agjQ{u@(oN=~@`*#4rY!;6peSFrmW-{X9h zxyt@~y}^{n_I2C>)qm7qFzTD0a=pqdr95*sW2Vgi!hBX%`TvF02i88e`r7sPLo(Ys zrlNEwtACGG9KL*%U(fFI`fB$I_9r!S8gx|?W&d}dXFSyZ-@^96uC#+IsvJ%pTHh@7 zuD$$E{XNDb^8dT54}{+B3XEl+@_p<7{d=t=I*qyx8|1AFoFKM!BIlh_Mn`c$UAGAt zx7|3RSUt@woptZ-T)DvF!dkb*$&05w_{p>1`2G8x%;!J_cUEqNyQ!0Mobq5t9^%z9tHuVKP(``80JbbJ{9 zT(9A}!g}Gjf8+DlrS@KT{>{JF@V<2Ywf(#+cK^5hf7(0pj9J2dog-{l?)`sr{=kOc z^KUoYYJYtl#Mf!q@%#T~#_d`0>-?nyYX2XXXKeglzlrhitL3lHvt7CW|00viz5hAP zYG3oOPv?D6@c%L^$KL-p*>a{FGhcA}?|(jpZ~ywuAGl{$Gh5xQ@7(u)G4GEZ@lp2} zzTdB8c3b+8_eI(Nr|Ccb`kN>037d7dA@6(qo&P1wZA-86zNq-0di1aV`Hb~jb~4Jo z-@m3-x&GAbw`%4KUjJSH$v!!K=|SEXRsUD-J~ID9>e`*WFKYh(IbXbdD~R#kBY!8u zzs=ka>~~|K_CIH}`LUn%PV94gh^qa)Omd&rGyD@hu%GEiIKzLg2l0%5v>WPKKM)qQ z--pEptk&WYeDUVLov5z(f%-DWKjyyI^XJ6e|M<86rgXp^VjXlDhhOnnial_M)F8gM z;b7}OcI$Z=2P5z8IPm{iIRBOpdnEo|{(mj^yzqf%XRp^^-EVvEi-qK#{~K!K{y*8= ze)8diyBVeb%Ku+n&fGug+JSc|J4$zy?=YS7=H3Sx+@lB!{QofRwte`U`GM?wkSb4C KKbLh*2~7ai)|SZt diff --git a/docs/public/pwa-64x64.png b/docs/public/pwa-64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..3911fe625de6b6955c935a3e646ac3f054667872 GIT binary patch literal 493 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4rT@hhPm4t-!L#R7zg--xcX!k{yDByI7{-+ zajl}+QnQyU7R{C{oGm$dnOxCqsiHYje~xSYKCbl#gtQ?dJrB6^7#JA%N`m}?8Lltd zwofpyLF;8<;H0AEPhOZXFfecyctjR6FfhLWVaBc1LD>upjBcJTjv*Dd-cG+bsab)? z)zKwD;miO1Wy_;<1s6@S$@?5OyLd+Qq?xO(tpDd-sr^`3;^t3=D3uFNj!Xis9~6Wm z{))NmQ)u!La8SF!#Gtb7K!eW*&I4jM=C;3ZWxQr&SaFQw(IvGneF;ln++MhAl8VE9 zKNIE#aW;;<)?aKI=1w~~NqNJ4hF1ljZEEdx&+T0L=U&?ieP$lZ=QR>*iqjAOa#r$Q z^W)8i1!hxzw=m_@#PzWYXL77%kgwCb<>{Qka--5jbc*6t>kCgjomaU{c%bQQ^IqVj za9f4cLGFFI9To>v@0&=JG@Jj)lVFSHI#XO{d?vM9)2(37^ZRXrrmC_6|93r{I?L_R z4EN{jyYJ=IoDp6tTeEp*cm9_0Pofvj&KF?oR}hO&@cCzuqSw!B{96B%#*_VQdi$k+ q{7IYe!E0xsz`pl?UhVtGaAL0d8@Yg$Qy3T+7(8A5T-G@yGywq58PZDt literal 0 HcmV?d00001 diff --git a/docs/pwa-assets.config.ts b/docs/pwa-assets.config.ts new file mode 100644 index 000000000..f357fc0df --- /dev/null +++ b/docs/pwa-assets.config.ts @@ -0,0 +1,21 @@ +import { + defineConfig, + minimalPreset as preset, +} from '@vite-pwa/assets-generator/config' + +export default defineConfig({ + preset: { + ...preset, + assetName(type, size) { + switch (type) { + case 'transparent': + return `pwa-${size.width}x${size.height}.png` + case 'maskable': + return 'maskable-icon.png' + case 'apple': + return 'apple-touch-icon.png' + } + }, + }, + images: ['public/logo.svg'], +}) diff --git a/docs/vite.config.ts b/docs/vite.config.ts index 08d88a363..2bd868822 100644 --- a/docs/vite.config.ts +++ b/docs/vite.config.ts @@ -10,10 +10,14 @@ export default defineConfig({ optimizeDeps: { // vitepress is aliased with replacement `join(DIST_CLIENT_PATH, '/index')` // This needs to be excluded from optimization - exclude: ['vitepress'], + exclude: ['@vueuse/core', 'vitepress'], + }, + server: { + hmr: { + overlay: false, + }, }, plugins: [ - // TODO remove cast when moved to Vite 3 Components({ include: [/\.vue/, /\.md/], dirs: '.vitepress/components', @@ -32,7 +36,7 @@ export default defineConfig({ scale: 1.2, }), ], - }) as unknown as Plugin, + }), IncludesPlugin(), ], }) diff --git a/examples/vitesse/src/auto-import.d.ts b/examples/vitesse/src/auto-import.d.ts index ddae89d82..4259e89c6 100644 --- a/examples/vitesse/src/auto-import.d.ts +++ b/examples/vitesse/src/auto-import.d.ts @@ -1,4 +1,7 @@ -// Generated by 'unplugin-auto-import' +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-auto-import export {} declare global { const EffectScope: typeof import('vue')['EffectScope'] @@ -42,6 +45,7 @@ declare global { const toRaw: typeof import('vue')['toRaw'] const toRef: typeof import('vue')['toRef'] const toRefs: typeof import('vue')['toRefs'] + const toValue: typeof import('vue')['toValue'] const triggerRef: typeof import('vue')['triggerRef'] const unref: typeof import('vue')['unref'] const useAttrs: typeof import('vue')['useAttrs'] @@ -53,3 +57,8 @@ declare global { const watchPostEffect: typeof import('vue')['watchPostEffect'] const watchSyncEffect: typeof import('vue')['watchSyncEffect'] } +// for type re-export +declare global { + // @ts-ignore + export type { Component, ComponentPublicInstance, ComputedRef, InjectionKey, PropType, Ref, VNode } from 'vue' +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 28d377743..69fc1367c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -148,6 +148,9 @@ importers: '@unocss/reset': specifier: ^0.53.1 version: 0.53.1 + '@vite-pwa/assets-generator': + specifier: ^0.0.3 + version: 0.0.3 '@vite-pwa/vitepress': specifier: ^0.2.0 version: 0.2.0(vite-plugin-pwa@0.16.4) @@ -328,10 +331,10 @@ importers: version: 20.3.1 '@types/react': specifier: latest - version: 18.2.13 + version: 18.2.12 '@vitejs/plugin-react': specifier: latest - version: 4.0.1(vite@4.3.9) + version: 4.0.0(vite@4.3.9) jsdom: specifier: latest version: 22.1.0 @@ -389,7 +392,7 @@ importers: version: 17.0.2 '@vitejs/plugin-react': specifier: latest - version: 4.0.1(vite@4.3.9) + version: 4.0.0(vite@4.3.9) '@vitest/ui': specifier: latest version: link:../../packages/ui @@ -429,7 +432,7 @@ importers: version: 17.0.17 '@vitejs/plugin-react': specifier: latest - version: 4.0.1(vite@4.3.9) + version: 4.0.0(vite@4.3.9) '@vitest/ui': specifier: latest version: link:../../packages/ui @@ -615,7 +618,7 @@ importers: version: 18.0.8 '@vitejs/plugin-react': specifier: latest - version: 4.0.1(vite@4.3.9) + version: 4.0.0(vite@4.3.9) '@vitest/coverage-c8': specifier: ^0.24.5 version: 0.24.5 @@ -2266,13 +2269,6 @@ packages: dependencies: '@babel/highlight': 7.22.5 - /@babel/code-frame@7.21.4: - resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.22.5 - dev: true - /@babel/code-frame@7.22.5: resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} @@ -2799,13 +2795,6 @@ packages: dependencies: '@babel/types': 7.22.5 - /@babel/parser@7.21.4: - resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.22.5 - /@babel/parser@7.22.5: resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==} engines: {node: '>=6.0.0'} @@ -4936,6 +4925,10 @@ packages: /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + /@canvas/image-data@1.0.0: + resolution: {integrity: sha512-BxOqI5LgsIQP1odU5KMwV9yoijleOPzHL18/YvNqF9KFSGF2K/DLlYAbDQsWqd/1nbaFuSkYD/191dpMtNh4vw==} + dev: true + /@cnakazawa/watch@1.0.4: resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} engines: {node: '>=0.1.95'} @@ -8382,7 +8375,7 @@ packages: resolution: {integrity: sha512-KnH2MnJUzmFNPW6RIKfd+zf2Wue8mEKX0M3cpX6aKl5ZXrJM1/c/Pc8c2xDNYQCnJO48Sm5ITbMXgqTr3h4jxQ==} engines: {node: '>=12'} dependencies: - '@babel/code-frame': 7.21.4 + '@babel/code-frame': 7.22.5 '@babel/runtime': 7.18.9 '@types/aria-query': 4.2.2 aria-query: 5.0.2 @@ -8396,7 +8389,7 @@ packages: resolution: {integrity: sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==} engines: {node: '>=12'} dependencies: - '@babel/code-frame': 7.21.4 + '@babel/code-frame': 7.22.5 '@babel/runtime': 7.18.9 '@types/aria-query': 4.2.2 aria-query: 5.0.2 @@ -8931,6 +8924,14 @@ packages: csstype: 3.1.0 dev: true + /@types/react@18.2.12: + resolution: {integrity: sha512-ndmBMLCgn38v3SntMeoJaIrO6tGHYKMEBohCUmw8HoLLQdRMOIGXfeYaBTLe2lsFaSB3MOK1VXscYFnmLtTSmw==} + dependencies: + '@types/prop-types': 15.7.5 + '@types/scheduler': 0.16.2 + csstype: 3.1.2 + dev: true + /@types/react@18.2.13: resolution: {integrity: sha512-vJ+zElvi/Zn9cVXB5slX2xL8PZodPCwPRDpittQdw43JR2AJ5k3vKdgJJyneV/cYgIbLQUwXa9JVDvUZXGba+Q==} dependencies: @@ -9470,6 +9471,19 @@ packages: - rollup dev: true + /@vite-pwa/assets-generator@0.0.3: + resolution: {integrity: sha512-rGjzFTGAZsY9fIf9qGbvXbo38Yj0MbAtTxAaL/GBlEU0+q/m6upw+4HKE58p2MnjUAOOBHf0871u3onHtkPWlQ==} + engines: {node: '>=16.14.0'} + hasBin: true + dependencies: + cac: 6.7.14 + colorette: 2.0.20 + consola: 3.1.0 + sharp: 0.32.1 + sharp-ico: 0.1.5 + unconfig: 0.3.9 + dev: true + /@vite-pwa/vitepress@0.2.0(vite-plugin-pwa@0.16.4): resolution: {integrity: sha512-dVQVaP6NB9woCFe4UASUqRp7uwBQJOVXlJlqK4krqXcbb3NuXIXIWOnU7HLpJnHqZj5U/81gKtLN6gs5gJBwiQ==} peerDependencies: @@ -9494,8 +9508,8 @@ packages: - supports-color dev: true - /@vitejs/plugin-react@4.0.1(vite@4.3.9): - resolution: {integrity: sha512-g25lL98essfeSj43HJ0o4DMp0325XK0ITkxpgChzJU/CyemgyChtlxfnRbjfwxDGCTRxTiXtQAsdebQXKMRSOA==} + /@vitejs/plugin-react@4.0.0(vite@4.3.9): + resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 @@ -9580,7 +9594,7 @@ packages: '@vue/compiler-core': 3.3.4 '@vue/compiler-dom': 3.3.4 '@vue/compiler-sfc': 3.3.4 - '@vue/reactivity': 3.2.47 + '@vue/reactivity': 3.3.4 '@vue/shared': 3.3.4 dev: true @@ -9651,7 +9665,7 @@ packages: /@vue/compiler-sfc@3.2.39: resolution: {integrity: sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA==} dependencies: - '@babel/parser': 7.21.4 + '@babel/parser': 7.22.5 '@vue/compiler-core': 3.2.39 '@vue/compiler-dom': 3.2.39 '@vue/compiler-ssr': 3.2.39 @@ -9721,12 +9735,6 @@ packages: dependencies: '@vue/shared': 3.2.39 - /@vue/reactivity@3.2.47: - resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==} - dependencies: - '@vue/shared': 3.2.47 - dev: true - /@vue/reactivity@3.3.4: resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} dependencies: @@ -9783,10 +9791,6 @@ packages: /@vue/shared@3.2.39: resolution: {integrity: sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==} - /@vue/shared@3.2.47: - resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} - dev: true - /@vue/shared@3.3.4: resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} @@ -12214,13 +12218,24 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + /color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + dev: true + /color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true dev: true - /colorette@2.0.19: - resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + /color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 dev: true /colorette@2.0.20: @@ -13017,6 +13032,23 @@ packages: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} dev: true + /decode-bmp@0.2.1: + resolution: {integrity: sha512-NiOaGe+GN0KJqi2STf24hfMkFitDUaIoUU3eKvP/wAbLe8o6FuW5n/x7MHPR0HKvBokp6MQY/j7w8lewEeVCIA==} + engines: {node: '>=8.6.0'} + dependencies: + '@canvas/image-data': 1.0.0 + to-data-view: 1.1.0 + dev: true + + /decode-ico@0.4.1: + resolution: {integrity: sha512-69NZfbKIzux1vBOd31al3XnMnH+2mqDhEgLdpygErm4d60N+UwA5Sq5WFjmEDQzumgB9fElojGwWG0vybVfFmA==} + engines: {node: '>=8.6'} + dependencies: + '@canvas/image-data': 1.0.0 + decode-bmp: 0.2.1 + to-data-view: 1.1.0 + dev: true + /decode-uri-component@0.2.0: resolution: {integrity: sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==} engines: {node: '>=0.10'} @@ -13063,6 +13095,11 @@ packages: which-typed-array: 1.1.9 dev: true + /deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + dev: true + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -13197,6 +13234,11 @@ packages: engines: {node: '>=8'} dev: true + /detect-libc@2.0.1: + resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} + engines: {node: '>=8'} + dev: true + /detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -14880,6 +14922,11 @@ packages: - supports-color dev: true + /expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + dev: true + /expect-type@0.16.0: resolution: {integrity: sha512-wCpFeVBiAPGiYkQZzaqvGuuBnNCHbtnowMOBpBGY8a27XbG8VAit3lklWph1r8VmgsH61mOZqI3NuGm8bZnUlw==} engines: {node: '>=12.0.0'} @@ -15708,6 +15755,10 @@ packages: - supports-color dev: true + /github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + dev: true + /github-slugger@1.4.0: resolution: {integrity: sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ==} dev: true @@ -16386,6 +16437,10 @@ packages: engines: {node: '>=14.18.0'} dev: true + /ico-endec@0.1.6: + resolution: {integrity: sha512-ZdLU38ZoED3g1j3iEyzcQj+wAkY2xfWNkymszfJPoxucIUhK7NayQ+/C4Kv0nDFMIsbtbEHldv3V8PU494/ueQ==} + dev: true + /iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -16638,6 +16693,10 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + /is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + dev: true + /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -16714,16 +16773,10 @@ packages: ci-info: 3.7.0 dev: true - /is-core-module@2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} - dependencies: - has: 1.0.3 - /is-core-module@2.12.1: resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} dependencies: has: 1.0.3 - dev: true /is-data-descriptor@0.1.4: resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} @@ -18339,7 +18392,7 @@ packages: optional: true dependencies: cli-truncate: 2.1.0 - colorette: 2.0.19 + colorette: 2.0.20 log-update: 4.0.0 p-map: 4.0.0 rfdc: 1.3.0 @@ -19305,6 +19358,10 @@ packages: - supports-color dev: true + /napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + dev: true + /natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true @@ -19389,6 +19446,17 @@ packages: tslib: 2.5.3 dev: true + /node-abi@3.45.0: + resolution: {integrity: sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ==} + engines: {node: '>=10'} + dependencies: + semver: 7.5.2 + dev: true + + /node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + dev: true + /node-dir@0.1.17: resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} engines: {node: '>= 0.10.5'} @@ -20565,6 +20633,25 @@ packages: resolution: {integrity: sha512-w0mCL5vICUAZrh1DuHEdOWBjxdO62lvcO++jbzr8UhhYcTbFkpegLH9XX+7MadjTl/y0feoqwQ/zAnzkc/EGog==} dev: true + /prebuild-install@7.1.1: + resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + detect-libc: 2.0.1 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.45.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: true + /prelude-ls@1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} engines: {node: '>= 0.8.0'} @@ -20971,6 +21058,16 @@ packages: flat: 5.0.2 dev: true + /rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + dev: true + /react-docgen-typescript@2.2.2(typescript@4.8.4): resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: @@ -21670,7 +21767,7 @@ packages: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true dependencies: - is-core-module: 2.11.0 + is-core-module: 2.12.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -22212,6 +22309,29 @@ packages: kind-of: 6.0.3 dev: true + /sharp-ico@0.1.5: + resolution: {integrity: sha512-a3jODQl82NPp1d5OYb0wY+oFaPk7AvyxipIowCHk7pBsZCWgbe0yAkU2OOXdoH0ENyANhyOQbs9xkAiRHcF02Q==} + dependencies: + decode-ico: 0.4.1 + ico-endec: 0.1.6 + sharp: 0.32.1 + dev: true + + /sharp@0.32.1: + resolution: {integrity: sha512-kQTFtj7ldpUqSe8kDxoGLZc1rnMFU0AO2pqbX6pLy3b7Oj8ivJIdoKNwxHVQG2HN6XpHPJqCSM2nsma2gOXvOg==} + engines: {node: '>=14.15.0'} + requiresBuild: true + dependencies: + color: 4.2.3 + detect-libc: 2.0.1 + node-addon-api: 6.1.0 + prebuild-install: 7.1.1 + semver: 7.5.2 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + dev: true + /shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} engines: {node: '>=0.10.0'} @@ -22271,12 +22391,30 @@ packages: engines: {node: '>=14'} dev: true + /simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + dev: true + + /simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + dev: true + /simple-git-hooks@2.8.1: resolution: {integrity: sha512-DYpcVR1AGtSfFUNzlBdHrQGPsOhuuEJ/FkmPOOlFysP60AHd3nsEpkGq/QEOdtUyT1Qhk7w9oLmFoMG+75BDog==} hasBin: true requiresBuild: true dev: true + /simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + dependencies: + is-arrayish: 0.3.2 + dev: true + /sirv@2.0.3: resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} engines: {node: '>= 10'} @@ -22874,6 +23012,11 @@ packages: min-indent: 1.0.1 dev: true + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + dev: true + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -23419,6 +23562,10 @@ packages: resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==} dev: true + /to-data-view@1.1.0: + resolution: {integrity: sha512-1eAdufMg6mwgmlojAx3QeMnzB/BTVp7Tbndi3U7ftcT2zCZadjxkkmLmd97zmaxWi+sgGcgWrokmpEoy0Dn0vQ==} + dev: true + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} -- 2.51.2